@prosopo/provider 5.14.0 → 5.15.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 (134) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +20 -22
  2. package/.turbo/turbo-build$colon$tsc.log +27 -30
  3. package/.turbo/turbo-build.log +21 -26
  4. package/CHANGELOG.md +128 -0
  5. package/LICENSE +201 -0
  6. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts +2 -1
  7. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts.map +1 -1
  8. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js +11 -2
  9. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js.map +1 -1
  10. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  11. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +15 -8
  12. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  13. package/dist/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.d.ts +5 -0
  14. package/dist/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.d.ts.map +1 -0
  15. package/dist/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.js +20 -0
  16. package/dist/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.js.map +1 -0
  17. package/dist/api/captcha/getPuzzleCaptchaChallenge.d.ts.map +1 -1
  18. package/dist/api/captcha/getPuzzleCaptchaChallenge.js +24 -0
  19. package/dist/api/captcha/getPuzzleCaptchaChallenge.js.map +1 -1
  20. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts +4 -11
  21. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
  22. package/dist/api/captcha/submitPoWCaptchaSolution.js +12 -17
  23. package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
  24. package/dist/api/rawTlsSignalsMiddleware.d.ts +14 -1
  25. package/dist/api/rawTlsSignalsMiddleware.d.ts.map +1 -1
  26. package/dist/api/rawTlsSignalsMiddleware.js +111 -23
  27. package/dist/api/rawTlsSignalsMiddleware.js.map +1 -1
  28. package/dist/api/startProviderApi.js +2 -2
  29. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/constants.cjs +10 -0
  30. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +14 -7
  31. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.cjs +20 -0
  32. package/dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs +24 -0
  33. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +10 -15
  34. package/dist/cjs/api/rawTlsSignalsMiddleware.cjs +111 -22
  35. package/dist/cjs/api/startProviderApi.cjs +2 -2
  36. package/dist/cjs/compositeIpAddress.cjs +21 -7
  37. package/dist/cjs/tasks/captchaManager.cjs +15 -0
  38. package/dist/cjs/tasks/captchaTypeSelection.cjs +23 -2
  39. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +26 -23
  40. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +2 -9
  41. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +7 -11
  42. package/dist/cjs/tasks/powCaptcha/powTasksUtils.cjs +2 -0
  43. package/dist/cjs/tasks/puzzle/backgroundBuffer.cjs +3 -3
  44. package/dist/cjs/tasks/puzzle/nativeBackground.cjs +12 -5
  45. package/dist/cjs/tasks/puzzle/puzzleRenderer.cjs +4 -3
  46. package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +2 -9
  47. package/dist/compositeIpAddress.d.ts.map +1 -1
  48. package/dist/compositeIpAddress.js +21 -7
  49. package/dist/compositeIpAddress.js.map +1 -1
  50. package/dist/tasks/captchaManager.d.ts.map +1 -1
  51. package/dist/tasks/captchaManager.js +16 -1
  52. package/dist/tasks/captchaManager.js.map +1 -1
  53. package/dist/tasks/captchaTypeSelection.d.ts +3 -1
  54. package/dist/tasks/captchaTypeSelection.d.ts.map +1 -1
  55. package/dist/tasks/captchaTypeSelection.js +23 -3
  56. package/dist/tasks/captchaTypeSelection.js.map +1 -1
  57. package/dist/tasks/frictionless/frictionlessTasks.d.ts +3 -1
  58. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
  59. package/dist/tasks/frictionless/frictionlessTasks.js +28 -25
  60. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
  61. package/dist/tasks/frictionless/routingMachine.d.ts +1 -2
  62. package/dist/tasks/frictionless/routingMachine.d.ts.map +1 -1
  63. package/dist/tasks/frictionless/routingMachine.js.map +1 -1
  64. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
  65. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +2 -9
  66. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
  67. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
  68. package/dist/tasks/powCaptcha/powTasks.js +8 -12
  69. package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
  70. package/dist/tasks/powCaptcha/powTasksUtils.d.ts +1 -0
  71. package/dist/tasks/powCaptcha/powTasksUtils.d.ts.map +1 -1
  72. package/dist/tasks/powCaptcha/powTasksUtils.js +2 -1
  73. package/dist/tasks/powCaptcha/powTasksUtils.js.map +1 -1
  74. package/dist/tasks/puzzle/backgroundBuffer.d.ts +3 -2
  75. package/dist/tasks/puzzle/backgroundBuffer.d.ts.map +1 -1
  76. package/dist/tasks/puzzle/backgroundBuffer.js +3 -3
  77. package/dist/tasks/puzzle/backgroundBuffer.js.map +1 -1
  78. package/dist/tasks/puzzle/nativeBackground.d.ts +5 -1
  79. package/dist/tasks/puzzle/nativeBackground.d.ts.map +1 -1
  80. package/dist/tasks/puzzle/nativeBackground.js +12 -5
  81. package/dist/tasks/puzzle/nativeBackground.js.map +1 -1
  82. package/dist/tasks/puzzle/puzzleRenderer.d.ts +2 -0
  83. package/dist/tasks/puzzle/puzzleRenderer.d.ts.map +1 -1
  84. package/dist/tasks/puzzle/puzzleRenderer.js +4 -3
  85. package/dist/tasks/puzzle/puzzleRenderer.js.map +1 -1
  86. package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
  87. package/dist/tasks/puzzleCaptcha/puzzleTasks.js +2 -9
  88. package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
  89. package/dist/tests/integration/clientSettingsPersistence.integration.test.js +2 -0
  90. package/dist/tests/integration/clientSettingsPersistence.integration.test.js.map +1 -1
  91. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/constants.unit.test.js +35 -2
  92. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/constants.unit.test.js.map +1 -1
  93. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.unit.test.d.ts +2 -0
  94. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.unit.test.d.ts.map +1 -0
  95. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.unit.test.js +45 -0
  96. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/refreshLineage.unit.test.js.map +1 -0
  97. package/dist/tests/unit/api/captcha/submitPoWCaptchaSolution.escalation.unit.test.js +15 -1
  98. package/dist/tests/unit/api/captcha/submitPoWCaptchaSolution.escalation.unit.test.js.map +1 -1
  99. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js +148 -0
  100. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js.map +1 -1
  101. package/dist/tests/unit/api/rawTlsSignalsMiddleware.unit.test.js +96 -1
  102. package/dist/tests/unit/api/rawTlsSignalsMiddleware.unit.test.js.map +1 -1
  103. package/dist/tests/unit/compositeIpAddress.unit.test.js +12 -3
  104. package/dist/tests/unit/compositeIpAddress.unit.test.js.map +1 -1
  105. package/dist/tests/unit/tasks/captchaManager.unit.test.js +51 -0
  106. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
  107. package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.js +20 -1
  108. package/dist/tests/unit/tasks/captchaTypeSelection.unit.test.js.map +1 -1
  109. package/dist/tests/unit/tasks/frictionless/allowedCaptchaTypes.unit.test.d.ts +2 -0
  110. package/dist/tests/unit/tasks/frictionless/allowedCaptchaTypes.unit.test.d.ts.map +1 -0
  111. package/dist/tests/unit/tasks/frictionless/allowedCaptchaTypes.unit.test.js +94 -0
  112. package/dist/tests/unit/tasks/frictionless/allowedCaptchaTypes.unit.test.js.map +1 -0
  113. package/dist/tests/unit/tasks/frictionless/refreshSwitch.unit.test.d.ts +2 -0
  114. package/dist/tests/unit/tasks/frictionless/refreshSwitch.unit.test.d.ts.map +1 -0
  115. package/dist/tests/unit/tasks/frictionless/refreshSwitch.unit.test.js +103 -0
  116. package/dist/tests/unit/tasks/frictionless/refreshSwitch.unit.test.js.map +1 -0
  117. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js +23 -1
  118. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js.map +1 -1
  119. package/dist/tests/unit/tasks/puzzle/backgroundBuffer.unit.test.js +1 -4
  120. package/dist/tests/unit/tasks/puzzle/backgroundBuffer.unit.test.js.map +1 -1
  121. package/dist/tests/unit/tasks/puzzle/nativeBackground.unit.test.js +10 -3
  122. package/dist/tests/unit/tasks/puzzle/nativeBackground.unit.test.js.map +1 -1
  123. package/dist/tests/unit/tasks/puzzle/puzzleRenderer.unit.test.d.ts +2 -0
  124. package/dist/tests/unit/tasks/puzzle/puzzleRenderer.unit.test.d.ts.map +1 -0
  125. package/dist/tests/unit/tasks/puzzle/puzzleRenderer.unit.test.js +35 -0
  126. package/dist/tests/unit/tasks/puzzle/puzzleRenderer.unit.test.js.map +1 -0
  127. package/dist/tests/unit/tasks/puzzleDifficultyDeviceCap.unit.test.d.ts +2 -0
  128. package/dist/tests/unit/tasks/puzzleDifficultyDeviceCap.unit.test.d.ts.map +1 -0
  129. package/dist/tests/unit/tasks/puzzleDifficultyDeviceCap.unit.test.js +49 -0
  130. package/dist/tests/unit/tasks/puzzleDifficultyDeviceCap.unit.test.js.map +1 -0
  131. package/dist/tests/unit/testUtils/mockProviderEnv.d.ts +17 -14
  132. package/dist/tests/unit/testUtils/mockProviderEnv.d.ts.map +1 -1
  133. package/dist/tests/unit/testUtils/mockProviderEnv.js.map +1 -1
  134. package/package.json +105 -103
@@ -1 +1 @@
1
- {"version":3,"file":"backgroundBuffer.unit.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/puzzle/backgroundBuffer.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backgroundBuffer.unit.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/puzzle/backgroundBuffer.unit.test.ts"],"names":[],"mappings":"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"}
@@ -24,10 +24,11 @@ describe("native puzzle background", () => {
24
24
  it("produces a fresh image per call", () => {
25
25
  const first = createBackgroundNative(DEFAULT_GEOMETRY);
26
26
  const second = createBackgroundNative(DEFAULT_GEOMETRY);
27
- expect(first.data.equals(second.data)).toBe(false);
27
+ expect(first.image.data.equals(second.image.data)).toBe(false);
28
+ expect(first.seed.equals(second.seed)).toBe(false);
28
29
  });
29
30
  it("returns a correctly shaped RGBA buffer", () => {
30
- const image = createBackgroundNative(DEFAULT_GEOMETRY);
31
+ const { image } = createBackgroundNative(DEFAULT_GEOMETRY);
31
32
  expect(image.width).toBe(width);
32
33
  expect(image.height).toBe(height);
33
34
  expect(image.data.length).toBe(width * height * 4);
@@ -36,13 +37,19 @@ describe("native puzzle background", () => {
36
37
  }
37
38
  });
38
39
  it("honours a non-default geometry", () => {
39
- const image = createBackgroundNative({
40
+ const { image } = createBackgroundNative({
40
41
  width: 64,
41
42
  height: 32,
42
43
  notchSize: 8,
43
44
  });
44
45
  expect(image.data.length).toBe(64 * 32 * 4);
45
46
  });
47
+ it("returns the seed that produced the image", () => {
48
+ const { image, seed } = createBackgroundNative(DEFAULT_GEOMETRY);
49
+ expect(seed.length).toBe(16);
50
+ const replayed = native.generateBackground(seed, width, height);
51
+ expect(replayed.equals(image.data)).toBe(true);
52
+ });
46
53
  it("rejects a seed shorter than the generator needs", () => {
47
54
  expect(() => native.generateBackground(Buffer.alloc(8), width, height)).toThrow(/seed must be at least 16 bytes/);
48
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"nativeBackground.unit.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/puzzle/nativeBackground.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nativeBackground.unit.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/puzzle/nativeBackground.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=puzzleRenderer.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puzzleRenderer.unit.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/puzzle/puzzleRenderer.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { DEFAULT_GEOMETRY, DEFAULT_RENDER_SETTINGS, createBackground, renderPuzzle, toDataUri, } from "@prosopo/puzzle-assets";
2
+ import { afterEach, describe, expect, it } from "vitest";
3
+ import { resetPuzzleBackgroundBuffer } from "../../../../tasks/puzzle/backgroundBuffer.js";
4
+ import { renderPuzzleImages } from "../../../../tasks/puzzle/puzzleRenderer.js";
5
+ const PLACEMENT = { targetX: 203, targetY: 61 };
6
+ describe("renderPuzzleImages", () => {
7
+ afterEach(() => {
8
+ resetPuzzleBackgroundBuffer();
9
+ });
10
+ it("returns both seeds as 128-bit hex", async () => {
11
+ const images = await renderPuzzleImages(PLACEMENT);
12
+ expect(images.backgroundSeed).toMatch(/^[0-9a-f]{32}$/);
13
+ expect(images.renderSeed).toMatch(/^[0-9a-f]{32}$/);
14
+ expect(images.backgroundSeed).not.toBe(images.renderSeed);
15
+ });
16
+ it("returns seeds that reproduce the served imagery byte for byte", async () => {
17
+ const pieceSize = 51;
18
+ const served = await renderPuzzleImages(PLACEMENT, DEFAULT_RENDER_SETTINGS, pieceSize);
19
+ const replayed = await renderPuzzle(createBackground(DEFAULT_GEOMETRY, Buffer.from(served.backgroundSeed, "hex")), PLACEMENT, { ...DEFAULT_GEOMETRY, pieceSize }, DEFAULT_RENDER_SETTINGS, Buffer.from(served.renderSeed, "hex"));
20
+ expect(toDataUri(replayed.background)).toBe(served.background);
21
+ expect(toDataUri(replayed.piece)).toBe(served.piece);
22
+ expect(replayed.pieceSize).toBe(served.pieceSize);
23
+ });
24
+ it("reports the piece size it actually drew", async () => {
25
+ const images = await renderPuzzleImages(PLACEMENT, DEFAULT_RENDER_SETTINGS, 37);
26
+ expect(images.pieceSize).toBe(37);
27
+ });
28
+ it("gives consecutive challenges different seeds", async () => {
29
+ const first = await renderPuzzleImages(PLACEMENT);
30
+ const second = await renderPuzzleImages(PLACEMENT);
31
+ expect(first.backgroundSeed).not.toBe(second.backgroundSeed);
32
+ expect(first.renderSeed).not.toBe(second.renderSeed);
33
+ });
34
+ });
35
+ //# sourceMappingURL=puzzleRenderer.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puzzleRenderer.unit.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/puzzle/puzzleRenderer.unit.test.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,gBAAgB,EAChB,uBAAuB,EAEvB,gBAAgB,EAChB,YAAY,EACZ,SAAS,GACT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAEhF,MAAM,SAAS,GAAmB,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAEhE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACnC,SAAS,CAAC,GAAG,EAAE;QACd,2BAA2B,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IASH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACtC,SAAS,EACT,uBAAuB,EACvB,SAAS,CACT,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAClC,gBAAgB,CACf,gBAAgB,EAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CACzC,EACD,SAAS,EACT,EAAE,GAAG,gBAAgB,EAAE,SAAS,EAAE,EAClC,uBAAuB,EACvB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CACrC,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACtC,SAAS,EACT,uBAAuB,EACvB,EAAE,CACF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAInD,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7D,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=puzzleDifficultyDeviceCap.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puzzleDifficultyDeviceCap.unit.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/unit/tasks/puzzleDifficultyDeviceCap.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ import { MAX_AUTO_ESCALATION_LEVEL, MAX_AUTO_ESCALATION_LEVEL_TOUCH, PUZZLE_DIFFICULTY_LEVELS, resolveMaxEscalationLevel, severityToPuzzleDifficulty, } from "@prosopo/captcha-severity";
2
+ import { DEFAULT_RENDER_SETTINGS } from "@prosopo/puzzle-assets";
3
+ import { describe, expect, it } from "vitest";
4
+ import { samplePuzzleDifficulty } from "../../../tasks/puzzle/puzzleDifficulty.js";
5
+ const BASE_IMAGE_ROUNDS = 2;
6
+ const SAMPLES = 400;
7
+ const escalatedLevel = (siteMax, isTouch) => severityToPuzzleDifficulty(1000, BASE_IMAGE_ROUNDS, resolveMaxEscalationLevel(siteMax, isTouch));
8
+ describe("puzzle difficulty device ceiling", () => {
9
+ it("never serves a touch session a tolerance below the L2 floor", () => {
10
+ const level = escalatedLevel(4, true);
11
+ const floor = PUZZLE_DIFFICULTY_LEVELS[MAX_AUTO_ESCALATION_LEVEL_TOUCH]
12
+ ?.tolerance.min;
13
+ for (let i = 0; i < SAMPLES; i++) {
14
+ const sampled = samplePuzzleDifficulty(level, DEFAULT_RENDER_SETTINGS.holeDarken);
15
+ expect(sampled.tolerance).toBeGreaterThanOrEqual(floor);
16
+ }
17
+ });
18
+ it("still serves pointer sessions the full L3 range", () => {
19
+ const level = escalatedLevel(undefined, false);
20
+ expect(level).toBe(MAX_AUTO_ESCALATION_LEVEL);
21
+ const band = PUZZLE_DIFFICULTY_LEVELS[MAX_AUTO_ESCALATION_LEVEL];
22
+ expect(band).toBeDefined();
23
+ if (!band)
24
+ return;
25
+ const seen = new Set();
26
+ for (let i = 0; i < SAMPLES; i++) {
27
+ seen.add(samplePuzzleDifficulty(level, DEFAULT_RENDER_SETTINGS.holeDarken)
28
+ .tolerance);
29
+ }
30
+ expect(Math.min(...seen)).toBe(band.tolerance.min);
31
+ });
32
+ it("gives a touch session an easier worst case than a pointer session", () => {
33
+ const touchFloor = PUZZLE_DIFFICULTY_LEVELS[escalatedLevel(4, true)]
34
+ ?.tolerance.min;
35
+ const pointerFloor = PUZZLE_DIFFICULTY_LEVELS[escalatedLevel(4, false)]
36
+ ?.tolerance.min;
37
+ expect(touchFloor).toBeGreaterThan(pointerFloor);
38
+ });
39
+ it("lets a site pin itself below the device ceiling on either device", () => {
40
+ expect(escalatedLevel(0, true)).toBe(0);
41
+ expect(escalatedLevel(0, false)).toBe(0);
42
+ });
43
+ it("keeps the reserved level unreachable by escalation on both devices", () => {
44
+ const reserved = PUZZLE_DIFFICULTY_LEVELS.length - 1;
45
+ expect(escalatedLevel(4, true)).toBeLessThan(reserved);
46
+ expect(escalatedLevel(4, false)).toBeLessThan(reserved);
47
+ });
48
+ });
49
+ //# sourceMappingURL=puzzleDifficultyDeviceCap.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puzzleDifficultyDeviceCap.unit.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/tasks/puzzleDifficultyDeviceCap.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import type { ProviderEnvironment } from "@prosopo/types-env";
2
+ import { type Mock } from "vitest";
2
3
  export declare function createMockProviderEnvironment(): ProviderEnvironment;
3
- export declare function createMockExpressObjects(): {
4
+ interface MockExpressObjects {
4
5
  mockReq: {
5
- headers: {};
6
- body: {};
7
- query: {};
8
- params: {};
6
+ headers: Record<string, string>;
7
+ body: Record<string, unknown>;
8
+ query: Record<string, string>;
9
+ params: Record<string, string>;
9
10
  ip: string;
10
11
  originalUrl: string;
11
12
  method: string;
@@ -13,14 +14,16 @@ export declare function createMockExpressObjects(): {
13
14
  path: string;
14
15
  };
15
16
  mockRes: {
16
- status: import("vitest").Mock<import("@vitest/spy").Procedure>;
17
- json: import("vitest").Mock<import("@vitest/spy").Procedure>;
18
- send: import("vitest").Mock<import("@vitest/spy").Procedure>;
19
- setHeader: import("vitest").Mock<import("@vitest/spy").Procedure>;
20
- getHeader: import("vitest").Mock<import("@vitest/spy").Procedure>;
21
- end: import("vitest").Mock<import("@vitest/spy").Procedure>;
22
- locals: {};
17
+ status: Mock;
18
+ json: Mock;
19
+ send: Mock;
20
+ setHeader: Mock;
21
+ getHeader: Mock;
22
+ end: Mock;
23
+ locals: Record<string, unknown>;
23
24
  };
24
- mockNext: import("vitest").Mock<import("@vitest/spy").Procedure>;
25
- };
25
+ mockNext: Mock;
26
+ }
27
+ export declare function createMockExpressObjects(): MockExpressObjects;
28
+ export {};
26
29
  //# sourceMappingURL=mockProviderEnv.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mockProviderEnv.d.ts","sourceRoot":"","sources":["../../../../src/tests/unit/testUtils/mockProviderEnv.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAkB,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAQ9E,wBAAgB,6BAA6B,IAAI,mBAAmB,CA2InE;AAKD,wBAAgB,wBAAwB;;;;;;;;;;;;;;;;;;;;;;EA0BvC"}
1
+ {"version":3,"file":"mockProviderEnv.d.ts","sourceRoot":"","sources":["../../../../src/tests/unit/testUtils/mockProviderEnv.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAkB,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,KAAK,IAAI,EAAM,MAAM,QAAQ,CAAC;AAOvC,wBAAgB,6BAA6B,IAAI,mBAAmB,CA2InE;AAED,UAAU,kBAAkB;IAC3B,OAAO,EAAE;QACR,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACb,CAAC;IACF,OAAO,EAAE;QACR,MAAM,EAAE,IAAI,CAAC;QACb,IAAI,EAAE,IAAI,CAAC;QACX,IAAI,EAAE,IAAI,CAAC;QACX,SAAS,EAAE,IAAI,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;QAChB,GAAG,EAAE,IAAI,CAAC;QACV,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC;IACF,QAAQ,EAAE,IAAI,CAAC;CACf;AAKD,wBAAgB,wBAAwB,IAAI,kBAAkB,CA0B7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"mockProviderEnv.js","sourceRoot":"","sources":["../../../../src/tests/unit/testUtils/mockProviderEnv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mockProviderEnv.js","sourceRoot":"","sources":["../../../../src/tests/unit/testUtils/mockProviderEnv.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,104 +1,106 @@
1
1
  {
2
- "name": "@prosopo/provider",
3
- "version": "5.14.0",
4
- "author": "PROSOPO LIMITED <info@prosopo.io>",
5
- "license": "Apache-2.0",
6
- "type": "module",
7
- "engines": {
8
- "node": "^24",
9
- "npm": "^11"
10
- },
11
- "scripts": {
12
- "clean": "del-cli --verbose dist tsconfig.tsbuildinfo",
13
- "build": "npm run build:cross-env -- --mode ${NODE_ENV:-development}",
14
- "build:cross-env": "vite build --config vite.esm.config.ts",
15
- "build:tsc": "tsc --build --verbose",
16
- "build:cjs": "NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV",
17
- "build:edge": "node ./scripts/buildEdgeScript.mjs",
18
- "typecheck": "tsc --project tsconfig.types.json",
19
- "test:unit": "NODE_ENV=${NODE_ENV:-test}; TEST_TYPE=unit npx vitest run --config ./vite.test.config.ts",
20
- "test:integration": "NODE_ENV=${NODE_ENV:-test}; TEST_TYPE=integration DECISION_MACHINE_ARTIFACT_CACHE_TTL_MS=1 npx vitest run --config ./vite.threads.test.config.ts",
21
- "test": "npm run test:unit && npm run test:integration",
22
- "mnemonic": "tsx ./scripts/generateMnemonic.ts"
23
- },
24
- "dependencies": {
25
- "@noble/hashes": "2.4.0",
26
- "@polkadot/util": "14.0.3",
27
- "@prosopo/api": "4.3.8",
28
- "@prosopo/api-express-router": "3.2.0",
29
- "@prosopo/api-route": "2.6.62",
30
- "@prosopo/captcha-severity": "1.1.2",
31
- "@prosopo/common": "3.1.61",
32
- "@prosopo/database": "4.1.3",
33
- "@prosopo/datasets": "3.2.0",
34
- "@prosopo/env": "3.6.68",
35
- "@prosopo/ipinfo": "0.4.13",
36
- "@prosopo/keyring": "2.10.0",
37
- "@prosopo/load-balancer": "2.11.4",
38
- "@prosopo/locale": "3.6.2",
39
- "@prosopo/logger": "2.1.2",
40
- "@prosopo/native-ja4": "0.0.7",
41
- "@prosopo/native-merkle": "0.0.6",
42
- "@prosopo/native-puzzle": "0.1.0",
43
- "@prosopo/puzzle-assets": "0.1.4",
44
- "@prosopo/redis-client": "1.0.39",
45
- "@prosopo/types": "5.12.0",
46
- "@prosopo/types-database": "5.7.3",
47
- "@prosopo/types-env": "2.11.14",
48
- "@prosopo/user-access-policy": "3.14.14",
49
- "@prosopo/util": "3.3.13",
50
- "@prosopo/util-crypto": "13.6.0",
51
- "@prosopo/web-bot-auth": "0.1.3",
52
- "cron": "3.1.7",
53
- "express": "4.22.2",
54
- "express-rate-limit": "7.4.0",
55
- "geolib": "3.3.14",
56
- "i18next": "26.4.2",
57
- "ip-address": "10.7.0",
58
- "mongoose": "9.10.0",
59
- "prom-client": "15.1.3",
60
- "uuid": "14.0.2",
61
- "zod": "3.23.8"
62
- },
63
- "devDependencies": {
64
- "@noble/curves": "2.4.0",
65
- "@prosopo/config": "3.4.2",
66
- "@types/node": "22.5.5",
67
- "@types/pg": "8.23.1",
68
- "@types/uuid": "11.0.0",
69
- "@vitest/coverage-v8": "4.1.11",
70
- "concurrently": "9.0.1",
71
- "cors": "2.8.6",
72
- "del-cli": "6.0.0",
73
- "dotenv": "16.4.5",
74
- "esbuild": "0.28.2",
75
- "npm-run-all": "4.1.5",
76
- "testcontainers": "12.1.0",
77
- "tslib": "2.7.0",
78
- "tsx": "4.20.3",
79
- "typescript": "5.6.2",
80
- "undici": "6.29.0",
81
- "vite": "8.1.5",
82
- "vitest": "4.1.11"
83
- },
84
- "repository": {
85
- "type": "git",
86
- "url": "git+https://github.com/prosopo/captcha.git",
87
- "directory": "packages/provider"
88
- },
89
- "description": "The easiest way to deploy the Prosopo contract and run the Provider node is via the [captcha repository](https://github.com/prosopo/captcha/).",
90
- "bugs": {
91
- "url": "https://github.com/prosopo/captcha/issues"
92
- },
93
- "homepage": "https://github.com/prosopo/captcha#readme",
94
- "sideEffects": false,
95
- "main": "dist/index.js",
96
- "types": "dist/index.d.ts",
97
- "exports": {
98
- ".": {
99
- "types": "./dist/index.d.ts",
100
- "import": "./dist/index.js",
101
- "require": "./dist/cjs/index.cjs"
102
- }
103
- }
104
- }
2
+ "name": "@prosopo/provider",
3
+ "version": "5.15.0",
4
+ "author": "PROSOPO LIMITED <info@prosopo.io>",
5
+ "license": "Apache-2.0",
6
+ "type": "module",
7
+ "engines": {
8
+ "node": "^24"
9
+ },
10
+ "dependencies": {
11
+ "@noble/hashes": "2.4.0",
12
+ "@polkadot/util": "14.0.3",
13
+ "@prosopo/api": "4.4.0",
14
+ "@prosopo/api-express-router": "3.2.1",
15
+ "@prosopo/api-route": "2.6.63",
16
+ "@prosopo/captcha-severity": "1.2.0",
17
+ "@prosopo/common": "3.1.62",
18
+ "@prosopo/database": "4.1.4",
19
+ "@prosopo/datasets": "3.2.1",
20
+ "@prosopo/env": "3.6.69",
21
+ "@prosopo/ipinfo": "0.4.14",
22
+ "@prosopo/keyring": "2.10.1",
23
+ "@prosopo/load-balancer": "2.11.5",
24
+ "@prosopo/locale": "3.7.0",
25
+ "@prosopo/logger": "2.1.3",
26
+ "@prosopo/native-ja4": "0.0.7",
27
+ "@prosopo/native-merkle": "0.0.6",
28
+ "@prosopo/native-puzzle": "0.1.0",
29
+ "@prosopo/puzzle-assets": "0.2.0",
30
+ "@prosopo/redis-client": "1.0.40",
31
+ "@prosopo/types": "5.13.0",
32
+ "@prosopo/types-database": "5.8.0",
33
+ "@prosopo/types-env": "2.11.15",
34
+ "@prosopo/user-access-policy": "3.14.15",
35
+ "@prosopo/util": "3.3.14",
36
+ "@prosopo/util-crypto": "13.6.0",
37
+ "@prosopo/web-bot-auth": "0.1.3",
38
+ "cron": "3.1.7",
39
+ "express": "4.22.2",
40
+ "express-rate-limit": "7.4.0",
41
+ "geolib": "3.3.14",
42
+ "i18next": "26.4.2",
43
+ "ip-address": "10.7.0",
44
+ "mongoose": "9.10.0",
45
+ "prom-client": "15.1.3",
46
+ "uuid": "14.0.2",
47
+ "zod": "3.23.8"
48
+ },
49
+ "devDependencies": {
50
+ "@noble/curves": "2.4.0",
51
+ "@prosopo/config": "3.4.3",
52
+ "@types/cors": "2.8.19",
53
+ "@types/express": "4.17.25",
54
+ "@types/node": "22.5.5",
55
+ "@types/pg": "8.23.1",
56
+ "@types/uuid": "11.0.0",
57
+ "@vitest/coverage-v8": "4.1.11",
58
+ "@vitest/spy": "4.1.11",
59
+ "concurrently": "9.0.1",
60
+ "cors": "2.8.6",
61
+ "del-cli": "6.0.0",
62
+ "dotenv": "16.4.5",
63
+ "esbuild": "0.28.2",
64
+ "npm-run-all": "4.1.5",
65
+ "testcontainers": "12.1.0",
66
+ "tslib": "2.7.0",
67
+ "tsx": "4.20.3",
68
+ "typescript": "5.6.2",
69
+ "undici": "6.29.0",
70
+ "vite": "8.1.5",
71
+ "vitest": "4.1.11"
72
+ },
73
+ "repository": {
74
+ "type": "git",
75
+ "url": "git+https://github.com/prosopo/captcha.git",
76
+ "directory": "packages/provider"
77
+ },
78
+ "description": "The easiest way to deploy the Prosopo contract and run the Provider node is via the [captcha repository](https://github.com/prosopo/captcha/).",
79
+ "bugs": {
80
+ "url": "https://github.com/prosopo/captcha/issues"
81
+ },
82
+ "homepage": "https://github.com/prosopo/captcha#readme",
83
+ "sideEffects": false,
84
+ "main": "dist/index.js",
85
+ "types": "dist/index.d.ts",
86
+ "exports": {
87
+ ".": {
88
+ "types": "./dist/index.d.ts",
89
+ "import": "./dist/index.js",
90
+ "require": "./dist/cjs/index.cjs"
91
+ }
92
+ },
93
+ "scripts": {
94
+ "clean": "del-cli --verbose dist tsconfig.tsbuildinfo",
95
+ "build": "pnpm run build:cross-env --mode ${NODE_ENV:-development}",
96
+ "build:cross-env": "vite build --config vite.esm.config.ts",
97
+ "build:tsc": "tsc --build --verbose",
98
+ "build:cjs": "NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV",
99
+ "build:edge": "node ./scripts/buildEdgeScript.mjs",
100
+ "typecheck": "tsc --project tsconfig.types.json",
101
+ "test:unit": "NODE_ENV=${NODE_ENV:-test}; TEST_TYPE=unit pnpm exec vitest run --config ./vite.test.config.ts",
102
+ "test:integration": "NODE_ENV=${NODE_ENV:-test}; TEST_TYPE=integration DECISION_MACHINE_ARTIFACT_CACHE_TTL_MS=1 pnpm exec vitest run --config ./vite.threads.test.config.ts",
103
+ "test": "pnpm run test:unit && pnpm run test:integration",
104
+ "mnemonic": "tsx ./scripts/generateMnemonic.ts"
105
+ }
106
+ }