@prosopo/provider 4.8.0 → 4.9.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 (69) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +15 -14
  2. package/.turbo/turbo-build$colon$tsc.log +24 -24
  3. package/.turbo/turbo-build.log +16 -15
  4. package/CHANGELOG.md +30 -0
  5. package/dist/api/admin/apiAdminRoutesProvider.d.ts.map +1 -1
  6. package/dist/api/admin/apiAdminRoutesProvider.js +4 -1
  7. package/dist/api/admin/apiAdminRoutesProvider.js.map +1 -1
  8. package/dist/api/admin/apiDnsEventEndpoint.d.ts +4 -1
  9. package/dist/api/admin/apiDnsEventEndpoint.d.ts.map +1 -1
  10. package/dist/api/admin/apiDnsEventEndpoint.js +31 -1
  11. package/dist/api/admin/apiDnsEventEndpoint.js.map +1 -1
  12. package/dist/cjs/api/admin/apiAdminRoutesProvider.cjs +4 -1
  13. package/dist/cjs/api/admin/apiDnsEventEndpoint.cjs +31 -1
  14. package/dist/cjs/pairs.cjs +14 -0
  15. package/dist/cjs/tasks/captchaManager.cjs +9 -2
  16. package/dist/cjs/tasks/dnsEvent/enrichDnsEvent.cjs +62 -0
  17. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +66 -33
  18. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +42 -15
  19. package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +42 -15
  20. package/dist/cjs/tasks/spam/checkTrafficFilter.cjs +19 -2
  21. package/dist/cjs/tasks/tasks.cjs +1 -0
  22. package/dist/cjs/util/usageCounters.cjs +18 -1
  23. package/dist/cjs/util.cjs +11 -1
  24. package/dist/pairs.d.ts +4 -0
  25. package/dist/pairs.d.ts.map +1 -1
  26. package/dist/pairs.js +15 -1
  27. package/dist/pairs.js.map +1 -1
  28. package/dist/tasks/captchaManager.d.ts +2 -2
  29. package/dist/tasks/captchaManager.d.ts.map +1 -1
  30. package/dist/tasks/captchaManager.js +9 -2
  31. package/dist/tasks/captchaManager.js.map +1 -1
  32. package/dist/tasks/dnsEvent/enrichDnsEvent.d.ts +8 -0
  33. package/dist/tasks/dnsEvent/enrichDnsEvent.d.ts.map +1 -0
  34. package/dist/tasks/dnsEvent/enrichDnsEvent.js +62 -0
  35. package/dist/tasks/dnsEvent/enrichDnsEvent.js.map +1 -0
  36. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
  37. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +67 -34
  38. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
  39. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
  40. package/dist/tasks/powCaptcha/powTasks.js +42 -15
  41. package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
  42. package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
  43. package/dist/tasks/puzzleCaptcha/puzzleTasks.js +42 -15
  44. package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
  45. package/dist/tasks/spam/checkTrafficFilter.d.ts +1 -1
  46. package/dist/tasks/spam/checkTrafficFilter.d.ts.map +1 -1
  47. package/dist/tasks/spam/checkTrafficFilter.js +19 -2
  48. package/dist/tasks/spam/checkTrafficFilter.js.map +1 -1
  49. package/dist/tasks/tasks.d.ts +1 -0
  50. package/dist/tasks/tasks.d.ts.map +1 -1
  51. package/dist/tasks/tasks.js +1 -0
  52. package/dist/tasks/tasks.js.map +1 -1
  53. package/dist/tests/unit/pairs.unit.test.js +79 -1
  54. package/dist/tests/unit/pairs.unit.test.js.map +1 -1
  55. package/dist/tests/unit/tasks/dnsEvent/enrichDnsEvent.unit.test.d.ts +2 -0
  56. package/dist/tests/unit/tasks/dnsEvent/enrichDnsEvent.unit.test.d.ts.map +1 -0
  57. package/dist/tests/unit/tasks/dnsEvent/enrichDnsEvent.unit.test.js +94 -0
  58. package/dist/tests/unit/tasks/dnsEvent/enrichDnsEvent.unit.test.js.map +1 -0
  59. package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js +83 -0
  60. package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js.map +1 -1
  61. package/dist/util/usageCounters.d.ts +1 -1
  62. package/dist/util/usageCounters.d.ts.map +1 -1
  63. package/dist/util/usageCounters.js +18 -1
  64. package/dist/util/usageCounters.js.map +1 -1
  65. package/dist/util.d.ts +1 -1
  66. package/dist/util.d.ts.map +1 -1
  67. package/dist/util.js +11 -1
  68. package/dist/util.js.map +1 -1
  69. package/package.json +13 -12
@@ -1 +1 @@
1
- {"version":3,"file":"puzzleTasks.d.ts","sourceRoot":"","sources":["../../../src/tasks/puzzleCaptcha/puzzleTasks.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAMvE,OAAO,EAKN,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,cAAc,EAInB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAOtE,OAAO,EACN,KAAK,aAAa,EAElB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAMtD,UAAU,sBAAsB;IAC/B,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,oBAAqB,SAAQ,cAAc;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;gBAGpD,EAAE,EAAE,iBAAiB,EACrB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI;IAgB/B,yBAAyB,CAC9B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,CAAC;IA6C5B,2BAA2B,CAChC,SAAS,EAAE,cAAc,EACzB,0BAA0B,EAAE,MAAM,EAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,WAAW,EAAE,EAC3B,OAAO,EAAE,MAAM,EACf,sBAAsB,EAAE,MAAM,EAC9B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,cAAc,EACvB,cAAc,CAAC,EAAE,MAAM,EACvB,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC;IAgOb,iCAAiC,CACtC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,mBAAmB,EACxB,EAAE,CAAC,EAAE,MAAM,EACX,sBAAsB,CAAC,EAAE,kBAAkB,EAC3C,KAAK,CAAC,EAAE,MAAM,EACd,8BAA8B,UAAQ,EACtC,aAAa,CAAC,EAAE,cAAc,EAC9B,aAAa,UAAQ,GACnB,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAyUjD"}
1
+ {"version":3,"file":"puzzleTasks.d.ts","sourceRoot":"","sources":["../../../src/tasks/puzzleCaptcha/puzzleTasks.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAMvE,OAAO,EAKN,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,cAAc,EAInB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAOtE,OAAO,EACN,KAAK,aAAa,EAElB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAWtD,UAAU,sBAAsB;IAC/B,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,oBAAqB,SAAQ,cAAc;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;gBAGpD,EAAE,EAAE,iBAAiB,EACrB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI;IAgB/B,yBAAyB,CAC9B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,CAAC;IA6C5B,2BAA2B,CAChC,SAAS,EAAE,cAAc,EACzB,0BAA0B,EAAE,MAAM,EAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,WAAW,EAAE,EAC3B,OAAO,EAAE,MAAM,EACf,sBAAsB,EAAE,MAAM,EAC9B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,cAAc,EACvB,cAAc,CAAC,EAAE,MAAM,EACvB,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,cAAc,GAC7B,OAAO,CAAC,OAAO,CAAC;IAgOb,iCAAiC,CACtC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,mBAAmB,EACxB,EAAE,CAAC,EAAE,MAAM,EACX,sBAAsB,CAAC,EAAE,kBAAkB,EAC3C,KAAK,CAAC,EAAE,MAAM,EACd,8BAA8B,UAAQ,EACtC,aAAa,CAAC,EAAE,cAAc,EAC9B,aAAa,UAAQ,GACnB,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAmWjD"}
@@ -7,6 +7,7 @@ import { deepValidateIpAddress } from "../../util.js";
7
7
  import { buildAllWindowIncrements } from "../../util/usageCounters.js";
8
8
  import { CaptchaManager } from "../captchaManager.js";
9
9
  import { DecisionMachineRunner } from "../decisionMachine/decisionMachineRunner.js";
10
+ import { enrichDnsEvent, getIpInfoAsn, computeDnsAsymmetry } from "../dnsEvent/enrichDnsEvent.js";
10
11
  import { computeFrictionlessScore } from "../frictionless/frictionlessTasksUtils.js";
11
12
  import { checkPowSignature } from "../powCaptcha/powTasksUtils.js";
12
13
  import { validatePuzzleSolution } from "./puzzleTasksUtils.js";
@@ -363,17 +364,34 @@ class PuzzleCaptchaManager extends CaptchaManager {
363
364
  }));
364
365
  }
365
366
  }
367
+ const sessionRecord = challengeRecord.sessionId ? await this.db.getSessionRecordBySessionId(challengeRecord.sessionId) : void 0;
368
+ const enrichedDnsEvent = await enrichDnsEvent(
369
+ sessionRecord?.dnsEvent,
370
+ env.ipInfoService,
371
+ ip ?? challengeRecord.ipInfo?.ip
372
+ );
366
373
  {
367
374
  const check = await this.resolveTrafficFilterCheck(
368
375
  env,
369
376
  challengeRecord.ipInfo,
370
377
  trafficFilter,
371
- ip
378
+ ip,
379
+ enrichedDnsEvent
372
380
  );
373
381
  if (check.isBlocked) {
374
382
  this.logger.info(() => ({
375
383
  msg: "Traffic filter rejected request in puzzle verification",
376
- data: { challenge, dappAccount, ip, reason: check.reason }
384
+ data: {
385
+ challenge,
386
+ dappAccount,
387
+ ip,
388
+ reason: check.reason,
389
+ dnsPeerIp: enrichedDnsEvent?.peerIp,
390
+ dnsResolverIp: enrichedDnsEvent?.resolverIp,
391
+ dnsPeerAsn: getIpInfoAsn(enrichedDnsEvent?.peerIpInfo),
392
+ dnsResolverAsn: getIpInfoAsn(enrichedDnsEvent?.resolverIpInfo),
393
+ dnsPathValid: enrichedDnsEvent?.pathValid
394
+ }
377
395
  }));
378
396
  const blockedResult = {
379
397
  status: CaptchaStatus.disapproved,
@@ -411,7 +429,8 @@ class PuzzleCaptchaManager extends CaptchaManager {
411
429
  challengeIpAddress,
412
430
  this.logger,
413
431
  env.ipInfoService,
414
- ipValidationRules
432
+ ipValidationRules,
433
+ enrichedDnsEvent?.peerIp
415
434
  );
416
435
  if (!ipValidation.isValid) {
417
436
  this.logger.error(() => ({
@@ -441,19 +460,26 @@ class PuzzleCaptchaManager extends CaptchaManager {
441
460
  }
442
461
  }
443
462
  let score;
444
- if (challengeRecord.sessionId) {
445
- const sessionRecord = await this.db.getSessionRecordBySessionId(
446
- challengeRecord.sessionId
463
+ if (sessionRecord) {
464
+ const dnsAsymmetry = computeDnsAsymmetry(
465
+ enrichedDnsEvent,
466
+ challengeRecord.ipInfo
447
467
  );
448
- if (sessionRecord) {
449
- score = computeFrictionlessScore(sessionRecord?.scoreComponents);
450
- this.logger.info(() => ({
451
- data: {
452
- scoreComponents: { ...sessionRecord?.scoreComponents || {} },
453
- score
454
- }
455
- }));
468
+ if (dnsAsymmetry > 0) {
469
+ sessionRecord.scoreComponents = {
470
+ ...sessionRecord.scoreComponents,
471
+ dnsAsymmetry
472
+ };
456
473
  }
474
+ score = computeFrictionlessScore(sessionRecord?.scoreComponents);
475
+ this.logger.info(() => ({
476
+ data: {
477
+ scoreComponents: { ...sessionRecord?.scoreComponents || {} },
478
+ score,
479
+ dnsPeerAsn: getIpInfoAsn(enrichedDnsEvent?.peerIpInfo),
480
+ dnsResolverAsn: getIpInfoAsn(enrichedDnsEvent?.resolverIpInfo)
481
+ }
482
+ }));
457
483
  }
458
484
  try {
459
485
  const decisionInput = {
@@ -464,7 +490,8 @@ class PuzzleCaptchaManager extends CaptchaManager {
464
490
  captchaType: CaptchaType.puzzle,
465
491
  behavioralDataPacked: challengeRecord.behavioralDataPacked,
466
492
  deviceCapability: challengeRecord.deviceCapability,
467
- countryCode: challengeRecord.ipInfo?.isValid ? challengeRecord.ipInfo.countryCode : void 0
493
+ countryCode: challengeRecord.ipInfo?.isValid ? challengeRecord.ipInfo.countryCode : void 0,
494
+ dnsEvent: enrichedDnsEvent
468
495
  };
469
496
  const decision = await this.decisionMachineRunner.decide(
470
497
  decisionInput,
@@ -1 +1 @@
1
- {"version":3,"file":"puzzleTasks.js","sourceRoot":"","sources":["../../../src/tasks/puzzleCaptcha/puzzleTasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"puzzleTasks.js","sourceRoot":"","sources":["../../../src/tasks/puzzleCaptcha/puzzleTasks.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,5 @@ export type TrafficCheckResult = {
6
6
  isBlocked: true;
7
7
  reason: TrafficBlockReason;
8
8
  };
9
- export declare const checkTrafficFilter: (ipInfo: IPInfoResponse | undefined, trafficFilter: Partial<ITrafficFilter>) => TrafficCheckResult;
9
+ export declare const checkTrafficFilter: (ipInfo: IPInfoResponse | undefined, trafficFilter: Partial<ITrafficFilter>, extraIpInfos?: ReadonlyArray<IPInfoResponse | undefined>) => TrafficCheckResult;
10
10
  //# sourceMappingURL=checkTrafficFilter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkTrafficFilter.d.ts","sourceRoot":"","sources":["../../../src/tasks/spam/checkTrafficFilter.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,YAAY,EAEZ,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,kBAAkB,GAC3B,YAAY,CAAC,WAAW,GACxB,YAAY,CAAC,aAAa,GAC1B,YAAY,CAAC,WAAW,GACxB,YAAY,CAAC,cAAc,GAC3B,YAAY,CAAC,kBAAkB,GAC/B,YAAY,CAAC,cAAc,GAC3B,YAAY,CAAC,iBAAiB,GAC9B,YAAY,CAAC,eAAe,CAAC;AAEhC,MAAM,MAAM,kBAAkB,GAC3B;IAAE,SAAS,EAAE,KAAK,CAAA;CAAE,GACpB;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAUnD,eAAO,MAAM,kBAAkB,WACtB,cAAc,GAAG,SAAS,iBACnB,OAAO,CAAC,cAAc,CAAC,KACpC,kBA+CF,CAAC"}
1
+ {"version":3,"file":"checkTrafficFilter.d.ts","sourceRoot":"","sources":["../../../src/tasks/spam/checkTrafficFilter.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,YAAY,EAEZ,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,kBAAkB,GAC3B,YAAY,CAAC,WAAW,GACxB,YAAY,CAAC,aAAa,GAC1B,YAAY,CAAC,WAAW,GACxB,YAAY,CAAC,cAAc,GAC3B,YAAY,CAAC,kBAAkB,GAC/B,YAAY,CAAC,cAAc,GAC3B,YAAY,CAAC,iBAAiB,GAC9B,YAAY,CAAC,eAAe,CAAC;AAEhC,MAAM,MAAM,kBAAkB,GAC3B;IAAE,SAAS,EAAE,KAAK,CAAA;CAAE,GACpB;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAoFnD,eAAO,MAAM,kBAAkB,WACtB,cAAc,GAAG,SAAS,iBACnB,OAAO,CAAC,cAAc,CAAC,iBACvB,aAAa,CAAC,cAAc,GAAG,SAAS,CAAC,KACtD,kBAkBF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { ResultReason, trafficFilterAbuserScoreThresholdDefault } from "@prosopo/types";
2
- const checkTrafficFilter = (ipInfo, trafficFilter) => {
2
+ const evaluateIpInfo = (ipInfo, trafficFilter, options) => {
3
3
  if (!ipInfo || !ipInfo.isValid) {
4
4
  return { isBlocked: false };
5
5
  }
@@ -22,7 +22,7 @@ const checkTrafficFilter = (ipInfo, trafficFilter) => {
22
22
  return { isBlocked: true, reason: ResultReason.ABUSER_BLOCKED };
23
23
  }
24
24
  }
25
- if (trafficFilter.blockDatacenter && ipInfo.isDatacenter) {
25
+ if (trafficFilter.blockDatacenter && ipInfo.isDatacenter && !(options.suppressVpnDatacenterInteraction && ipInfo.isVPN && !trafficFilter.blockVpn)) {
26
26
  return { isBlocked: true, reason: ResultReason.DATACENTER_BLOCKED };
27
27
  }
28
28
  if (trafficFilter.blockMobile && ipInfo.isMobile) {
@@ -36,6 +36,23 @@ const checkTrafficFilter = (ipInfo, trafficFilter) => {
36
36
  }
37
37
  return { isBlocked: false };
38
38
  };
39
+ const checkTrafficFilter = (ipInfo, trafficFilter, extraIpInfos) => {
40
+ const primary = evaluateIpInfo(ipInfo, trafficFilter, {
41
+ suppressVpnDatacenterInteraction: true
42
+ });
43
+ if (primary.isBlocked) {
44
+ return primary;
45
+ }
46
+ for (const extra of extraIpInfos ?? []) {
47
+ const result = evaluateIpInfo(extra, trafficFilter, {
48
+ suppressVpnDatacenterInteraction: false
49
+ });
50
+ if (result.isBlocked) {
51
+ return result;
52
+ }
53
+ }
54
+ return { isBlocked: false };
55
+ };
39
56
  export {
40
57
  checkTrafficFilter
41
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"checkTrafficFilter.js","sourceRoot":"","sources":["../../../src/tasks/spam/checkTrafficFilter.ts"],"names":[],"mappings":"AAcA,OAAO,EAGN,YAAY,EACZ,wCAAwC,GACxC,MAAM,gBAAgB,CAAC;AAwBxB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,MAAkC,EAClC,aAAsC,EACjB,EAAE;IACvB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,aAAa,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAChD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,aAAa,EAAE,CAAC;IAChE,CAAC;IAED,IAAI,aAAa,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC5D,MAAM,SAAS,GACd,aAAa,CAAC,oBAAoB;YAClC,wCAAwC,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACxB,MAAM,CAAC,WAAW,IAAI,CAAC,EACvB,MAAM,CAAC,kBAAkB,IAAI,CAAC,CAC9B,CAAC;QACF,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC3B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC;QACjE,CAAC;IACF,CAAC;IAED,IAAI,aAAa,CAAC,eAAe,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC1D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,kBAAkB,EAAE,CAAC;IACrE,CAAC;IAED,IAAI,aAAa,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC;IACjE,CAAC;IAED,IAAI,aAAa,CAAC,cAAc,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACxD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC;IACpE,CAAC;IAED,IAAI,aAAa,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACpD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,eAAe,EAAE,CAAC;IAClE,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"checkTrafficFilter.js","sourceRoot":"","sources":["../../../src/tasks/spam/checkTrafficFilter.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export declare class Tasks {
27
27
  writeQueue: RedisWriteQueue | null;
28
28
  decisionMachineRunner: DecisionMachineRunner;
29
29
  usageCounters: UsageCounters | null;
30
+ env: ProviderEnvironment;
30
31
  constructor(env: ProviderEnvironment, logger?: Logger);
31
32
  private initUsageCounters;
32
33
  private initWriteQueue;
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EACX,qCAAqC,EACrC,mBAAmB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAYtE,qBAAa,KAAK;IACjB,EAAE,EAAE,iBAAiB,CAAC;IACtB,aAAa,EAAE,qCAAqC,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,cAAc,EAAE,cAAc,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;gBAExB,GAAG,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,MAAM;IA8ErD,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,cAAc;WAwCT,eAAe,CAC3B,KAAK,EAAE,eAAe,EACtB,EAAE,EAAE,iBAAiB,EACrB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAqBhB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAW/B"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EACX,qCAAqC,EACrC,mBAAmB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAYtE,qBAAa,KAAK;IACjB,EAAE,EAAE,iBAAiB,CAAC;IACtB,aAAa,EAAE,qCAAqC,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,cAAc,EAAE,cAAc,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,GAAG,EAAE,mBAAmB,CAAC;gBAEb,GAAG,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,MAAM;IA+ErD,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,cAAc;WAwCT,eAAe,CAC3B,KAAK,EAAE,eAAe,EACtB,EAAE,EAAE,iBAAiB,EACrB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAqBhB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAW/B"}
@@ -13,6 +13,7 @@ let globalWriteQueue = null;
13
13
  let flushStarted = false;
14
14
  class Tasks {
15
15
  constructor(env, logger) {
16
+ this.env = env;
16
17
  this.config = env.config;
17
18
  this.db = env.getDb();
18
19
  this.captchaConfig = env.config.captchas;
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAe,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAMtE,IAAI,gBAAgB,GAA2B,IAAI,CAAC;AACpD,IAAI,YAAY,GAAG,KAAK,CAAC;AAKzB,MAAM,OAAO,KAAK;IAgBjB,YAAY,GAAwB,EAAE,MAAe;QACpD,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,MAAM;YACV,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CAAC,iCAAiC,EAAE;gBAC5D,OAAO,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE;aAChD,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAErB,IACC,IAAI,CAAC,MAAM,CAAC,eAAe;YAC3B,IAAI,CAAC,EAAE,YAAY,gBAAgB;YACnC,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,EAAE,EAC9B,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CACrC,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,IAAI,CAAC,MAAM,CACX,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvB,GAAG,EAAE,sEAAsE;aAC3E,CAAC,CAAC,CAAC;QACL,CAAC;QAGD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,IAAI,CAAC,qBAAqB,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE9C,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAC7C,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,aAAa,CAClB,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CACnD,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,CAClB,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,EAAE,CACP,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAC7C,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,aAAa,CAClB,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAC7C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,EAAE,CACP,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CACjD,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,aAAa,CAClB,CAAC;IACH,CAAC;IAEO,iBAAiB;QACxB,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,gBAAgB,CAAC;YAAE,OAAO,IAAI,CAAC;QACxD,IAAI,CAAC;YACJ,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAEO,cAAc;QACrB,IAAI,gBAAgB,EAAE,CAAC;YACtB,OAAO,gBAAgB,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,gBAAgB,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;YACrD,gBAAgB,GAAG,IAAI,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAErE,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnB,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBACnD,MAAM,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;gBAChD,CAAC,EAAE,MAAM,CAAC,CAAC;YACZ,CAAC;YAED,OAAO,gBAAgB,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACxB,GAAG,EAAE,qEAAqE;aAC1E,CAAC,CAAC,CAAC;YACJ,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAWD,MAAM,CAAC,KAAK,CAAC,eAAe,CAC3B,KAAsB,EACtB,EAAqB,EACrB,MAAc;QAEd,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACzD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAClB,GAAG,EAAE,YAAY,cAAc,CAAC,MAAM,oCAAoC;aAC1E,CAAC,CAAC,CAAC;YACJ,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACJ,MAAM,EAAE,CAAC,kBAAkB,CAC1B,MAAqD,CACrD,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;wBACnB,GAAG,EAAE,uCAAuC;wBAC5C,GAAG,EAAE,KAAK;qBACV,CAAC,CAAC,CAAC;gBACL,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,SAAS,CAAC,MAAc;QAEvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;QACvC,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,MAAM,CAAC;QAC1C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC;QACpC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;QACvC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;QACvC,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,MAAM,CAAC;QACzC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACD"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import { embedData, extractData } from "@prosopo/util";
2
+ import { randomAsHex } from "@prosopo/util-crypto";
1
3
  import { describe, expect, it } from "vitest";
2
- import { constructPairList, containsIdenticalPairs } from "../../pairs.js";
4
+ import { constructPairList, containsIdenticalPairs, peelCheckboxPrefix, } from "../../pairs.js";
3
5
  describe("constructPairList", () => {
4
6
  it("should construct pairs from even-length array", () => {
5
7
  const input = [1, 2, 3, 4, 5, 6];
@@ -226,4 +228,80 @@ describe("containsIdenticalPairs", () => {
226
228
  expect(result).toBe(false);
227
229
  });
228
230
  });
231
+ const buildSalt = (data) => {
232
+ const hexLength = data
233
+ .map((d) => d.toString(16).length + 4)
234
+ .reduce((acc, curr) => acc + curr, 0);
235
+ const randomHex = randomAsHex(hexLength);
236
+ return embedData(randomHex, data);
237
+ };
238
+ describe("peelCheckboxPrefix", () => {
239
+ it("returns no prefix when first list length matches 2 * solution.length", () => {
240
+ const salt0 = buildSalt([10, 20, 30, 40]);
241
+ const salt1 = buildSalt([50, 60]);
242
+ const flat = [extractData(salt0), extractData(salt1)];
243
+ const { checkbox, flat: out } = peelCheckboxPrefix(flat, [2, 1]);
244
+ expect(checkbox).toBeUndefined();
245
+ expect(out).toEqual(flat);
246
+ });
247
+ it("peels [x, y] when first list length is 2 * solution.length + 2", () => {
248
+ const salt0 = buildSalt([7, 13, 10, 20, 30, 40]);
249
+ const salt1 = buildSalt([50, 60]);
250
+ const flat = [extractData(salt0), extractData(salt1)];
251
+ const { checkbox, flat: out } = peelCheckboxPrefix(flat, [2, 1]);
252
+ expect(checkbox).toEqual([7, 13]);
253
+ expect(out[0]).toEqual([10, 20, 30, 40]);
254
+ expect(out[1]).toEqual([50, 60]);
255
+ });
256
+ it("round-trips client embed → server peel → constructPairList → prepend", () => {
257
+ const checkboxX = 142;
258
+ const checkboxY = 87;
259
+ const captcha0Shapes = [299, 244, 299, 352, 170, 358];
260
+ const captcha1Shapes = [180, 470, 297, 481];
261
+ const salt0 = buildSalt([checkboxX, checkboxY, ...captcha0Shapes]);
262
+ const salt1 = buildSalt(captcha1Shapes);
263
+ const rawFlat = [extractData(salt0), extractData(salt1)];
264
+ const { checkbox, flat } = peelCheckboxPrefix(rawFlat, [
265
+ captcha0Shapes.length / 2,
266
+ captcha1Shapes.length / 2,
267
+ ]);
268
+ const shapePairs = flat.map((list) => constructPairList(list));
269
+ const pairs = checkbox ? [[checkbox], ...shapePairs] : shapePairs;
270
+ expect(pairs).toEqual([
271
+ [[checkboxX, checkboxY]],
272
+ [
273
+ [299, 244],
274
+ [299, 352],
275
+ [170, 358],
276
+ ],
277
+ [
278
+ [180, 470],
279
+ [297, 481],
280
+ ],
281
+ ]);
282
+ });
283
+ it("leaves rawFlat unchanged when only an older client (no prefix) submits", () => {
284
+ const captcha0Shapes = [10, 20, 30, 40];
285
+ const captcha1Shapes = [50, 60];
286
+ const salt0 = buildSalt(captcha0Shapes);
287
+ const salt1 = buildSalt(captcha1Shapes);
288
+ const rawFlat = [extractData(salt0), extractData(salt1)];
289
+ const { checkbox, flat } = peelCheckboxPrefix(rawFlat, [
290
+ captcha0Shapes.length / 2,
291
+ captcha1Shapes.length / 2,
292
+ ]);
293
+ const pairs = flat.map((list) => constructPairList(list));
294
+ expect(checkbox).toBeUndefined();
295
+ expect(pairs).toEqual([
296
+ [
297
+ [10, 20],
298
+ [30, 40],
299
+ ],
300
+ [[50, 60]],
301
+ ]);
302
+ });
303
+ it("handles empty inputs without throwing", () => {
304
+ expect(peelCheckboxPrefix([], [])).toEqual({ flat: [] });
305
+ });
306
+ });
229
307
  //# sourceMappingURL=pairs.unit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pairs.unit.test.js","sourceRoot":"","sources":["../../../src/tests/unit/pairs.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pairs.unit.test.js","sourceRoot":"","sources":["../../../src/tests/unit/pairs.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=enrichDnsEvent.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrichDnsEvent.unit.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/dnsEvent/enrichDnsEvent.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,94 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { enrichDnsEvent, extraIpInfosFromEnrichedDnsEvent, } from "../../../../tasks/dnsEvent/enrichDnsEvent.js";
3
+ const makeIpInfoService = (lookups) => ({
4
+ lookup: vi.fn(async (ip) => lookups[ip]),
5
+ });
6
+ const baseInfo = (overrides = {}) => ({
7
+ ip: "1.2.3.4",
8
+ isValid: true,
9
+ isVPN: false,
10
+ isTor: false,
11
+ isProxy: false,
12
+ isDatacenter: false,
13
+ isAbuser: false,
14
+ isMobile: false,
15
+ isSatellite: false,
16
+ isCrawler: false,
17
+ ...overrides,
18
+ });
19
+ const eventWith = (overrides) => ({
20
+ receivedAt: new Date(),
21
+ ...overrides,
22
+ });
23
+ describe("enrichDnsEvent", () => {
24
+ it("returns undefined when dnsEvent is undefined", async () => {
25
+ const service = makeIpInfoService({});
26
+ expect(await enrichDnsEvent(undefined, service, "1.2.3.4")).toBeUndefined();
27
+ expect(service.lookup).not.toHaveBeenCalled();
28
+ });
29
+ it("looks up both peer + resolver IPs", async () => {
30
+ const peer = baseInfo({ ip: "198.51.100.10", isDatacenter: true });
31
+ const resolver = baseInfo({ ip: "198.51.100.20", isVPN: true });
32
+ const service = makeIpInfoService({
33
+ "198.51.100.10": peer,
34
+ "198.51.100.20": resolver,
35
+ });
36
+ const result = await enrichDnsEvent(eventWith({
37
+ peerIp: "198.51.100.10",
38
+ resolverIp: "198.51.100.20",
39
+ pathValid: true,
40
+ }), service, "203.0.113.5");
41
+ expect(result).toEqual({
42
+ peerIp: "198.51.100.10",
43
+ resolverIp: "198.51.100.20",
44
+ pathValid: true,
45
+ peerIpInfo: peer,
46
+ resolverIpInfo: resolver,
47
+ });
48
+ expect(service.lookup).toHaveBeenCalledTimes(2);
49
+ });
50
+ it("skips a lookup when the dnsEvent IP equals the primary IP", async () => {
51
+ const resolver = baseInfo({ ip: "198.51.100.20" });
52
+ const service = makeIpInfoService({ "198.51.100.20": resolver });
53
+ const result = await enrichDnsEvent(eventWith({ peerIp: "1.2.3.4", resolverIp: "198.51.100.20" }), service, "1.2.3.4");
54
+ expect(result?.peerIpInfo).toBeUndefined();
55
+ expect(result?.resolverIpInfo).toEqual(resolver);
56
+ expect(service.lookup).toHaveBeenCalledTimes(1);
57
+ expect(service.lookup).toHaveBeenCalledWith("198.51.100.20");
58
+ });
59
+ it("returns dnsEvent fields verbatim when no lookups are needed", async () => {
60
+ const service = makeIpInfoService({});
61
+ const result = await enrichDnsEvent(eventWith({ pathValid: false }), service, "1.2.3.4");
62
+ expect(result).toEqual({
63
+ peerIp: undefined,
64
+ resolverIp: undefined,
65
+ pathValid: false,
66
+ });
67
+ expect(service.lookup).not.toHaveBeenCalled();
68
+ });
69
+ it("does not surface an undefined lookup result on the enriched object", async () => {
70
+ const service = {
71
+ lookup: vi.fn(async () => undefined),
72
+ };
73
+ const result = await enrichDnsEvent(eventWith({ peerIp: "198.51.100.10" }), service, "1.2.3.4");
74
+ expect(result?.peerIpInfo).toBeUndefined();
75
+ });
76
+ });
77
+ describe("extraIpInfosFromEnrichedDnsEvent", () => {
78
+ const peer = baseInfo({ ip: "198.51.100.10" });
79
+ const resolver = baseInfo({ ip: "198.51.100.20" });
80
+ it("returns empty when input is undefined", () => {
81
+ expect(extraIpInfosFromEnrichedDnsEvent(undefined)).toEqual([]);
82
+ });
83
+ it("returns only the present infos in [peer, resolver] order", () => {
84
+ expect(extraIpInfosFromEnrichedDnsEvent({
85
+ peerIpInfo: peer,
86
+ resolverIpInfo: resolver,
87
+ })).toEqual([peer, resolver]);
88
+ expect(extraIpInfosFromEnrichedDnsEvent({ resolverIpInfo: resolver })).toEqual([resolver]);
89
+ expect(extraIpInfosFromEnrichedDnsEvent({ peerIpInfo: peer })).toEqual([
90
+ peer,
91
+ ]);
92
+ });
93
+ });
94
+ //# sourceMappingURL=enrichDnsEvent.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrichDnsEvent.unit.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/dnsEvent/enrichDnsEvent.unit.test.ts"],"names":[],"mappings":"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"}