@prosopo/user-access-policy 2.4.1 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/blacklistInspector.d.ts +1 -1
  2. package/dist/blacklistInspector.d.ts.map +1 -1
  3. package/dist/imageCaptchaConfigResolver.d.ts +2 -2
  4. package/dist/imageCaptchaConfigResolver.d.ts.map +1 -1
  5. package/dist/index.d.ts +2 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.d.ts +3 -0
  9. package/dist/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.d.ts.map +1 -1
  10. package/dist/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.js +1 -0
  11. package/dist/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.js.map +1 -1
  12. package/dist/rules/api/insertMany/apiInsertManyRulesArgsSchema.d.ts +90 -1
  13. package/dist/rules/api/insertMany/apiInsertManyRulesArgsSchema.d.ts.map +1 -1
  14. package/dist/rules/api/insertMany/apiInsertManyRulesArgsSchema.js +22 -1
  15. package/dist/rules/api/insertMany/apiInsertManyRulesArgsSchema.js.map +1 -1
  16. package/dist/rules/api/insertMany/apiInsertManyRulesEndpoint.d.ts +3 -0
  17. package/dist/rules/api/insertMany/apiInsertManyRulesEndpoint.d.ts.map +1 -1
  18. package/dist/rules/api/insertMany/apiInsertManyRulesEndpoint.js +123 -4
  19. package/dist/rules/api/insertMany/apiInsertManyRulesEndpoint.js.map +1 -1
  20. package/dist/rules/blacklistRulesInspector.d.ts +1 -1
  21. package/dist/rules/blacklistRulesInspector.d.ts.map +1 -1
  22. package/dist/rules/blacklistRulesInspector.js +18 -9
  23. package/dist/rules/blacklistRulesInspector.js.map +1 -1
  24. package/dist/rules/imageCaptchaConfigRulesResolver.d.ts +4 -4
  25. package/dist/rules/imageCaptchaConfigRulesResolver.d.ts.map +1 -1
  26. package/dist/rules/imageCaptchaConfigRulesResolver.js +19 -16
  27. package/dist/rules/imageCaptchaConfigRulesResolver.js.map +1 -1
  28. package/dist/rules/mongoose/indexes/rulePerformanceMongooseIndexes.d.ts.map +1 -1
  29. package/dist/rules/mongoose/indexes/rulePerformanceMongooseIndexes.js +24 -1
  30. package/dist/rules/mongoose/indexes/rulePerformanceMongooseIndexes.js.map +1 -1
  31. package/dist/rules/mongoose/rulesMongooseStorage.d.ts.map +1 -1
  32. package/dist/rules/mongoose/rulesMongooseStorage.js +5 -3
  33. package/dist/rules/mongoose/rulesMongooseStorage.js.map +1 -1
  34. package/dist/rules/mongoose/schemas/ruleMongooseSchema.d.ts.map +1 -1
  35. package/dist/rules/mongoose/schemas/ruleMongooseSchema.js +13 -4
  36. package/dist/rules/mongoose/schemas/ruleMongooseSchema.js.map +1 -1
  37. package/dist/rules/rule/rule.d.ts +1 -0
  38. package/dist/rules/rule/rule.d.ts.map +1 -1
  39. package/dist/rules/storage/filters/deleteRuleFilters.d.ts +1 -0
  40. package/dist/rules/storage/filters/deleteRuleFilters.d.ts.map +1 -1
  41. package/dist/rules/storage/filters/search/searchRuleFilters.d.ts +1 -0
  42. package/dist/rules/storage/filters/search/searchRuleFilters.d.ts.map +1 -1
  43. package/dist/tests/rules/ImageCaptchaConfigRulesResolver.test.js +3 -3
  44. package/dist/tests/rules/ImageCaptchaConfigRulesResolver.test.js.map +1 -1
  45. package/dist/tests/rules/blacklistRulesInspector.unit.test.js +4 -4
  46. package/dist/tests/rules/blacklistRulesInspector.unit.test.js.map +1 -1
  47. package/package.json +5 -5
  48. package/vite.cjs.config.ts +1 -1
  49. package/vite.test.config.ts +1 -1
@@ -1,6 +1,6 @@
1
1
  import type { IPAddress } from "@prosopo/types";
2
2
  interface BlacklistInspector {
3
- isUserBlacklisted(clientId: string, userIpAddress: IPAddress, userId: string): Promise<boolean>;
3
+ isUserBlacklisted(clientId: string, userIpAddress: IPAddress, ja4: string, userId: string): Promise<boolean>;
4
4
  }
5
5
  export type { BlacklistInspector };
6
6
  //# sourceMappingURL=blacklistInspector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blacklistInspector.d.ts","sourceRoot":"","sources":["../src/blacklistInspector.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,UAAU,kBAAkB;IAC3B,iBAAiB,CAChB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAAC;CACpB;AAED,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"blacklistInspector.d.ts","sourceRoot":"","sources":["../src/blacklistInspector.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,UAAU,kBAAkB;IAC3B,iBAAiB,CAChB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,EACxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAAC;CACpB;AAED,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { IPAddress, ProsopoCaptchaCountConfigSchemaOutput } from "@prosopo/types";
2
2
  interface ImageCaptchaConfigResolver {
3
- isConfigDefined(clientId: string, userIpAddress: IPAddress, userId: string): Promise<boolean>;
4
- resolveConfig(defaults: ProsopoCaptchaCountConfigSchemaOutput, userIpAddress: IPAddress, userId: string, clientId: string): Promise<ProsopoCaptchaCountConfigSchemaOutput>;
3
+ isConfigDefined(clientId: string, userIpAddress: IPAddress, ja4: string, userId: string): Promise<boolean>;
4
+ resolveConfig(defaults: ProsopoCaptchaCountConfigSchemaOutput, userIpAddress: IPAddress, ja4: string, userId: string, clientId: string): Promise<ProsopoCaptchaCountConfigSchemaOutput>;
5
5
  }
6
6
  export type { ImageCaptchaConfigResolver };
7
7
  //# sourceMappingURL=imageCaptchaConfigResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"imageCaptchaConfigResolver.d.ts","sourceRoot":"","sources":["../src/imageCaptchaConfigResolver.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACX,SAAS,EACT,qCAAqC,EACrC,MAAM,gBAAgB,CAAC;AAExB,UAAU,0BAA0B;IACnC,eAAe,CACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,aAAa,CACZ,QAAQ,EAAE,qCAAqC,EAC/C,aAAa,EAAE,SAAS,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,qCAAqC,CAAC,CAAC;CAClD;AAED,YAAY,EAAE,0BAA0B,EAAE,CAAC"}
1
+ {"version":3,"file":"imageCaptchaConfigResolver.d.ts","sourceRoot":"","sources":["../src/imageCaptchaConfigResolver.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACX,SAAS,EACT,qCAAqC,EACrC,MAAM,gBAAgB,CAAC;AAExB,UAAU,0BAA0B;IACnC,eAAe,CACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,EACxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,aAAa,CACZ,QAAQ,EAAE,qCAAqC,EAC/C,aAAa,EAAE,SAAS,EACxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,qCAAqC,CAAC,CAAC;CAClD;AAED,YAAY,EAAE,0BAA0B,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ import type { Model } from "mongoose";
4
4
  import type { BlacklistInspector } from "./blacklistInspector.js";
5
5
  import { apiRulePaths } from "./rules/api/apiRulePaths.js";
6
6
  import { getExpressApiRuleRateLimits } from "./rules/api/getExpressApiRuleRateLimits.js";
7
+ import type { ApiInsertManyRulesArgsOutputSchema, ApiInsertManyRulesArgsSchema } from "./rules/api/insertMany/apiInsertManyRulesArgsSchema.js";
7
8
  import { ImageCaptchaConfigRulesResolver } from "./rules/imageCaptchaConfigRulesResolver.js";
8
9
  import { getRuleMongooseSchema } from "./rules/mongoose/schemas/getRuleMongooseSchema.js";
9
10
  import type { Rule } from "./rules/rule/rule.js";
@@ -12,5 +13,5 @@ declare const createBlacklistInspector: (rulesStorage: RulesStorage, logger: Log
12
13
  declare const createImageCaptchaConfigResolver: (rulesStorage: RulesStorage, logger: Logger) => ImageCaptchaConfigRulesResolver;
13
14
  declare const createApiRuleRoutesProvider: (rulesStorage: RulesStorage) => ApiRoutesProvider;
14
15
  declare const createMongooseRulesStorage: (logger: Logger, readingModel: Model<Rule> | null, writingModel?: Model<Rule> | null) => RulesStorage;
15
- export { type Rule, type RulesStorage, type BlacklistInspector, createMongooseRulesStorage, createImageCaptchaConfigResolver, createBlacklistInspector, createApiRuleRoutesProvider, getRuleMongooseSchema, getExpressApiRuleRateLimits, apiRulePaths, };
16
+ export { type Rule, type RulesStorage, type BlacklistInspector, type ApiInsertManyRulesArgsSchema, type ApiInsertManyRulesArgsOutputSchema, createMongooseRulesStorage, createImageCaptchaConfigResolver, createBlacklistInspector, createApiRuleRoutesProvider, getRuleMongooseSchema, getExpressApiRuleRateLimits, apiRulePaths, };
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAEzF,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAE7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,QAAA,MAAM,wBAAwB,iBACf,YAAY,UAClB,MAAM,KACZ,kBAEF,CAAC;AAEF,QAAA,MAAM,gCAAgC,iBACvB,YAAY,UAClB,MAAM,KACZ,+BAEF,CAAC;AAEF,QAAA,MAAM,2BAA2B,iBAClB,YAAY,KACxB,iBAEF,CAAC;AAEF,QAAA,MAAM,0BAA0B,WACvB,MAAM,gBACA,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,iBAClB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,KAC9B,YAEF,CAAC;AAEF,OAAO,EACN,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,0BAA0B,EAC1B,gCAAgC,EAChC,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,GACZ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,KAAK,EACX,kCAAkC,EAClC,4BAA4B,EAC5B,MAAM,wDAAwD,CAAC;AAEhE,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAE7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,QAAA,MAAM,wBAAwB,iBACf,YAAY,UAClB,MAAM,KACZ,kBAEF,CAAC;AAEF,QAAA,MAAM,gCAAgC,iBACvB,YAAY,UAClB,MAAM,KACZ,+BAEF,CAAC;AAEF,QAAA,MAAM,2BAA2B,iBAClB,YAAY,KACxB,iBAEF,CAAC;AAEF,QAAA,MAAM,0BAA0B,WACvB,MAAM,gBACA,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,iBAClB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,KAC9B,YAEF,CAAC;AAEF,OAAO,EACN,KAAK,IAAI,EACT,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,4BAA4B,EACjC,KAAK,kCAAkC,EACvC,0BAA0B,EAC1B,gCAAgC,EAChC,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,GACZ,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAI1F,MAAM,wBAAwB,GAAG,CAChC,YAA0B,EAC1B,MAAc,EACO,EAAE;IACvB,OAAO,IAAI,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,gCAAgC,GAAG,CACxC,YAA0B,EAC1B,MAAc,EACoB,EAAE;IACpC,OAAO,IAAI,+BAA+B,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CACnC,YAA0B,EACN,EAAE;IACtB,OAAO,IAAI,qBAAqB,CAAC,YAAY,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAClC,MAAc,EACd,YAAgC,EAChC,eAAmC,IAAI,EACxB,EAAE;IACjB,OAAO,IAAI,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,OAAO,EAIN,0BAA0B,EAC1B,gCAAgC,EAChC,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,GACZ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAKzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAI1F,MAAM,wBAAwB,GAAG,CAChC,YAA0B,EAC1B,MAAc,EACO,EAAE;IACvB,OAAO,IAAI,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,gCAAgC,GAAG,CACxC,YAA0B,EAC1B,MAAc,EACoB,EAAE;IACpC,OAAO,IAAI,+BAA+B,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CACnC,YAA0B,EACN,EAAE;IACtB,OAAO,IAAI,qBAAqB,CAAC,YAAY,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAClC,MAAc,EACd,YAAgC,EAChC,eAAmC,IAAI,EACxB,EAAE;IACjB,OAAO,IAAI,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,OAAO,EAMN,0BAA0B,EAC1B,gCAAgC,EAChC,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,GACZ,CAAC"}
@@ -107,6 +107,7 @@ declare const apiDeleteManyRulesArgsSchema: import("zod").ZodArray<import("zod")
107
107
  } | undefined;
108
108
  }>>;
109
109
  userId: import("zod").ZodOptional<import("zod").ZodString>;
110
+ ja4: import("zod").ZodOptional<import("zod").ZodString>;
110
111
  }, "strip", import("zod").ZodTypeAny, {
111
112
  clientId?: string | undefined;
112
113
  userIp?: {
@@ -130,6 +131,7 @@ declare const apiDeleteManyRulesArgsSchema: import("zod").ZodArray<import("zod")
130
131
  } | undefined;
131
132
  } | undefined;
132
133
  userId?: string | undefined;
134
+ ja4?: string | undefined;
133
135
  }, {
134
136
  clientId?: string | undefined;
135
137
  userIp?: {
@@ -153,6 +155,7 @@ declare const apiDeleteManyRulesArgsSchema: import("zod").ZodArray<import("zod")
153
155
  } | undefined;
154
156
  } | undefined;
155
157
  userId?: string | undefined;
158
+ ja4?: string | undefined;
156
159
  }>, "many">;
157
160
  type ApiDeleteManyRulesArgsSchema = typeof apiDeleteManyRulesArgsSchema;
158
161
  export { apiDeleteManyRulesArgsSchema, type ApiDeleteManyRulesArgsSchema };
@@ -1 +1 @@
1
- {"version":3,"file":"apiDeleteManyRulesArgsSchema.d.ts","sourceRoot":"","sources":["../../../../src/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.ts"],"names":[],"mappings":"AAiBA,QAAA,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAMjC,CAAC;AAEF,KAAK,4BAA4B,GAAG,OAAO,4BAA4B,CAAC;AAExE,OAAO,EAAE,4BAA4B,EAAE,KAAK,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"apiDeleteManyRulesArgsSchema.d.ts","sourceRoot":"","sources":["../../../../src/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.ts"],"names":[],"mappings":"AAiBA,QAAA,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAOjC,CAAC;AAEF,KAAK,4BAA4B,GAAG,OAAO,4BAA4B,CAAC;AAExE,OAAO,EAAE,4BAA4B,EAAE,KAAK,4BAA4B,EAAE,CAAC"}
@@ -4,6 +4,7 @@ const apiDeleteManyRulesArgsSchema = array(object({
4
4
  clientId: string().optional(),
5
5
  userIp: ruleIpSchema.optional(),
6
6
  userId: string().optional(),
7
+ ja4: string().optional(),
7
8
  }));
8
9
  export { apiDeleteManyRulesArgsSchema };
9
10
  //# sourceMappingURL=apiDeleteManyRulesArgsSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiDeleteManyRulesArgsSchema.js","sourceRoot":"","sources":["../../../../src/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,4BAA4B,GAAG,KAAK,CACzC,MAAM,CAAC;IACN,QAAQ,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC,CACF,CAAC;AAIF,OAAO,EAAE,4BAA4B,EAAqC,CAAC"}
1
+ {"version":3,"file":"apiDeleteManyRulesArgsSchema.js","sourceRoot":"","sources":["../../../../src/rules/api/deleteMany/apiDeleteManyRulesArgsSchema.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,4BAA4B,GAAG,KAAK,CACzC,MAAM,CAAC;IACN,QAAQ,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,GAAG,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxB,CAAC,CACF,CAAC;AAIF,OAAO,EAAE,4BAA4B,EAAqC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type output } from "zod";
1
2
  declare const apiInsertManyRulesArgsSchema: import("zod").ZodObject<{
2
3
  isUserBlocked: import("zod").ZodBoolean;
3
4
  clientId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -12,7 +13,60 @@ declare const apiInsertManyRulesArgsSchema: import("zod").ZodObject<{
12
13
  v4?: string[] | undefined;
13
14
  v6?: string[] | undefined;
14
15
  }>;
16
+ userIpMasks: import("zod").ZodObject<{
17
+ v4: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
18
+ min: import("zod").ZodString;
19
+ max: import("zod").ZodString;
20
+ }, "strip", import("zod").ZodTypeAny, {
21
+ min: string;
22
+ max: string;
23
+ }, {
24
+ min: string;
25
+ max: string;
26
+ }>, "many">>;
27
+ v6: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
28
+ min: import("zod").ZodString;
29
+ max: import("zod").ZodString;
30
+ }, "strip", import("zod").ZodTypeAny, {
31
+ min: string;
32
+ max: string;
33
+ }, {
34
+ min: string;
35
+ max: string;
36
+ }>, "many">>;
37
+ }, "strip", import("zod").ZodTypeAny, {
38
+ v4?: {
39
+ min: string;
40
+ max: string;
41
+ }[] | undefined;
42
+ v6?: {
43
+ min: string;
44
+ max: string;
45
+ }[] | undefined;
46
+ }, {
47
+ v4?: {
48
+ min: string;
49
+ max: string;
50
+ }[] | undefined;
51
+ v6?: {
52
+ min: string;
53
+ max: string;
54
+ }[] | undefined;
55
+ }>;
15
56
  userIds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
57
+ ja4s: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
58
+ userIp: import("zod").ZodOptional<import("zod").ZodObject<{
59
+ v4: import("zod").ZodOptional<import("zod").ZodString>;
60
+ v6: import("zod").ZodOptional<import("zod").ZodString>;
61
+ }, "strip", import("zod").ZodTypeAny, {
62
+ v4?: string | undefined;
63
+ v6?: string | undefined;
64
+ }, {
65
+ v4?: string | undefined;
66
+ v6?: string | undefined;
67
+ }>>;
68
+ userId: import("zod").ZodOptional<import("zod").ZodString>;
69
+ ja4: import("zod").ZodOptional<import("zod").ZodString>;
16
70
  config: import("zod").ZodOptional<import("zod").ZodObject<{
17
71
  imageCaptcha: import("zod").ZodOptional<import("zod").ZodObject<{
18
72
  solvedCount: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -42,9 +96,26 @@ declare const apiInsertManyRulesArgsSchema: import("zod").ZodObject<{
42
96
  v4?: string[] | undefined;
43
97
  v6?: string[] | undefined;
44
98
  };
99
+ userIpMasks: {
100
+ v4?: {
101
+ min: string;
102
+ max: string;
103
+ }[] | undefined;
104
+ v6?: {
105
+ min: string;
106
+ max: string;
107
+ }[] | undefined;
108
+ };
45
109
  clientId?: string | undefined;
110
+ userIp?: {
111
+ v4?: string | undefined;
112
+ v6?: string | undefined;
113
+ } | undefined;
114
+ userId?: string | undefined;
115
+ ja4?: string | undefined;
46
116
  description?: string | undefined;
47
117
  userIds?: string[] | undefined;
118
+ ja4s?: string[] | undefined;
48
119
  config?: {
49
120
  imageCaptcha?: {
50
121
  solvedCount?: number | undefined;
@@ -58,9 +129,26 @@ declare const apiInsertManyRulesArgsSchema: import("zod").ZodObject<{
58
129
  v4?: string[] | undefined;
59
130
  v6?: string[] | undefined;
60
131
  };
132
+ userIpMasks: {
133
+ v4?: {
134
+ min: string;
135
+ max: string;
136
+ }[] | undefined;
137
+ v6?: {
138
+ min: string;
139
+ max: string;
140
+ }[] | undefined;
141
+ };
61
142
  clientId?: string | undefined;
143
+ userIp?: {
144
+ v4?: string | undefined;
145
+ v6?: string | undefined;
146
+ } | undefined;
147
+ userId?: string | undefined;
148
+ ja4?: string | undefined;
62
149
  description?: string | undefined;
63
150
  userIds?: string[] | undefined;
151
+ ja4s?: string[] | undefined;
64
152
  config?: {
65
153
  imageCaptcha?: {
66
154
  solvedCount?: number | undefined;
@@ -70,5 +158,6 @@ declare const apiInsertManyRulesArgsSchema: import("zod").ZodObject<{
70
158
  score?: number | undefined;
71
159
  }>;
72
160
  type ApiInsertManyRulesArgsSchema = typeof apiInsertManyRulesArgsSchema;
73
- export { apiInsertManyRulesArgsSchema, type ApiInsertManyRulesArgsSchema };
161
+ type ApiInsertManyRulesArgsOutputSchema = output<typeof apiInsertManyRulesArgsSchema>;
162
+ export { apiInsertManyRulesArgsSchema, type ApiInsertManyRulesArgsSchema, type ApiInsertManyRulesArgsOutputSchema, };
74
163
  //# sourceMappingURL=apiInsertManyRulesArgsSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiInsertManyRulesArgsSchema.d.ts","sourceRoot":"","sources":["../../../../src/rules/api/insertMany/apiInsertManyRulesArgsSchema.ts"],"names":[],"mappings":"AAiBA,QAAA,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWhC,CAAC;AAEH,KAAK,4BAA4B,GAAG,OAAO,4BAA4B,CAAC;AAExE,OAAO,EAAE,4BAA4B,EAAE,KAAK,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"apiInsertManyRulesArgsSchema.d.ts","sourceRoot":"","sources":["../../../../src/rules/api/insertMany/apiInsertManyRulesArgsSchema.ts"],"names":[],"mappings":"AAcA,OAAO,EAA2B,KAAK,MAAM,EAAU,MAAM,KAAK,CAAC;AAGnE,QAAA,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiChC,CAAC;AAEH,KAAK,4BAA4B,GAAG,OAAO,4BAA4B,CAAC;AAExE,KAAK,kCAAkC,GAAG,MAAM,CAC/C,OAAO,4BAA4B,CACnC,CAAC;AAEF,OAAO,EACN,4BAA4B,EAC5B,KAAK,4BAA4B,EACjC,KAAK,kCAAkC,GACvC,CAAC"}
@@ -8,9 +8,30 @@ const apiInsertManyRulesArgsSchema = object({
8
8
  v4: string().array().optional(),
9
9
  v6: string().array().optional(),
10
10
  }),
11
+ userIpMasks: object({
12
+ v4: object({
13
+ min: string(),
14
+ max: string(),
15
+ })
16
+ .array()
17
+ .optional(),
18
+ v6: object({
19
+ min: string(),
20
+ max: string(),
21
+ })
22
+ .array()
23
+ .optional(),
24
+ }),
11
25
  userIds: string().array().optional(),
26
+ ja4s: string().array().optional(),
27
+ userIp: object({
28
+ v4: string().optional(),
29
+ v6: string().optional(),
30
+ }).optional(),
31
+ userId: string().optional(),
32
+ ja4: string().optional(),
12
33
  config: ruleConfigSchema.optional(),
13
34
  score: number().optional(),
14
35
  });
15
- export { apiInsertManyRulesArgsSchema };
36
+ export { apiInsertManyRulesArgsSchema, };
16
37
  //# sourceMappingURL=apiInsertManyRulesArgsSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiInsertManyRulesArgsSchema.js","sourceRoot":"","sources":["../../../../src/rules/api/insertMany/apiInsertManyRulesArgsSchema.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,MAAM,4BAA4B,GAAG,MAAM,CAAC;IAC3C,aAAa,EAAE,OAAO,EAAE;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,MAAM,CAAC;QACf,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;QAC/B,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC1B,CAAC,CAAC;AAIH,OAAO,EAAE,4BAA4B,EAAqC,CAAC"}
1
+ {"version":3,"file":"apiInsertManyRulesArgsSchema.js","sourceRoot":"","sources":["../../../../src/rules/api/insertMany/apiInsertManyRulesArgsSchema.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAe,MAAM,EAAE,MAAM,KAAK,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,MAAM,4BAA4B,GAAG,MAAM,CAAC;IAC3C,aAAa,EAAE,OAAO,EAAE;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,MAAM,CAAC;QACf,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;QAC/B,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;QACnB,EAAE,EAAE,MAAM,CAAC;YACV,GAAG,EAAE,MAAM,EAAE;YACb,GAAG,EAAE,MAAM,EAAE;SACb,CAAC;aACA,KAAK,EAAE;aACP,QAAQ,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;YACV,GAAG,EAAE,MAAM,EAAE;YACb,GAAG,EAAE,MAAM,EAAE;SACb,CAAC;aACA,KAAK,EAAE;aACP,QAAQ,EAAE;KACZ,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IAEjC,MAAM,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;QACvB,EAAE,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;KACvB,CAAC,CAAC,QAAQ,EAAE;IACb,MAAM,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,GAAG,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC1B,CAAC,CAAC;AAQH,OAAO,EACN,4BAA4B,GAG5B,CAAC"}
@@ -9,7 +9,10 @@ declare class ApiInsertManyRulesEndpoint implements ApiEndpoint<ApiInsertManyRul
9
9
  processRequest(args: z.infer<ApiInsertManyRulesArgsSchema>): Promise<ApiEndpointResponse>;
10
10
  getRequestArgsSchema(): ApiInsertManyRulesArgsSchema;
11
11
  protected getUserIpRules(args: z.infer<ApiInsertManyRulesArgsSchema>): Rule[];
12
+ protected getUserIPMaskRules(args: z.infer<ApiInsertManyRulesArgsSchema>): Rule[];
12
13
  protected getUserIdRules(args: z.infer<ApiInsertManyRulesArgsSchema>): Rule[];
14
+ protected getJa4Rules(args: z.infer<ApiInsertManyRulesArgsSchema>): Rule[];
15
+ protected getSingleRule(args: z.infer<ApiInsertManyRulesArgsSchema>): Rule | undefined;
13
16
  }
14
17
  export { ApiInsertManyRulesEndpoint };
15
18
  //# sourceMappingURL=apiInsertManyRulesEndpoint.d.ts.map
@@ -1 +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;AAE5B,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,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;IAyCT,SAAS,CAAC,cAAc,CACvB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,GACzC,IAAI,EAAE;CAkBT;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
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;AAE5B,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,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;IAgCxB,oBAAoB,IAAI,4BAA4B;IAI3D,SAAS,CAAC,cAAc,CACvB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,GACzC,IAAI,EAAE;IAwCT,SAAS,CAAC,kBAAkB,CAC3B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,GACzC,IAAI,EAAE;IAkDT,SAAS,CAAC,cAAc,CACvB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,GACzC,IAAI,EAAE;IAmBT,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,GAAG,IAAI,EAAE;IAmB1E,SAAS,CAAC,aAAa,CACtB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,GACzC,IAAI,GAAG,SAAS;CAqCnB;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
@@ -7,14 +7,33 @@ class ApiInsertManyRulesEndpoint {
7
7
  this.rulesStorage = rulesStorage;
8
8
  }
9
9
  async processRequest(args) {
10
+ const singleRule = this.getSingleRule(args);
10
11
  const rules = [
11
12
  ...this.getUserIpRules(args),
13
+ ...this.getUserIPMaskRules(args),
12
14
  ...this.getUserIdRules(args),
15
+ ...this.getJa4Rules(args),
16
+ ...(singleRule ? [singleRule] : []),
13
17
  ];
14
- await this.rulesStorage.insertMany(rules);
15
- return {
16
- status: ApiEndpointResponseStatus.SUCCESS,
17
- };
18
+ return new Promise((resolve) => {
19
+ this.rulesStorage
20
+ .insertMany(rules)
21
+ .then(() => {
22
+ resolve({
23
+ status: ApiEndpointResponseStatus.SUCCESS,
24
+ });
25
+ })
26
+ .catch(() => {
27
+ resolve({
28
+ status: ApiEndpointResponseStatus.FAIL,
29
+ });
30
+ });
31
+ setTimeout(() => {
32
+ resolve({
33
+ status: ApiEndpointResponseStatus.PROCESSING,
34
+ });
35
+ }, 5000);
36
+ });
18
37
  }
19
38
  getRequestArgsSchema() {
20
39
  return apiInsertManyRulesArgsSchema;
@@ -56,6 +75,55 @@ class ApiInsertManyRulesEndpoint {
56
75
  }
57
76
  return rules;
58
77
  }
78
+ getUserIPMaskRules(args) {
79
+ const rules = [];
80
+ const userIpMasks = args.userIpMasks || [];
81
+ for (const userMask of userIpMasks.v4 || []) {
82
+ const min = new Address4(userMask.min);
83
+ const max = new Address4(userMask.max);
84
+ rules.push({
85
+ userIp: ruleIpSchema.parse({
86
+ v4: {
87
+ asNumeric: min.bigInt(),
88
+ asString: min.address,
89
+ mask: {
90
+ rangeMinAsNumeric: min.bigInt(),
91
+ rangeMaxAsNumeric: max.bigInt(),
92
+ asNumeric: Number(min.bigInt()),
93
+ },
94
+ },
95
+ }),
96
+ isUserBlocked: args.isUserBlocked,
97
+ description: args.description,
98
+ clientId: args.clientId,
99
+ config: args.config,
100
+ score: args.score,
101
+ });
102
+ }
103
+ for (const userMask of userIpMasks.v6 || []) {
104
+ const min = new Address6(userMask.min);
105
+ const max = new Address6(userMask.max);
106
+ rules.push({
107
+ userIp: ruleIpSchema.parse({
108
+ v6: {
109
+ asNumeric: min.bigInt(),
110
+ asString: min.address,
111
+ mask: {
112
+ rangeMinAsNumeric: min.bigInt(),
113
+ rangeMaxAsNumeric: max.bigInt(),
114
+ asNumeric: Number(min.bigInt()),
115
+ },
116
+ },
117
+ }),
118
+ isUserBlocked: args.isUserBlocked,
119
+ description: args.description,
120
+ clientId: args.clientId,
121
+ config: args.config,
122
+ score: args.score,
123
+ });
124
+ }
125
+ return rules;
126
+ }
59
127
  getUserIdRules(args) {
60
128
  const rules = [];
61
129
  const userIds = args.userIds || [];
@@ -71,6 +139,57 @@ class ApiInsertManyRulesEndpoint {
71
139
  }
72
140
  return rules;
73
141
  }
142
+ getJa4Rules(args) {
143
+ const rules = [];
144
+ const ja4s = args.ja4s || [];
145
+ for (const ja4 of ja4s) {
146
+ rules.push({
147
+ ja4: ja4,
148
+ isUserBlocked: args.isUserBlocked,
149
+ description: args.description,
150
+ clientId: args.clientId,
151
+ config: args.config,
152
+ score: args.score,
153
+ });
154
+ }
155
+ return rules;
156
+ }
157
+ getSingleRule(args) {
158
+ if (!args.userIp && !args.userId && !args.ja4) {
159
+ return undefined;
160
+ }
161
+ const rule = {
162
+ isUserBlocked: args.isUserBlocked,
163
+ ...(args.description && { description: args.description }),
164
+ ...(args.clientId && { clientId: args.clientId }),
165
+ ...(args.config && { config: args.config }),
166
+ ...(args.score && { score: args.score }),
167
+ ...(args.ja4 && { ja4: args.ja4 }),
168
+ ...(args.userId && { userId: args.userId }),
169
+ };
170
+ if (args.userIp) {
171
+ const userIp = args.userIp;
172
+ if (userIp.v4) {
173
+ const ipAddress = new Address4(userIp.v4);
174
+ rule.userIp = ruleIpSchema.parse({
175
+ v4: {
176
+ asNumeric: ipAddress.bigInt(),
177
+ asString: ipAddress.address,
178
+ },
179
+ });
180
+ }
181
+ if (userIp.v6) {
182
+ const ipAddress = new Address6(userIp.v6);
183
+ rule.userIp = ruleIpSchema.parse({
184
+ v6: {
185
+ asNumeric: ipAddress.bigInt(),
186
+ asString: ipAddress.address,
187
+ },
188
+ });
189
+ }
190
+ }
191
+ return rule;
192
+ }
74
193
  }
75
194
  export { ApiInsertManyRulesEndpoint };
76
195
  //# sourceMappingURL=apiInsertManyRulesEndpoint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiInsertManyRulesEndpoint.js","sourceRoot":"","sources":["../../../../src/rules/api/insertMany/apiInsertManyRulesEndpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiInsertManyRulesEndpoint.js","sourceRoot":"","sources":["../../../../src/rules/api/insertMany/apiInsertManyRulesEndpoint.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ declare class BlacklistRulesInspector implements BlacklistInspector {
6
6
  private readonly rulesStorage;
7
7
  private readonly logger;
8
8
  constructor(rulesStorage: RulesStorage, logger: Logger);
9
- isUserBlacklisted(clientId: string, userIpAddress: IPAddress, userId: string): Promise<boolean>;
9
+ isUserBlacklisted(clientId: string, userIpAddress: IPAddress, ja4: string, userId: string): Promise<boolean>;
10
10
  }
11
11
  export { BlacklistRulesInspector };
12
12
  //# sourceMappingURL=blacklistRulesInspector.d.ts.map
@@ -1 +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"}
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,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;CAuCnB;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -3,10 +3,17 @@ class BlacklistRulesInspector {
3
3
  this.rulesStorage = rulesStorage;
4
4
  this.logger = logger;
5
5
  }
6
- async isUserBlacklisted(clientId, userIpAddress, userId) {
6
+ async isUserBlacklisted(clientId, userIpAddress, ja4, userId) {
7
+ this.logger.debug({
8
+ clientId: clientId,
9
+ userIpAddress: userIpAddress,
10
+ ja4: ja4,
11
+ userId: userId,
12
+ });
7
13
  const accessRules = await this.rulesStorage.find({
8
14
  clientId: clientId,
9
15
  userIpAddress: userIpAddress,
16
+ ja4: ja4,
10
17
  userId: userId,
11
18
  }, {
12
19
  includeRecordsWithPartialFilterMatches: true,
@@ -14,14 +21,16 @@ class BlacklistRulesInspector {
14
21
  });
15
22
  const blockingRules = accessRules.filter((accessRule) => accessRule.isUserBlocked);
16
23
  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
- });
24
+ if (userBlacklisted) {
25
+ this.logger.info({
26
+ userBlacklisted: userBlacklisted,
27
+ clientId: clientId,
28
+ userIpAddress: userIpAddress.address.toString(),
29
+ userId: userId,
30
+ accessRules: accessRules.length,
31
+ blockingRules: blockingRules.length,
32
+ });
33
+ }
25
34
  return userBlacklisted;
26
35
  }
27
36
  }
@@ -1 +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"}
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,GAAW,EACX,MAAc;QAEd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACjB,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,aAAa;YAC5B,GAAG,EAAE,GAAG;YACR,MAAM,EAAE,MAAM;SACd,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAC/C;YACC,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,aAAa;YAC5B,GAAG,EAAE,GAAG;YACR,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,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChB,eAAe,EAAE,eAAe;gBAChC,QAAQ,EAAE,QAAQ;gBAClB,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,WAAW,CAAC,MAAM;gBAC/B,aAAa,EAAE,aAAa,CAAC,MAAM;aACnC,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,eAAe,CAAC;IACxB,CAAC;CACD;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -10,10 +10,10 @@ declare class ImageCaptchaConfigRulesResolver implements ImageCaptchaConfigResol
10
10
  private _accessRule;
11
11
  constructor(rulesStorage: RulesStorage, logger: Logger, _accessRule?: Rule | null);
12
12
  get accessRule(): Rule | null;
13
- isConfigDefined(clientId: string, userIpAddress: IPAddress, userId: string): Promise<boolean>;
14
- resolveConfig(defaults: ProsopoCaptchaCountConfigSchemaOutput, userIpAddress: IPAddress, userId: string, clientId: string): Promise<ProsopoCaptchaCountConfigSchemaOutput>;
15
- protected fetchUserAccessRule(userIpAddress: IPAddress, userId: string, clientId: string): Promise<Rule | null>;
16
- protected queryUserAccessRules(ipAddress: IPAddress, user: string, clientId: string): Promise<Rule[]>;
13
+ isConfigDefined(clientId: string, userIpAddress: IPAddress, ja4: string, userId: string): Promise<boolean>;
14
+ resolveConfig(defaults: ProsopoCaptchaCountConfigSchemaOutput, userIpAddress: IPAddress, ja4: string, userId: string, clientId: string): Promise<ProsopoCaptchaCountConfigSchemaOutput>;
15
+ protected fetchUserAccessRule(userIpAddress: IPAddress, ja4: string, userId: string, clientId: string): Promise<Rule | null>;
16
+ protected queryUserAccessRules(ipAddress: IPAddress, ja4: string, user: string, clientId: string): Promise<Rule[]>;
17
17
  protected selectPrimaryUserAccessRule(accessRules: Rule[]): Rule | null;
18
18
  protected getImageCaptchaConfig(defaults: ProsopoCaptchaCountConfigSchemaOutput, imageCaptchaConfig: ImageCaptchaConfig): ProsopoCaptchaCountConfigSchemaOutput;
19
19
  }
@@ -1 +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;IACvB,OAAO,CAAC,WAAW;gBAFF,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACvB,WAAW,GAAE,IAAI,GAAG,IAAW;IAGxC,IAAI,UAAU,IAAI,IAAI,GAAG,IAAI,CAE5B;IAEY,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"}
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;IACvB,OAAO,CAAC,WAAW;gBAFF,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACvB,WAAW,GAAE,IAAI,GAAG,IAAW;IAGxC,IAAI,UAAU,IAAI,IAAI,GAAG,IAAI,CAE5B;IAEY,eAAe,CAC3B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,EACxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;IAyBN,aAAa,CACzB,QAAQ,EAAE,qCAAqC,EAC/C,aAAa,EAAE,SAAS,EACxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,qCAAqC,CAAC;cAsCjC,mBAAmB,CAClC,aAAa,EAAE,SAAS,EACxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;cAkBP,oBAAoB,CACnC,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,EAAE,CAAC;IAelB,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"}
@@ -7,29 +7,31 @@ class ImageCaptchaConfigRulesResolver {
7
7
  get accessRule() {
8
8
  return this._accessRule;
9
9
  }
10
- async isConfigDefined(clientId, userIpAddress, userId) {
11
- const accessRule = await this.fetchUserAccessRule(userIpAddress, userId, clientId);
10
+ async isConfigDefined(clientId, userIpAddress, ja4, userId) {
11
+ const accessRule = await this.fetchUserAccessRule(userIpAddress, ja4, userId, clientId);
12
12
  const imageCaptchaConfig = accessRule?.config?.imageCaptcha || null;
13
13
  const configDefined = null !== imageCaptchaConfig;
14
- this.logger.info("ImageCaptchaConfigRulesResolver.isConfigDefined", {
15
- configDefined: configDefined,
16
- clientId: clientId,
17
- userIpAddress: userIpAddress.toString(),
18
- userId: userId,
19
- imageCaptchaConfig: imageCaptchaConfig,
20
- });
14
+ if (configDefined) {
15
+ this.logger.info({
16
+ configDefined: configDefined,
17
+ clientId: clientId,
18
+ userIpAddress: userIpAddress.toString(),
19
+ userId: userId,
20
+ imageCaptchaConfig: imageCaptchaConfig,
21
+ });
22
+ }
21
23
  return configDefined;
22
24
  }
23
- async resolveConfig(defaults, userIpAddress, userId, clientId) {
25
+ async resolveConfig(defaults, userIpAddress, ja4, userId, clientId) {
24
26
  const logArgs = {
25
27
  userIpAddress: userIpAddress.address.toString(),
26
28
  userId: userId,
27
29
  clientId: clientId,
28
30
  defaults: defaults,
29
31
  };
30
- this._accessRule = await this.fetchUserAccessRule(userIpAddress, userId, clientId);
32
+ this._accessRule = await this.fetchUserAccessRule(userIpAddress, ja4, userId, clientId);
31
33
  if (null === this.accessRule) {
32
- this.logger.info("ImageCaptchaConfigRulesResolver.resolveConfig", {
34
+ this.logger.debug("ImageCaptchaConfigRulesResolver.resolveConfig", {
33
35
  configDefined: false,
34
36
  ...logArgs,
35
37
  });
@@ -45,9 +47,9 @@ class ImageCaptchaConfigRulesResolver {
45
47
  });
46
48
  return config;
47
49
  }
48
- async fetchUserAccessRule(userIpAddress, userId, clientId) {
49
- const accessRules = await this.queryUserAccessRules(userIpAddress, userId, clientId);
50
- this.logger.info("ImageCaptchaConfigRulesResolver.fetchUserAccessRule", {
50
+ async fetchUserAccessRule(userIpAddress, ja4, userId, clientId) {
51
+ const accessRules = await this.queryUserAccessRules(userIpAddress, ja4, userId, clientId);
52
+ this.logger.debug("ImageCaptchaConfigRulesResolver.fetchUserAccessRule", {
51
53
  accessRules: accessRules.length,
52
54
  userIpAddress: userIpAddress.address.toString(),
53
55
  userId: userId,
@@ -55,11 +57,12 @@ class ImageCaptchaConfigRulesResolver {
55
57
  });
56
58
  return this.selectPrimaryUserAccessRule(accessRules);
57
59
  }
58
- async queryUserAccessRules(ipAddress, user, clientId) {
60
+ async queryUserAccessRules(ipAddress, ja4, user, clientId) {
59
61
  return await this.rulesStorage.find({
60
62
  clientId: clientId,
61
63
  userId: user,
62
64
  userIpAddress: ipAddress,
65
+ ja4: ja4,
63
66
  }, {
64
67
  includeRecordsWithoutClientId: true,
65
68
  includeRecordsWithPartialFilterMatches: true,
@@ -1 +1 @@
1
- {"version":3,"file":"imageCaptchaConfigRulesResolver.js","sourceRoot":"","sources":["../../src/rules/imageCaptchaConfigRulesResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imageCaptchaConfigRulesResolver.js","sourceRoot":"","sources":["../../src/rules/imageCaptchaConfigRulesResolver.ts"],"names":[],"mappings":"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"}
@@ -1 +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"}
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;AAsExD,QAAA,MAAM,8BAA8B,iBAInC,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
@@ -25,6 +25,7 @@ const userIpMaskIndexes = [
25
25
  definition: {
26
26
  "userIp.v4.mask.rangeMinAsNumeric": 1,
27
27
  "userIp.v4.mask.rangeMaxAsNumeric": 1,
28
+ "userIp.v4.asNumeric": 1,
28
29
  },
29
30
  options: {
30
31
  partialFilterExpression: {
@@ -44,6 +45,28 @@ const userIpMaskIndexes = [
44
45
  },
45
46
  },
46
47
  ];
47
- const rulePerformanceMongooseIndexes = [...userIpIndexes, ...userIpMaskIndexes];
48
+ const otherIndexes = [
49
+ {
50
+ definition: {
51
+ userId: 1,
52
+ },
53
+ options: {
54
+ unique: true,
55
+ },
56
+ },
57
+ {
58
+ definition: {
59
+ ja4: 1,
60
+ },
61
+ options: {
62
+ unique: true,
63
+ },
64
+ },
65
+ ];
66
+ const rulePerformanceMongooseIndexes = [
67
+ ...userIpIndexes,
68
+ ...userIpMaskIndexes,
69
+ ...otherIndexes,
70
+ ];
48
71
  export { rulePerformanceMongooseIndexes };
49
72
  //# sourceMappingURL=rulePerformanceMongooseIndexes.js.map
@@ -1 +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"}
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;YACrC,qBAAqB,EAAE,CAAC;SACxB;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,YAAY,GAAoB;IACrC;QACC,UAAU,EAAE;YACX,MAAM,EAAE,CAAC;SACT;QACD,OAAO,EAAE;YACR,MAAM,EAAE,IAAI;SACZ;KACD;IACD;QACC,UAAU,EAAE;YACX,GAAG,EAAE,CAAC;SACN;QACD,OAAO,EAAE;YACR,MAAM,EAAE,IAAI;SACZ;KACD;CACD,CAAC;AAEF,MAAM,8BAA8B,GAAG;IACtC,GAAG,aAAa;IAChB,GAAG,iBAAiB;IACpB,GAAG,YAAY;CACf,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
@@ -1 +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;IAkBzC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IA2BlD,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"}
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;IAkBzC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IA0BlD,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;IAoBX,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"}
@@ -29,7 +29,6 @@ class RulesMongooseStorage {
29
29
  await this.writingModel.bulkWrite(records.map((record) => ({
30
30
  deleteOne: {
31
31
  filter: {
32
- userId: record.userId,
33
32
  clientId: record.clientId,
34
33
  userIp: record.userIp,
35
34
  },
@@ -80,12 +79,15 @@ class RulesMongooseStorage {
80
79
  }
81
80
  getSearchQueryFilters(filters, includeRecordsWithPartialFilterMatches) {
82
81
  const queryFilters = [];
83
- if (undefined !== filters.userId) {
82
+ if (filters.userId) {
84
83
  queryFilters.push({ userId: filters.userId });
85
84
  }
86
- if (undefined !== filters.userIpAddress) {
85
+ if (filters.userIpAddress) {
87
86
  queryFilters.push(this.getFilterByUserIp(filters.userIpAddress));
88
87
  }
88
+ if (filters.ja4) {
89
+ queryFilters.push({ ja4: filters.ja4 });
90
+ }
89
91
  return includeRecordsWithPartialFilterMatches && queryFilters.length > 1
90
92
  ? [{ $or: queryFilters }]
91
93
  : queryFilters;
@@ -1 +1 @@
1
- {"version":3,"file":"rulesMongooseStorage.js","sourceRoot":"","sources":["../../../src/rules/mongoose/rulesMongooseStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rulesMongooseStorage.js","sourceRoot":"","sources":["../../../src/rules/mongoose/rulesMongooseStorage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ruleMongooseSchema.d.ts","sourceRoot":"","sources":["../../../../src/rules/mongoose/schemas/ruleMongooseSchema.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAI/C,QAAA,MAAM,kBAAkB;;;;EA2BtB,CAAC;AAEH,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"ruleMongooseSchema.d.ts","sourceRoot":"","sources":["../../../../src/rules/mongoose/schemas/ruleMongooseSchema.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAI/C,QAAA,MAAM,kBAAkB;;;;EAoCtB,CAAC;AAEH,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -9,18 +9,27 @@ const ruleMongooseSchema = new Schema({
9
9
  type: ipMongooseSchema,
10
10
  required: [
11
11
  function () {
12
- return !this.userId;
12
+ return !this.userId && !this.ja4;
13
13
  },
14
- "userIp is required when userId is not set",
14
+ "userIp is required when userId is not set and ja4 is not set",
15
15
  ],
16
16
  },
17
17
  userId: {
18
18
  type: String,
19
19
  required: [
20
20
  function () {
21
- return !this.userIp;
21
+ return !this.userIp && !this.ja4;
22
22
  },
23
- "userId is required when userIp is not set",
23
+ "userId is required when userIp is not set and ja4 is not set",
24
+ ],
25
+ },
26
+ ja4: {
27
+ type: String,
28
+ required: [
29
+ function () {
30
+ return !this.userIp && !this.userId;
31
+ },
32
+ "ja4 is required when userIp is not set and userId is not set",
24
33
  ],
25
34
  },
26
35
  config: {
@@ -1 +1 @@
1
- {"version":3,"file":"ruleMongooseSchema.js","sourceRoot":"","sources":["../../../../src/rules/mongoose/schemas/ruleMongooseSchema.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAO;IAC3C,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChD,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC9C,MAAM,EAAE;QACP,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE;YACT;gBACC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YACrB,CAAC;YACD,2CAA2C;SAC3C;KACD;IACD,MAAM,EAAE;QACP,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE;YACT;gBACC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YACrB,CAAC;YACD,2CAA2C;SAC3C;KACD;IACD,MAAM,EAAE;QACP,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,KAAK;KACf;IACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;CACxC,CAAC,CAAC;AAEH,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"ruleMongooseSchema.js","sourceRoot":"","sources":["../../../../src/rules/mongoose/schemas/ruleMongooseSchema.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAO;IAC3C,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChD,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC9C,MAAM,EAAE;QACP,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE;YACT;gBACC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAClC,CAAC;YACD,8DAA8D;SAC9D;KACD;IACD,MAAM,EAAE;QACP,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE;YACT;gBACC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAClC,CAAC;YACD,8DAA8D;SAC9D;KACD;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE;YACT;gBACC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACrC,CAAC;YACD,8DAA8D;SAC9D;KACD;IACD,MAAM,EAAE;QACP,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,KAAK;KACf;IACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;CACxC,CAAC,CAAC;AAEH,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -5,6 +5,7 @@ interface Rule {
5
5
  clientId?: string;
6
6
  description?: string;
7
7
  userIp?: RuleIp;
8
+ ja4?: string;
8
9
  userId?: string;
9
10
  config?: RuleConfig;
10
11
  score?: number;
@@ -1 +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;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,YAAY,EAAE,IAAI,EAAE,CAAC"}
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,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,YAAY,EAAE,IAAI,EAAE,CAAC"}
@@ -2,6 +2,7 @@ import type { RuleIp } from "../../rule/ip/ruleIp.js";
2
2
  interface DeleteRuleFilters {
3
3
  clientId?: string;
4
4
  userIp?: RuleIp;
5
+ ja4?: string;
5
6
  userId?: string;
6
7
  }
7
8
  export type { DeleteRuleFilters };
@@ -1 +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"}
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,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { IPAddress } from "@prosopo/types";
2
2
  interface SearchRuleFilters {
3
3
  userIpAddress?: IPAddress;
4
+ ja4?: string;
4
5
  userId?: string;
5
6
  clientId?: string;
6
7
  }
@@ -1 +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"}
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,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -21,7 +21,7 @@ describe("ImageCaptchaConfigResolver", () => {
21
21
  solved: { count: 2 },
22
22
  unsolved: { count: 3 },
23
23
  };
24
- const resolvedConfig = await resolver.resolveConfig(defaultConfig, new Address4("127.0.0.1"), "userId", "clientId");
24
+ const resolvedConfig = await resolver.resolveConfig(defaultConfig, new Address4("127.0.0.1"), "", "userId", "clientId");
25
25
  expect(resolvedConfig.solved.count).toBe(userAccessRuleRecord.config?.imageCaptcha?.solvedCount);
26
26
  expect(resolvedConfig.unsolved.count).toBe(userAccessRuleRecord.config?.imageCaptcha?.unsolvedCount);
27
27
  });
@@ -56,7 +56,7 @@ describe("ImageCaptchaConfigResolver", () => {
56
56
  solved: { count: 2 },
57
57
  unsolved: { count: 3 },
58
58
  };
59
- const resolvedConfig = await resolver.resolveConfig(defaultConfig, new Address4("127.0.0.1"), "userId", "clientId");
59
+ const resolvedConfig = await resolver.resolveConfig(defaultConfig, new Address4("127.0.0.1"), "", "userId", "clientId");
60
60
  expect(resolvedConfig.solved.count).toBe(clientUserAccessRuleRecord.config?.imageCaptcha?.solvedCount);
61
61
  expect(resolvedConfig.unsolved.count).toBe(clientUserAccessRuleRecord.config?.imageCaptcha?.unsolvedCount);
62
62
  });
@@ -67,7 +67,7 @@ describe("ImageCaptchaConfigResolver", () => {
67
67
  solved: { count: 2 },
68
68
  unsolved: { count: 3 },
69
69
  };
70
- const resolvedConfig = await resolver.resolveConfig(defaultConfig, new Address4("127.0.0.1"), "userId", "clientId");
70
+ const resolvedConfig = await resolver.resolveConfig(defaultConfig, new Address4("127.0.0.1"), "", "userId", "clientId");
71
71
  expect(resolvedConfig.solved.count).toBe(defaultConfig.solved.count);
72
72
  expect(resolvedConfig.unsolved.count).toBe(defaultConfig.unsolved.count);
73
73
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ImageCaptchaConfigRulesResolver.test.js","sourceRoot":"","sources":["../../../src/tests/rules/ImageCaptchaConfigRulesResolver.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageCaptchaConfigRulesResolver.test.js","sourceRoot":"","sources":["../../../src/tests/rules/ImageCaptchaConfigRulesResolver.test.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ describe("BlacklistRulesInspector", () => {
14
14
  _id: "0",
15
15
  };
16
16
  const inspector = createInspector([accessRuleRecord]);
17
- const shouldAbortRequest = () => inspector.isUserBlacklisted("", new Address4("127.0.0.1"), "");
17
+ const shouldAbortRequest = () => inspector.isUserBlacklisted("", new Address4("127.0.0.1"), "", "");
18
18
  expect(await shouldAbortRequest()).toBe(true);
19
19
  });
20
20
  it("blacklistedWhenAnyRuleFromRuleRecordsContainsBlockedFlag", async () => {
@@ -30,7 +30,7 @@ describe("BlacklistRulesInspector", () => {
30
30
  accessRuleRecordWithoutBlock,
31
31
  accessRuleRecordWithBlock,
32
32
  ]);
33
- const shouldAbortRequest = () => inspector.isUserBlacklisted("", new Address4("127.0.0.1"), "");
33
+ const shouldAbortRequest = () => inspector.isUserBlacklisted("", new Address4("127.0.0.1"), "", "");
34
34
  expect(await shouldAbortRequest()).toBe(true);
35
35
  });
36
36
  it("notBlacklistedWhenRuleRecordsDoNotContainBlockedFlag", async () => {
@@ -46,12 +46,12 @@ describe("BlacklistRulesInspector", () => {
46
46
  accessRuleRecordWithoutBlock,
47
47
  accessRuleRecordWithBlock,
48
48
  ]);
49
- const shouldAbortRequest = () => inspector.isUserBlacklisted("", new Address4("127.0.0.1"), "");
49
+ const shouldAbortRequest = () => inspector.isUserBlacklisted("", new Address4("127.0.0.1"), "", "");
50
50
  expect(await shouldAbortRequest()).toBe(false);
51
51
  });
52
52
  it("otBlacklistedWhenRuleRecordsMissing", async () => {
53
53
  const inspector = createInspector([]);
54
- const shouldAbortRequest = () => inspector.isUserBlacklisted("", new Address4("127.0.0.1"), "");
54
+ const shouldAbortRequest = () => inspector.isUserBlacklisted("", new Address4("127.0.0.1"), "", "");
55
55
  expect(await shouldAbortRequest()).toBe(false);
56
56
  });
57
57
  });
@@ -1 +1 @@
1
- {"version":3,"file":"blacklistRulesInspector.unit.test.js","sourceRoot":"","sources":["../../../src/tests/rules/blacklistRulesInspector.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blacklistRulesInspector.unit.test.js","sourceRoot":"","sources":["../../../src/tests/rules/blacklistRulesInspector.unit.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@prosopo/user-access-policy",
3
- "version": "2.4.1",
3
+ "version": "2.5.0",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "engines": {
7
7
  "node": "20",
8
- "npm": ">=9"
8
+ "npm": "10.8.2"
9
9
  },
10
10
  "exports": {
11
11
  ".": {
@@ -23,9 +23,9 @@
23
23
  "storage:benchmark:mongoose:measure-find": "npm run storage:benchmark:mongoose -- measure-find --db-url=mongodb://localhost:27017 --target-ip-v4=0.0.136.184 --target-ip-v6=0000:0000:0000:0000:0000:0000:0000:7530"
24
24
  },
25
25
  "dependencies": {
26
- "@prosopo/api-route": "2.4.1",
27
- "@prosopo/common": "2.4.1",
28
- "@prosopo/types": "2.4.1",
26
+ "@prosopo/api-route": "2.5.0",
27
+ "@prosopo/common": "2.5.0",
28
+ "@prosopo/types": "2.5.0",
29
29
  "ip-address": "10.0.1",
30
30
  "mongoose": "8.6.2",
31
31
  "zod": "3.23.8"
@@ -1,4 +1,4 @@
1
- // Copyright 2021-2024 Prosopo (UK) Ltd.
1
+ // Copyright 2021-2025 Prosopo (UK) Ltd.
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- // Copyright 2021-2024 Prosopo (UK) Ltd.
1
+ // Copyright 2021-2025 Prosopo (UK) Ltd.
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.