@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.
- package/.turbo/turbo-build$colon$cjs.log +16 -13
- package/.turbo/turbo-build$colon$tsc.log +25 -25
- package/.turbo/turbo-build.log +17 -14
- package/CHANGELOG.md +55 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js +4 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +9 -3
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
- package/dist/api/captcha/getPuzzleCaptchaChallenge.d.ts.map +1 -1
- package/dist/api/captcha/getPuzzleCaptchaChallenge.js +4 -4
- package/dist/api/captcha/getPuzzleCaptchaChallenge.js.map +1 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.d.ts +4 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.js +27 -8
- package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.cjs +4 -1
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +9 -3
- package/dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs +4 -4
- package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +26 -7
- package/dist/cjs/tasks/captchaTypeSelection.cjs +53 -0
- package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +25 -7
- package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +3 -1
- package/dist/cjs/tasks/powCaptcha/powTasks.cjs +3 -1
- package/dist/cjs/tasks/puzzle/puzzleDifficulty.cjs +208 -0
- package/dist/cjs/tasks/puzzle/puzzleRenderer.cjs +13 -61
- package/dist/cjs/tasks/puzzle/stratifiedSampler.cjs +61 -0
- package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +3 -1
- package/dist/cjs/utils/devicePlatform.cjs +34 -0
- package/dist/tasks/captchaManager.d.ts +2 -2
- package/dist/tasks/captchaManager.d.ts.map +1 -1
- package/dist/tasks/captchaManager.js.map +1 -1
- package/dist/tasks/captchaTypeSelection.d.ts +5 -0
- package/dist/tasks/captchaTypeSelection.d.ts.map +1 -0
- package/dist/tasks/captchaTypeSelection.js +53 -0
- package/dist/tasks/captchaTypeSelection.js.map +1 -0
- package/dist/tasks/decisionMachine/decisionMachineRunner.d.ts.map +1 -1
- package/dist/tasks/decisionMachine/decisionMachineRunner.js.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.d.ts +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.js +26 -8
- package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
- package/dist/tasks/frictionless/routingMachine.d.ts +3 -1
- package/dist/tasks/frictionless/routingMachine.d.ts.map +1 -1
- package/dist/tasks/frictionless/routingMachine.js.map +1 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +3 -1
- package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.js +3 -1
- package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
- package/dist/tasks/puzzle/puzzleDifficulty.d.ts +25 -0
- package/dist/tasks/puzzle/puzzleDifficulty.d.ts.map +1 -0
- package/dist/tasks/puzzle/puzzleDifficulty.js +204 -0
- package/dist/tasks/puzzle/puzzleDifficulty.js.map +1 -0
- package/dist/tasks/puzzle/puzzleRenderer.d.ts +1 -3
- package/dist/tasks/puzzle/puzzleRenderer.d.ts.map +1 -1
- package/dist/tasks/puzzle/puzzleRenderer.js +15 -62
- package/dist/tasks/puzzle/puzzleRenderer.js.map +1 -1
- package/dist/tasks/puzzle/stratifiedSampler.d.ts +7 -0
- package/dist/tasks/puzzle/stratifiedSampler.d.ts.map +1 -0
- package/dist/tasks/puzzle/stratifiedSampler.js +61 -0
- package/dist/tasks/puzzle/stratifiedSampler.js.map +1 -0
- package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
- package/dist/tasks/puzzleCaptcha/puzzleTasks.js +3 -1
- package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
- package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js +2 -0
- package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js.map +1 -1
- package/dist/tests/integration/clientSettingsPersistence.integration.test.js +1 -0
- package/dist/tests/integration/clientSettingsPersistence.integration.test.js.map +1 -1
- package/dist/tests/integration/routingDecisionMachines.integration.test.js +280 -3
- package/dist/tests/integration/routingDecisionMachines.integration.test.js.map +1 -1
- package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js +1 -0
- package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js.map +1 -1
- package/dist/tests/unit/api/captcha/submitPoWCaptchaSolution.escalation.unit.test.js +3 -0
- package/dist/tests/unit/api/captcha/submitPoWCaptchaSolution.escalation.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/captchaManager.unit.test.js +1 -0
- package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.js +54 -0
- package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/frictionless/routerImageRoundsClamp.unit.test.js +3 -3
- package/dist/tests/unit/tasks/frictionless/routerImageRoundsClamp.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/frictionless/routerPuzzleOverrides.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/frictionless/routerPuzzleOverrides.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/frictionless/routerPuzzleOverrides.unit.test.js +119 -0
- package/dist/tests/unit/tasks/frictionless/routerPuzzleOverrides.unit.test.js.map +1 -0
- package/dist/tests/unit/tasks/puzzleDifficulty.unit.test.d.ts +2 -0
- package/dist/tests/unit/tasks/puzzleDifficulty.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/tasks/puzzleDifficulty.unit.test.js +137 -0
- package/dist/tests/unit/tasks/puzzleDifficulty.unit.test.js.map +1 -0
- package/dist/tests/unit/utils/devicePlatform.unit.test.js +61 -1
- package/dist/tests/unit/utils/devicePlatform.unit.test.js.map +1 -1
- package/dist/utils/devicePlatform.d.ts +2 -1
- package/dist/utils/devicePlatform.d.ts.map +1 -1
- package/dist/utils/devicePlatform.js +34 -1
- package/dist/utils/devicePlatform.js.map +1 -1
- 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":"
|
|
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 {
|
|
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 =
|
|
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":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACN,WAAW,
|
|
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(
|
|
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
|
|
97
|
-
const effectivePuzzleSettings = require_puzzleRenderer.resolvePuzzleRenderSettings(clientSettings?.settings?.puzzle,
|
|
98
|
-
const effectivePieceSize = require_puzzleRenderer.resolvePuzzlePieceSize(clientSettings?.settings?.puzzle,
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
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,
|
|
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) {
|