@prosopo/provider 4.14.2 → 4.14.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 (40) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +10 -9
  2. package/.turbo/turbo-build$colon$tsc.log +24 -24
  3. package/.turbo/turbo-build.log +11 -10
  4. package/CHANGELOG.md +41 -0
  5. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  6. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +30 -2
  7. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  8. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
  9. package/dist/api/captcha/submitPoWCaptchaSolution.js +7 -1
  10. package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
  11. package/dist/api/handshakeTimingMiddleware.d.ts +11 -0
  12. package/dist/api/handshakeTimingMiddleware.d.ts.map +1 -0
  13. package/dist/api/handshakeTimingMiddleware.js +66 -0
  14. package/dist/api/handshakeTimingMiddleware.js.map +1 -0
  15. package/dist/api/startProviderApi.d.ts.map +1 -1
  16. package/dist/api/startProviderApi.js +2 -0
  17. package/dist/api/startProviderApi.js.map +1 -1
  18. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +30 -2
  19. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +7 -1
  20. package/dist/cjs/api/handshakeTimingMiddleware.cjs +66 -0
  21. package/dist/cjs/api/startProviderApi.cjs +2 -0
  22. package/dist/cjs/index.cjs +3 -0
  23. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +13 -5
  24. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +8 -1
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +3 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/tasks/frictionless/frictionlessTasks.d.ts +1 -1
  30. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
  31. package/dist/tasks/frictionless/frictionlessTasks.js +13 -5
  32. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
  33. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
  34. package/dist/tasks/powCaptcha/powTasks.js +8 -1
  35. package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
  36. package/dist/tests/unit/api/handshakeTimingMiddleware.unit.test.d.ts +2 -0
  37. package/dist/tests/unit/api/handshakeTimingMiddleware.unit.test.d.ts.map +1 -0
  38. package/dist/tests/unit/api/handshakeTimingMiddleware.unit.test.js +79 -0
  39. package/dist/tests/unit/api/handshakeTimingMiddleware.unit.test.js.map +1 -0
  40. package/package.json +13 -13
@@ -0,0 +1,79 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { getHandshakeTiming } from "../../../api/handshakeTimingMiddleware.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("getHandshakeTiming", () => {
16
+ it("returns both values when both headers are present and parseable", () => {
17
+ const headers = {
18
+ "x-tls-tcp-to-chello-ms": "42",
19
+ "x-tls-chello-to-handshake-ms": "137",
20
+ };
21
+ const result = getHandshakeTiming(headers, mockLogger());
22
+ expect(result.tcpToChelloMs).toBe(42);
23
+ expect(result.chelloToHandshakeMs).toBe(137);
24
+ });
25
+ it("returns 0 for legitimate zero-ms measurements", () => {
26
+ const headers = {
27
+ "x-tls-tcp-to-chello-ms": "0",
28
+ "x-tls-chello-to-handshake-ms": "0",
29
+ };
30
+ const result = getHandshakeTiming(headers, mockLogger());
31
+ expect(result.tcpToChelloMs).toBe(0);
32
+ expect(result.chelloToHandshakeMs).toBe(0);
33
+ });
34
+ it("returns undefined when a header is missing", () => {
35
+ const headers = {
36
+ "x-tls-tcp-to-chello-ms": "5",
37
+ };
38
+ const result = getHandshakeTiming(headers, mockLogger());
39
+ expect(result.tcpToChelloMs).toBe(5);
40
+ expect(result.chelloToHandshakeMs).toBeUndefined();
41
+ });
42
+ it("returns undefined for both when neither header is present", () => {
43
+ const headers = {};
44
+ const result = getHandshakeTiming(headers, mockLogger());
45
+ expect(result.tcpToChelloMs).toBeUndefined();
46
+ expect(result.chelloToHandshakeMs).toBeUndefined();
47
+ });
48
+ it("rejects non-numeric header values", () => {
49
+ const headers = {
50
+ "x-tls-tcp-to-chello-ms": "not-a-number",
51
+ "x-tls-chello-to-handshake-ms": "137",
52
+ };
53
+ const result = getHandshakeTiming(headers, mockLogger());
54
+ expect(result.tcpToChelloMs).toBeUndefined();
55
+ expect(result.chelloToHandshakeMs).toBe(137);
56
+ });
57
+ it("rejects negative values", () => {
58
+ const headers = {
59
+ "x-tls-tcp-to-chello-ms": "-3",
60
+ };
61
+ const result = getHandshakeTiming(headers, mockLogger());
62
+ expect(result.tcpToChelloMs).toBeUndefined();
63
+ });
64
+ it("takes the first value when the header is repeated (string[])", () => {
65
+ const headers = {
66
+ "x-tls-tcp-to-chello-ms": ["17", "99"],
67
+ };
68
+ const result = getHandshakeTiming(headers, mockLogger());
69
+ expect(result.tcpToChelloMs).toBe(17);
70
+ });
71
+ });
72
+ describe("handshakeTimingMiddleware", () => {
73
+ it("returns a middleware function", async () => {
74
+ const { handshakeTimingMiddleware } = await import("../../../api/handshakeTimingMiddleware.js");
75
+ const middleware = handshakeTimingMiddleware({});
76
+ expect(typeof middleware).toBe("function");
77
+ });
78
+ });
79
+ //# sourceMappingURL=handshakeTimingMiddleware.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handshakeTimingMiddleware.unit.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/api/handshakeTimingMiddleware.unit.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/provider",
3
- "version": "4.14.2",
3
+ "version": "4.14.3",
4
4
  "author": "PROSOPO LIMITED <info@prosopo.io>",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -23,23 +23,23 @@
23
23
  "dependencies": {
24
24
  "@noble/hashes": "1.8.0",
25
25
  "@polkadot/util": "13.5.7",
26
- "@prosopo/api": "3.5.10",
27
- "@prosopo/api-express-router": "3.1.37",
26
+ "@prosopo/api": "3.5.11",
27
+ "@prosopo/api-express-router": "3.1.38",
28
28
  "@prosopo/api-route": "2.6.50",
29
29
  "@prosopo/common": "3.1.43",
30
30
  "@prosopo/logger": "2.0.1",
31
- "@prosopo/database": "3.15.6",
32
- "@prosopo/datasets": "3.1.44",
33
- "@prosopo/env": "3.6.6",
34
- "@prosopo/ipinfo": "0.2.30",
35
- "@prosopo/keyring": "2.9.50",
36
- "@prosopo/load-balancer": "2.10.4",
31
+ "@prosopo/database": "3.15.7",
32
+ "@prosopo/datasets": "3.1.45",
33
+ "@prosopo/env": "3.6.7",
34
+ "@prosopo/ipinfo": "0.2.31",
35
+ "@prosopo/keyring": "2.9.51",
36
+ "@prosopo/load-balancer": "2.10.5",
37
37
  "@prosopo/redis-client": "1.0.27",
38
38
  "@prosopo/locale": "3.2.6",
39
- "@prosopo/types": "4.9.3",
40
- "@prosopo/types-database": "4.11.5",
41
- "@prosopo/types-env": "2.10.5",
42
- "@prosopo/user-access-policy": "3.11.1",
39
+ "@prosopo/types": "4.9.4",
40
+ "@prosopo/types-database": "4.11.6",
41
+ "@prosopo/types-env": "2.10.6",
42
+ "@prosopo/user-access-policy": "3.11.2",
43
43
  "@prosopo/util": "3.3.3",
44
44
  "@prosopo/util-crypto": "13.5.30",
45
45
  "cron": "3.1.7",