@prosopo/provider 5.6.1 → 5.6.3

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 (100) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +16 -13
  2. package/.turbo/turbo-build$colon$tsc.log +25 -25
  3. package/.turbo/turbo-build.log +17 -14
  4. package/CHANGELOG.md +55 -0
  5. package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.d.ts.map +1 -1
  6. package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js +4 -1
  7. package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js.map +1 -1
  8. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  9. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +9 -3
  10. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  11. package/dist/api/captcha/getPuzzleCaptchaChallenge.d.ts.map +1 -1
  12. package/dist/api/captcha/getPuzzleCaptchaChallenge.js +4 -4
  13. package/dist/api/captcha/getPuzzleCaptchaChallenge.js.map +1 -1
  14. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts +4 -1
  15. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
  16. package/dist/api/captcha/submitPoWCaptchaSolution.js +27 -8
  17. package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
  18. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.cjs +4 -1
  19. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +9 -3
  20. package/dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs +4 -4
  21. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +26 -7
  22. package/dist/cjs/tasks/captchaTypeSelection.cjs +53 -0
  23. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +25 -7
  24. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +3 -1
  25. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +3 -1
  26. package/dist/cjs/tasks/puzzle/puzzleDifficulty.cjs +208 -0
  27. package/dist/cjs/tasks/puzzle/puzzleRenderer.cjs +13 -61
  28. package/dist/cjs/tasks/puzzle/stratifiedSampler.cjs +61 -0
  29. package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +3 -1
  30. package/dist/cjs/utils/devicePlatform.cjs +34 -0
  31. package/dist/tasks/captchaManager.d.ts +2 -2
  32. package/dist/tasks/captchaManager.d.ts.map +1 -1
  33. package/dist/tasks/captchaManager.js.map +1 -1
  34. package/dist/tasks/captchaTypeSelection.d.ts +5 -0
  35. package/dist/tasks/captchaTypeSelection.d.ts.map +1 -0
  36. package/dist/tasks/captchaTypeSelection.js +53 -0
  37. package/dist/tasks/captchaTypeSelection.js.map +1 -0
  38. package/dist/tasks/decisionMachine/decisionMachineRunner.d.ts.map +1 -1
  39. package/dist/tasks/decisionMachine/decisionMachineRunner.js.map +1 -1
  40. package/dist/tasks/frictionless/frictionlessTasks.d.ts +1 -1
  41. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
  42. package/dist/tasks/frictionless/frictionlessTasks.js +26 -8
  43. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
  44. package/dist/tasks/frictionless/routingMachine.d.ts +3 -1
  45. package/dist/tasks/frictionless/routingMachine.d.ts.map +1 -1
  46. package/dist/tasks/frictionless/routingMachine.js.map +1 -1
  47. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
  48. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +3 -1
  49. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
  50. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
  51. package/dist/tasks/powCaptcha/powTasks.js +3 -1
  52. package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
  53. package/dist/tasks/puzzle/puzzleDifficulty.d.ts +25 -0
  54. package/dist/tasks/puzzle/puzzleDifficulty.d.ts.map +1 -0
  55. package/dist/tasks/puzzle/puzzleDifficulty.js +204 -0
  56. package/dist/tasks/puzzle/puzzleDifficulty.js.map +1 -0
  57. package/dist/tasks/puzzle/puzzleRenderer.d.ts +1 -3
  58. package/dist/tasks/puzzle/puzzleRenderer.d.ts.map +1 -1
  59. package/dist/tasks/puzzle/puzzleRenderer.js +15 -62
  60. package/dist/tasks/puzzle/puzzleRenderer.js.map +1 -1
  61. package/dist/tasks/puzzle/stratifiedSampler.d.ts +7 -0
  62. package/dist/tasks/puzzle/stratifiedSampler.d.ts.map +1 -0
  63. package/dist/tasks/puzzle/stratifiedSampler.js +61 -0
  64. package/dist/tasks/puzzle/stratifiedSampler.js.map +1 -0
  65. package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
  66. package/dist/tasks/puzzleCaptcha/puzzleTasks.js +3 -1
  67. package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
  68. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js +2 -0
  69. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js.map +1 -1
  70. package/dist/tests/integration/clientSettingsPersistence.integration.test.js +1 -0
  71. package/dist/tests/integration/clientSettingsPersistence.integration.test.js.map +1 -1
  72. package/dist/tests/integration/routingDecisionMachines.integration.test.js +280 -3
  73. package/dist/tests/integration/routingDecisionMachines.integration.test.js.map +1 -1
  74. package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js +1 -0
  75. package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js.map +1 -1
  76. package/dist/tests/unit/api/captcha/submitPoWCaptchaSolution.escalation.unit.test.js +3 -0
  77. package/dist/tests/unit/api/captcha/submitPoWCaptchaSolution.escalation.unit.test.js.map +1 -1
  78. package/dist/tests/unit/tasks/captchaManager.unit.test.js +1 -0
  79. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
  80. package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.d.ts +2 -0
  81. package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.d.ts.map +1 -0
  82. package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.js +54 -0
  83. package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.js.map +1 -0
  84. package/dist/tests/unit/tasks/frictionless/routerImageRoundsClamp.unit.test.js +3 -3
  85. package/dist/tests/unit/tasks/frictionless/routerImageRoundsClamp.unit.test.js.map +1 -1
  86. package/dist/tests/unit/tasks/frictionless/routerPuzzleOverrides.unit.test.d.ts +2 -0
  87. package/dist/tests/unit/tasks/frictionless/routerPuzzleOverrides.unit.test.d.ts.map +1 -0
  88. package/dist/tests/unit/tasks/frictionless/routerPuzzleOverrides.unit.test.js +119 -0
  89. package/dist/tests/unit/tasks/frictionless/routerPuzzleOverrides.unit.test.js.map +1 -0
  90. package/dist/tests/unit/tasks/puzzleDifficulty.unit.test.d.ts +2 -0
  91. package/dist/tests/unit/tasks/puzzleDifficulty.unit.test.d.ts.map +1 -0
  92. package/dist/tests/unit/tasks/puzzleDifficulty.unit.test.js +137 -0
  93. package/dist/tests/unit/tasks/puzzleDifficulty.unit.test.js.map +1 -0
  94. package/dist/tests/unit/utils/devicePlatform.unit.test.js +61 -1
  95. package/dist/tests/unit/utils/devicePlatform.unit.test.js.map +1 -1
  96. package/dist/utils/devicePlatform.d.ts +2 -1
  97. package/dist/utils/devicePlatform.d.ts.map +1 -1
  98. package/dist/utils/devicePlatform.js +34 -1
  99. package/dist/utils/devicePlatform.js.map +1 -1
  100. package/package.json +13 -13
@@ -1 +1 @@
1
- {"version":3,"file":"getPuzzleCaptchaChallenge.js","sourceRoot":"","sources":["../../../src/api/captcha/getPuzzleCaptchaChallenge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getPuzzleCaptchaChallenge.js","sourceRoot":"","sources":["../../../src/api/captcha/getPuzzleCaptchaChallenge.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { CaptchaType, type PowCaptchaSolutionEscalation } from "@prosopo/types";
1
+ import { CaptchaType, type IFrictionlessTypes, type PowCaptchaSolutionEscalation } from "@prosopo/types";
2
2
  import type { ProviderEnvironment } from "@prosopo/types-env";
3
3
  import type { NextFunction, Request, Response } from "express";
4
4
  import type { AugmentedRequest } from "../../express.js";
@@ -22,5 +22,8 @@ export declare const buildEscalation: (tasks: Tasks, result: {
22
22
  tcpOptsFlags?: number;
23
23
  tcpOptsOrder?: number;
24
24
  tcpWindow?: number;
25
+ }, siteConstraints?: {
26
+ frictionlessTypes?: IFrictionlessTypes;
27
+ imageMaxRounds?: number;
25
28
  }) => Promise<PowCaptchaSolutionEscalation | undefined>;
26
29
  //# sourceMappingURL=submitPoWCaptchaSolution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"submitPoWCaptchaSolution.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/submitPoWCaptchaSolution.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,WAAW,EAEX,KAAK,4BAA4B,EAIjC,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;8BAOxB,mBAAmB,WAEjC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAJpB,wBAoMG;AAWH,eAAO,MAAM,eAAe,UACpB,KAAK,UACJ;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE,CAAA;CAAE,aAChE,MAAM,yBAKM;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,KACC,OAAO,CAAC,4BAA4B,GAAG,SAAS,CAmHlD,CAAC"}
1
+ {"version":3,"file":"submitPoWCaptchaSolution.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/submitPoWCaptchaSolution.ts"],"names":[],"mappings":"AAeA,OAAO,EACN,WAAW,EAEX,KAAK,kBAAkB,EAEvB,KAAK,4BAA4B,EAKjC,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMzD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;8BAUxB,mBAAmB,WAEjC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAJpB,wBAoNG;AAWH,eAAO,MAAM,eAAe,UACpB,KAAK,UACJ;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE,CAAA;CAAE,aAChE,MAAM,yBAKM;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,oBAMiB;IACjB,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB,KACC,OAAO,CAAC,4BAA4B,GAAG,SAAS,CAwKlD,CAAC"}
@@ -1,13 +1,15 @@
1
1
  import { validateAddr, validateSiteKey } from "../validateAddress.js";
2
- import { downgradePuzzleIfUnavailable } from "../../tasks/puzzle/puzzleRenderer.js";
2
+ import { samplePuzzleDifficulty, severityToPuzzleDifficulty } from "../../tasks/puzzle/puzzleDifficulty.js";
3
+ import { coerceToEnabledCaptchaType } from "../../tasks/captchaTypeSelection.js";
4
+ import { derivePlatform, deriveTrafficPolicies } from "../../utils/devicePlatform.js";
3
5
  import { Tasks } from "../../tasks/tasks.js";
4
6
  import { getMaintenanceMode } from "../admin/apiToggleMaintenanceModeEndpoint.js";
5
7
  import { resolveTestSiteKeyVerdict } from "../testSiteKey.js";
6
- import { derivePlatform } from "../../utils/devicePlatform.js";
7
8
  import { rawTlsSignalsForSession } from "../rawTlsSignalsMiddleware.js";
8
9
  import { ProsopoApiError } from "@prosopo/common";
9
- import { CaptchaType, SubmitPowCaptchaSolutionBody } from "@prosopo/types";
10
+ import { CaptchaType, SubmitPowCaptchaSolutionBody, imageMaxRoundsDefault } from "@prosopo/types";
10
11
  import { flatten, getIPAddress } from "@prosopo/util";
12
+ import { DEFAULT_RENDER_SETTINGS } from "@prosopo/puzzle-assets";
11
13
  //#region src/api/captcha/submitPoWCaptchaSolution.ts
12
14
  var submitPoWCaptchaSolution_default = (env) => async (req, res, next) => {
13
15
  if (getMaintenanceMode()) {
@@ -64,6 +66,7 @@ var submitPoWCaptchaSolution_default = (env) => async (req, res, next) => {
64
66
  challenge
65
67
  }
66
68
  }));
69
+ const trafficPolicies = deriveTrafficPolicies(clientRecord.settings?.trafficFilter);
67
70
  tasks.powCaptchaManager.setPostPowContext({
68
71
  ip: req.ip || "",
69
72
  countryCode,
@@ -76,7 +79,8 @@ var submitPoWCaptchaSolution_default = (env) => async (req, res, next) => {
76
79
  ...req.tcpToChelloUs !== void 0 && { tcpToChelloUs: req.tcpToChelloUs },
77
80
  ...req.chelloToHandshakeUs !== void 0 && { chelloToHandshakeUs: req.chelloToHandshakeUs },
78
81
  ...rawTlsSignalsForSession(req),
79
- ...req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid && { ipInfo: req.ipInfo }
82
+ ...req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid && { ipInfo: req.ipInfo },
83
+ ...trafficPolicies && { trafficPolicies }
80
84
  }
81
85
  });
82
86
  const submitWindowMs = clientRecord.settings.solutionTimeout ?? clientRecord.settings.verifiedTimeout;
@@ -93,6 +97,9 @@ var submitPoWCaptchaSolution_default = (env) => async (req, res, next) => {
93
97
  tcpToChelloUs: req.tcpToChelloUs,
94
98
  chelloToHandshakeUs: req.chelloToHandshakeUs,
95
99
  ...rawTlsSignalsForSession(req)
100
+ }, {
101
+ frictionlessTypes: clientRecord.settings?.frictionlessTypes,
102
+ imageMaxRounds: clientRecord.settings?.imageMaxRounds
96
103
  });
97
104
  const response = {
98
105
  status: "ok",
@@ -126,7 +133,7 @@ var submitPoWCaptchaSolution_default = (env) => async (req, res, next) => {
126
133
  * Exported for unit testing only — the handler above is the production entry
127
134
  * point.
128
135
  */
129
- var buildEscalation = async (tasks, result, challenge, perConnectionSignals) => {
136
+ var buildEscalation = async (tasks, result, challenge, perConnectionSignals, siteConstraints) => {
130
137
  if (!result.verified || !result.routingOutput) return void 0;
131
138
  const routedType = result.routingOutput.captchaType;
132
139
  if (routedType !== CaptchaType.image && routedType !== CaptchaType.puzzle) return;
@@ -135,9 +142,21 @@ var buildEscalation = async (tasks, result, challenge, perConnectionSignals) =>
135
142
  const originSession = await tasks.db.getSessionRecordBySessionId(powRecord.sessionId);
136
143
  if (!originSession) return void 0;
137
144
  const routed = result.routingOutput;
138
- const escalatedType = downgradePuzzleIfUnavailable(routed.captchaType);
145
+ const escalatedType = coerceToEnabledCaptchaType(routed.captchaType, siteConstraints?.frictionlessTypes);
146
+ if (escalatedType === CaptchaType.pow) return void 0;
147
+ const imageMaxRounds = siteConstraints?.imageMaxRounds ?? imageMaxRoundsDefault;
148
+ const escalationPuzzleOverrides = (() => {
149
+ if (escalatedType !== CaptchaType.puzzle) return void 0;
150
+ const level = severityToPuzzleDifficulty(routed.solvedImagesCount ?? originSession.solvedImagesCount, tasks.config.captchas.solved.count);
151
+ if (level === 0) return void 0;
152
+ const difficulty = samplePuzzleDifficulty(level, DEFAULT_RENDER_SETTINGS.holeDarken);
153
+ return {
154
+ puzzleTolerance: difficulty.tolerance,
155
+ puzzle: difficulty.puzzle
156
+ };
157
+ })();
139
158
  const selectionReason = routed.reason ?? originSession.reason;
140
- const newSession = await tasks.frictionlessManager.createSession(originSession.token, originSession.score, originSession.threshold, originSession.scoreComponents, originSession.ipAddress, escalatedType, originSession.siteKey ?? powRecord.dappAccount, escalatedType === CaptchaType.image ? routed.solvedImagesCount ?? originSession.solvedImagesCount : void 0, void 0, originSession.userSitekeyIpHash, originSession.webView, originSession.iFrame, originSession.decryptedHeadHash, selectionReason, void 0, void 0, originSession.ipInfo, originSession.headers, originSession.mode, originSession.simdReadings, originSession.entropyMathRandomFingerprint, originSession.entropyCryptoFingerprint, originSession.entropyWallClockOffsetMs, originSession.entropyMathRandomFirst, originSession.bundleId, originSession.currentUrl, perConnectionSignals?.tcpToChelloUs, perConnectionSignals?.chelloToHandshakeUs, true, originSession.iframeUrl, originSession.isProtect, originSession.sessionId, originSession.g, void 0, originSession.i, originSession.sw, originSession.md, originSession.bn, originSession.fs, perConnectionSignals && {
159
+ const newSession = await tasks.frictionlessManager.createSession(originSession.token, originSession.score, originSession.threshold, originSession.scoreComponents, originSession.ipAddress, escalatedType, originSession.siteKey ?? powRecord.dappAccount, escalatedType === CaptchaType.image ? Math.min(routed.solvedImagesCount ?? originSession.solvedImagesCount ?? tasks.config.captchas.solved.count, imageMaxRounds) : void 0, void 0, originSession.userSitekeyIpHash, originSession.webView, originSession.iFrame, originSession.decryptedHeadHash, selectionReason, void 0, void 0, originSession.ipInfo, originSession.headers, originSession.mode, originSession.simdReadings, originSession.entropyMathRandomFingerprint, originSession.entropyCryptoFingerprint, originSession.entropyWallClockOffsetMs, originSession.entropyMathRandomFirst, originSession.bundleId, originSession.currentUrl, perConnectionSignals?.tcpToChelloUs, perConnectionSignals?.chelloToHandshakeUs, true, originSession.iframeUrl, originSession.isProtect, originSession.sessionId, originSession.g, void 0, originSession.i, originSession.sw, originSession.md, originSession.bn, originSession.fs, perConnectionSignals && {
141
160
  synNs: perConnectionSignals.synNs,
142
161
  synackNs: perConnectionSignals.synackNs,
143
162
  ackNs: perConnectionSignals.ackNs,
@@ -147,7 +166,7 @@ var buildEscalation = async (tasks, result, challenge, perConnectionSignals) =>
147
166
  tcpOptsFlags: perConnectionSignals.tcpOptsFlags,
148
167
  tcpOptsOrder: perConnectionSignals.tcpOptsOrder,
149
168
  tcpWindow: perConnectionSignals.tcpWindow
150
- });
169
+ }, escalationPuzzleOverrides);
151
170
  if (tasks.writeQueue) await tasks.writeQueue.cacheSessionEscalation(powRecord.sessionId, newSession.sessionId);
152
171
  return {
153
172
  captchaType: escalatedType,
@@ -1 +1 @@
1
- {"version":3,"file":"submitPoWCaptchaSolution.js","sourceRoot":"","sources":["../../../src/api/captcha/submitPoWCaptchaSolution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submitPoWCaptchaSolution.js","sourceRoot":"","sources":["../../../src/api/captcha/submitPoWCaptchaSolution.ts"],"names":[],"mappings":"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"}
@@ -116,7 +116,10 @@ var handleAccessPolicy = async (input, res) => {
116
116
  require_honeypotResponse.attachHoneypot(res, clientRecord);
117
117
  return {
118
118
  handled: true,
119
- response: res.json(await tasks.frictionlessManager.sendPuzzleCaptcha(captchaTypeBaseParams))
119
+ response: res.json(await tasks.frictionlessManager.sendPuzzleCaptcha({
120
+ ...captchaTypeBaseParams,
121
+ ...userAccessPolicy.solvedImagesCount !== void 0 && { solvedImagesCount: userAccessPolicy.solvedImagesCount }
122
+ }))
120
123
  };
121
124
  }
122
125
  return {
@@ -2,10 +2,10 @@ const require_dnsEventUrl = require("../../dnsEventUrl.cjs");
2
2
  const require_compositeIpAddress = require("../../../compositeIpAddress.cjs");
3
3
  const require_metrics = require("../../metrics.cjs");
4
4
  const require_blacklistRequestInspector = require("../../blacklistRequestInspector.cjs");
5
+ const require_devicePlatform = require("../../../utils/devicePlatform.cjs");
5
6
  const require_tasks = require("../../../tasks/tasks.cjs");
6
7
  const require_apiToggleMaintenanceModeEndpoint = require("../../admin/apiToggleMaintenanceModeEndpoint.cjs");
7
8
  const require_testSiteKey = require("../../testSiteKey.cjs");
8
- const require_devicePlatform = require("../../../utils/devicePlatform.cjs");
9
9
  const require_hashUserAgent = require("../../../utils/hashUserAgent.cjs");
10
10
  const require_hashUserIp = require("../../../utils/hashUserIp.cjs");
11
11
  const require_normalizeRequestIp = require("../../../utils/normalizeRequestIp.cjs");
@@ -113,6 +113,7 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
113
113
  const dedupIsMobile = req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid ? req.ipInfo.isMobile : void 0;
114
114
  const dedupFlatHeaders = (0, _prosopo_util.flatten)(req.headers);
115
115
  const dedupUserAgent = String(req.headers["user-agent"] ?? "");
116
+ const dedupTrafficPolicies = require_devicePlatform.deriveTrafficPolicies(clientRecord.settings?.trafficFilter);
116
117
  const dedupUserScope = require_blacklistRequestInspector.getRequestUserScope(dedupFlatHeaders, req.ja4, normalizedIp, user, void 0, void 0, dedupCountryCode, dedupAsn);
117
118
  const dedupAccessPolicy = (await tasks.frictionlessManager.getPrioritisedAccessPolicies(userAccessRulesStorage, dapp, dedupUserScope)).find((p) => !p.deferToVerify);
118
119
  const dedupConflictsWithPolicy = dedupAccessPolicy !== void 0 && (dedupAccessPolicy.type === _prosopo_user_access_policy.AccessPolicyType.Block || dedupAccessPolicy.captchaType !== void 0 && dedupAccessPolicy.captchaType !== dedup.captchaType);
@@ -137,7 +138,8 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
137
138
  ...require_rawTlsSignalsMiddleware.rawTlsSignalsForSession(req),
138
139
  ...req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid && { ipInfo: req.ipInfo },
139
140
  ...dedup.session.currentUrl && { currentUrl: dedup.session.currentUrl },
140
- ...dedup.session.iframeUrl && { iframeUrl: dedup.session.iframeUrl }
141
+ ...dedup.session.iframeUrl && { iframeUrl: dedup.session.iframeUrl },
142
+ ...dedupTrafficPolicies && { trafficPolicies: dedupTrafficPolicies }
141
143
  }
142
144
  }) : { captchaType: cachedCaptchaType };
143
145
  const dedupConflictsWithRouting = dedupRouted.captchaType !== cachedCaptchaType;
@@ -306,6 +308,7 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
306
308
  });
307
309
  const ipInfoMobile = req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid ? req.ipInfo.isMobile : void 0;
308
310
  const safeUserAgent = userAgent ?? "";
311
+ const trafficPolicies = require_devicePlatform.deriveTrafficPolicies(clientRecord.settings?.trafficFilter);
309
312
  tasks.frictionlessManager.setRoutingContext({
310
313
  dappAccount: dapp,
311
314
  userAccount: user,
@@ -313,6 +316,8 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
313
316
  countryCode,
314
317
  score: botScore,
315
318
  imageMaxRounds: clientRecord.settings.imageMaxRounds,
319
+ frictionlessTypes: clientRecord.settings.frictionlessTypes,
320
+ baseImageRounds: env.config.captchas.solved.count,
316
321
  platform: require_devicePlatform.derivePlatform(safeUserAgent, webView, { ...typeof ipInfoMobile === "boolean" && { isMobile: ipInfoMobile } }),
317
322
  raw: {
318
323
  headers: flatHeaders,
@@ -323,7 +328,8 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
323
328
  ...require_rawTlsSignalsMiddleware.rawTlsSignalsForSession(req),
324
329
  ...req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid && { ipInfo: req.ipInfo },
325
330
  ...currentUrl && { currentUrl },
326
- ...iframeUrl && { iframeUrl }
331
+ ...iframeUrl && { iframeUrl },
332
+ ...trafficPolicies && { trafficPolicies }
327
333
  }
328
334
  });
329
335
  const userAccessPolicy = accessPolicies.find((p) => !(p.deferToVerify === true && p.type === _prosopo_user_access_policy.AccessPolicyType.Block));
@@ -92,10 +92,10 @@ var getPuzzleCaptchaChallenge_default = (env, userAccessRulesStorage) => async (
92
92
  logger: req.logger
93
93
  }));
94
94
  const trafficVerdict = require_trafficFilterRequestTime.applyTrafficFilterAtRequestTime(req.ipInfo, clientSettings.settings?.trafficFilter, req.logger);
95
- const tolerance = (trafficVerdict.kind === "challenge" ? trafficVerdict.puzzleTolerance : void 0) ?? clientSettings?.settings?.puzzleTolerance;
96
- const trafficPuzzleSettings = trafficVerdict.kind === "challenge" ? trafficVerdict.puzzleSettings : void 0;
97
- const effectivePuzzleSettings = require_puzzleRenderer.resolvePuzzleRenderSettings(clientSettings?.settings?.puzzle, trafficPuzzleSettings);
98
- const effectivePieceSize = require_puzzleRenderer.resolvePuzzlePieceSize(clientSettings?.settings?.puzzle, trafficPuzzleSettings);
95
+ const tolerance = (trafficVerdict.kind === "challenge" ? trafficVerdict.puzzleTolerance : void 0) ?? sessionRecord?.puzzleTolerance ?? clientSettings?.settings?.puzzleTolerance;
96
+ const routedPuzzleSettings = (trafficVerdict.kind === "challenge" ? trafficVerdict.puzzleSettings : void 0) ?? sessionRecord?.puzzle;
97
+ const effectivePuzzleSettings = require_puzzleRenderer.resolvePuzzleRenderSettings(clientSettings?.settings?.puzzle, routedPuzzleSettings);
98
+ const effectivePieceSize = require_puzzleRenderer.resolvePuzzlePieceSize(clientSettings?.settings?.puzzle, routedPuzzleSettings);
99
99
  const challenge = await tasks.puzzleCaptchaManager.getPuzzleCaptchaChallenge(user, dapp, origin, tolerance);
100
100
  if (validSessionId && simdReadings) await tasks.frictionlessManager.decryptAndAttachSimdReadingsIfAbsent(validSessionId, simdReadings, _prosopo_types.SimdReadingsStage.challenge).catch((updateErr) => {
101
101
  req.logger.warn(() => ({
@@ -1,13 +1,15 @@
1
1
  const require_validateAddress = require("../validateAddress.cjs");
2
- const require_puzzleRenderer = require("../../tasks/puzzle/puzzleRenderer.cjs");
2
+ const require_puzzleDifficulty = require("../../tasks/puzzle/puzzleDifficulty.cjs");
3
+ const require_captchaTypeSelection = require("../../tasks/captchaTypeSelection.cjs");
4
+ const require_devicePlatform = require("../../utils/devicePlatform.cjs");
3
5
  const require_tasks = require("../../tasks/tasks.cjs");
4
6
  const require_apiToggleMaintenanceModeEndpoint = require("../admin/apiToggleMaintenanceModeEndpoint.cjs");
5
7
  const require_testSiteKey = require("../testSiteKey.cjs");
6
- const require_devicePlatform = require("../../utils/devicePlatform.cjs");
7
8
  const require_rawTlsSignalsMiddleware = require("../rawTlsSignalsMiddleware.cjs");
8
9
  let _prosopo_common = require("@prosopo/common");
9
10
  let _prosopo_types = require("@prosopo/types");
10
11
  let _prosopo_util = require("@prosopo/util");
12
+ let _prosopo_puzzle_assets = require("@prosopo/puzzle-assets");
11
13
  //#region src/api/captcha/submitPoWCaptchaSolution.ts
12
14
  var submitPoWCaptchaSolution_default = (env) => async (req, res, next) => {
13
15
  if (require_apiToggleMaintenanceModeEndpoint.getMaintenanceMode()) {
@@ -64,6 +66,7 @@ var submitPoWCaptchaSolution_default = (env) => async (req, res, next) => {
64
66
  challenge
65
67
  }
66
68
  }));
69
+ const trafficPolicies = require_devicePlatform.deriveTrafficPolicies(clientRecord.settings?.trafficFilter);
67
70
  tasks.powCaptchaManager.setPostPowContext({
68
71
  ip: req.ip || "",
69
72
  countryCode,
@@ -76,7 +79,8 @@ var submitPoWCaptchaSolution_default = (env) => async (req, res, next) => {
76
79
  ...req.tcpToChelloUs !== void 0 && { tcpToChelloUs: req.tcpToChelloUs },
77
80
  ...req.chelloToHandshakeUs !== void 0 && { chelloToHandshakeUs: req.chelloToHandshakeUs },
78
81
  ...require_rawTlsSignalsMiddleware.rawTlsSignalsForSession(req),
79
- ...req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid && { ipInfo: req.ipInfo }
82
+ ...req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid && { ipInfo: req.ipInfo },
83
+ ...trafficPolicies && { trafficPolicies }
80
84
  }
81
85
  });
82
86
  const submitWindowMs = clientRecord.settings.solutionTimeout ?? clientRecord.settings.verifiedTimeout;
@@ -93,6 +97,9 @@ var submitPoWCaptchaSolution_default = (env) => async (req, res, next) => {
93
97
  tcpToChelloUs: req.tcpToChelloUs,
94
98
  chelloToHandshakeUs: req.chelloToHandshakeUs,
95
99
  ...require_rawTlsSignalsMiddleware.rawTlsSignalsForSession(req)
100
+ }, {
101
+ frictionlessTypes: clientRecord.settings?.frictionlessTypes,
102
+ imageMaxRounds: clientRecord.settings?.imageMaxRounds
96
103
  });
97
104
  const response = {
98
105
  status: "ok",
@@ -126,7 +133,7 @@ var submitPoWCaptchaSolution_default = (env) => async (req, res, next) => {
126
133
  * Exported for unit testing only — the handler above is the production entry
127
134
  * point.
128
135
  */
129
- var buildEscalation = async (tasks, result, challenge, perConnectionSignals) => {
136
+ var buildEscalation = async (tasks, result, challenge, perConnectionSignals, siteConstraints) => {
130
137
  if (!result.verified || !result.routingOutput) return void 0;
131
138
  const routedType = result.routingOutput.captchaType;
132
139
  if (routedType !== _prosopo_types.CaptchaType.image && routedType !== _prosopo_types.CaptchaType.puzzle) return;
@@ -135,9 +142,21 @@ var buildEscalation = async (tasks, result, challenge, perConnectionSignals) =>
135
142
  const originSession = await tasks.db.getSessionRecordBySessionId(powRecord.sessionId);
136
143
  if (!originSession) return void 0;
137
144
  const routed = result.routingOutput;
138
- const escalatedType = require_puzzleRenderer.downgradePuzzleIfUnavailable(routed.captchaType);
145
+ const escalatedType = require_captchaTypeSelection.coerceToEnabledCaptchaType(routed.captchaType, siteConstraints?.frictionlessTypes);
146
+ if (escalatedType === _prosopo_types.CaptchaType.pow) return void 0;
147
+ const imageMaxRounds = siteConstraints?.imageMaxRounds ?? _prosopo_types.imageMaxRoundsDefault;
148
+ const escalationPuzzleOverrides = (() => {
149
+ if (escalatedType !== _prosopo_types.CaptchaType.puzzle) return void 0;
150
+ const level = require_puzzleDifficulty.severityToPuzzleDifficulty(routed.solvedImagesCount ?? originSession.solvedImagesCount, tasks.config.captchas.solved.count);
151
+ if (level === 0) return void 0;
152
+ const difficulty = require_puzzleDifficulty.samplePuzzleDifficulty(level, _prosopo_puzzle_assets.DEFAULT_RENDER_SETTINGS.holeDarken);
153
+ return {
154
+ puzzleTolerance: difficulty.tolerance,
155
+ puzzle: difficulty.puzzle
156
+ };
157
+ })();
139
158
  const selectionReason = routed.reason ?? originSession.reason;
140
- const newSession = await tasks.frictionlessManager.createSession(originSession.token, originSession.score, originSession.threshold, originSession.scoreComponents, originSession.ipAddress, escalatedType, originSession.siteKey ?? powRecord.dappAccount, escalatedType === _prosopo_types.CaptchaType.image ? routed.solvedImagesCount ?? originSession.solvedImagesCount : void 0, void 0, originSession.userSitekeyIpHash, originSession.webView, originSession.iFrame, originSession.decryptedHeadHash, selectionReason, void 0, void 0, originSession.ipInfo, originSession.headers, originSession.mode, originSession.simdReadings, originSession.entropyMathRandomFingerprint, originSession.entropyCryptoFingerprint, originSession.entropyWallClockOffsetMs, originSession.entropyMathRandomFirst, originSession.bundleId, originSession.currentUrl, perConnectionSignals?.tcpToChelloUs, perConnectionSignals?.chelloToHandshakeUs, true, originSession.iframeUrl, originSession.isProtect, originSession.sessionId, originSession.g, void 0, originSession.i, originSession.sw, originSession.md, originSession.bn, originSession.fs, perConnectionSignals && {
159
+ const newSession = await tasks.frictionlessManager.createSession(originSession.token, originSession.score, originSession.threshold, originSession.scoreComponents, originSession.ipAddress, escalatedType, originSession.siteKey ?? powRecord.dappAccount, escalatedType === _prosopo_types.CaptchaType.image ? Math.min(routed.solvedImagesCount ?? originSession.solvedImagesCount ?? tasks.config.captchas.solved.count, imageMaxRounds) : void 0, void 0, originSession.userSitekeyIpHash, originSession.webView, originSession.iFrame, originSession.decryptedHeadHash, selectionReason, void 0, void 0, originSession.ipInfo, originSession.headers, originSession.mode, originSession.simdReadings, originSession.entropyMathRandomFingerprint, originSession.entropyCryptoFingerprint, originSession.entropyWallClockOffsetMs, originSession.entropyMathRandomFirst, originSession.bundleId, originSession.currentUrl, perConnectionSignals?.tcpToChelloUs, perConnectionSignals?.chelloToHandshakeUs, true, originSession.iframeUrl, originSession.isProtect, originSession.sessionId, originSession.g, void 0, originSession.i, originSession.sw, originSession.md, originSession.bn, originSession.fs, perConnectionSignals && {
141
160
  synNs: perConnectionSignals.synNs,
142
161
  synackNs: perConnectionSignals.synackNs,
143
162
  ackNs: perConnectionSignals.ackNs,
@@ -147,7 +166,7 @@ var buildEscalation = async (tasks, result, challenge, perConnectionSignals) =>
147
166
  tcpOptsFlags: perConnectionSignals.tcpOptsFlags,
148
167
  tcpOptsOrder: perConnectionSignals.tcpOptsOrder,
149
168
  tcpWindow: perConnectionSignals.tcpWindow
150
- });
169
+ }, escalationPuzzleOverrides);
151
170
  if (tasks.writeQueue) await tasks.writeQueue.cacheSessionEscalation(powRecord.sessionId, newSession.sessionId);
152
171
  return {
153
172
  captchaType: escalatedType,
@@ -0,0 +1,53 @@
1
+ const require_puzzleRenderer = require("./puzzle/puzzleRenderer.cjs");
2
+ let _prosopo_types = require("@prosopo/types");
3
+ //#region src/tasks/captchaTypeSelection.ts
4
+ /**
5
+ * Resolve a requested captcha type against what the site permits and what
6
+ * this provider can render.
7
+ *
8
+ * Call this at every point a session's captchaType is DECIDED, never at the
9
+ * point one is served: `/captcha/puzzle` answers with a puzzle-shaped
10
+ * response and nothing else, so a session minted as a type we cannot fulfil
11
+ * strands the user on INCORRECT_CAPTCHA_TYPE. There are two such mint sites —
12
+ * `sendCaptcha` in frictionlessTasks (which every frictionless path funnels
13
+ * through, after the routing machine has had its say) and `buildEscalation`
14
+ * in submitPoWCaptchaSolution.
15
+ *
16
+ * Because it sits after routing, this covers every upstream selector
17
+ * transitively: the score ladder, the no-measurement gates, access-policy
18
+ * Restrict rules, traffic-filter category policies, routing-machine actions
19
+ * and detector-generated rules.
20
+ *
21
+ * Coercion only ever narrows. A disabled type falls back to the other
22
+ * interactive type if that is permitted, and to PoW otherwise — never the
23
+ * reverse, so this can't hand a user a harder challenge than was asked for.
24
+ */
25
+ var coerceToEnabledCaptchaType = (requested, frictionlessTypes, logger) => {
26
+ const types = (0, _prosopo_types.resolveFrictionlessTypes)(frictionlessTypes);
27
+ const puzzleAllowed = types.puzzle && require_puzzleRenderer.isPuzzleRenderAvailable();
28
+ const imageAllowed = types.image;
29
+ const resolved = (() => {
30
+ switch (requested) {
31
+ case _prosopo_types.CaptchaType.pow: return _prosopo_types.CaptchaType.pow;
32
+ case _prosopo_types.CaptchaType.puzzle:
33
+ if (puzzleAllowed) return _prosopo_types.CaptchaType.puzzle;
34
+ return imageAllowed ? _prosopo_types.CaptchaType.image : _prosopo_types.CaptchaType.pow;
35
+ case _prosopo_types.CaptchaType.image:
36
+ if (imageAllowed) return _prosopo_types.CaptchaType.image;
37
+ return puzzleAllowed ? _prosopo_types.CaptchaType.puzzle : _prosopo_types.CaptchaType.pow;
38
+ }
39
+ })();
40
+ if (resolved !== requested) logger?.info(() => ({
41
+ msg: "Captcha type coerced to an enabled type",
42
+ data: {
43
+ requested,
44
+ served: resolved,
45
+ imageEnabled: types.image,
46
+ puzzleEnabled: types.puzzle,
47
+ puzzleRenderable: require_puzzleRenderer.isPuzzleRenderAvailable()
48
+ }
49
+ }));
50
+ return resolved;
51
+ };
52
+ //#endregion
53
+ exports.coerceToEnabledCaptchaType = coerceToEnabledCaptchaType;
@@ -3,10 +3,12 @@ const require_decisionMachineRunner = require("../decisionMachine/decisionMachin
3
3
  const require_dnsEventUrl = require("../../api/dnsEventUrl.cjs");
4
4
  const require_lang = require("../../rules/lang.cjs");
5
5
  const require_captchaManager = require("../captchaManager.cjs");
6
+ const require_puzzleDifficulty = require("../puzzle/puzzleDifficulty.cjs");
7
+ const require_captchaTypeSelection = require("../captchaTypeSelection.cjs");
6
8
  const require_getBotScore = require("../detection/getBotScore.cjs");
7
- const require_puzzleRenderer = require("../puzzle/puzzleRenderer.cjs");
8
9
  const require_routingMachine = require("./routingMachine.cjs");
9
10
  let _prosopo_types = require("@prosopo/types");
11
+ let _prosopo_puzzle_assets = require("@prosopo/puzzle-assets");
10
12
  let uuid = require("uuid");
11
13
  //#region src/tasks/frictionless/frictionlessTasks.ts
12
14
  var DEFAULT_MAX_TIMESTAMP_AGE = 600 * 1e3;
@@ -112,7 +114,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
112
114
  checkLangRules(acceptLanguage) {
113
115
  return require_lang.checkLangRules(this.config, acceptLanguage);
114
116
  }
115
- async createSession(token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, solvedImagesCount, powDifficulty, userSitekeyIpHash, webView = false, iFrame = false, decryptedHeadHash = "", reason, blocked, deleted, ipInfo, headers, mode, simdReadings, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, bundleId, currentUrl, tcpToChelloUs, chelloToHandshakeUs, isEscalation, iframeUrl, isProtect, originSessionId, g, matchedRule, i, sw, md, bn, fs, rawTlsSignals) {
117
+ async createSession(token, score, threshold, scoreComponents, ipAddress, captchaType, siteKey, solvedImagesCount, powDifficulty, userSitekeyIpHash, webView = false, iFrame = false, decryptedHeadHash = "", reason, blocked, deleted, ipInfo, headers, mode, simdReadings, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, bundleId, currentUrl, tcpToChelloUs, chelloToHandshakeUs, isEscalation, iframeUrl, isProtect, originSessionId, g, matchedRule, i, sw, md, bn, fs, rawTlsSignals, puzzleOverrides) {
116
118
  const sessionRecord = {
117
119
  sessionId: `${getSessionIDPrefix(this.config.host)}-${(0, uuid.v4)()}`,
118
120
  createdAt: /* @__PURE__ */ new Date(),
@@ -125,6 +127,8 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
125
127
  mode,
126
128
  solvedImagesCount,
127
129
  powDifficulty,
130
+ ...puzzleOverrides?.puzzleTolerance !== void 0 && { puzzleTolerance: puzzleOverrides.puzzleTolerance },
131
+ ...puzzleOverrides?.puzzle && { puzzle: puzzleOverrides.puzzle },
128
132
  userSitekeyIpHash,
129
133
  webView,
130
134
  iFrame,
@@ -188,13 +192,27 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
188
192
  powDifficulty: captchaType === _prosopo_types.CaptchaType.pow ? effectiveParams.powDifficulty : void 0
189
193
  };
190
194
  const routed = this.routingContext ? await require_routingMachine.applyRouter(this.decisionMachineRunner, this.usageCounters, baseline, this.routingContext, this.logger) : baseline;
191
- const finalCaptchaType = require_puzzleRenderer.downgradePuzzleIfUnavailable(routed.captchaType, this.logger);
195
+ const finalCaptchaType = require_captchaTypeSelection.coerceToEnabledCaptchaType(routed.captchaType, this.routingContext?.frictionlessTypes, this.logger);
192
196
  const requestedSolvedImagesCount = routed.solvedImagesCount ?? effectiveParams.solvedImagesCount;
193
- const imageRoundsCeiling = this.routingContext?.imageMaxRounds;
194
- const finalSolvedImagesCount = finalCaptchaType === _prosopo_types.CaptchaType.image ? requestedSolvedImagesCount !== void 0 && imageRoundsCeiling !== void 0 ? Math.min(requestedSolvedImagesCount, imageRoundsCeiling) : requestedSolvedImagesCount : void 0;
197
+ const imageRoundsCeiling = this.routingContext?.imageMaxRounds ?? _prosopo_types.imageMaxRoundsDefault;
198
+ const finalSolvedImagesCount = finalCaptchaType === _prosopo_types.CaptchaType.image ? requestedSolvedImagesCount !== void 0 ? Math.min(requestedSolvedImagesCount, imageRoundsCeiling) : requestedSolvedImagesCount : void 0;
195
199
  const finalPowDifficulty = finalCaptchaType === _prosopo_types.CaptchaType.pow ? routed.powDifficulty ?? effectiveParams.powDifficulty : void 0;
200
+ const finalPuzzleOverrides = finalCaptchaType === _prosopo_types.CaptchaType.puzzle ? (() => {
201
+ const level = require_puzzleDifficulty.severityToPuzzleDifficulty(requestedSolvedImagesCount, this.routingContext?.baseImageRounds ?? this.config.captchas.solved.count);
202
+ const difficulty = level > 0 ? require_puzzleDifficulty.samplePuzzleDifficulty(level, _prosopo_puzzle_assets.DEFAULT_RENDER_SETTINGS.holeDarken) : void 0;
203
+ const tolerance = routed.puzzleTolerance ?? difficulty?.tolerance;
204
+ const puzzle = routed.puzzle || difficulty ? {
205
+ ...difficulty?.puzzle ?? {},
206
+ ...routed.puzzle ?? {}
207
+ } : void 0;
208
+ return {
209
+ ...tolerance !== void 0 && { puzzleTolerance: tolerance },
210
+ ...puzzle !== void 0 && { puzzle }
211
+ };
212
+ })() : {};
213
+ const finalReason = routed.reason ?? effectiveParams.reason;
196
214
  const blocked = finalCaptchaType === _prosopo_types.CaptchaType.image ? effectiveParams.blocked : void 0;
197
- const sessionRecord = await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, finalCaptchaType, effectiveParams.siteKey, finalSolvedImagesCount, finalPowDifficulty, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, effectiveParams.reason, blocked, void 0, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.bundleId, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect, void 0, effectiveParams.g, effectiveParams.matchedRule, effectiveParams.i, effectiveParams.sw, effectiveParams.md, effectiveParams.bn, effectiveParams.fs, {
215
+ const sessionRecord = await this.createSession(effectiveParams.token, effectiveParams.score, effectiveParams.threshold, effectiveParams.scoreComponents, effectiveParams.ipAddress, finalCaptchaType, effectiveParams.siteKey, finalSolvedImagesCount, finalPowDifficulty, effectiveParams.userSitekeyIpHash, effectiveParams.webView ?? false, effectiveParams.iFrame ?? false, effectiveParams.decryptedHeadHash, finalReason, blocked, void 0, effectiveParams.ipInfo, effectiveParams.headers, effectiveParams.mode, effectiveParams.simdReadings, effectiveParams.entropyMathRandomFingerprint, effectiveParams.entropyCryptoFingerprint, effectiveParams.entropyWallClockOffsetMs, effectiveParams.entropyMathRandomFirst, effectiveParams.bundleId, effectiveParams.currentUrl, effectiveParams.tcpToChelloUs, effectiveParams.chelloToHandshakeUs, void 0, effectiveParams.iframeUrl, effectiveParams.isProtect, void 0, effectiveParams.g, effectiveParams.matchedRule, effectiveParams.i, effectiveParams.sw, effectiveParams.md, effectiveParams.bn, effectiveParams.fs, {
198
216
  synNs: effectiveParams.synNs,
199
217
  synackNs: effectiveParams.synackNs,
200
218
  ackNs: effectiveParams.ackNs,
@@ -204,7 +222,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
204
222
  tcpOptsFlags: effectiveParams.tcpOptsFlags,
205
223
  tcpOptsOrder: effectiveParams.tcpOptsOrder,
206
224
  tcpWindow: effectiveParams.tcpWindow
207
- });
225
+ }, finalPuzzleOverrides);
208
226
  if (this.routingContext && this.usageCounters) this.usageCounters.incrManyAsync(this.routingContext.dappAccount, require_usageCounters.buildAllWindowIncrements("served", finalCaptchaType, this.routingContext.ip, this.routingContext.userAccount));
209
227
  return {
210
228
  [_prosopo_types.ApiParams.captchaType]: finalCaptchaType,
@@ -7,6 +7,7 @@ const require_captchaManager = require("../captchaManager.cjs");
7
7
  const require_pairs = require("../../pairs.cjs");
8
8
  const require_util = require("../../util.cjs");
9
9
  const require_clientMetaData = require("../../utils/clientMetaData.cjs");
10
+ const require_devicePlatform = require("../../utils/devicePlatform.cjs");
10
11
  const require_frictionlessTasksUtils = require("../frictionless/frictionlessTasksUtils.cjs");
11
12
  const require_evaluateEmailSpamRules = require("../spam/evaluateEmailSpamRules.cjs");
12
13
  const require_imgCaptchaTasksUtils = require("./imgCaptchaTasksUtils.cjs");
@@ -554,7 +555,8 @@ var ImgCaptchaManager = class extends require_captchaManager.CaptchaManager {
554
555
  tcpWscale: sessionRecord?.tcpWscale,
555
556
  tcpOptsFlags: sessionRecord?.tcpOptsFlags,
556
557
  tcpOptsOrder: sessionRecord?.tcpOptsOrder,
557
- tcpWindow: sessionRecord?.tcpWindow
558
+ tcpWindow: sessionRecord?.tcpWindow,
559
+ trafficPolicies: require_devicePlatform.deriveTrafficPolicies(trafficFilter)
558
560
  };
559
561
  try {
560
562
  const decision = await this.decisionMachineRunner.decide(decisionInput, logger);
@@ -6,6 +6,7 @@ const require_captchaManager = require("../captchaManager.cjs");
6
6
  const require_routingMachine = require("../frictionless/routingMachine.cjs");
7
7
  const require_util = require("../../util.cjs");
8
8
  const require_clientMetaData = require("../../utils/clientMetaData.cjs");
9
+ const require_devicePlatform = require("../../utils/devicePlatform.cjs");
9
10
  const require_frictionlessTasksUtils = require("../frictionless/frictionlessTasksUtils.cjs");
10
11
  const require_evaluateEmailSpamRules = require("../spam/evaluateEmailSpamRules.cjs");
11
12
  const require_powTasksUtils = require("./powTasksUtils.cjs");
@@ -502,7 +503,8 @@ var PowCaptchaManager = class extends require_captchaManager.CaptchaManager {
502
503
  tcpWscale: sessionRecord?.tcpWscale,
503
504
  tcpOptsFlags: sessionRecord?.tcpOptsFlags,
504
505
  tcpOptsOrder: sessionRecord?.tcpOptsOrder,
505
- tcpWindow: sessionRecord?.tcpWindow
506
+ tcpWindow: sessionRecord?.tcpWindow,
507
+ trafficPolicies: require_devicePlatform.deriveTrafficPolicies(trafficFilter)
506
508
  };
507
509
  const decision = await this.decisionMachineRunner.decide(decisionInput, logger);
508
510
  if (decision.decision === _prosopo_types.DecisionMachineDecision.Deny) {