@prosopo/provider 5.10.1 → 5.10.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 (77) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +12 -11
  2. package/.turbo/turbo-build$colon$tsc.log +27 -27
  3. package/.turbo/turbo-build.log +13 -12
  4. package/CHANGELOG.md +141 -0
  5. package/dist/api/captcha/assignDetectorBundle.d.ts.map +1 -1
  6. package/dist/api/captcha/assignDetectorBundle.js +27 -9
  7. package/dist/api/captcha/assignDetectorBundle.js.map +1 -1
  8. package/dist/api/captcha/assignDetectorBundle.unit.test.d.ts +2 -0
  9. package/dist/api/captcha/assignDetectorBundle.unit.test.d.ts.map +1 -0
  10. package/dist/api/captcha/assignDetectorBundle.unit.test.js +153 -0
  11. package/dist/api/captcha/assignDetectorBundle.unit.test.js.map +1 -0
  12. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  13. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +4 -2
  14. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  15. package/dist/cjs/api/captcha/assignDetectorBundle.cjs +26 -8
  16. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +4 -2
  17. package/dist/cjs/tasks/captchaManager.cjs +36 -4
  18. package/dist/cjs/tasks/decisionMachine/decisionMachineRunner.cjs +20 -17
  19. package/dist/cjs/tasks/detection/assignSecret.cjs +45 -0
  20. package/dist/cjs/tasks/detection/bundlePool.cjs +18 -11
  21. package/dist/cjs/tasks/detection/decodePayload.cjs +1140 -1105
  22. package/dist/cjs/tasks/detection/decodePayload.js +1 -1
  23. package/dist/cjs/tasks/detection/getBotScore.cjs +4 -2
  24. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +7 -5
  25. package/dist/tasks/captchaManager.d.ts +2 -0
  26. package/dist/tasks/captchaManager.d.ts.map +1 -1
  27. package/dist/tasks/captchaManager.js +36 -4
  28. package/dist/tasks/captchaManager.js.map +1 -1
  29. package/dist/tasks/decisionMachine/decisionMachineRunner.d.ts +2 -0
  30. package/dist/tasks/decisionMachine/decisionMachineRunner.d.ts.map +1 -1
  31. package/dist/tasks/decisionMachine/decisionMachineRunner.js +20 -17
  32. package/dist/tasks/decisionMachine/decisionMachineRunner.js.map +1 -1
  33. package/dist/tasks/detection/assignSecret.d.ts +8 -0
  34. package/dist/tasks/detection/assignSecret.d.ts.map +1 -0
  35. package/dist/tasks/detection/assignSecret.js +45 -0
  36. package/dist/tasks/detection/assignSecret.js.map +1 -0
  37. package/dist/tasks/detection/bundlePool.d.ts +3 -1
  38. package/dist/tasks/detection/bundlePool.d.ts.map +1 -1
  39. package/dist/tasks/detection/bundlePool.js +18 -12
  40. package/dist/tasks/detection/bundlePool.js.map +1 -1
  41. package/dist/tasks/detection/bundlePool.test.js +40 -3
  42. package/dist/tasks/detection/bundlePool.test.js.map +1 -1
  43. package/dist/tasks/detection/decodePayload.d.ts +2 -2
  44. package/dist/tasks/detection/decodePayload.d.ts.map +1 -1
  45. package/dist/tasks/detection/decodePayload.js +1 -1
  46. package/dist/tasks/detection/decodePayload.js.map +1 -1
  47. package/dist/tasks/detection/getBotScore.d.ts +3 -1
  48. package/dist/tasks/detection/getBotScore.d.ts.map +1 -1
  49. package/dist/tasks/detection/getBotScore.js +5 -3
  50. package/dist/tasks/detection/getBotScore.js.map +1 -1
  51. package/dist/tasks/frictionless/frictionlessTasks.d.ts +1 -0
  52. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
  53. package/dist/tasks/frictionless/frictionlessTasks.js +7 -5
  54. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
  55. package/dist/tests/integration/decisionMachines.integration.test.js +65 -1
  56. package/dist/tests/integration/decisionMachines.integration.test.js.map +1 -1
  57. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +5 -3
  58. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +1 -1
  59. package/dist/tests/unit/tasks/captchaManager.unit.test.js +46 -0
  60. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
  61. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js +10 -9
  62. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +1 -1
  63. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js +9 -3
  64. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js.map +1 -1
  65. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js +11 -6
  66. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js.map +1 -1
  67. package/dist/tests/unit/tasks/decisionMachine/decisionMachineRunner.unit.test.js +38 -0
  68. package/dist/tests/unit/tasks/decisionMachine/decisionMachineRunner.unit.test.js.map +1 -1
  69. package/dist/tests/unit/tasks/detection/getBotScore.unit.test.js +3 -3
  70. package/dist/tests/unit/tasks/detection/getBotScore.unit.test.js.map +1 -1
  71. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +78 -84
  72. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -1
  73. package/package.json +28 -28
  74. package/dist/api/captcha/assignDetectorBundle.test.d.ts +0 -2
  75. package/dist/api/captcha/assignDetectorBundle.test.d.ts.map +0 -1
  76. package/dist/api/captcha/assignDetectorBundle.test.js +0 -71
  77. package/dist/api/captcha/assignDetectorBundle.test.js.map +0 -1
@@ -0,0 +1,153 @@
1
+ import { mkdtempSync, readFileSync, rmSync, statSync, writeFileSync, } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
5
+ import { resetAssignSecretCache } from "../../tasks/detection/assignSecret.js";
6
+ import { initDetectorBundlePool } from "../../tasks/detection/bundlePool.js";
7
+ import assignDetectorBundle from "./assignDetectorBundle.js";
8
+ const cacheDetectorBundle = vi.fn(async (_detectorSessionId, _bundleId) => true);
9
+ vi.mock("../../tasks/index.js", () => ({
10
+ Tasks: class {
11
+ constructor() {
12
+ this.frictionlessManager = {
13
+ writeQueue: { cacheDetectorBundle },
14
+ };
15
+ }
16
+ },
17
+ }));
18
+ const makeReq = (ip = "203.0.113.1") => ({
19
+ ip,
20
+ body: { dapp: "site-key" },
21
+ logger: { warn: vi.fn(), info: vi.fn(), debug: vi.fn() },
22
+ });
23
+ const writePool = (dir, count) => {
24
+ const ids = [];
25
+ for (let i = 0; i < count; i++) {
26
+ const id = `bundle-${i}`;
27
+ writeFileSync(join(dir, `${id}.js`), `export default ${i};`);
28
+ writeFileSync(join(dir, `${id}.json`), JSON.stringify({ privateKey: `PK${i}`, innerConfig: `C${i}` }));
29
+ ids.push(id);
30
+ }
31
+ return ids;
32
+ };
33
+ const assignedBundleId = () => cacheDetectorBundle.mock.calls.at(-1)?.[1];
34
+ const assignOnceWith = async (ip) => {
35
+ const r = makeRes();
36
+ await assignDetectorBundle(env)(makeReq(ip), r.res, next);
37
+ return r;
38
+ };
39
+ const assignOnce = async (ip) => {
40
+ await assignOnceWith(ip);
41
+ };
42
+ const makeRes = () => {
43
+ const json = vi.fn((body) => body);
44
+ return { res: { json }, json };
45
+ };
46
+ const env = {};
47
+ const next = vi.fn();
48
+ describe("assignDetectorBundle", () => {
49
+ let dir;
50
+ beforeEach(() => {
51
+ dir = mkdtempSync(join(tmpdir(), "assign-"));
52
+ cacheDetectorBundle.mockClear();
53
+ resetAssignSecretCache();
54
+ });
55
+ afterEach(() => {
56
+ rmSync(dir, { recursive: true, force: true });
57
+ vi.clearAllMocks();
58
+ });
59
+ it("returns useProviderBundle:false when the pool is empty", async () => {
60
+ initDetectorBundlePool(dir);
61
+ const { res, json } = makeRes();
62
+ await assignDetectorBundle(env)(makeReq(), res, next);
63
+ expect(json).toHaveBeenCalledWith({
64
+ useProviderBundle: false,
65
+ status: "ok",
66
+ });
67
+ expect(cacheDetectorBundle).not.toHaveBeenCalled();
68
+ });
69
+ it("assigns a bundle, stores the binding, and returns the script", async () => {
70
+ writeFileSync(join(dir, "bundle-0.js"), "export default 1;");
71
+ writeFileSync(join(dir, "bundle-0.json"), JSON.stringify({ privateKey: "PK", innerConfig: "C" }));
72
+ initDetectorBundlePool(dir);
73
+ const { res, json } = makeRes();
74
+ await assignDetectorBundle(env)(makeReq(), res, next);
75
+ expect(cacheDetectorBundle).toHaveBeenCalledTimes(1);
76
+ const [detSessionId, bundleId] = cacheDetectorBundle.mock.calls[0];
77
+ expect(bundleId).toBe("bundle-0");
78
+ expect(detSessionId).toMatch(/^det-/);
79
+ const body = json.mock.calls[0]?.[0];
80
+ expect(body.useProviderBundle).toBe(true);
81
+ expect(body.detectorScript).toBe("export default 1;");
82
+ expect(body.detectorSessionId).toBe(detSessionId);
83
+ });
84
+ it("falls back to bundled when the Redis binding cannot be stored", async () => {
85
+ writeFileSync(join(dir, "bundle-0.js"), "JS");
86
+ writeFileSync(join(dir, "bundle-0.json"), JSON.stringify({ privateKey: "PK", innerConfig: "C" }));
87
+ initDetectorBundlePool(dir);
88
+ cacheDetectorBundle.mockResolvedValueOnce(false);
89
+ const { res, json } = makeRes();
90
+ await assignDetectorBundle(env)(makeReq(), res, next);
91
+ expect(json).toHaveBeenCalledWith({
92
+ useProviderBundle: false,
93
+ status: "ok",
94
+ });
95
+ });
96
+ it("serves one caller the same bundle across many assigns", async () => {
97
+ writePool(dir, 50);
98
+ initDetectorBundlePool(dir);
99
+ const served = new Set();
100
+ for (let i = 0; i < 200; i++) {
101
+ await assignOnce();
102
+ served.add(assignedBundleId());
103
+ }
104
+ expect(served.size).toBe(1);
105
+ });
106
+ it("keeps serving that bundle after the secret is re-read from disk", async () => {
107
+ writePool(dir, 50);
108
+ initDetectorBundlePool(dir);
109
+ await assignOnce();
110
+ const first = assignedBundleId();
111
+ resetAssignSecretCache();
112
+ await assignOnce();
113
+ expect(assignedBundleId()).toBe(first);
114
+ });
115
+ it("returns the bundle body matching the id it recorded", async () => {
116
+ writePool(dir, 50);
117
+ initDetectorBundlePool(dir);
118
+ const { json } = await assignOnceWith();
119
+ const body = json.mock.calls[0]?.[0];
120
+ expect(body.detectorScript).toBe(`export default ${assignedBundleId().replace("bundle-", "")};`);
121
+ });
122
+ it("spreads distinct callers across the pool", async () => {
123
+ writePool(dir, 50);
124
+ initDetectorBundlePool(dir);
125
+ const served = new Set();
126
+ for (let i = 0; i < 60; i++) {
127
+ await assignOnce(`203.0.113.${i}`);
128
+ served.add(assignedBundleId());
129
+ }
130
+ expect(served.size).toBeGreaterThan(1);
131
+ });
132
+ it("still assigns when Redis holds no client state", async () => {
133
+ writePool(dir, 50);
134
+ initDetectorBundlePool(dir);
135
+ const { json } = await assignOnceWith();
136
+ const body = json.mock.calls[0]?.[0];
137
+ expect(body.useProviderBundle).toBe(true);
138
+ expect(assignedBundleId()).toMatch(/^bundle-\d+$/);
139
+ });
140
+ it("writes the secret 0600 and leaves it alone on reload", async () => {
141
+ writePool(dir, 50);
142
+ initDetectorBundlePool(dir);
143
+ await assignOnce();
144
+ const secretPath = join(dir, ".assign-secret");
145
+ const first = readFileSync(secretPath);
146
+ expect(first.length).toBe(32);
147
+ expect(statSync(secretPath).mode & 0o777).toBe(0o600);
148
+ resetAssignSecretCache();
149
+ await assignOnce();
150
+ expect(readFileSync(secretPath)).toEqual(first);
151
+ });
152
+ });
153
+ //# sourceMappingURL=assignDetectorBundle.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assignDetectorBundle.unit.test.js","sourceRoot":"","sources":["../../../src/api/captcha/assignDetectorBundle.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;8BAuCtD,mBAAmB,0BACA,kBAAkB,WAGpC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAPpB,wBA64BG"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;8BAuCtD,mBAAmB,0BACA,kBAAkB,WAGpC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAPpB,wBAg5BG"}
@@ -6,9 +6,9 @@ import { derivePlatform, deriveTrafficPolicies } from "../../../utils/devicePlat
6
6
  import { Tasks } from "../../../tasks/tasks.js";
7
7
  import { getMaintenanceMode } from "../../admin/apiToggleMaintenanceModeEndpoint.js";
8
8
  import { isReservedTestSiteKey } from "../../testSiteKey.js";
9
+ import { normalizeRequestIp } from "../../../utils/normalizeRequestIp.js";
9
10
  import { hashUserAgent } from "../../../utils/hashUserAgent.js";
10
11
  import { hashUserIp } from "../../../utils/hashUserIp.js";
11
- import { normalizeRequestIp } from "../../../utils/normalizeRequestIp.js";
12
12
  import { rawTlsSignalsForSession } from "../../rawTlsSignalsMiddleware.js";
13
13
  import { buildFrictionlessMaintenanceResponse } from "../maintenanceModeResponses.js";
14
14
  import { applyTrafficFilterAtRequestTime, handleFrictionlessTrafficFilter } from "../trafficFilterRequestTime.js";
@@ -267,7 +267,7 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
267
267
  ...verifiedSignerUrl && { agent: verifiedSignerUrl }
268
268
  });
269
269
  }
270
- const { baseBotScore: rawBaseBotScore, timestamp: rawTimestamp, userId: rawUserId, userAgent: rawUserAgent, webView, iFrame, decryptedHeadHash, decryptionFailed: rawDecryptionFailed, triggeredDetectors, shadowDomPenalty, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, g, i, cv, sq, b, sw, md, bn, fs, bundleId } = decryptedPayload;
270
+ const { baseBotScore: rawBaseBotScore, timestamp: rawTimestamp, userId: rawUserId, userAgent: rawUserAgent, webView, iFrame, decryptedHeadHash, decryptionFailed: rawDecryptionFailed, triggeredDetectors, shadowDomPenalty, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, g, i, cv, sq, cg, sm, b, sw, md, bn, fs, bundleId } = decryptedPayload;
271
271
  const detectorOverride = process.env.PROSOPO_TEST_FRICTIONLESS_DETECTOR_OVERRIDE === "1";
272
272
  const baseBotScore = detectorOverride ? 0 : rawBaseBotScore;
273
273
  const timestamp = detectorOverride ? Date.now() : rawTimestamp;
@@ -331,6 +331,8 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
331
331
  ...i !== void 0 && { i },
332
332
  ...cv !== void 0 && { cv },
333
333
  ...sq !== void 0 && { sq },
334
+ ...cg !== void 0 && { cg },
335
+ ...sm !== void 0 && { sm },
334
336
  ...b !== void 0 && { b },
335
337
  ...sw !== void 0 && { sw },
336
338
  ...md !== void 0 && { md },
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,27 @@
1
1
  const require_bundlePool = require("../../tasks/detection/bundlePool.cjs");
2
2
  const require_tasks = require("../../tasks/tasks.cjs");
3
+ const require_assignSecret = require("../../tasks/detection/assignSecret.cjs");
4
+ const require_normalizeRequestIp = require("../../utils/normalizeRequestIp.cjs");
3
5
  let _prosopo_types = require("@prosopo/types");
6
+ let node_crypto = require("node:crypto");
4
7
  let uuid = require("uuid");
5
8
  //#region src/api/captcha/assignDetectorBundle.ts
9
+ /** Pool position for this caller: a keyed hash of their address. */
10
+ var clientIndex = (ip, secret) => (0, node_crypto.createHmac)("sha256", secret).update(ip).digest().readUIntBE(0, 6);
6
11
  /**
7
12
  * Assigns a precomputed detector bundle for this detection session.
8
13
  *
9
- * When the provider has a non-empty pool it picks a random bundle, records the
10
- * (short-TTL) `detectorSessionId → bundleId` binding in Redis, and returns the
11
- * obfuscated detector script inline.
14
+ * The bundle is derived from the caller's address and this provider's secret,
15
+ * so a repeat caller keeps getting the same one with nothing stored and nothing
16
+ * to expire. Any bundle detects equally well, so this is not visible to users.
12
17
  *
13
- * When it cannot (no pool loaded, or Redis unavailable so the binding could not
14
- * be persisted) it returns `useProviderBundle: false`. There is NO bundled
15
- * detector and no legacy key pool to fall back to — the client sends an empty
16
- * token on the frictionless hop and the provider decides what to serve.
18
+ * The `detectorSessionId → bundleId` binding is still written to Redis; the
19
+ * decrypt side resolves the session's bundle from it on the next hop.
20
+ *
21
+ * Returns `useProviderBundle: false` when there is no pool, no secret, or Redis
22
+ * could not store that binding. There is NO bundled detector to fall back to —
23
+ * the client sends an empty token on the frictionless hop and the provider
24
+ * decides what to serve.
17
25
  */
18
26
  var assignDetectorBundle_default = (env) => async (req, res, _next) => {
19
27
  try {
@@ -23,7 +31,17 @@ var assignDetectorBundle_default = (env) => async (req, res, _next) => {
23
31
  };
24
32
  const pool = require_bundlePool.getDetectorBundlePool();
25
33
  if (!pool || pool.size() === 0) return res.json(noBundle);
26
- const { bundleId, bundle } = pool.pickRandom();
34
+ const secret = require_assignSecret.getAssignSecret(require_bundlePool.getDetectorBundlePoolDir(), {
35
+ info: (msg, data) => req.logger.info(() => ({
36
+ msg,
37
+ data
38
+ })),
39
+ warn: (msg, data) => req.logger.warn(() => ({
40
+ msg,
41
+ data
42
+ }))
43
+ });
44
+ const { bundleId, bundle } = pool.at(clientIndex(require_normalizeRequestIp.normalizeRequestIp(req.ip, req.logger), secret));
27
45
  const detectorSessionId = `det-${(0, uuid.v4)()}`;
28
46
  const writeQueue = new require_tasks.Tasks(env, req.logger).frictionlessManager.writeQueue;
29
47
  if (!writeQueue) return res.json(noBundle);
@@ -6,9 +6,9 @@ const require_devicePlatform = require("../../../utils/devicePlatform.cjs");
6
6
  const require_tasks = require("../../../tasks/tasks.cjs");
7
7
  const require_apiToggleMaintenanceModeEndpoint = require("../../admin/apiToggleMaintenanceModeEndpoint.cjs");
8
8
  const require_testSiteKey = require("../../testSiteKey.cjs");
9
+ const require_normalizeRequestIp = require("../../../utils/normalizeRequestIp.cjs");
9
10
  const require_hashUserAgent = require("../../../utils/hashUserAgent.cjs");
10
11
  const require_hashUserIp = require("../../../utils/hashUserIp.cjs");
11
- const require_normalizeRequestIp = require("../../../utils/normalizeRequestIp.cjs");
12
12
  const require_rawTlsSignalsMiddleware = require("../../rawTlsSignalsMiddleware.cjs");
13
13
  const require_maintenanceModeResponses = require("../maintenanceModeResponses.cjs");
14
14
  const require_trafficFilterRequestTime = require("../trafficFilterRequestTime.cjs");
@@ -267,7 +267,7 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
267
267
  ...verifiedSignerUrl && { agent: verifiedSignerUrl }
268
268
  });
269
269
  }
270
- const { baseBotScore: rawBaseBotScore, timestamp: rawTimestamp, userId: rawUserId, userAgent: rawUserAgent, webView, iFrame, decryptedHeadHash, decryptionFailed: rawDecryptionFailed, triggeredDetectors, shadowDomPenalty, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, g, i, cv, sq, b, sw, md, bn, fs, bundleId } = decryptedPayload;
270
+ const { baseBotScore: rawBaseBotScore, timestamp: rawTimestamp, userId: rawUserId, userAgent: rawUserAgent, webView, iFrame, decryptedHeadHash, decryptionFailed: rawDecryptionFailed, triggeredDetectors, shadowDomPenalty, entropyMathRandomFingerprint, entropyCryptoFingerprint, entropyWallClockOffsetMs, entropyMathRandomFirst, g, i, cv, sq, cg, sm, b, sw, md, bn, fs, bundleId } = decryptedPayload;
271
271
  const detectorOverride = process.env.PROSOPO_TEST_FRICTIONLESS_DETECTOR_OVERRIDE === "1";
272
272
  const baseBotScore = detectorOverride ? 0 : rawBaseBotScore;
273
273
  const timestamp = detectorOverride ? Date.now() : rawTimestamp;
@@ -331,6 +331,8 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
331
331
  ...i !== void 0 && { i },
332
332
  ...cv !== void 0 && { cv },
333
333
  ...sq !== void 0 && { sq },
334
+ ...cg !== void 0 && { cg },
335
+ ...sm !== void 0 && { sm },
334
336
  ...b !== void 0 && { b },
335
337
  ...sw !== void 0 && { sw },
336
338
  ...md !== void 0 && { md },
@@ -345,7 +345,8 @@ var CaptchaManager = class CaptchaManager {
345
345
  const bundle = bundleId ? require_bundlePool.getDetectorBundlePool()?.get(bundleId) : void 0;
346
346
  return bundle ? {
347
347
  key: bundle.privateKey,
348
- innerConfig: bundle.innerConfig
348
+ innerConfig: bundle.innerConfig,
349
+ ...bundle.payloadLayout && { payloadLayout: bundle.payloadLayout }
349
350
  } : void 0;
350
351
  }
351
352
  /**
@@ -355,13 +356,44 @@ var CaptchaManager = class CaptchaManager {
355
356
  * the bundleId too so the caller can promote it onto the session.
356
357
  */
357
358
  async resolveBundleByDetectorSession(detectorSessionId) {
358
- if (!detectorSessionId || !this.writeQueue) return void 0;
359
+ if (!detectorSessionId || !this.writeQueue) {
360
+ this.logUnresolvedDetectorBundle("noDetectorSession");
361
+ return;
362
+ }
359
363
  const bundleId = await this.writeQueue.getDetectorBundle(detectorSessionId);
364
+ if (!bundleId) {
365
+ this.logUnresolvedDetectorBundle("noBinding");
366
+ return;
367
+ }
360
368
  const decrypt = this.resolveBundleById(bundleId);
361
- return bundleId && decrypt ? {
369
+ if (!decrypt) {
370
+ this.logUnresolvedDetectorBundle("bundleNotInPool", bundleId);
371
+ return;
372
+ }
373
+ return {
362
374
  ...decrypt,
363
375
  bundleId
364
- } : void 0;
376
+ };
377
+ }
378
+ /**
379
+ * Returning undefined here leaves the frictionless decrypt with no keys to
380
+ * try, which fails closed: the score is forced to 1 and the caller is
381
+ * challenged despite nothing having been measured about it. The three causes
382
+ * need different fixes — a caller that sent no detector session, a binding
383
+ * that was absent or had expired (see `DETECTOR_BUNDLE_TTL_SECONDS`), and a
384
+ * bundle this provider no longer holds — but they are indistinguishable
385
+ * downstream, where all three surface as the same decrypt failure. Logged at
386
+ * info because that is the level aggregated log search runs at, and only on
387
+ * the failure path, so this costs nothing on the hot path.
388
+ */
389
+ logUnresolvedDetectorBundle(cause, bundleId) {
390
+ this.logger?.info(() => ({
391
+ msg: "Detector bundle not resolved",
392
+ data: {
393
+ cause,
394
+ ...bundleId !== void 0 && { bundleId }
395
+ }
396
+ }));
365
397
  }
366
398
  /**
367
399
  * Resolve the detector pool bundle for a session via the `bundleId` promoted
@@ -43,46 +43,49 @@ var ARTIFACT_CACHE_TTL_MS = Number.parseInt(process.env.DECISION_MACHINE_ARTIFAC
43
43
  var DEFAULT_DECISION = { decision: _prosopo_types.DecisionMachineDecision.Allow };
44
44
  var RequiredCountersSchema = zod.z.array(_prosopo_types.CounterSpecSchema);
45
45
  /**
46
- * WeakSet-style registry of every live runner. Populated in the constructor
47
- * and consulted by {@link invalidateAllDecisionMachineArtifactCaches} so an
48
- * artifact upload can flush every runner's in-memory artifact cache in one
49
- * call. Held as `WeakRef` so a runner that goes out of scope is garbage
50
- * collected — this map only ever grows in prod (runners are constructed
51
- * per task class at process start and live for the process's lifetime) so
52
- * a plain array would also work, but `WeakRef` is defensive.
46
+ * Bumped by {@link invalidateAllDecisionMachineArtifactCaches}. A runner
47
+ * caches the value it last saw and drops its artifact cache whenever the two
48
+ * diverge, which flushes every runner — including ones built after the
49
+ * invalidation — without holding a reference to any of them.
50
+ *
51
+ * This replaces a registry of live runners, which assumed runners were built
52
+ * once per process. They are built per request, so the registry grew without
53
+ * bound and construction eventually began to fail. `WeakRef` did not bound
54
+ * it: the set held the wrapper, which outlives its referent.
53
55
  */
54
- var liveRunners = /* @__PURE__ */ new Set();
56
+ var artifactCacheGeneration = 0;
55
57
  /**
56
58
  * Flush every runner's in-memory artifact cache. Companion to
57
59
  * {@link invalidateDecisionMachineScriptCache}. Call both after any
58
60
  * `upsertDecisionMachineArtifact` upload.
59
61
  */
60
62
  var invalidateAllDecisionMachineArtifactCaches = () => {
61
- for (const ref of liveRunners) {
62
- const runner = ref.deref();
63
- if (runner === void 0) {
64
- liveRunners.delete(ref);
65
- continue;
66
- }
67
- runner.invalidateArtifactCache();
68
- }
63
+ artifactCacheGeneration++;
69
64
  };
70
65
  var DecisionMachineRunner = class DecisionMachineRunner {
71
66
  constructor(db) {
72
67
  this.db = db;
73
68
  this.artifactCache = /* @__PURE__ */ new Map();
74
- liveRunners.add(new WeakRef(this));
69
+ this.seenArtifactCacheGeneration = artifactCacheGeneration;
75
70
  }
76
71
  /** Drop every entry in this runner's artifact cache. */
77
72
  invalidateArtifactCache() {
78
73
  this.artifactCache.clear();
79
74
  }
75
+ /** Drop the cache if an invalidation happened since it was last consulted. */
76
+ dropArtifactCacheIfStale() {
77
+ if (this.seenArtifactCacheGeneration !== artifactCacheGeneration) {
78
+ this.seenArtifactCacheGeneration = artifactCacheGeneration;
79
+ this.artifactCache.clear();
80
+ }
81
+ }
80
82
  /** Build a cache key for a given scope + kind + dappAccount tuple. */
81
83
  static cacheKey(scope, kind, dappAccount) {
82
84
  return `${scope}:${kind}:${dappAccount ?? ""}`;
83
85
  }
84
86
  /** Return a cached artifact if still fresh, or undefined. */
85
87
  getCachedArtifact(scope, kind, dappAccount) {
88
+ this.dropArtifactCacheIfStale();
86
89
  const entry = this.artifactCache.get(DecisionMachineRunner.cacheKey(scope, kind, dappAccount));
87
90
  if (!entry) return null;
88
91
  if (Date.now() - entry.cachedAt > ARTIFACT_CACHE_TTL_MS) {
@@ -0,0 +1,45 @@
1
+ let node_crypto = require("node:crypto");
2
+ let node_fs = require("node:fs");
3
+ let node_path = require("node:path");
4
+ //#region src/tasks/detection/assignSecret.ts
5
+ /**
6
+ * Per-provider key for the client → bundle mapping in `assignDetectorBundle`.
7
+ * Generated once and kept on the pool volume so a restart does not change the
8
+ * mapping. Treat it as a credential.
9
+ */
10
+ var SECRET_BYTES = 32;
11
+ /**
12
+ * Dot-prefixed so a pool replace leaves it alone: `loadFromDir` and
13
+ * `persistDetectorBundlePool` only touch `.js`/`.json`.
14
+ */
15
+ var SECRET_FILENAME = ".assign-secret";
16
+ var cached = null;
17
+ function getAssignSecret(poolDir, logger = {}) {
18
+ const path = (0, node_path.join)(poolDir, SECRET_FILENAME);
19
+ if (cached && cached.path === path) return cached.secret;
20
+ try {
21
+ const existing = (0, node_fs.readFileSync)(path);
22
+ if (existing.length === SECRET_BYTES) {
23
+ cached = {
24
+ path,
25
+ secret: existing
26
+ };
27
+ return existing;
28
+ }
29
+ logger.warn?.("assign secret has unexpected length, regenerating", { bytes: existing.length });
30
+ } catch {}
31
+ const secret = (0, node_crypto.randomBytes)(SECRET_BYTES);
32
+ (0, node_fs.mkdirSync)((0, node_path.dirname)(path), { recursive: true });
33
+ const tmp = `${path}.tmp`;
34
+ (0, node_fs.writeFileSync)(tmp, secret, { mode: 384 });
35
+ (0, node_fs.chmodSync)(tmp, 384);
36
+ (0, node_fs.renameSync)(tmp, path);
37
+ logger.info?.("generated a new assign secret", { path });
38
+ cached = {
39
+ path,
40
+ secret
41
+ };
42
+ return secret;
43
+ }
44
+ //#endregion
45
+ exports.getAssignSecret = getAssignSecret;
@@ -1,4 +1,3 @@
1
- let node_crypto = require("node:crypto");
2
1
  let node_fs = require("node:fs");
3
2
  let node_path = require("node:path");
4
3
  //#region src/tasks/detection/bundlePool.ts
@@ -8,10 +7,10 @@ let node_path = require("node:path");
8
7
  * Loads a pool of precomputed, obfuscated detector bundles from disk and caches
9
8
  * them in memory — the Node analogue of the Rust "bumblebee" `bundle_manager`.
10
9
  * Each bundle is a `{id}.js` (served to the browser) paired with a `{id}.json`
11
- * (`{ privateKey, innerConfig }`, kept server-side) produced by the catcher
12
- * `bundle:pool` build script.
10
+ * (`{ privateKey, innerConfig, payloadLayout }`, kept server-side) produced by
11
+ * the catcher `bundle:pool` build script.
13
12
  *
14
- * A bundle is assigned per detector session by {@link DetectorBundlePool.pickRandom},
13
+ * A bundle is assigned per detector session by {@link DetectorBundlePool.at},
15
14
  * served by id, and resolved again at decryption time so the provider uses the
16
15
  * single correct keypair + inner config rather than brute-forcing a key pool.
17
16
  * The session→bundle binding lives in Redis (short TTL); this module only holds
@@ -68,11 +67,13 @@ var DetectorBundlePool = class {
68
67
  continue;
69
68
  }
70
69
  if (expectedRelease && !release) unstamped++;
70
+ const payloadLayout = typeof secrets.payloadLayout === "string" ? secrets.payloadLayout : void 0;
71
71
  next.set(bundleId, {
72
72
  js,
73
73
  privateKey: secrets.privateKey,
74
74
  innerConfig: secrets.innerConfig,
75
- ...release && { release }
75
+ ...release && { release },
76
+ ...payloadLayout && { payloadLayout }
76
77
  });
77
78
  } catch (error) {
78
79
  logger.warn?.("failed to load bundle pool entry", {
@@ -105,13 +106,13 @@ var DetectorBundlePool = class {
105
106
  return this.ids.length;
106
107
  }
107
108
  /**
108
- * Pick a uniformly-random bundle. Throws if the pool is empty — the caller
109
- * must surface this as a hard failure (no bundle ⇒ no valid payload can be
110
- * produced).
109
+ * Select by position. `ids` is sorted by {@link replace}, so an index means
110
+ * the same bundle until the pool contents change. Reduced modulo the size, so
111
+ * callers need not know how many bundles are loaded.
111
112
  */
112
- pickRandom() {
113
+ at(index) {
113
114
  if (this.ids.length === 0) throw new Error("detector bundle pool is empty");
114
- const bundleId = this.ids[(0, node_crypto.randomInt)(this.ids.length)];
115
+ const bundleId = this.ids[index % this.ids.length];
115
116
  const bundle = bundleId !== void 0 ? this.bundles.get(bundleId) : void 0;
116
117
  if (bundleId === void 0 || !bundle) throw new Error("detector bundle pool selection failed");
117
118
  return {
@@ -168,7 +169,8 @@ function persistDetectorBundlePool(bundles, dir = globalPoolDir) {
168
169
  (0, node_fs.writeFileSync)(jsonTmp, JSON.stringify({
169
170
  privateKey: bundle.privateKey,
170
171
  innerConfig: bundle.innerConfig,
171
- ...bundle.release && { release: bundle.release }
172
+ ...bundle.release && { release: bundle.release },
173
+ ...bundle.payloadLayout && { payloadLayout: bundle.payloadLayout }
172
174
  }), {
173
175
  encoding: "utf8",
174
176
  mode: 384
@@ -183,6 +185,10 @@ function persistDetectorBundlePool(bundles, dir = globalPoolDir) {
183
185
  function getDetectorBundlePool() {
184
186
  return globalPool;
185
187
  }
188
+ /** Where the global pool was last loaded from — the host-mounted volume. */
189
+ function getDetectorBundlePoolDir() {
190
+ return globalPoolDir;
191
+ }
186
192
  /**
187
193
  * Hot-swap the global pool's contents (admin "emergency push" channel) and
188
194
  * write it to the pool directory so it survives a restart. Creates the global
@@ -215,6 +221,7 @@ function replaceDetectorBundlePool(bundles, logger = {}) {
215
221
  exports.DEFAULT_DETECTOR_POOL_DIR = DEFAULT_DETECTOR_POOL_DIR;
216
222
  exports.DetectorBundlePool = DetectorBundlePool;
217
223
  exports.getDetectorBundlePool = getDetectorBundlePool;
224
+ exports.getDetectorBundlePoolDir = getDetectorBundlePoolDir;
218
225
  exports.initDetectorBundlePool = initDetectorBundlePool;
219
226
  exports.persistDetectorBundlePool = persistDetectorBundlePool;
220
227
  exports.replaceDetectorBundlePool = replaceDetectorBundlePool;