@adguard/agtree 2.2.0 → 3.0.0-alpha.2
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/ast-utils/clone.js +61 -0
- package/dist/ast-utils/modifiers.js +53 -0
- package/dist/ast-utils/network-rules.js +41 -0
- package/dist/ast-utils/scriptlets.js +87 -0
- package/dist/common/abp-snippet-injection-body-common.js +23 -0
- package/dist/common/agent-common.js +56 -0
- package/dist/common/ubo-selector-common.js +17 -0
- package/dist/compatibility-tables/base.js +262 -0
- package/dist/compatibility-tables/compatibility-table-data.js +11 -0
- package/dist/compatibility-tables/modifiers.js +55 -0
- package/dist/compatibility-tables/platforms.js +76 -0
- package/dist/compatibility-tables/redirects.js +100 -0
- package/dist/compatibility-tables/schemas/base.js +111 -0
- package/dist/compatibility-tables/schemas/modifier.js +129 -0
- package/dist/compatibility-tables/schemas/platform.js +69 -0
- package/dist/compatibility-tables/schemas/redirect.js +29 -0
- package/dist/compatibility-tables/schemas/resource-type.js +36 -0
- package/dist/compatibility-tables/schemas/scriptlet.js +79 -0
- package/dist/compatibility-tables/scriptlets.js +28 -0
- package/dist/compatibility-tables/utils/platform-helpers.js +105 -0
- package/dist/compatibility-tables/utils/resource-type-helpers.js +61 -0
- package/dist/compatibility-tables/utils/zod-camelcase.js +25 -0
- package/dist/converter/base-interfaces/base-converter.js +59 -0
- package/dist/converter/base-interfaces/conversion-result.js +38 -0
- package/dist/converter/base-interfaces/rule-converter-base.js +60 -0
- package/dist/converter/comment/index.js +54 -0
- package/dist/converter/cosmetic/css.js +69 -0
- package/dist/converter/cosmetic/element-hiding.js +62 -0
- package/dist/converter/cosmetic/header-removal.js +123 -0
- package/dist/converter/cosmetic/html.js +379 -0
- package/dist/converter/cosmetic/index.js +118 -0
- package/dist/converter/cosmetic/rule-modifiers/adg.js +79 -0
- package/dist/converter/cosmetic/scriptlet.js +354 -0
- package/dist/converter/css/index.js +188 -0
- package/dist/converter/data/css.js +126 -0
- package/dist/converter/filter-list.js +88 -0
- package/dist/converter/index.js +8 -0
- package/dist/converter/misc/network-rule-modifier.js +311 -0
- package/dist/converter/network/index.js +99 -0
- package/dist/converter/raw-filter-list.js +56 -0
- package/dist/converter/rule.js +81 -0
- package/dist/deserializer/base-deserializer.js +29 -0
- package/dist/deserializer/comment/agent-comment-deserializer.js +79 -0
- package/dist/deserializer/comment/agent-deserializer.js +65 -0
- package/dist/deserializer/comment/comment-rule-deserializer.js +54 -0
- package/dist/deserializer/comment/config-comment-deserializer.js +111 -0
- package/dist/deserializer/comment/hint-comment-deserializer.js +72 -0
- package/dist/deserializer/comment/hint-deserializer.js +85 -0
- package/dist/deserializer/comment/metadata-comment-deserializer.js +69 -0
- package/dist/deserializer/comment/pre-processor-comment-deserializer.js +112 -0
- package/dist/deserializer/comment/simple-comment-deserializer.js +65 -0
- package/dist/deserializer/cosmetic/cosmetic-rule-deserializer.js +131 -0
- package/dist/deserializer/cosmetic/css-injection-body-deserializer.js +56 -0
- package/dist/deserializer/cosmetic/element-hiding-body-deserializer.js +48 -0
- package/dist/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.js +39 -0
- package/dist/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.js +40 -0
- package/dist/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.js +54 -0
- package/dist/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.js +38 -0
- package/dist/deserializer/empty-rule-deserializer.js +48 -0
- package/dist/deserializer/filterlist-deserializer.js +85 -0
- package/dist/deserializer/index.js +8 -0
- package/dist/deserializer/invalid-rule-deserializer.js +50 -0
- package/dist/deserializer/invalid-rule-error-node-deserializer.js +50 -0
- package/dist/deserializer/misc/domain-list-deserializer.js +64 -0
- package/dist/deserializer/misc/list-item-deserializer.js +69 -0
- package/dist/deserializer/misc/list-items-deserializer.js +30 -0
- package/dist/deserializer/misc/logical-expression-deserializer.js +196 -0
- package/dist/deserializer/misc/modifier-deserializer.js +87 -0
- package/dist/deserializer/misc/modifier-list-deserializer.js +61 -0
- package/dist/deserializer/misc/parameter-list-deserializer.js +64 -0
- package/dist/deserializer/misc/value-deserializer.js +50 -0
- package/dist/deserializer/network/host-rule-deserializer.js +67 -0
- package/dist/deserializer/network/hostname-list-deserializer.js +56 -0
- package/dist/deserializer/network/network-rule-deserializer.js +65 -0
- package/dist/deserializer/rule-deserializer.js +65 -0
- package/dist/deserializer/syntax-deserialization-map.js +21 -0
- package/dist/errors/adblock-syntax-error.js +39 -0
- package/dist/errors/binary-schema-mismatch-error.js +37 -0
- package/dist/errors/not-implemented-error.js +31 -0
- package/dist/errors/rule-conversion-error.js +26 -0
- package/dist/generator/base-generator.js +27 -0
- package/dist/generator/comment/agent-comment-generator.js +31 -0
- package/dist/generator/comment/agent-generator.js +36 -0
- package/dist/generator/comment/comment-rule-generator.js +47 -0
- package/dist/generator/comment/config-comment-generator.js +45 -0
- package/dist/generator/comment/hint-comment-generator.js +28 -0
- package/dist/generator/comment/hint-generator.js +33 -0
- package/dist/generator/comment/metadata-comment-generator.js +33 -0
- package/dist/generator/comment/pre-processor-comment-generator.js +48 -0
- package/dist/generator/comment/simple-comment-generator.js +29 -0
- package/dist/generator/cosmetic/body/abp-snippet-injection-body-generator.js +38 -0
- package/dist/generator/cosmetic/body/adg-scriptlet-injection-body-generator.js +43 -0
- package/dist/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.js +45 -0
- package/dist/generator/cosmetic/cosmetic-rule-body-generator.js +94 -0
- package/dist/generator/cosmetic/cosmetic-rule-generator.js +54 -0
- package/dist/generator/cosmetic/cosmetic-rule-pattern-generator.js +42 -0
- package/dist/generator/css/adg-css-injection-generator.js +42 -0
- package/dist/generator/filterlist-generator.js +67 -0
- package/dist/generator/index.js +9 -0
- package/dist/generator/misc/domain-list-generator.js +26 -0
- package/dist/generator/misc/list-items-generator.js +39 -0
- package/dist/generator/misc/logical-expression-generator.js +48 -0
- package/dist/generator/misc/modifier-generator.js +34 -0
- package/dist/generator/misc/modifier-list-generator.js +29 -0
- package/dist/generator/misc/parameter-list-generator.js +41 -0
- package/dist/generator/misc/value-generator.js +24 -0
- package/dist/generator/network/host-rule-generator.js +39 -0
- package/dist/generator/network/network-rule-generator.js +38 -0
- package/dist/generator/rule-generator.js +65 -0
- package/dist/index.js +70 -0
- package/dist/marshalling-utils/comment/agent-comment-common.js +21 -0
- package/dist/marshalling-utils/comment/agent-common.js +40 -0
- package/dist/marshalling-utils/comment/config-comment-common.js +54 -0
- package/dist/marshalling-utils/comment/hint-comment-common.js +22 -0
- package/dist/marshalling-utils/comment/hint-common.js +56 -0
- package/dist/marshalling-utils/comment/metadata-comment-common.js +41 -0
- package/dist/marshalling-utils/comment/pre-processor-comment-common.js +59 -0
- package/dist/marshalling-utils/comment/simple-comment-common.js +22 -0
- package/dist/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.js +61 -0
- package/dist/marshalling-utils/cosmetic/body/adg-scriptlet-injection-body-common.js +66 -0
- 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/marshalling-utils/cosmetic/body/ubo-scriptlet-injection-body-common.js +114 -0
- package/dist/marshalling-utils/cosmetic/cosmetic-rule-common.js +48 -0
- package/dist/marshalling-utils/empty-rule-common.js +20 -0
- package/dist/marshalling-utils/filter-list-common.js +21 -0
- package/dist/marshalling-utils/invalid-rule-common.js +21 -0
- package/dist/marshalling-utils/invalid-rule-error-node-common.js +22 -0
- package/dist/marshalling-utils/misc/binary-type-common.js +66 -0
- package/dist/marshalling-utils/misc/domain-list-common.js +36 -0
- package/dist/marshalling-utils/misc/host-rule-common.js +25 -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/marshalling-utils/misc/modifier-common.js +231 -0
- 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 +25 -0
- package/dist/marshalling-utils/syntax-serialization-map.js +30 -0
- package/dist/nodes/index.js +168 -0
- package/dist/package.json.js +9 -0
- package/dist/parser/base-parser.js +30 -0
- package/dist/parser/comment/agent-comment-parser.js +119 -0
- package/dist/parser/comment/agent-parser.js +110 -0
- package/dist/parser/comment/comment-parser.js +108 -0
- package/dist/parser/comment/config-comment-parser.js +137 -0
- package/dist/parser/comment/hint-comment-parser.js +117 -0
- package/dist/parser/comment/hint-parser.js +129 -0
- package/dist/parser/comment/metadata-comment-parser.js +129 -0
- package/dist/parser/comment/preprocessor-parser.js +199 -0
- package/dist/parser/comment/simple-comment-parser.js +106 -0
- package/dist/parser/cosmetic/body/abp-snippet-injection-body-parser.js +79 -0
- package/dist/parser/cosmetic/body/adg-scriptlet-injection-body-parser.js +149 -0
- package/dist/parser/cosmetic/body/ubo-scriptlet-injection-body-parser.js +110 -0
- package/dist/parser/cosmetic/cosmetic-rule-parser.js +453 -0
- package/dist/parser/css/adg-css-injection-parser.js +208 -0
- package/dist/parser/css/balancing.js +94 -0
- package/dist/parser/css/constants.js +18 -0
- package/dist/parser/css/css-token-stream.js +343 -0
- package/dist/parser/css/ubo-selector-parser.js +369 -0
- package/dist/parser/filterlist-parser.js +102 -0
- package/dist/parser/index.js +12 -0
- package/dist/parser/misc/app-list-parser.js +45 -0
- package/dist/parser/misc/domain-list-parser.js +52 -0
- package/dist/parser/misc/list-items-parser.js +116 -0
- package/dist/parser/misc/logical-expression-parser.js +279 -0
- package/dist/parser/misc/method-list-parser.js +46 -0
- package/dist/parser/misc/modifier-list.js +70 -0
- package/dist/parser/misc/modifier-parser.js +89 -0
- package/dist/parser/misc/parameter-list-parser.js +75 -0
- package/dist/parser/misc/stealth-option-list-parser.js +46 -0
- package/dist/parser/misc/ubo-parameter-list-parser.js +149 -0
- package/dist/parser/misc/value-parser.js +37 -0
- package/dist/parser/network/host-rule-parser.js +130 -0
- package/dist/parser/network/network-rule-parser.js +117 -0
- package/dist/parser/options.js +23 -0
- package/dist/parser/rule-parser.js +192 -0
- package/dist/serializer/base-serializer.js +29 -0
- package/dist/serializer/comment/agent-comment-serializer.js +74 -0
- package/dist/serializer/comment/agent-serializer.js +59 -0
- package/dist/serializer/comment/comment-rule-serializer.js +105 -0
- package/dist/serializer/comment/config-comment-serializer.js +82 -0
- package/dist/serializer/comment/hint-comment-serializer.js +65 -0
- package/dist/serializer/comment/hint-serializer.js +54 -0
- package/dist/serializer/comment/metadata-comment-serializer.js +73 -0
- package/dist/serializer/comment/pre-processor-comment-serializer.js +71 -0
- package/dist/serializer/comment/simple-comment-serializer.js +52 -0
- package/dist/serializer/cosmetic/body/abp-snippet-injection-body-serializer.js +36 -0
- package/dist/serializer/cosmetic/body/adg-scriptlet-injection-body-serializer.js +36 -0
- package/dist/serializer/cosmetic/body/scriptlet-body-serializer.js +50 -0
- package/dist/serializer/cosmetic/body/ubo-scriptlet-injection-body-serializer.js +36 -0
- package/dist/serializer/cosmetic/cosmetic-rule-serializer.js +120 -0
- package/dist/serializer/cosmetic/css-injection-body-serializer.js +51 -0
- package/dist/serializer/cosmetic/element-hiding-body-serializer.js +40 -0
- package/dist/serializer/empty-rule-serializer.js +37 -0
- package/dist/serializer/filterlist-serializer.js +45 -0
- package/dist/serializer/index.js +7 -0
- package/dist/serializer/invalid-rule-error-node-serializer.js +41 -0
- package/dist/serializer/invalid-rule-serializer.js +40 -0
- package/dist/serializer/misc/domain-list-serializer.js +64 -0
- package/dist/serializer/misc/list-item-serializer.js +58 -0
- package/dist/serializer/misc/list-items-serializer.js +29 -0
- package/dist/serializer/misc/logical-expression-serializer.js +136 -0
- package/dist/serializer/misc/modifier-list-serializer.js +58 -0
- package/dist/serializer/misc/modifier-serializer.js +49 -0
- package/dist/serializer/misc/parameter-list-serializer.js +52 -0
- package/dist/serializer/misc/value-serializer.js +50 -0
- package/dist/serializer/network/host-rule-serializer.js +70 -0
- package/dist/serializer/network/hostname-list-serializer.js +53 -0
- package/dist/serializer/network/network-rule-serializer.js +54 -0
- package/dist/serializer/rule-serializer.js +61 -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 +15 -0
- package/dist/types/common/agent-common.d.ts +10 -0
- package/dist/types/common/ubo-selector-common.d.ts +10 -0
- package/dist/types/compatibility-tables/base.d.ts +157 -0
- package/dist/types/compatibility-tables/compatibility-table-data.d.ts +68 -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 +49 -0
- package/dist/types/compatibility-tables/redirects.d.ts +33 -0
- package/dist/types/compatibility-tables/schemas/base.d.ts +124 -0
- package/dist/types/compatibility-tables/schemas/index.d.ts +8 -0
- package/dist/types/compatibility-tables/schemas/modifier.d.ts +36 -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 +41 -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 +40 -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 +16 -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 +18 -0
- package/dist/types/deserializer/cosmetic/css-injection-body-deserializer.d.ts +15 -0
- package/dist/types/deserializer/cosmetic/element-hiding-body-deserializer.d.ts +16 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/abp-snippet-injection-body-deserializer.d.ts +17 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/adg-scriptlet-injection-body-deserializer.d.ts +18 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/scriptlet-body-deserializer.d.ts +19 -0
- package/dist/types/deserializer/cosmetic/scriptlet-body/ubo-scriptlet-injection-body-deserializer.d.ts +17 -0
- package/dist/types/deserializer/empty-rule-deserializer.d.ts +16 -0
- package/dist/types/deserializer/filterlist-deserializer.d.ts +34 -0
- package/dist/types/deserializer/index.d.ts +2 -0
- package/dist/types/deserializer/invalid-rule-deserializer.d.ts +16 -0
- package/dist/types/deserializer/invalid-rule-error-node-deserializer.d.ts +16 -0
- package/dist/types/deserializer/misc/domain-list-deserializer.d.ts +15 -0
- package/dist/types/deserializer/misc/list-item-deserializer.d.ts +19 -0
- package/dist/types/deserializer/misc/list-items-deserializer.d.ts +16 -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 +18 -0
- package/dist/types/deserializer/misc/value-deserializer.d.ts +17 -0
- package/dist/types/deserializer/network/host-rule-deserializer.d.ts +18 -0
- package/dist/types/deserializer/network/hostname-list-deserializer.d.ts +15 -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 +14 -0
- package/dist/types/generator/comment/agent-generator.d.ts +15 -0
- package/dist/types/generator/comment/comment-rule-generator.d.ts +14 -0
- package/dist/types/generator/comment/config-comment-generator.d.ts +14 -0
- package/dist/types/generator/comment/hint-comment-generator.d.ts +14 -0
- package/dist/types/generator/comment/hint-generator.d.ts +14 -0
- package/dist/types/generator/comment/index.d.ts +1 -0
- package/dist/types/generator/comment/metadata-comment-generator.d.ts +14 -0
- package/dist/types/generator/comment/pre-processor-comment-generator.d.ts +14 -0
- package/dist/types/generator/comment/simple-comment-generator.d.ts +14 -0
- package/dist/types/generator/cosmetic/body/abp-snippet-injection-body-generator.d.ts +15 -0
- package/dist/types/generator/cosmetic/body/adg-scriptlet-injection-body-generator.d.ts +21 -0
- package/dist/types/generator/cosmetic/body/ubo-scriptlet-injection-body-generator.d.ts +21 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-body-generator.d.ts +20 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-generator.d.ts +28 -0
- package/dist/types/generator/cosmetic/cosmetic-rule-pattern-generator.d.ts +18 -0
- package/dist/types/generator/cosmetic/index.d.ts +1 -0
- package/dist/types/generator/css/adg-css-injection-generator.d.ts +15 -0
- package/dist/types/generator/css/ubo-selector-generator.d.ts +14 -0
- package/dist/types/generator/filterlist-generator.d.ts +18 -0
- package/dist/types/generator/index.d.ts +3 -0
- package/dist/types/generator/misc/domain-list-generator.d.ts +15 -0
- package/dist/types/generator/misc/list-items-generator.d.ts +25 -0
- package/dist/types/generator/misc/logical-expression-generator.d.ts +14 -0
- package/dist/types/generator/misc/modifier-generator.d.ts +14 -0
- package/dist/types/generator/misc/modifier-list-generator.d.ts +14 -0
- package/dist/types/generator/misc/parameter-list-generator.d.ts +15 -0
- package/dist/types/generator/misc/value-generator.d.ts +14 -0
- package/dist/types/generator/network/host-rule-generator.d.ts +14 -0
- package/dist/types/generator/network/index.d.ts +2 -0
- package/dist/types/generator/network/network-rule-generator.d.ts +14 -0
- package/dist/types/generator/rule-generator.d.ts +24 -0
- package/dist/types/index.d.ts +55 -0
- package/dist/types/marshalling-utils/comment/agent-comment-common.d.ts +14 -0
- package/dist/types/marshalling-utils/comment/agent-common.d.ts +20 -0
- package/dist/types/marshalling-utils/comment/config-comment-common.d.ts +42 -0
- package/dist/types/marshalling-utils/comment/hint-comment-common.d.ts +15 -0
- package/dist/types/marshalling-utils/comment/hint-common.d.ts +33 -0
- package/dist/types/marshalling-utils/comment/metadata-comment-common.d.ts +21 -0
- package/dist/types/marshalling-utils/comment/pre-processor-comment-common.d.ts +37 -0
- package/dist/types/marshalling-utils/comment/simple-comment-common.d.ts +15 -0
- package/dist/types/marshalling-utils/cosmetic/body/abp-snippet-injection-body-common.d.ts +23 -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 +17 -0
- package/dist/types/marshalling-utils/cosmetic/body/element-hiding-body-common.d.ts +14 -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 +28 -0
- package/dist/types/marshalling-utils/empty-rule-common.d.ts +13 -0
- package/dist/types/marshalling-utils/filter-list-common.d.ts +14 -0
- package/dist/types/marshalling-utils/invalid-rule-common.d.ts +14 -0
- package/dist/types/marshalling-utils/invalid-rule-error-node-common.d.ts +15 -0
- package/dist/types/marshalling-utils/misc/binary-type-common.d.ts +57 -0
- package/dist/types/marshalling-utils/misc/domain-list-common.d.ts +24 -0
- package/dist/types/marshalling-utils/misc/host-rule-common.d.ts +18 -0
- package/dist/types/marshalling-utils/misc/hostname-list-common.d.ts +14 -0
- package/dist/types/marshalling-utils/misc/list-item-common.d.ts +15 -0
- package/dist/types/marshalling-utils/misc/logical-expression-common.d.ts +47 -0
- package/dist/types/marshalling-utils/misc/modifier-common.d.ts +41 -0
- package/dist/types/marshalling-utils/misc/modifier-list-common.d.ts +14 -0
- package/dist/types/marshalling-utils/misc/parameter-list-common.d.ts +14 -0
- package/dist/types/marshalling-utils/misc/value-common.d.ts +15 -0
- package/dist/types/marshalling-utils/network/network-rule-common.d.ts +18 -0
- package/dist/types/marshalling-utils/syntax-serialization-map.d.ts +2 -0
- package/dist/types/nodes/index.d.ts +1183 -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 +6 -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 +37 -0
- package/dist/types/parser/misc/logical-expression-parser.d.ts +42 -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 +17 -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 +21 -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 +15 -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 +17 -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 +19 -0
- package/dist/types/serializer/cosmetic/css-injection-body-serializer.d.ts +15 -0
- package/dist/types/serializer/cosmetic/element-hiding-body-serializer.d.ts +15 -0
- package/dist/types/serializer/empty-rule-serializer.d.ts +15 -0
- package/dist/types/serializer/filterlist-serializer.d.ts +15 -0
- package/dist/types/serializer/index.d.ts +1 -0
- package/dist/types/serializer/invalid-rule-error-node-serializer.d.ts +15 -0
- package/dist/types/serializer/invalid-rule-serializer.d.ts +15 -0
- package/dist/types/serializer/misc/domain-list-serializer.d.ts +21 -0
- package/dist/types/serializer/misc/list-item-serializer.d.ts +16 -0
- package/dist/types/serializer/misc/list-items-serializer.d.ts +15 -0
- package/dist/types/serializer/misc/logical-expression-serializer.d.ts +52 -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 +17 -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 +15 -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 +49 -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 +29 -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 +146 -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 +132 -0
- package/dist/types/utils/position-provider.d.ts +46 -0
- package/dist/types/utils/quotes.d.ts +94 -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 +280 -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 +12 -0
- package/dist/types/version.d.ts +5 -0
- package/dist/utils/adblockers.js +56 -0
- package/dist/utils/binary-schema-version.js +17 -0
- package/dist/utils/byte-buffer.js +91 -0
- package/dist/utils/categorizer.js +44 -0
- package/dist/utils/clone.js +28 -0
- package/dist/utils/constants.js +249 -0
- package/dist/utils/cosmetic-rule-separator.js +127 -0
- package/dist/utils/deep-freeze.js +32 -0
- package/dist/utils/domain.js +59 -0
- package/dist/utils/error.js +49 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/input-byte-buffer.js +265 -0
- package/dist/utils/is-chromium.js +20 -0
- package/dist/utils/logical-expression.js +92 -0
- package/dist/utils/multi-value-map.js +33 -0
- package/dist/utils/output-byte-buffer.js +231 -0
- package/dist/utils/position-provider.js +73 -0
- package/dist/utils/quotes.js +214 -0
- package/dist/utils/regexp.js +176 -0
- package/dist/utils/string.js +559 -0
- package/dist/utils/text-decoder-polyfill.js +107 -0
- package/dist/utils/text-encoder-polyfill.js +78 -0
- package/dist/utils/type-guards.js +47 -0
- package/dist/validator/constants.js +210 -0
- package/dist/validator/helpers.js +45 -0
- package/dist/validator/index.js +174 -0
- package/dist/validator/value.js +568 -0
- package/dist/version.js +18 -0
- package/package.json +61 -39
- package/dist/agtree.d.ts +0 -4155
- package/dist/agtree.js +0 -15819
- package/dist/agtree.mjs +0 -15720
- package/dist/compatibility-table-data.js +0 -12782
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { CLOSE_SQUARE_BRACKET, EMPTY, OPEN_SQUARE_BRACKET, DOLLAR_SIGN } from '../../utils/constants.js';
|
|
8
|
+
import { AdblockSyntax } from '../../utils/adblockers.js';
|
|
9
|
+
import { BaseGenerator } from '../base-generator.js';
|
|
10
|
+
import { ModifierListGenerator } from '../misc/modifier-list-generator.js';
|
|
11
|
+
import { DomainListGenerator } from '../misc/domain-list-generator.js';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Cosmetic rule pattern generator.
|
|
15
|
+
*/
|
|
16
|
+
class CosmeticRulePatternGenerator extends BaseGenerator {
|
|
17
|
+
/**
|
|
18
|
+
* Generates the rule pattern from the AST.
|
|
19
|
+
*
|
|
20
|
+
* @param node Cosmetic rule node
|
|
21
|
+
* @returns Raw rule pattern
|
|
22
|
+
* @example
|
|
23
|
+
* - '##.foo' → ''
|
|
24
|
+
* - 'example.com,example.org##.foo' → 'example.com,example.org'
|
|
25
|
+
* - '[$path=/foo/bar]example.com##.foo' → '[$path=/foo/bar]example.com'
|
|
26
|
+
*/
|
|
27
|
+
static generate(node) {
|
|
28
|
+
let result = EMPTY;
|
|
29
|
+
// AdGuard modifiers (if any)
|
|
30
|
+
if (node.syntax === AdblockSyntax.Adg && node.modifiers && node.modifiers.children.length > 0) {
|
|
31
|
+
result += OPEN_SQUARE_BRACKET;
|
|
32
|
+
result += DOLLAR_SIGN;
|
|
33
|
+
result += ModifierListGenerator.generate(node.modifiers);
|
|
34
|
+
result += CLOSE_SQUARE_BRACKET;
|
|
35
|
+
}
|
|
36
|
+
// Domain list (if any)
|
|
37
|
+
result += DomainListGenerator.generate(node.domains);
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export { CosmeticRulePatternGenerator };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { COLON, SPACE, SEMICOLON, CSS_MEDIA_MARKER, OPEN_CURLY_BRACKET, CLOSE_CURLY_BRACKET, EMPTY } from '../../utils/constants.js';
|
|
8
|
+
import { BaseGenerator } from '../base-generator.js';
|
|
9
|
+
import { REMOVE_PROPERTY, REMOVE_VALUE } from '../../parser/css/adg-css-injection-parser.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* AdGuard CSS injection generator.
|
|
13
|
+
*/
|
|
14
|
+
class AdgCssInjectionGenerator extends BaseGenerator {
|
|
15
|
+
static removeDeclaration = `${REMOVE_PROPERTY}${COLON}${SPACE}${REMOVE_VALUE}${SEMICOLON}`;
|
|
16
|
+
/**
|
|
17
|
+
* Serializes an AdGuard CSS injection node into a raw string.
|
|
18
|
+
*
|
|
19
|
+
* @param node Node to serialize.
|
|
20
|
+
* @returns Raw string.
|
|
21
|
+
*/
|
|
22
|
+
static generate(node) {
|
|
23
|
+
const result = [];
|
|
24
|
+
if (node.mediaQueryList) {
|
|
25
|
+
result.push(CSS_MEDIA_MARKER, SPACE, node.mediaQueryList.value, SPACE, OPEN_CURLY_BRACKET, SPACE);
|
|
26
|
+
}
|
|
27
|
+
result.push(node.selectorList.value, SPACE, OPEN_CURLY_BRACKET, SPACE);
|
|
28
|
+
if (node.remove) {
|
|
29
|
+
result.push(AdgCssInjectionGenerator.removeDeclaration);
|
|
30
|
+
}
|
|
31
|
+
else if (node.declarationList?.value) {
|
|
32
|
+
result.push(node.declarationList.value);
|
|
33
|
+
}
|
|
34
|
+
result.push(SPACE, CLOSE_CURLY_BRACKET);
|
|
35
|
+
if (node.mediaQueryList) {
|
|
36
|
+
result.push(SPACE, CLOSE_CURLY_BRACKET);
|
|
37
|
+
}
|
|
38
|
+
return result.join(EMPTY);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export { AdgCssInjectionGenerator };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { LF, CR, CRLF, EMPTY } from '../utils/constants.js';
|
|
8
|
+
import { RuleGenerator } from './rule-generator.js';
|
|
9
|
+
import { BaseGenerator } from './base-generator.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Generates a serialized filter list.
|
|
13
|
+
*/
|
|
14
|
+
class FilterListGenerator extends BaseGenerator {
|
|
15
|
+
/**
|
|
16
|
+
* Serializes a whole adblock filter list (list of rules).
|
|
17
|
+
*
|
|
18
|
+
* @param ast AST to generate
|
|
19
|
+
* @param preferRaw If `true`, then the parser will use `raws.text` property of each rule
|
|
20
|
+
* if it is available. Default is `false`.
|
|
21
|
+
* @param tolerant If `true`, errors during rule generation will be logged to the console and invalid rules
|
|
22
|
+
* will be skipped. If `false`, an error will be thrown on the first invalid rule. Default is `true`.
|
|
23
|
+
* @returns Serialized filter list
|
|
24
|
+
*/
|
|
25
|
+
static generate(ast, preferRaw = false, tolerant = true) {
|
|
26
|
+
let result = EMPTY;
|
|
27
|
+
for (let i = 0; i < ast.children.length; i += 1) {
|
|
28
|
+
const rule = ast.children[i];
|
|
29
|
+
if (preferRaw && rule.raws?.text) {
|
|
30
|
+
result += rule.raws.text;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
try {
|
|
34
|
+
result += RuleGenerator.generate(rule);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
if (tolerant) {
|
|
38
|
+
// eslint-disable-next-line no-console
|
|
39
|
+
console.error(`Error when generating: ${error}`);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
throw new Error(String(error));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
switch (rule.raws?.nl) {
|
|
47
|
+
case 'crlf':
|
|
48
|
+
result += CRLF;
|
|
49
|
+
break;
|
|
50
|
+
case 'cr':
|
|
51
|
+
result += CR;
|
|
52
|
+
break;
|
|
53
|
+
case 'lf':
|
|
54
|
+
result += LF;
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
if (i !== ast.children.length - 1) {
|
|
58
|
+
result += LF;
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export { FilterListGenerator };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { RuleGenerator } from './rule-generator.js';
|
|
8
|
+
export { CosmeticRuleGenerator } from './cosmetic/cosmetic-rule-generator.js';
|
|
9
|
+
export { CosmeticRuleBodyGenerator } from './cosmetic/cosmetic-rule-body-generator.js';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { BaseGenerator } from '../base-generator.js';
|
|
8
|
+
import { ListItemsGenerator } from './list-items-generator.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Domain list generator.
|
|
12
|
+
*/
|
|
13
|
+
class DomainListGenerator extends BaseGenerator {
|
|
14
|
+
/**
|
|
15
|
+
* Converts a domain list node to a string.
|
|
16
|
+
*
|
|
17
|
+
* @param node Domain list node.
|
|
18
|
+
*
|
|
19
|
+
* @returns Raw string.
|
|
20
|
+
*/
|
|
21
|
+
static generate(node) {
|
|
22
|
+
return ListItemsGenerator.generate(node.children, node.separator);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { DomainListGenerator };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { NEGATION_MARKER, EMPTY } from '../../utils/constants.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Utility class for generating string representations of list items.
|
|
11
|
+
*/
|
|
12
|
+
class ListItemsGenerator {
|
|
13
|
+
/**
|
|
14
|
+
* Generates a string representation of a list item.
|
|
15
|
+
*
|
|
16
|
+
* @param item List item to generate.
|
|
17
|
+
* @template T Type of the list item.
|
|
18
|
+
*
|
|
19
|
+
* @returns String representation of the list item.
|
|
20
|
+
*/
|
|
21
|
+
static generateListItem = (item) => {
|
|
22
|
+
return `${item.exception ? NEGATION_MARKER : EMPTY}${item.value}`;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Generates a string representation of a list of items.
|
|
26
|
+
*
|
|
27
|
+
* @param items List of items to generate.
|
|
28
|
+
* @param separator Separator character.
|
|
29
|
+
* @template T Type of the list items.
|
|
30
|
+
*
|
|
31
|
+
* @returns String representation of the list of items.
|
|
32
|
+
*/
|
|
33
|
+
static generate = (items, separator) => {
|
|
34
|
+
return items.map(ListItemsGenerator.generateListItem)
|
|
35
|
+
.join(separator);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { ListItemsGenerator };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { BaseGenerator } from '../base-generator.js';
|
|
8
|
+
import { OperatorValue } from '../../nodes/index.js';
|
|
9
|
+
import { NodeType } from '../../parser/misc/logical-expression-parser.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Generator for logical expression nodes.
|
|
13
|
+
*/
|
|
14
|
+
class LogicalExpressionGenerator extends BaseGenerator {
|
|
15
|
+
/**
|
|
16
|
+
* Generates a string representation of the logical expression (serialization).
|
|
17
|
+
*
|
|
18
|
+
* @param node Expression node
|
|
19
|
+
* @returns String representation of the logical expression
|
|
20
|
+
*/
|
|
21
|
+
static generate(node) {
|
|
22
|
+
if (node.type === NodeType.Variable) {
|
|
23
|
+
return node.name;
|
|
24
|
+
}
|
|
25
|
+
if (node.type === NodeType.Operator) {
|
|
26
|
+
const left = LogicalExpressionGenerator.generate(node.left);
|
|
27
|
+
const right = node.right ? LogicalExpressionGenerator.generate(node.right) : undefined;
|
|
28
|
+
const { operator } = node;
|
|
29
|
+
// Special case for NOT operator
|
|
30
|
+
if (operator === OperatorValue.Not) {
|
|
31
|
+
return `${operator}${left}`;
|
|
32
|
+
}
|
|
33
|
+
// Right operand is required for AND and OR operators
|
|
34
|
+
if (!right) {
|
|
35
|
+
throw new Error('Expected right operand');
|
|
36
|
+
}
|
|
37
|
+
return `${left} ${operator} ${right}`;
|
|
38
|
+
}
|
|
39
|
+
if (node.type === NodeType.Parenthesis) {
|
|
40
|
+
const expressionString = LogicalExpressionGenerator.generate(node.expression);
|
|
41
|
+
return `(${expressionString})`;
|
|
42
|
+
}
|
|
43
|
+
// Theoretically, this shouldn't happen if the library is used correctly
|
|
44
|
+
throw new Error('Unexpected node type');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { LogicalExpressionGenerator };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { MODIFIER_ASSIGN_OPERATOR, EMPTY, NEGATION_MARKER } from '../../utils/constants.js';
|
|
8
|
+
import { BaseGenerator } from '../base-generator.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Generator for modifier nodes.
|
|
12
|
+
*/
|
|
13
|
+
class ModifierGenerator extends BaseGenerator {
|
|
14
|
+
/**
|
|
15
|
+
* Converts a modifier AST node to a string.
|
|
16
|
+
*
|
|
17
|
+
* @param modifier Modifier AST node to convert
|
|
18
|
+
* @returns String representation of the modifier
|
|
19
|
+
*/
|
|
20
|
+
static generate(modifier) {
|
|
21
|
+
let result = EMPTY;
|
|
22
|
+
if (modifier.exception) {
|
|
23
|
+
result += NEGATION_MARKER;
|
|
24
|
+
}
|
|
25
|
+
result += modifier.name.value;
|
|
26
|
+
if (modifier.value !== undefined) {
|
|
27
|
+
result += MODIFIER_ASSIGN_OPERATOR;
|
|
28
|
+
result += modifier.value.value;
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { ModifierGenerator };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { BaseGenerator } from '../base-generator.js';
|
|
8
|
+
import { MODIFIERS_SEPARATOR } from '../../utils/constants.js';
|
|
9
|
+
import { ModifierGenerator } from './modifier-generator.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Generator for modifier list nodes.
|
|
13
|
+
*/
|
|
14
|
+
class ModifierListGenerator extends BaseGenerator {
|
|
15
|
+
/**
|
|
16
|
+
* Converts a modifier list AST to a string.
|
|
17
|
+
*
|
|
18
|
+
* @param ast Modifier list AST
|
|
19
|
+
* @returns Raw string
|
|
20
|
+
*/
|
|
21
|
+
static generate(ast) {
|
|
22
|
+
const result = ast.children
|
|
23
|
+
.map(ModifierGenerator.generate)
|
|
24
|
+
.join(MODIFIERS_SEPARATOR);
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { ModifierListGenerator };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { SPACE, COMMA, EMPTY } from '../../utils/constants.js';
|
|
8
|
+
import { BaseGenerator } from '../base-generator.js';
|
|
9
|
+
import { ValueGenerator } from './value-generator.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Generator for parameter list nodes.
|
|
13
|
+
*/
|
|
14
|
+
class ParameterListGenerator extends BaseGenerator {
|
|
15
|
+
/**
|
|
16
|
+
* Converts a parameter list AST to a string.
|
|
17
|
+
*
|
|
18
|
+
* @param params Parameter list AST
|
|
19
|
+
* @param separator Separator character (default: comma)
|
|
20
|
+
* @returns String representation of the parameter list
|
|
21
|
+
*/
|
|
22
|
+
static generate(params, separator = COMMA) {
|
|
23
|
+
const collection = [];
|
|
24
|
+
let i = 0;
|
|
25
|
+
for (; i < params.children.length; i += 1) {
|
|
26
|
+
const param = params.children[i];
|
|
27
|
+
if (param === null) {
|
|
28
|
+
collection.push(EMPTY);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
collection.push(ValueGenerator.generate(param));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// join parameters with separator
|
|
35
|
+
// if the separator is a space, join with a single space
|
|
36
|
+
const result = collection.join(separator === SPACE ? separator : `${separator}${SPACE}`);
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export { ParameterListGenerator };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { BaseGenerator } from '../base-generator.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Generator for value nodes.
|
|
11
|
+
*/
|
|
12
|
+
class ValueGenerator extends BaseGenerator {
|
|
13
|
+
/**
|
|
14
|
+
* Converts a value node to a string.
|
|
15
|
+
*
|
|
16
|
+
* @param node Value node.
|
|
17
|
+
* @returns Raw string.
|
|
18
|
+
*/
|
|
19
|
+
static generate(node) {
|
|
20
|
+
return node.value;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { ValueGenerator };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { SPACE, HASHMARK, EMPTY } from '../../utils/constants.js';
|
|
8
|
+
import { BaseGenerator } from '../base-generator.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Generator for host rule nodes.
|
|
12
|
+
*/
|
|
13
|
+
class HostRuleGenerator extends BaseGenerator {
|
|
14
|
+
/**
|
|
15
|
+
* Converts a host rule node to a raw string.
|
|
16
|
+
*
|
|
17
|
+
* @param node Host rule node.
|
|
18
|
+
* @returns Raw string.
|
|
19
|
+
*/
|
|
20
|
+
static generate(node) {
|
|
21
|
+
const result = [];
|
|
22
|
+
if (node.ip) {
|
|
23
|
+
result.push(node.ip.value);
|
|
24
|
+
}
|
|
25
|
+
if (node.hostnames) {
|
|
26
|
+
result.push(SPACE);
|
|
27
|
+
result.push(node.hostnames.children.map(({ value }) => value).join(SPACE));
|
|
28
|
+
}
|
|
29
|
+
if (node.comment) {
|
|
30
|
+
result.push(SPACE);
|
|
31
|
+
result.push(HASHMARK);
|
|
32
|
+
result.push(SPACE);
|
|
33
|
+
result.push(node.comment.value);
|
|
34
|
+
}
|
|
35
|
+
return result.join(EMPTY);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { HostRuleGenerator };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { NETWORK_RULE_SEPARATOR, EMPTY, NETWORK_RULE_EXCEPTION_MARKER } from '../../utils/constants.js';
|
|
8
|
+
import { BaseGenerator } from '../base-generator.js';
|
|
9
|
+
import { ModifierListGenerator } from '../misc/modifier-list-generator.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Generator for network rule nodes.
|
|
13
|
+
*/
|
|
14
|
+
class NetworkRuleGenerator extends BaseGenerator {
|
|
15
|
+
/**
|
|
16
|
+
* Generates a string from a network rule AST node.
|
|
17
|
+
*
|
|
18
|
+
* @param node Network rule node to generate a string from.
|
|
19
|
+
* @returns Generated string representation of the network rule.
|
|
20
|
+
*/
|
|
21
|
+
static generate(node) {
|
|
22
|
+
let result = EMPTY;
|
|
23
|
+
// If the rule is an exception, add the exception marker: `@@||example.org`
|
|
24
|
+
if (node.exception) {
|
|
25
|
+
result += NETWORK_RULE_EXCEPTION_MARKER;
|
|
26
|
+
}
|
|
27
|
+
// Add the pattern: `||example.org`
|
|
28
|
+
result += node.pattern.value;
|
|
29
|
+
// If there are modifiers, add a separator and the modifiers: `||example.org$important`
|
|
30
|
+
if (node.modifiers && node.modifiers.children.length > 0) {
|
|
31
|
+
result += NETWORK_RULE_SEPARATOR;
|
|
32
|
+
result += ModifierListGenerator.generate(node.modifiers);
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { NetworkRuleGenerator };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { BaseGenerator } from './base-generator.js';
|
|
8
|
+
import { RuleCategory, NetworkRuleType } from '../nodes/index.js';
|
|
9
|
+
import { EMPTY } from '../utils/constants.js';
|
|
10
|
+
import { CommentRuleGenerator } from './comment/comment-rule-generator.js';
|
|
11
|
+
import { CosmeticRuleGenerator } from './cosmetic/cosmetic-rule-generator.js';
|
|
12
|
+
import { HostRuleGenerator } from './network/host-rule-generator.js';
|
|
13
|
+
import { NetworkRuleGenerator } from './network/network-rule-generator.js';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* RuleGenerator is responsible for converting adblock rule ASTs to their string representation.
|
|
17
|
+
*/
|
|
18
|
+
class RuleGenerator extends BaseGenerator {
|
|
19
|
+
/**
|
|
20
|
+
* Converts a rule AST to a string.
|
|
21
|
+
*
|
|
22
|
+
* @param ast - Adblock rule AST
|
|
23
|
+
* @returns Raw string
|
|
24
|
+
* @example
|
|
25
|
+
* Take a look at the following example:
|
|
26
|
+
* ```js
|
|
27
|
+
* // Parse the rule to the AST
|
|
28
|
+
* const ast = RuleParser.parse("example.org##.banner");
|
|
29
|
+
* // Generate the rule from the AST
|
|
30
|
+
* const raw = RuleParser.generate(ast);
|
|
31
|
+
* // Print the generated rule
|
|
32
|
+
* console.log(raw); // "example.org##.banner"
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
static generate(ast) {
|
|
36
|
+
switch (ast.category) {
|
|
37
|
+
// Empty lines
|
|
38
|
+
case RuleCategory.Empty:
|
|
39
|
+
return EMPTY;
|
|
40
|
+
// Invalid rules
|
|
41
|
+
case RuleCategory.Invalid:
|
|
42
|
+
return ast.raw;
|
|
43
|
+
// Comment rules
|
|
44
|
+
case RuleCategory.Comment:
|
|
45
|
+
return CommentRuleGenerator.generate(ast);
|
|
46
|
+
// Cosmetic / non-basic rules
|
|
47
|
+
case RuleCategory.Cosmetic:
|
|
48
|
+
return CosmeticRuleGenerator.generate(ast);
|
|
49
|
+
// Network / basic rules
|
|
50
|
+
case RuleCategory.Network:
|
|
51
|
+
switch (ast.type) {
|
|
52
|
+
case NetworkRuleType.HostRule:
|
|
53
|
+
return HostRuleGenerator.generate(ast);
|
|
54
|
+
case NetworkRuleType.NetworkRule:
|
|
55
|
+
return NetworkRuleGenerator.generate(ast);
|
|
56
|
+
default:
|
|
57
|
+
throw new Error('Unknown network rule type');
|
|
58
|
+
}
|
|
59
|
+
default:
|
|
60
|
+
throw new Error('Unknown rule category');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export { RuleGenerator };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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 { RuleParser } from './parser/rule-parser.js';
|
|
8
|
+
export { RuleSerializer } from './serializer/rule-serializer.js';
|
|
9
|
+
export { RuleDeserializer } from './deserializer/rule-deserializer.js';
|
|
10
|
+
export { RuleGenerator } from './generator/rule-generator.js';
|
|
11
|
+
export { CommentMarker, CommentRuleType, CosmeticRuleSeparator, CosmeticRuleType, NetworkRuleType, RuleCategory } from './nodes/index.js';
|
|
12
|
+
export { AdblockSyntaxError } from './errors/adblock-syntax-error.js';
|
|
13
|
+
export { AgentCommentParser } from './parser/comment/agent-comment-parser.js';
|
|
14
|
+
export { AgentParser } from './parser/comment/agent-parser.js';
|
|
15
|
+
export { CommentParser } from './parser/comment/comment-parser.js';
|
|
16
|
+
export { ConfigCommentParser } from './parser/comment/config-comment-parser.js';
|
|
17
|
+
export { CosmeticRuleParser } from './parser/cosmetic/cosmetic-rule-parser.js';
|
|
18
|
+
export { AppListParser } from './parser/misc/app-list-parser.js';
|
|
19
|
+
export { DomainListParser } from './parser/misc/domain-list-parser.js';
|
|
20
|
+
export { MethodListParser } from './parser/misc/method-list-parser.js';
|
|
21
|
+
export { StealthOptionListParser } from './parser/misc/stealth-option-list-parser.js';
|
|
22
|
+
export { FilterListParser } from './parser/filterlist-parser.js';
|
|
23
|
+
export { FilterListSerializer } from './serializer/filterlist-serializer.js';
|
|
24
|
+
export { FilterListDeserializer } from './deserializer/filterlist-deserializer.js';
|
|
25
|
+
export { HintCommentParser } from './parser/comment/hint-comment-parser.js';
|
|
26
|
+
export { HintParser } from './parser/comment/hint-parser.js';
|
|
27
|
+
export { LogicalExpressionParser } from './parser/misc/logical-expression-parser.js';
|
|
28
|
+
export { MetadataCommentParser } from './parser/comment/metadata-comment-parser.js';
|
|
29
|
+
export { ModifierListParser } from './parser/misc/modifier-list.js';
|
|
30
|
+
export { ModifierParser } from './parser/misc/modifier-parser.js';
|
|
31
|
+
export { NetworkRuleParser } from './parser/network/network-rule-parser.js';
|
|
32
|
+
export { NotImplementedError } from './errors/not-implemented-error.js';
|
|
33
|
+
export { ParameterListParser } from './parser/misc/parameter-list-parser.js';
|
|
34
|
+
export { HostRuleParser } from './parser/network/host-rule-parser.js';
|
|
35
|
+
export { PreProcessorCommentParser } from './parser/comment/preprocessor-parser.js';
|
|
36
|
+
export { RuleConversionError } from './errors/rule-conversion-error.js';
|
|
37
|
+
export { BinarySchemaMismatchError } from './errors/binary-schema-mismatch-error.js';
|
|
38
|
+
export { modifierValidator } from './validator/index.js';
|
|
39
|
+
export { RawFilterListConverter } from './converter/raw-filter-list.js';
|
|
40
|
+
export { RuleConverter } from './converter/rule.js';
|
|
41
|
+
export { ADG_SCRIPTLET_MASK, AGLINT_COMMAND_PREFIX, COMMA_DOMAIN_LIST_SEPARATOR, HINT_MARKER, IF, INCLUDE, MODIFIERS_SEPARATOR, MODIFIER_ASSIGN_OPERATOR, NEGATION_MARKER, NETWORK_RULE_EXCEPTION_MARKER, NETWORK_RULE_SEPARATOR, PIPE_MODIFIER_SEPARATOR, PREPROCESSOR_MARKER, SAFARI_CB_AFFINITY, UBO_SCRIPTLET_MASK } from './utils/constants.js';
|
|
42
|
+
export { BINARY_SCHEMA_VERSION } from './utils/binary-schema-version.js';
|
|
43
|
+
export { AdblockSyntax } from './utils/adblockers.js';
|
|
44
|
+
export { CosmeticRuleSeparatorUtils } from './utils/cosmetic-rule-separator.js';
|
|
45
|
+
export { DomainUtils } from './utils/domain.js';
|
|
46
|
+
export { LogicalExpressionUtils } from './utils/logical-expression.js';
|
|
47
|
+
export { ADBLOCK_URL_SEPARATOR, ADBLOCK_URL_SEPARATOR_REGEX, ADBLOCK_URL_START, ADBLOCK_URL_START_REGEX, ADBLOCK_WILDCARD, ADBLOCK_WILDCARD_REGEX, RegExpUtils, SPECIAL_REGEX_SYMBOLS } from './utils/regexp.js';
|
|
48
|
+
export { QuoteType, QuoteUtils } from './utils/quotes.js';
|
|
49
|
+
export { PositionProvider } from './utils/position-provider.js';
|
|
50
|
+
export { OutputByteBuffer } from './utils/output-byte-buffer.js';
|
|
51
|
+
export { InputByteBuffer } from './utils/input-byte-buffer.js';
|
|
52
|
+
export { ByteBuffer } from './utils/byte-buffer.js';
|
|
53
|
+
export { encodeIntoPolyfill } from './utils/text-encoder-polyfill.js';
|
|
54
|
+
export { decodeTextPolyfill } from './utils/text-decoder-polyfill.js';
|
|
55
|
+
export { RuleCategorizer } from './utils/categorizer.js';
|
|
56
|
+
export { EXT_CSS_LEGACY_ATTRIBUTES, EXT_CSS_PSEUDO_CLASSES, FORBIDDEN_CSS_FUNCTIONS } from './converter/data/css.js';
|
|
57
|
+
export { modifiersCompatibilityTable } from './compatibility-tables/modifiers.js';
|
|
58
|
+
export { redirectsCompatibilityTable } from './compatibility-tables/redirects.js';
|
|
59
|
+
export { scriptletsCompatibilityTable } from './compatibility-tables/scriptlets.js';
|
|
60
|
+
export { GenericPlatform, SpecificPlatform } from './compatibility-tables/platforms.js';
|
|
61
|
+
import './compatibility-tables/schemas/base.js';
|
|
62
|
+
import './compatibility-tables/schemas/modifier.js';
|
|
63
|
+
import './compatibility-tables/schemas/redirect.js';
|
|
64
|
+
import './compatibility-tables/schemas/scriptlet.js';
|
|
65
|
+
export { parseRawPlatforms } from './compatibility-tables/schemas/platform.js';
|
|
66
|
+
export { getPlatformId, getSpecificPlatformName, isGenericPlatform } from './compatibility-tables/utils/platform-helpers.js';
|
|
67
|
+
export { ResourceType } from './compatibility-tables/schemas/resource-type.js';
|
|
68
|
+
export { getResourceTypeModifier, isValidResourceType } from './compatibility-tables/utils/resource-type-helpers.js';
|
|
69
|
+
export { AGTREE_VERSION } from './version.js';
|
|
70
|
+
export { getSyntaxSerializationMap } from './marshalling-utils/syntax-serialization-map.js';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* AGTree v3.0.0-alpha.2 (build date: Tue, 17 Dec 2024 16:50:04 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
|
+
/**
|
|
8
|
+
* Property map for binary serialization. This helps to reduce the size of the serialized data,
|
|
9
|
+
* as it allows us to use a single byte to represent a property.
|
|
10
|
+
*
|
|
11
|
+
* ! IMPORTANT: If you change values here, please update the {@link BINARY_SCHEMA_VERSION}!
|
|
12
|
+
*
|
|
13
|
+
* @note Only 256 values can be represented this way.
|
|
14
|
+
*/
|
|
15
|
+
const AgentCommentMarshallingMap = {
|
|
16
|
+
Children: 1,
|
|
17
|
+
Start: 2,
|
|
18
|
+
End: 3,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { AgentCommentMarshallingMap };
|