@prosopo/user-access-policy 2.3.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/dist/blacklistInspector.d.ts +6 -0
- package/dist/blacklistInspector.d.ts.map +1 -0
- package/dist/blacklistInspector.js +2 -0
- package/dist/blacklistInspector.js.map +1 -0
- package/dist/imageCaptchaConfigResolver.d.ts +7 -0
- package/dist/imageCaptchaConfigResolver.d.ts.map +1 -0
- package/dist/imageCaptchaConfigResolver.js +2 -0
- package/dist/imageCaptchaConfigResolver.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/rules/api/apiRulePaths.d.ts +6 -0
- package/dist/rules/api/apiRulePaths.d.ts.map +1 -0
- package/dist/rules/api/apiRulePaths.js +6 -0
- package/dist/rules/api/apiRulePaths.js.map +1 -0
- package/dist/rules/api/apiRuleRoutesProvider.d.ts +9 -0
- package/dist/rules/api/apiRuleRoutesProvider.d.ts.map +1 -0
- package/dist/rules/api/apiRuleRoutesProvider.js +22 -0
- package/dist/rules/api/apiRuleRoutesProvider.js.map +1 -0
- package/dist/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.d.ts +159 -0
- package/dist/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.d.ts.map +1 -0
- package/dist/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.js +9 -0
- package/dist/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.js.map +1 -0
- package/dist/rules/api/deleteMany/apiDeleteManyRulesEndpoint.d.ts +12 -0
- package/dist/rules/api/deleteMany/apiDeleteManyRulesEndpoint.d.ts.map +1 -0
- package/dist/rules/api/deleteMany/apiDeleteManyRulesEndpoint.js +18 -0
- package/dist/rules/api/deleteMany/apiDeleteManyRulesEndpoint.js.map +1 -0
- package/dist/rules/api/getExpressApiRuleRateLimits.d.ts +8 -0
- package/dist/rules/api/getExpressApiRuleRateLimits.d.ts.map +1 -0
- package/dist/rules/api/getExpressApiRuleRateLimits.js +21 -0
- package/dist/rules/api/getExpressApiRuleRateLimits.js.map +1 -0
- package/dist/rules/api/insertMany/apiInsertManyRulesArgsSchema.d.ts +199 -0
- package/dist/rules/api/insertMany/apiInsertManyRulesArgsSchema.d.ts.map +1 -0
- package/dist/rules/api/insertMany/apiInsertManyRulesArgsSchema.js +13 -0
- package/dist/rules/api/insertMany/apiInsertManyRulesArgsSchema.js.map +1 -0
- package/dist/rules/api/insertMany/apiInsertManyRulesEndpoint.d.ts +15 -0
- package/dist/rules/api/insertMany/apiInsertManyRulesEndpoint.d.ts.map +1 -0
- package/dist/rules/api/insertMany/apiInsertManyRulesEndpoint.js +50 -0
- package/dist/rules/api/insertMany/apiInsertManyRulesEndpoint.js.map +1 -0
- package/dist/rules/blacklistRulesInspector.d.ts +12 -0
- package/dist/rules/blacklistRulesInspector.d.ts.map +1 -0
- package/dist/rules/blacklistRulesInspector.js +29 -0
- package/dist/rules/blacklistRulesInspector.js.map +1 -0
- package/dist/rules/imageCaptchaConfigRulesResolver.d.ts +19 -0
- package/dist/rules/imageCaptchaConfigRulesResolver.d.ts.map +1 -0
- package/dist/rules/imageCaptchaConfigRulesResolver.js +82 -0
- package/dist/rules/imageCaptchaConfigRulesResolver.js.map +1 -0
- package/dist/rules/mongoose/indexes/mongooseIndex.d.ts +7 -0
- package/dist/rules/mongoose/indexes/mongooseIndex.d.ts.map +1 -0
- package/dist/rules/mongoose/indexes/mongooseIndex.js +2 -0
- package/dist/rules/mongoose/indexes/mongooseIndex.js.map +1 -0
- package/dist/rules/mongoose/indexes/rulePerformanceMongooseIndexes.d.ts +4 -0
- package/dist/rules/mongoose/indexes/rulePerformanceMongooseIndexes.d.ts.map +1 -0
- package/dist/rules/mongoose/indexes/rulePerformanceMongooseIndexes.js +49 -0
- package/dist/rules/mongoose/indexes/rulePerformanceMongooseIndexes.js.map +1 -0
- package/dist/rules/mongoose/indexes/ruleUniqueMongooseIndexes.d.ts +4 -0
- package/dist/rules/mongoose/indexes/ruleUniqueMongooseIndexes.d.ts.map +1 -0
- package/dist/rules/mongoose/indexes/ruleUniqueMongooseIndexes.js +136 -0
- package/dist/rules/mongoose/indexes/ruleUniqueMongooseIndexes.js.map +1 -0
- package/dist/rules/mongoose/ruleMongooseRecord.d.ts +7 -0
- package/dist/rules/mongoose/ruleMongooseRecord.d.ts.map +1 -0
- package/dist/rules/mongoose/ruleMongooseRecord.js +2 -0
- package/dist/rules/mongoose/ruleMongooseRecord.js.map +1 -0
- package/dist/rules/mongoose/rulesMongooseStorage.d.ts +30 -0
- package/dist/rules/mongoose/rulesMongooseStorage.d.ts.map +1 -0
- package/dist/rules/mongoose/rulesMongooseStorage.js +143 -0
- package/dist/rules/mongoose/rulesMongooseStorage.js.map +1 -0
- package/dist/rules/mongoose/schemas/config/configMongooseSchema.d.ts +43 -0
- package/dist/rules/mongoose/schemas/config/configMongooseSchema.d.ts.map +1 -0
- package/dist/rules/mongoose/schemas/config/configMongooseSchema.js +10 -0
- package/dist/rules/mongoose/schemas/config/configMongooseSchema.js.map +1 -0
- package/dist/rules/mongoose/schemas/config/imageCaptchaConfigMongooseSchema.d.ts +29 -0
- package/dist/rules/mongoose/schemas/config/imageCaptchaConfigMongooseSchema.d.ts.map +1 -0
- package/dist/rules/mongoose/schemas/config/imageCaptchaConfigMongooseSchema.js +13 -0
- package/dist/rules/mongoose/schemas/config/imageCaptchaConfigMongooseSchema.js.map +1 -0
- package/dist/rules/mongoose/schemas/getRuleMongooseSchema.d.ts +5 -0
- package/dist/rules/mongoose/schemas/getRuleMongooseSchema.d.ts.map +1 -0
- package/dist/rules/mongoose/schemas/getRuleMongooseSchema.js +15 -0
- package/dist/rules/mongoose/schemas/getRuleMongooseSchema.js.map +1 -0
- package/dist/rules/mongoose/schemas/ip/ipMongooseSchema.d.ts +141 -0
- package/dist/rules/mongoose/schemas/ip/ipMongooseSchema.d.ts.map +1 -0
- package/dist/rules/mongoose/schemas/ip/ipMongooseSchema.js +25 -0
- package/dist/rules/mongoose/schemas/ip/ipMongooseSchema.js.map +1 -0
- package/dist/rules/mongoose/schemas/ip/v4/ipV4MaskMongooseSchema.d.ts +36 -0
- package/dist/rules/mongoose/schemas/ip/v4/ipV4MaskMongooseSchema.d.ts.map +1 -0
- package/dist/rules/mongoose/schemas/ip/v4/ipV4MaskMongooseSchema.js +8 -0
- package/dist/rules/mongoose/schemas/ip/v4/ipV4MaskMongooseSchema.js.map +1 -0
- package/dist/rules/mongoose/schemas/ip/v4/ipV4MongooseSchema.d.ts +64 -0
- package/dist/rules/mongoose/schemas/ip/v4/ipV4MongooseSchema.d.ts.map +1 -0
- package/dist/rules/mongoose/schemas/ip/v4/ipV4MongooseSchema.js +12 -0
- package/dist/rules/mongoose/schemas/ip/v4/ipV4MongooseSchema.js.map +1 -0
- package/dist/rules/mongoose/schemas/ip/v6/ipV6MaskMongooseSchema.d.ts +36 -0
- package/dist/rules/mongoose/schemas/ip/v6/ipV6MaskMongooseSchema.d.ts.map +1 -0
- package/dist/rules/mongoose/schemas/ip/v6/ipV6MaskMongooseSchema.js +17 -0
- package/dist/rules/mongoose/schemas/ip/v6/ipV6MaskMongooseSchema.js.map +1 -0
- package/dist/rules/mongoose/schemas/ip/v6/ipV6MongooseSchema.d.ts +64 -0
- package/dist/rules/mongoose/schemas/ip/v6/ipV6MongooseSchema.d.ts.map +1 -0
- package/dist/rules/mongoose/schemas/ip/v6/ipV6MongooseSchema.js +17 -0
- package/dist/rules/mongoose/schemas/ip/v6/ipV6MongooseSchema.js.map +1 -0
- package/dist/rules/mongoose/schemas/ruleMongooseSchema.d.ts +9 -0
- package/dist/rules/mongoose/schemas/ruleMongooseSchema.d.ts.map +1 -0
- package/dist/rules/mongoose/schemas/ruleMongooseSchema.js +32 -0
- package/dist/rules/mongoose/schemas/ruleMongooseSchema.js.map +1 -0
- package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfig.d.ts +5 -0
- package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfig.d.ts.map +1 -0
- package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfig.js +2 -0
- package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfig.js.map +1 -0
- package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfigSchema.d.ts +12 -0
- package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfigSchema.d.ts.map +1 -0
- package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfigSchema.js +7 -0
- package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfigSchema.js.map +1 -0
- package/dist/rules/rule/config/ruleConfig.d.ts +5 -0
- package/dist/rules/rule/config/ruleConfig.d.ts.map +1 -0
- package/dist/rules/rule/config/ruleConfig.js +2 -0
- package/dist/rules/rule/config/ruleConfig.js.map +1 -0
- package/dist/rules/rule/config/ruleConfigSchema.d.ts +24 -0
- package/dist/rules/rule/config/ruleConfigSchema.d.ts.map +1 -0
- package/dist/rules/rule/config/ruleConfigSchema.js +7 -0
- package/dist/rules/rule/config/ruleConfigSchema.js.map +1 -0
- package/dist/rules/rule/ip/ruleIp.d.ts +5 -0
- package/dist/rules/rule/ip/ruleIp.d.ts.map +1 -0
- package/dist/rules/rule/ip/ruleIp.js +2 -0
- package/dist/rules/rule/ip/ruleIp.js.map +1 -0
- package/dist/rules/rule/ip/ruleIpSchema.d.ts +108 -0
- package/dist/rules/rule/ip/ruleIpSchema.d.ts.map +1 -0
- package/dist/rules/rule/ip/ruleIpSchema.js +9 -0
- package/dist/rules/rule/ip/ruleIpSchema.js.map +1 -0
- package/dist/rules/rule/ip/ruleIpVersion.d.ts +6 -0
- package/dist/rules/rule/ip/ruleIpVersion.d.ts.map +1 -0
- package/dist/rules/rule/ip/ruleIpVersion.js +7 -0
- package/dist/rules/rule/ip/ruleIpVersion.js.map +1 -0
- package/dist/rules/rule/ip/v4/mask/ruleIpV4Mask.d.ts +5 -0
- package/dist/rules/rule/ip/v4/mask/ruleIpV4Mask.d.ts.map +1 -0
- package/dist/rules/rule/ip/v4/mask/ruleIpV4Mask.js +2 -0
- package/dist/rules/rule/ip/v4/mask/ruleIpV4Mask.js.map +1 -0
- package/dist/rules/rule/ip/v4/mask/ruleIpV4MaskSchema.d.ts +15 -0
- package/dist/rules/rule/ip/v4/mask/ruleIpV4MaskSchema.d.ts.map +1 -0
- package/dist/rules/rule/ip/v4/mask/ruleIpV4MaskSchema.js +8 -0
- package/dist/rules/rule/ip/v4/mask/ruleIpV4MaskSchema.js.map +1 -0
- package/dist/rules/rule/ip/v4/ruleIpV4.d.ts +5 -0
- package/dist/rules/rule/ip/v4/ruleIpV4.d.ts.map +1 -0
- package/dist/rules/rule/ip/v4/ruleIpV4.js +2 -0
- package/dist/rules/rule/ip/v4/ruleIpV4.js.map +1 -0
- package/dist/rules/rule/ip/v4/ruleIpV4Schema.d.ts +35 -0
- package/dist/rules/rule/ip/v4/ruleIpV4Schema.d.ts.map +1 -0
- package/dist/rules/rule/ip/v4/ruleIpV4Schema.js +9 -0
- package/dist/rules/rule/ip/v4/ruleIpV4Schema.js.map +1 -0
- package/dist/rules/rule/ip/v6/mask/ruleIpV6Mask.d.ts +5 -0
- package/dist/rules/rule/ip/v6/mask/ruleIpV6Mask.d.ts.map +1 -0
- package/dist/rules/rule/ip/v6/mask/ruleIpV6Mask.js +2 -0
- package/dist/rules/rule/ip/v6/mask/ruleIpV6Mask.js.map +1 -0
- package/dist/rules/rule/ip/v6/mask/ruleIpV6MaskSchema.d.ts +15 -0
- package/dist/rules/rule/ip/v6/mask/ruleIpV6MaskSchema.d.ts.map +1 -0
- package/dist/rules/rule/ip/v6/mask/ruleIpV6MaskSchema.js +8 -0
- package/dist/rules/rule/ip/v6/mask/ruleIpV6MaskSchema.js.map +1 -0
- package/dist/rules/rule/ip/v6/ruleIpV6.d.ts +5 -0
- package/dist/rules/rule/ip/v6/ruleIpV6.d.ts.map +1 -0
- package/dist/rules/rule/ip/v6/ruleIpV6.js +2 -0
- package/dist/rules/rule/ip/v6/ruleIpV6.js.map +1 -0
- package/dist/rules/rule/ip/v6/ruleIpV6NumericMaxLength.d.ts +3 -0
- package/dist/rules/rule/ip/v6/ruleIpV6NumericMaxLength.d.ts.map +1 -0
- package/dist/rules/rule/ip/v6/ruleIpV6NumericMaxLength.js +3 -0
- package/dist/rules/rule/ip/v6/ruleIpV6NumericMaxLength.js.map +1 -0
- package/dist/rules/rule/ip/v6/ruleIpV6Schema.d.ts +35 -0
- package/dist/rules/rule/ip/v6/ruleIpV6Schema.d.ts.map +1 -0
- package/dist/rules/rule/ip/v6/ruleIpV6Schema.js +9 -0
- package/dist/rules/rule/ip/v6/ruleIpV6Schema.js.map +1 -0
- package/dist/rules/rule/rule.d.ts +12 -0
- package/dist/rules/rule/rule.d.ts.map +1 -0
- package/dist/rules/rule/rule.js +2 -0
- package/dist/rules/rule/rule.js.map +1 -0
- package/dist/rules/storage/filters/deleteRuleFilters.d.ts +8 -0
- package/dist/rules/storage/filters/deleteRuleFilters.d.ts.map +1 -0
- package/dist/rules/storage/filters/deleteRuleFilters.js +2 -0
- package/dist/rules/storage/filters/deleteRuleFilters.js.map +1 -0
- package/dist/rules/storage/filters/search/searchRuleFilterSettings.d.ts +6 -0
- package/dist/rules/storage/filters/search/searchRuleFilterSettings.d.ts.map +1 -0
- package/dist/rules/storage/filters/search/searchRuleFilterSettings.js +2 -0
- package/dist/rules/storage/filters/search/searchRuleFilterSettings.js.map +1 -0
- package/dist/rules/storage/filters/search/searchRuleFilters.d.ts +8 -0
- package/dist/rules/storage/filters/search/searchRuleFilters.d.ts.map +1 -0
- package/dist/rules/storage/filters/search/searchRuleFilters.js +2 -0
- package/dist/rules/storage/filters/search/searchRuleFilters.js.map +1 -0
- package/dist/rules/storage/ruleRecord.d.ts +6 -0
- package/dist/rules/storage/ruleRecord.d.ts.map +1 -0
- package/dist/rules/storage/ruleRecord.js +2 -0
- package/dist/rules/storage/ruleRecord.js.map +1 -0
- package/dist/rules/storage/rulesStorage.d.ts +14 -0
- package/dist/rules/storage/rulesStorage.d.ts.map +1 -0
- package/dist/rules/storage/rulesStorage.js +2 -0
- package/dist/rules/storage/rulesStorage.js.map +1 -0
- package/dist/tests/benchmark/commands/commandBase.d.ts +14 -0
- package/dist/tests/benchmark/commands/commandBase.d.ts.map +1 -0
- package/dist/tests/benchmark/commands/commandBase.js +22 -0
- package/dist/tests/benchmark/commands/commandBase.js.map +1 -0
- package/dist/tests/benchmark/commands/measureFindCommand.d.ts +14 -0
- package/dist/tests/benchmark/commands/measureFindCommand.d.ts.map +1 -0
- package/dist/tests/benchmark/commands/measureFindCommand.js +60 -0
- package/dist/tests/benchmark/commands/measureFindCommand.js.map +1 -0
- package/dist/tests/benchmark/commands/populateCommand.d.ts +18 -0
- package/dist/tests/benchmark/commands/populateCommand.d.ts.map +1 -0
- package/dist/tests/benchmark/commands/populateCommand.js +97 -0
- package/dist/tests/benchmark/commands/populateCommand.js.map +1 -0
- package/dist/tests/benchmark/connectionCleaner/connectionCleaner.d.ts +5 -0
- package/dist/tests/benchmark/connectionCleaner/connectionCleaner.d.ts.map +1 -0
- package/dist/tests/benchmark/connectionCleaner/connectionCleaner.js +2 -0
- package/dist/tests/benchmark/connectionCleaner/connectionCleaner.js.map +1 -0
- package/dist/tests/benchmark/connectionCleaner/mongooseConnectionCleaner.d.ts +6 -0
- package/dist/tests/benchmark/connectionCleaner/mongooseConnectionCleaner.d.ts.map +1 -0
- package/dist/tests/benchmark/connectionCleaner/mongooseConnectionCleaner.js +8 -0
- package/dist/tests/benchmark/connectionCleaner/mongooseConnectionCleaner.js.map +1 -0
- package/dist/tests/benchmark/mongooseRulesStorageBenchmark.d.ts +2 -0
- package/dist/tests/benchmark/mongooseRulesStorageBenchmark.d.ts.map +1 -0
- package/dist/tests/benchmark/mongooseRulesStorageBenchmark.js +8 -0
- package/dist/tests/benchmark/mongooseRulesStorageBenchmark.js.map +1 -0
- package/dist/tests/benchmark/rulesStorageBenchmark.d.ts +12 -0
- package/dist/tests/benchmark/rulesStorageBenchmark.d.ts.map +1 -0
- package/dist/tests/benchmark/rulesStorageBenchmark.js +30 -0
- package/dist/tests/benchmark/rulesStorageBenchmark.js.map +1 -0
- package/dist/tests/benchmark/storageFactory/mongooseRulesStorageFactory.d.ts +10 -0
- package/dist/tests/benchmark/storageFactory/mongooseRulesStorageFactory.d.ts.map +1 -0
- package/dist/tests/benchmark/storageFactory/mongooseRulesStorageFactory.js +16 -0
- package/dist/tests/benchmark/storageFactory/mongooseRulesStorageFactory.js.map +1 -0
- package/dist/tests/benchmark/storageFactory/rulesStorageFactory.d.ts +6 -0
- package/dist/tests/benchmark/storageFactory/rulesStorageFactory.d.ts.map +1 -0
- package/dist/tests/benchmark/storageFactory/rulesStorageFactory.js +2 -0
- package/dist/tests/benchmark/storageFactory/rulesStorageFactory.js.map +1 -0
- package/dist/tests/rules/ImageCaptchaConfigRulesResolver.test.d.ts +2 -0
- package/dist/tests/rules/ImageCaptchaConfigRulesResolver.test.d.ts.map +1 -0
- package/dist/tests/rules/ImageCaptchaConfigRulesResolver.test.js +75 -0
- package/dist/tests/rules/ImageCaptchaConfigRulesResolver.test.js.map +1 -0
- package/dist/tests/rules/blacklistRulesInspector.unit.test.d.ts +2 -0
- package/dist/tests/rules/blacklistRulesInspector.unit.test.d.ts.map +1 -0
- package/dist/tests/rules/blacklistRulesInspector.unit.test.js +58 -0
- package/dist/tests/rules/blacklistRulesInspector.unit.test.js.map +1 -0
- package/dist/tests/rules/loggerMockedInstance.d.ts +13 -0
- package/dist/tests/rules/loggerMockedInstance.d.ts.map +1 -0
- package/dist/tests/rules/loggerMockedInstance.js +14 -0
- package/dist/tests/rules/loggerMockedInstance.js.map +1 -0
- package/dist/tests/rules/mongoose/find.unit.test.d.ts +2 -0
- package/dist/tests/rules/mongoose/find.unit.test.d.ts.map +1 -0
- package/dist/tests/rules/mongoose/find.unit.test.js +202 -0
- package/dist/tests/rules/mongoose/find.unit.test.js.map +1 -0
- package/dist/tests/rules/mongoose/insert/insertIpV6Formatting.unit.test.d.ts +2 -0
- package/dist/tests/rules/mongoose/insert/insertIpV6Formatting.unit.test.d.ts.map +1 -0
- package/dist/tests/rules/mongoose/insert/insertIpV6Formatting.unit.test.js +131 -0
- package/dist/tests/rules/mongoose/insert/insertIpV6Formatting.unit.test.js.map +1 -0
- package/dist/tests/rules/mongoose/insert/insertValidation.unit.test.d.ts +2 -0
- package/dist/tests/rules/mongoose/insert/insertValidation.unit.test.d.ts.map +1 -0
- package/dist/tests/rules/mongoose/insert/insertValidation.unit.test.js +101 -0
- package/dist/tests/rules/mongoose/insert/insertValidation.unit.test.js.map +1 -0
- package/dist/tests/rules/mongoose/ip.unit.test.d.ts +2 -0
- package/dist/tests/rules/mongoose/ip.unit.test.d.ts.map +1 -0
- package/dist/tests/rules/mongoose/ip.unit.test.js +392 -0
- package/dist/tests/rules/mongoose/ip.unit.test.js.map +1 -0
- package/dist/tests/rules/storage/testRulesStorage.d.ts +17 -0
- package/dist/tests/rules/storage/testRulesStorage.d.ts.map +1 -0
- package/dist/tests/rules/storage/testRulesStorage.js +25 -0
- package/dist/tests/rules/storage/testRulesStorage.js.map +1 -0
- package/package.json +47 -0
- package/vite.cjs.config.ts +23 -0
- package/vite.test.config.ts +17 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ApiEndpoint, type ApiEndpointResponse } from "@prosopo/api-route";
|
|
2
|
+
import type { z } from "zod";
|
|
3
|
+
import type { Rule } from "../../rule/rule.js";
|
|
4
|
+
import type { RulesStorage } from "../../storage/rulesStorage.js";
|
|
5
|
+
import { type ApiInsertManyRulesArgsSchema } from "./apiInsertManyRulesArgsSchema.js";
|
|
6
|
+
declare class ApiInsertManyRulesEndpoint implements ApiEndpoint<ApiInsertManyRulesArgsSchema> {
|
|
7
|
+
private readonly rulesStorage;
|
|
8
|
+
constructor(rulesStorage: RulesStorage);
|
|
9
|
+
processRequest(args: z.infer<ApiInsertManyRulesArgsSchema>): Promise<ApiEndpointResponse>;
|
|
10
|
+
getRequestArgsSchema(): ApiInsertManyRulesArgsSchema;
|
|
11
|
+
protected getUserIpRules(args: z.infer<ApiInsertManyRulesArgsSchema>): Rule[];
|
|
12
|
+
protected getUserIdRules(args: z.infer<ApiInsertManyRulesArgsSchema>): Rule[];
|
|
13
|
+
}
|
|
14
|
+
export { ApiInsertManyRulesEndpoint };
|
|
15
|
+
//# sourceMappingURL=apiInsertManyRulesEndpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiInsertManyRulesEndpoint.d.ts","sourceRoot":"","sources":["../../../../src/rules/api/insertMany/apiInsertManyRulesEndpoint.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACN,KAAK,4BAA4B,EAEjC,MAAM,mCAAmC,CAAC;AAE3C,cAAM,0BACL,YAAW,WAAW,CAAC,4BAA4B,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,YAAY;IAExD,cAAc,CACnB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,GACzC,OAAO,CAAC,mBAAmB,CAAC;IAaxB,oBAAoB,IAAI,4BAA4B;IAI3D,SAAS,CAAC,cAAc,CACvB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,GACzC,IAAI,EAAE;IAkBT,SAAS,CAAC,cAAc,CACvB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,GACzC,IAAI,EAAE;CAiBT;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ApiEndpointResponseStatus, } from "@prosopo/api-route";
|
|
2
|
+
import { apiInsertManyRulesArgsSchema, } from "./apiInsertManyRulesArgsSchema.js";
|
|
3
|
+
class ApiInsertManyRulesEndpoint {
|
|
4
|
+
constructor(rulesStorage) {
|
|
5
|
+
this.rulesStorage = rulesStorage;
|
|
6
|
+
}
|
|
7
|
+
async processRequest(args) {
|
|
8
|
+
const rules = [
|
|
9
|
+
...this.getUserIpRules(args),
|
|
10
|
+
...this.getUserIdRules(args),
|
|
11
|
+
];
|
|
12
|
+
await this.rulesStorage.insertMany(rules);
|
|
13
|
+
return {
|
|
14
|
+
status: ApiEndpointResponseStatus.SUCCESS,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
getRequestArgsSchema() {
|
|
18
|
+
return apiInsertManyRulesArgsSchema;
|
|
19
|
+
}
|
|
20
|
+
getUserIpRules(args) {
|
|
21
|
+
const rules = [];
|
|
22
|
+
const userIps = args.userIps || [];
|
|
23
|
+
for (const userIp of userIps) {
|
|
24
|
+
rules.push({
|
|
25
|
+
userIp: userIp,
|
|
26
|
+
isUserBlocked: args.isUserBlocked,
|
|
27
|
+
description: args.description,
|
|
28
|
+
clientId: args.clientId,
|
|
29
|
+
config: args.config,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return rules;
|
|
33
|
+
}
|
|
34
|
+
getUserIdRules(args) {
|
|
35
|
+
const rules = [];
|
|
36
|
+
const userIds = args.userIds || [];
|
|
37
|
+
for (const userId of userIds) {
|
|
38
|
+
rules.push({
|
|
39
|
+
userId: userId,
|
|
40
|
+
isUserBlocked: args.isUserBlocked,
|
|
41
|
+
description: args.description,
|
|
42
|
+
clientId: args.clientId,
|
|
43
|
+
config: args.config,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return rules;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export { ApiInsertManyRulesEndpoint };
|
|
50
|
+
//# sourceMappingURL=apiInsertManyRulesEndpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiInsertManyRulesEndpoint.js","sourceRoot":"","sources":["../../../../src/rules/api/insertMany/apiInsertManyRulesEndpoint.ts"],"names":[],"mappings":"AAcA,OAAO,EAGN,yBAAyB,GACzB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAEN,4BAA4B,GAC5B,MAAM,mCAAmC,CAAC;AAE3C,MAAM,0BAA0B;IAG/B,YAAoC,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAElE,KAAK,CAAC,cAAc,CACnB,IAA2C;QAE3C,MAAM,KAAK,GAAW;YACrB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC5B,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;SAC5B,CAAC;QAEF,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE1C,OAAO;YACN,MAAM,EAAE,yBAAyB,CAAC,OAAO;SACzC,CAAC;IACH,CAAC;IAEM,oBAAoB;QAC1B,OAAO,4BAA4B,CAAC;IACrC,CAAC;IAES,cAAc,CACvB,IAA2C;QAE3C,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAEnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAES,cAAc,CACvB,IAA2C;QAE3C,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAEnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Logger } from "@prosopo/common";
|
|
2
|
+
import type { IPAddress } from "@prosopo/types";
|
|
3
|
+
import type { BlacklistInspector } from "../blacklistInspector.js";
|
|
4
|
+
import type { RulesStorage } from "./storage/rulesStorage.js";
|
|
5
|
+
declare class BlacklistRulesInspector implements BlacklistInspector {
|
|
6
|
+
private readonly rulesStorage;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(rulesStorage: RulesStorage, logger: Logger);
|
|
9
|
+
isUserBlacklisted(clientId: string, userIpAddress: IPAddress, userId: string): Promise<boolean>;
|
|
10
|
+
}
|
|
11
|
+
export { BlacklistRulesInspector };
|
|
12
|
+
//# sourceMappingURL=blacklistRulesInspector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blacklistRulesInspector.d.ts","sourceRoot":"","sources":["../../src/rules/blacklistRulesInspector.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,cAAM,uBAAwB,YAAW,kBAAkB;IAEzD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM;IAGnB,iBAAiB,CAC7B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;CA8BnB;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
class BlacklistRulesInspector {
|
|
2
|
+
constructor(rulesStorage, logger) {
|
|
3
|
+
this.rulesStorage = rulesStorage;
|
|
4
|
+
this.logger = logger;
|
|
5
|
+
}
|
|
6
|
+
async isUserBlacklisted(clientId, userIpAddress, userId) {
|
|
7
|
+
const accessRules = await this.rulesStorage.find({
|
|
8
|
+
clientId: clientId,
|
|
9
|
+
userIpAddress: userIpAddress,
|
|
10
|
+
userId: userId,
|
|
11
|
+
}, {
|
|
12
|
+
includeRecordsWithPartialFilterMatches: true,
|
|
13
|
+
includeRecordsWithoutClientId: true,
|
|
14
|
+
});
|
|
15
|
+
const blockingRules = accessRules.filter((accessRule) => accessRule.isUserBlocked);
|
|
16
|
+
const userBlacklisted = blockingRules.length > 0;
|
|
17
|
+
this.logger.info("BlacklistRulesInspector.isUserBlacklisted", {
|
|
18
|
+
userBlacklisted: userBlacklisted,
|
|
19
|
+
clientId: clientId,
|
|
20
|
+
userIpAddress: userIpAddress.address.toString(),
|
|
21
|
+
userId: userId,
|
|
22
|
+
accessRules: accessRules.length,
|
|
23
|
+
blockingRules: blockingRules.length,
|
|
24
|
+
});
|
|
25
|
+
return userBlacklisted;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export { BlacklistRulesInspector };
|
|
29
|
+
//# sourceMappingURL=blacklistRulesInspector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blacklistRulesInspector.js","sourceRoot":"","sources":["../../src/rules/blacklistRulesInspector.ts"],"names":[],"mappings":"AAmBA,MAAM,uBAAuB;IAC5B,YACkB,YAA0B,EAC1B,MAAc;QADd,iBAAY,GAAZ,YAAY,CAAc;QAC1B,WAAM,GAAN,MAAM,CAAQ;IAC7B,CAAC;IAEG,KAAK,CAAC,iBAAiB,CAC7B,QAAgB,EAChB,aAAwB,EACxB,MAAc;QAEd,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAC/C;YACC,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,aAAa;YAC5B,MAAM,EAAE,MAAM;SACd,EACD;YACC,sCAAsC,EAAE,IAAI;YAC5C,6BAA6B,EAAE,IAAI;SACnC,CACD,CAAC;QAEF,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CACvC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CACxC,CAAC;QAEF,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAEjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE;YAC7D,eAAe,EAAE,eAAe;YAChC,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,WAAW,CAAC,MAAM;YAC/B,aAAa,EAAE,aAAa,CAAC,MAAM;SACnC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;IACxB,CAAC;CACD;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Logger } from "@prosopo/common";
|
|
2
|
+
import type { IPAddress, ProsopoCaptchaCountConfigSchemaOutput } from "@prosopo/types";
|
|
3
|
+
import type { ImageCaptchaConfigResolver } from "../imageCaptchaConfigResolver.js";
|
|
4
|
+
import type { ImageCaptchaConfig } from "./rule/config/imageCaptcha/imageCaptchaConfig.js";
|
|
5
|
+
import type { Rule } from "./rule/rule.js";
|
|
6
|
+
import type { RulesStorage } from "./storage/rulesStorage.js";
|
|
7
|
+
declare class ImageCaptchaConfigRulesResolver implements ImageCaptchaConfigResolver {
|
|
8
|
+
private readonly rulesStorage;
|
|
9
|
+
private readonly logger;
|
|
10
|
+
constructor(rulesStorage: RulesStorage, logger: Logger);
|
|
11
|
+
isConfigDefined(clientId: string, userIpAddress: IPAddress, userId: string): Promise<boolean>;
|
|
12
|
+
resolveConfig(defaults: ProsopoCaptchaCountConfigSchemaOutput, userIpAddress: IPAddress, userId: string, clientId: string): Promise<ProsopoCaptchaCountConfigSchemaOutput>;
|
|
13
|
+
protected fetchUserAccessRule(userIpAddress: IPAddress, userId: string, clientId: string): Promise<Rule | null>;
|
|
14
|
+
protected queryUserAccessRules(ipAddress: IPAddress, user: string, clientId: string): Promise<Rule[]>;
|
|
15
|
+
protected selectPrimaryUserAccessRule(accessRules: Rule[]): Rule | null;
|
|
16
|
+
protected getImageCaptchaConfig(defaults: ProsopoCaptchaCountConfigSchemaOutput, imageCaptchaConfig: ImageCaptchaConfig): ProsopoCaptchaCountConfigSchemaOutput;
|
|
17
|
+
}
|
|
18
|
+
export { ImageCaptchaConfigRulesResolver };
|
|
19
|
+
//# sourceMappingURL=imageCaptchaConfigRulesResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageCaptchaConfigRulesResolver.d.ts","sourceRoot":"","sources":["../../src/rules/imageCaptchaConfigRulesResolver.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EACX,SAAS,EACT,qCAAqC,EACrC,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,cAAM,+BAAgC,YAAW,0BAA0B;IAEzE,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM;IAGnB,eAAe,CAC3B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;IAsBN,aAAa,CACzB,QAAQ,EAAE,qCAAqC,EAC/C,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,qCAAqC,CAAC;cAqCjC,mBAAmB,CAClC,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;cAiBP,oBAAoB,CACnC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,EAAE,CAAC;IAclB,SAAS,CAAC,2BAA2B,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI;IAcvE,SAAS,CAAC,qBAAqB,CAC9B,QAAQ,EAAE,qCAAqC,EAC/C,kBAAkB,EAAE,kBAAkB,GACpC,qCAAqC;CAUxC;AAED,OAAO,EAAE,+BAA+B,EAAE,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
class ImageCaptchaConfigRulesResolver {
|
|
2
|
+
constructor(rulesStorage, logger) {
|
|
3
|
+
this.rulesStorage = rulesStorage;
|
|
4
|
+
this.logger = logger;
|
|
5
|
+
}
|
|
6
|
+
async isConfigDefined(clientId, userIpAddress, userId) {
|
|
7
|
+
const accessRule = await this.fetchUserAccessRule(userIpAddress, userId, clientId);
|
|
8
|
+
const imageCaptchaConfig = accessRule?.config?.imageCaptcha || null;
|
|
9
|
+
const configDefined = null !== imageCaptchaConfig;
|
|
10
|
+
this.logger.info("ImageCaptchaConfigRulesResolver.isConfigDefined", {
|
|
11
|
+
configDefined: configDefined,
|
|
12
|
+
clientId: clientId,
|
|
13
|
+
userIpAddress: userIpAddress.toString(),
|
|
14
|
+
userId: userId,
|
|
15
|
+
imageCaptchaConfig: imageCaptchaConfig,
|
|
16
|
+
});
|
|
17
|
+
return configDefined;
|
|
18
|
+
}
|
|
19
|
+
async resolveConfig(defaults, userIpAddress, userId, clientId) {
|
|
20
|
+
const logArgs = {
|
|
21
|
+
userIpAddress: userIpAddress.address.toString(),
|
|
22
|
+
userId: userId,
|
|
23
|
+
clientId: clientId,
|
|
24
|
+
defaults: defaults,
|
|
25
|
+
};
|
|
26
|
+
const accessRule = await this.fetchUserAccessRule(userIpAddress, userId, clientId);
|
|
27
|
+
if (null === accessRule) {
|
|
28
|
+
this.logger.info("ImageCaptchaConfigRulesResolver.resolveConfig", {
|
|
29
|
+
configDefined: false,
|
|
30
|
+
...logArgs,
|
|
31
|
+
});
|
|
32
|
+
return defaults;
|
|
33
|
+
}
|
|
34
|
+
const imageCaptchaConfig = accessRule.config?.imageCaptcha || {};
|
|
35
|
+
const config = this.getImageCaptchaConfig(defaults, imageCaptchaConfig);
|
|
36
|
+
this.logger.info("ImageCaptchaConfigRulesResolver.resolveConfig", {
|
|
37
|
+
configDefined: true,
|
|
38
|
+
imageCaptchaConfig: imageCaptchaConfig,
|
|
39
|
+
config: config,
|
|
40
|
+
...logArgs,
|
|
41
|
+
});
|
|
42
|
+
return config;
|
|
43
|
+
}
|
|
44
|
+
async fetchUserAccessRule(userIpAddress, userId, clientId) {
|
|
45
|
+
const accessRules = await this.queryUserAccessRules(userIpAddress, userId, clientId);
|
|
46
|
+
this.logger.info("ImageCaptchaConfigRulesResolver.fetchUserAccessRule", {
|
|
47
|
+
accessRules: accessRules.length,
|
|
48
|
+
userIpAddress: userIpAddress.address.toString(),
|
|
49
|
+
userId: userId,
|
|
50
|
+
clientId: clientId,
|
|
51
|
+
});
|
|
52
|
+
return this.selectPrimaryUserAccessRule(accessRules);
|
|
53
|
+
}
|
|
54
|
+
async queryUserAccessRules(ipAddress, user, clientId) {
|
|
55
|
+
return await this.rulesStorage.find({
|
|
56
|
+
clientId: clientId,
|
|
57
|
+
userId: user,
|
|
58
|
+
userIpAddress: ipAddress,
|
|
59
|
+
}, {
|
|
60
|
+
includeRecordsWithoutClientId: true,
|
|
61
|
+
includeRecordsWithPartialFilterMatches: true,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
selectPrimaryUserAccessRule(accessRules) {
|
|
65
|
+
const clientRules = accessRules.filter((accessRule) => "string" === typeof accessRule.clientId);
|
|
66
|
+
const globalRules = accessRules.filter((accessRule) => undefined === accessRule.clientId);
|
|
67
|
+
const accessRule = clientRules.length > 0 ? clientRules.shift() : globalRules.shift();
|
|
68
|
+
return undefined === accessRule ? null : accessRule;
|
|
69
|
+
}
|
|
70
|
+
getImageCaptchaConfig(defaults, imageCaptchaConfig) {
|
|
71
|
+
return {
|
|
72
|
+
solved: {
|
|
73
|
+
count: imageCaptchaConfig.solvedCount || defaults.solved.count,
|
|
74
|
+
},
|
|
75
|
+
unsolved: {
|
|
76
|
+
count: imageCaptchaConfig.unsolvedCount || defaults.unsolved.count,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export { ImageCaptchaConfigRulesResolver };
|
|
82
|
+
//# sourceMappingURL=imageCaptchaConfigRulesResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageCaptchaConfigRulesResolver.js","sourceRoot":"","sources":["../../src/rules/imageCaptchaConfigRulesResolver.ts"],"names":[],"mappings":"AAwBA,MAAM,+BAA+B;IACpC,YACkB,YAA0B,EAC1B,MAAc;QADd,iBAAY,GAAZ,YAAY,CAAc;QAC1B,WAAM,GAAN,MAAM,CAAQ;IAC7B,CAAC;IAEG,KAAK,CAAC,eAAe,CAC3B,QAAgB,EAChB,aAAwB,EACxB,MAAc;QAEd,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAChD,aAAa,EACb,MAAM,EACN,QAAQ,CACR,CAAC;QAEF,MAAM,kBAAkB,GAAG,UAAU,EAAE,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC;QAEpE,MAAM,aAAa,GAAG,IAAI,KAAK,kBAAkB,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE;YACnE,aAAa,EAAE,aAAa;YAC5B,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,aAAa,CAAC,QAAQ,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,kBAAkB,EAAE,kBAAkB;SACtC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,aAAa,CACzB,QAA+C,EAC/C,aAAwB,EACxB,MAAc,EACd,QAAgB;QAEhB,MAAM,OAAO,GAAG;YACf,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;SAClB,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAChD,aAAa,EACb,MAAM,EACN,QAAQ,CACR,CAAC;QAEF,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE;gBACjE,aAAa,EAAE,KAAK;gBACpB,GAAG,OAAO;aACV,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC;QACjB,CAAC;QAED,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,EAAE,YAAY,IAAI,EAAE,CAAC;QAEjE,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAExE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE;YACjE,aAAa,EAAE,IAAI;YACnB,kBAAkB,EAAE,kBAAkB;YACtC,MAAM,EAAE,MAAM;YACd,GAAG,OAAO;SACV,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IACf,CAAC;IAES,KAAK,CAAC,mBAAmB,CAClC,aAAwB,EACxB,MAAc,EACd,QAAgB;QAEhB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAClD,aAAa,EACb,MAAM,EACN,QAAQ,CACR,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qDAAqD,EAAE;YACvE,WAAW,EAAE,WAAW,CAAC,MAAM;YAC/B,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;SAClB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAES,KAAK,CAAC,oBAAoB,CACnC,SAAoB,EACpB,IAAY,EACZ,QAAgB;QAEhB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAClC;YACC,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,SAAS;SACxB,EACD;YACC,6BAA6B,EAAE,IAAI;YACnC,sCAAsC,EAAE,IAAI;SAC5C,CACD,CAAC;IACH,CAAC;IAES,2BAA2B,CAAC,WAAmB;QACxD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CACrC,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,KAAK,OAAO,UAAU,CAAC,QAAQ,CACvD,CAAC;QACF,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CACrC,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,KAAK,UAAU,CAAC,QAAQ,CACjD,CAAC;QAEF,MAAM,UAAU,GACf,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEpE,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;IACrD,CAAC;IAES,qBAAqB,CAC9B,QAA+C,EAC/C,kBAAsC;QAEtC,OAAO;YACN,MAAM,EAAE;gBACP,KAAK,EAAE,kBAAkB,CAAC,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK;aAC9D;YACD,QAAQ,EAAE;gBACT,KAAK,EAAE,kBAAkB,CAAC,aAAa,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK;aAClE;SACD,CAAC;IACH,CAAC;CACD;AAED,OAAO,EAAE,+BAA+B,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongooseIndex.d.ts","sourceRoot":"","sources":["../../../../src/rules/mongoose/indexes/mongooseIndex.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE9D,UAAU,aAAa;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;CACtB;AAED,YAAY,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongooseIndex.js","sourceRoot":"","sources":["../../../../src/rules/mongoose/indexes/mongooseIndex.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rulePerformanceMongooseIndexes.d.ts","sourceRoot":"","sources":["../../../../src/rules/mongoose/indexes/rulePerformanceMongooseIndexes.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAkDxD,QAAA,MAAM,8BAA8B,iBAA2C,CAAC;AAEhF,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const userIpIndexes = [
|
|
2
|
+
{
|
|
3
|
+
definition: {
|
|
4
|
+
"userIp.v4.asNumeric": 1,
|
|
5
|
+
},
|
|
6
|
+
options: {
|
|
7
|
+
partialFilterExpression: {
|
|
8
|
+
"userIp.v4.asNumeric": { $exists: true },
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
definition: {
|
|
14
|
+
"userIp.v6.asNumericString": 1,
|
|
15
|
+
},
|
|
16
|
+
options: {
|
|
17
|
+
partialFilterExpression: {
|
|
18
|
+
"userIp.v6.asNumericString": { $exists: true },
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
const userIpMaskIndexes = [
|
|
24
|
+
{
|
|
25
|
+
definition: {
|
|
26
|
+
"userIp.v4.mask.rangeMinAsNumeric": 1,
|
|
27
|
+
"userIp.v4.mask.rangeMaxAsNumeric": 1,
|
|
28
|
+
},
|
|
29
|
+
options: {
|
|
30
|
+
partialFilterExpression: {
|
|
31
|
+
"userIp.v4.mask.asNumeric": { $exists: true },
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
definition: {
|
|
37
|
+
"userIp.v6.mask.rangeMinAsNumericString": 1,
|
|
38
|
+
"userIp.v6.mask.rangeMaxAsNumericString": 1,
|
|
39
|
+
},
|
|
40
|
+
options: {
|
|
41
|
+
partialFilterExpression: {
|
|
42
|
+
"userIp.v6.mask.asNumeric": { $exists: true },
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
const rulePerformanceMongooseIndexes = [...userIpIndexes, ...userIpMaskIndexes];
|
|
48
|
+
export { rulePerformanceMongooseIndexes };
|
|
49
|
+
//# sourceMappingURL=rulePerformanceMongooseIndexes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rulePerformanceMongooseIndexes.js","sourceRoot":"","sources":["../../../../src/rules/mongoose/indexes/rulePerformanceMongooseIndexes.ts"],"names":[],"mappings":"AAgBA,MAAM,aAAa,GAAoB;IACtC;QACC,UAAU,EAAE;YACX,qBAAqB,EAAE,CAAC;SACxB;QACD,OAAO,EAAE;YACR,uBAAuB,EAAE;gBACxB,qBAAqB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aACxC;SACD;KACD;IACD;QACC,UAAU,EAAE;YACX,2BAA2B,EAAE,CAAC;SAC9B;QACD,OAAO,EAAE;YACR,uBAAuB,EAAE;gBACxB,2BAA2B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aAC9C;SACD;KACD;CACD,CAAC;AAEF,MAAM,iBAAiB,GAAoB;IAC1C;QACC,UAAU,EAAE;YACX,kCAAkC,EAAE,CAAC;YACrC,kCAAkC,EAAE,CAAC;SACrC;QACD,OAAO,EAAE;YACR,uBAAuB,EAAE;gBACxB,0BAA0B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aAC7C;SACD;KACD;IACD;QACC,UAAU,EAAE;YACX,wCAAwC,EAAE,CAAC;YAC3C,wCAAwC,EAAE,CAAC;SAC3C;QACD,OAAO,EAAE;YACR,uBAAuB,EAAE;gBACxB,0BAA0B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aAC7C;SACD;KACD;CACD,CAAC;AAEF,MAAM,8BAA8B,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,iBAAiB,CAAC,CAAC;AAEhF,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruleUniqueMongooseIndexes.d.ts","sourceRoot":"","sources":["../../../../src/rules/mongoose/indexes/ruleUniqueMongooseIndexes.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAsIxD,QAAA,MAAM,yBAAyB,iBAK9B,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
const globalIpIndexes = [
|
|
2
|
+
{
|
|
3
|
+
definition: {
|
|
4
|
+
"userIp.v4.asNumeric": 1,
|
|
5
|
+
},
|
|
6
|
+
options: {
|
|
7
|
+
name: "globalIpV4",
|
|
8
|
+
unique: true,
|
|
9
|
+
partialFilterExpression: {
|
|
10
|
+
clientId: null,
|
|
11
|
+
"userIp.v4.asNumeric": { $exists: true },
|
|
12
|
+
"userIp.v4.mask.asNumeric": null,
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
definition: {
|
|
18
|
+
"userIp.v6.asNumericString": 1,
|
|
19
|
+
},
|
|
20
|
+
options: {
|
|
21
|
+
name: "globalIpV6",
|
|
22
|
+
unique: true,
|
|
23
|
+
partialFilterExpression: {
|
|
24
|
+
clientId: null,
|
|
25
|
+
"userIp.v6.asNumericString": { $exists: true },
|
|
26
|
+
"userIp.v6.mask.asNumeric": null,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
const globalIpMaskIndexes = [
|
|
32
|
+
{
|
|
33
|
+
definition: {
|
|
34
|
+
"userIp.v4.asNumeric": 1,
|
|
35
|
+
"userIp.v4.mask.asNumeric": 1,
|
|
36
|
+
},
|
|
37
|
+
options: {
|
|
38
|
+
name: "globalIpMaskV4",
|
|
39
|
+
unique: true,
|
|
40
|
+
partialFilterExpression: {
|
|
41
|
+
clientId: null,
|
|
42
|
+
"userIp.v4.asNumeric": { $exists: true },
|
|
43
|
+
"userIp.v4.mask.asNumeric": { $exists: true },
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
definition: {
|
|
49
|
+
"userIp.v6.asNumericString": 1,
|
|
50
|
+
"userIp.v6.mask.asNumeric": 1,
|
|
51
|
+
},
|
|
52
|
+
options: {
|
|
53
|
+
name: "globalIpMaskV6",
|
|
54
|
+
unique: true,
|
|
55
|
+
partialFilterExpression: {
|
|
56
|
+
clientId: null,
|
|
57
|
+
"userIp.v6.asNumericString": { $exists: true },
|
|
58
|
+
"userIp.v6.mask.asNumeric": { $exists: true },
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
];
|
|
63
|
+
const ipPerClientIndexes = [
|
|
64
|
+
{
|
|
65
|
+
definition: {
|
|
66
|
+
clientId: 1,
|
|
67
|
+
"userIp.v4.asNumeric": 1,
|
|
68
|
+
},
|
|
69
|
+
options: {
|
|
70
|
+
name: "clientIpV4",
|
|
71
|
+
unique: true,
|
|
72
|
+
partialFilterExpression: {
|
|
73
|
+
clientId: { $exists: true },
|
|
74
|
+
"userIp.v4.asNumeric": { $exists: true },
|
|
75
|
+
"userIp.v4.mask.asNumeric": null,
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
definition: {
|
|
81
|
+
clientId: 1,
|
|
82
|
+
"userIp.v6.asNumericString": 1,
|
|
83
|
+
},
|
|
84
|
+
options: {
|
|
85
|
+
name: "clientIpV6",
|
|
86
|
+
unique: true,
|
|
87
|
+
partialFilterExpression: {
|
|
88
|
+
clientId: { $exists: true },
|
|
89
|
+
"userIp.v6.asNumericString": { $exists: true },
|
|
90
|
+
"userIp.v6.mask.asNumeric": null,
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
];
|
|
95
|
+
const ipMaskPerClientIndexes = [
|
|
96
|
+
{
|
|
97
|
+
definition: {
|
|
98
|
+
clientId: 1,
|
|
99
|
+
"userIp.v4.asNumeric": 1,
|
|
100
|
+
"userIp.v4.mask.asNumeric": 1,
|
|
101
|
+
},
|
|
102
|
+
options: {
|
|
103
|
+
name: "clientIpV4Mask",
|
|
104
|
+
unique: true,
|
|
105
|
+
partialFilterExpression: {
|
|
106
|
+
clientId: { $exists: true },
|
|
107
|
+
"userIp.v4.asNumeric": { $exists: true },
|
|
108
|
+
"userIp.v4.mask.asNumeric": { $exists: true },
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
definition: {
|
|
114
|
+
clientId: 1,
|
|
115
|
+
"userIp.v6.asNumericString": 1,
|
|
116
|
+
"userIp.v6.mask.asNumeric": 1,
|
|
117
|
+
},
|
|
118
|
+
options: {
|
|
119
|
+
name: "clientIpV6Mask",
|
|
120
|
+
unique: true,
|
|
121
|
+
partialFilterExpression: {
|
|
122
|
+
clientId: { $exists: true },
|
|
123
|
+
"userIp.v6.asNumericString": { $exists: true },
|
|
124
|
+
"userIp.v6.mask.asNumeric": { $exists: true },
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
];
|
|
129
|
+
const ruleUniqueMongooseIndexes = [
|
|
130
|
+
...globalIpIndexes,
|
|
131
|
+
...globalIpMaskIndexes,
|
|
132
|
+
...ipMaskPerClientIndexes,
|
|
133
|
+
...ipPerClientIndexes,
|
|
134
|
+
];
|
|
135
|
+
export { ruleUniqueMongooseIndexes };
|
|
136
|
+
//# sourceMappingURL=ruleUniqueMongooseIndexes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruleUniqueMongooseIndexes.js","sourceRoot":"","sources":["../../../../src/rules/mongoose/indexes/ruleUniqueMongooseIndexes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruleMongooseRecord.d.ts","sourceRoot":"","sources":["../../../src/rules/mongoose/ruleMongooseRecord.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,UAAU,kBAAmB,SAAQ,IAAI;IACxC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC;CACpB;AAED,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruleMongooseRecord.js","sourceRoot":"","sources":["../../../src/rules/mongoose/ruleMongooseRecord.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type Logger, ProsopoError } from "@prosopo/common";
|
|
2
|
+
import type { IPAddress } from "@prosopo/types";
|
|
3
|
+
import type { Model } from "mongoose";
|
|
4
|
+
import type { Rule } from "../rule/rule.js";
|
|
5
|
+
import type { SearchRuleFilterSettings } from "../storage/filters/search/searchRuleFilterSettings.js";
|
|
6
|
+
import type { SearchRuleFilters } from "../storage/filters/search/searchRuleFilters.js";
|
|
7
|
+
import type { RuleRecord } from "../storage/ruleRecord.js";
|
|
8
|
+
import type { RulesStorage } from "../storage/rulesStorage.js";
|
|
9
|
+
import type { RuleMongooseRecord } from "./ruleMongooseRecord.js";
|
|
10
|
+
declare class RulesMongooseStorage implements RulesStorage {
|
|
11
|
+
private readonly logger;
|
|
12
|
+
private readingModel;
|
|
13
|
+
private writingModel;
|
|
14
|
+
constructor(logger: Logger, readingModel: Model<Rule> | null, writingModel?: Model<Rule> | null);
|
|
15
|
+
insert(record: Rule): Promise<RuleRecord>;
|
|
16
|
+
insertMany(records: Rule[]): Promise<RuleRecord[]>;
|
|
17
|
+
find(filters: SearchRuleFilters, filterSettings?: SearchRuleFilterSettings): Promise<RuleRecord[]>;
|
|
18
|
+
deleteMany(recordFilters: SearchRuleFilters[]): Promise<void>;
|
|
19
|
+
countRecords(): Promise<number>;
|
|
20
|
+
protected modelNotSetProsopoError(): ProsopoError;
|
|
21
|
+
protected createSearchQuery(filters: SearchRuleFilters, filterSettings?: SearchRuleFilterSettings): object;
|
|
22
|
+
protected getSearchQueryFilters(filters: SearchRuleFilters, includeRecordsWithPartialFilterMatches: boolean): object[];
|
|
23
|
+
protected getFilterByClientId(includeRecordsWithoutClientId: boolean, clientId?: string): object;
|
|
24
|
+
protected getFilterByUserIp(userIpAddress: IPAddress | null): object;
|
|
25
|
+
protected getFilterByUserIpAddress(userIpAddress: IPAddress): object;
|
|
26
|
+
protected convertMongooseRecordsToRuleRecords(mongooseRecords: RuleMongooseRecord[]): RuleRecord[];
|
|
27
|
+
protected convertMongooseRecordToRuleRecord(mongooseRecord: RuleMongooseRecord): RuleRecord;
|
|
28
|
+
}
|
|
29
|
+
export { RulesMongooseStorage };
|
|
30
|
+
//# sourceMappingURL=rulesMongooseStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rulesMongooseStorage.d.ts","sourceRoot":"","sources":["../../../src/rules/mongoose/rulesMongooseStorage.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACtG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,cAAM,oBAAqB,YAAW,YAAY;IAEhD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;gBAFH,MAAM,EAAE,MAAM,EACvB,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,EAChC,YAAY,GAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAW;IAOnC,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IAczC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAclD,IAAI,CAChB,OAAO,EAAE,iBAAiB,EAC1B,cAAc,CAAC,EAAE,wBAAwB,GACvC,OAAO,CAAC,UAAU,EAAE,CAAC;IAeX,UAAU,CAAC,aAAa,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7D,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAU5C,SAAS,CAAC,uBAAuB,IAAI,YAAY;IAIjD,SAAS,CAAC,iBAAiB,CAC1B,OAAO,EAAE,iBAAiB,EAC1B,cAAc,CAAC,EAAE,wBAAwB,GACvC,MAAM;IAoBT,SAAS,CAAC,qBAAqB,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,sCAAsC,EAAE,OAAO,GAC7C,MAAM,EAAE;IAgBX,SAAS,CAAC,mBAAmB,CAC5B,6BAA6B,EAAE,OAAO,EACtC,QAAQ,CAAC,EAAE,MAAM,GACf,MAAM;IAeT,SAAS,CAAC,iBAAiB,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM;IAMpE,SAAS,CAAC,wBAAwB,CAAC,aAAa,EAAE,SAAS,GAAG,MAAM;IAyCpE,SAAS,CAAC,mCAAmC,CAC5C,eAAe,EAAE,kBAAkB,EAAE,GACnC,UAAU,EAAE;IAQf,SAAS,CAAC,iCAAiC,CAC1C,cAAc,EAAE,kBAAkB,GAChC,UAAU;CAQb;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|