@prosopo/provider 5.16.0 → 5.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +7 -7
  2. package/.turbo/turbo-build$colon$tsc.log +28 -28
  3. package/.turbo/turbo-build.log +7 -7
  4. package/CHANGELOG.md +29 -0
  5. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts +1 -0
  6. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts.map +1 -1
  7. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js +7 -2
  8. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js.map +1 -1
  9. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  10. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +6 -5
  11. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  12. package/dist/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.d.ts +7 -2
  13. package/dist/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.d.ts.map +1 -1
  14. package/dist/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.js +14 -4
  15. package/dist/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.js.map +1 -1
  16. package/dist/api/captcha/getPuzzleCaptchaChallenge.d.ts.map +1 -1
  17. package/dist/api/captcha/getPuzzleCaptchaChallenge.js +3 -1
  18. package/dist/api/captcha/getPuzzleCaptchaChallenge.js.map +1 -1
  19. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/constants.cjs +6 -0
  20. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +4 -3
  21. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.cjs +14 -3
  22. package/dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs +3 -1
  23. package/dist/cjs/tasks/captchaTypeSelection.cjs +10 -0
  24. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +14 -3
  25. package/dist/tasks/captchaTypeSelection.d.ts +1 -0
  26. package/dist/tasks/captchaTypeSelection.d.ts.map +1 -1
  27. package/dist/tasks/captchaTypeSelection.js +10 -1
  28. package/dist/tasks/captchaTypeSelection.js.map +1 -1
  29. package/dist/tasks/frictionless/frictionlessTasks.d.ts +2 -0
  30. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
  31. package/dist/tasks/frictionless/frictionlessTasks.js +15 -4
  32. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
  33. package/dist/tests/integration/clientSettingsPersistence.integration.test.js +2 -0
  34. package/dist/tests/integration/clientSettingsPersistence.integration.test.js.map +1 -1
  35. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.unit.test.js +29 -3
  36. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.unit.test.js.map +1 -1
  37. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js +53 -0
  38. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js.map +1 -1
  39. package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.js +17 -1
  40. package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.js.map +1 -1
  41. package/dist/tests/unit/tasks/frictionless/refreshSwitch.unit.test.js +26 -1
  42. package/dist/tests/unit/tasks/frictionless/refreshSwitch.unit.test.js.map +1 -1
  43. package/package.json +15 -15
@@ -22,6 +22,11 @@ var resolveSiteAllowedCaptchaTypes = (settings) => (0, _prosopo_types.resolveAll
22
22
  ...(!settings.captchaType || settings.captchaType === _prosopo_types.CaptchaType.frictionless) && { frictionlessTypes: settings.frictionlessTypes }
23
23
  });
24
24
  /**
25
+ * Whether a user on this site may swap a puzzle for an image challenge: the
26
+ * switch is on and the site may be served image challenges at all.
27
+ */
28
+ var isPuzzleImageSwitchAvailable = (settings) => (0, _prosopo_types.isWidgetFeatureEnabled)("puzzleImageSwitch", settings.widgetFeatureFlags) && resolveSiteAllowedCaptchaTypes(settings).image;
29
+ /**
25
30
  * Size an image challenge by how much was actually found. `base` is the
26
31
  * sitekey's ordinary image round count; each triggered signal adds a round,
27
32
  * capped by `MAX_DETECTOR_EXTRA_IMAGE_ROUNDS`. A session with nothing
@@ -32,5 +37,6 @@ var resolveSiteAllowedCaptchaTypes = (settings) => (0, _prosopo_types.resolveAll
32
37
  var getRoundsFromTriggeredDetectors = (base, triggeredDetectors) => base + Math.min(triggeredDetectors?.length ?? 0, 6);
33
38
  //#endregion
34
39
  exports.getRoundsFromTriggeredDetectors = getRoundsFromTriggeredDetectors;
40
+ exports.isPuzzleImageSwitchAvailable = isPuzzleImageSwitchAvailable;
35
41
  exports.resolveScoreLadder = resolveScoreLadder;
36
42
  exports.resolveSiteAllowedCaptchaTypes = resolveSiteAllowedCaptchaTypes;
@@ -41,7 +41,7 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
41
41
  }
42
42
  }));
43
43
  });
44
- const { token, headHash, dapp, user, mode, simdReadings, detectorSessionId, currentUrl: reportedCurrentUrl, iframeUrl: reportedIframeUrl, clientSessionId, refreshOf } = _prosopo_types.GetFrictionlessCaptchaChallengeRequestBody.parse(req.body);
44
+ const { token, headHash, dapp, user, mode, simdReadings, detectorSessionId, currentUrl: reportedCurrentUrl, iframeUrl: reportedIframeUrl, clientSessionId, refreshOf, switchToImage } = _prosopo_types.GetFrictionlessCaptchaChallengeRequestBody.parse(req.body);
45
45
  const currentUrl = (0, _prosopo_util.sanitisePageUrl)(reportedCurrentUrl);
46
46
  const iframeUrl = (0, _prosopo_util.sanitisePageUrl)(reportedIframeUrl);
47
47
  const isProtect = (0, _prosopo_util.isProtectDeployment)(currentUrl, iframeUrl);
@@ -238,6 +238,8 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
238
238
  ...req.chelloToHandshakeUs !== void 0 && { chelloToHandshakeUs: req.chelloToHandshakeUs },
239
239
  ...require_rawTlsSignalsMiddleware.rawTlsSignalsForSession(req)
240
240
  };
241
+ const refresh = await require_refreshLineage.resolveRefreshLineage(tasks.db, refreshOf, dapp, /* @__PURE__ */ new Date());
242
+ tasks.frictionlessManager.setImageSwitchRequested(require_refreshLineage.isImageSwitchRequestValid(switchToImage, refresh, require_constants.isPuzzleImageSwitchAvailable(clientRecord.settings)));
241
243
  const shortCircuitResponse = await require_shortCircuit.runConfiguredCaptchaTypeShortCircuit(shortCircuitInput, res);
242
244
  if (shortCircuitResponse) return shortCircuitResponse;
243
245
  const emptyPoolResponse = await require_shortCircuit.runEmptyDetectorPoolPowFallback(shortCircuitInput, res);
@@ -316,7 +318,6 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
316
318
  ...triggeredDetectors && triggeredDetectors.length > 0 && { triggeredDetectors },
317
319
  ...shadowDomPenalty !== void 0 && { shadowDomPenalty }
318
320
  };
319
- const refreshLineage = await require_refreshLineage.resolveRefreshLineage(tasks.db, refreshOf, dapp, /* @__PURE__ */ new Date());
320
321
  tasks.frictionlessManager.setSessionParams({
321
322
  token: sessionToken,
322
323
  score: botScore,
@@ -337,7 +338,7 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
337
338
  ...decodedSimdReadings && { simdReadings: decodedSimdReadings },
338
339
  ...d !== void 0 && { d },
339
340
  ...clientSessionId && { clientMetaData: { clientSessionId } },
340
- ...refreshLineage,
341
+ ...refresh?.lineage,
341
342
  ...req.tcpToChelloUs !== void 0 && { tcpToChelloUs: req.tcpToChelloUs },
342
343
  ...req.chelloToHandshakeUs !== void 0 && { chelloToHandshakeUs: req.chelloToHandshakeUs },
343
344
  ...require_rawTlsSignalsMiddleware.rawTlsSignalsForSession(req)
@@ -1,3 +1,4 @@
1
+ let _prosopo_types = require("@prosopo/types");
1
2
  //#region src/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.ts
2
3
  /**
3
4
  * Work out where a refresh sits in its chain from the session it replaced.
@@ -11,10 +12,20 @@ var resolveRefreshLineage = async (db, refreshOf, siteKey, now) => {
11
12
  const replaced = await db.getSessionRecordBySessionId(refreshOf);
12
13
  if (!replaced || replaced.siteKey !== siteKey) return void 0;
13
14
  return {
14
- refreshOf,
15
- refreshCount: (replaced.refreshCount ?? 0) + 1,
16
- refreshedAfterMs: Math.max(0, now.getTime() - new Date(replaced.createdAt).getTime())
15
+ lineage: {
16
+ refreshOf,
17
+ refreshCount: (replaced.refreshCount ?? 0) + 1,
18
+ refreshedAfterMs: Math.max(0, now.getTime() - new Date(replaced.createdAt).getTime())
19
+ },
20
+ replacedCaptchaType: replaced.captchaType
17
21
  };
18
22
  };
23
+ /**
24
+ * Whether to honour the user's request to swap their puzzle for an image
25
+ * challenge: the request must be a genuine refresh of a puzzle session on
26
+ * this site, and the site must have the switch enabled.
27
+ */
28
+ var isImageSwitchRequestValid = (switchToImage, refresh, switchEnabled) => true === switchToImage && switchEnabled && _prosopo_types.CaptchaType.puzzle === refresh?.replacedCaptchaType;
19
29
  //#endregion
30
+ exports.isImageSwitchRequestValid = isImageSwitchRequestValid;
20
31
  exports.resolveRefreshLineage = resolveRefreshLineage;
@@ -1,6 +1,7 @@
1
1
  const require_puzzleRenderer = require("../../tasks/puzzle/puzzleRenderer.cjs");
2
2
  const require_interactiveCaptchaChallenge = require("./interactiveCaptchaChallenge.cjs");
3
3
  const require_maintenanceModeResponses = require("./maintenanceModeResponses.cjs");
4
+ const require_constants = require("./getFrictionlessCaptchaChallenge/constants.cjs");
4
5
  let _prosopo_types = require("@prosopo/types");
5
6
  let _prosopo_puzzle_assets = require("@prosopo/puzzle-assets");
6
7
  //#region src/api/captcha/getPuzzleCaptchaChallenge.ts
@@ -54,7 +55,8 @@ var issuePuzzleChallenge = async ({ tasks, user, dapp, origin, clientSettings, s
54
55
  [_prosopo_types.ApiParams.originX]: challenge.originX,
55
56
  [_prosopo_types.ApiParams.originY]: challenge.originY,
56
57
  [_prosopo_types.ApiParams.timestamp]: challenge.requestedAtTimestamp.toString(),
57
- [_prosopo_types.ApiParams.signature]: { [_prosopo_types.ApiParams.provider]: { [_prosopo_types.ApiParams.challenge]: challenge.providerSignature } }
58
+ [_prosopo_types.ApiParams.signature]: { [_prosopo_types.ApiParams.provider]: { [_prosopo_types.ApiParams.challenge]: challenge.providerSignature } },
59
+ ...require_constants.isPuzzleImageSwitchAvailable(clientSettings?.settings ?? {}) && { [_prosopo_types.ApiParams.imageSwitchAvailable]: true }
58
60
  }
59
61
  };
60
62
  };
@@ -76,6 +76,16 @@ var coerceToEnabledCaptchaType = (requested, allowedTypes, logger) => {
76
76
  * turned off is exactly what `coerceToEnabledCaptchaType` exists to stop.
77
77
  */
78
78
  var switchTypeAfterRefreshes = (resolved, refreshCount, allowedTypes) => _prosopo_types.CaptchaType.puzzle === resolved && (refreshCount ?? 0) >= 3 && (0, _prosopo_types.resolveFrictionlessTypes)(allowedTypes).image ? _prosopo_types.CaptchaType.image : resolved;
79
+ /**
80
+ * Swap a puzzle for an image challenge because the user asked for one.
81
+ *
82
+ * Same one-way rule as `switchTypeAfterRefreshes`: the request is
83
+ * client-reported, so it may only ever earn a harder challenge. Whatever the
84
+ * routing settled on other than a puzzle stands, and so does a site that may
85
+ * not be served image challenges.
86
+ */
87
+ var switchTypeOnUserRequest = (resolved, switchToImage, allowedTypes) => _prosopo_types.CaptchaType.puzzle === resolved && true === switchToImage && (0, _prosopo_types.resolveFrictionlessTypes)(allowedTypes).image ? _prosopo_types.CaptchaType.image : resolved;
79
88
  //#endregion
80
89
  exports.coerceToEnabledCaptchaType = coerceToEnabledCaptchaType;
81
90
  exports.switchTypeAfterRefreshes = switchTypeAfterRefreshes;
91
+ exports.switchTypeOnUserRequest = switchTypeOnUserRequest;
@@ -23,6 +23,7 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
23
23
  constructor(db, pair, config, logger, writeQueue, decisionMachineRunner, usageCounters) {
24
24
  super(db, pair, config, logger, writeQueue);
25
25
  this.audioAlternativeEnabled = false;
26
+ this.imageSwitchRequested = false;
26
27
  this.config = config;
27
28
  this.decisionMachineRunner = decisionMachineRunner ?? new require_decisionMachineRunner.DecisionMachineRunner(db);
28
29
  this.usageCounters = usageCounters ?? null;
@@ -49,6 +50,14 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
49
50
  this.allowedCaptchaTypes = allowed;
50
51
  }
51
52
  /**
53
+ * Record that the user asked to swap their puzzle for an image challenge.
54
+ * Only call this once the request has been checked as a refresh of a
55
+ * puzzle on a site with the switch enabled.
56
+ */
57
+ setImageSwitchRequested(requested) {
58
+ this.imageSwitchRequested = requested;
59
+ }
60
+ /**
52
61
  * Evaluate the configured routing machine without going through
53
62
  * `sendCaptcha`. Returns the supplied baseline on any failure (no machine,
54
63
  * machine throws, counter fetch failure), matching applyRouter's contract.
@@ -259,13 +268,15 @@ var FrictionlessManager = class extends require_captchaManager.CaptchaManager {
259
268
  };
260
269
  const routed = this.routingContext ? await require_routingMachine.applyRouter(this.decisionMachineRunner, this.usageCounters, baseline, this.routingContext, this.logger) : baseline;
261
270
  const enabledCaptchaType = require_captchaTypeSelection.coerceToEnabledCaptchaType(routed.captchaType, this.allowedCaptchaTypes, this.logger);
262
- const finalCaptchaType = require_captchaTypeSelection.switchTypeAfterRefreshes(enabledCaptchaType, effectiveParams.refreshCount, this.allowedCaptchaTypes);
263
- const switchedByRefreshes = finalCaptchaType !== enabledCaptchaType;
271
+ const userSwitchedCaptchaType = require_captchaTypeSelection.switchTypeOnUserRequest(enabledCaptchaType, this.imageSwitchRequested, this.allowedCaptchaTypes);
272
+ const switchedByUser = userSwitchedCaptchaType !== enabledCaptchaType;
273
+ const finalCaptchaType = require_captchaTypeSelection.switchTypeAfterRefreshes(userSwitchedCaptchaType, effectiveParams.refreshCount, this.allowedCaptchaTypes);
274
+ const switchedByRefreshes = finalCaptchaType !== userSwitchedCaptchaType;
264
275
  const requestedSolvedImagesCount = routed.solvedImagesCount ?? effectiveParams.solvedImagesCount;
265
276
  const imageRoundsBounds = this.routingContext ?? {};
266
277
  const finalSolvedImagesCount = finalCaptchaType === _prosopo_types.CaptchaType.image ? requestedSolvedImagesCount !== void 0 ? (0, _prosopo_types.clampImageRounds)(requestedSolvedImagesCount, imageRoundsBounds) : requestedSolvedImagesCount : void 0;
267
278
  const finalPowDifficulty = finalCaptchaType === _prosopo_types.CaptchaType.pow ? routed.powDifficulty ?? effectiveParams.powDifficulty : void 0;
268
- const finalReason = switchedByRefreshes ? _prosopo_types.FrictionlessReason.PUZZLE_REFRESH_LIMIT : routed.reason ?? effectiveParams.reason;
279
+ const finalReason = switchedByUser ? _prosopo_types.FrictionlessReason.PUZZLE_USER_SWITCH : switchedByRefreshes ? _prosopo_types.FrictionlessReason.PUZZLE_REFRESH_LIMIT : routed.reason ?? effectiveParams.reason;
269
280
  const finalPuzzleOverrides = finalCaptchaType === _prosopo_types.CaptchaType.puzzle ? (() => {
270
281
  const maxLevel = (0, _prosopo_captcha_severity.resolveMaxEscalationLevel)(this.routingContext?.puzzleMaxDifficulty ?? _prosopo_types.puzzleMaxDifficultyDefault, this.routingContext?.platform.isMobile ?? false);
271
282
  const level = finalReason !== void 0 && _prosopo_types.NO_MEASUREMENT_REASONS.has(finalReason) ? 0 : (0, _prosopo_captcha_severity.severityToPuzzleDifficulty)(requestedSolvedImagesCount, this.routingContext?.baseImageRounds ?? this.config.captchas.solved.count, maxLevel);
@@ -4,4 +4,5 @@ export type ConcreteCaptchaType = CaptchaType.pow | CaptchaType.image | CaptchaT
4
4
  export declare const coerceToEnabledCaptchaType: (requested: ConcreteCaptchaType, allowedTypes: Partial<IFrictionlessTypes> | undefined, logger?: Logger) => ConcreteCaptchaType;
5
5
  export declare const PUZZLE_REFRESHES_BEFORE_IMAGE = 3;
6
6
  export declare const switchTypeAfterRefreshes: (resolved: ConcreteCaptchaType, refreshCount: number | undefined, allowedTypes: Partial<IFrictionlessTypes> | undefined) => ConcreteCaptchaType;
7
+ export declare const switchTypeOnUserRequest: (resolved: ConcreteCaptchaType, switchToImage: boolean | undefined, allowedTypes: Partial<IFrictionlessTypes> | undefined) => ConcreteCaptchaType;
7
8
  //# sourceMappingURL=captchaTypeSelection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"captchaTypeSelection.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaTypeSelection.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACN,WAAW,EACX,KAAK,kBAAkB,EAGvB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,MAAM,mBAAmB,GAC5B,WAAW,CAAC,GAAG,GACf,WAAW,CAAC,KAAK,GACjB,WAAW,CAAC,MAAM,GAClB,WAAW,CAAC,SAAS,CAAC;AA4BzB,eAAO,MAAM,0BAA0B,cAC3B,mBAAmB,gBAChB,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,WAC5C,MAAM,KACb,mBAiDF,CAAC;AAMF,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAiB/C,eAAO,MAAM,wBAAwB,aAC1B,mBAAmB,gBACf,MAAM,GAAG,SAAS,gBAClB,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,KACnD,mBAKS,CAAC"}
1
+ {"version":3,"file":"captchaTypeSelection.d.ts","sourceRoot":"","sources":["../../src/tasks/captchaTypeSelection.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACN,WAAW,EACX,KAAK,kBAAkB,EAGvB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,MAAM,mBAAmB,GAC5B,WAAW,CAAC,GAAG,GACf,WAAW,CAAC,KAAK,GACjB,WAAW,CAAC,MAAM,GAClB,WAAW,CAAC,SAAS,CAAC;AA4BzB,eAAO,MAAM,0BAA0B,cAC3B,mBAAmB,gBAChB,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,WAC5C,MAAM,KACb,mBAiDF,CAAC;AAMF,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAiB/C,eAAO,MAAM,wBAAwB,aAC1B,mBAAmB,gBACf,MAAM,GAAG,SAAS,gBAClB,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,KACnD,mBAKS,CAAC;AAUb,eAAO,MAAM,uBAAuB,aACzB,mBAAmB,iBACd,OAAO,GAAG,SAAS,gBACpB,OAAO,CAAC,kBAAkB,CAAC,GAAG,SAAS,KACnD,mBAKS,CAAC"}
@@ -76,5 +76,14 @@ var coerceToEnabledCaptchaType = (requested, allowedTypes, logger) => {
76
76
  * turned off is exactly what `coerceToEnabledCaptchaType` exists to stop.
77
77
  */
78
78
  var switchTypeAfterRefreshes = (resolved, refreshCount, allowedTypes) => CaptchaType.puzzle === resolved && (refreshCount ?? 0) >= 3 && resolveFrictionlessTypes(allowedTypes).image ? CaptchaType.image : resolved;
79
+ /**
80
+ * Swap a puzzle for an image challenge because the user asked for one.
81
+ *
82
+ * Same one-way rule as `switchTypeAfterRefreshes`: the request is
83
+ * client-reported, so it may only ever earn a harder challenge. Whatever the
84
+ * routing settled on other than a puzzle stands, and so does a site that may
85
+ * not be served image challenges.
86
+ */
87
+ var switchTypeOnUserRequest = (resolved, switchToImage, allowedTypes) => CaptchaType.puzzle === resolved && true === switchToImage && resolveFrictionlessTypes(allowedTypes).image ? CaptchaType.image : resolved;
79
88
  //#endregion
80
- export { coerceToEnabledCaptchaType, switchTypeAfterRefreshes };
89
+ export { coerceToEnabledCaptchaType, switchTypeAfterRefreshes, switchTypeOnUserRequest };
@@ -1 +1 @@
1
- {"version":3,"file":"captchaTypeSelection.js","sourceRoot":"","sources":["../../src/tasks/captchaTypeSelection.ts"],"names":[],"mappings":"AAeA,OAAO,EACN,WAAW,EAEX,0BAA0B,EAC1B,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAmCrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACzC,SAA8B,EAC9B,YAAqD,EACrD,MAAe,EACO,EAAE;IACxB,MAAM,KAAK,GAAG,YAAY;QACzB,CAAC,CAAC,wBAAwB,CAAC,YAAY,CAAC;QACxC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAKzC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC;IAChE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IACjC,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC;IAEzC,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE;QAC3C,QAAQ,SAAS,EAAE,CAAC;YACnB,KAAK,WAAW,CAAC,GAAG;gBAGnB,OAAO,WAAW,CAAC,GAAG,CAAC;YACxB,KAAK,WAAW,CAAC,MAAM;gBACtB,IAAI,aAAa;oBAAE,OAAO,WAAW,CAAC,MAAM,CAAC;gBAC7C,OAAO,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;YAC3D,KAAK,WAAW,CAAC,KAAK;gBACrB,IAAI,YAAY;oBAAE,OAAO,WAAW,CAAC,KAAK,CAAC;gBAC3C,OAAO,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;YAI7D,KAAK,WAAW,CAAC,SAAS;gBACzB,IAAI,gBAAgB;oBAAE,OAAO,WAAW,CAAC,SAAS,CAAC;gBACnD,IAAI,aAAa;oBAAE,OAAO,WAAW,CAAC,MAAM,CAAC;gBAC7C,OAAO,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;QAC5D,CAAC;IACF,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,GAAG,EAAE,yCAAyC;YAC9C,IAAI,EAAE;gBACL,SAAS;gBACT,MAAM,EAAE,QAAQ;gBAChB,YAAY,EAAE,KAAK,CAAC,KAAK;gBACzB,aAAa,EAAE,KAAK,CAAC,MAAM;gBAC3B,gBAAgB,EAAE,uBAAuB,EAAE;gBAC3C,gBAAgB,EAAE,KAAK,CAAC,SAAS;aACjC;SACD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAiB/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACvC,QAA6B,EAC7B,YAAgC,EAChC,YAAqD,EAC/B,EAAE,CACxB,WAAW,CAAC,MAAM,KAAK,QAAQ;IAC/B,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,6BAA6B;IACpD,wBAAwB,CAAC,YAAY,CAAC,CAAC,KAAK;IAC3C,CAAC,CAAC,WAAW,CAAC,KAAK;IACnB,CAAC,CAAC,QAAQ,CAAC"}
1
+ {"version":3,"file":"captchaTypeSelection.js","sourceRoot":"","sources":["../../src/tasks/captchaTypeSelection.ts"],"names":[],"mappings":"AAeA,OAAO,EACN,WAAW,EAEX,0BAA0B,EAC1B,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAmCrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACzC,SAA8B,EAC9B,YAAqD,EACrD,MAAe,EACO,EAAE;IACxB,MAAM,KAAK,GAAG,YAAY;QACzB,CAAC,CAAC,wBAAwB,CAAC,YAAY,CAAC;QACxC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAKzC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC;IAChE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IACjC,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC;IAEzC,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE;QAC3C,QAAQ,SAAS,EAAE,CAAC;YACnB,KAAK,WAAW,CAAC,GAAG;gBAGnB,OAAO,WAAW,CAAC,GAAG,CAAC;YACxB,KAAK,WAAW,CAAC,MAAM;gBACtB,IAAI,aAAa;oBAAE,OAAO,WAAW,CAAC,MAAM,CAAC;gBAC7C,OAAO,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;YAC3D,KAAK,WAAW,CAAC,KAAK;gBACrB,IAAI,YAAY;oBAAE,OAAO,WAAW,CAAC,KAAK,CAAC;gBAC3C,OAAO,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;YAI7D,KAAK,WAAW,CAAC,SAAS;gBACzB,IAAI,gBAAgB;oBAAE,OAAO,WAAW,CAAC,SAAS,CAAC;gBACnD,IAAI,aAAa;oBAAE,OAAO,WAAW,CAAC,MAAM,CAAC;gBAC7C,OAAO,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;QAC5D,CAAC;IACF,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,GAAG,EAAE,yCAAyC;YAC9C,IAAI,EAAE;gBACL,SAAS;gBACT,MAAM,EAAE,QAAQ;gBAChB,YAAY,EAAE,KAAK,CAAC,KAAK;gBACzB,aAAa,EAAE,KAAK,CAAC,MAAM;gBAC3B,gBAAgB,EAAE,uBAAuB,EAAE;gBAC3C,gBAAgB,EAAE,KAAK,CAAC,SAAS;aACjC;SACD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAiB/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACvC,QAA6B,EAC7B,YAAgC,EAChC,YAAqD,EAC/B,EAAE,CACxB,WAAW,CAAC,MAAM,KAAK,QAAQ;IAC/B,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,6BAA6B;IACpD,wBAAwB,CAAC,YAAY,CAAC,CAAC,KAAK;IAC3C,CAAC,CAAC,WAAW,CAAC,KAAK;IACnB,CAAC,CAAC,QAAQ,CAAC;AAUb,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,QAA6B,EAC7B,aAAkC,EAClC,YAAqD,EAC/B,EAAE,CACxB,WAAW,CAAC,MAAM,KAAK,QAAQ;IAC/B,IAAI,KAAK,aAAa;IACtB,wBAAwB,CAAC,YAAY,CAAC,CAAC,KAAK;IAC3C,CAAC,CAAC,WAAW,CAAC,KAAK;IACnB,CAAC,CAAC,QAAQ,CAAC"}
@@ -19,12 +19,14 @@ export declare class FrictionlessManager extends CaptchaManager {
19
19
  private routingContext?;
20
20
  private audioAlternativeEnabled;
21
21
  private allowedCaptchaTypes?;
22
+ private imageSwitchRequested;
22
23
  private readonly decisionMachineRunner;
23
24
  private readonly usageCounters;
24
25
  constructor(db: IProviderDatabase, pair: KeyringPair, config: ProsopoConfigOutput, logger?: Logger, writeQueue?: import("@prosopo/database").RedisWriteQueue | null, decisionMachineRunner?: DecisionMachineRunner, usageCounters?: UsageCounters | null);
25
26
  setRoutingContext(ctx: RoutingContext): void;
26
27
  setAudioAlternativeEnabled(enabled: boolean): void;
27
28
  setAllowedCaptchaTypes(allowed: IFrictionlessTypes): void;
29
+ setImageSwitchRequested(requested: boolean): void;
28
30
  applyRoutingMachine(baseline: RoutingMachineBaseline, ctx: RoutingContext): Promise<RoutingMachineOutput>;
29
31
  setSessionParams(params: Omit<Session, "sessionId" | "createdAt" | "captchaType">): void;
30
32
  setMatchedRule(matchedRule: Session["matchedRule"]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"frictionlessTasks.d.ts","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frictionlessTasks.d.ts","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { CaptchaManager } from "../captchaManager.js";
6
6
  import { DecisionMachineRunner } from "../decisionMachine/decisionMachineRunner.js";
7
7
  import { buildDnsEventUrl } from "../../api/dnsEventUrl.js";
8
8
  import { checkLangRules } from "../../rules/lang.js";
9
- import { coerceToEnabledCaptchaType, switchTypeAfterRefreshes } from "../captchaTypeSelection.js";
9
+ import { coerceToEnabledCaptchaType, switchTypeAfterRefreshes, switchTypeOnUserRequest } from "../captchaTypeSelection.js";
10
10
  import { getBotScore } from "../detection/getBotScore.js";
11
11
  import { samplePuzzleDifficulty } from "../puzzle/puzzleDifficulty.js";
12
12
  import { ipMatchesSession } from "./ipMatch.js";
@@ -23,6 +23,7 @@ var FrictionlessManager = class extends CaptchaManager {
23
23
  constructor(db, pair, config, logger, writeQueue, decisionMachineRunner, usageCounters) {
24
24
  super(db, pair, config, logger, writeQueue);
25
25
  this.audioAlternativeEnabled = false;
26
+ this.imageSwitchRequested = false;
26
27
  this.config = config;
27
28
  this.decisionMachineRunner = decisionMachineRunner ?? new DecisionMachineRunner(db);
28
29
  this.usageCounters = usageCounters ?? null;
@@ -49,6 +50,14 @@ var FrictionlessManager = class extends CaptchaManager {
49
50
  this.allowedCaptchaTypes = allowed;
50
51
  }
51
52
  /**
53
+ * Record that the user asked to swap their puzzle for an image challenge.
54
+ * Only call this once the request has been checked as a refresh of a
55
+ * puzzle on a site with the switch enabled.
56
+ */
57
+ setImageSwitchRequested(requested) {
58
+ this.imageSwitchRequested = requested;
59
+ }
60
+ /**
52
61
  * Evaluate the configured routing machine without going through
53
62
  * `sendCaptcha`. Returns the supplied baseline on any failure (no machine,
54
63
  * machine throws, counter fetch failure), matching applyRouter's contract.
@@ -259,13 +268,15 @@ var FrictionlessManager = class extends CaptchaManager {
259
268
  };
260
269
  const routed = this.routingContext ? await applyRouter(this.decisionMachineRunner, this.usageCounters, baseline, this.routingContext, this.logger) : baseline;
261
270
  const enabledCaptchaType = coerceToEnabledCaptchaType(routed.captchaType, this.allowedCaptchaTypes, this.logger);
262
- const finalCaptchaType = switchTypeAfterRefreshes(enabledCaptchaType, effectiveParams.refreshCount, this.allowedCaptchaTypes);
263
- const switchedByRefreshes = finalCaptchaType !== enabledCaptchaType;
271
+ const userSwitchedCaptchaType = switchTypeOnUserRequest(enabledCaptchaType, this.imageSwitchRequested, this.allowedCaptchaTypes);
272
+ const switchedByUser = userSwitchedCaptchaType !== enabledCaptchaType;
273
+ const finalCaptchaType = switchTypeAfterRefreshes(userSwitchedCaptchaType, effectiveParams.refreshCount, this.allowedCaptchaTypes);
274
+ const switchedByRefreshes = finalCaptchaType !== userSwitchedCaptchaType;
264
275
  const requestedSolvedImagesCount = routed.solvedImagesCount ?? effectiveParams.solvedImagesCount;
265
276
  const imageRoundsBounds = this.routingContext ?? {};
266
277
  const finalSolvedImagesCount = finalCaptchaType === CaptchaType.image ? requestedSolvedImagesCount !== void 0 ? clampImageRounds(requestedSolvedImagesCount, imageRoundsBounds) : requestedSolvedImagesCount : void 0;
267
278
  const finalPowDifficulty = finalCaptchaType === CaptchaType.pow ? routed.powDifficulty ?? effectiveParams.powDifficulty : void 0;
268
- const finalReason = switchedByRefreshes ? FrictionlessReason$1.PUZZLE_REFRESH_LIMIT : routed.reason ?? effectiveParams.reason;
279
+ const finalReason = switchedByUser ? FrictionlessReason$1.PUZZLE_USER_SWITCH : switchedByRefreshes ? FrictionlessReason$1.PUZZLE_REFRESH_LIMIT : routed.reason ?? effectiveParams.reason;
269
280
  const finalPuzzleOverrides = finalCaptchaType === CaptchaType.puzzle ? (() => {
270
281
  const maxLevel = resolveMaxEscalationLevel(this.routingContext?.puzzleMaxDifficulty ?? puzzleMaxDifficultyDefault, this.routingContext?.platform.isMobile ?? false);
271
282
  const level = finalReason !== void 0 && NO_MEASUREMENT_REASONS.has(finalReason) ? 0 : severityToPuzzleDifficulty(requestedSolvedImagesCount, this.routingContext?.baseImageRounds ?? this.config.captchas.solved.count, maxLevel);
@@ -1 +1 @@
1
- {"version":3,"file":"frictionlessTasks.js","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frictionlessTasks.js","sourceRoot":"","sources":["../../../src/tasks/frictionless/frictionlessTasks.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ const FULLY_POPULATED_SETTINGS = {
12
12
  },
13
13
  frictionlessTypes: { image: false, puzzle: true, iconOrder: true },
14
14
  captchaTypeFeatureFlags: { puzzle: false, iconOrder: true, audio: true },
15
+ widgetFeatureFlags: { puzzleImageSwitch: true },
15
16
  powDifficulty: 6,
16
17
  imageThreshold: 0.81,
17
18
  imageMaxRounds: 12,
@@ -179,6 +180,7 @@ describe("Client settings Mongo persistence", () => {
179
180
  expect(stored.domains).toEqual(FULLY_POPULATED_SETTINGS.domains);
180
181
  expect(stored.frictionlessThreshold).toMatchObject(FULLY_POPULATED_SETTINGS.frictionlessThreshold);
181
182
  expect(stored.captchaTypeFeatureFlags).toEqual(FULLY_POPULATED_SETTINGS.captchaTypeFeatureFlags);
183
+ expect(stored.widgetFeatureFlags).toEqual(FULLY_POPULATED_SETTINGS.widgetFeatureFlags);
182
184
  expect(stored.powDifficulty).toBe(FULLY_POPULATED_SETTINGS.powDifficulty);
183
185
  expect(stored.imageThreshold).toBe(FULLY_POPULATED_SETTINGS.imageThreshold);
184
186
  expect(stored.imageMaxRounds).toBe(FULLY_POPULATED_SETTINGS.imageMaxRounds);
@@ -1 +1 @@
1
- {"version":3,"file":"clientSettingsPersistence.integration.test.js","sourceRoot":"","sources":["../../../src/tests/integration/clientSettingsPersistence.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientSettingsPersistence.integration.test.js","sourceRoot":"","sources":["../../../src/tests/integration/clientSettingsPersistence.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import { CaptchaType } from "@prosopo/types";
1
2
  import { describe, expect, it, vi } from "vitest";
2
- import { resolveRefreshLineage } from "../../../../../api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.js";
3
+ import { isImageSwitchRequestValid, resolveRefreshLineage, } from "../../../../../api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.js";
3
4
  const SITE_KEY = "5EjTA28bKSbFPPyMbUjNtArxyqjwq38r1BapVmLZShaqEedV";
4
5
  const NOW = new Date("2026-09-28T12:00:00Z");
5
6
  const dbReturning = (session) => ({
@@ -16,7 +17,7 @@ describe("resolveRefreshLineage", () => {
16
17
  siteKey: SITE_KEY,
17
18
  createdAt: new Date(NOW.getTime() - 4000),
18
19
  });
19
- expect(await resolveRefreshLineage(db, "prev", SITE_KEY, NOW)).toEqual({
20
+ expect((await resolveRefreshLineage(db, "prev", SITE_KEY, NOW))?.lineage).toEqual({
20
21
  refreshOf: "prev",
21
22
  refreshCount: 1,
22
23
  refreshedAfterMs: 4000,
@@ -28,7 +29,8 @@ describe("resolveRefreshLineage", () => {
28
29
  createdAt: NOW,
29
30
  refreshCount: 2,
30
31
  });
31
- expect((await resolveRefreshLineage(db, "prev", SITE_KEY, NOW))?.refreshCount).toBe(3);
32
+ expect((await resolveRefreshLineage(db, "prev", SITE_KEY, NOW))?.lineage
33
+ .refreshCount).toBe(3);
32
34
  });
33
35
  it("ignores a session it cannot find", async () => {
34
36
  expect(await resolveRefreshLineage(dbReturning(undefined), "gone", SITE_KEY, NOW)).toBeUndefined();
@@ -42,4 +44,28 @@ describe("resolveRefreshLineage", () => {
42
44
  expect(await resolveRefreshLineage(db, "prev", SITE_KEY, NOW)).toBeUndefined();
43
45
  });
44
46
  });
47
+ describe("isImageSwitchRequestValid", () => {
48
+ const refreshOf = (replacedCaptchaType) => ({
49
+ lineage: { refreshOf: "prev", refreshCount: 1, refreshedAfterMs: 1000 },
50
+ replacedCaptchaType,
51
+ });
52
+ it("honours a switch from a puzzle on a site with it enabled", () => {
53
+ expect(isImageSwitchRequestValid(true, refreshOf(CaptchaType.puzzle), true)).toBe(true);
54
+ });
55
+ it("ignores a switch the user did not ask for", () => {
56
+ expect(isImageSwitchRequestValid(undefined, refreshOf(CaptchaType.puzzle), true)).toBe(false);
57
+ expect(isImageSwitchRequestValid(false, refreshOf(CaptchaType.puzzle), true)).toBe(false);
58
+ });
59
+ it("ignores a switch on a site without it enabled", () => {
60
+ expect(isImageSwitchRequestValid(true, refreshOf(CaptchaType.puzzle), false)).toBe(false);
61
+ });
62
+ it("ignores a switch that is not a refresh of a known session", () => {
63
+ expect(isImageSwitchRequestValid(true, undefined, true)).toBe(false);
64
+ });
65
+ it("ignores a switch away from anything but a puzzle", () => {
66
+ for (const type of [CaptchaType.image, CaptchaType.pow]) {
67
+ expect(isImageSwitchRequestValid(true, refreshOf(type), true)).toBe(false);
68
+ }
69
+ });
70
+ });
45
71
  //# sourceMappingURL=refreshLineage.unit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refreshLineage.unit.test.js","sourceRoot":"","sources":["../../../../../../src/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.unit.test.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8EAA8E,CAAC;AAErH,MAAM,QAAQ,GAAG,kDAAkD,CAAC;AACpE,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAE7C,MAAM,WAAW,GAAG,CACnB,OAA8C,EAK7C,EAAE,CAAC,CAAC;IACL,2BAA2B,EAAE,EAAE,CAAC,EAAE,CACjC,KAAK,IAA2C,EAAE,CACjD,OAAuC,CACxC;CACD,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9D,MAAM,CACL,MAAM,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CACzD,CAAC,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,EAAE,GAAG,WAAW,CAAC;YACtB,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;SACzC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YACtE,SAAS,EAAE,MAAM;YACjB,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,IAAI;SACtB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,EAAE,GAAG,WAAW,CAAC;YACtB,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,CAAC;SACf,CAAC,CAAC;QACH,MAAM,CACL,CAAC,MAAM,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,YAAY,CACtE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,CACL,MAAM,qBAAqB,CAC1B,WAAW,CAAC,SAAS,CAAC,EACtB,MAAM,EACN,QAAQ,EACR,GAAG,CACH,CACD,CAAC,aAAa,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,WAAW,CAAC;YACtB,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,CAAC;SACf,CAAC,CAAC;QACH,MAAM,CACL,MAAM,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CACtD,CAAC,aAAa,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"refreshLineage.unit.test.js","sourceRoot":"","sources":["../../../../../../src/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.unit.test.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,7 @@ vi.mock("../../../tasks/index.js", async () => {
79
79
  setRoutingContext: vi.fn(),
80
80
  setAudioAlternativeEnabled: vi.fn(),
81
81
  setAllowedCaptchaTypes: vi.fn(),
82
+ setImageSwitchRequested: vi.fn(),
82
83
  applyRoutingMachine: vi.fn(async (baseline) => ({
83
84
  captchaType: baseline.captchaType,
84
85
  })),
@@ -144,6 +145,7 @@ describe("getFrictionlessCaptchaChallenge - context selection", () => {
144
145
  setRoutingContext: vi.fn(),
145
146
  setAudioAlternativeEnabled: vi.fn(),
146
147
  setAllowedCaptchaTypes: vi.fn(),
148
+ setImageSwitchRequested: vi.fn(),
147
149
  applyRoutingMachine: vi.fn(async (baseline) => ({
148
150
  captchaType: baseline.captchaType,
149
151
  })),
@@ -311,6 +313,57 @@ describe("getFrictionlessCaptchaChallenge - context selection", () => {
311
313
  refreshedAfterMs: expect.any(Number),
312
314
  }));
313
315
  });
316
+ describe("switching a puzzle to image", () => {
317
+ const requestSwitch = async (replacedCaptchaType, widgetFeatureFlags, switchToImage, captchaType) => {
318
+ tasksInstance.db.getClientRecord.mockResolvedValue({
319
+ account: "siteSwitch",
320
+ settings: {
321
+ frictionlessThreshold: 0.5,
322
+ disallowWebView: false,
323
+ ...(widgetFeatureFlags && { widgetFeatureFlags }),
324
+ ...(captchaType && { captchaType }),
325
+ },
326
+ });
327
+ tasksInstance.frictionlessManager.decryptPayload.mockResolvedValue(payload(false));
328
+ tasksInstance.db.getSessionRecordBySessionId?.mockResolvedValue({
329
+ siteKey: "siteSwitch",
330
+ createdAt: new Date(Date.now() - 3000),
331
+ captchaType: replacedCaptchaType,
332
+ });
333
+ const { req, res, next } = buildReqRes({
334
+ token: "tSwitch",
335
+ headHash: "hhSwitch",
336
+ dapp: "siteSwitch",
337
+ user: "u",
338
+ refreshOf: "replaced-puzzle",
339
+ ...(switchToImage !== undefined && { switchToImage }),
340
+ });
341
+ await handler(req, res, next);
342
+ expect(next).not.toHaveBeenCalled();
343
+ };
344
+ const switchRequested = () => tasksInstance.frictionlessManager.setImageSwitchRequested.mock
345
+ .calls[0]?.[0];
346
+ it("honours the switch on a site with it enabled", async () => {
347
+ await requestSwitch(CaptchaType.puzzle, { puzzleImageSwitch: true }, true);
348
+ expect(switchRequested()).toBe(true);
349
+ });
350
+ it("honours the switch on a site pinned to puzzle", async () => {
351
+ await requestSwitch(CaptchaType.puzzle, { puzzleImageSwitch: true }, true, CaptchaType.puzzle);
352
+ expect(switchRequested()).toBe(true);
353
+ });
354
+ it("ignores the switch on a site without it enabled", async () => {
355
+ await requestSwitch(CaptchaType.puzzle, undefined, true);
356
+ expect(switchRequested()).toBe(false);
357
+ });
358
+ it("ignores the switch away from anything but a puzzle", async () => {
359
+ await requestSwitch(CaptchaType.pow, { puzzleImageSwitch: true }, true);
360
+ expect(switchRequested()).toBe(false);
361
+ });
362
+ it("ignores a plain refresh", async () => {
363
+ await requestSwitch(CaptchaType.puzzle, { puzzleImageSwitch: true }, undefined);
364
+ expect(switchRequested()).toBe(false);
365
+ });
366
+ });
314
367
  it("does not look anything up for an ordinary request", async () => {
315
368
  tasksInstance.db.getClientRecord.mockResolvedValue({
316
369
  account: "siteNoRefresh",