@prosopo/provider 5.4.0 → 5.5.1

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 (39) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +9 -8
  2. package/.turbo/turbo-build$colon$tsc.log +25 -25
  3. package/.turbo/turbo-build.log +9 -8
  4. package/CHANGELOG.md +39 -0
  5. package/dist/api/verify.d.ts.map +1 -1
  6. package/dist/api/verify.js +6 -6
  7. package/dist/api/verify.js.map +1 -1
  8. package/dist/cjs/api/verify.cjs +6 -6
  9. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +22 -6
  10. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +20 -3
  11. package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +30 -3
  12. package/dist/cjs/utils/clientMetaData.cjs +34 -0
  13. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts +1 -1
  14. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
  15. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +22 -6
  16. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
  17. package/dist/tasks/powCaptcha/powTasks.d.ts +1 -1
  18. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
  19. package/dist/tasks/powCaptcha/powTasks.js +20 -3
  20. package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
  21. package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts +1 -1
  22. package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
  23. package/dist/tasks/puzzleCaptcha/puzzleTasks.js +30 -3
  24. package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
  25. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +60 -1
  26. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +1 -1
  27. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +68 -0
  28. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -1
  29. package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js +61 -0
  30. package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js.map +1 -1
  31. package/dist/tests/unit/utils/clientMetaData.unit.test.d.ts +2 -0
  32. package/dist/tests/unit/utils/clientMetaData.unit.test.d.ts.map +1 -0
  33. package/dist/tests/unit/utils/clientMetaData.unit.test.js +49 -0
  34. package/dist/tests/unit/utils/clientMetaData.unit.test.js.map +1 -0
  35. package/dist/utils/clientMetaData.d.ts +4 -0
  36. package/dist/utils/clientMetaData.d.ts.map +1 -0
  37. package/dist/utils/clientMetaData.js +33 -0
  38. package/dist/utils/clientMetaData.js.map +1 -0
  39. package/package.json +15 -15
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientMetaData.unit.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/utils/clientMetaData.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ClientMetaData } from "@prosopo/types";
2
+ export declare const toStoredClientMetaData: (clientMetaData?: ClientMetaData) => ClientMetaData | undefined;
3
+ export declare const isClientSessionMismatch: (expected: string | undefined, recorded: string | undefined) => boolean;
4
+ //# sourceMappingURL=clientMetaData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientMetaData.d.ts","sourceRoot":"","sources":["../../src/utils/clientMetaData.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAYrD,eAAO,MAAM,sBAAsB,oBACjB,cAAc,KAC7B,cAAc,GAAG,SASnB,CAAC;AAWF,eAAO,MAAM,uBAAuB,aACzB,MAAM,GAAG,SAAS,YAClB,MAAM,GAAG,SAAS,KAC1B,OAGF,CAAC"}
@@ -0,0 +1,33 @@
1
+ //#region src/utils/clientMetaData.ts
2
+ /**
3
+ * Narrows the widget-supplied `clientMetaData` to the fields we persist,
4
+ * dropping empty values so a record never gains an all-undefined subdocument.
5
+ * Returns undefined when there is nothing worth writing, which lets callers
6
+ * spread the result conditionally.
7
+ *
8
+ * Kept as one function so the captcha record and the session record (which
9
+ * both carry `clientMetaData`) always store the same shape, and so a new
10
+ * render-time metadata field only has to be added here.
11
+ */
12
+ var toStoredClientMetaData = (clientMetaData) => {
13
+ const stored = {
14
+ ...clientMetaData?.hp && { hp: clientMetaData.hp },
15
+ ...clientMetaData?.clientSessionId && { clientSessionId: clientMetaData.clientSessionId }
16
+ };
17
+ return Object.keys(stored).length > 0 ? stored : void 0;
18
+ };
19
+ /**
20
+ * Compares the `clientSessionId` the dapp server supplied at verify time
21
+ * against the one the widget recorded when the captcha was solved.
22
+ *
23
+ * Returns true only when the site asked for a correlation (`expected` set) and
24
+ * the solve does not carry exactly that value — including the case where the
25
+ * solve carries no session id at all, which is what a token minted outside the
26
+ * site's session (or by an older widget) looks like.
27
+ */
28
+ var isClientSessionMismatch = (expected, recorded) => {
29
+ if (!expected) return false;
30
+ return recorded !== expected;
31
+ };
32
+ //#endregion
33
+ export { isClientSessionMismatch, toStoredClientMetaData };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientMetaData.js","sourceRoot":"","sources":["../../src/utils/clientMetaData.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACrC,cAA+B,EACF,EAAE;IAC/B,MAAM,MAAM,GAAmB;QAC9B,GAAG,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC;QACpD,GAAG,CAAC,cAAc,EAAE,eAAe,IAAI;YACtC,eAAe,EAAE,cAAc,CAAC,eAAe;SAC/C,CAAC;KACF,CAAC;IAEF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5D,CAAC,CAAC;AAWF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,QAA4B,EAC5B,QAA4B,EAClB,EAAE;IACZ,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAO,QAAQ,KAAK,QAAQ,CAAC;AAC9B,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/provider",
3
- "version": "5.4.0",
3
+ "version": "5.5.1",
4
4
  "author": "PROSOPO LIMITED <info@prosopo.io>",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -23,26 +23,26 @@
23
23
  "dependencies": {
24
24
  "@noble/hashes": "1.8.0",
25
25
  "@polkadot/util": "13.5.7",
26
- "@prosopo/api": "4.0.15",
27
- "@prosopo/api-express-router": "3.1.73",
26
+ "@prosopo/api": "4.1.0",
27
+ "@prosopo/api-express-router": "3.1.75",
28
28
  "@prosopo/api-route": "2.6.56",
29
- "@prosopo/common": "3.1.51",
30
- "@prosopo/database": "4.0.19",
31
- "@prosopo/datasets": "3.1.71",
32
- "@prosopo/env": "3.6.42",
33
- "@prosopo/ipinfo": "0.3.16",
34
- "@prosopo/keyring": "2.9.78",
35
- "@prosopo/load-balancer": "2.10.32",
36
- "@prosopo/locale": "3.3.1",
29
+ "@prosopo/common": "3.1.52",
30
+ "@prosopo/database": "4.0.21",
31
+ "@prosopo/datasets": "3.1.72",
32
+ "@prosopo/env": "3.6.44",
33
+ "@prosopo/ipinfo": "0.3.17",
34
+ "@prosopo/keyring": "2.9.79",
35
+ "@prosopo/load-balancer": "2.10.33",
36
+ "@prosopo/locale": "3.4.0",
37
37
  "@prosopo/logger": "2.0.7",
38
38
  "@prosopo/native-ja4": "0.0.3",
39
39
  "@prosopo/native-merkle": "0.0.3",
40
40
  "@prosopo/puzzle-assets": "0.1.3",
41
41
  "@prosopo/redis-client": "1.0.33",
42
- "@prosopo/types": "5.3.0",
43
- "@prosopo/types-database": "5.1.12",
44
- "@prosopo/types-env": "2.10.37",
45
- "@prosopo/user-access-policy": "3.12.26",
42
+ "@prosopo/types": "5.4.0",
43
+ "@prosopo/types-database": "5.2.0",
44
+ "@prosopo/types-env": "2.10.38",
45
+ "@prosopo/user-access-policy": "3.12.27",
46
46
  "@prosopo/util": "3.3.7",
47
47
  "@prosopo/util-crypto": "13.5.30",
48
48
  "cron": "3.1.7",