@prosopo/provider 5.3.1 → 5.3.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 (55) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +11 -10
  2. package/.turbo/turbo-build$colon$tsc.log +25 -25
  3. package/.turbo/turbo-build.log +12 -11
  4. package/CHANGELOG.md +74 -0
  5. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  6. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +9 -4
  7. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  8. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts +1 -1
  9. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts.map +1 -1
  10. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.js +2 -1
  11. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.js.map +1 -1
  12. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts +10 -1
  13. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
  14. package/dist/api/captcha/submitPoWCaptchaSolution.js +17 -4
  15. package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
  16. package/dist/api/ja4.d.ts.map +1 -1
  17. package/dist/api/ja4.js +1 -1
  18. package/dist/api/ja4.js.map +1 -1
  19. package/dist/api/rawTlsSignalsMiddleware.d.ts +19 -0
  20. package/dist/api/rawTlsSignalsMiddleware.d.ts.map +1 -0
  21. package/dist/api/rawTlsSignalsMiddleware.js +82 -0
  22. package/dist/api/rawTlsSignalsMiddleware.js.map +1 -0
  23. package/dist/api/startProviderApi.d.ts.map +1 -1
  24. package/dist/api/startProviderApi.js +2 -0
  25. package/dist/api/startProviderApi.js.map +1 -1
  26. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +9 -4
  27. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +17 -4
  28. package/dist/cjs/api/ja4.cjs +1 -1
  29. package/dist/cjs/api/rawTlsSignalsMiddleware.cjs +84 -0
  30. package/dist/cjs/api/startProviderApi.cjs +2 -0
  31. package/dist/cjs/tasks/detection/decodePayload.cjs +985 -1197
  32. package/dist/cjs/tasks/detection/decodePayload.js +1 -1
  33. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +34 -4
  34. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasksUtils.cjs +19 -5
  35. package/dist/tasks/detection/decodePayload.d.ts +2 -2
  36. package/dist/tasks/detection/decodePayload.d.ts.map +1 -1
  37. package/dist/tasks/detection/decodePayload.js +1 -1
  38. package/dist/tasks/detection/decodePayload.js.map +1 -1
  39. package/dist/tasks/detection/getBotScore.js +2 -2
  40. package/dist/tasks/frictionless/frictionlessTasks.d.ts +2 -1
  41. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
  42. package/dist/tasks/frictionless/frictionlessTasks.js +34 -4
  43. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
  44. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +1 -1
  45. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js +21 -6
  46. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +1 -1
  47. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.unit.test.js +2 -2
  48. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.unit.test.js.map +1 -1
  49. package/dist/tests/unit/api/rawTlsSignalsMiddleware.unit.test.d.ts +2 -0
  50. package/dist/tests/unit/api/rawTlsSignalsMiddleware.unit.test.d.ts.map +1 -0
  51. package/dist/tests/unit/api/rawTlsSignalsMiddleware.unit.test.js +127 -0
  52. package/dist/tests/unit/api/rawTlsSignalsMiddleware.unit.test.js.map +1 -0
  53. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js +30 -54
  54. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js.map +1 -1
  55. package/package.json +16 -15
@@ -1,15 +1,30 @@
1
+ import { createRequire } from "node:module";
1
2
  import { ProsopoEnvError } from "@prosopo/common";
2
- import { CaptchaMerkleTree, computeCaptchaSolutionHash } from "@prosopo/datasets";
3
+ import { CaptchaMerkleTree } from "@prosopo/datasets";
3
4
  //#region src/tasks/imgCaptcha/imgCaptchaTasksUtils.ts
5
+ var req = createRequire(import.meta.url);
6
+ var nativeMerkle = (() => {
7
+ try {
8
+ return req("@prosopo/native-merkle");
9
+ } catch {
10
+ return req("./prosopo-native-merkle.node");
11
+ }
12
+ })();
4
13
  /**
5
- * Build merkle tree and get commitment from contract, returning the tree, commitment, and commitmentId
6
- * @param {CaptchaSolution[]} captchaSolutions
7
- * @returns {Promise<{ tree: CaptchaMerkleTree, commitmentId: string }>}
14
+ * Build merkle tree and get commitment id, returning both. The hash-heavy
15
+ * work (per-solution leaf hash + every intermediate layer) runs in Rust via
16
+ * @prosopo/native-merkle; the resulting layers are grafted into a JS
17
+ * CaptchaMerkleTree so callers can still generate proofs.
8
18
  */
9
19
  var buildTreeAndGetCommitmentId = (captchaSolutions) => {
20
+ if (captchaSolutions.length === 0) throw new ProsopoEnvError("CONTRACT.CAPTCHA_SOLUTION_COMMITMENT_DOES_NOT_EXIST", { context: {
21
+ failedFuncName: buildTreeAndGetCommitmentId.name,
22
+ commitmentId: null
23
+ } });
24
+ const solutionsHashed = captchaSolutions.map((captcha) => nativeMerkle.computeCaptchaSolutionHash(captcha.captchaId, captcha.captchaContentId, captcha.solution, captcha.salt));
25
+ const layers = nativeMerkle.buildMerkleLayers(solutionsHashed);
10
26
  const tree = new CaptchaMerkleTree();
11
- const solutionsHashed = captchaSolutions.map((captcha) => computeCaptchaSolutionHash(captcha));
12
- tree.build(solutionsHashed);
27
+ tree.hydrateFromLayers(layers);
13
28
  const commitmentId = tree.root?.hash;
14
29
  if (!commitmentId) throw new ProsopoEnvError("CONTRACT.CAPTCHA_SOLUTION_COMMITMENT_DOES_NOT_EXIST", { context: {
15
30
  failedFuncName: buildTreeAndGetCommitmentId.name,
@@ -1 +1 @@
1
- {"version":3,"file":"imgCaptchaTasksUtils.js","sourceRoot":"","sources":["../../../src/tasks/imgCaptcha/imgCaptchaTasksUtils.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACN,iBAAiB,EACjB,0BAA0B,GAC1B,MAAM,mBAAmB,CAAC;AAQ3B,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,gBAAmC,EACiB,EAAE;IACtD,MAAM,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACrC,MAAM,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACxD,0BAA0B,CAAC,OAAO,CAAC,CACnC,CAAC;IACF,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAE5B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;IACrC,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,MAAM,IAAI,eAAe,CACxB,qDAAqD,EACrD;YACC,OAAO,EAAE;gBACR,cAAc,EAAE,2BAA2B,CAAC,IAAI;gBAChD,YAAY,EAAE,YAAY;aAC1B;SACD,CACD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAC/B,CAAC,CAAC"}
1
+ {"version":3,"file":"imgCaptchaTasksUtils.js","sourceRoot":"","sources":["../../../src/tasks/imgCaptcha/imgCaptchaTasksUtils.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAetD,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,MAAM,YAAY,GAAuB,CAAC,GAAG,EAAE;IAC9C,IAAI,CAAC;QACJ,OAAO,GAAG,CAAC,wBAAwB,CAAuB,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QAIR,OAAO,GAAG,CAAC,8BAA8B,CAAuB,CAAC;IAClE,CAAC;AACF,CAAC,CAAC,EAAE,CAAC;AAQL,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,gBAAmC,EACiB,EAAE;IAKtD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,eAAe,CACxB,qDAAqD,EACrD;YACC,OAAO,EAAE;gBACR,cAAc,EAAE,2BAA2B,CAAC,IAAI;gBAChD,YAAY,EAAE,IAAI;aAClB;SACD,CACD,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACxD,YAAY,CAAC,0BAA0B,CACtC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,IAAI,CACZ,CACD,CAAC;IACF,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAE/D,MAAM,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACrC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE/B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;IACrC,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,MAAM,IAAI,eAAe,CACxB,qDAAqD,EACrD;YACC,OAAO,EAAE;gBACR,cAAc,EAAE,2BAA2B,CAAC,IAAI;gBAChD,YAAY,EAAE,YAAY;aAC1B;SACD,CACD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAC/B,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { CaptchaType } from "@prosopo/types";
1
+ import { CaptchaType, ModeEnum } from "@prosopo/types";
2
2
  import { beforeEach, describe, expect, it, vi } from "vitest";
3
3
  import { runConfiguredCaptchaTypeShortCircuit } from "../../../../../api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js";
4
4
  const buildInput = (overrides = {}, { resolvedBundleId } = {}) => {
@@ -34,7 +34,7 @@ const buildInput = (overrides = {}, { resolvedBundleId } = {}) => {
34
34
  ipAddress: { lower: 0n, type: "v4" },
35
35
  ipInfo: undefined,
36
36
  flatHeaders: {},
37
- sessionMode: undefined,
37
+ sessionMode: ModeEnum.visible,
38
38
  userSitekeyIpHash: "hash",
39
39
  logger: { info: vi.fn(), debug: vi.fn(), warn: vi.fn(), error: vi.fn() },
40
40
  ...overrides,
@@ -1 +1 @@
1
- {"version":3,"file":"shortCircuit.unit.test.js","sourceRoot":"","sources":["../../../../../../src/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shortCircuit.unit.test.js","sourceRoot":"","sources":["../../../../../../src/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rawTlsSignalsMiddleware.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rawTlsSignalsMiddleware.unit.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/unit/api/rawTlsSignalsMiddleware.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,127 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { getRawTlsSignals, rawTlsSignalsForSession, } from "../../../api/rawTlsSignalsMiddleware.js";
3
+ const mockLogger = () => {
4
+ const log = {
5
+ debug: vi.fn(),
6
+ info: vi.fn(),
7
+ warn: vi.fn(),
8
+ error: vi.fn(),
9
+ trace: vi.fn(),
10
+ fatal: vi.fn(),
11
+ with: vi.fn().mockImplementation(() => log),
12
+ };
13
+ return log;
14
+ };
15
+ describe("getRawTlsSignals", () => {
16
+ it("parses every present header", () => {
17
+ const headers = {
18
+ "x-tls-syn-ns": "100000000",
19
+ "x-tls-synack-ns": "100050000",
20
+ "x-tls-ack-ns": "100100000",
21
+ "x-tls-observed-ttl": "53",
22
+ "x-tls-tcp-mss": "1452",
23
+ "x-tls-tcp-wscale": "7",
24
+ "x-tls-tcp-opts-flags": "31",
25
+ "x-tls-tcp-opts-order": "202818",
26
+ "x-tls-tcp-window": "64240",
27
+ };
28
+ const result = getRawTlsSignals(headers, mockLogger());
29
+ expect(result.synNs).toBe(100000000);
30
+ expect(result.synackNs).toBe(100050000);
31
+ expect(result.ackNs).toBe(100100000);
32
+ expect(result.observedTtl).toBe(53);
33
+ expect(result.tcpMss).toBe(1452);
34
+ expect(result.tcpWscale).toBe(7);
35
+ expect(result.tcpOptsFlags).toBe(31);
36
+ expect(result.tcpOptsOrder).toBe(202818);
37
+ expect(result.tcpWindow).toBe(64240);
38
+ });
39
+ it("returns undefined for every field when no headers are present", () => {
40
+ const result = getRawTlsSignals({}, mockLogger());
41
+ expect(result.synNs).toBeUndefined();
42
+ expect(result.synackNs).toBeUndefined();
43
+ expect(result.ackNs).toBeUndefined();
44
+ expect(result.observedTtl).toBeUndefined();
45
+ expect(result.tcpMss).toBeUndefined();
46
+ expect(result.tcpWscale).toBeUndefined();
47
+ expect(result.tcpOptsFlags).toBeUndefined();
48
+ expect(result.tcpOptsOrder).toBeUndefined();
49
+ expect(result.tcpWindow).toBeUndefined();
50
+ });
51
+ it("rejects out-of-range values with the field-specific cap", () => {
52
+ const headers = {
53
+ "x-tls-observed-ttl": "999",
54
+ "x-tls-tcp-mss": "70000",
55
+ "x-tls-tcp-opts-flags": "300",
56
+ "x-tls-tcp-wscale": "42",
57
+ };
58
+ const result = getRawTlsSignals(headers, mockLogger());
59
+ expect(result.observedTtl).toBeUndefined();
60
+ expect(result.tcpMss).toBeUndefined();
61
+ expect(result.tcpOptsFlags).toBeUndefined();
62
+ expect(result.tcpWscale).toBe(42);
63
+ });
64
+ it("rejects negative values", () => {
65
+ const headers = {
66
+ "x-tls-tcp-wscale": "-1",
67
+ };
68
+ const result = getRawTlsSignals(headers, mockLogger());
69
+ expect(result.tcpWscale).toBeUndefined();
70
+ });
71
+ it("rejects non-numeric values", () => {
72
+ const headers = {
73
+ "x-tls-tcp-mss": "not-a-number",
74
+ "x-tls-tcp-wscale": "7",
75
+ };
76
+ const result = getRawTlsSignals(headers, mockLogger());
77
+ expect(result.tcpMss).toBeUndefined();
78
+ expect(result.tcpWscale).toBe(7);
79
+ });
80
+ it("takes the first value when the header is repeated (string[])", () => {
81
+ const headers = {
82
+ "x-tls-tcp-mss": ["1452", "1460"],
83
+ };
84
+ const result = getRawTlsSignals(headers, mockLogger());
85
+ expect(result.tcpMss).toBe(1452);
86
+ });
87
+ });
88
+ describe("rawTlsSignalsForSession", () => {
89
+ it("omits undefined fields so Mongo docs stay slim", () => {
90
+ const out = rawTlsSignalsForSession({
91
+ tcpMss: 1460,
92
+ });
93
+ expect(out).toEqual({ tcpMss: 1460 });
94
+ });
95
+ it("copies every defined field verbatim", () => {
96
+ const out = rawTlsSignalsForSession({
97
+ synNs: 1,
98
+ synackNs: 2,
99
+ ackNs: 3,
100
+ observedTtl: 4,
101
+ tcpMss: 5,
102
+ tcpWscale: 6,
103
+ tcpOptsFlags: 7,
104
+ tcpOptsOrder: 8,
105
+ tcpWindow: 9,
106
+ });
107
+ expect(out).toEqual({
108
+ synNs: 1,
109
+ synackNs: 2,
110
+ ackNs: 3,
111
+ observedTtl: 4,
112
+ tcpMss: 5,
113
+ tcpWscale: 6,
114
+ tcpOptsFlags: 7,
115
+ tcpOptsOrder: 8,
116
+ tcpWindow: 9,
117
+ });
118
+ });
119
+ });
120
+ describe("rawTlsSignalsMiddleware", () => {
121
+ it("returns a middleware function", async () => {
122
+ const { rawTlsSignalsMiddleware } = await import("../../../api/rawTlsSignalsMiddleware.js");
123
+ const middleware = rawTlsSignalsMiddleware({});
124
+ expect(typeof middleware).toBe("function");
125
+ });
126
+ });
127
+ //# sourceMappingURL=rawTlsSignalsMiddleware.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rawTlsSignalsMiddleware.unit.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api/rawTlsSignalsMiddleware.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,62 +1,38 @@
1
1
  import { ProsopoEnvError } from "@prosopo/common";
2
- import { CaptchaMerkleTree, computeCaptchaSolutionHash, } from "@prosopo/datasets";
3
- import { beforeEach, describe, expect, it, vi } from "vitest";
2
+ import { describe, expect, it } from "vitest";
4
3
  import { buildTreeAndGetCommitmentId } from "../../../../tasks/imgCaptcha/imgCaptchaTasksUtils.js";
5
- vi.mock("@prosopo/datasets", () => ({
6
- CaptchaMerkleTree: vi.fn().mockImplementation(function () {
7
- return {
8
- build: vi.fn(function () {
9
- this.root = { hash: "mockedRootHash" };
10
- }),
11
- root: null,
12
- getRoot: vi.fn().mockReturnValue({ hash: "mockedRootHash" }),
13
- };
14
- }),
15
- computeCaptchaSolutionHash: vi.fn(),
16
- }));
4
+ const mockCaptchaSolutions = [
5
+ {
6
+ captchaId: "captchaId1",
7
+ captchaContentId: "captchaContentId1",
8
+ salt: "salt1",
9
+ solution: ["a", "b"],
10
+ },
11
+ {
12
+ captchaId: "captchaId2",
13
+ captchaContentId: "captchaContentId2",
14
+ salt: "salt2",
15
+ solution: ["c", "d"],
16
+ },
17
+ ];
17
18
  describe("buildTreeAndGetCommitmentId", () => {
18
- const mockCaptchaSolutions = [
19
- { challenge: "challenge1", solution: "solution1", salt: "salt1" },
20
- { challenge: "challenge2", solution: "solution2", salt: "salt2" },
21
- ];
22
- beforeEach(() => {
23
- vi.clearAllMocks();
24
- CaptchaMerkleTree.mockImplementation(function () {
25
- return {
26
- build: vi.fn(),
27
- root: { hash: "mockedRootHash" },
28
- };
29
- });
19
+ it("builds a tree and returns a commitmentId that is deterministic across calls", () => {
20
+ const first = buildTreeAndGetCommitmentId(mockCaptchaSolutions);
21
+ const second = buildTreeAndGetCommitmentId(mockCaptchaSolutions);
22
+ expect(first.commitmentId).toMatch(/^0x[0-9a-f]{64}$/);
23
+ expect(first.commitmentId).toBe(second.commitmentId);
24
+ expect(first.tree.root?.hash).toBe(first.commitmentId);
25
+ expect(first.tree.leaves.length).toBe(mockCaptchaSolutions.length);
30
26
  });
31
- it("should build a tree and return the commitmentId", () => {
32
- computeCaptchaSolutionHash
33
- .mockReturnValueOnce("hashedSolution1")
34
- .mockReturnValueOnce("hashedSolution2");
35
- const result = buildTreeAndGetCommitmentId(mockCaptchaSolutions);
36
- expect(CaptchaMerkleTree).toHaveBeenCalled();
37
- expect(computeCaptchaSolutionHash).toHaveBeenCalledWith(mockCaptchaSolutions[0]);
38
- expect(computeCaptchaSolutionHash).toHaveBeenCalledWith(mockCaptchaSolutions[1]);
39
- expect(result).toEqual({
40
- tree: expect.any(Object),
41
- commitmentId: "mockedRootHash",
42
- });
27
+ it("still returns a valid commitmentId when there is only one solution (single-leaf tree)", () => {
28
+ const single = mockCaptchaSolutions.slice(0, 1);
29
+ const { commitmentId, tree } = buildTreeAndGetCommitmentId(single);
30
+ expect(commitmentId).toMatch(/^0x[0-9a-f]{64}$/);
31
+ expect(tree.root?.hash).toBe(commitmentId);
32
+ expect(tree.leaves.length).toBe(1);
43
33
  });
44
- it("should throw an error if commitmentId does not exist", () => {
45
- const originalMock = vi.mocked(CaptchaMerkleTree);
46
- vi.mocked(CaptchaMerkleTree).mockImplementationOnce(function () {
47
- return {
48
- build: vi.fn(),
49
- root: { hash: null },
50
- getRoot: vi.fn().mockReturnValue({ hash: null }),
51
- };
52
- });
53
- expect(() => buildTreeAndGetCommitmentId(mockCaptchaSolutions)).toThrow(new ProsopoEnvError("CONTRACT.CAPTCHA_SOLUTION_COMMITMENT_DOES_NOT_EXIST", {
54
- context: {
55
- failedFuncName: "buildTreeAndGetCommitmentId",
56
- commitmentId: null,
57
- },
58
- }));
59
- vi.mocked(CaptchaMerkleTree).mockImplementation(originalMock.getMockImplementation());
34
+ it("throws CAPTCHA_SOLUTION_COMMITMENT_DOES_NOT_EXIST when passed no solutions", () => {
35
+ expect(() => buildTreeAndGetCommitmentId([])).toThrow(ProsopoEnvError);
60
36
  });
61
37
  });
62
38
  //# sourceMappingURL=imgCaptchaTasksUtils.unit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"imgCaptchaTasksUtils.unit.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imgCaptchaTasksUtils.unit.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AAMnG,MAAM,oBAAoB,GAAsB;IAC/C;QACC,SAAS,EAAE,YAAY;QACvB,gBAAgB,EAAE,mBAAmB;QACrC,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;KACpB;IACD;QACC,SAAS,EAAE,YAAY;QACvB,gBAAgB,EAAE,mBAAmB;QACrC,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;KACpB;CACD,CAAC;AAEF,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACtF,MAAM,KAAK,GAAG,2BAA2B,CAAC,oBAAoB,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,2BAA2B,CAAC,oBAAoB,CAAC,CAAC;QAEjE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uFAAuF,EAAE,GAAG,EAAE;QAChG,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAEnE,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEjD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QAGrF,MAAM,CAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/provider",
3
- "version": "5.3.1",
3
+ "version": "5.3.3",
4
4
  "author": "PROSOPO LIMITED <info@prosopo.io>",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -23,25 +23,26 @@
23
23
  "dependencies": {
24
24
  "@noble/hashes": "1.8.0",
25
25
  "@polkadot/util": "13.5.7",
26
- "@prosopo/api": "4.0.9",
27
- "@prosopo/api-express-router": "3.1.64",
26
+ "@prosopo/api": "4.0.11",
27
+ "@prosopo/api-express-router": "3.1.66",
28
28
  "@prosopo/api-route": "2.6.55",
29
29
  "@prosopo/common": "3.1.50",
30
30
  "@prosopo/logger": "2.0.6",
31
- "@prosopo/database": "4.0.10",
32
- "@prosopo/datasets": "3.1.65",
33
- "@prosopo/env": "3.6.33",
34
- "@prosopo/ipinfo": "0.3.10",
35
- "@prosopo/keyring": "2.9.72",
36
- "@prosopo/load-balancer": "2.10.26",
31
+ "@prosopo/database": "4.0.12",
32
+ "@prosopo/datasets": "3.1.67",
33
+ "@prosopo/env": "3.6.35",
34
+ "@prosopo/ipinfo": "0.3.12",
35
+ "@prosopo/keyring": "2.9.74",
36
+ "@prosopo/load-balancer": "2.10.28",
37
37
  "@prosopo/puzzle-assets": "0.1.1",
38
38
  "@prosopo/redis-client": "1.0.32",
39
39
  "@prosopo/locale": "3.3.0",
40
- "@prosopo/native-ja4": "0.0.2",
41
- "@prosopo/types": "5.2.1",
42
- "@prosopo/types-database": "5.1.4",
43
- "@prosopo/types-env": "2.10.29",
44
- "@prosopo/user-access-policy": "3.12.20",
40
+ "@prosopo/native-ja4": "0.0.3",
41
+ "@prosopo/native-merkle": "0.0.3",
42
+ "@prosopo/types": "5.2.3",
43
+ "@prosopo/types-database": "5.1.6",
44
+ "@prosopo/types-env": "2.10.31",
45
+ "@prosopo/user-access-policy": "3.12.22",
45
46
  "@prosopo/util": "3.3.6",
46
47
  "@prosopo/util-crypto": "13.5.30",
47
48
  "cron": "3.1.7",
@@ -56,7 +57,7 @@
56
57
  "zod": "3.23.8"
57
58
  },
58
59
  "devDependencies": {
59
- "@prosopo/config": "3.3.10",
60
+ "@prosopo/config": "3.3.11",
60
61
  "@types/node": "22.5.5",
61
62
  "@types/pg": "8.16.0",
62
63
  "@types/uuid": "10.0.0",