@adguard/agtree 3.0.0 → 3.1.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/README.md +1 -1
- package/dist/{esm/ast-utils/clone.mjs → ast-utils/clone.js} +3 -3
- package/dist/{esm/ast-utils/modifiers.mjs → ast-utils/modifiers.js} +4 -4
- package/dist/{esm/ast-utils/network-rules.mjs → ast-utils/network-rules.js} +6 -6
- package/dist/{esm/ast-utils/scriptlets.mjs → ast-utils/scriptlets.js} +5 -5
- package/dist/{esm/common/abp-snippet-injection-body-common.mjs → common/abp-snippet-injection-body-common.js} +9 -2
- package/dist/{esm/common/agent-common.mjs → common/agent-common.js} +3 -3
- package/dist/common/ubo-selector-common.js +17 -0
- package/dist/{esm/compatibility-tables/base.mjs → compatibility-tables/base.js} +6 -6
- package/dist/{esm/compatibility-tables/compatibility-table-data.mjs → compatibility-tables/compatibility-table-data.js} +3 -3
- package/dist/{esm/compatibility-tables/modifiers.mjs → compatibility-tables/modifiers.js} +6 -6
- package/dist/compatibility-tables/platforms.js +76 -0
- package/dist/{esm/compatibility-tables/redirects.mjs → compatibility-tables/redirects.js} +8 -8
- package/dist/{esm/compatibility-tables/schemas/base.mjs → compatibility-tables/schemas/base.js} +4 -4
- package/dist/{esm/compatibility-tables/schemas/modifier.mjs → compatibility-tables/schemas/modifier.js} +31 -7
- package/dist/{esm/compatibility-tables/schemas/platform.mjs → compatibility-tables/schemas/platform.js} +4 -4
- package/dist/{esm/compatibility-tables/schemas/redirect.mjs → compatibility-tables/schemas/redirect.js} +5 -5
- package/dist/compatibility-tables/schemas/resource-type.js +36 -0
- package/dist/{esm/compatibility-tables/schemas/scriptlet.mjs → compatibility-tables/schemas/scriptlet.js} +4 -4
- package/dist/{esm/compatibility-tables/scriptlets.mjs → compatibility-tables/scriptlets.js} +5 -5
- package/dist/{esm/compatibility-tables/utils/platform-helpers.mjs → compatibility-tables/utils/platform-helpers.js} +3 -3
- package/dist/{esm/compatibility-tables/utils/resource-type-helpers.mjs → compatibility-tables/utils/resource-type-helpers.js} +5 -5
- package/dist/{esm/compatibility-tables/utils/zod-camelcase.mjs → compatibility-tables/utils/zod-camelcase.js} +2 -2
- package/dist/{esm/converter/base-interfaces/base-converter.mjs → converter/base-interfaces/base-converter.js} +3 -3
- package/dist/{esm/converter/base-interfaces/conversion-result.mjs → converter/base-interfaces/conversion-result.js} +2 -2
- package/dist/{esm/converter/base-interfaces/rule-converter-base.mjs → converter/base-interfaces/rule-converter-base.js} +4 -4
- package/dist/{esm/converter/comment/index.mjs → converter/comment/index.js} +7 -7
- package/dist/{esm/converter/cosmetic/css.mjs → converter/cosmetic/css.js} +9 -9
- package/dist/{esm/converter/cosmetic/element-hiding.mjs → converter/cosmetic/element-hiding.js} +9 -9
- package/dist/{esm/converter/cosmetic/header-removal.mjs → converter/cosmetic/header-removal.js} +12 -12
- package/dist/{esm/converter/cosmetic/html.mjs → converter/cosmetic/html.js} +21 -30
- package/dist/{esm/converter/cosmetic/index.mjs → converter/cosmetic/index.js} +43 -13
- package/dist/{esm/converter/cosmetic/rule-modifiers/adg.mjs → converter/cosmetic/rule-modifiers/adg.js} +10 -10
- package/dist/converter/cosmetic/rule-modifiers/ubo.js +149 -0
- package/dist/{esm/converter/cosmetic/scriptlet.mjs → converter/cosmetic/scriptlet.js} +23 -23
- package/dist/{esm/converter/css/index.mjs → converter/css/index.js} +21 -25
- package/dist/{esm/converter/data/css.mjs → converter/data/css.js} +2 -2
- package/dist/{esm/converter/filter-list.mjs → converter/filter-list.js} +7 -7
- package/dist/converter/index.js +8 -0
- package/dist/{esm/converter/misc/network-rule-modifier.mjs → converter/misc/network-rule-modifier.js} +22 -22
- package/dist/{esm/converter/network/index.mjs → converter/network/index.js} +6 -6
- package/dist/{esm/converter/raw-filter-list.mjs → converter/raw-filter-list.js} +9 -9
- package/dist/{esm/converter/rule.mjs → converter/rule.js} +9 -9
- package/dist/{esm/deserializer/base-deserializer.mjs → deserializer/base-deserializer.js} +4 -4
- package/dist/{esm/deserializer/comment/agent-comment-deserializer.mjs → deserializer/comment/agent-comment-deserializer.js} +14 -9
- package/dist/{esm/deserializer/comment/agent-deserializer.mjs → deserializer/comment/agent-deserializer.js} +8 -8
- package/dist/{esm/deserializer/comment/comment-rule-deserializer.mjs → deserializer/comment/comment-rule-deserializer.js} +11 -64
- package/dist/{esm/deserializer/comment/config-comment-deserializer.mjs → deserializer/comment/config-comment-deserializer.js} +10 -10
- package/dist/{esm/deserializer/comment/hint-comment-deserializer.mjs → deserializer/comment/hint-comment-deserializer.js} +15 -10
- package/dist/{esm/deserializer/comment/hint-deserializer.mjs → deserializer/comment/hint-deserializer.js} +8 -8
- package/dist/{esm/deserializer/comment/metadata-comment-deserializer.mjs → deserializer/comment/metadata-comment-deserializer.js} +9 -9
- package/dist/{esm/deserializer/comment/pre-processor-comment-deserializer.mjs → deserializer/comment/pre-processor-comment-deserializer.js} +12 -12
- package/dist/{esm/deserializer/comment/simple-comment-deserializer.mjs → deserializer/comment/simple-comment-deserializer.js} +9 -9
- package/dist/{esm/deserializer/cosmetic/cosmetic-rule-deserializer.mjs → deserializer/cosmetic/cosmetic-rule-deserializer.js} +24 -18
- package/dist/{esm/deserializer/cosmetic/css-injection-body-deserializer.mjs → deserializer/cosmetic/css-injection-body-deserializer.js} +10 -7
- package/dist/{esm/deserializer/cosmetic/element-hiding-body-deserializer.mjs → deserializer/cosmetic/element-hiding-body-deserializer.js} +11 -7
- package/dist/{esm/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js} +9 -5
- package/dist/{esm/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js} +10 -5
- package/dist/{esm/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js} +11 -7
- package/dist/{esm/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.mjs → deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js} +9 -6
- package/dist/{esm/deserializer/empty-rule-deserializer.mjs → deserializer/empty-rule-deserializer.js} +12 -8
- package/dist/{esm/deserializer/filterlist-deserializer.mjs → deserializer/filterlist-deserializer.js} +11 -7
- package/dist/{esm/deserializer/index.mjs → deserializer/index.js} +4 -4
- package/dist/{esm/deserializer/invalid-rule-deserializer.mjs → deserializer/invalid-rule-deserializer.js} +12 -8
- package/dist/{esm/deserializer/invalid-rule-error-node-deserializer.mjs → deserializer/invalid-rule-error-node-deserializer.js} +10 -6
- package/dist/{esm/deserializer/misc/domain-list-deserializer.mjs → deserializer/misc/domain-list-deserializer.js} +8 -8
- package/dist/{esm/deserializer/misc/list-item-deserializer.mjs → deserializer/misc/list-item-deserializer.js} +13 -7
- package/dist/{esm/deserializer/misc/list-items-deserializer.mjs → deserializer/misc/list-items-deserializer.js} +7 -3
- package/dist/{esm/deserializer/misc/logical-expression-deserializer.mjs → deserializer/misc/logical-expression-deserializer.js} +8 -8
- package/dist/{esm/deserializer/misc/modifier-deserializer.mjs → deserializer/misc/modifier-deserializer.js} +8 -8
- package/dist/{esm/deserializer/misc/modifier-list-deserializer.mjs → deserializer/misc/modifier-list-deserializer.js} +12 -7
- package/dist/{esm/deserializer/misc/parameter-list-deserializer.mjs → deserializer/misc/parameter-list-deserializer.js} +11 -7
- package/dist/{esm/deserializer/misc/value-deserializer.mjs → deserializer/misc/value-deserializer.js} +6 -6
- package/dist/{esm/deserializer/network/host-rule-deserializer.mjs → deserializer/network/host-rule-deserializer.js} +15 -27
- package/dist/{esm/deserializer/network/hostname-list-deserializer.mjs → deserializer/network/hostname-list-deserializer.js} +15 -7
- package/dist/{esm/deserializer/network/network-rule-deserializer.mjs → deserializer/network/network-rule-deserializer.js} +11 -11
- package/dist/{esm/deserializer/rule-deserializer.mjs → deserializer/rule-deserializer.js} +10 -10
- package/dist/{esm/deserializer/syntax-deserialization-map.mjs → deserializer/syntax-deserialization-map.js} +3 -3
- package/dist/{esm/errors/adblock-syntax-error.mjs → errors/adblock-syntax-error.js} +2 -2
- package/dist/{esm/errors/binary-schema-mismatch-error.mjs → errors/binary-schema-mismatch-error.js} +2 -2
- package/dist/{esm/errors/not-implemented-error.mjs → errors/not-implemented-error.js} +2 -2
- package/dist/{esm/errors/rule-conversion-error.mjs → errors/rule-conversion-error.js} +2 -2
- package/dist/{esm/generator/base-generator.mjs → generator/base-generator.js} +4 -4
- package/dist/{esm/generator/comment/agent-comment-generator.mjs → generator/comment/agent-comment-generator.js} +8 -5
- package/dist/{esm/generator/comment/agent-generator.mjs → generator/comment/agent-generator.js} +9 -5
- package/dist/{esm/generator/comment/comment-rule-generator.mjs → generator/comment/comment-rule-generator.js} +11 -64
- package/dist/{esm/generator/comment/config-comment-generator.mjs → generator/comment/config-comment-generator.js} +8 -5
- package/dist/{esm/generator/comment/hint-comment-generator.mjs → generator/comment/hint-comment-generator.js} +8 -5
- package/dist/{esm/generator/comment/hint-generator.mjs → generator/comment/hint-generator.js} +11 -8
- package/dist/{esm/generator/comment/metadata-comment-generator.mjs → generator/comment/metadata-comment-generator.js} +8 -5
- package/dist/{esm/generator/comment/pre-processor-comment-generator.mjs → generator/comment/pre-processor-comment-generator.js} +10 -7
- package/dist/{esm/generator/comment/simple-comment-generator.mjs → generator/comment/simple-comment-generator.js} +8 -5
- package/dist/{esm/generator/cosmetic/body/abp-snippet-injection-body-generator.mjs → generator/cosmetic/body/abp-snippet-injection-body-generator.js} +10 -6
- package/dist/{esm/generator/cosmetic/body/adg-scriptlet-injection-body-generator.mjs → generator/cosmetic/body/adg-scriptlet-injection-body-generator.js} +10 -6
- package/dist/{esm/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.mjs → generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js} +10 -6
- package/dist/{esm/generator/cosmetic/cosmetic-rule-body-generator.mjs → generator/cosmetic/cosmetic-rule-body-generator.js} +17 -13
- package/dist/{esm/generator/cosmetic/cosmetic-rule-generator.mjs → generator/cosmetic/cosmetic-rule-generator.js} +19 -21
- package/dist/{esm/generator/cosmetic/cosmetic-rule-pattern-generator.mjs → generator/cosmetic/cosmetic-rule-pattern-generator.js} +10 -7
- package/dist/{esm/generator/css/adg-css-injection-generator.mjs → generator/css/adg-css-injection-generator.js} +8 -5
- package/dist/{esm/generator/filterlist-generator.mjs → generator/filterlist-generator.js} +21 -9
- package/dist/{esm/generator/index.mjs → generator/index.js} +5 -5
- package/dist/{esm/generator/misc/domain-list-generator.mjs → generator/misc/domain-list-generator.js} +7 -4
- package/dist/{esm/generator/misc/list-items-generator.mjs → generator/misc/list-items-generator.js} +6 -3
- package/dist/{esm/generator/misc/logical-expression-generator.mjs → generator/misc/logical-expression-generator.js} +8 -5
- package/dist/{esm/generator/misc/modifier-generator.mjs → generator/misc/modifier-generator.js} +9 -6
- package/dist/{esm/generator/misc/modifier-list-generator.mjs → generator/misc/modifier-list-generator.js} +8 -5
- package/dist/{esm/generator/misc/parameter-list-generator.mjs → generator/misc/parameter-list-generator.js} +8 -6
- package/dist/{esm/generator/misc/value-generator.mjs → generator/misc/value-generator.js} +6 -3
- package/dist/{esm/generator/network/host-rule-generator.mjs → generator/network/host-rule-generator.js} +7 -4
- package/dist/{esm/generator/network/network-rule-generator.mjs → generator/network/network-rule-generator.js} +11 -8
- package/dist/{esm/generator/rule-generator.mjs → generator/rule-generator.js} +12 -9
- package/dist/{esm/index.mjs → index.js} +66 -66
- package/dist/{cjs/marshalling-utils/empty-rule-common.js → marshalling-utils/comment/agent-comment-common.js} +9 -9
- package/dist/{esm/marshalling-utils/comment/agent-common.mjs → marshalling-utils/comment/agent-common.js} +8 -9
- package/dist/{esm/marshalling-utils/comment/config-comment-common.mjs → marshalling-utils/comment/config-comment-common.js} +15 -17
- package/dist/marshalling-utils/comment/hint-comment-common.js +22 -0
- package/dist/{esm/marshalling-utils/comment/hint-common.mjs → marshalling-utils/comment/hint-common.js} +8 -9
- package/dist/{esm/marshalling-utils/comment/metadata-comment-common.mjs → marshalling-utils/comment/metadata-comment-common.js} +9 -10
- package/dist/{esm/marshalling-utils/comment/pre-processor-comment-common.mjs → marshalling-utils/comment/pre-processor-comment-common.js} +9 -10
- package/dist/marshalling-utils/comment/simple-comment-common.js +22 -0
- package/dist/{esm/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.mjs → marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js} +7 -8
- package/dist/{esm/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.mjs → marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js} +2 -2
- package/dist/marshalling-utils/cosmetic/body/css-injection-body-common.js +24 -0
- package/dist/marshalling-utils/cosmetic/body/element-hiding-body-common.js +21 -0
- package/dist/{esm/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.mjs → marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js} +2 -2
- package/dist/{esm/marshalling-utils/cosmetic/cosmetic-rule-common.mjs → marshalling-utils/cosmetic/cosmetic-rule-common.js} +10 -13
- package/dist/{esm/marshalling-utils/empty-rule-common.mjs → marshalling-utils/empty-rule-common.js} +6 -7
- package/dist/marshalling-utils/filter-list-common.js +21 -0
- package/dist/{esm/marshalling-utils/invalid-rule-common.mjs → marshalling-utils/invalid-rule-common.js} +7 -8
- package/dist/marshalling-utils/invalid-rule-error-node-common.js +22 -0
- package/dist/marshalling-utils/misc/binary-type-common.js +54 -0
- package/dist/{esm/marshalling-utils/misc/domain-list-common.mjs → marshalling-utils/misc/domain-list-common.js} +9 -10
- package/dist/marshalling-utils/misc/host-rule-common.js +24 -0
- package/dist/marshalling-utils/misc/hostname-list-common.js +21 -0
- package/dist/marshalling-utils/misc/list-item-common.js +22 -0
- package/dist/marshalling-utils/misc/logical-expression-common.js +83 -0
- package/dist/{esm/marshalling-utils/misc/modifier-common.mjs → marshalling-utils/misc/modifier-common.js} +9 -10
- package/dist/marshalling-utils/misc/modifier-list-common.js +21 -0
- package/dist/marshalling-utils/misc/parameter-list-common.js +21 -0
- package/dist/marshalling-utils/misc/value-common.js +22 -0
- package/dist/marshalling-utils/network/network-rule-common.js +24 -0
- package/dist/{esm/marshalling-utils/syntax-serialization-map.mjs → marshalling-utils/syntax-serialization-map.js} +3 -3
- package/dist/{esm/nodes/index.mjs → nodes/index.js} +66 -79
- package/dist/{esm/package.json.mjs → package.json.js} +3 -3
- package/dist/{esm/parser/base-parser.mjs → parser/base-parser.js} +3 -3
- package/dist/{esm/parser/comment/agent-comment-parser.mjs → parser/comment/agent-comment-parser.js} +12 -12
- package/dist/{esm/parser/comment/agent-parser.mjs → parser/comment/agent-parser.js} +19 -14
- package/dist/{esm/parser/comment/comment-parser.mjs → parser/comment/comment-parser.js} +10 -10
- package/dist/{esm/parser/comment/config-comment-parser.mjs → parser/comment/config-comment-parser.js} +10 -10
- package/dist/{esm/parser/comment/hint-comment-parser.mjs → parser/comment/hint-comment-parser.js} +10 -10
- package/dist/{esm/parser/comment/hint-parser.mjs → parser/comment/hint-parser.js} +9 -9
- package/dist/{esm/parser/comment/metadata-comment-parser.mjs → parser/comment/metadata-comment-parser.js} +11 -11
- package/dist/{esm/parser/comment/preprocessor-parser.mjs → parser/comment/preprocessor-parser.js} +12 -12
- package/dist/{esm/parser/comment/simple-comment-parser.mjs → parser/comment/simple-comment-parser.js} +9 -9
- package/dist/{esm/parser/cosmetic/body/abp-snippet-injection-body-parser.mjs → parser/cosmetic/body/abp-snippet-injection-body-parser.js} +9 -9
- package/dist/{esm/parser/cosmetic/body/adg-scriptlet-injection-body-parser.mjs → parser/cosmetic/body/adg-scriptlet-injection-body-parser.js} +9 -9
- package/dist/{esm/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.mjs → parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js} +8 -8
- package/dist/{esm/parser/cosmetic/cosmetic-rule-parser.mjs → parser/cosmetic/cosmetic-rule-parser.js} +63 -23
- package/dist/{esm/parser/css/adg-css-injection-parser.mjs → parser/css/adg-css-injection-parser.js} +7 -7
- package/dist/{esm/parser/css/balancing.mjs → parser/css/balancing.js} +6 -6
- package/dist/{esm/parser/css/constants.mjs → parser/css/constants.js} +2 -2
- package/dist/{esm/parser/css/css-token-stream.mjs → parser/css/css-token-stream.js} +24 -14
- package/dist/{esm/parser/css/ubo-selector-parser.mjs → parser/css/ubo-selector-parser.js} +8 -8
- package/dist/{esm/parser/filterlist-parser.mjs → parser/filterlist-parser.js} +7 -7
- package/dist/parser/index.js +12 -0
- package/dist/{esm/parser/misc/app-list-parser.mjs → parser/misc/app-list-parser.js} +7 -7
- package/dist/{esm/parser/misc/domain-list-parser.mjs → parser/misc/domain-list-parser.js} +7 -7
- package/dist/{esm/parser/misc/list-items-parser.mjs → parser/misc/list-items-parser.js} +10 -7
- package/dist/{esm/parser/misc/logical-expression-parser.mjs → parser/misc/logical-expression-parser.js} +18 -20
- package/dist/{esm/parser/misc/method-list-parser.mjs → parser/misc/method-list-parser.js} +7 -7
- package/dist/{esm/parser/misc/modifier-list.mjs → parser/misc/modifier-list.js} +7 -7
- package/dist/{esm/parser/misc/modifier-parser.mjs → parser/misc/modifier-parser.js} +8 -8
- package/dist/{esm/parser/misc/parameter-list-parser.mjs → parser/misc/parameter-list-parser.js} +10 -7
- package/dist/{esm/parser/misc/stealth-option-list-parser.mjs → parser/misc/stealth-option-list-parser.js} +7 -7
- package/dist/{esm/parser/misc/ubo-parameter-list-parser.mjs → parser/misc/ubo-parameter-list-parser.js} +12 -9
- package/dist/{esm/parser/misc/value-parser.mjs → parser/misc/value-parser.js} +5 -5
- package/dist/{esm/parser/network/host-rule-parser.mjs → parser/network/host-rule-parser.js} +11 -11
- package/dist/{esm/parser/network/network-rule-parser.mjs → parser/network/network-rule-parser.js} +17 -11
- package/dist/{esm/parser/options.mjs → parser/options.js} +2 -2
- package/dist/{esm/parser/rule-parser.mjs → parser/rule-parser.js} +11 -11
- package/dist/{esm/serializer/base-serializer.mjs → serializer/base-serializer.js} +3 -3
- package/dist/{esm/serializer/comment/agent-comment-serializer.mjs → serializer/comment/agent-comment-serializer.js} +11 -8
- package/dist/{esm/serializer/comment/agent-serializer.mjs → serializer/comment/agent-serializer.js} +9 -18
- package/dist/{esm/serializer/comment/comment-rule-serializer.mjs → serializer/comment/comment-rule-serializer.js} +10 -10
- package/dist/{esm/serializer/comment/config-comment-serializer.mjs → serializer/comment/config-comment-serializer.js} +10 -10
- package/dist/{esm/serializer/comment/hint-comment-serializer.mjs → serializer/comment/hint-comment-serializer.js} +13 -10
- package/dist/{esm/serializer/comment/hint-serializer.mjs → serializer/comment/hint-serializer.js} +9 -9
- package/dist/{esm/serializer/comment/metadata-comment-serializer.mjs → serializer/comment/metadata-comment-serializer.js} +8 -8
- package/dist/{esm/serializer/comment/pre-processor-comment-serializer.mjs → serializer/comment/pre-processor-comment-serializer.js} +11 -11
- package/dist/{esm/serializer/comment/simple-comment-serializer.mjs → serializer/comment/simple-comment-serializer.js} +10 -10
- package/dist/{esm/serializer/cosmetic/body/abp-snippet-injection-body-serializer.mjs → serializer/cosmetic/body/abp-snippet-injection-body-serializer.js} +9 -9
- package/dist/{esm/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.mjs → serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js} +9 -9
- package/dist/{esm/serializer/cosmetic/body/scriptlet-body-serializer.mjs → serializer/cosmetic/body/scriptlet-body-serializer.js} +16 -13
- package/dist/{esm/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.mjs → serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js} +5 -5
- package/dist/{esm/serializer/cosmetic/cosmetic-rule-serializer.mjs → serializer/cosmetic/cosmetic-rule-serializer.js} +22 -31
- package/dist/{esm/serializer/cosmetic/css-injection-body-serializer.mjs → serializer/cosmetic/css-injection-body-serializer.js} +11 -8
- package/dist/{esm/serializer/cosmetic/element-hiding-body-serializer.mjs → serializer/cosmetic/element-hiding-body-serializer.js} +11 -8
- package/dist/{esm/serializer/empty-rule-serializer.mjs → serializer/empty-rule-serializer.js} +10 -7
- package/dist/{esm/serializer/filterlist-serializer.mjs → serializer/filterlist-serializer.js} +9 -10
- package/dist/serializer/index.js +7 -0
- package/dist/{esm/serializer/invalid-rule-error-node-serializer.mjs → serializer/invalid-rule-error-node-serializer.js} +10 -7
- package/dist/{esm/serializer/invalid-rule-serializer.mjs → serializer/invalid-rule-serializer.js} +11 -8
- package/dist/{esm/serializer/misc/domain-list-serializer.mjs → serializer/misc/domain-list-serializer.js} +10 -10
- package/dist/{esm/serializer/misc/list-item-serializer.mjs → serializer/misc/list-item-serializer.js} +11 -8
- package/dist/{esm/serializer/misc/list-items-serializer.mjs → serializer/misc/list-items-serializer.js} +6 -3
- package/dist/{esm/serializer/misc/logical-expression-serializer.mjs → serializer/misc/logical-expression-serializer.js} +14 -14
- package/dist/{esm/serializer/misc/modifier-list-serializer.mjs → serializer/misc/modifier-list-serializer.js} +11 -8
- package/dist/{esm/serializer/misc/modifier-serializer.mjs → serializer/misc/modifier-serializer.js} +8 -8
- package/dist/{esm/serializer/misc/parameter-list-serializer.mjs → serializer/misc/parameter-list-serializer.js} +11 -8
- package/dist/{esm/serializer/misc/value-serializer.mjs → serializer/misc/value-serializer.js} +7 -7
- package/dist/{esm/serializer/network/host-rule-serializer.mjs → serializer/network/host-rule-serializer.js} +10 -10
- package/dist/{esm/serializer/network/hostname-list-serializer.mjs → serializer/network/hostname-list-serializer.js} +14 -8
- package/dist/{esm/serializer/network/network-rule-serializer.mjs → serializer/network/network-rule-serializer.js} +10 -10
- package/dist/{esm/serializer/rule-serializer.mjs → serializer/rule-serializer.js} +10 -10
- package/dist/types/common/abp-snippet-injection-body-common.d.ts +7 -0
- package/dist/types/common/ubo-selector-common.d.ts +7 -6
- package/dist/types/compatibility-tables/compatibility-table-data.d.ts +2 -1
- package/dist/types/compatibility-tables/platforms.d.ts +36 -34
- package/dist/types/compatibility-tables/schemas/base.d.ts +1 -12
- package/dist/types/compatibility-tables/schemas/modifier.d.ts +5 -0
- package/dist/types/compatibility-tables/schemas/redirect.d.ts +1 -1
- package/dist/types/compatibility-tables/schemas/resource-type.d.ts +29 -15
- package/dist/types/compatibility-tables/utils/zod-camelcase.d.ts +1 -1
- package/dist/types/converter/cosmetic/rule-modifiers/ubo.d.ts +24 -0
- package/dist/types/converter/css/index.d.ts +17 -0
- package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +1 -54
- package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +6 -0
- package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +3 -0
- package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +4 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +4 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +5 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +4 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +4 -1
- package/dist/types/deserializer/empty-rule-deserializer.d.ts +4 -0
- package/dist/types/deserializer/filterlist-deserializer.d.ts +4 -0
- package/dist/types/deserializer/invalid-rule-deserializer.d.ts +4 -0
- package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +4 -0
- package/dist/types/deserializer/misc/list-item-deserializer.d.ts +6 -0
- package/dist/types/deserializer/misc/list-items-deserializer.d.ts +4 -0
- package/dist/types/deserializer/misc/modifier-deserializer.d.ts +1 -1
- package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +4 -0
- package/dist/types/deserializer/network/host-rule-deserializer.d.ts +4 -16
- package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +3 -0
- package/dist/types/generator/comment/agent-comment-generator.d.ts +3 -0
- package/dist/types/generator/comment/agent-generator.d.ts +4 -0
- package/dist/types/generator/comment/comment-rule-generator.d.ts +1 -54
- package/dist/types/generator/comment/config-comment-generator.d.ts +3 -0
- package/dist/types/generator/comment/hint-comment-generator.d.ts +3 -0
- package/dist/types/generator/comment/hint-generator.d.ts +6 -3
- package/dist/types/generator/comment/index.d.ts +1 -2
- package/dist/types/generator/comment/metadata-comment-generator.d.ts +3 -0
- package/dist/types/generator/comment/pre-processor-comment-generator.d.ts +3 -0
- package/dist/types/generator/comment/simple-comment-generator.d.ts +3 -0
- package/dist/types/generator/cosmetic/body/abp-snippet-injection-body-generator.d.ts +4 -0
- package/dist/types/generator/cosmetic/body/adg-scriptlet-injection-body-generator.d.ts +5 -1
- package/dist/types/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.d.ts +5 -1
- package/dist/types/generator/cosmetic/cosmetic-rule-body-generator.d.ts +5 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-generator.d.ts +3 -11
- package/dist/types/generator/cosmetic/cosmetic-rule-pattern-generator.d.ts +3 -0
- package/dist/types/generator/css/adg-css-injection-generator.d.ts +3 -0
- package/dist/types/generator/css/ubo-selector-generator.d.ts +3 -0
- package/dist/types/generator/filterlist-generator.d.ts +4 -3
- package/dist/types/generator/misc/domain-list-generator.d.ts +3 -0
- package/dist/types/generator/misc/list-items-generator.d.ts +3 -0
- package/dist/types/generator/misc/logical-expression-generator.d.ts +3 -0
- package/dist/types/generator/misc/modifier-generator.d.ts +5 -2
- package/dist/types/generator/misc/modifier-list-generator.d.ts +3 -0
- package/dist/types/generator/misc/parameter-list-generator.d.ts +3 -0
- package/dist/types/generator/misc/value-generator.d.ts +3 -0
- package/dist/types/generator/network/host-rule-generator.d.ts +3 -0
- package/dist/types/generator/network/network-rule-generator.d.ts +6 -3
- package/dist/types/generator/rule-generator.d.ts +3 -0
- package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +6 -5
- package/dist/types/marshalling-utils/comment/agent-common.d.ts +7 -6
- package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +15 -13
- package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +7 -6
- package/dist/types/marshalling-utils/comment/hint-common.d.ts +7 -6
- package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +8 -7
- package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +8 -7
- package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +7 -6
- package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +6 -5
- package/dist/types/marshalling-utils/cosmetic/body/css-injection-body-common.d.ts +9 -8
- package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +6 -5
- package/dist/types/marshalling-utils/cosmetic/cosmetic-rule-common.d.ts +11 -10
- package/dist/types/marshalling-utils/empty-rule-common.d.ts +5 -4
- package/dist/types/marshalling-utils/filter-list-common.d.ts +6 -5
- package/dist/types/marshalling-utils/invalid-rule-common.d.ts +6 -5
- package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +7 -6
- package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +52 -51
- package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +7 -6
- package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +10 -9
- package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +6 -5
- package/dist/types/marshalling-utils/misc/list-item-common.d.ts +7 -6
- package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +21 -18
- package/dist/types/marshalling-utils/misc/modifier-common.d.ts +8 -7
- package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +6 -5
- package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +6 -5
- package/dist/types/marshalling-utils/misc/value-common.d.ts +7 -6
- package/dist/types/marshalling-utils/network/network-rule-common.d.ts +10 -9
- package/dist/types/nodes/index.d.ts +104 -98
- package/dist/types/parser/comment/agent-parser.d.ts +7 -0
- package/dist/types/parser/css/balancing.d.ts +21 -1
- package/dist/types/parser/index.d.ts +1 -0
- package/dist/types/parser/misc/list-items-parser.d.ts +3 -0
- package/dist/types/parser/misc/logical-expression-parser.d.ts +6 -5
- package/dist/types/parser/misc/parameter-list-parser.d.ts +3 -0
- package/dist/types/parser/misc/ubo-parameter-list-parser.d.ts +3 -0
- package/dist/types/parser/misc/value-parser.d.ts +1 -1
- package/dist/types/serializer/comment/agent-serializer.d.ts +1 -10
- package/dist/types/serializer/comment/config-comment-serializer.d.ts +1 -1
- package/dist/types/serializer/comment/simple-comment-serializer.d.ts +2 -2
- package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +4 -4
- package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +4 -4
- package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +8 -5
- package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +4 -11
- package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +3 -0
- package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +3 -0
- package/dist/types/serializer/empty-rule-serializer.d.ts +3 -0
- package/dist/types/serializer/filterlist-serializer.d.ts +1 -2
- package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +3 -0
- package/dist/types/serializer/invalid-rule-serializer.d.ts +3 -0
- package/dist/types/serializer/misc/domain-list-serializer.d.ts +2 -2
- package/dist/types/serializer/misc/list-item-serializer.d.ts +3 -0
- package/dist/types/serializer/misc/list-items-serializer.d.ts +3 -0
- package/dist/types/serializer/misc/logical-expression-serializer.d.ts +7 -6
- package/dist/types/serializer/misc/parameter-list-serializer.d.ts +3 -0
- package/dist/types/serializer/network/hostname-list-serializer.d.ts +3 -0
- package/dist/types/utils/adblockers.d.ts +7 -6
- package/dist/types/utils/constants.d.ts +5 -0
- package/dist/types/utils/domain.d.ts +3 -0
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/input-byte-buffer.d.ts +6 -0
- package/dist/types/utils/output-byte-buffer.d.ts +6 -0
- package/dist/types/utils/quotes.d.ts +7 -6
- package/dist/types/utils/regexp.d.ts +21 -0
- package/dist/types/utils/string.d.ts +3 -0
- package/dist/types/validator/value.d.ts +2 -1
- package/dist/{esm/utils/adblockers.mjs → utils/adblockers.js} +8 -9
- package/dist/{esm/utils/binary-schema-version.mjs → utils/binary-schema-version.js} +2 -2
- package/dist/{esm/utils/byte-buffer.mjs → utils/byte-buffer.js} +2 -2
- package/dist/{esm/utils/categorizer.mjs → utils/categorizer.js} +5 -5
- package/dist/{esm/utils/clone.mjs → utils/clone.js} +2 -2
- package/dist/{esm/utils/constants.mjs → utils/constants.js} +10 -3
- package/dist/{esm/utils/cosmetic-rule-separator.mjs → utils/cosmetic-rule-separator.js} +4 -4
- package/dist/{esm/utils/deep-freeze.mjs → utils/deep-freeze.js} +2 -2
- package/dist/{esm/utils/domain.mjs → utils/domain.js} +6 -3
- package/dist/{esm/utils/error.mjs → utils/error.js} +2 -2
- package/dist/utils/index.js +21 -0
- package/dist/{esm/utils/input-byte-buffer.mjs → utils/input-byte-buffer.js} +17 -8
- package/dist/{esm/utils/is-chromium.mjs → utils/is-chromium.js} +2 -2
- package/dist/{esm/utils/logical-expression.mjs → utils/logical-expression.js} +4 -4
- package/dist/{esm/utils/multi-value-map.mjs → utils/multi-value-map.js} +3 -3
- package/dist/{esm/utils/output-byte-buffer.mjs → utils/output-byte-buffer.js} +14 -6
- package/dist/{esm/utils/position-provider.mjs → utils/position-provider.js} +3 -3
- package/dist/{esm/utils/quotes.mjs → utils/quotes.js} +9 -10
- package/dist/{esm/utils/regexp.mjs → utils/regexp.js} +49 -3
- package/dist/{esm/utils/string.mjs → utils/string.js} +6 -3
- package/dist/{esm/utils/text-decoder-polyfill.mjs → utils/text-decoder-polyfill.js} +3 -3
- package/dist/{esm/utils/text-encoder-polyfill.mjs → utils/text-encoder-polyfill.js} +2 -2
- package/dist/{esm/utils/type-guards.mjs → utils/type-guards.js} +2 -2
- package/dist/{esm/validator/constants.mjs → validator/constants.js} +4 -4
- package/dist/{esm/validator/helpers.mjs → validator/helpers.js} +4 -4
- package/dist/{esm/validator/index.mjs → validator/index.js} +11 -11
- package/dist/{esm/validator/value.mjs → validator/value.js} +34 -29
- package/dist/{esm/version.mjs → version.js} +3 -3
- package/package.json +24 -70
- package/dist/cjs/ast-utils/clone.js +0 -65
- package/dist/cjs/ast-utils/modifiers.js +0 -56
- package/dist/cjs/ast-utils/network-rules.js +0 -43
- package/dist/cjs/ast-utils/scriptlets.js +0 -93
- package/dist/cjs/common/abp-snippet-injection-body-common.js +0 -18
- package/dist/cjs/common/agent-common.js +0 -58
- package/dist/cjs/common/ubo-selector-common.js +0 -18
- package/dist/cjs/compatibility-tables/base.js +0 -264
- package/dist/cjs/compatibility-tables/compatibility-table-data.js +0 -15
- package/dist/cjs/compatibility-tables/modifiers.js +0 -57
- package/dist/cjs/compatibility-tables/platforms.js +0 -58
- package/dist/cjs/compatibility-tables/redirects.js +0 -102
- package/dist/cjs/compatibility-tables/schemas/base.js +0 -116
- package/dist/cjs/compatibility-tables/schemas/modifier.js +0 -107
- package/dist/cjs/compatibility-tables/schemas/platform.js +0 -71
- package/dist/cjs/compatibility-tables/schemas/redirect.js +0 -31
- package/dist/cjs/compatibility-tables/schemas/resource-type.js +0 -39
- package/dist/cjs/compatibility-tables/schemas/scriptlet.js +0 -81
- package/dist/cjs/compatibility-tables/scriptlets.js +0 -30
- package/dist/cjs/compatibility-tables/utils/platform-helpers.js +0 -112
- package/dist/cjs/compatibility-tables/utils/resource-type-helpers.js +0 -64
- package/dist/cjs/compatibility-tables/utils/zod-camelcase.js +0 -27
- package/dist/cjs/converter/base-interfaces/base-converter.js +0 -61
- package/dist/cjs/converter/base-interfaces/conversion-result.js +0 -41
- package/dist/cjs/converter/base-interfaces/rule-converter-base.js +0 -62
- package/dist/cjs/converter/comment/index.js +0 -56
- package/dist/cjs/converter/cosmetic/css.js +0 -71
- package/dist/cjs/converter/cosmetic/element-hiding.js +0 -64
- package/dist/cjs/converter/cosmetic/header-removal.js +0 -126
- package/dist/cjs/converter/cosmetic/html.js +0 -384
- package/dist/cjs/converter/cosmetic/index.js +0 -120
- package/dist/cjs/converter/cosmetic/rule-modifiers/adg.js +0 -81
- package/dist/cjs/converter/cosmetic/scriptlet.js +0 -356
- package/dist/cjs/converter/css/index.js +0 -193
- package/dist/cjs/converter/data/css.js +0 -133
- package/dist/cjs/converter/filter-list.js +0 -90
- package/dist/cjs/converter/index.js +0 -15
- package/dist/cjs/converter/misc/network-rule-modifier.js +0 -313
- package/dist/cjs/converter/network/index.js +0 -101
- package/dist/cjs/converter/raw-filter-list.js +0 -58
- package/dist/cjs/converter/rule.js +0 -83
- package/dist/cjs/deserializer/base-deserializer.js +0 -31
- package/dist/cjs/deserializer/comment/agent-comment-deserializer.js +0 -76
- package/dist/cjs/deserializer/comment/agent-deserializer.js +0 -67
- package/dist/cjs/deserializer/comment/comment-rule-deserializer.js +0 -109
- package/dist/cjs/deserializer/comment/config-comment-deserializer.js +0 -113
- package/dist/cjs/deserializer/comment/hint-comment-deserializer.js +0 -69
- package/dist/cjs/deserializer/comment/hint-deserializer.js +0 -88
- package/dist/cjs/deserializer/comment/metadata-comment-deserializer.js +0 -71
- package/dist/cjs/deserializer/comment/pre-processor-comment-deserializer.js +0 -114
- package/dist/cjs/deserializer/comment/simple-comment-deserializer.js +0 -67
- package/dist/cjs/deserializer/cosmetic/cosmetic-rule-deserializer.js +0 -127
- package/dist/cjs/deserializer/cosmetic/css-injection-body-deserializer.js +0 -55
- package/dist/cjs/deserializer/cosmetic/element-hiding-body-deserializer.js +0 -46
- package/dist/cjs/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +0 -37
- package/dist/cjs/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +0 -37
- package/dist/cjs/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +0 -52
- package/dist/cjs/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +0 -38
- package/dist/cjs/deserializer/empty-rule-deserializer.js +0 -46
- package/dist/cjs/deserializer/filterlist-deserializer.js +0 -83
- package/dist/cjs/deserializer/index.js +0 -15
- package/dist/cjs/deserializer/invalid-rule-deserializer.js +0 -48
- package/dist/cjs/deserializer/invalid-rule-error-node-deserializer.js +0 -48
- package/dist/cjs/deserializer/misc/domain-list-deserializer.js +0 -66
- package/dist/cjs/deserializer/misc/list-item-deserializer.js +0 -65
- package/dist/cjs/deserializer/misc/list-items-deserializer.js +0 -28
- package/dist/cjs/deserializer/misc/logical-expression-deserializer.js +0 -199
- package/dist/cjs/deserializer/misc/modifier-deserializer.js +0 -89
- package/dist/cjs/deserializer/misc/modifier-list-deserializer.js +0 -58
- package/dist/cjs/deserializer/misc/parameter-list-deserializer.js +0 -62
- package/dist/cjs/deserializer/misc/value-deserializer.js +0 -52
- package/dist/cjs/deserializer/network/host-rule-deserializer.js +0 -81
- package/dist/cjs/deserializer/network/hostname-list-deserializer.js +0 -50
- package/dist/cjs/deserializer/network/network-rule-deserializer.js +0 -67
- package/dist/cjs/deserializer/rule-deserializer.js +0 -67
- package/dist/cjs/deserializer/syntax-deserialization-map.js +0 -23
- package/dist/cjs/errors/adblock-syntax-error.js +0 -41
- package/dist/cjs/errors/binary-schema-mismatch-error.js +0 -39
- package/dist/cjs/errors/not-implemented-error.js +0 -33
- package/dist/cjs/errors/rule-conversion-error.js +0 -28
- package/dist/cjs/generator/base-generator.js +0 -29
- package/dist/cjs/generator/comment/agent-comment-generator.js +0 -30
- package/dist/cjs/generator/comment/agent-generator.js +0 -34
- package/dist/cjs/generator/comment/comment-rule-generator.js +0 -102
- package/dist/cjs/generator/comment/config-comment-generator.js +0 -44
- package/dist/cjs/generator/comment/hint-comment-generator.js +0 -27
- package/dist/cjs/generator/comment/hint-generator.js +0 -32
- package/dist/cjs/generator/comment/metadata-comment-generator.js +0 -32
- package/dist/cjs/generator/comment/pre-processor-comment-generator.js +0 -47
- package/dist/cjs/generator/comment/simple-comment-generator.js +0 -28
- package/dist/cjs/generator/cosmetic/body/abp-snippet-injection-body-generator.js +0 -36
- package/dist/cjs/generator/cosmetic/body/adg-scriptlet-injection-body-generator.js +0 -41
- package/dist/cjs/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js +0 -43
- package/dist/cjs/generator/cosmetic/cosmetic-rule-body-generator.js +0 -92
- package/dist/cjs/generator/cosmetic/cosmetic-rule-generator.js +0 -66
- package/dist/cjs/generator/cosmetic/cosmetic-rule-pattern-generator.js +0 -41
- package/dist/cjs/generator/css/adg-css-injection-generator.js +0 -41
- package/dist/cjs/generator/filterlist-generator.js +0 -57
- package/dist/cjs/generator/index.js +0 -17
- package/dist/cjs/generator/misc/domain-list-generator.js +0 -25
- package/dist/cjs/generator/misc/list-items-generator.js +0 -38
- package/dist/cjs/generator/misc/logical-expression-generator.js +0 -47
- package/dist/cjs/generator/misc/modifier-generator.js +0 -33
- package/dist/cjs/generator/misc/modifier-list-generator.js +0 -28
- package/dist/cjs/generator/misc/parameter-list-generator.js +0 -41
- package/dist/cjs/generator/misc/value-generator.js +0 -23
- package/dist/cjs/generator/network/host-rule-generator.js +0 -38
- package/dist/cjs/generator/network/network-rule-generator.js +0 -37
- package/dist/cjs/generator/rule-generator.js +0 -64
- package/dist/cjs/index.js +0 -201
- package/dist/cjs/marshalling-utils/comment/agent-comment-common.js +0 -22
- package/dist/cjs/marshalling-utils/comment/agent-common.js +0 -43
- package/dist/cjs/marshalling-utils/comment/config-comment-common.js +0 -58
- package/dist/cjs/marshalling-utils/comment/hint-comment-common.js +0 -23
- package/dist/cjs/marshalling-utils/comment/hint-common.js +0 -60
- package/dist/cjs/marshalling-utils/comment/metadata-comment-common.js +0 -44
- package/dist/cjs/marshalling-utils/comment/pre-processor-comment-common.js +0 -63
- package/dist/cjs/marshalling-utils/comment/simple-comment-common.js +0 -23
- package/dist/cjs/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +0 -64
- package/dist/cjs/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +0 -68
- package/dist/cjs/marshalling-utils/cosmetic/body/css-injection-body-common.js +0 -25
- package/dist/cjs/marshalling-utils/cosmetic/body/element-hiding-body-common.js +0 -22
- package/dist/cjs/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +0 -116
- package/dist/cjs/marshalling-utils/cosmetic/cosmetic-rule-common.js +0 -51
- package/dist/cjs/marshalling-utils/filter-list-common.js +0 -22
- package/dist/cjs/marshalling-utils/invalid-rule-common.js +0 -22
- package/dist/cjs/marshalling-utils/invalid-rule-error-node-common.js +0 -23
- package/dist/cjs/marshalling-utils/misc/binary-type-common.js +0 -67
- package/dist/cjs/marshalling-utils/misc/domain-list-common.js +0 -39
- package/dist/cjs/marshalling-utils/misc/host-rule-common.js +0 -26
- package/dist/cjs/marshalling-utils/misc/hostname-list-common.js +0 -22
- package/dist/cjs/marshalling-utils/misc/list-item-common.js +0 -23
- package/dist/cjs/marshalling-utils/misc/logical-expression-common.js +0 -89
- package/dist/cjs/marshalling-utils/misc/modifier-common.js +0 -236
- package/dist/cjs/marshalling-utils/misc/modifier-list-common.js +0 -22
- package/dist/cjs/marshalling-utils/misc/parameter-list-common.js +0 -22
- package/dist/cjs/marshalling-utils/misc/value-common.js +0 -23
- package/dist/cjs/marshalling-utils/network/network-rule-common.js +0 -26
- package/dist/cjs/marshalling-utils/syntax-serialization-map.js +0 -32
- package/dist/cjs/nodes/index.js +0 -180
- package/dist/cjs/package.json.js +0 -11
- package/dist/cjs/parser/base-parser.js +0 -32
- package/dist/cjs/parser/comment/agent-comment-parser.js +0 -121
- package/dist/cjs/parser/comment/agent-parser.js +0 -111
- package/dist/cjs/parser/comment/comment-parser.js +0 -110
- package/dist/cjs/parser/comment/config-comment-parser.js +0 -139
- package/dist/cjs/parser/comment/hint-comment-parser.js +0 -119
- package/dist/cjs/parser/comment/hint-parser.js +0 -131
- package/dist/cjs/parser/comment/metadata-comment-parser.js +0 -131
- package/dist/cjs/parser/comment/preprocessor-parser.js +0 -201
- package/dist/cjs/parser/comment/simple-comment-parser.js +0 -108
- package/dist/cjs/parser/cosmetic/body/abp-snippet-injection-body-parser.js +0 -81
- package/dist/cjs/parser/cosmetic/body/adg-scriptlet-injection-body-parser.js +0 -151
- package/dist/cjs/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js +0 -112
- package/dist/cjs/parser/cosmetic/cosmetic-rule-parser.js +0 -456
- package/dist/cjs/parser/css/adg-css-injection-parser.js +0 -213
- package/dist/cjs/parser/css/balancing.js +0 -97
- package/dist/cjs/parser/css/constants.js +0 -21
- package/dist/cjs/parser/css/css-token-stream.js +0 -345
- package/dist/cjs/parser/css/ubo-selector-parser.js +0 -373
- package/dist/cjs/parser/filterlist-parser.js +0 -104
- package/dist/cjs/parser/index.js +0 -21
- package/dist/cjs/parser/misc/app-list-parser.js +0 -47
- package/dist/cjs/parser/misc/domain-list-parser.js +0 -54
- package/dist/cjs/parser/misc/list-items-parser.js +0 -116
- package/dist/cjs/parser/misc/logical-expression-parser.js +0 -283
- package/dist/cjs/parser/misc/method-list-parser.js +0 -48
- package/dist/cjs/parser/misc/modifier-list.js +0 -72
- package/dist/cjs/parser/misc/modifier-parser.js +0 -91
- package/dist/cjs/parser/misc/parameter-list-parser.js +0 -74
- package/dist/cjs/parser/misc/stealth-option-list-parser.js +0 -48
- package/dist/cjs/parser/misc/ubo-parameter-list-parser.js +0 -148
- package/dist/cjs/parser/misc/value-parser.js +0 -39
- package/dist/cjs/parser/network/host-rule-parser.js +0 -151
- package/dist/cjs/parser/network/network-rule-parser.js +0 -113
- package/dist/cjs/parser/options.js +0 -25
- package/dist/cjs/parser/rule-parser.js +0 -194
- package/dist/cjs/serializer/base-serializer.js +0 -31
- package/dist/cjs/serializer/comment/agent-comment-serializer.js +0 -73
- package/dist/cjs/serializer/comment/agent-serializer.js +0 -70
- package/dist/cjs/serializer/comment/comment-rule-serializer.js +0 -107
- package/dist/cjs/serializer/comment/config-comment-serializer.js +0 -84
- package/dist/cjs/serializer/comment/hint-comment-serializer.js +0 -64
- package/dist/cjs/serializer/comment/hint-serializer.js +0 -56
- package/dist/cjs/serializer/comment/metadata-comment-serializer.js +0 -75
- package/dist/cjs/serializer/comment/pre-processor-comment-serializer.js +0 -73
- package/dist/cjs/serializer/comment/simple-comment-serializer.js +0 -54
- package/dist/cjs/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +0 -38
- package/dist/cjs/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +0 -38
- package/dist/cjs/serializer/cosmetic/body/scriptlet-body-serializer.js +0 -49
- package/dist/cjs/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +0 -38
- package/dist/cjs/serializer/cosmetic/cosmetic-rule-serializer.js +0 -131
- package/dist/cjs/serializer/cosmetic/css-injection-body-serializer.js +0 -50
- package/dist/cjs/serializer/cosmetic/element-hiding-body-serializer.js +0 -39
- package/dist/cjs/serializer/empty-rule-serializer.js +0 -36
- package/dist/cjs/serializer/filterlist-serializer.js +0 -48
- package/dist/cjs/serializer/index.js +0 -13
- package/dist/cjs/serializer/invalid-rule-error-node-serializer.js +0 -40
- package/dist/cjs/serializer/invalid-rule-serializer.js +0 -39
- package/dist/cjs/serializer/misc/domain-list-serializer.js +0 -66
- package/dist/cjs/serializer/misc/list-item-serializer.js +0 -57
- package/dist/cjs/serializer/misc/list-items-serializer.js +0 -28
- package/dist/cjs/serializer/misc/logical-expression-serializer.js +0 -138
- package/dist/cjs/serializer/misc/modifier-list-serializer.js +0 -57
- package/dist/cjs/serializer/misc/modifier-serializer.js +0 -51
- package/dist/cjs/serializer/misc/parameter-list-serializer.js +0 -51
- package/dist/cjs/serializer/misc/value-serializer.js +0 -52
- package/dist/cjs/serializer/network/host-rule-serializer.js +0 -72
- package/dist/cjs/serializer/network/hostname-list-serializer.js +0 -49
- package/dist/cjs/serializer/network/network-rule-serializer.js +0 -56
- package/dist/cjs/serializer/rule-serializer.js +0 -63
- package/dist/cjs/utils/adblockers.js +0 -57
- package/dist/cjs/utils/binary-schema-version.js +0 -19
- package/dist/cjs/utils/byte-buffer.js +0 -93
- package/dist/cjs/utils/categorizer.js +0 -46
- package/dist/cjs/utils/clone.js +0 -30
- package/dist/cjs/utils/constants.js +0 -380
- package/dist/cjs/utils/cosmetic-rule-separator.js +0 -129
- package/dist/cjs/utils/deep-freeze.js +0 -34
- package/dist/cjs/utils/domain.js +0 -60
- package/dist/cjs/utils/error.js +0 -51
- package/dist/cjs/utils/index.js +0 -69
- package/dist/cjs/utils/input-byte-buffer.js +0 -259
- package/dist/cjs/utils/is-chromium.js +0 -22
- package/dist/cjs/utils/logical-expression.js +0 -94
- package/dist/cjs/utils/multi-value-map.js +0 -35
- package/dist/cjs/utils/output-byte-buffer.js +0 -225
- package/dist/cjs/utils/position-provider.js +0 -75
- package/dist/cjs/utils/quotes.js +0 -218
- package/dist/cjs/utils/regexp.js +0 -190
- package/dist/cjs/utils/string.js +0 -560
- package/dist/cjs/utils/text-decoder-polyfill.js +0 -109
- package/dist/cjs/utils/text-encoder-polyfill.js +0 -80
- package/dist/cjs/utils/type-guards.js +0 -52
- package/dist/cjs/validator/constants.js +0 -222
- package/dist/cjs/validator/helpers.js +0 -49
- package/dist/cjs/validator/index.js +0 -176
- package/dist/cjs/validator/value.js +0 -565
- package/dist/cjs/version.js +0 -20
- package/dist/esm/common/ubo-selector-common.mjs +0 -18
- package/dist/esm/compatibility-tables/platforms.mjs +0 -58
- package/dist/esm/compatibility-tables/schemas/resource-type.mjs +0 -37
- package/dist/esm/converter/index.mjs +0 -8
- package/dist/esm/marshalling-utils/comment/agent-comment-common.mjs +0 -22
- package/dist/esm/marshalling-utils/comment/hint-comment-common.mjs +0 -23
- package/dist/esm/marshalling-utils/comment/simple-comment-common.mjs +0 -23
- package/dist/esm/marshalling-utils/cosmetic/body/css-injection-body-common.mjs +0 -25
- package/dist/esm/marshalling-utils/cosmetic/body/element-hiding-body-common.mjs +0 -22
- package/dist/esm/marshalling-utils/filter-list-common.mjs +0 -22
- package/dist/esm/marshalling-utils/invalid-rule-error-node-common.mjs +0 -23
- package/dist/esm/marshalling-utils/misc/binary-type-common.mjs +0 -67
- package/dist/esm/marshalling-utils/misc/host-rule-common.mjs +0 -26
- package/dist/esm/marshalling-utils/misc/hostname-list-common.mjs +0 -22
- package/dist/esm/marshalling-utils/misc/list-item-common.mjs +0 -23
- package/dist/esm/marshalling-utils/misc/logical-expression-common.mjs +0 -86
- package/dist/esm/marshalling-utils/misc/modifier-list-common.mjs +0 -22
- package/dist/esm/marshalling-utils/misc/parameter-list-common.mjs +0 -22
- package/dist/esm/marshalling-utils/misc/value-common.mjs +0 -23
- package/dist/esm/marshalling-utils/network/network-rule-common.mjs +0 -26
- package/dist/esm/parser/index.mjs +0 -11
- package/dist/esm/serializer/index.mjs +0 -7
- package/dist/esm/utils/index.mjs +0 -21
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
-
* (c) 2024 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var constants = require('../utils/constants.js');
|
|
10
|
-
var typeGuards = require('../utils/type-guards.js');
|
|
11
|
-
var baseSerializer = require('./base-serializer.js');
|
|
12
|
-
var ruleSerializer = require('./rule-serializer.js');
|
|
13
|
-
var filterListCommon = require('../marshalling-utils/filter-list-common.js');
|
|
14
|
-
var binaryTypeCommon = require('../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* `FilterListParser` is responsible for parsing a whole adblock filter list (list of rules).
|
|
18
|
-
* It is a wrapper around `RuleParser` which parses each line separately.
|
|
19
|
-
*/
|
|
20
|
-
class FilterListSerializer extends baseSerializer.BaseSerializer {
|
|
21
|
-
/**
|
|
22
|
-
* Serializes a filter list node to binary format.
|
|
23
|
-
*
|
|
24
|
-
* @param node Node to serialize.
|
|
25
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
26
|
-
*/
|
|
27
|
-
// TODO: add support for raws, if ever needed
|
|
28
|
-
static serialize(node, buffer) {
|
|
29
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.FilterListNode);
|
|
30
|
-
buffer.writeUint8(filterListCommon.FilterListNodeMarshallingMap.Children);
|
|
31
|
-
const count = node.children.length;
|
|
32
|
-
buffer.writeUint32(count);
|
|
33
|
-
for (let i = 0; i < count; i += 1) {
|
|
34
|
-
ruleSerializer.RuleSerializer.serialize(node.children[i], buffer);
|
|
35
|
-
}
|
|
36
|
-
if (!typeGuards.isUndefined(node.start)) {
|
|
37
|
-
buffer.writeUint8(filterListCommon.FilterListNodeMarshallingMap.Start);
|
|
38
|
-
buffer.writeUint32(node.start);
|
|
39
|
-
}
|
|
40
|
-
if (!typeGuards.isUndefined(node.end)) {
|
|
41
|
-
buffer.writeUint8(filterListCommon.FilterListNodeMarshallingMap.End);
|
|
42
|
-
buffer.writeUint32(node.end);
|
|
43
|
-
}
|
|
44
|
-
buffer.writeUint8(constants.NULL);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
exports.FilterListSerializer = FilterListSerializer;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
-
* (c) 2024 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var ruleSerializer = require('./rule-serializer.js');
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
exports.RuleSerializer = ruleSerializer.RuleSerializer;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
-
* (c) 2024 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var baseSerializer = require('./base-serializer.js');
|
|
10
|
-
var typeGuards = require('../utils/type-guards.js');
|
|
11
|
-
var constants = require('../utils/constants.js');
|
|
12
|
-
var invalidRuleErrorNodeCommon = require('../marshalling-utils/invalid-rule-error-node-common.js');
|
|
13
|
-
var binaryTypeCommon = require('../marshalling-utils/misc/binary-type-common.js');
|
|
14
|
-
|
|
15
|
-
class InvalidRuleErrorNodeSerializer extends baseSerializer.BaseSerializer {
|
|
16
|
-
/**
|
|
17
|
-
* Serializes an invalid rule error node to binary format.
|
|
18
|
-
*
|
|
19
|
-
* @param node Node to serialize.
|
|
20
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
21
|
-
*/
|
|
22
|
-
static serialize(node, buffer) {
|
|
23
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.InvalidRuleErrorNode);
|
|
24
|
-
buffer.writeUint8(invalidRuleErrorNodeCommon.InvalidRuleErrorNodeMarshallingMap.Name);
|
|
25
|
-
buffer.writeString(node.name);
|
|
26
|
-
buffer.writeUint8(invalidRuleErrorNodeCommon.InvalidRuleErrorNodeMarshallingMap.Message);
|
|
27
|
-
buffer.writeString(node.message);
|
|
28
|
-
if (!typeGuards.isUndefined(node.start)) {
|
|
29
|
-
buffer.writeUint8(invalidRuleErrorNodeCommon.InvalidRuleErrorNodeMarshallingMap.Start);
|
|
30
|
-
buffer.writeUint32(node.start);
|
|
31
|
-
}
|
|
32
|
-
if (!typeGuards.isUndefined(node.end)) {
|
|
33
|
-
buffer.writeUint8(invalidRuleErrorNodeCommon.InvalidRuleErrorNodeMarshallingMap.End);
|
|
34
|
-
buffer.writeUint32(node.end);
|
|
35
|
-
}
|
|
36
|
-
buffer.writeUint8(constants.NULL);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
exports.InvalidRuleErrorNodeSerializer = InvalidRuleErrorNodeSerializer;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
-
* (c) 2024 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var baseSerializer = require('./base-serializer.js');
|
|
10
|
-
var typeGuards = require('../utils/type-guards.js');
|
|
11
|
-
var constants = require('../utils/constants.js');
|
|
12
|
-
var invalidRuleErrorNodeSerializer = require('./invalid-rule-error-node-serializer.js');
|
|
13
|
-
var invalidRuleCommon = require('../marshalling-utils/invalid-rule-common.js');
|
|
14
|
-
var binaryTypeCommon = require('../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
-
|
|
16
|
-
class InvalidRuleSerializer extends baseSerializer.BaseSerializer {
|
|
17
|
-
/**
|
|
18
|
-
* Serializes an invalid rule node to binary format.
|
|
19
|
-
*
|
|
20
|
-
* @param node Node to serialize.
|
|
21
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
22
|
-
*/
|
|
23
|
-
static serialize(node, buffer) {
|
|
24
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.InvalidRule);
|
|
25
|
-
buffer.writeUint8(invalidRuleCommon.InvalidRuleMarshallingMap.Error);
|
|
26
|
-
invalidRuleErrorNodeSerializer.InvalidRuleErrorNodeSerializer.serialize(node.error, buffer);
|
|
27
|
-
if (!typeGuards.isUndefined(node.start)) {
|
|
28
|
-
buffer.writeUint8(invalidRuleCommon.InvalidRuleMarshallingMap.Start);
|
|
29
|
-
buffer.writeUint32(node.start);
|
|
30
|
-
}
|
|
31
|
-
if (!typeGuards.isUndefined(node.end)) {
|
|
32
|
-
buffer.writeUint8(invalidRuleCommon.InvalidRuleMarshallingMap.End);
|
|
33
|
-
buffer.writeUint32(node.end);
|
|
34
|
-
}
|
|
35
|
-
buffer.writeUint8(constants.NULL);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
exports.InvalidRuleSerializer = InvalidRuleSerializer;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
-
* (c) 2024 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var constants = require('../../utils/constants.js');
|
|
10
|
-
var typeGuards = require('../../utils/type-guards.js');
|
|
11
|
-
var baseSerializer = require('../base-serializer.js');
|
|
12
|
-
var listItemsSerializer = require('./list-items-serializer.js');
|
|
13
|
-
var domainListCommon = require('../../marshalling-utils/misc/domain-list-common.js');
|
|
14
|
-
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Value map for binary serialization. This helps to reduce the size of the serialized data,
|
|
18
|
-
* as it allows us to use a single byte to represent frequently used values.
|
|
19
|
-
*
|
|
20
|
-
* ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
|
|
21
|
-
*
|
|
22
|
-
* @note Only 256 values can be represented this way.
|
|
23
|
-
*/
|
|
24
|
-
const SEPARATOR_SERIALIZATION_MAP = new Map([
|
|
25
|
-
[constants.COMMA, 0],
|
|
26
|
-
[constants.PIPE, 1],
|
|
27
|
-
]);
|
|
28
|
-
/**
|
|
29
|
-
* `DomainListParser` is responsible for parsing a domain list.
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* - If the rule is `example.com,~example.net##.ads`, the domain list is `example.com,~example.net`.
|
|
33
|
-
* - If the rule is `ads.js^$script,domains=example.com|~example.org`, the domain list is `example.com|~example.org`.
|
|
34
|
-
* This parser is responsible for parsing these domain lists.
|
|
35
|
-
* @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#elemhide_domains}
|
|
36
|
-
*/
|
|
37
|
-
class DomainListSerializer extends baseSerializer.BaseSerializer {
|
|
38
|
-
/**
|
|
39
|
-
* Serializes a domain list node to binary format.
|
|
40
|
-
*
|
|
41
|
-
* @param node Node to serialize.
|
|
42
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
43
|
-
*/
|
|
44
|
-
static serialize(node, buffer) {
|
|
45
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.DomainListNode);
|
|
46
|
-
const separator = SEPARATOR_SERIALIZATION_MAP.get(node.separator);
|
|
47
|
-
if (typeGuards.isUndefined(separator)) {
|
|
48
|
-
throw new Error(`Invalid separator: ${node.separator}`);
|
|
49
|
-
}
|
|
50
|
-
buffer.writeUint8(domainListCommon.DomainListMarshallingMap.Separator);
|
|
51
|
-
buffer.writeUint8(separator);
|
|
52
|
-
buffer.writeUint8(domainListCommon.DomainListMarshallingMap.Children);
|
|
53
|
-
listItemsSerializer.ListItemsSerializer.serialize(node.children, buffer);
|
|
54
|
-
if (!typeGuards.isUndefined(node.start)) {
|
|
55
|
-
buffer.writeUint8(domainListCommon.DomainListMarshallingMap.Start);
|
|
56
|
-
buffer.writeUint32(node.start);
|
|
57
|
-
}
|
|
58
|
-
if (!typeGuards.isUndefined(node.end)) {
|
|
59
|
-
buffer.writeUint8(domainListCommon.DomainListMarshallingMap.End);
|
|
60
|
-
buffer.writeUint32(node.end);
|
|
61
|
-
}
|
|
62
|
-
buffer.writeUint8(constants.NULL);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
exports.DomainListSerializer = DomainListSerializer;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
-
* (c) 2024 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var baseSerializer = require('../base-serializer.js');
|
|
10
|
-
var index = require('../../nodes/index.js');
|
|
11
|
-
var typeGuards = require('../../utils/type-guards.js');
|
|
12
|
-
var constants = require('../../utils/constants.js');
|
|
13
|
-
var listItemCommon = require('../../marshalling-utils/misc/list-item-common.js');
|
|
14
|
-
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
-
|
|
16
|
-
class ListItemSerializer extends baseSerializer.BaseSerializer {
|
|
17
|
-
/**
|
|
18
|
-
* Serializes a list item to binary format.
|
|
19
|
-
*
|
|
20
|
-
* @param item List item to serialize.
|
|
21
|
-
* @param buffer Output byte buffer.
|
|
22
|
-
* @template T Type of the list item.
|
|
23
|
-
*/
|
|
24
|
-
static serialize(item, buffer) {
|
|
25
|
-
switch (item.type) {
|
|
26
|
-
case index.ListItemNodeType.App:
|
|
27
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.AppNode);
|
|
28
|
-
break;
|
|
29
|
-
case index.ListItemNodeType.Domain:
|
|
30
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.DomainNode);
|
|
31
|
-
break;
|
|
32
|
-
case index.ListItemNodeType.Method:
|
|
33
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.MethodNode);
|
|
34
|
-
break;
|
|
35
|
-
case index.ListItemNodeType.StealthOption:
|
|
36
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.StealthOptionNode);
|
|
37
|
-
break;
|
|
38
|
-
default:
|
|
39
|
-
throw new Error(`Invalid list item type: ${item.type}`);
|
|
40
|
-
}
|
|
41
|
-
buffer.writeUint8(listItemCommon.ListItemMarshallingMap.Exception);
|
|
42
|
-
buffer.writeUint8(item.exception ? 1 : 0);
|
|
43
|
-
buffer.writeUint8(listItemCommon.ListItemMarshallingMap.Value);
|
|
44
|
-
buffer.writeString(item.value);
|
|
45
|
-
if (!typeGuards.isUndefined(item.start)) {
|
|
46
|
-
buffer.writeUint8(listItemCommon.ListItemMarshallingMap.Start);
|
|
47
|
-
buffer.writeUint32(item.start);
|
|
48
|
-
}
|
|
49
|
-
if (!typeGuards.isUndefined(item.end)) {
|
|
50
|
-
buffer.writeUint8(listItemCommon.ListItemMarshallingMap.End);
|
|
51
|
-
buffer.writeUint32(item.end);
|
|
52
|
-
}
|
|
53
|
-
buffer.writeUint8(constants.NULL);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
exports.ListItemSerializer = ListItemSerializer;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
-
* (c) 2024 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var listItemSerializer = require('./list-item-serializer.js');
|
|
10
|
-
|
|
11
|
-
class ListItemsSerializer {
|
|
12
|
-
/**
|
|
13
|
-
* Serializes a list of items to binary format.
|
|
14
|
-
*
|
|
15
|
-
* @param items List of items to serialize.
|
|
16
|
-
* @param buffer Output byte buffer.
|
|
17
|
-
* @template T Type of the list items.
|
|
18
|
-
*/
|
|
19
|
-
static serialize(items, buffer) {
|
|
20
|
-
const { length } = items;
|
|
21
|
-
buffer.writeUint16(length);
|
|
22
|
-
for (let i = 0; i < length; i += 1) {
|
|
23
|
-
listItemSerializer.ListItemSerializer.serialize(items[i], buffer);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
exports.ListItemsSerializer = ListItemsSerializer;
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
-
* (c) 2024 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var constants = require('../../utils/constants.js');
|
|
10
|
-
var typeGuards = require('../../utils/type-guards.js');
|
|
11
|
-
var baseSerializer = require('../base-serializer.js');
|
|
12
|
-
var logicalExpressionCommon = require('../../marshalling-utils/misc/logical-expression-common.js');
|
|
13
|
-
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Possible node types in the logical expression.
|
|
17
|
-
*/
|
|
18
|
-
exports.NodeType = void 0;
|
|
19
|
-
(function (NodeType) {
|
|
20
|
-
NodeType["Variable"] = "Variable";
|
|
21
|
-
NodeType["Operator"] = "Operator";
|
|
22
|
-
NodeType["Parenthesis"] = "Parenthesis";
|
|
23
|
-
})(exports.NodeType || (exports.NodeType = {}));
|
|
24
|
-
/**
|
|
25
|
-
* `LogicalExpressionParser` is responsible for parsing logical expressions.
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* From the following rule:
|
|
29
|
-
* ```adblock
|
|
30
|
-
* !#if (adguard_ext_android_cb || adguard_ext_safari)
|
|
31
|
-
* ```
|
|
32
|
-
* this parser will parse the expression `(adguard_ext_android_cb || adguard_ext_safari)`.
|
|
33
|
-
*/
|
|
34
|
-
// TODO: Refactor this class
|
|
35
|
-
class LogicalExpressionSerializer extends baseSerializer.BaseSerializer {
|
|
36
|
-
/**
|
|
37
|
-
* Serializes a variable node to binary format.
|
|
38
|
-
*
|
|
39
|
-
* @param node Node to serialize.
|
|
40
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
41
|
-
*/
|
|
42
|
-
// TODO: create a common serialize / deserialize interface for such nodes (Variable, Value, Parameter, etc.)
|
|
43
|
-
static serializeVariableNode(node, buffer) {
|
|
44
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ExpressionVariableNode);
|
|
45
|
-
const frequentName = logicalExpressionCommon.KNOWN_VARIABLES_SERIALIZATION_MAP.get(node.name);
|
|
46
|
-
if (!typeGuards.isUndefined(frequentName)) {
|
|
47
|
-
buffer.writeUint8(logicalExpressionCommon.VariableNodeBinaryPropMarshallingMap.FrequentName);
|
|
48
|
-
buffer.writeUint8(frequentName);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
buffer.writeUint8(logicalExpressionCommon.VariableNodeBinaryPropMarshallingMap.Name);
|
|
52
|
-
buffer.writeString(node.name);
|
|
53
|
-
}
|
|
54
|
-
if (!typeGuards.isUndefined(node.start)) {
|
|
55
|
-
buffer.writeUint8(logicalExpressionCommon.VariableNodeBinaryPropMarshallingMap.Start);
|
|
56
|
-
buffer.writeUint32(node.start);
|
|
57
|
-
}
|
|
58
|
-
if (!typeGuards.isUndefined(node.end)) {
|
|
59
|
-
buffer.writeUint8(logicalExpressionCommon.VariableNodeBinaryPropMarshallingMap.End);
|
|
60
|
-
buffer.writeUint32(node.end);
|
|
61
|
-
}
|
|
62
|
-
buffer.writeUint8(constants.NULL);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Serializes a parenthesis node to binary format.
|
|
66
|
-
*
|
|
67
|
-
* @param node Node to serialize.
|
|
68
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
69
|
-
*/
|
|
70
|
-
static serializeParenthesisNode(node, buffer) {
|
|
71
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ExpressionParenthesisNode);
|
|
72
|
-
buffer.writeUint8(logicalExpressionCommon.ParenthesisNodeBinaryPropMarshallingMap.Expression);
|
|
73
|
-
LogicalExpressionSerializer.serialize(node.expression, buffer);
|
|
74
|
-
if (!typeGuards.isUndefined(node.start)) {
|
|
75
|
-
buffer.writeUint8(logicalExpressionCommon.ParenthesisNodeBinaryPropMarshallingMap.Start);
|
|
76
|
-
buffer.writeUint32(node.start);
|
|
77
|
-
}
|
|
78
|
-
if (!typeGuards.isUndefined(node.end)) {
|
|
79
|
-
buffer.writeUint8(logicalExpressionCommon.ParenthesisNodeBinaryPropMarshallingMap.End);
|
|
80
|
-
buffer.writeUint32(node.end);
|
|
81
|
-
}
|
|
82
|
-
buffer.writeUint8(constants.NULL);
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Serializes an operator node to binary format.
|
|
86
|
-
*
|
|
87
|
-
* @param node Node to serialize.
|
|
88
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
89
|
-
*/
|
|
90
|
-
static serializeOperatorNode(node, buffer) {
|
|
91
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ExpressionOperatorNode);
|
|
92
|
-
buffer.writeUint8(logicalExpressionCommon.OperatorNodeBinaryPropMarshallingMap.Operator);
|
|
93
|
-
const operatorBinary = logicalExpressionCommon.LOGICAL_EXPRESSION_OPERATOR_SERIALISATION_MAP.get(node.operator);
|
|
94
|
-
if (typeGuards.isUndefined(operatorBinary)) {
|
|
95
|
-
throw new Error(`Unknown operator: ${node.operator}`);
|
|
96
|
-
}
|
|
97
|
-
buffer.writeUint8(operatorBinary);
|
|
98
|
-
buffer.writeUint8(logicalExpressionCommon.OperatorNodeBinaryPropMarshallingMap.Left);
|
|
99
|
-
LogicalExpressionSerializer.serialize(node.left, buffer);
|
|
100
|
-
if (node.right) {
|
|
101
|
-
buffer.writeUint8(logicalExpressionCommon.OperatorNodeBinaryPropMarshallingMap.Right);
|
|
102
|
-
LogicalExpressionSerializer.serialize(node.right, buffer);
|
|
103
|
-
}
|
|
104
|
-
if (!typeGuards.isUndefined(node.start)) {
|
|
105
|
-
buffer.writeUint8(logicalExpressionCommon.OperatorNodeBinaryPropMarshallingMap.Start);
|
|
106
|
-
buffer.writeUint32(node.start);
|
|
107
|
-
}
|
|
108
|
-
if (!typeGuards.isUndefined(node.end)) {
|
|
109
|
-
buffer.writeUint8(logicalExpressionCommon.OperatorNodeBinaryPropMarshallingMap.End);
|
|
110
|
-
buffer.writeUint32(node.end);
|
|
111
|
-
}
|
|
112
|
-
buffer.writeUint8(constants.NULL);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Serializes a logical expression node to binary format.
|
|
116
|
-
*
|
|
117
|
-
* @param node Node to serialize.
|
|
118
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
119
|
-
*/
|
|
120
|
-
static serialize(node, buffer) {
|
|
121
|
-
switch (node.type) {
|
|
122
|
-
case exports.NodeType.Variable:
|
|
123
|
-
LogicalExpressionSerializer.serializeVariableNode(node, buffer);
|
|
124
|
-
break;
|
|
125
|
-
case exports.NodeType.Operator:
|
|
126
|
-
LogicalExpressionSerializer.serializeOperatorNode(node, buffer);
|
|
127
|
-
break;
|
|
128
|
-
case exports.NodeType.Parenthesis:
|
|
129
|
-
LogicalExpressionSerializer.serializeParenthesisNode(node, buffer);
|
|
130
|
-
break;
|
|
131
|
-
default:
|
|
132
|
-
throw new Error(`Unexpected node type: ${node.type}`);
|
|
133
|
-
}
|
|
134
|
-
buffer.writeUint8(constants.NULL);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
exports.LogicalExpressionSerializer = LogicalExpressionSerializer;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
-
* (c) 2024 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var constants = require('../../utils/constants.js');
|
|
10
|
-
var typeGuards = require('../../utils/type-guards.js');
|
|
11
|
-
var baseSerializer = require('../base-serializer.js');
|
|
12
|
-
var modifierSerializer = require('./modifier-serializer.js');
|
|
13
|
-
var modifierListCommon = require('../../marshalling-utils/misc/modifier-list-common.js');
|
|
14
|
-
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* `ModifierListSerializer` is responsible for serializing modifier lists. Please note that the name is not
|
|
18
|
-
* uniform, "modifiers" are also known as "options".
|
|
19
|
-
*
|
|
20
|
-
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#basic-rules-modifiers}
|
|
21
|
-
* @see {@link https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#non-basic-rules-modifiers}
|
|
22
|
-
* @see {@link https://help.eyeo.com/adblockplus/how-to-write-filters#options}
|
|
23
|
-
*/
|
|
24
|
-
class ModifierListSerializer extends baseSerializer.BaseSerializer {
|
|
25
|
-
/**
|
|
26
|
-
* Serializes a modifier list node to binary format.
|
|
27
|
-
*
|
|
28
|
-
* @param node Node to serialize.
|
|
29
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
30
|
-
*/
|
|
31
|
-
static serialize(node, buffer) {
|
|
32
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ModifierListNode);
|
|
33
|
-
const count = node.children.length;
|
|
34
|
-
if (count) {
|
|
35
|
-
buffer.writeUint8(modifierListCommon.ModifierListNodeMarshallingMap.Children);
|
|
36
|
-
// note: we store the count, because re-construction of the array is faster if we know the length
|
|
37
|
-
if (count > constants.UINT16_MAX) {
|
|
38
|
-
throw new Error(`Too many modifiers: ${count}, the limit is ${constants.UINT16_MAX}`);
|
|
39
|
-
}
|
|
40
|
-
buffer.writeUint16(count);
|
|
41
|
-
for (let i = 0; i < count; i += 1) {
|
|
42
|
-
modifierSerializer.ModifierSerializer.serialize(node.children[i], buffer);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
if (!typeGuards.isUndefined(node.start)) {
|
|
46
|
-
buffer.writeUint8(modifierListCommon.ModifierListNodeMarshallingMap.Start);
|
|
47
|
-
buffer.writeUint32(node.start);
|
|
48
|
-
}
|
|
49
|
-
if (!typeGuards.isUndefined(node.end)) {
|
|
50
|
-
buffer.writeUint8(modifierListCommon.ModifierListNodeMarshallingMap.End);
|
|
51
|
-
buffer.writeUint32(node.end);
|
|
52
|
-
}
|
|
53
|
-
buffer.writeUint8(constants.NULL);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
exports.ModifierListSerializer = ModifierListSerializer;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
-
* (c) 2024 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var constants = require('../../utils/constants.js');
|
|
10
|
-
var valueSerializer = require('./value-serializer.js');
|
|
11
|
-
var typeGuards = require('../../utils/type-guards.js');
|
|
12
|
-
var baseSerializer = require('../base-serializer.js');
|
|
13
|
-
var modifierCommon = require('../../marshalling-utils/misc/modifier-common.js');
|
|
14
|
-
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* `ModifierSerializer` is responsible for serializing modifiers.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* `match-case`, `~third-party`, `domain=example.com|~example.org`
|
|
21
|
-
*/
|
|
22
|
-
class ModifierSerializer extends baseSerializer.BaseSerializer {
|
|
23
|
-
/**
|
|
24
|
-
* Serializes a modifier 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(binaryTypeCommon.BinaryTypeMarshallingMap.ModifierNode);
|
|
31
|
-
buffer.writeUint8(modifierCommon.ModifierNodeMarshallingMap.Name);
|
|
32
|
-
valueSerializer.ValueSerializer.serialize(node.name, buffer, modifierCommon.FREQUENT_MODIFIERS_SERIALIZATION_MAP);
|
|
33
|
-
if (!typeGuards.isUndefined(node.value)) {
|
|
34
|
-
buffer.writeUint8(modifierCommon.ModifierNodeMarshallingMap.Value);
|
|
35
|
-
valueSerializer.ValueSerializer.serialize(node.value, buffer, modifierCommon.FREQUENT_REDIRECT_MODIFIERS_SERIALIZATION_MAP.get(node.name.value));
|
|
36
|
-
}
|
|
37
|
-
buffer.writeUint8(modifierCommon.ModifierNodeMarshallingMap.Exception);
|
|
38
|
-
buffer.writeUint8(node.exception ? 1 : 0);
|
|
39
|
-
if (!typeGuards.isUndefined(node.start)) {
|
|
40
|
-
buffer.writeUint8(modifierCommon.ModifierNodeMarshallingMap.Start);
|
|
41
|
-
buffer.writeUint32(node.start);
|
|
42
|
-
}
|
|
43
|
-
if (!typeGuards.isUndefined(node.end)) {
|
|
44
|
-
buffer.writeUint8(modifierCommon.ModifierNodeMarshallingMap.End);
|
|
45
|
-
buffer.writeUint32(node.end);
|
|
46
|
-
}
|
|
47
|
-
buffer.writeUint8(constants.NULL);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
exports.ModifierSerializer = ModifierSerializer;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
-
* (c) 2024 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var constants = require('../../utils/constants.js');
|
|
10
|
-
var valueSerializer = require('./value-serializer.js');
|
|
11
|
-
var typeGuards = require('../../utils/type-guards.js');
|
|
12
|
-
var baseSerializer = require('../base-serializer.js');
|
|
13
|
-
var parameterListCommon = require('../../marshalling-utils/misc/parameter-list-common.js');
|
|
14
|
-
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
15
|
-
|
|
16
|
-
class ParameterListSerializer extends baseSerializer.BaseSerializer {
|
|
17
|
-
/**
|
|
18
|
-
* Serializes a parameter list 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(binaryTypeCommon.BinaryTypeMarshallingMap.ParameterListNode);
|
|
27
|
-
const count = node.children.length;
|
|
28
|
-
buffer.writeUint8(parameterListCommon.ParameterListNodeMarshallingMap.Children);
|
|
29
|
-
// note: we store the count, because re-construction of the array is faster if we know the length
|
|
30
|
-
buffer.writeUint32(count);
|
|
31
|
-
for (let i = 0; i < count; i += 1) {
|
|
32
|
-
const child = node.children[i];
|
|
33
|
-
if (typeGuards.isNull(child)) {
|
|
34
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.Null);
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
valueSerializer.ValueSerializer.serialize(child, buffer, frequentValuesMap, toLower);
|
|
38
|
-
}
|
|
39
|
-
if (!typeGuards.isUndefined(node.start)) {
|
|
40
|
-
buffer.writeUint8(parameterListCommon.ParameterListNodeMarshallingMap.Start);
|
|
41
|
-
buffer.writeUint32(node.start);
|
|
42
|
-
}
|
|
43
|
-
if (!typeGuards.isUndefined(node.end)) {
|
|
44
|
-
buffer.writeUint8(parameterListCommon.ParameterListNodeMarshallingMap.End);
|
|
45
|
-
buffer.writeUint32(node.end);
|
|
46
|
-
}
|
|
47
|
-
buffer.writeUint8(constants.NULL);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
exports.ParameterListSerializer = ParameterListSerializer;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* AGTree v3.0.0 (build date: Tue, 12 Nov 2024 14:05:06 GMT)
|
|
3
|
-
* (c) 2024 Adguard Software Ltd.
|
|
4
|
-
* Released under the MIT license
|
|
5
|
-
* https://github.com/AdguardTeam/tsurlfilter/tree/master/packages/agtree#readme
|
|
6
|
-
*/
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var constants = require('../../utils/constants.js');
|
|
10
|
-
var typeGuards = require('../../utils/type-guards.js');
|
|
11
|
-
var baseSerializer = require('../base-serializer.js');
|
|
12
|
-
var valueCommon = require('../../marshalling-utils/misc/value-common.js');
|
|
13
|
-
var binaryTypeCommon = require('../../marshalling-utils/misc/binary-type-common.js');
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Value serializer.
|
|
17
|
-
*/
|
|
18
|
-
class ValueSerializer extends baseSerializer.BaseSerializer {
|
|
19
|
-
/**
|
|
20
|
-
* Serializes a value node to binary format.
|
|
21
|
-
*
|
|
22
|
-
* @param node Node to serialize.
|
|
23
|
-
* @param buffer ByteBuffer for writing binary data.
|
|
24
|
-
* @param frequentValuesMap Optional map of frequent values.
|
|
25
|
-
* @param toLower Whether to lowercase the value before the frequent value match (defaults to `false`).
|
|
26
|
-
*/
|
|
27
|
-
static serialize(node, buffer, frequentValuesMap, toLower = false) {
|
|
28
|
-
buffer.writeUint8(binaryTypeCommon.BinaryTypeMarshallingMap.ValueNode);
|
|
29
|
-
const frequentValue = frequentValuesMap?.get(toLower ? node.value.toLowerCase() : node.value);
|
|
30
|
-
// note: do not use just `if (frequentValue)` because it can be 0
|
|
31
|
-
if (!typeGuards.isUndefined(frequentValue)) {
|
|
32
|
-
buffer.writeUint8(valueCommon.ValueNodeMarshallingMap.FrequentValue);
|
|
33
|
-
buffer.writeUint8(frequentValue);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
buffer.writeUint8(valueCommon.ValueNodeMarshallingMap.Value);
|
|
37
|
-
buffer.writeString(node.value);
|
|
38
|
-
}
|
|
39
|
-
// note: do not use just `if (node.start)` because it can be 0
|
|
40
|
-
if (!typeGuards.isUndefined(node.start)) {
|
|
41
|
-
buffer.writeUint8(valueCommon.ValueNodeMarshallingMap.Start);
|
|
42
|
-
buffer.writeUint32(node.start);
|
|
43
|
-
}
|
|
44
|
-
if (!typeGuards.isUndefined(node.end)) {
|
|
45
|
-
buffer.writeUint8(valueCommon.ValueNodeMarshallingMap.End);
|
|
46
|
-
buffer.writeUint32(node.end);
|
|
47
|
-
}
|
|
48
|
-
buffer.writeUint8(constants.NULL);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
exports.ValueSerializer = ValueSerializer;
|