@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.
Files changed (263) hide show
  1. package/dist/blacklistInspector.d.ts +6 -0
  2. package/dist/blacklistInspector.d.ts.map +1 -0
  3. package/dist/blacklistInspector.js +2 -0
  4. package/dist/blacklistInspector.js.map +1 -0
  5. package/dist/imageCaptchaConfigResolver.d.ts +7 -0
  6. package/dist/imageCaptchaConfigResolver.d.ts.map +1 -0
  7. package/dist/imageCaptchaConfigResolver.js +2 -0
  8. package/dist/imageCaptchaConfigResolver.js.map +1 -0
  9. package/dist/index.d.ts +15 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +20 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/rules/api/apiRulePaths.d.ts +6 -0
  14. package/dist/rules/api/apiRulePaths.d.ts.map +1 -0
  15. package/dist/rules/api/apiRulePaths.js +6 -0
  16. package/dist/rules/api/apiRulePaths.js.map +1 -0
  17. package/dist/rules/api/apiRuleRoutesProvider.d.ts +9 -0
  18. package/dist/rules/api/apiRuleRoutesProvider.d.ts.map +1 -0
  19. package/dist/rules/api/apiRuleRoutesProvider.js +22 -0
  20. package/dist/rules/api/apiRuleRoutesProvider.js.map +1 -0
  21. package/dist/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.d.ts +159 -0
  22. package/dist/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.d.ts.map +1 -0
  23. package/dist/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.js +9 -0
  24. package/dist/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.js.map +1 -0
  25. package/dist/rules/api/deleteMany/apiDeleteManyRulesEndpoint.d.ts +12 -0
  26. package/dist/rules/api/deleteMany/apiDeleteManyRulesEndpoint.d.ts.map +1 -0
  27. package/dist/rules/api/deleteMany/apiDeleteManyRulesEndpoint.js +18 -0
  28. package/dist/rules/api/deleteMany/apiDeleteManyRulesEndpoint.js.map +1 -0
  29. package/dist/rules/api/getExpressApiRuleRateLimits.d.ts +8 -0
  30. package/dist/rules/api/getExpressApiRuleRateLimits.d.ts.map +1 -0
  31. package/dist/rules/api/getExpressApiRuleRateLimits.js +21 -0
  32. package/dist/rules/api/getExpressApiRuleRateLimits.js.map +1 -0
  33. package/dist/rules/api/insertMany/apiInsertManyRulesArgsSchema.d.ts +199 -0
  34. package/dist/rules/api/insertMany/apiInsertManyRulesArgsSchema.d.ts.map +1 -0
  35. package/dist/rules/api/insertMany/apiInsertManyRulesArgsSchema.js +13 -0
  36. package/dist/rules/api/insertMany/apiInsertManyRulesArgsSchema.js.map +1 -0
  37. package/dist/rules/api/insertMany/apiInsertManyRulesEndpoint.d.ts +15 -0
  38. package/dist/rules/api/insertMany/apiInsertManyRulesEndpoint.d.ts.map +1 -0
  39. package/dist/rules/api/insertMany/apiInsertManyRulesEndpoint.js +50 -0
  40. package/dist/rules/api/insertMany/apiInsertManyRulesEndpoint.js.map +1 -0
  41. package/dist/rules/blacklistRulesInspector.d.ts +12 -0
  42. package/dist/rules/blacklistRulesInspector.d.ts.map +1 -0
  43. package/dist/rules/blacklistRulesInspector.js +29 -0
  44. package/dist/rules/blacklistRulesInspector.js.map +1 -0
  45. package/dist/rules/imageCaptchaConfigRulesResolver.d.ts +19 -0
  46. package/dist/rules/imageCaptchaConfigRulesResolver.d.ts.map +1 -0
  47. package/dist/rules/imageCaptchaConfigRulesResolver.js +82 -0
  48. package/dist/rules/imageCaptchaConfigRulesResolver.js.map +1 -0
  49. package/dist/rules/mongoose/indexes/mongooseIndex.d.ts +7 -0
  50. package/dist/rules/mongoose/indexes/mongooseIndex.d.ts.map +1 -0
  51. package/dist/rules/mongoose/indexes/mongooseIndex.js +2 -0
  52. package/dist/rules/mongoose/indexes/mongooseIndex.js.map +1 -0
  53. package/dist/rules/mongoose/indexes/rulePerformanceMongooseIndexes.d.ts +4 -0
  54. package/dist/rules/mongoose/indexes/rulePerformanceMongooseIndexes.d.ts.map +1 -0
  55. package/dist/rules/mongoose/indexes/rulePerformanceMongooseIndexes.js +49 -0
  56. package/dist/rules/mongoose/indexes/rulePerformanceMongooseIndexes.js.map +1 -0
  57. package/dist/rules/mongoose/indexes/ruleUniqueMongooseIndexes.d.ts +4 -0
  58. package/dist/rules/mongoose/indexes/ruleUniqueMongooseIndexes.d.ts.map +1 -0
  59. package/dist/rules/mongoose/indexes/ruleUniqueMongooseIndexes.js +136 -0
  60. package/dist/rules/mongoose/indexes/ruleUniqueMongooseIndexes.js.map +1 -0
  61. package/dist/rules/mongoose/ruleMongooseRecord.d.ts +7 -0
  62. package/dist/rules/mongoose/ruleMongooseRecord.d.ts.map +1 -0
  63. package/dist/rules/mongoose/ruleMongooseRecord.js +2 -0
  64. package/dist/rules/mongoose/ruleMongooseRecord.js.map +1 -0
  65. package/dist/rules/mongoose/rulesMongooseStorage.d.ts +30 -0
  66. package/dist/rules/mongoose/rulesMongooseStorage.d.ts.map +1 -0
  67. package/dist/rules/mongoose/rulesMongooseStorage.js +143 -0
  68. package/dist/rules/mongoose/rulesMongooseStorage.js.map +1 -0
  69. package/dist/rules/mongoose/schemas/config/configMongooseSchema.d.ts +43 -0
  70. package/dist/rules/mongoose/schemas/config/configMongooseSchema.d.ts.map +1 -0
  71. package/dist/rules/mongoose/schemas/config/configMongooseSchema.js +10 -0
  72. package/dist/rules/mongoose/schemas/config/configMongooseSchema.js.map +1 -0
  73. package/dist/rules/mongoose/schemas/config/imageCaptchaConfigMongooseSchema.d.ts +29 -0
  74. package/dist/rules/mongoose/schemas/config/imageCaptchaConfigMongooseSchema.d.ts.map +1 -0
  75. package/dist/rules/mongoose/schemas/config/imageCaptchaConfigMongooseSchema.js +13 -0
  76. package/dist/rules/mongoose/schemas/config/imageCaptchaConfigMongooseSchema.js.map +1 -0
  77. package/dist/rules/mongoose/schemas/getRuleMongooseSchema.d.ts +5 -0
  78. package/dist/rules/mongoose/schemas/getRuleMongooseSchema.d.ts.map +1 -0
  79. package/dist/rules/mongoose/schemas/getRuleMongooseSchema.js +15 -0
  80. package/dist/rules/mongoose/schemas/getRuleMongooseSchema.js.map +1 -0
  81. package/dist/rules/mongoose/schemas/ip/ipMongooseSchema.d.ts +141 -0
  82. package/dist/rules/mongoose/schemas/ip/ipMongooseSchema.d.ts.map +1 -0
  83. package/dist/rules/mongoose/schemas/ip/ipMongooseSchema.js +25 -0
  84. package/dist/rules/mongoose/schemas/ip/ipMongooseSchema.js.map +1 -0
  85. package/dist/rules/mongoose/schemas/ip/v4/ipV4MaskMongooseSchema.d.ts +36 -0
  86. package/dist/rules/mongoose/schemas/ip/v4/ipV4MaskMongooseSchema.d.ts.map +1 -0
  87. package/dist/rules/mongoose/schemas/ip/v4/ipV4MaskMongooseSchema.js +8 -0
  88. package/dist/rules/mongoose/schemas/ip/v4/ipV4MaskMongooseSchema.js.map +1 -0
  89. package/dist/rules/mongoose/schemas/ip/v4/ipV4MongooseSchema.d.ts +64 -0
  90. package/dist/rules/mongoose/schemas/ip/v4/ipV4MongooseSchema.d.ts.map +1 -0
  91. package/dist/rules/mongoose/schemas/ip/v4/ipV4MongooseSchema.js +12 -0
  92. package/dist/rules/mongoose/schemas/ip/v4/ipV4MongooseSchema.js.map +1 -0
  93. package/dist/rules/mongoose/schemas/ip/v6/ipV6MaskMongooseSchema.d.ts +36 -0
  94. package/dist/rules/mongoose/schemas/ip/v6/ipV6MaskMongooseSchema.d.ts.map +1 -0
  95. package/dist/rules/mongoose/schemas/ip/v6/ipV6MaskMongooseSchema.js +17 -0
  96. package/dist/rules/mongoose/schemas/ip/v6/ipV6MaskMongooseSchema.js.map +1 -0
  97. package/dist/rules/mongoose/schemas/ip/v6/ipV6MongooseSchema.d.ts +64 -0
  98. package/dist/rules/mongoose/schemas/ip/v6/ipV6MongooseSchema.d.ts.map +1 -0
  99. package/dist/rules/mongoose/schemas/ip/v6/ipV6MongooseSchema.js +17 -0
  100. package/dist/rules/mongoose/schemas/ip/v6/ipV6MongooseSchema.js.map +1 -0
  101. package/dist/rules/mongoose/schemas/ruleMongooseSchema.d.ts +9 -0
  102. package/dist/rules/mongoose/schemas/ruleMongooseSchema.d.ts.map +1 -0
  103. package/dist/rules/mongoose/schemas/ruleMongooseSchema.js +32 -0
  104. package/dist/rules/mongoose/schemas/ruleMongooseSchema.js.map +1 -0
  105. package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfig.d.ts +5 -0
  106. package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfig.d.ts.map +1 -0
  107. package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfig.js +2 -0
  108. package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfig.js.map +1 -0
  109. package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfigSchema.d.ts +12 -0
  110. package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfigSchema.d.ts.map +1 -0
  111. package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfigSchema.js +7 -0
  112. package/dist/rules/rule/config/imageCaptcha/imageCaptchaConfigSchema.js.map +1 -0
  113. package/dist/rules/rule/config/ruleConfig.d.ts +5 -0
  114. package/dist/rules/rule/config/ruleConfig.d.ts.map +1 -0
  115. package/dist/rules/rule/config/ruleConfig.js +2 -0
  116. package/dist/rules/rule/config/ruleConfig.js.map +1 -0
  117. package/dist/rules/rule/config/ruleConfigSchema.d.ts +24 -0
  118. package/dist/rules/rule/config/ruleConfigSchema.d.ts.map +1 -0
  119. package/dist/rules/rule/config/ruleConfigSchema.js +7 -0
  120. package/dist/rules/rule/config/ruleConfigSchema.js.map +1 -0
  121. package/dist/rules/rule/ip/ruleIp.d.ts +5 -0
  122. package/dist/rules/rule/ip/ruleIp.d.ts.map +1 -0
  123. package/dist/rules/rule/ip/ruleIp.js +2 -0
  124. package/dist/rules/rule/ip/ruleIp.js.map +1 -0
  125. package/dist/rules/rule/ip/ruleIpSchema.d.ts +108 -0
  126. package/dist/rules/rule/ip/ruleIpSchema.d.ts.map +1 -0
  127. package/dist/rules/rule/ip/ruleIpSchema.js +9 -0
  128. package/dist/rules/rule/ip/ruleIpSchema.js.map +1 -0
  129. package/dist/rules/rule/ip/ruleIpVersion.d.ts +6 -0
  130. package/dist/rules/rule/ip/ruleIpVersion.d.ts.map +1 -0
  131. package/dist/rules/rule/ip/ruleIpVersion.js +7 -0
  132. package/dist/rules/rule/ip/ruleIpVersion.js.map +1 -0
  133. package/dist/rules/rule/ip/v4/mask/ruleIpV4Mask.d.ts +5 -0
  134. package/dist/rules/rule/ip/v4/mask/ruleIpV4Mask.d.ts.map +1 -0
  135. package/dist/rules/rule/ip/v4/mask/ruleIpV4Mask.js +2 -0
  136. package/dist/rules/rule/ip/v4/mask/ruleIpV4Mask.js.map +1 -0
  137. package/dist/rules/rule/ip/v4/mask/ruleIpV4MaskSchema.d.ts +15 -0
  138. package/dist/rules/rule/ip/v4/mask/ruleIpV4MaskSchema.d.ts.map +1 -0
  139. package/dist/rules/rule/ip/v4/mask/ruleIpV4MaskSchema.js +8 -0
  140. package/dist/rules/rule/ip/v4/mask/ruleIpV4MaskSchema.js.map +1 -0
  141. package/dist/rules/rule/ip/v4/ruleIpV4.d.ts +5 -0
  142. package/dist/rules/rule/ip/v4/ruleIpV4.d.ts.map +1 -0
  143. package/dist/rules/rule/ip/v4/ruleIpV4.js +2 -0
  144. package/dist/rules/rule/ip/v4/ruleIpV4.js.map +1 -0
  145. package/dist/rules/rule/ip/v4/ruleIpV4Schema.d.ts +35 -0
  146. package/dist/rules/rule/ip/v4/ruleIpV4Schema.d.ts.map +1 -0
  147. package/dist/rules/rule/ip/v4/ruleIpV4Schema.js +9 -0
  148. package/dist/rules/rule/ip/v4/ruleIpV4Schema.js.map +1 -0
  149. package/dist/rules/rule/ip/v6/mask/ruleIpV6Mask.d.ts +5 -0
  150. package/dist/rules/rule/ip/v6/mask/ruleIpV6Mask.d.ts.map +1 -0
  151. package/dist/rules/rule/ip/v6/mask/ruleIpV6Mask.js +2 -0
  152. package/dist/rules/rule/ip/v6/mask/ruleIpV6Mask.js.map +1 -0
  153. package/dist/rules/rule/ip/v6/mask/ruleIpV6MaskSchema.d.ts +15 -0
  154. package/dist/rules/rule/ip/v6/mask/ruleIpV6MaskSchema.d.ts.map +1 -0
  155. package/dist/rules/rule/ip/v6/mask/ruleIpV6MaskSchema.js +8 -0
  156. package/dist/rules/rule/ip/v6/mask/ruleIpV6MaskSchema.js.map +1 -0
  157. package/dist/rules/rule/ip/v6/ruleIpV6.d.ts +5 -0
  158. package/dist/rules/rule/ip/v6/ruleIpV6.d.ts.map +1 -0
  159. package/dist/rules/rule/ip/v6/ruleIpV6.js +2 -0
  160. package/dist/rules/rule/ip/v6/ruleIpV6.js.map +1 -0
  161. package/dist/rules/rule/ip/v6/ruleIpV6NumericMaxLength.d.ts +3 -0
  162. package/dist/rules/rule/ip/v6/ruleIpV6NumericMaxLength.d.ts.map +1 -0
  163. package/dist/rules/rule/ip/v6/ruleIpV6NumericMaxLength.js +3 -0
  164. package/dist/rules/rule/ip/v6/ruleIpV6NumericMaxLength.js.map +1 -0
  165. package/dist/rules/rule/ip/v6/ruleIpV6Schema.d.ts +35 -0
  166. package/dist/rules/rule/ip/v6/ruleIpV6Schema.d.ts.map +1 -0
  167. package/dist/rules/rule/ip/v6/ruleIpV6Schema.js +9 -0
  168. package/dist/rules/rule/ip/v6/ruleIpV6Schema.js.map +1 -0
  169. package/dist/rules/rule/rule.d.ts +12 -0
  170. package/dist/rules/rule/rule.d.ts.map +1 -0
  171. package/dist/rules/rule/rule.js +2 -0
  172. package/dist/rules/rule/rule.js.map +1 -0
  173. package/dist/rules/storage/filters/deleteRuleFilters.d.ts +8 -0
  174. package/dist/rules/storage/filters/deleteRuleFilters.d.ts.map +1 -0
  175. package/dist/rules/storage/filters/deleteRuleFilters.js +2 -0
  176. package/dist/rules/storage/filters/deleteRuleFilters.js.map +1 -0
  177. package/dist/rules/storage/filters/search/searchRuleFilterSettings.d.ts +6 -0
  178. package/dist/rules/storage/filters/search/searchRuleFilterSettings.d.ts.map +1 -0
  179. package/dist/rules/storage/filters/search/searchRuleFilterSettings.js +2 -0
  180. package/dist/rules/storage/filters/search/searchRuleFilterSettings.js.map +1 -0
  181. package/dist/rules/storage/filters/search/searchRuleFilters.d.ts +8 -0
  182. package/dist/rules/storage/filters/search/searchRuleFilters.d.ts.map +1 -0
  183. package/dist/rules/storage/filters/search/searchRuleFilters.js +2 -0
  184. package/dist/rules/storage/filters/search/searchRuleFilters.js.map +1 -0
  185. package/dist/rules/storage/ruleRecord.d.ts +6 -0
  186. package/dist/rules/storage/ruleRecord.d.ts.map +1 -0
  187. package/dist/rules/storage/ruleRecord.js +2 -0
  188. package/dist/rules/storage/ruleRecord.js.map +1 -0
  189. package/dist/rules/storage/rulesStorage.d.ts +14 -0
  190. package/dist/rules/storage/rulesStorage.d.ts.map +1 -0
  191. package/dist/rules/storage/rulesStorage.js +2 -0
  192. package/dist/rules/storage/rulesStorage.js.map +1 -0
  193. package/dist/tests/benchmark/commands/commandBase.d.ts +14 -0
  194. package/dist/tests/benchmark/commands/commandBase.d.ts.map +1 -0
  195. package/dist/tests/benchmark/commands/commandBase.js +22 -0
  196. package/dist/tests/benchmark/commands/commandBase.js.map +1 -0
  197. package/dist/tests/benchmark/commands/measureFindCommand.d.ts +14 -0
  198. package/dist/tests/benchmark/commands/measureFindCommand.d.ts.map +1 -0
  199. package/dist/tests/benchmark/commands/measureFindCommand.js +60 -0
  200. package/dist/tests/benchmark/commands/measureFindCommand.js.map +1 -0
  201. package/dist/tests/benchmark/commands/populateCommand.d.ts +18 -0
  202. package/dist/tests/benchmark/commands/populateCommand.d.ts.map +1 -0
  203. package/dist/tests/benchmark/commands/populateCommand.js +97 -0
  204. package/dist/tests/benchmark/commands/populateCommand.js.map +1 -0
  205. package/dist/tests/benchmark/connectionCleaner/connectionCleaner.d.ts +5 -0
  206. package/dist/tests/benchmark/connectionCleaner/connectionCleaner.d.ts.map +1 -0
  207. package/dist/tests/benchmark/connectionCleaner/connectionCleaner.js +2 -0
  208. package/dist/tests/benchmark/connectionCleaner/connectionCleaner.js.map +1 -0
  209. package/dist/tests/benchmark/connectionCleaner/mongooseConnectionCleaner.d.ts +6 -0
  210. package/dist/tests/benchmark/connectionCleaner/mongooseConnectionCleaner.d.ts.map +1 -0
  211. package/dist/tests/benchmark/connectionCleaner/mongooseConnectionCleaner.js +8 -0
  212. package/dist/tests/benchmark/connectionCleaner/mongooseConnectionCleaner.js.map +1 -0
  213. package/dist/tests/benchmark/mongooseRulesStorageBenchmark.d.ts +2 -0
  214. package/dist/tests/benchmark/mongooseRulesStorageBenchmark.d.ts.map +1 -0
  215. package/dist/tests/benchmark/mongooseRulesStorageBenchmark.js +8 -0
  216. package/dist/tests/benchmark/mongooseRulesStorageBenchmark.js.map +1 -0
  217. package/dist/tests/benchmark/rulesStorageBenchmark.d.ts +12 -0
  218. package/dist/tests/benchmark/rulesStorageBenchmark.d.ts.map +1 -0
  219. package/dist/tests/benchmark/rulesStorageBenchmark.js +30 -0
  220. package/dist/tests/benchmark/rulesStorageBenchmark.js.map +1 -0
  221. package/dist/tests/benchmark/storageFactory/mongooseRulesStorageFactory.d.ts +10 -0
  222. package/dist/tests/benchmark/storageFactory/mongooseRulesStorageFactory.d.ts.map +1 -0
  223. package/dist/tests/benchmark/storageFactory/mongooseRulesStorageFactory.js +16 -0
  224. package/dist/tests/benchmark/storageFactory/mongooseRulesStorageFactory.js.map +1 -0
  225. package/dist/tests/benchmark/storageFactory/rulesStorageFactory.d.ts +6 -0
  226. package/dist/tests/benchmark/storageFactory/rulesStorageFactory.d.ts.map +1 -0
  227. package/dist/tests/benchmark/storageFactory/rulesStorageFactory.js +2 -0
  228. package/dist/tests/benchmark/storageFactory/rulesStorageFactory.js.map +1 -0
  229. package/dist/tests/rules/ImageCaptchaConfigRulesResolver.test.d.ts +2 -0
  230. package/dist/tests/rules/ImageCaptchaConfigRulesResolver.test.d.ts.map +1 -0
  231. package/dist/tests/rules/ImageCaptchaConfigRulesResolver.test.js +75 -0
  232. package/dist/tests/rules/ImageCaptchaConfigRulesResolver.test.js.map +1 -0
  233. package/dist/tests/rules/blacklistRulesInspector.unit.test.d.ts +2 -0
  234. package/dist/tests/rules/blacklistRulesInspector.unit.test.d.ts.map +1 -0
  235. package/dist/tests/rules/blacklistRulesInspector.unit.test.js +58 -0
  236. package/dist/tests/rules/blacklistRulesInspector.unit.test.js.map +1 -0
  237. package/dist/tests/rules/loggerMockedInstance.d.ts +13 -0
  238. package/dist/tests/rules/loggerMockedInstance.d.ts.map +1 -0
  239. package/dist/tests/rules/loggerMockedInstance.js +14 -0
  240. package/dist/tests/rules/loggerMockedInstance.js.map +1 -0
  241. package/dist/tests/rules/mongoose/find.unit.test.d.ts +2 -0
  242. package/dist/tests/rules/mongoose/find.unit.test.d.ts.map +1 -0
  243. package/dist/tests/rules/mongoose/find.unit.test.js +202 -0
  244. package/dist/tests/rules/mongoose/find.unit.test.js.map +1 -0
  245. package/dist/tests/rules/mongoose/insert/insertIpV6Formatting.unit.test.d.ts +2 -0
  246. package/dist/tests/rules/mongoose/insert/insertIpV6Formatting.unit.test.d.ts.map +1 -0
  247. package/dist/tests/rules/mongoose/insert/insertIpV6Formatting.unit.test.js +131 -0
  248. package/dist/tests/rules/mongoose/insert/insertIpV6Formatting.unit.test.js.map +1 -0
  249. package/dist/tests/rules/mongoose/insert/insertValidation.unit.test.d.ts +2 -0
  250. package/dist/tests/rules/mongoose/insert/insertValidation.unit.test.d.ts.map +1 -0
  251. package/dist/tests/rules/mongoose/insert/insertValidation.unit.test.js +101 -0
  252. package/dist/tests/rules/mongoose/insert/insertValidation.unit.test.js.map +1 -0
  253. package/dist/tests/rules/mongoose/ip.unit.test.d.ts +2 -0
  254. package/dist/tests/rules/mongoose/ip.unit.test.d.ts.map +1 -0
  255. package/dist/tests/rules/mongoose/ip.unit.test.js +392 -0
  256. package/dist/tests/rules/mongoose/ip.unit.test.js.map +1 -0
  257. package/dist/tests/rules/storage/testRulesStorage.d.ts +17 -0
  258. package/dist/tests/rules/storage/testRulesStorage.d.ts.map +1 -0
  259. package/dist/tests/rules/storage/testRulesStorage.js +25 -0
  260. package/dist/tests/rules/storage/testRulesStorage.js.map +1 -0
  261. package/package.json +47 -0
  262. package/vite.cjs.config.ts +23 -0
  263. package/vite.test.config.ts +17 -0
@@ -0,0 +1,5 @@
1
+ import type { z } from "zod";
2
+ import type { ruleIpV6Schema } from "./ruleIpV6Schema.js";
3
+ type RuleIpV6 = z.infer<typeof ruleIpV6Schema>;
4
+ export type { RuleIpV6 };
5
+ //# sourceMappingURL=ruleIpV6.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleIpV6.d.ts","sourceRoot":"","sources":["../../../../../src/rules/rule/ip/v6/ruleIpV6.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE/C,YAAY,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ruleIpV6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleIpV6.js","sourceRoot":"","sources":["../../../../../src/rules/rule/ip/v6/ruleIpV6.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ declare const RULE_IPV6_NUMERIC_MAX_LENGTH = 38;
2
+ export { RULE_IPV6_NUMERIC_MAX_LENGTH };
3
+ //# sourceMappingURL=ruleIpV6NumericMaxLength.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleIpV6NumericMaxLength.d.ts","sourceRoot":"","sources":["../../../../../src/rules/rule/ip/v6/ruleIpV6NumericMaxLength.ts"],"names":[],"mappings":"AAcA,QAAA,MAAM,4BAA4B,KAAK,CAAC;AAExC,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ const RULE_IPV6_NUMERIC_MAX_LENGTH = 38;
2
+ export { RULE_IPV6_NUMERIC_MAX_LENGTH };
3
+ //# sourceMappingURL=ruleIpV6NumericMaxLength.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleIpV6NumericMaxLength.js","sourceRoot":"","sources":["../../../../../src/rules/rule/ip/v6/ruleIpV6NumericMaxLength.ts"],"names":[],"mappings":"AAcA,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ declare const ruleIpV6Schema: import("zod").ZodObject<{
2
+ asNumericString: import("zod").ZodString;
3
+ asString: import("zod").ZodString;
4
+ mask: import("zod").ZodOptional<import("zod").ZodObject<{
5
+ rangeMinAsNumericString: import("zod").ZodString;
6
+ rangeMaxAsNumericString: import("zod").ZodString;
7
+ asNumeric: import("zod").ZodNumber;
8
+ }, "strip", import("zod").ZodTypeAny, {
9
+ asNumeric: number;
10
+ rangeMinAsNumericString: string;
11
+ rangeMaxAsNumericString: string;
12
+ }, {
13
+ asNumeric: number;
14
+ rangeMinAsNumericString: string;
15
+ rangeMaxAsNumericString: string;
16
+ }>>;
17
+ }, "strip", import("zod").ZodTypeAny, {
18
+ asString: string;
19
+ asNumericString: string;
20
+ mask?: {
21
+ asNumeric: number;
22
+ rangeMinAsNumericString: string;
23
+ rangeMaxAsNumericString: string;
24
+ } | undefined;
25
+ }, {
26
+ asString: string;
27
+ asNumericString: string;
28
+ mask?: {
29
+ asNumeric: number;
30
+ rangeMinAsNumericString: string;
31
+ rangeMaxAsNumericString: string;
32
+ } | undefined;
33
+ }>;
34
+ export { ruleIpV6Schema };
35
+ //# sourceMappingURL=ruleIpV6Schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleIpV6Schema.d.ts","sourceRoot":"","sources":["../../../../../src/rules/rule/ip/v6/ruleIpV6Schema.ts"],"names":[],"mappings":"AAiBA,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIlB,CAAC;AAEH,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { object, string } from "zod";
2
+ import { ruleIpV6MaskSchema } from "./mask/ruleIpV6MaskSchema.js";
3
+ const ruleIpV6Schema = object({
4
+ asNumericString: string(),
5
+ asString: string(),
6
+ mask: ruleIpV6MaskSchema.optional(),
7
+ });
8
+ export { ruleIpV6Schema };
9
+ //# sourceMappingURL=ruleIpV6Schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleIpV6Schema.js","sourceRoot":"","sources":["../../../../../src/rules/rule/ip/v6/ruleIpV6Schema.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,cAAc,GAAG,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,EAAE;IACzB,QAAQ,EAAE,MAAM,EAAE;IAClB,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { RuleConfig } from "./config/ruleConfig.js";
2
+ import type { RuleIp } from "./ip/ruleIp.js";
3
+ interface Rule {
4
+ isUserBlocked: boolean;
5
+ clientId?: string;
6
+ description?: string;
7
+ userIp?: RuleIp;
8
+ userId?: string;
9
+ config?: RuleConfig;
10
+ }
11
+ export type { Rule };
12
+ //# sourceMappingURL=rule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../src/rules/rule/rule.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,UAAU,IAAI;IACb,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,YAAY,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/rules/rule/rule.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { RuleIp } from "../../rule/ip/ruleIp.js";
2
+ interface DeleteRuleFilters {
3
+ clientId?: string;
4
+ userIp?: RuleIp;
5
+ userId?: string;
6
+ }
7
+ export type { DeleteRuleFilters };
8
+ //# sourceMappingURL=deleteRuleFilters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteRuleFilters.d.ts","sourceRoot":"","sources":["../../../../src/rules/storage/filters/deleteRuleFilters.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,UAAU,iBAAiB;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deleteRuleFilters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteRuleFilters.js","sourceRoot":"","sources":["../../../../src/rules/storage/filters/deleteRuleFilters.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ interface SearchRuleFilterSettings {
2
+ includeRecordsWithoutClientId?: boolean;
3
+ includeRecordsWithPartialFilterMatches?: boolean;
4
+ }
5
+ export type { SearchRuleFilterSettings };
6
+ //# sourceMappingURL=searchRuleFilterSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchRuleFilterSettings.d.ts","sourceRoot":"","sources":["../../../../../src/rules/storage/filters/search/searchRuleFilterSettings.ts"],"names":[],"mappings":"AAcA,UAAU,wBAAwB;IACjC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,sCAAsC,CAAC,EAAE,OAAO,CAAC;CACjD;AAED,YAAY,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=searchRuleFilterSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchRuleFilterSettings.js","sourceRoot":"","sources":["../../../../../src/rules/storage/filters/search/searchRuleFilterSettings.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { IPAddress } from "@prosopo/types";
2
+ interface SearchRuleFilters {
3
+ userIpAddress?: IPAddress;
4
+ userId?: string;
5
+ clientId?: string;
6
+ }
7
+ export type { SearchRuleFilters };
8
+ //# sourceMappingURL=searchRuleFilters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchRuleFilters.d.ts","sourceRoot":"","sources":["../../../../../src/rules/storage/filters/search/searchRuleFilters.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,UAAU,iBAAiB;IAC1B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=searchRuleFilters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchRuleFilters.js","sourceRoot":"","sources":["../../../../../src/rules/storage/filters/search/searchRuleFilters.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { Rule } from "../rule/rule.js";
2
+ interface RuleRecord extends Rule {
3
+ _id: string;
4
+ }
5
+ export type { RuleRecord };
6
+ //# sourceMappingURL=ruleRecord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleRecord.d.ts","sourceRoot":"","sources":["../../../src/rules/storage/ruleRecord.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,UAAU,UAAW,SAAQ,IAAI;IAChC,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,YAAY,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ruleRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleRecord.js","sourceRoot":"","sources":["../../../src/rules/storage/ruleRecord.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { Rule } from "../rule/rule.js";
2
+ import type { DeleteRuleFilters } from "./filters/deleteRuleFilters.js";
3
+ import type { SearchRuleFilterSettings } from "./filters/search/searchRuleFilterSettings.js";
4
+ import type { SearchRuleFilters } from "./filters/search/searchRuleFilters.js";
5
+ import type { RuleRecord } from "./ruleRecord.js";
6
+ interface RulesStorage {
7
+ insert(record: Rule): Promise<RuleRecord>;
8
+ insertMany(records: Rule[]): Promise<RuleRecord[]>;
9
+ find(filters: SearchRuleFilters, filterSettings?: SearchRuleFilterSettings): Promise<RuleRecord[]>;
10
+ deleteMany(recordFilters: DeleteRuleFilters[]): Promise<void>;
11
+ countRecords(): Promise<number>;
12
+ }
13
+ export type { RulesStorage };
14
+ //# sourceMappingURL=rulesStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rulesStorage.d.ts","sourceRoot":"","sources":["../../../src/rules/storage/rulesStorage.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,UAAU,YAAY;IACrB,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1C,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnD,IAAI,CACH,OAAO,EAAE,iBAAiB,EAC1B,cAAc,CAAC,EAAE,wBAAwB,GACvC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEzB,UAAU,CAAC,aAAa,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAChC;AAED,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rulesStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rulesStorage.js","sourceRoot":"","sources":["../../../src/rules/storage/rulesStorage.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { ArgumentsCamelCase, Argv, CommandModule } from "yargs";
2
+ import type { RulesStorage } from "../../../rules/storage/rulesStorage.js";
3
+ import type { RulesStorageFactory } from "../storageFactory/rulesStorageFactory.js";
4
+ declare abstract class CommandBase implements CommandModule {
5
+ private readonly storageFactory;
6
+ abstract command: string;
7
+ abstract describe: string;
8
+ constructor(storageFactory: RulesStorageFactory);
9
+ builder(yargs: Argv): Argv;
10
+ abstract handler(args: ArgumentsCamelCase): Promise<void>;
11
+ protected createRulesStorage(args: ArgumentsCamelCase): Promise<RulesStorage>;
12
+ }
13
+ export { CommandBase };
14
+ //# sourceMappingURL=commandBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandBase.d.ts","sourceRoot":"","sources":["../../../../src/tests/benchmark/commands/commandBase.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAEpF,uBAAe,WAAY,YAAW,aAAa;IAI/B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAHlD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEU,cAAc,EAAE,mBAAmB;IAEhE,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAQjC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;cAEzC,kBAAkB,CACjC,IAAI,EAAE,kBAAkB,GACtB,OAAO,CAAC,YAAY,CAAC;CASxB;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { ProsopoError } from "@prosopo/common";
2
+ class CommandBase {
3
+ constructor(storageFactory) {
4
+ this.storageFactory = storageFactory;
5
+ }
6
+ builder(yargs) {
7
+ return yargs.option("dbUrl", {
8
+ type: "string",
9
+ describe: "like 'mongodb://localhost:27017'",
10
+ demandOption: true,
11
+ });
12
+ }
13
+ async createRulesStorage(args) {
14
+ const dbUrl = "string" === typeof args.dbUrl ? args.dbUrl : "";
15
+ if ("" === dbUrl) {
16
+ throw new ProsopoError("dbUrl is not set");
17
+ }
18
+ return await this.storageFactory.createRulesStorage(dbUrl);
19
+ }
20
+ }
21
+ export { CommandBase };
22
+ //# sourceMappingURL=commandBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandBase.js","sourceRoot":"","sources":["../../../../src/tests/benchmark/commands/commandBase.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,MAAe,WAAW;IAIzB,YAAoC,cAAmC;QAAnC,mBAAc,GAAd,cAAc,CAAqB;IAAG,CAAC;IAEpE,OAAO,CAAC,KAAW;QACzB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YAC5B,IAAI,EAAE,QAAiB;YACvB,QAAQ,EAAE,kCAAkC;YAC5C,YAAY,EAAE,IAAI;SAClB,CAAC,CAAC;IACJ,CAAC;IAIS,KAAK,CAAC,kBAAkB,CACjC,IAAwB;QAExB,MAAM,KAAK,GAAG,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAE/D,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;CACD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { IPAddress } from "@prosopo/types";
2
+ import type { ArgumentsCamelCase, Argv } from "yargs";
3
+ import type { RulesStorage } from "../../../rules/storage/rulesStorage.js";
4
+ import { CommandBase } from "./commandBase.js";
5
+ declare class MeasureFindCommand extends CommandBase {
6
+ command: string;
7
+ describe: string;
8
+ builder(yargs: Argv): Argv;
9
+ handler: (args: ArgumentsCamelCase) => Promise<void>;
10
+ protected measureFind(targetIpV4AsString: string, targetIpV6AsString: string, rulesStorage: RulesStorage): Promise<void>;
11
+ protected measureRuleFindTime(rulesStorage: RulesStorage, targetIp: IPAddress, totalRulesCount: number): Promise<void>;
12
+ }
13
+ export { MeasureFindCommand };
14
+ //# sourceMappingURL=measureFindCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measureFindCommand.d.ts","sourceRoot":"","sources":["../../../../src/tests/benchmark/commands/measureFindCommand.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,cAAM,kBAAmB,SAAQ,WAAW;IACpC,OAAO,SAAkB;IACzB,QAAQ,SAAkB;IAEjB,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAgBnC,OAAO,SAAgB,kBAAkB,KAAG,OAAO,CAAC,IAAI,CAAC,CAqB9D;cAEc,WAAW,CAC1B,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,YAAY,GACxB,OAAO,CAAC,IAAI,CAAC;cAUA,mBAAmB,CAClC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,SAAS,EACnB,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC;CAuBhB;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,60 @@
1
+ import * as util from "node:util";
2
+ import { ProsopoError } from "@prosopo/common";
3
+ import { Address4, Address6 } from "ip-address";
4
+ import { CommandBase } from "./commandBase.js";
5
+ class MeasureFindCommand extends CommandBase {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.command = "measure-find";
9
+ this.describe = "Measure find";
10
+ this.handler = async (args) => {
11
+ const targetIpV4AsString = "string" === typeof args.targetIpV4 ? args.targetIpV4 : "";
12
+ const targetIpV6AsString = "string" === typeof args.targetIpV6 ? args.targetIpV6 : "";
13
+ if (!targetIpV4AsString) {
14
+ throw new ProsopoError("Target ipv4 is not set");
15
+ }
16
+ if (!targetIpV6AsString) {
17
+ throw new ProsopoError("Target ipv6 is not set");
18
+ }
19
+ const rulesStorage = await this.createRulesStorage(args);
20
+ await this.measureFind(targetIpV4AsString, targetIpV6AsString, rulesStorage);
21
+ };
22
+ }
23
+ builder(yargs) {
24
+ yargs = super.builder(yargs);
25
+ return yargs
26
+ .option("target-ip-v4", {
27
+ type: "string",
28
+ describe: "Target ipV4",
29
+ demandOption: true,
30
+ })
31
+ .option("target-ip-v6", {
32
+ type: "string",
33
+ describe: "Target ipV6",
34
+ demandOption: true,
35
+ });
36
+ }
37
+ async measureFind(targetIpV4AsString, targetIpV6AsString, rulesStorage) {
38
+ const targetIpV4 = new Address4(targetIpV4AsString);
39
+ const targetIpV6 = new Address6(targetIpV6AsString);
40
+ const totalRulesCount = await rulesStorage.countRecords();
41
+ await this.measureRuleFindTime(rulesStorage, targetIpV4, totalRulesCount);
42
+ await this.measureRuleFindTime(rulesStorage, targetIpV6, totalRulesCount);
43
+ }
44
+ async measureRuleFindTime(rulesStorage, targetIp, totalRulesCount) {
45
+ const startTime = Date.now();
46
+ const ipVersion = targetIp instanceof Address4 ? "v4" : "v6";
47
+ const foundRules = await rulesStorage.find({
48
+ userIpAddress: targetIp,
49
+ });
50
+ const endTime = Date.now();
51
+ console.log(`ip${ipVersion} measure`, util.inspect({
52
+ target: targetIp.address,
53
+ foundRules: foundRules,
54
+ spendTimeMs: endTime - startTime,
55
+ totalRulesCount: totalRulesCount,
56
+ }, { depth: null, colors: true }));
57
+ }
58
+ }
59
+ export { MeasureFindCommand };
60
+ //# sourceMappingURL=measureFindCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measureFindCommand.js","sourceRoot":"","sources":["../../../../src/tests/benchmark/commands/measureFindCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Address4, Address6 } from "ip-address";
2
+ import type { ArgumentsCamelCase, Argv } from "yargs";
3
+ import type { RulesStorage } from "../../../rules/storage/rulesStorage.js";
4
+ import { CommandBase } from "./commandBase.js";
5
+ declare class PopulateCommand extends CommandBase {
6
+ command: string;
7
+ describe: string;
8
+ builder(yargs: Argv): Argv;
9
+ handler: (args: ArgumentsCamelCase) => Promise<void>;
10
+ protected createRecords(entitiesCountPerType: number, rulesStorage: RulesStorage): Promise<void>;
11
+ protected createOneRecordForEachType(ipBase: number, rulesStorage: RulesStorage): Promise<void>;
12
+ protected createIpV4SingleRecord(rulesStorage: RulesStorage, address4: Address4): Promise<void>;
13
+ protected createIpV4MaskRecord(rulesStorage: RulesStorage, address4: Address4): Promise<void>;
14
+ protected createIpV6SingleRecord(rulesStorage: RulesStorage, address6: Address6): Promise<void>;
15
+ protected createIpV6MaskRecord(rulesStorage: RulesStorage, address6: Address6): Promise<void>;
16
+ }
17
+ export { PopulateCommand };
18
+ //# sourceMappingURL=populateCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"populateCommand.d.ts","sourceRoot":"","sources":["../../../../src/tests/benchmark/commands/populateCommand.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,cAAM,eAAgB,SAAQ,WAAW;IACjC,OAAO,SAAc;IACrB,QAAQ,SAAmD;IAElD,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IASnC,OAAO,SAAgB,kBAAkB,KAAG,OAAO,CAAC,IAAI,CAAC,CAW9D;cAEc,aAAa,CAC5B,oBAAoB,EAAE,MAAM,EAC5B,YAAY,EAAE,YAAY,GACxB,OAAO,CAAC,IAAI,CAAC;cAUA,0BAA0B,CACzC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,GACxB,OAAO,CAAC,IAAI,CAAC;cAWA,sBAAsB,CACrC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;cAYA,oBAAoB,CACnC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;cAiBA,sBAAsB,CACrC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;cAYA,oBAAoB,CACnC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;CAgBhB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,97 @@
1
+ import { Address4, Address6 } from "ip-address";
2
+ import { CommandBase } from "./commandBase.js";
3
+ class PopulateCommand extends CommandBase {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.command = "populate";
7
+ this.describe = "Populate the database with a bunch of records";
8
+ this.handler = async (args) => {
9
+ const entitiesCountPerTypeAsString = "string" === typeof args.entitiesCountPerType
10
+ ? args.entitiesCountPerType
11
+ : "10";
12
+ const rulesStorage = await this.createRulesStorage(args);
13
+ const entitiesCountPerType = Number.parseInt(entitiesCountPerTypeAsString);
14
+ await this.createRecords(entitiesCountPerType, rulesStorage);
15
+ };
16
+ }
17
+ builder(yargs) {
18
+ yargs = super.builder(yargs);
19
+ return yargs.option("entities-count-per-type", {
20
+ type: "string",
21
+ describe: "Entities count per type",
22
+ });
23
+ }
24
+ async createRecords(entitiesCountPerType, rulesStorage) {
25
+ for (let i = 0; i < entitiesCountPerType; i++) {
26
+ await this.createOneRecordForEachType(i, rulesStorage);
27
+ if (i % 10000 === 0) {
28
+ console.log(`Processed ${i} entities`);
29
+ }
30
+ }
31
+ }
32
+ async createOneRecordForEachType(ipBase, rulesStorage) {
33
+ const ipAsNumeric = BigInt(ipBase);
34
+ const address4 = Address4.fromBigInt(ipAsNumeric);
35
+ const address6 = Address6.fromBigInt(ipAsNumeric);
36
+ await this.createIpV4SingleRecord(rulesStorage, address4);
37
+ await this.createIpV4MaskRecord(rulesStorage, address4);
38
+ await this.createIpV6SingleRecord(rulesStorage, address6);
39
+ await this.createIpV6MaskRecord(rulesStorage, address6);
40
+ }
41
+ async createIpV4SingleRecord(rulesStorage, address4) {
42
+ await rulesStorage.insert({
43
+ isUserBlocked: true,
44
+ userIp: {
45
+ v4: {
46
+ asNumeric: address4.bigInt(),
47
+ asString: address4.address,
48
+ },
49
+ },
50
+ });
51
+ }
52
+ async createIpV4MaskRecord(rulesStorage, address4) {
53
+ await rulesStorage.insert({
54
+ isUserBlocked: true,
55
+ userIp: {
56
+ v4: {
57
+ asNumeric: address4.bigInt(),
58
+ asString: address4.address,
59
+ mask: {
60
+ rangeMinAsNumeric: address4.bigInt(),
61
+ rangeMaxAsNumeric: address4.bigInt(),
62
+ asNumeric: 1,
63
+ },
64
+ },
65
+ },
66
+ });
67
+ }
68
+ async createIpV6SingleRecord(rulesStorage, address6) {
69
+ await rulesStorage.insert({
70
+ isUserBlocked: true,
71
+ userIp: {
72
+ v6: {
73
+ asNumericString: address6.bigInt().toString(),
74
+ asString: address6.address,
75
+ },
76
+ },
77
+ });
78
+ }
79
+ async createIpV6MaskRecord(rulesStorage, address6) {
80
+ await rulesStorage.insert({
81
+ isUserBlocked: true,
82
+ userIp: {
83
+ v6: {
84
+ asNumericString: address6.bigInt().toString(),
85
+ asString: address6.address,
86
+ mask: {
87
+ rangeMinAsNumericString: address6.bigInt().toString(),
88
+ rangeMaxAsNumericString: address6.bigInt().toString(),
89
+ asNumeric: 1,
90
+ },
91
+ },
92
+ },
93
+ });
94
+ }
95
+ }
96
+ export { PopulateCommand };
97
+ //# sourceMappingURL=populateCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"populateCommand.js","sourceRoot":"","sources":["../../../../src/tests/benchmark/commands/populateCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ interface ConnectionCleaner {
2
+ cleanConnection(): Promise<void>;
3
+ }
4
+ export type { ConnectionCleaner };
5
+ //# sourceMappingURL=connectionCleaner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionCleaner.d.ts","sourceRoot":"","sources":["../../../../src/tests/benchmark/connectionCleaner/connectionCleaner.ts"],"names":[],"mappings":"AAcA,UAAU,iBAAiB;IAC1B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=connectionCleaner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionCleaner.js","sourceRoot":"","sources":["../../../../src/tests/benchmark/connectionCleaner/connectionCleaner.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { ConnectionCleaner } from "./connectionCleaner.js";
2
+ declare class MongooseConnectionCleaner implements ConnectionCleaner {
3
+ cleanConnection(): Promise<void>;
4
+ }
5
+ export { MongooseConnectionCleaner };
6
+ //# sourceMappingURL=mongooseConnectionCleaner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongooseConnectionCleaner.d.ts","sourceRoot":"","sources":["../../../../src/tests/benchmark/connectionCleaner/mongooseConnectionCleaner.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,cAAM,yBAA0B,YAAW,iBAAiB;IAC9C,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7C;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import mongoose from "mongoose";
2
+ class MongooseConnectionCleaner {
3
+ async cleanConnection() {
4
+ await mongoose.disconnect();
5
+ }
6
+ }
7
+ export { MongooseConnectionCleaner };
8
+ //# sourceMappingURL=mongooseConnectionCleaner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongooseConnectionCleaner.js","sourceRoot":"","sources":["../../../../src/tests/benchmark/connectionCleaner/mongooseConnectionCleaner.ts"],"names":[],"mappings":"AAcA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,MAAM,yBAAyB;IACvB,KAAK,CAAC,eAAe;QAC3B,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;CACD;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mongooseRulesStorageBenchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongooseRulesStorageBenchmark.d.ts","sourceRoot":"","sources":["../../../src/tests/benchmark/mongooseRulesStorageBenchmark.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { MongooseConnectionCleaner } from "./connectionCleaner/mongooseConnectionCleaner.js";
2
+ import { RulesStorageBenchmark } from "./rulesStorageBenchmark.js";
3
+ import { MongooseRulesStorageFactory } from "./storageFactory/mongooseRulesStorageFactory.js";
4
+ const rulesStorageFactory = new MongooseRulesStorageFactory();
5
+ const connectionCleaner = new MongooseConnectionCleaner();
6
+ const benchmark = new RulesStorageBenchmark(rulesStorageFactory, connectionCleaner);
7
+ await benchmark.processInput();
8
+ //# sourceMappingURL=mongooseRulesStorageBenchmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongooseRulesStorageBenchmark.js","sourceRoot":"","sources":["../../../src/tests/benchmark/mongooseRulesStorageBenchmark.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAE9F,MAAM,mBAAmB,GAAG,IAAI,2BAA2B,EAAE,CAAC;AAC9D,MAAM,iBAAiB,GAAG,IAAI,yBAAyB,EAAE,CAAC;AAE1D,MAAM,SAAS,GAAG,IAAI,qBAAqB,CAC1C,mBAAmB,EACnB,iBAAiB,CACjB,CAAC;AAEF,MAAM,SAAS,CAAC,YAAY,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type CommandModule } from "yargs";
2
+ import type { ConnectionCleaner } from "./connectionCleaner/connectionCleaner.js";
3
+ import type { RulesStorageFactory } from "./storageFactory/rulesStorageFactory.js";
4
+ declare class RulesStorageBenchmark {
5
+ private readonly rulesStorageFactory;
6
+ private readonly connectionCleaner;
7
+ constructor(rulesStorageFactory: RulesStorageFactory, connectionCleaner: ConnectionCleaner);
8
+ processInput(): Promise<void>;
9
+ protected getCommands(): CommandModule[];
10
+ }
11
+ export { RulesStorageBenchmark };
12
+ //# sourceMappingURL=rulesStorageBenchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rulesStorageBenchmark.d.ts","sourceRoot":"","sources":["../../../src/tests/benchmark/rulesStorageBenchmark.ts"],"names":[],"mappings":"AAcA,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAIlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAEnF,cAAM,qBAAqB;IAEzB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBADjB,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,iBAAiB;IAGzC,YAAY;IAsBzB,SAAS,CAAC,WAAW,IAAI,aAAa,EAAE;CAMxC;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,30 @@
1
+ import yargs from "yargs";
2
+ import { hideBin } from "yargs/helpers";
3
+ import { MeasureFindCommand } from "./commands/measureFindCommand.js";
4
+ import { PopulateCommand } from "./commands/populateCommand.js";
5
+ class RulesStorageBenchmark {
6
+ constructor(rulesStorageFactory, connectionCleaner) {
7
+ this.rulesStorageFactory = rulesStorageFactory;
8
+ this.connectionCleaner = connectionCleaner;
9
+ }
10
+ async processInput() {
11
+ const commandManager = yargs(hideBin(process.argv)).usage("Usage: $0 [global options] <command> [options]");
12
+ const commands = this.getCommands();
13
+ for (const command of commands) {
14
+ commandManager.command(command);
15
+ }
16
+ const startTimestamp = Date.now();
17
+ await commandManager.parse();
18
+ const endTimestamp = Date.now();
19
+ console.log(`Execution took ${endTimestamp - startTimestamp}ms`);
20
+ await this.connectionCleaner.cleanConnection();
21
+ }
22
+ getCommands() {
23
+ return [
24
+ new PopulateCommand(this.rulesStorageFactory),
25
+ new MeasureFindCommand(this.rulesStorageFactory),
26
+ ];
27
+ }
28
+ }
29
+ export { RulesStorageBenchmark };
30
+ //# sourceMappingURL=rulesStorageBenchmark.js.map