@adguard/agtree 2.1.2 → 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ast-utils/clone.js +65 -0
- package/dist/cjs/ast-utils/modifiers.js +56 -0
- package/dist/cjs/ast-utils/network-rules.js +43 -0
- package/dist/cjs/ast-utils/scriptlets.js +93 -0
- package/dist/cjs/common/abp-snippet-injection-body-common.js +18 -0
- package/dist/cjs/common/agent-common.js +58 -0
- package/dist/cjs/common/ubo-selector-common.js +18 -0
- package/dist/cjs/compatibility-tables/base.js +264 -0
- package/dist/cjs/compatibility-tables/compatibility-table-data.js +15 -0
- package/dist/cjs/compatibility-tables/modifiers.js +57 -0
- package/dist/cjs/compatibility-tables/platforms.js +58 -0
- package/dist/cjs/compatibility-tables/redirects.js +102 -0
- package/dist/cjs/compatibility-tables/schemas/base.js +116 -0
- package/dist/cjs/compatibility-tables/schemas/modifier.js +107 -0
- package/dist/cjs/compatibility-tables/schemas/platform.js +71 -0
- package/dist/cjs/compatibility-tables/schemas/redirect.js +31 -0
- package/dist/cjs/compatibility-tables/schemas/resource-type.js +39 -0
- package/dist/cjs/compatibility-tables/schemas/scriptlet.js +81 -0
- package/dist/cjs/compatibility-tables/scriptlets.js +30 -0
- package/dist/cjs/compatibility-tables/utils/platform-helpers.js +112 -0
- package/dist/cjs/compatibility-tables/utils/resource-type-helpers.js +64 -0
- package/dist/cjs/compatibility-tables/utils/zod-camelcase.js +27 -0
- package/dist/cjs/converter/base-interfaces/base-converter.js +61 -0
- package/dist/cjs/converter/base-interfaces/conversion-result.js +41 -0
- package/dist/cjs/converter/base-interfaces/rule-converter-base.js +62 -0
- package/dist/cjs/converter/comment/index.js +56 -0
- package/dist/cjs/converter/cosmetic/css.js +71 -0
- package/dist/cjs/converter/cosmetic/element-hiding.js +64 -0
- package/dist/cjs/converter/cosmetic/header-removal.js +126 -0
- package/dist/cjs/converter/cosmetic/html.js +384 -0
- package/dist/cjs/converter/cosmetic/index.js +120 -0
- package/dist/cjs/converter/cosmetic/rule-modifiers/adg.js +81 -0
- package/dist/cjs/converter/cosmetic/scriptlet.js +356 -0
- package/dist/cjs/converter/css/index.js +193 -0
- package/dist/cjs/converter/data/css.js +133 -0
- package/dist/cjs/converter/filter-list.js +90 -0
- package/dist/cjs/converter/index.js +15 -0
- package/dist/cjs/converter/misc/network-rule-modifier.js +313 -0
- package/dist/cjs/converter/network/index.js +101 -0
- package/dist/cjs/converter/raw-filter-list.js +58 -0
- package/dist/cjs/converter/rule.js +83 -0
- package/dist/cjs/deserializer/base-deserializer.js +31 -0
- package/dist/cjs/deserializer/comment/agent-comment-deserializer.js +76 -0
- package/dist/cjs/deserializer/comment/agent-deserializer.js +67 -0
- package/dist/cjs/deserializer/comment/comment-rule-deserializer.js +109 -0
- package/dist/cjs/deserializer/comment/config-comment-deserializer.js +113 -0
- package/dist/cjs/deserializer/comment/hint-comment-deserializer.js +69 -0
- package/dist/cjs/deserializer/comment/hint-deserializer.js +88 -0
- package/dist/cjs/deserializer/comment/metadata-comment-deserializer.js +71 -0
- package/dist/cjs/deserializer/comment/pre-processor-comment-deserializer.js +114 -0
- package/dist/cjs/deserializer/comment/simple-comment-deserializer.js +67 -0
- package/dist/cjs/deserializer/cosmetic/cosmetic-rule-deserializer.js +127 -0
- package/dist/cjs/deserializer/cosmetic/css-injection-body-deserializer.js +55 -0
- package/dist/cjs/deserializer/cosmetic/element-hiding-body-deserializer.js +46 -0
- package/dist/cjs/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +37 -0
- package/dist/cjs/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +37 -0
- package/dist/cjs/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +52 -0
- package/dist/cjs/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +38 -0
- package/dist/cjs/deserializer/empty-rule-deserializer.js +46 -0
- package/dist/cjs/deserializer/filterlist-deserializer.js +83 -0
- package/dist/cjs/deserializer/index.js +15 -0
- package/dist/cjs/deserializer/invalid-rule-deserializer.js +48 -0
- package/dist/cjs/deserializer/invalid-rule-error-node-deserializer.js +48 -0
- package/dist/cjs/deserializer/misc/domain-list-deserializer.js +66 -0
- package/dist/cjs/deserializer/misc/list-item-deserializer.js +65 -0
- package/dist/cjs/deserializer/misc/list-items-deserializer.js +28 -0
- package/dist/cjs/deserializer/misc/logical-expression-deserializer.js +199 -0
- package/dist/cjs/deserializer/misc/modifier-deserializer.js +89 -0
- package/dist/cjs/deserializer/misc/modifier-list-deserializer.js +58 -0
- package/dist/cjs/deserializer/misc/parameter-list-deserializer.js +62 -0
- package/dist/cjs/deserializer/misc/value-deserializer.js +52 -0
- package/dist/cjs/deserializer/network/host-rule-deserializer.js +81 -0
- package/dist/cjs/deserializer/network/hostname-list-deserializer.js +50 -0
- package/dist/cjs/deserializer/network/network-rule-deserializer.js +67 -0
- package/dist/cjs/deserializer/rule-deserializer.js +67 -0
- package/dist/cjs/deserializer/syntax-deserialization-map.js +23 -0
- package/dist/cjs/errors/adblock-syntax-error.js +41 -0
- package/dist/cjs/errors/binary-schema-mismatch-error.js +39 -0
- package/dist/cjs/errors/not-implemented-error.js +33 -0
- package/dist/cjs/errors/rule-conversion-error.js +28 -0
- package/dist/cjs/generator/base-generator.js +29 -0
- package/dist/cjs/generator/comment/agent-comment-generator.js +30 -0
- package/dist/cjs/generator/comment/agent-generator.js +34 -0
- package/dist/cjs/generator/comment/comment-rule-generator.js +102 -0
- package/dist/cjs/generator/comment/config-comment-generator.js +44 -0
- package/dist/cjs/generator/comment/hint-comment-generator.js +27 -0
- package/dist/cjs/generator/comment/hint-generator.js +32 -0
- package/dist/cjs/generator/comment/metadata-comment-generator.js +32 -0
- package/dist/cjs/generator/comment/pre-processor-comment-generator.js +47 -0
- package/dist/cjs/generator/comment/simple-comment-generator.js +28 -0
- package/dist/cjs/generator/cosmetic/body/abp-snippet-injection-body-generator.js +36 -0
- package/dist/cjs/generator/cosmetic/body/adg-scriptlet-injection-body-generator.js +41 -0
- package/dist/cjs/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js +43 -0
- package/dist/cjs/generator/cosmetic/cosmetic-rule-body-generator.js +92 -0
- package/dist/cjs/generator/cosmetic/cosmetic-rule-generator.js +66 -0
- package/dist/cjs/generator/cosmetic/cosmetic-rule-pattern-generator.js +41 -0
- package/dist/cjs/generator/css/adg-css-injection-generator.js +41 -0
- package/dist/cjs/generator/filterlist-generator.js +57 -0
- package/dist/cjs/generator/index.js +17 -0
- package/dist/cjs/generator/misc/domain-list-generator.js +25 -0
- package/dist/cjs/generator/misc/list-items-generator.js +38 -0
- package/dist/cjs/generator/misc/logical-expression-generator.js +47 -0
- package/dist/cjs/generator/misc/modifier-generator.js +33 -0
- package/dist/cjs/generator/misc/modifier-list-generator.js +28 -0
- package/dist/cjs/generator/misc/parameter-list-generator.js +41 -0
- package/dist/cjs/generator/misc/value-generator.js +23 -0
- package/dist/cjs/generator/network/host-rule-generator.js +38 -0
- package/dist/cjs/generator/network/network-rule-generator.js +37 -0
- package/dist/cjs/generator/rule-generator.js +64 -0
- package/dist/cjs/index.js +201 -0
- package/dist/cjs/marshalling-utils/comment/agent-comment-common.js +22 -0
- package/dist/cjs/marshalling-utils/comment/agent-common.js +43 -0
- package/dist/cjs/marshalling-utils/comment/config-comment-common.js +58 -0
- package/dist/cjs/marshalling-utils/comment/hint-comment-common.js +23 -0
- package/dist/cjs/marshalling-utils/comment/hint-common.js +60 -0
- package/dist/cjs/marshalling-utils/comment/metadata-comment-common.js +44 -0
- package/dist/cjs/marshalling-utils/comment/pre-processor-comment-common.js +63 -0
- package/dist/cjs/marshalling-utils/comment/simple-comment-common.js +23 -0
- package/dist/cjs/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +64 -0
- package/dist/cjs/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +68 -0
- package/dist/cjs/marshalling-utils/cosmetic/body/css-injection-body-common.js +25 -0
- package/dist/cjs/marshalling-utils/cosmetic/body/element-hiding-body-common.js +22 -0
- package/dist/cjs/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +116 -0
- package/dist/cjs/marshalling-utils/cosmetic/cosmetic-rule-common.js +51 -0
- package/dist/cjs/marshalling-utils/empty-rule-common.js +21 -0
- package/dist/cjs/marshalling-utils/filter-list-common.js +22 -0
- package/dist/cjs/marshalling-utils/invalid-rule-common.js +22 -0
- package/dist/cjs/marshalling-utils/invalid-rule-error-node-common.js +23 -0
- package/dist/cjs/marshalling-utils/misc/binary-type-common.js +67 -0
- package/dist/cjs/marshalling-utils/misc/domain-list-common.js +39 -0
- package/dist/cjs/marshalling-utils/misc/host-rule-common.js +26 -0
- package/dist/cjs/marshalling-utils/misc/hostname-list-common.js +22 -0
- package/dist/cjs/marshalling-utils/misc/list-item-common.js +23 -0
- package/dist/cjs/marshalling-utils/misc/logical-expression-common.js +89 -0
- package/dist/cjs/marshalling-utils/misc/modifier-common.js +236 -0
- package/dist/cjs/marshalling-utils/misc/modifier-list-common.js +22 -0
- package/dist/cjs/marshalling-utils/misc/parameter-list-common.js +22 -0
- package/dist/cjs/marshalling-utils/misc/value-common.js +23 -0
- package/dist/cjs/marshalling-utils/network/network-rule-common.js +26 -0
- package/dist/cjs/marshalling-utils/syntax-serialization-map.js +32 -0
- package/dist/cjs/nodes/index.js +180 -0
- package/dist/cjs/package.json.js +11 -0
- package/dist/cjs/parser/base-parser.js +32 -0
- package/dist/cjs/parser/comment/agent-comment-parser.js +121 -0
- package/dist/cjs/parser/comment/agent-parser.js +111 -0
- package/dist/cjs/parser/comment/comment-parser.js +110 -0
- package/dist/cjs/parser/comment/config-comment-parser.js +139 -0
- package/dist/cjs/parser/comment/hint-comment-parser.js +119 -0
- package/dist/cjs/parser/comment/hint-parser.js +131 -0
- package/dist/cjs/parser/comment/metadata-comment-parser.js +131 -0
- package/dist/cjs/parser/comment/preprocessor-parser.js +201 -0
- package/dist/cjs/parser/comment/simple-comment-parser.js +108 -0
- package/dist/cjs/parser/cosmetic/body/abp-snippet-injection-body-parser.js +81 -0
- package/dist/cjs/parser/cosmetic/body/adg-scriptlet-injection-body-parser.js +151 -0
- package/dist/cjs/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js +112 -0
- package/dist/cjs/parser/cosmetic/cosmetic-rule-parser.js +456 -0
- package/dist/cjs/parser/css/adg-css-injection-parser.js +213 -0
- package/dist/cjs/parser/css/balancing.js +97 -0
- package/dist/cjs/parser/css/constants.js +21 -0
- package/dist/cjs/parser/css/css-token-stream.js +345 -0
- package/dist/cjs/parser/css/ubo-selector-parser.js +373 -0
- package/dist/cjs/parser/filterlist-parser.js +104 -0
- package/dist/cjs/parser/index.js +21 -0
- package/dist/cjs/parser/misc/app-list-parser.js +47 -0
- package/dist/cjs/parser/misc/domain-list-parser.js +54 -0
- package/dist/cjs/parser/misc/list-items-parser.js +116 -0
- package/dist/cjs/parser/misc/logical-expression-parser.js +283 -0
- package/dist/cjs/parser/misc/method-list-parser.js +48 -0
- package/dist/cjs/parser/misc/modifier-list.js +72 -0
- package/dist/cjs/parser/misc/modifier-parser.js +91 -0
- package/dist/cjs/parser/misc/parameter-list-parser.js +74 -0
- package/dist/cjs/parser/misc/stealth-option-list-parser.js +48 -0
- package/dist/cjs/parser/misc/ubo-parameter-list-parser.js +148 -0
- package/dist/cjs/parser/misc/value-parser.js +39 -0
- package/dist/cjs/parser/network/host-rule-parser.js +151 -0
- package/dist/cjs/parser/network/network-rule-parser.js +113 -0
- package/dist/cjs/parser/options.js +25 -0
- package/dist/cjs/parser/rule-parser.js +194 -0
- package/dist/cjs/serializer/base-serializer.js +31 -0
- package/dist/cjs/serializer/comment/agent-comment-serializer.js +73 -0
- package/dist/cjs/serializer/comment/agent-serializer.js +70 -0
- package/dist/cjs/serializer/comment/comment-rule-serializer.js +107 -0
- package/dist/cjs/serializer/comment/config-comment-serializer.js +84 -0
- package/dist/cjs/serializer/comment/hint-comment-serializer.js +64 -0
- package/dist/cjs/serializer/comment/hint-serializer.js +56 -0
- package/dist/cjs/serializer/comment/metadata-comment-serializer.js +75 -0
- package/dist/cjs/serializer/comment/pre-processor-comment-serializer.js +73 -0
- package/dist/cjs/serializer/comment/simple-comment-serializer.js +54 -0
- package/dist/cjs/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +38 -0
- package/dist/cjs/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +38 -0
- package/dist/cjs/serializer/cosmetic/body/scriptlet-body-serializer.js +49 -0
- package/dist/cjs/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +38 -0
- package/dist/cjs/serializer/cosmetic/cosmetic-rule-serializer.js +131 -0
- package/dist/cjs/serializer/cosmetic/css-injection-body-serializer.js +50 -0
- package/dist/cjs/serializer/cosmetic/element-hiding-body-serializer.js +39 -0
- package/dist/cjs/serializer/empty-rule-serializer.js +36 -0
- package/dist/cjs/serializer/filterlist-serializer.js +48 -0
- package/dist/cjs/serializer/index.js +13 -0
- package/dist/cjs/serializer/invalid-rule-error-node-serializer.js +40 -0
- package/dist/cjs/serializer/invalid-rule-serializer.js +39 -0
- package/dist/cjs/serializer/misc/domain-list-serializer.js +66 -0
- package/dist/cjs/serializer/misc/list-item-serializer.js +57 -0
- package/dist/cjs/serializer/misc/list-items-serializer.js +28 -0
- package/dist/cjs/serializer/misc/logical-expression-serializer.js +138 -0
- package/dist/cjs/serializer/misc/modifier-list-serializer.js +57 -0
- package/dist/cjs/serializer/misc/modifier-serializer.js +51 -0
- package/dist/cjs/serializer/misc/parameter-list-serializer.js +51 -0
- package/dist/cjs/serializer/misc/value-serializer.js +52 -0
- package/dist/cjs/serializer/network/host-rule-serializer.js +72 -0
- package/dist/cjs/serializer/network/hostname-list-serializer.js +49 -0
- package/dist/cjs/serializer/network/network-rule-serializer.js +56 -0
- package/dist/cjs/serializer/rule-serializer.js +63 -0
- package/dist/cjs/utils/adblockers.js +57 -0
- package/dist/cjs/utils/binary-schema-version.js +19 -0
- package/dist/cjs/utils/byte-buffer.js +93 -0
- package/dist/cjs/utils/categorizer.js +46 -0
- package/dist/cjs/utils/clone.js +30 -0
- package/dist/cjs/utils/constants.js +380 -0
- package/dist/cjs/utils/cosmetic-rule-separator.js +129 -0
- package/dist/cjs/utils/deep-freeze.js +34 -0
- package/dist/cjs/utils/domain.js +60 -0
- package/dist/cjs/utils/error.js +51 -0
- package/dist/cjs/utils/index.js +69 -0
- package/dist/cjs/utils/input-byte-buffer.js +259 -0
- package/dist/cjs/utils/is-chromium.js +22 -0
- package/dist/cjs/utils/logical-expression.js +94 -0
- package/dist/cjs/utils/multi-value-map.js +35 -0
- package/dist/cjs/utils/output-byte-buffer.js +225 -0
- package/dist/cjs/utils/position-provider.js +75 -0
- package/dist/cjs/utils/quotes.js +218 -0
- package/dist/cjs/utils/regexp.js +190 -0
- package/dist/cjs/utils/string.js +560 -0
- package/dist/cjs/utils/text-decoder-polyfill.js +109 -0
- package/dist/cjs/utils/text-encoder-polyfill.js +80 -0
- package/dist/cjs/utils/type-guards.js +52 -0
- package/dist/cjs/validator/constants.js +222 -0
- package/dist/cjs/validator/helpers.js +49 -0
- package/dist/cjs/validator/index.js +176 -0
- package/dist/cjs/validator/value.js +565 -0
- package/dist/cjs/version.js +20 -0
- package/dist/esm/ast-utils/clone.mjs +61 -0
- package/dist/esm/ast-utils/modifiers.mjs +53 -0
- package/dist/esm/ast-utils/network-rules.mjs +41 -0
- package/dist/esm/ast-utils/scriptlets.mjs +87 -0
- package/dist/esm/common/abp-snippet-injection-body-common.mjs +16 -0
- package/dist/esm/common/agent-common.mjs +56 -0
- package/dist/esm/common/ubo-selector-common.mjs +18 -0
- package/dist/esm/compatibility-tables/base.mjs +262 -0
- package/dist/esm/compatibility-tables/compatibility-table-data.mjs +11 -0
- package/dist/esm/compatibility-tables/modifiers.mjs +55 -0
- package/dist/esm/compatibility-tables/platforms.mjs +58 -0
- package/dist/esm/compatibility-tables/redirects.mjs +100 -0
- package/dist/esm/compatibility-tables/schemas/base.mjs +111 -0
- package/dist/esm/compatibility-tables/schemas/modifier.mjs +105 -0
- package/dist/esm/compatibility-tables/schemas/platform.mjs +69 -0
- package/dist/esm/compatibility-tables/schemas/redirect.mjs +29 -0
- package/dist/esm/compatibility-tables/schemas/resource-type.mjs +37 -0
- package/dist/esm/compatibility-tables/schemas/scriptlet.mjs +79 -0
- package/dist/esm/compatibility-tables/scriptlets.mjs +28 -0
- package/dist/esm/compatibility-tables/utils/platform-helpers.mjs +105 -0
- package/dist/esm/compatibility-tables/utils/resource-type-helpers.mjs +61 -0
- package/dist/esm/compatibility-tables/utils/zod-camelcase.mjs +25 -0
- package/dist/esm/converter/base-interfaces/base-converter.mjs +59 -0
- package/dist/esm/converter/base-interfaces/conversion-result.mjs +38 -0
- package/dist/esm/converter/base-interfaces/rule-converter-base.mjs +60 -0
- package/dist/esm/converter/comment/index.mjs +54 -0
- package/dist/esm/converter/cosmetic/css.mjs +69 -0
- package/dist/esm/converter/cosmetic/element-hiding.mjs +62 -0
- package/dist/esm/converter/cosmetic/header-removal.mjs +123 -0
- package/dist/esm/converter/cosmetic/html.mjs +381 -0
- package/dist/esm/converter/cosmetic/index.mjs +118 -0
- package/dist/esm/converter/cosmetic/rule-modifiers/adg.mjs +79 -0
- package/dist/esm/converter/cosmetic/scriptlet.mjs +354 -0
- package/dist/esm/converter/css/index.mjs +190 -0
- package/dist/esm/converter/data/css.mjs +126 -0
- package/dist/esm/converter/filter-list.mjs +88 -0
- package/dist/esm/converter/index.mjs +8 -0
- package/dist/esm/converter/misc/network-rule-modifier.mjs +311 -0
- package/dist/esm/converter/network/index.mjs +99 -0
- package/dist/esm/converter/raw-filter-list.mjs +56 -0
- package/dist/esm/converter/rule.mjs +81 -0
- package/dist/esm/deserializer/base-deserializer.mjs +29 -0
- package/dist/esm/deserializer/comment/agent-comment-deserializer.mjs +74 -0
- package/dist/esm/deserializer/comment/agent-deserializer.mjs +65 -0
- package/dist/esm/deserializer/comment/comment-rule-deserializer.mjs +107 -0
- package/dist/esm/deserializer/comment/config-comment-deserializer.mjs +111 -0
- package/dist/esm/deserializer/comment/hint-comment-deserializer.mjs +67 -0
- package/dist/esm/deserializer/comment/hint-deserializer.mjs +85 -0
- package/dist/esm/deserializer/comment/metadata-comment-deserializer.mjs +69 -0
- package/dist/esm/deserializer/comment/pre-processor-comment-deserializer.mjs +112 -0
- package/dist/esm/deserializer/comment/simple-comment-deserializer.mjs +65 -0
- package/dist/esm/deserializer/cosmetic/cosmetic-rule-deserializer.mjs +125 -0
- package/dist/esm/deserializer/cosmetic/css-injection-body-deserializer.mjs +53 -0
- package/dist/esm/deserializer/cosmetic/element-hiding-body-deserializer.mjs +44 -0
- package/dist/esm/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.mjs +35 -0
- package/dist/esm/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.mjs +35 -0
- package/dist/esm/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.mjs +50 -0
- package/dist/esm/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.mjs +35 -0
- package/dist/esm/deserializer/empty-rule-deserializer.mjs +44 -0
- package/dist/esm/deserializer/filterlist-deserializer.mjs +81 -0
- package/dist/esm/deserializer/index.mjs +8 -0
- package/dist/esm/deserializer/invalid-rule-deserializer.mjs +46 -0
- package/dist/esm/deserializer/invalid-rule-error-node-deserializer.mjs +46 -0
- package/dist/esm/deserializer/misc/domain-list-deserializer.mjs +64 -0
- package/dist/esm/deserializer/misc/list-item-deserializer.mjs +63 -0
- package/dist/esm/deserializer/misc/list-items-deserializer.mjs +26 -0
- package/dist/esm/deserializer/misc/logical-expression-deserializer.mjs +196 -0
- package/dist/esm/deserializer/misc/modifier-deserializer.mjs +87 -0
- package/dist/esm/deserializer/misc/modifier-list-deserializer.mjs +56 -0
- package/dist/esm/deserializer/misc/parameter-list-deserializer.mjs +60 -0
- package/dist/esm/deserializer/misc/value-deserializer.mjs +50 -0
- package/dist/esm/deserializer/network/host-rule-deserializer.mjs +79 -0
- package/dist/esm/deserializer/network/hostname-list-deserializer.mjs +48 -0
- package/dist/esm/deserializer/network/network-rule-deserializer.mjs +65 -0
- package/dist/esm/deserializer/rule-deserializer.mjs +65 -0
- package/dist/esm/deserializer/syntax-deserialization-map.mjs +21 -0
- package/dist/esm/errors/adblock-syntax-error.mjs +39 -0
- package/dist/esm/errors/binary-schema-mismatch-error.mjs +37 -0
- package/dist/esm/errors/not-implemented-error.mjs +31 -0
- package/dist/esm/errors/rule-conversion-error.mjs +26 -0
- package/dist/esm/generator/base-generator.mjs +27 -0
- package/dist/esm/generator/comment/agent-comment-generator.mjs +28 -0
- package/dist/esm/generator/comment/agent-generator.mjs +32 -0
- package/dist/esm/generator/comment/comment-rule-generator.mjs +100 -0
- package/dist/esm/generator/comment/config-comment-generator.mjs +42 -0
- package/dist/esm/generator/comment/hint-comment-generator.mjs +25 -0
- package/dist/esm/generator/comment/hint-generator.mjs +30 -0
- package/dist/esm/generator/comment/metadata-comment-generator.mjs +30 -0
- package/dist/esm/generator/comment/pre-processor-comment-generator.mjs +45 -0
- package/dist/esm/generator/comment/simple-comment-generator.mjs +26 -0
- package/dist/esm/generator/cosmetic/body/abp-snippet-injection-body-generator.mjs +34 -0
- package/dist/esm/generator/cosmetic/body/adg-scriptlet-injection-body-generator.mjs +39 -0
- package/dist/esm/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.mjs +41 -0
- package/dist/esm/generator/cosmetic/cosmetic-rule-body-generator.mjs +90 -0
- package/dist/esm/generator/cosmetic/cosmetic-rule-generator.mjs +64 -0
- package/dist/esm/generator/cosmetic/cosmetic-rule-pattern-generator.mjs +39 -0
- package/dist/esm/generator/css/adg-css-injection-generator.mjs +39 -0
- package/dist/esm/generator/filterlist-generator.mjs +55 -0
- package/dist/esm/generator/index.mjs +9 -0
- package/dist/esm/generator/misc/domain-list-generator.mjs +23 -0
- package/dist/esm/generator/misc/list-items-generator.mjs +36 -0
- package/dist/esm/generator/misc/logical-expression-generator.mjs +45 -0
- package/dist/esm/generator/misc/modifier-generator.mjs +31 -0
- package/dist/esm/generator/misc/modifier-list-generator.mjs +26 -0
- package/dist/esm/generator/misc/parameter-list-generator.mjs +39 -0
- package/dist/esm/generator/misc/value-generator.mjs +21 -0
- package/dist/esm/generator/network/host-rule-generator.mjs +36 -0
- package/dist/esm/generator/network/network-rule-generator.mjs +35 -0
- package/dist/esm/generator/rule-generator.mjs +62 -0
- package/dist/esm/index.mjs +70 -0
- package/dist/esm/marshalling-utils/comment/agent-comment-common.mjs +22 -0
- package/dist/esm/marshalling-utils/comment/agent-common.mjs +41 -0
- package/dist/esm/marshalling-utils/comment/config-comment-common.mjs +56 -0
- package/dist/esm/marshalling-utils/comment/hint-comment-common.mjs +23 -0
- package/dist/esm/marshalling-utils/comment/hint-common.mjs +57 -0
- package/dist/esm/marshalling-utils/comment/metadata-comment-common.mjs +42 -0
- package/dist/esm/marshalling-utils/comment/pre-processor-comment-common.mjs +60 -0
- package/dist/esm/marshalling-utils/comment/simple-comment-common.mjs +23 -0
- package/dist/esm/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.mjs +62 -0
- package/dist/esm/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.mjs +66 -0
- package/dist/esm/marshalling-utils/cosmetic/body/css-injection-body-common.mjs +25 -0
- package/dist/esm/marshalling-utils/cosmetic/body/element-hiding-body-common.mjs +22 -0
- package/dist/esm/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.mjs +114 -0
- package/dist/esm/marshalling-utils/cosmetic/cosmetic-rule-common.mjs +49 -0
- package/dist/esm/marshalling-utils/empty-rule-common.mjs +21 -0
- package/dist/esm/marshalling-utils/filter-list-common.mjs +22 -0
- package/dist/esm/marshalling-utils/invalid-rule-common.mjs +22 -0
- package/dist/esm/marshalling-utils/invalid-rule-error-node-common.mjs +23 -0
- package/dist/esm/marshalling-utils/misc/binary-type-common.mjs +67 -0
- package/dist/esm/marshalling-utils/misc/domain-list-common.mjs +37 -0
- package/dist/esm/marshalling-utils/misc/host-rule-common.mjs +26 -0
- package/dist/esm/marshalling-utils/misc/hostname-list-common.mjs +22 -0
- package/dist/esm/marshalling-utils/misc/list-item-common.mjs +23 -0
- package/dist/esm/marshalling-utils/misc/logical-expression-common.mjs +86 -0
- package/dist/esm/marshalling-utils/misc/modifier-common.mjs +232 -0
- package/dist/esm/marshalling-utils/misc/modifier-list-common.mjs +22 -0
- package/dist/esm/marshalling-utils/misc/parameter-list-common.mjs +22 -0
- package/dist/esm/marshalling-utils/misc/value-common.mjs +23 -0
- package/dist/esm/marshalling-utils/network/network-rule-common.mjs +26 -0
- package/dist/esm/marshalling-utils/syntax-serialization-map.mjs +30 -0
- package/dist/esm/nodes/index.mjs +180 -0
- package/dist/esm/package.json.mjs +9 -0
- package/dist/esm/parser/base-parser.mjs +30 -0
- package/dist/esm/parser/comment/agent-comment-parser.mjs +119 -0
- package/dist/esm/parser/comment/agent-parser.mjs +109 -0
- package/dist/esm/parser/comment/comment-parser.mjs +108 -0
- package/dist/esm/parser/comment/config-comment-parser.mjs +137 -0
- package/dist/esm/parser/comment/hint-comment-parser.mjs +117 -0
- package/dist/esm/parser/comment/hint-parser.mjs +129 -0
- package/dist/esm/parser/comment/metadata-comment-parser.mjs +129 -0
- package/dist/esm/parser/comment/preprocessor-parser.mjs +199 -0
- package/dist/esm/parser/comment/simple-comment-parser.mjs +106 -0
- package/dist/esm/parser/cosmetic/body/abp-snippet-injection-body-parser.mjs +79 -0
- package/dist/esm/parser/cosmetic/body/adg-scriptlet-injection-body-parser.mjs +149 -0
- package/dist/esm/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.mjs +110 -0
- package/dist/esm/parser/cosmetic/cosmetic-rule-parser.mjs +453 -0
- package/dist/esm/parser/css/adg-css-injection-parser.mjs +208 -0
- package/dist/esm/parser/css/balancing.mjs +94 -0
- package/dist/esm/parser/css/constants.mjs +18 -0
- package/dist/esm/parser/css/css-token-stream.mjs +343 -0
- package/dist/esm/parser/css/ubo-selector-parser.mjs +369 -0
- package/dist/esm/parser/filterlist-parser.mjs +102 -0
- package/dist/esm/parser/index.mjs +11 -0
- package/dist/esm/parser/misc/app-list-parser.mjs +45 -0
- package/dist/esm/parser/misc/domain-list-parser.mjs +52 -0
- package/dist/esm/parser/misc/list-items-parser.mjs +113 -0
- package/dist/esm/parser/misc/logical-expression-parser.mjs +281 -0
- package/dist/esm/parser/misc/method-list-parser.mjs +46 -0
- package/dist/esm/parser/misc/modifier-list.mjs +70 -0
- package/dist/esm/parser/misc/modifier-parser.mjs +89 -0
- package/dist/esm/parser/misc/parameter-list-parser.mjs +72 -0
- package/dist/esm/parser/misc/stealth-option-list-parser.mjs +46 -0
- package/dist/esm/parser/misc/ubo-parameter-list-parser.mjs +146 -0
- package/dist/esm/parser/misc/value-parser.mjs +37 -0
- package/dist/esm/parser/network/host-rule-parser.mjs +130 -0
- package/dist/esm/parser/network/network-rule-parser.mjs +111 -0
- package/dist/esm/parser/options.mjs +23 -0
- package/dist/esm/parser/rule-parser.mjs +192 -0
- package/dist/esm/serializer/base-serializer.mjs +29 -0
- package/dist/esm/serializer/comment/agent-comment-serializer.mjs +71 -0
- package/dist/esm/serializer/comment/agent-serializer.mjs +68 -0
- package/dist/esm/serializer/comment/comment-rule-serializer.mjs +105 -0
- package/dist/esm/serializer/comment/config-comment-serializer.mjs +82 -0
- package/dist/esm/serializer/comment/hint-comment-serializer.mjs +62 -0
- package/dist/esm/serializer/comment/hint-serializer.mjs +54 -0
- package/dist/esm/serializer/comment/metadata-comment-serializer.mjs +73 -0
- package/dist/esm/serializer/comment/pre-processor-comment-serializer.mjs +71 -0
- package/dist/esm/serializer/comment/simple-comment-serializer.mjs +52 -0
- package/dist/esm/serializer/cosmetic/body/abp-snippet-injection-body-serializer.mjs +36 -0
- package/dist/esm/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.mjs +36 -0
- package/dist/esm/serializer/cosmetic/body/scriptlet-body-serializer.mjs +47 -0
- package/dist/esm/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.mjs +36 -0
- package/dist/esm/serializer/cosmetic/cosmetic-rule-serializer.mjs +129 -0
- package/dist/esm/serializer/cosmetic/css-injection-body-serializer.mjs +48 -0
- package/dist/esm/serializer/cosmetic/element-hiding-body-serializer.mjs +37 -0
- package/dist/esm/serializer/empty-rule-serializer.mjs +34 -0
- package/dist/esm/serializer/filterlist-serializer.mjs +46 -0
- package/dist/esm/serializer/index.mjs +7 -0
- package/dist/esm/serializer/invalid-rule-error-node-serializer.mjs +38 -0
- package/dist/esm/serializer/invalid-rule-serializer.mjs +37 -0
- package/dist/esm/serializer/misc/domain-list-serializer.mjs +64 -0
- package/dist/esm/serializer/misc/list-item-serializer.mjs +55 -0
- package/dist/esm/serializer/misc/list-items-serializer.mjs +26 -0
- package/dist/esm/serializer/misc/logical-expression-serializer.mjs +136 -0
- package/dist/esm/serializer/misc/modifier-list-serializer.mjs +55 -0
- package/dist/esm/serializer/misc/modifier-serializer.mjs +49 -0
- package/dist/esm/serializer/misc/parameter-list-serializer.mjs +49 -0
- package/dist/esm/serializer/misc/value-serializer.mjs +50 -0
- package/dist/esm/serializer/network/host-rule-serializer.mjs +70 -0
- package/dist/esm/serializer/network/hostname-list-serializer.mjs +47 -0
- package/dist/esm/serializer/network/network-rule-serializer.mjs +54 -0
- package/dist/esm/serializer/rule-serializer.mjs +61 -0
- package/dist/esm/utils/adblockers.mjs +57 -0
- package/dist/esm/utils/binary-schema-version.mjs +17 -0
- package/dist/esm/utils/byte-buffer.mjs +91 -0
- package/dist/esm/utils/categorizer.mjs +44 -0
- package/dist/esm/utils/clone.mjs +28 -0
- package/dist/esm/utils/constants.mjs +249 -0
- package/dist/esm/utils/cosmetic-rule-separator.mjs +127 -0
- package/dist/esm/utils/deep-freeze.mjs +32 -0
- package/dist/esm/utils/domain.mjs +56 -0
- package/dist/esm/utils/error.mjs +49 -0
- package/dist/esm/utils/index.mjs +21 -0
- package/dist/esm/utils/input-byte-buffer.mjs +257 -0
- package/dist/esm/utils/is-chromium.mjs +20 -0
- package/dist/esm/utils/logical-expression.mjs +92 -0
- package/dist/esm/utils/multi-value-map.mjs +33 -0
- package/dist/esm/utils/output-byte-buffer.mjs +223 -0
- package/dist/esm/utils/position-provider.mjs +73 -0
- package/dist/esm/utils/quotes.mjs +215 -0
- package/dist/esm/utils/regexp.mjs +176 -0
- package/dist/esm/utils/string.mjs +556 -0
- package/dist/esm/utils/text-decoder-polyfill.mjs +107 -0
- package/dist/esm/utils/text-encoder-polyfill.mjs +78 -0
- package/dist/esm/utils/type-guards.mjs +47 -0
- package/dist/esm/validator/constants.mjs +210 -0
- package/dist/esm/validator/helpers.mjs +45 -0
- package/dist/esm/validator/index.mjs +174 -0
- package/dist/esm/validator/value.mjs +563 -0
- package/dist/esm/version.mjs +18 -0
- package/dist/types/ast-utils/clone.d.ts +26 -0
- package/dist/types/ast-utils/filter-list.d.ts +11 -0
- package/dist/types/ast-utils/modifiers.d.ts +20 -0
- package/dist/types/ast-utils/network-rules.d.ts +15 -0
- package/dist/types/ast-utils/scriptlets.d.ts +52 -0
- package/dist/types/common/abp-snippet-injection-body-common.d.ts +8 -0
- package/dist/types/common/agent-common.d.ts +10 -0
- package/dist/types/common/ubo-selector-common.d.ts +9 -0
- package/dist/types/compatibility-tables/base.d.ts +157 -0
- package/dist/types/compatibility-tables/compatibility-table-data.d.ts +67 -0
- package/dist/types/compatibility-tables/index.d.ts +13 -0
- package/dist/types/compatibility-tables/modifiers.d.ts +22 -0
- package/dist/types/compatibility-tables/platforms.d.ts +47 -0
- package/dist/types/compatibility-tables/redirects.d.ts +33 -0
- package/dist/types/compatibility-tables/schemas/base.d.ts +135 -0
- package/dist/types/compatibility-tables/schemas/index.d.ts +8 -0
- package/dist/types/compatibility-tables/schemas/modifier.d.ts +31 -0
- package/dist/types/compatibility-tables/schemas/platform.d.ts +16 -0
- package/dist/types/compatibility-tables/schemas/redirect.d.ts +25 -0
- package/dist/types/compatibility-tables/schemas/resource-type.d.ts +27 -0
- package/dist/types/compatibility-tables/schemas/scriptlet.d.ts +31 -0
- package/dist/types/compatibility-tables/scriptlets.d.ts +15 -0
- package/dist/types/compatibility-tables/types.d.ts +34 -0
- package/dist/types/compatibility-tables/utils/platform-helpers.d.ts +44 -0
- package/dist/types/compatibility-tables/utils/resource-type-helpers.d.ts +20 -0
- package/dist/types/compatibility-tables/utils/zod-camelcase.d.ts +15 -0
- package/dist/types/converter/base-interfaces/base-converter.d.ts +42 -0
- package/dist/types/converter/base-interfaces/conversion-result.d.ts +43 -0
- package/dist/types/converter/base-interfaces/rule-converter-base.d.ts +44 -0
- package/dist/types/converter/comment/index.d.ts +23 -0
- package/dist/types/converter/cosmetic/css.d.ts +23 -0
- package/dist/types/converter/cosmetic/element-hiding.d.ts +23 -0
- package/dist/types/converter/cosmetic/header-removal.d.ts +37 -0
- package/dist/types/converter/cosmetic/html.d.ts +54 -0
- package/dist/types/converter/cosmetic/index.d.ts +33 -0
- package/dist/types/converter/cosmetic/rule-modifiers/adg.d.ts +21 -0
- package/dist/types/converter/cosmetic/scriptlet.d.ts +33 -0
- package/dist/types/converter/css/index.d.ts +23 -0
- package/dist/types/converter/data/css.d.ts +48 -0
- package/dist/types/converter/filter-list.d.ts +31 -0
- package/dist/types/converter/index.d.ts +5 -0
- package/dist/types/converter/misc/network-rule-modifier.d.ts +35 -0
- package/dist/types/converter/network/index.d.ts +33 -0
- package/dist/types/converter/raw-filter-list.d.ts +31 -0
- package/dist/types/converter/raw-rule.d.ts +28 -0
- package/dist/types/converter/rule.d.ts +37 -0
- package/dist/types/deserializer/base-deserializer.d.ts +15 -0
- package/dist/types/deserializer/comment/agent-comment-deserializer.d.ts +34 -0
- package/dist/types/deserializer/comment/agent-deserializer.d.ts +25 -0
- package/dist/types/deserializer/comment/comment-rule-deserializer.d.ts +69 -0
- package/dist/types/deserializer/comment/config-comment-deserializer.d.ts +27 -0
- package/dist/types/deserializer/comment/hint-comment-deserializer.d.ts +24 -0
- package/dist/types/deserializer/comment/hint-deserializer.d.ts +26 -0
- package/dist/types/deserializer/comment/metadata-comment-deserializer.d.ts +26 -0
- package/dist/types/deserializer/comment/pre-processor-comment-deserializer.d.ts +29 -0
- package/dist/types/deserializer/comment/simple-comment-deserializer.d.ts +26 -0
- package/dist/types/deserializer/cosmetic/cosmetic-rule-deserializer.d.ts +12 -0
- package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +12 -0
- package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +12 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +13 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +13 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +15 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +14 -0
- package/dist/types/deserializer/empty-rule-deserializer.d.ts +12 -0
- package/dist/types/deserializer/filterlist-deserializer.d.ts +30 -0
- package/dist/types/deserializer/index.d.ts +2 -0
- package/dist/types/deserializer/invalid-rule-deserializer.d.ts +12 -0
- package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +12 -0
- package/dist/types/deserializer/misc/domain-list-deserializer.d.ts +15 -0
- package/dist/types/deserializer/misc/list-item-deserializer.d.ts +13 -0
- package/dist/types/deserializer/misc/list-items-deserializer.d.ts +12 -0
- package/dist/types/deserializer/misc/logical-expression-deserializer.d.ts +55 -0
- package/dist/types/deserializer/misc/modifier-deserializer.d.ts +18 -0
- package/dist/types/deserializer/misc/modifier-list-deserializer.d.ts +20 -0
- package/dist/types/deserializer/misc/parameter-list-deserializer.d.ts +14 -0
- package/dist/types/deserializer/misc/value-deserializer.d.ts +17 -0
- package/dist/types/deserializer/network/host-rule-deserializer.d.ts +30 -0
- package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +12 -0
- package/dist/types/deserializer/network/network-rule-deserializer.d.ts +18 -0
- package/dist/types/deserializer/rule-deserializer.d.ts +17 -0
- package/dist/types/deserializer/syntax-deserialization-map.d.ts +2 -0
- package/dist/types/errors/adblock-syntax-error.d.ts +25 -0
- package/dist/types/errors/binary-schema-mismatch-error.d.ts +23 -0
- package/dist/types/errors/not-implemented-error.d.ts +14 -0
- package/dist/types/errors/rule-conversion-error.d.ts +14 -0
- package/dist/types/generator/base-generator.d.ts +12 -0
- package/dist/types/generator/comment/agent-comment-generator.d.ts +11 -0
- package/dist/types/generator/comment/agent-generator.d.ts +11 -0
- package/dist/types/generator/comment/comment-rule-generator.d.ts +67 -0
- package/dist/types/generator/comment/config-comment-generator.d.ts +11 -0
- package/dist/types/generator/comment/hint-comment-generator.d.ts +11 -0
- package/dist/types/generator/comment/hint-generator.d.ts +11 -0
- package/dist/types/generator/comment/index.d.ts +2 -0
- package/dist/types/generator/comment/metadata-comment-generator.d.ts +11 -0
- package/dist/types/generator/comment/pre-processor-comment-generator.d.ts +11 -0
- package/dist/types/generator/comment/simple-comment-generator.d.ts +11 -0
- package/dist/types/generator/cosmetic/body/abp-snippet-injection-body-generator.d.ts +11 -0
- package/dist/types/generator/cosmetic/body/adg-scriptlet-injection-body-generator.d.ts +17 -0
- package/dist/types/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.d.ts +17 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-body-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-generator.d.ts +36 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-pattern-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/index.d.ts +1 -0
- package/dist/types/generator/css/adg-css-injection-generator.d.ts +12 -0
- package/dist/types/generator/css/ubo-selector-generator.d.ts +11 -0
- package/dist/types/generator/filterlist-generator.d.ts +17 -0
- package/dist/types/generator/index.d.ts +3 -0
- package/dist/types/generator/misc/domain-list-generator.d.ts +12 -0
- package/dist/types/generator/misc/list-items-generator.d.ts +22 -0
- package/dist/types/generator/misc/logical-expression-generator.d.ts +11 -0
- package/dist/types/generator/misc/modifier-generator.d.ts +11 -0
- package/dist/types/generator/misc/modifier-list-generator.d.ts +11 -0
- package/dist/types/generator/misc/parameter-list-generator.d.ts +12 -0
- package/dist/types/generator/misc/value-generator.d.ts +11 -0
- package/dist/types/generator/network/host-rule-generator.d.ts +11 -0
- package/dist/types/generator/network/index.d.ts +2 -0
- package/dist/types/generator/network/network-rule-generator.d.ts +11 -0
- package/dist/types/generator/rule-generator.d.ts +21 -0
- package/dist/types/index.d.ts +55 -0
- package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +13 -0
- package/dist/types/marshalling-utils/comment/agent-common.d.ts +19 -0
- package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +40 -0
- package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +14 -0
- package/dist/types/marshalling-utils/comment/hint-common.d.ts +32 -0
- package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +20 -0
- package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +36 -0
- package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +14 -0
- package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +22 -0
- package/dist/types/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.d.ts +9 -0
- package/dist/types/marshalling-utils/cosmetic/body/css-injection-body-common.d.ts +16 -0
- package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +13 -0
- package/dist/types/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.d.ts +9 -0
- package/dist/types/marshalling-utils/cosmetic/cosmetic-rule-common.d.ts +27 -0
- package/dist/types/marshalling-utils/empty-rule-common.d.ts +12 -0
- package/dist/types/marshalling-utils/filter-list-common.d.ts +13 -0
- package/dist/types/marshalling-utils/invalid-rule-common.d.ts +13 -0
- package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +14 -0
- package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +56 -0
- package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +23 -0
- package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +17 -0
- package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +13 -0
- package/dist/types/marshalling-utils/misc/list-item-common.d.ts +14 -0
- package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +44 -0
- package/dist/types/marshalling-utils/misc/modifier-common.d.ts +40 -0
- package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +13 -0
- package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +13 -0
- package/dist/types/marshalling-utils/misc/value-common.d.ts +14 -0
- package/dist/types/marshalling-utils/network/network-rule-common.d.ts +17 -0
- package/dist/types/marshalling-utils/syntax-serialization-map.d.ts +2 -0
- package/dist/types/nodes/index.d.ts +1177 -0
- package/dist/types/parser/base-parser.d.ts +16 -0
- package/dist/types/parser/comment/agent-comment-parser.d.ts +42 -0
- package/dist/types/parser/comment/agent-parser.d.ts +33 -0
- package/dist/types/parser/comment/comment-parser.d.ts +76 -0
- package/dist/types/parser/comment/config-comment-parser.d.ts +31 -0
- package/dist/types/parser/comment/hint-comment-parser.d.ts +33 -0
- package/dist/types/parser/comment/hint-parser.d.ts +30 -0
- package/dist/types/parser/comment/metadata-comment-parser.d.ts +29 -0
- package/dist/types/parser/comment/preprocessor-parser.d.ts +43 -0
- package/dist/types/parser/comment/simple-comment-parser.d.ts +33 -0
- package/dist/types/parser/cosmetic/body/abp-snippet-injection-body-parser.d.ts +34 -0
- package/dist/types/parser/cosmetic/body/adg-scriptlet-injection-body-parser.d.ts +47 -0
- package/dist/types/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.d.ts +44 -0
- package/dist/types/parser/cosmetic/cosmetic-rule-parser.d.ts +51 -0
- package/dist/types/parser/css/adg-css-injection-parser.d.ts +28 -0
- package/dist/types/parser/css/balancing.d.ts +36 -0
- package/dist/types/parser/css/constants.d.ts +10 -0
- package/dist/types/parser/css/css-token-stream.d.ts +210 -0
- package/dist/types/parser/css/ubo-selector-parser.d.ts +46 -0
- package/dist/types/parser/filterlist-parser.d.ts +29 -0
- package/dist/types/parser/index.d.ts +5 -0
- package/dist/types/parser/misc/app-list-parser.d.ts +22 -0
- package/dist/types/parser/misc/domain-list-parser.d.ts +26 -0
- package/dist/types/parser/misc/list-items-parser.d.ts +34 -0
- package/dist/types/parser/misc/logical-expression-parser.d.ts +41 -0
- package/dist/types/parser/misc/method-list-parser.d.ts +22 -0
- package/dist/types/parser/misc/modifier-list.d.ts +24 -0
- package/dist/types/parser/misc/modifier-parser.d.ts +21 -0
- package/dist/types/parser/misc/parameter-list-parser.d.ts +14 -0
- package/dist/types/parser/misc/stealth-option-list-parser.d.ts +22 -0
- package/dist/types/parser/misc/ubo-parameter-list-parser.d.ts +18 -0
- package/dist/types/parser/misc/value-parser.d.ts +18 -0
- package/dist/types/parser/network/host-rule-parser.d.ts +35 -0
- package/dist/types/parser/network/network-rule-parser.d.ts +31 -0
- package/dist/types/parser/options.d.ts +41 -0
- package/dist/types/parser/rule-parser.d.ts +78 -0
- package/dist/types/serializer/base-serializer.d.ts +15 -0
- package/dist/types/serializer/comment/agent-comment-serializer.d.ts +34 -0
- package/dist/types/serializer/comment/agent-serializer.d.ts +24 -0
- package/dist/types/serializer/comment/comment-rule-serializer.d.ts +68 -0
- package/dist/types/serializer/comment/config-comment-serializer.d.ts +25 -0
- package/dist/types/serializer/comment/hint-comment-serializer.d.ts +23 -0
- package/dist/types/serializer/comment/hint-serializer.d.ts +24 -0
- package/dist/types/serializer/comment/metadata-comment-serializer.d.ts +25 -0
- package/dist/types/serializer/comment/pre-processor-comment-serializer.d.ts +28 -0
- package/dist/types/serializer/comment/simple-comment-serializer.d.ts +24 -0
- package/dist/types/serializer/cosmetic/body/abp-snippet-injection-body-serializer.d.ts +25 -0
- package/dist/types/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.d.ts +25 -0
- package/dist/types/serializer/cosmetic/body/scriptlet-body-serializer.d.ts +14 -0
- package/dist/types/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.d.ts +25 -0
- package/dist/types/serializer/cosmetic/cosmetic-rule-serializer.d.ts +26 -0
- package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +12 -0
- package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +12 -0
- package/dist/types/serializer/empty-rule-serializer.d.ts +12 -0
- package/dist/types/serializer/filterlist-serializer.d.ts +16 -0
- package/dist/types/serializer/index.d.ts +1 -0
- package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +12 -0
- package/dist/types/serializer/invalid-rule-serializer.d.ts +12 -0
- package/dist/types/serializer/misc/domain-list-serializer.d.ts +21 -0
- package/dist/types/serializer/misc/list-item-serializer.d.ts +13 -0
- package/dist/types/serializer/misc/list-items-serializer.d.ts +12 -0
- package/dist/types/serializer/misc/logical-expression-serializer.d.ts +51 -0
- package/dist/types/serializer/misc/modifier-list-serializer.d.ts +20 -0
- package/dist/types/serializer/misc/modifier-serializer.d.ts +18 -0
- package/dist/types/serializer/misc/parameter-list-serializer.d.ts +14 -0
- package/dist/types/serializer/misc/value-serializer.d.ts +17 -0
- package/dist/types/serializer/network/host-rule-serializer.d.ts +30 -0
- package/dist/types/serializer/network/hostname-list-serializer.d.ts +12 -0
- package/dist/types/serializer/network/network-rule-serializer.d.ts +18 -0
- package/dist/types/serializer/rule-serializer.d.ts +17 -0
- package/dist/types/utils/adblockers.d.ts +48 -0
- package/dist/types/utils/binary-schema-version.d.ts +9 -0
- package/dist/types/utils/byte-buffer.d.ts +54 -0
- package/dist/types/utils/categorizer.d.ts +14 -0
- package/dist/types/utils/clone.d.ts +15 -0
- package/dist/types/utils/constants.d.ts +188 -0
- package/dist/types/utils/cosmetic-rule-separator.d.ts +45 -0
- package/dist/types/utils/deep-freeze.d.ts +13 -0
- package/dist/types/utils/domain.d.ts +26 -0
- package/dist/types/utils/error.d.ts +8 -0
- package/dist/types/utils/index.d.ts +15 -0
- package/dist/types/utils/input-byte-buffer.d.ts +140 -0
- package/dist/types/utils/is-chromium.d.ts +7 -0
- package/dist/types/utils/logical-expression.d.ts +45 -0
- package/dist/types/utils/multi-value-map.d.ts +16 -0
- package/dist/types/utils/output-byte-buffer.d.ts +126 -0
- package/dist/types/utils/position-provider.d.ts +46 -0
- package/dist/types/utils/quotes.d.ts +93 -0
- package/dist/types/utils/regexp.d.ts +54 -0
- package/dist/types/utils/storage-interface.d.ts +23 -0
- package/dist/types/utils/string.d.ts +277 -0
- package/dist/types/utils/text-decoder-polyfill.d.ts +14 -0
- package/dist/types/utils/text-encoder-polyfill.d.ts +18 -0
- package/dist/types/utils/type-guards.d.ts +47 -0
- package/dist/types/validator/constants.d.ts +89 -0
- package/dist/types/validator/helpers.d.ts +37 -0
- package/dist/types/validator/index.d.ts +38 -0
- package/dist/types/validator/value.d.ts +11 -0
- package/dist/types/version.d.ts +5 -0
- package/package.json +91 -37
- package/dist/agtree.d.ts +0 -4152
- package/dist/agtree.js +0 -15710
- package/dist/agtree.mjs +0 -15611
- package/dist/compatibility-table-data.js +0 -12634
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
|
+
import { NULL } from '../utils/constants.mjs';
|
|
8
|
+
import { BaseDeserializer } from './base-deserializer.mjs';
|
|
9
|
+
import { RuleDeserializer } from './rule-deserializer.mjs';
|
|
10
|
+
import { FilterListNodeMarshallingMap } from '../marshalling-utils/filter-list-common.mjs';
|
|
11
|
+
import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.mjs';
|
|
12
|
+
|
|
13
|
+
class FilterListDeserializer extends BaseDeserializer {
|
|
14
|
+
/**
|
|
15
|
+
* Deserializes a filter list node from binary format.
|
|
16
|
+
*
|
|
17
|
+
* @param buffer ByteBuffer for reading binary data.
|
|
18
|
+
* @param node Destination node.
|
|
19
|
+
*/
|
|
20
|
+
static deserialize(buffer, node) {
|
|
21
|
+
buffer.assertUint8(BinaryTypeMarshallingMap.FilterListNode);
|
|
22
|
+
node.type = 'FilterList';
|
|
23
|
+
let prop = buffer.readUint8();
|
|
24
|
+
while (prop !== NULL) {
|
|
25
|
+
switch (prop) {
|
|
26
|
+
case FilterListNodeMarshallingMap.Children:
|
|
27
|
+
node.children = new Array(buffer.readUint32());
|
|
28
|
+
for (let i = 0; i < node.children.length; i += 1) {
|
|
29
|
+
RuleDeserializer.deserialize(buffer, node.children[i] = {});
|
|
30
|
+
}
|
|
31
|
+
break;
|
|
32
|
+
case FilterListNodeMarshallingMap.Start:
|
|
33
|
+
node.start = buffer.readUint32();
|
|
34
|
+
break;
|
|
35
|
+
case FilterListNodeMarshallingMap.End:
|
|
36
|
+
node.end = buffer.readUint32();
|
|
37
|
+
break;
|
|
38
|
+
default:
|
|
39
|
+
throw new Error(`Invalid property: ${prop}.`);
|
|
40
|
+
}
|
|
41
|
+
prop = buffer.readUint8();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Helper method to jump to the children of the filter list node.
|
|
46
|
+
*
|
|
47
|
+
* Filter lists serialized in binary format are structured as follows:
|
|
48
|
+
* - `FilterListNode` filter list node indicator (1 byte)
|
|
49
|
+
* - Properties:
|
|
50
|
+
* - `Children` (1 byte) - children count, followed by children nodes
|
|
51
|
+
* - `Start` (1 byte) - start offset, if present, followed by the value
|
|
52
|
+
* - `End` (1 byte) - end offset, if present, followed by the value
|
|
53
|
+
* - `NULL` (1 byte) - closing indicator
|
|
54
|
+
*
|
|
55
|
+
* This method skips indicators, reads the children count and returns it.
|
|
56
|
+
* This way the buffer is positioned at the beginning of the children nodes.
|
|
57
|
+
*
|
|
58
|
+
* @param buffer Reference to the input byte buffer.
|
|
59
|
+
* @returns Number of children nodes.
|
|
60
|
+
*/
|
|
61
|
+
static jumpToChildren(buffer) {
|
|
62
|
+
buffer.assertUint8(BinaryTypeMarshallingMap.FilterListNode); // filter list indicator
|
|
63
|
+
let prop = buffer.readUint8();
|
|
64
|
+
while (prop) {
|
|
65
|
+
switch (prop) {
|
|
66
|
+
case FilterListNodeMarshallingMap.Children:
|
|
67
|
+
return buffer.readUint32();
|
|
68
|
+
case FilterListNodeMarshallingMap.Start:
|
|
69
|
+
case FilterListNodeMarshallingMap.End:
|
|
70
|
+
buffer.readUint32(); // ignore value
|
|
71
|
+
break;
|
|
72
|
+
default:
|
|
73
|
+
throw new Error(`Invalid property: ${prop}.`);
|
|
74
|
+
}
|
|
75
|
+
prop = buffer.readUint8();
|
|
76
|
+
}
|
|
77
|
+
return 0;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export { FilterListDeserializer };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
|
+
export { RuleDeserializer } from './rule-deserializer.mjs';
|
|
8
|
+
export { getSyntaxDeserializationMap } from './syntax-deserialization-map.mjs';
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
|
+
import { BaseDeserializer } from './base-deserializer.mjs';
|
|
8
|
+
import { RuleCategory } from '../nodes/index.mjs';
|
|
9
|
+
import { NULL } from '../utils/constants.mjs';
|
|
10
|
+
import { InvalidRuleErrorNodeDeserializer } from './invalid-rule-error-node-deserializer.mjs';
|
|
11
|
+
import { InvalidRuleMarshallingMap } from '../marshalling-utils/invalid-rule-common.mjs';
|
|
12
|
+
import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.mjs';
|
|
13
|
+
|
|
14
|
+
/* eslint-disable no-param-reassign */
|
|
15
|
+
class InvalidRuleDeserializer extends BaseDeserializer {
|
|
16
|
+
/**
|
|
17
|
+
* Deserializes an invalid rule node from binary format.
|
|
18
|
+
*
|
|
19
|
+
* @param buffer ByteBuffer for reading binary data.
|
|
20
|
+
* @param node Destination node.
|
|
21
|
+
*/
|
|
22
|
+
static deserialize(buffer, node) {
|
|
23
|
+
buffer.assertUint8(BinaryTypeMarshallingMap.InvalidRule);
|
|
24
|
+
node.type = 'InvalidRule';
|
|
25
|
+
node.category = RuleCategory.Invalid;
|
|
26
|
+
let prop = buffer.readUint8();
|
|
27
|
+
while (prop !== NULL) {
|
|
28
|
+
switch (prop) {
|
|
29
|
+
case InvalidRuleMarshallingMap.Error:
|
|
30
|
+
InvalidRuleErrorNodeDeserializer.deserialize(buffer, node.error = {});
|
|
31
|
+
break;
|
|
32
|
+
case InvalidRuleMarshallingMap.Start:
|
|
33
|
+
node.start = buffer.readUint32();
|
|
34
|
+
break;
|
|
35
|
+
case InvalidRuleMarshallingMap.End:
|
|
36
|
+
node.end = buffer.readUint32();
|
|
37
|
+
break;
|
|
38
|
+
default:
|
|
39
|
+
throw new Error(`Invalid property: ${prop}.`);
|
|
40
|
+
}
|
|
41
|
+
prop = buffer.readUint8();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { InvalidRuleDeserializer };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
|
+
import { BaseDeserializer } from './base-deserializer.mjs';
|
|
8
|
+
import { NULL } from '../utils/constants.mjs';
|
|
9
|
+
import { InvalidRuleErrorNodeMarshallingMap } from '../marshalling-utils/invalid-rule-error-node-common.mjs';
|
|
10
|
+
import { BinaryTypeMarshallingMap } from '../marshalling-utils/misc/binary-type-common.mjs';
|
|
11
|
+
|
|
12
|
+
/* eslint-disable no-param-reassign */
|
|
13
|
+
class InvalidRuleErrorNodeDeserializer extends BaseDeserializer {
|
|
14
|
+
/**
|
|
15
|
+
* Deserializes an invalid rule error node from binary format.
|
|
16
|
+
*
|
|
17
|
+
* @param buffer ByteBuffer for reading binary data.
|
|
18
|
+
* @param node Destination node.
|
|
19
|
+
*/
|
|
20
|
+
static deserialize(buffer, node) {
|
|
21
|
+
buffer.assertUint8(BinaryTypeMarshallingMap.InvalidRuleErrorNode);
|
|
22
|
+
node.type = 'InvalidRuleError';
|
|
23
|
+
let prop = buffer.readUint8();
|
|
24
|
+
while (prop !== NULL) {
|
|
25
|
+
switch (prop) {
|
|
26
|
+
case InvalidRuleErrorNodeMarshallingMap.Name:
|
|
27
|
+
node.name = buffer.readString();
|
|
28
|
+
break;
|
|
29
|
+
case InvalidRuleErrorNodeMarshallingMap.Message:
|
|
30
|
+
node.message = buffer.readString();
|
|
31
|
+
break;
|
|
32
|
+
case InvalidRuleErrorNodeMarshallingMap.Start:
|
|
33
|
+
node.start = buffer.readUint32();
|
|
34
|
+
break;
|
|
35
|
+
case InvalidRuleErrorNodeMarshallingMap.End:
|
|
36
|
+
node.end = buffer.readUint32();
|
|
37
|
+
break;
|
|
38
|
+
default:
|
|
39
|
+
throw new Error(`Invalid property: ${prop}.`);
|
|
40
|
+
}
|
|
41
|
+
prop = buffer.readUint8();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { InvalidRuleErrorNodeDeserializer };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
|
+
import { NULL, COMMA } from '../../utils/constants.mjs';
|
|
8
|
+
import { ListNodeType } from '../../nodes/index.mjs';
|
|
9
|
+
import { BaseDeserializer } from '../base-deserializer.mjs';
|
|
10
|
+
import { DomainListMarshallingMap, SEPARATOR_SERIALIZATION_MAP } from '../../marshalling-utils/misc/domain-list-common.mjs';
|
|
11
|
+
import { ListItemsDeserializer } from './list-items-deserializer.mjs';
|
|
12
|
+
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.mjs';
|
|
13
|
+
|
|
14
|
+
/* eslint-disable no-param-reassign */
|
|
15
|
+
/**
|
|
16
|
+
* Value map for binary deserialization. This helps to reduce the size of the serialized data,
|
|
17
|
+
* as it allows us to use a single byte to represent frequently used values.
|
|
18
|
+
*/
|
|
19
|
+
let separatorDeserializationMap;
|
|
20
|
+
const getSeparatorDeserializationMap = () => {
|
|
21
|
+
if (!separatorDeserializationMap) {
|
|
22
|
+
separatorDeserializationMap = new Map(Array.from(SEPARATOR_SERIALIZATION_MAP)
|
|
23
|
+
.map(([key, value]) => [value, key]));
|
|
24
|
+
}
|
|
25
|
+
return separatorDeserializationMap;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* `DomainListDeserializer` is responsible for deserializing a domain list.
|
|
29
|
+
*/
|
|
30
|
+
class DomainListDeserializer extends BaseDeserializer {
|
|
31
|
+
/**
|
|
32
|
+
* Deserializes a modifier list node from binary format.
|
|
33
|
+
*
|
|
34
|
+
* @param buffer ByteBuffer for reading binary data.
|
|
35
|
+
* @param node Destination node.
|
|
36
|
+
*/
|
|
37
|
+
static deserialize(buffer, node) {
|
|
38
|
+
buffer.assertUint8(BinaryTypeMarshallingMap.DomainListNode);
|
|
39
|
+
node.type = ListNodeType.DomainList;
|
|
40
|
+
let prop = buffer.readUint8();
|
|
41
|
+
while (prop !== NULL) {
|
|
42
|
+
switch (prop) {
|
|
43
|
+
case DomainListMarshallingMap.Separator:
|
|
44
|
+
// eslint-disable-next-line max-len
|
|
45
|
+
node.separator = (getSeparatorDeserializationMap().get(buffer.readUint8()) ?? COMMA);
|
|
46
|
+
break;
|
|
47
|
+
case DomainListMarshallingMap.Children:
|
|
48
|
+
ListItemsDeserializer.deserialize(buffer, node.children = []);
|
|
49
|
+
break;
|
|
50
|
+
case DomainListMarshallingMap.Start:
|
|
51
|
+
node.start = buffer.readUint32();
|
|
52
|
+
break;
|
|
53
|
+
case DomainListMarshallingMap.End:
|
|
54
|
+
node.end = buffer.readUint32();
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
throw new Error(`Invalid property: ${prop}.`);
|
|
58
|
+
}
|
|
59
|
+
prop = buffer.readUint8();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export { DomainListDeserializer };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
|
+
import { BaseDeserializer } from '../base-deserializer.mjs';
|
|
8
|
+
import { ListItemNodeType } from '../../nodes/index.mjs';
|
|
9
|
+
import { NULL } from '../../utils/constants.mjs';
|
|
10
|
+
import { ListItemMarshallingMap } from '../../marshalling-utils/misc/list-item-common.mjs';
|
|
11
|
+
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.mjs';
|
|
12
|
+
|
|
13
|
+
/* eslint-disable no-param-reassign */
|
|
14
|
+
class ListItemDeserializer extends BaseDeserializer {
|
|
15
|
+
/**
|
|
16
|
+
* Deserializes a list item from binary format.
|
|
17
|
+
*
|
|
18
|
+
* @param buffer Input byte buffer.
|
|
19
|
+
* @param node Partial list item to deserialize.
|
|
20
|
+
* @template T Type of the list item.
|
|
21
|
+
*/
|
|
22
|
+
static deserialize = (buffer, node) => {
|
|
23
|
+
const type = buffer.readUint8();
|
|
24
|
+
switch (type) {
|
|
25
|
+
case BinaryTypeMarshallingMap.AppNode:
|
|
26
|
+
node.type = ListItemNodeType.App;
|
|
27
|
+
break;
|
|
28
|
+
case BinaryTypeMarshallingMap.DomainNode:
|
|
29
|
+
node.type = ListItemNodeType.Domain;
|
|
30
|
+
break;
|
|
31
|
+
case BinaryTypeMarshallingMap.MethodNode:
|
|
32
|
+
node.type = ListItemNodeType.Method;
|
|
33
|
+
break;
|
|
34
|
+
case BinaryTypeMarshallingMap.StealthOptionNode:
|
|
35
|
+
node.type = ListItemNodeType.StealthOption;
|
|
36
|
+
break;
|
|
37
|
+
default:
|
|
38
|
+
throw new Error(`Invalid list item type: ${type}`);
|
|
39
|
+
}
|
|
40
|
+
let prop = buffer.readUint8();
|
|
41
|
+
while (prop !== NULL) {
|
|
42
|
+
switch (prop) {
|
|
43
|
+
case ListItemMarshallingMap.Exception:
|
|
44
|
+
node.exception = buffer.readUint8() === 1;
|
|
45
|
+
break;
|
|
46
|
+
case ListItemMarshallingMap.Value:
|
|
47
|
+
node.value = buffer.readString();
|
|
48
|
+
break;
|
|
49
|
+
case ListItemMarshallingMap.Start:
|
|
50
|
+
node.start = buffer.readUint32();
|
|
51
|
+
break;
|
|
52
|
+
case ListItemMarshallingMap.End:
|
|
53
|
+
node.end = buffer.readUint32();
|
|
54
|
+
break;
|
|
55
|
+
default:
|
|
56
|
+
throw new Error(`Invalid property: ${type}`);
|
|
57
|
+
}
|
|
58
|
+
prop = buffer.readUint8();
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { ListItemDeserializer };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
|
+
import { ListItemDeserializer } from './list-item-deserializer.mjs';
|
|
8
|
+
|
|
9
|
+
class ListItemsDeserializer {
|
|
10
|
+
/**
|
|
11
|
+
* Deserializes a list of items from binary format.
|
|
12
|
+
*
|
|
13
|
+
* @param buffer Input byte buffer.
|
|
14
|
+
* @param items Partial list of items to deserialize.
|
|
15
|
+
* @template T Type of the list items.
|
|
16
|
+
*/
|
|
17
|
+
static deserialize = (buffer, items) => {
|
|
18
|
+
const length = buffer.readUint16();
|
|
19
|
+
items.length = length;
|
|
20
|
+
for (let i = 0; i < length; i += 1) {
|
|
21
|
+
ListItemDeserializer.deserialize(buffer, items[i] = {});
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { ListItemsDeserializer };
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
|
+
import { VariableNodeBinaryPropMarshallingMap, ParenthesisNodeBinaryPropMarshallingMap, OperatorNodeBinaryPropMarshallingMap, LOGICAL_EXPRESSION_OPERATOR_SERIALISATION_MAP, KNOWN_VARIABLES_SERIALIZATION_MAP } from '../../marshalling-utils/misc/logical-expression-common.mjs';
|
|
8
|
+
import { NodeType } from '../../serializer/misc/logical-expression-serializer.mjs';
|
|
9
|
+
import { NULL } from '../../utils/constants.mjs';
|
|
10
|
+
import { isUndefined } from '../../utils/type-guards.mjs';
|
|
11
|
+
import { BaseDeserializer } from '../base-deserializer.mjs';
|
|
12
|
+
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.mjs';
|
|
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 };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
|
+
import { NULL } from '../../utils/constants.mjs';
|
|
8
|
+
import { ValueDeserializer } from './value-deserializer.mjs';
|
|
9
|
+
import { BaseDeserializer } from '../base-deserializer.mjs';
|
|
10
|
+
import { ModifierNodeMarshallingMap, FREQUENT_MODIFIERS_SERIALIZATION_MAP, FREQUENT_REDIRECT_MODIFIERS_SERIALIZATION_MAP } from '../../marshalling-utils/misc/modifier-common.mjs';
|
|
11
|
+
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.mjs';
|
|
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
|
+
* `ModifierSerializer` is responsible for serializing 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 };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.1 (build date: Tue, 12 Nov 2024 16:11:58 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
|
+
import { NULL } from '../../utils/constants.mjs';
|
|
8
|
+
import { BaseDeserializer } from '../base-deserializer.mjs';
|
|
9
|
+
import { ModifierDeserializer } from './modifier-deserializer.mjs';
|
|
10
|
+
import { ModifierListNodeMarshallingMap } from '../../marshalling-utils/misc/modifier-list-common.mjs';
|
|
11
|
+
import { BinaryTypeMarshallingMap } from '../../marshalling-utils/misc/binary-type-common.mjs';
|
|
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
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export { ModifierListDeserializer };
|