@prosopo/procaptcha 2.9.27 → 2.10.28

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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @prosopo/procaptcha@2.9.27 build:cjs
2
+ > @prosopo/procaptcha@2.10.28 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -8,19 +8,17 @@ ViteCommonJSConfig: .
8
8
  '/home/runner/work/captcha/captcha/packages/datasets/tsconfig.json',
9
9
  '/home/runner/work/captcha/captcha/packages/common/tsconfig.json',
10
10
  '/home/runner/work/captcha/captcha/packages/locale/tsconfig.json',
11
- '/home/runner/work/captcha/captcha/packages/types/tsconfig.json',
11
+ '/home/runner/work/captcha/captcha/packages/logger/tsconfig.json',
12
12
  '/home/runner/work/captcha/captcha/packages/util/tsconfig.json',
13
+ '/home/runner/work/captcha/captcha/packages/types/tsconfig.json',
13
14
  '/home/runner/work/captcha/captcha/packages/util-crypto/tsconfig.json',
14
- '/home/runner/work/captcha/captcha/packages/types-database/tsconfig.json',
15
- '/home/runner/work/captcha/captcha/packages/user-access-policy/tsconfig.json',
16
- '/home/runner/work/captcha/captcha/packages/api-route/tsconfig.json',
17
- '/home/runner/work/captcha/captcha/packages/redis-client/tsconfig.json',
18
15
  '/home/runner/work/captcha/captcha/packages/api/tsconfig.json',
19
16
  '/home/runner/work/captcha/captcha/packages/procaptcha-common/tsconfig.json',
20
17
  '/home/runner/work/captcha/captcha/packages/load-balancer/tsconfig.json',
21
18
  '/home/runner/work/captcha/captcha/packages/widget-skeleton/tsconfig.json',
22
19
  '/home/runner/work/captcha/captcha/packages/account/tsconfig.json',
23
20
  '/home/runner/work/captcha/captcha/packages/fingerprint/tsconfig.json',
21
+ '/home/runner/work/captcha/captcha/packages/fingerprintjs/tsconfig.json',
24
22
  '/home/runner/work/captcha/captcha/packages/keyring/tsconfig.json'
25
23
  ]
26
24
  }
@@ -29,19 +27,17 @@ ViteCommonJSConfig: .
29
27
  '@prosopo/datasets',
30
28
  '@prosopo/common',
31
29
  '@prosopo/locale',
32
- '@prosopo/types',
30
+ '@prosopo/logger',
33
31
  '@prosopo/util',
32
+ '@prosopo/types',
34
33
  '@prosopo/util-crypto',
35
- '@prosopo/types-database',
36
- '@prosopo/user-access-policy',
37
- '@prosopo/api-route',
38
- '@prosopo/redis-client',
39
34
  '@prosopo/api',
40
35
  '@prosopo/procaptcha-common',
41
36
  '@prosopo/load-balancer',
42
37
  '@prosopo/widget-skeleton',
43
38
  '@prosopo/account',
44
39
  '@prosopo/fingerprint',
40
+ '@prosopo/fingerprintjs',
45
41
  '@prosopo/keyring'
46
42
  ]
47
43
  }
@@ -55,6 +51,6 @@ rendering chunks...
55
51
  dist/cjs/modules/index.cjs  0.39 kB
56
52
  dist/cjs/index.cjs  0.44 kB
57
53
  dist/cjs/modules/collector.cjs  2.18 kB
58
- dist/cjs/modules/ProsopoCaptchaApi.cjs  2.33 kB
59
- dist/cjs/modules/Manager.cjs 12.12 kB
60
- ✓ built in 200ms
54
+ dist/cjs/modules/ProsopoCaptchaApi.cjs  2.48 kB
55
+ dist/cjs/modules/Manager.cjs 13.56 kB
56
+ ✓ built in 181ms
@@ -1,65 +1,59 @@
1
1
 
2
- > @prosopo/procaptcha@2.9.27 build:tsc
2
+ > @prosopo/procaptcha@2.10.28 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 4:57:30 PM - Projects in this build:
5
+ 10:13:40 AM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../locale/tsconfig.json
8
8
  * ../util/tsconfig.json
9
+ * ../logger/tsconfig.json
9
10
  * ../util-crypto/tsconfig.json
10
11
  * ../types/tsconfig.json
11
12
  * ../common/tsconfig.json
12
- * ../api-route/tsconfig.json
13
- * ../redis-client/tsconfig.json
14
- * ../api/tsconfig.json
15
- * ../user-access-policy/tsconfig.json
16
- * ../types-database/tsconfig.json
17
13
  * ../datasets/tsconfig.json
14
+ * ../api/tsconfig.json
18
15
  * ../load-balancer/tsconfig.json
19
16
  * ../widget-skeleton/tsconfig.json
17
+ * ../fingerprintjs/tsconfig.json
20
18
  * ../fingerprint/tsconfig.json
21
19
  * ../keyring/tsconfig.json
22
20
  * ../account/tsconfig.json
23
21
  * ../procaptcha-common/tsconfig.json
24
22
  * tsconfig.json
25
23
 
26
- 4:57:30 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/dependencies.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
27
-
28
- 4:57:30 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
29
-
30
- 4:57:30 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/verifyRecency.ts' is older than output '../util/tsconfig.tsbuildinfo'
24
+ 10:13:40 AM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
31
25
 
32
- 4:57:30 PM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
26
+ 10:13:40 AM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/util.ts' is older than output '../locale/tsconfig.tsbuildinfo'
33
27
 
34
- 4:57:30 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/procaptcha/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
28
+ 10:13:40 AM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
35
29
 
36
- 4:57:30 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/logger.ts' is older than output '../common/tsconfig.tsbuildinfo'
30
+ 10:13:40 AM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
37
31
 
38
- 4:57:30 PM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/index.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
32
+ 10:13:40 AM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
39
33
 
40
- 4:57:30 PM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/index.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
34
+ 10:13:40 AM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/procaptcha/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
41
35
 
42
- 4:57:30 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
36
+ 10:13:40 AM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/index.ts' is older than output '../common/tsconfig.tsbuildinfo'
43
37
 
44
- 4:57:30 PM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/transformRule.ts' is older than output '../user-access-policy/tsconfig.tsbuildinfo'
38
+ 10:13:40 AM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/index.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
45
39
 
46
- 4:57:31 PM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/index.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
40
+ 10:13:40 AM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
47
41
 
48
- 4:57:31 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/tests/mocks/data/captchas.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
42
+ 10:13:40 AM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/balancer.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
49
43
 
50
- 4:57:31 PM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/balancer.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
44
+ 10:13:40 AM - Project '../widget-skeleton/tsconfig.json' is up to date because newest input '../widget-skeleton/src/webComponent/createWidget.ts' is older than output '../widget-skeleton/tsconfig.tsbuildinfo'
51
45
 
52
- 4:57:31 PM - Project '../widget-skeleton/tsconfig.json' is up to date because newest input '../widget-skeleton/src/constants.ts' is older than output '../widget-skeleton/tsconfig.tsbuildinfo'
46
+ 10:13:40 AM - Project '../fingerprintjs/tsconfig.json' is up to date because newest input '../fingerprintjs/src/utils/browser.ts' is older than output '../fingerprintjs/tsconfig.tsbuildinfo'
53
47
 
54
- 4:57:31 PM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.ts' is older than output '../fingerprint/tsconfig.tsbuildinfo'
48
+ 10:13:40 AM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.ts' is older than output '../fingerprint/tsconfig.tsbuildinfo'
55
49
 
56
- 4:57:31 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
50
+ 10:13:40 AM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
57
51
 
58
- 4:57:31 PM - Project '../account/tsconfig.json' is up to date because newest input '../account/src/custom.d.ts' is older than output '../account/tsconfig.tsbuildinfo'
52
+ 10:13:40 AM - Project '../account/tsconfig.json' is up to date because newest input '../account/src/custom.d.ts' is older than output '../account/tsconfig.tsbuildinfo'
59
53
 
60
- 4:57:31 PM - Project '../procaptcha-common/tsconfig.json' is up to date because newest input '../procaptcha-common/src/state/builder.ts' is older than output '../procaptcha-common/tsconfig.tsbuildinfo'
54
+ 10:13:40 AM - Project '../procaptcha-common/tsconfig.json' is up to date because newest input '../procaptcha-common/src/tests/defaultEvents.test.ts' is older than output '../procaptcha-common/tsconfig.tsbuildinfo'
61
55
 
62
- 4:57:31 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
56
+ 10:13:40 AM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
63
57
 
64
- 4:57:31 PM - Building project '/home/runner/work/captcha/captcha/packages/procaptcha/tsconfig.json'...
58
+ 10:13:40 AM - Building project '/home/runner/work/captcha/captcha/packages/procaptcha/tsconfig.json'...
65
59
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/procaptcha@2.9.27 build
2
+ > @prosopo/procaptcha@2.10.28 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/procaptcha@2.9.27 build:cross-env
6
+ > @prosopo/procaptcha@2.10.28 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -12,19 +12,17 @@ ViteEsmConfig: .
12
12
  '/home/runner/work/captcha/captcha/packages/datasets/tsconfig.json',
13
13
  '/home/runner/work/captcha/captcha/packages/common/tsconfig.json',
14
14
  '/home/runner/work/captcha/captcha/packages/locale/tsconfig.json',
15
- '/home/runner/work/captcha/captcha/packages/types/tsconfig.json',
15
+ '/home/runner/work/captcha/captcha/packages/logger/tsconfig.json',
16
16
  '/home/runner/work/captcha/captcha/packages/util/tsconfig.json',
17
+ '/home/runner/work/captcha/captcha/packages/types/tsconfig.json',
17
18
  '/home/runner/work/captcha/captcha/packages/util-crypto/tsconfig.json',
18
- '/home/runner/work/captcha/captcha/packages/types-database/tsconfig.json',
19
- '/home/runner/work/captcha/captcha/packages/user-access-policy/tsconfig.json',
20
- '/home/runner/work/captcha/captcha/packages/api-route/tsconfig.json',
21
- '/home/runner/work/captcha/captcha/packages/redis-client/tsconfig.json',
22
19
  '/home/runner/work/captcha/captcha/packages/api/tsconfig.json',
23
20
  '/home/runner/work/captcha/captcha/packages/procaptcha-common/tsconfig.json',
24
21
  '/home/runner/work/captcha/captcha/packages/load-balancer/tsconfig.json',
25
22
  '/home/runner/work/captcha/captcha/packages/widget-skeleton/tsconfig.json',
26
23
  '/home/runner/work/captcha/captcha/packages/account/tsconfig.json',
27
24
  '/home/runner/work/captcha/captcha/packages/fingerprint/tsconfig.json',
25
+ '/home/runner/work/captcha/captcha/packages/fingerprintjs/tsconfig.json',
28
26
  '/home/runner/work/captcha/captcha/packages/keyring/tsconfig.json'
29
27
  ]
30
28
  }
@@ -33,19 +31,17 @@ ViteEsmConfig: .
33
31
  '@prosopo/datasets',
34
32
  '@prosopo/common',
35
33
  '@prosopo/locale',
36
- '@prosopo/types',
34
+ '@prosopo/logger',
37
35
  '@prosopo/util',
36
+ '@prosopo/types',
38
37
  '@prosopo/util-crypto',
39
- '@prosopo/types-database',
40
- '@prosopo/user-access-policy',
41
- '@prosopo/api-route',
42
- '@prosopo/redis-client',
43
38
  '@prosopo/api',
44
39
  '@prosopo/procaptcha-common',
45
40
  '@prosopo/load-balancer',
46
41
  '@prosopo/widget-skeleton',
47
42
  '@prosopo/account',
48
43
  '@prosopo/fingerprint',
44
+ '@prosopo/fingerprintjs',
49
45
  '@prosopo/keyring'
50
46
  ]
51
47
  }
@@ -58,6 +54,6 @@ rendering chunks...
58
54
  dist/modules/index.js  0.21 kB
59
55
  dist/index.js  0.26 kB
60
56
  dist/modules/collector.js  2.08 kB
61
- dist/modules/ProsopoCaptchaApi.js  2.21 kB
62
- dist/modules/Manager.js 11.88 kB
63
- ✓ built in 256ms
57
+ dist/modules/ProsopoCaptchaApi.js  2.36 kB
58
+ dist/modules/Manager.js 13.32 kB
59
+ ✓ built in 237ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,438 @@
1
1
  # @prosopo/procaptcha
2
2
 
3
+ ## 2.10.28
4
+ ### Patch Changes
5
+
6
+ - Updated dependencies [b03dad1]
7
+ - @prosopo/types@4.3.1
8
+ - @prosopo/api@3.4.9
9
+ - @prosopo/datasets@3.1.29
10
+ - @prosopo/procaptcha-common@2.10.18
11
+
12
+ ## 2.10.27
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [a1d60db]
16
+ - Updated dependencies [2392aaf]
17
+ - Updated dependencies [6ca1125]
18
+ - @prosopo/types@4.3.0
19
+ - @prosopo/util@3.2.15
20
+ - @prosopo/api@3.4.8
21
+ - @prosopo/common@3.1.38
22
+ - @prosopo/datasets@3.1.28
23
+ - @prosopo/procaptcha-common@2.10.17
24
+
25
+ ## 2.10.26
26
+ ### Patch Changes
27
+
28
+ - Updated dependencies [d3db08d]
29
+ - @prosopo/procaptcha-common@2.10.16
30
+
31
+ ## 2.10.25
32
+ ### Patch Changes
33
+
34
+ - 6c26669: Add per-site honeypot trap. When enabled, the provider attaches an encoded question (morse or semaphore, base64-wrapped) in the `x-prosopo-meta` response header on frictionless responses. The widget renders the value into an off-screen hidden input with `name="email_confirm"`; bots that auto-fill text inputs populate it and the value rides back on the solution submit as `clientMetaData.hp`, which is persisted on the `StoredCaptcha` record. Falls back to a random phrase from `PROSOPO_HONEYPOT_PHRASE_BANK_PATH` when no custom question is configured.
35
+ - Updated dependencies [6c26669]
36
+ - Updated dependencies [f7f9ec5]
37
+ - @prosopo/types@4.2.1
38
+ - @prosopo/api@3.4.7
39
+ - @prosopo/procaptcha-common@2.10.15
40
+ - @prosopo/datasets@3.1.27
41
+
42
+ ## 2.10.24
43
+ ### Patch Changes
44
+
45
+ - Updated dependencies [0fd81af]
46
+ - @prosopo/common@3.1.37
47
+ - @prosopo/datasets@3.1.26
48
+ - @prosopo/procaptcha-common@2.10.14
49
+
50
+ ## 2.10.23
51
+ ### Patch Changes
52
+
53
+ - Updated dependencies [20cae63]
54
+ - Updated dependencies [4d9923e]
55
+ - @prosopo/types@4.2.0
56
+ - @prosopo/api@3.4.6
57
+ - @prosopo/datasets@3.1.25
58
+ - @prosopo/procaptcha-common@2.10.13
59
+
60
+ ## 2.10.22
61
+ ### Patch Changes
62
+
63
+ - Updated dependencies [d351362]
64
+ - @prosopo/types@4.1.4
65
+ - @prosopo/api@3.4.5
66
+ - @prosopo/datasets@3.1.24
67
+ - @prosopo/procaptcha-common@2.10.12
68
+
69
+ ## 2.10.21
70
+ ### Patch Changes
71
+
72
+ - Updated dependencies [6567ce0]
73
+ - Updated dependencies [e2711ae]
74
+ - Updated dependencies [5786629]
75
+ - @prosopo/util@3.2.14
76
+ - @prosopo/types@4.1.3
77
+ - @prosopo/datasets@3.1.23
78
+ - @prosopo/api@3.4.4
79
+ - @prosopo/common@3.1.36
80
+ - @prosopo/procaptcha-common@2.10.11
81
+
82
+ ## 2.10.20
83
+ ### Patch Changes
84
+
85
+ - Updated dependencies [72a1218]
86
+ - @prosopo/util@3.2.13
87
+ - @prosopo/datasets@3.1.22
88
+ - @prosopo/types@4.1.2
89
+ - @prosopo/procaptcha-common@2.10.10
90
+ - @prosopo/api@3.4.3
91
+
92
+ ## 2.10.19
93
+ ### Patch Changes
94
+
95
+ - Updated dependencies [53bfd45]
96
+ - Updated dependencies [91958da]
97
+ - @prosopo/procaptcha-common@2.10.9
98
+ - @prosopo/api@3.4.2
99
+ - @prosopo/types@4.1.1
100
+ - @prosopo/common@3.1.35
101
+ - @prosopo/datasets@3.1.21
102
+
103
+ ## 2.10.18
104
+ ### Patch Changes
105
+
106
+ - Updated dependencies [6a741ce]
107
+ - @prosopo/types@4.1.0
108
+ - @prosopo/api@3.4.1
109
+ - @prosopo/datasets@3.1.20
110
+ - @prosopo/procaptcha-common@2.10.8
111
+
112
+ ## 2.10.17
113
+ ### Patch Changes
114
+
115
+ - @prosopo/procaptcha-common@2.10.7
116
+
117
+ ## 2.10.16
118
+ ### Patch Changes
119
+
120
+ - 4aae4e6: Plumb the WASM SIMD CPU fingerprint readings (collected by the catcher
121
+ client per https://blog.azerpas.com/writing/wasm-simd-fingerprinting/)
122
+ through the captcha flow and onto the linked `Session` record.
123
+ Collection-only — no scoring or classification yet.
124
+
125
+ The readings are sent at the earliest moment they're available so the
126
+ signal lands on the session as soon as possible:
127
+
128
+ 1. **Captcha-challenge GET** (PoW / Puzzle / Image) — the procaptcha
129
+ Manager calls `frictionlessState.getSimdReadings(0)` (non-blocking
130
+ cache check) and attaches it to the challenge-request body. The
131
+ provider handler decodes and patches the linked session via
132
+ `updateSessionRecord`.
133
+ 2. **Solution submission** (PoW / Puzzle / Image) — same non-blocking
134
+ check on the submit body. Acts as a backup if the benchmark wasn't
135
+ ready in time for the challenge GET.
136
+
137
+ Frictionless init itself stays SIMD-free (benchmark is too slow to gate
138
+ the first hop).
139
+
140
+ Surface area:
141
+
142
+ - `SimdReadings` discriminated union + `SimdOpReadingRecord` /
143
+ `SimdOpCategory` in `@prosopo/types`, plus `simdReadingsCodec` shared
144
+ encode/decode helpers so the browser SDK and the provider use the same
145
+ pipe-safe wire format.
146
+ - Optional `simdReadings: string()` on `CaptchaRequestBody`,
147
+ `GetPowCaptchaChallengeRequestBody`, `GetPuzzleCaptchaChallengeRequestBody`,
148
+ `CaptchaSolutionBody`, `SubmitPowCaptchaSolutionBody`, and
149
+ `SubmitPuzzleCaptchaSolutionBody`.
150
+ - `FrictionlessState.getSimdReadings` + `BotDetectionFunctionResult.getSimdReadings`
151
+ so the catcher's prefetched benchmark is consumed at the request sites.
152
+ - `ProcaptchaApiInterface.{getCaptchaChallenge, submitCaptchaSolution}` and
153
+ the `ProviderApi.{getCaptchaChallenge, getPowCaptchaChallenge, getPuzzleCaptchaChallenge,
154
+ submitCaptchaSolution, submitPowCaptchaSolution, submitPuzzleCaptchaSolution}`
155
+ client methods accept the field.
156
+ - Provider challenge + solution handlers decode via `decodeSimdReadings`
157
+ and `updateSessionRecord` (Mongoose `Mixed`, Zod discriminated-union
158
+ validation at the edge). The challenge-GET patch is fire-and-forget.
159
+
160
+ Backward-compatible: older catcher clients omit the field at every layer;
161
+ the session record omits it in turn.
162
+ - Updated dependencies [3c0be68]
163
+ - Updated dependencies [f9ea09d]
164
+ - Updated dependencies [4aae4e6]
165
+ - Updated dependencies [d865319]
166
+ - Updated dependencies [753304b]
167
+ - Updated dependencies [8bb7286]
168
+ - Updated dependencies [f9ea09d]
169
+ - Updated dependencies [4aae4e6]
170
+ - Updated dependencies [4993813]
171
+ - @prosopo/types@4.0.0
172
+ - @prosopo/api@3.4.0
173
+ - @prosopo/util@3.2.12
174
+ - @prosopo/common@3.1.34
175
+ - @prosopo/datasets@3.1.19
176
+ - @prosopo/procaptcha-common@2.10.6
177
+
178
+ ## 2.10.15
179
+ ### Patch Changes
180
+
181
+ - Updated dependencies [819ed95]
182
+ - @prosopo/types@3.16.1
183
+ - @prosopo/api@3.3.2
184
+ - @prosopo/datasets@3.1.18
185
+ - @prosopo/procaptcha-common@2.10.5
186
+
187
+ ## 2.10.14
188
+ ### Patch Changes
189
+
190
+ - Updated dependencies [f6a4402]
191
+ - Updated dependencies [99dfb44]
192
+ - @prosopo/types@3.16.0
193
+ - @prosopo/api@3.3.1
194
+ - @prosopo/datasets@3.1.17
195
+ - @prosopo/procaptcha-common@2.10.4
196
+
197
+ ## 2.10.13
198
+ ### Patch Changes
199
+
200
+ - Updated dependencies [3e54c0a]
201
+ - @prosopo/types@3.15.0
202
+ - @prosopo/api@3.3.0
203
+ - @prosopo/datasets@3.1.16
204
+ - @prosopo/procaptcha-common@2.10.3
205
+
206
+ ## 2.10.12
207
+ ### Patch Changes
208
+
209
+ - Updated dependencies [946a8ba]
210
+ - Updated dependencies [5614814]
211
+ - @prosopo/types@3.14.1
212
+ - @prosopo/api@3.2.11
213
+ - @prosopo/common@3.1.33
214
+ - @prosopo/datasets@3.1.15
215
+ - @prosopo/procaptcha-common@2.10.2
216
+
217
+ ## 2.10.11
218
+ ### Patch Changes
219
+
220
+ - Updated dependencies [06970d2]
221
+ - Updated dependencies [fc514dd]
222
+ - Updated dependencies [7be39c4]
223
+ - Updated dependencies [42650db]
224
+ - Updated dependencies [dd3e06e]
225
+ - @prosopo/procaptcha-common@2.10.1
226
+ - @prosopo/types@3.14.0
227
+ - @prosopo/api@3.2.10
228
+ - @prosopo/common@3.1.32
229
+ - @prosopo/datasets@3.1.14
230
+
231
+ ## 2.10.10
232
+ ### Patch Changes
233
+
234
+ - Updated dependencies [73df23c]
235
+ - Updated dependencies [8139819]
236
+ - Updated dependencies [4a9c518]
237
+ - @prosopo/procaptcha-common@2.10.0
238
+ - @prosopo/common@3.1.31
239
+ - @prosopo/datasets@3.1.13
240
+
241
+ ## 2.10.9
242
+ ### Patch Changes
243
+
244
+ - Updated dependencies [a25dffa]
245
+ - @prosopo/util@3.2.11
246
+ - @prosopo/datasets@3.1.12
247
+ - @prosopo/types@3.13.3
248
+ - @prosopo/procaptcha-common@2.9.41
249
+ - @prosopo/api@3.2.9
250
+
251
+ ## 2.10.8
252
+ ### Patch Changes
253
+
254
+ - Updated dependencies [346edd7]
255
+ - @prosopo/util@3.2.10
256
+ - @prosopo/datasets@3.1.11
257
+ - @prosopo/types@3.13.2
258
+ - @prosopo/procaptcha-common@2.9.40
259
+ - @prosopo/api@3.2.8
260
+
261
+ ## 2.10.7
262
+ ### Patch Changes
263
+
264
+ - Updated dependencies [22bfee7]
265
+ - @prosopo/util@3.2.9
266
+ - @prosopo/datasets@3.1.10
267
+ - @prosopo/types@3.13.1
268
+ - @prosopo/procaptcha-common@2.9.39
269
+ - @prosopo/api@3.2.7
270
+
271
+ ## 2.10.6
272
+ ### Patch Changes
273
+
274
+ - Updated dependencies [e0fb3d6]
275
+ - Updated dependencies [e6d9553]
276
+ - Updated dependencies [f3f23e3]
277
+ - @prosopo/util@3.2.8
278
+ - @prosopo/types@3.13.0
279
+ - @prosopo/datasets@3.1.9
280
+ - @prosopo/api@3.2.6
281
+ - @prosopo/procaptcha-common@2.9.38
282
+
283
+ ## 2.10.5
284
+ ### Patch Changes
285
+
286
+ - Updated dependencies [d5082a9]
287
+ - Updated dependencies [e1ea65f]
288
+ - Updated dependencies [c316257]
289
+ - @prosopo/types@3.12.3
290
+ - @prosopo/util@3.2.7
291
+ - @prosopo/procaptcha-common@2.9.37
292
+ - @prosopo/api@3.2.5
293
+ - @prosopo/datasets@3.1.8
294
+
295
+ ## 2.10.4
296
+ ### Patch Changes
297
+
298
+ - Updated dependencies [adb89a6]
299
+ - @prosopo/types@3.12.2
300
+ - @prosopo/util@3.2.6
301
+ - @prosopo/api@3.2.4
302
+ - @prosopo/common@3.1.30
303
+ - @prosopo/datasets@3.1.7
304
+ - @prosopo/procaptcha-common@2.9.36
305
+
306
+ ## 2.10.3
307
+ ### Patch Changes
308
+
309
+ - Updated dependencies [c5ee492]
310
+ - Updated dependencies [a90eb54]
311
+ - @prosopo/common@3.1.29
312
+ - @prosopo/types@3.12.1
313
+ - @prosopo/datasets@3.1.6
314
+ - @prosopo/api@3.2.3
315
+ - @prosopo/procaptcha-common@2.9.35
316
+
317
+ ## 2.10.2
318
+ ### Patch Changes
319
+
320
+ - Updated dependencies [676c5f2]
321
+ - Updated dependencies [feaca02]
322
+ - @prosopo/types@3.12.0
323
+ - @prosopo/procaptcha-common@2.9.34
324
+ - @prosopo/api@3.2.2
325
+ - @prosopo/datasets@3.1.5
326
+
327
+ ## 2.10.1
328
+ ### Patch Changes
329
+
330
+ - Updated dependencies [8148587]
331
+ - @prosopo/types@3.11.1
332
+ - @prosopo/api@3.2.1
333
+ - @prosopo/datasets@3.1.4
334
+ - @prosopo/procaptcha-common@2.9.33
335
+
336
+ ## 2.10.0
337
+ ### Minor Changes
338
+
339
+ - 7f6ffc5: Store behavioural for image challenges
340
+
341
+ ### Patch Changes
342
+
343
+ - Updated dependencies [7f6ffc5]
344
+ - @prosopo/types@3.11.0
345
+ - @prosopo/api@3.2.0
346
+ - @prosopo/datasets@3.1.3
347
+ - @prosopo/procaptcha-common@2.9.32
348
+
349
+ ## 2.9.38
350
+ ### Patch Changes
351
+
352
+ - Updated dependencies [93fa086]
353
+ - @prosopo/types@3.10.2
354
+ - @prosopo/api@3.1.49
355
+ - @prosopo/datasets@3.1.2
356
+ - @prosopo/procaptcha-common@2.9.31
357
+
358
+ ## 2.9.37
359
+ ### Patch Changes
360
+
361
+ - Updated dependencies [cde7550]
362
+ - @prosopo/types@3.10.1
363
+ - @prosopo/api@3.1.48
364
+ - @prosopo/datasets@3.1.1
365
+ - @prosopo/procaptcha-common@2.9.30
366
+
367
+ ## 2.9.36
368
+ ### Patch Changes
369
+
370
+ - Updated dependencies [ad6d622]
371
+ - @prosopo/datasets@3.1.0
372
+ - @prosopo/types@3.10.0
373
+ - @prosopo/api@3.1.47
374
+ - @prosopo/procaptcha-common@2.9.29
375
+
376
+ ## 2.9.35
377
+ ### Patch Changes
378
+
379
+ - Updated dependencies [ff58a70]
380
+ - @prosopo/types@3.9.0
381
+ - @prosopo/api@3.1.46
382
+ - @prosopo/datasets@3.0.63
383
+ - @prosopo/procaptcha-common@2.9.28
384
+
385
+ ## 2.9.34
386
+ ### Patch Changes
387
+
388
+ - @prosopo/datasets@3.0.62
389
+
390
+ ## 2.9.33
391
+ ### Patch Changes
392
+
393
+ - Updated dependencies [d2431cd]
394
+ - @prosopo/types@3.8.4
395
+ - @prosopo/datasets@3.0.61
396
+ - @prosopo/api@3.1.45
397
+ - @prosopo/procaptcha-common@2.9.27
398
+
399
+ ## 2.9.32
400
+ ### Patch Changes
401
+
402
+ - @prosopo/datasets@3.0.60
403
+
404
+ ## 2.9.31
405
+ ### Patch Changes
406
+
407
+ - Updated dependencies [bd6995b]
408
+ - @prosopo/types@3.8.3
409
+ - @prosopo/api@3.1.44
410
+ - @prosopo/datasets@3.0.59
411
+ - @prosopo/procaptcha-common@2.9.26
412
+
413
+ ## 2.9.30
414
+ ### Patch Changes
415
+
416
+ - Updated dependencies [9633e58]
417
+ - @prosopo/types@3.8.2
418
+ - @prosopo/api@3.1.43
419
+ - @prosopo/datasets@3.0.58
420
+ - @prosopo/procaptcha-common@2.9.25
421
+
422
+ ## 2.9.29
423
+ ### Patch Changes
424
+
425
+ - Updated dependencies [f52a5c1]
426
+ - @prosopo/types@3.8.1
427
+ - @prosopo/api@3.1.42
428
+ - @prosopo/datasets@3.0.57
429
+ - @prosopo/procaptcha-common@2.9.24
430
+
431
+ ## 2.9.28
432
+ ### Patch Changes
433
+
434
+ - @prosopo/datasets@3.0.56
435
+
3
436
  ## 2.9.27
4
437
  ### Patch Changes
5
438
 
package/README.md CHANGED
@@ -1,20 +1,9 @@
1
1
  # Procaptcha
2
2
 
3
- Contains interfaces for accessing the Prosopo [protocol](https://github.com/prosopo/protocol/) contract,
4
- Prosopo [provider](https://github.com/prosopo/provider) API and the captcha client state via the `ProsopoCaptchaClient`
5
- , `ProsopoCaptchaApi` and `ProsopoCaptchaStateClient` classes.
3
+ Client-side library for [Prosopo Procaptcha](https://prosopo.io). Manages the captcha challenge flow, state, solution submission, and communication with the Prosopo Provider API.
6
4
 
7
- ## Prerequisites
8
-
9
- The Dapp smart contract account must
10
- be [registered](https://github.com/prosopo/protocol/blob/5cb282a911522bfbf29d34d1830badee3eecec83/contracts/lib.rs#L698-L737)
11
- in the Prosopo [protocol](https://github.com/prosopo/protocol/) contract in order to interact with the Prosopo protocol.
12
- You can complete Dapp registration by navigating to [polkadot-js apps](https://polkadot.js.org/apps/) and using the
13
- contracts page.
14
-
15
- ![contracts-page.png](assets/contracts-page.png)
5
+ The main exports are the `Manager` (state management for the captcha lifecycle) and `ProsopoCaptchaApi` (Provider API communication).
16
6
 
17
7
  ## Usage
18
8
 
19
- This repository can be imported into any JavaScript framework and used to create a CAPTCHA User Interface. See, for
20
- example, the [procaptcha-react](https://github.com/prosopo/procaptcha-react) repository.
9
+ This library can be used from any JavaScript framework to build a captcha UI. See [@prosopo/procaptcha-react](https://github.com/prosopo/captcha/tree/main/packages/procaptcha-react) for a React integration.
@@ -22,7 +22,7 @@ const defaultState = () => {
22
22
  // don't handle timeout here, this should be handled by the state management
23
23
  };
24
24
  };
25
- function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessState) {
25
+ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessState, getHoneypotValue) {
26
26
  const events = procaptchaCommon.getDefaultEvents(callbacks);
27
27
  const updateState = procaptchaCommon.buildUpdateState(state, onStateUpdate);
28
28
  const getConfig = () => {
@@ -83,8 +83,10 @@ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessSt
83
83
  );
84
84
  updateState({ captchaApi });
85
85
  }
86
+ const simdReadingsOnChallenge = frictionlessState?.getSimdReadings ? await frictionlessState.getSimdReadings(0) : void 0;
86
87
  const challenge = await captchaApi?.getCaptchaChallenge(
87
- state.sessionId
88
+ state.sessionId,
89
+ simdReadingsOnChallenge
88
90
  );
89
91
  if (challenge.error) {
90
92
  updateState({
@@ -175,12 +177,34 @@ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessSt
175
177
  data: string.stringToHex(challenge[types.ApiParams.timestamp]),
176
178
  type: "bytes"
177
179
  });
180
+ let encryptedBehavioralData;
181
+ if (frictionlessState?.encryptBehavioralData && (frictionlessState?.behaviorCollector1 || frictionlessState?.behaviorCollector2 || frictionlessState?.behaviorCollector3)) {
182
+ try {
183
+ const behavioralData = {
184
+ collector1: frictionlessState.behaviorCollector1?.getData() || [],
185
+ collector2: frictionlessState.behaviorCollector2?.getData() || [],
186
+ collector3: frictionlessState.behaviorCollector3?.getData() || [],
187
+ deviceCapability: frictionlessState.deviceCapability || "unknown"
188
+ };
189
+ const dataToEncrypt = frictionlessState.packBehavioralData ? frictionlessState.packBehavioralData(behavioralData) : behavioralData;
190
+ encryptedBehavioralData = await frictionlessState.encryptBehavioralData(
191
+ JSON.stringify(dataToEncrypt)
192
+ );
193
+ } catch {
194
+ }
195
+ }
196
+ const simdReadings = frictionlessState?.getSimdReadings ? await frictionlessState.getSimdReadings() : void 0;
197
+ const hpValue = getHoneypotValue?.();
198
+ const clientMetaData = hpValue ? { hp: hpValue } : void 0;
178
199
  const submission = await captchaApi.submitCaptchaSolution(
179
200
  userTimestampSignature.signature,
180
201
  challenge.requestHash,
181
202
  captchaSolution,
182
203
  challenge.timestamp,
183
- challenge.signature.provider.requestHash
204
+ challenge.signature.provider.requestHash,
205
+ encryptedBehavioralData,
206
+ simdReadings,
207
+ clientMetaData
184
208
  );
185
209
  const isHuman = submission[0].verified;
186
210
  updateState({
@@ -14,12 +14,13 @@ class ProsopoCaptchaApi {
14
14
  get web2() {
15
15
  return this._web2;
16
16
  }
17
- async getCaptchaChallenge(sessionId) {
17
+ async getCaptchaChallenge(sessionId, simdReadings) {
18
18
  try {
19
19
  const captchaChallenge = await this.providerApi.getCaptchaChallenge(
20
20
  this.userAccount,
21
21
  this.provider,
22
- sessionId
22
+ sessionId,
23
+ simdReadings
23
24
  );
24
25
  if (captchaChallenge[types.ApiParams.error]) {
25
26
  return captchaChallenge;
@@ -38,7 +39,7 @@ class ProsopoCaptchaApi {
38
39
  });
39
40
  }
40
41
  }
41
- async submitCaptchaSolution(userTimestampSignature, requestHash, solutions, timestamp, providerRequestHashSignature) {
42
+ async submitCaptchaSolution(userTimestampSignature, requestHash, solutions, timestamp, providerRequestHashSignature, behavioralData, simdReadings, clientMetaData) {
42
43
  const tree = new datasets.CaptchaMerkleTree();
43
44
  const captchasHashed = solutions.map(
44
45
  (captcha) => datasets.computeCaptchaSolutionHash(captcha)
@@ -58,7 +59,10 @@ class ProsopoCaptchaApi {
58
59
  this.userAccount,
59
60
  timestamp,
60
61
  providerRequestHashSignature,
61
- userTimestampSignature
62
+ userTimestampSignature,
63
+ behavioralData,
64
+ simdReadings,
65
+ clientMetaData
62
66
  );
63
67
  } catch (error) {
64
68
  throw new common.ProsopoDatasetError("CAPTCHA.INVALID_CAPTCHA_CHALLENGE", {
@@ -1,5 +1,5 @@
1
1
  import { type FrictionlessState, type ProcaptchaCallbacks, type ProcaptchaClientConfigOutput, type ProcaptchaState, type ProcaptchaStateUpdateFn } from "@prosopo/types";
2
- export declare function Manager(configOptional: ProcaptchaClientConfigOutput, state: ProcaptchaState, onStateUpdate: ProcaptchaStateUpdateFn, callbacks: ProcaptchaCallbacks, frictionlessState?: FrictionlessState): {
2
+ export declare function Manager(configOptional: ProcaptchaClientConfigOutput, state: ProcaptchaState, onStateUpdate: ProcaptchaStateUpdateFn, callbacks: ProcaptchaCallbacks, frictionlessState?: FrictionlessState, getHoneypotValue?: () => string | undefined): {
3
3
  start: () => Promise<void>;
4
4
  cancel: () => Promise<void>;
5
5
  submit: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"Manager.d.ts","sourceRoot":"","sources":["../../src/modules/Manager.ts"],"names":[],"mappings":"AA4BA,OAAO,EAKN,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EAExB,KAAK,4BAA4B,EAEjC,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAG5B,MAAM,gBAAgB,CAAC;AAwBxB,wBAAgB,OAAO,CACtB,cAAc,EAAE,4BAA4B,EAC5C,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,uBAAuB,EACtC,SAAS,EAAE,mBAAmB,EAC9B,iBAAiB,CAAC,EAAE,iBAAiB;;;;mBA0Sf,MAAM,MAAM,MAAM,MAAM,MAAM;;;EAyJpD"}
1
+ {"version":3,"file":"Manager.d.ts","sourceRoot":"","sources":["../../src/modules/Manager.ts"],"names":[],"mappings":"AA4BA,OAAO,EAKN,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EAExB,KAAK,4BAA4B,EAEjC,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAG5B,MAAM,gBAAgB,CAAC;AAwBxB,wBAAgB,OAAO,CACtB,cAAc,EAAE,4BAA4B,EAC5C,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,uBAAuB,EACtC,SAAS,EAAE,mBAAmB,EAC9B,iBAAiB,CAAC,EAAE,iBAAiB,EAGrC,gBAAgB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS;;;;mBAoVrB,MAAM,MAAM,MAAM,MAAM,MAAM;;;EAyJpD"}
@@ -20,7 +20,7 @@ const defaultState = () => {
20
20
  // don't handle timeout here, this should be handled by the state management
21
21
  };
22
22
  };
23
- function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessState) {
23
+ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessState, getHoneypotValue) {
24
24
  const events = getDefaultEvents(callbacks);
25
25
  const updateState = buildUpdateState(state, onStateUpdate);
26
26
  const getConfig = () => {
@@ -81,8 +81,10 @@ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessSt
81
81
  );
82
82
  updateState({ captchaApi });
83
83
  }
84
+ const simdReadingsOnChallenge = frictionlessState?.getSimdReadings ? await frictionlessState.getSimdReadings(0) : void 0;
84
85
  const challenge = await captchaApi?.getCaptchaChallenge(
85
- state.sessionId
86
+ state.sessionId,
87
+ simdReadingsOnChallenge
86
88
  );
87
89
  if (challenge.error) {
88
90
  updateState({
@@ -173,12 +175,34 @@ function Manager(configOptional, state, onStateUpdate, callbacks, frictionlessSt
173
175
  data: stringToHex(challenge[ApiParams.timestamp]),
174
176
  type: "bytes"
175
177
  });
178
+ let encryptedBehavioralData;
179
+ if (frictionlessState?.encryptBehavioralData && (frictionlessState?.behaviorCollector1 || frictionlessState?.behaviorCollector2 || frictionlessState?.behaviorCollector3)) {
180
+ try {
181
+ const behavioralData = {
182
+ collector1: frictionlessState.behaviorCollector1?.getData() || [],
183
+ collector2: frictionlessState.behaviorCollector2?.getData() || [],
184
+ collector3: frictionlessState.behaviorCollector3?.getData() || [],
185
+ deviceCapability: frictionlessState.deviceCapability || "unknown"
186
+ };
187
+ const dataToEncrypt = frictionlessState.packBehavioralData ? frictionlessState.packBehavioralData(behavioralData) : behavioralData;
188
+ encryptedBehavioralData = await frictionlessState.encryptBehavioralData(
189
+ JSON.stringify(dataToEncrypt)
190
+ );
191
+ } catch {
192
+ }
193
+ }
194
+ const simdReadings = frictionlessState?.getSimdReadings ? await frictionlessState.getSimdReadings() : void 0;
195
+ const hpValue = getHoneypotValue?.();
196
+ const clientMetaData = hpValue ? { hp: hpValue } : void 0;
176
197
  const submission = await captchaApi.submitCaptchaSolution(
177
198
  userTimestampSignature.signature,
178
199
  challenge.requestHash,
179
200
  captchaSolution,
180
201
  challenge.timestamp,
181
- challenge.signature.provider.requestHash
202
+ challenge.signature.provider.requestHash,
203
+ encryptedBehavioralData,
204
+ simdReadings,
205
+ clientMetaData
182
206
  );
183
207
  const isHuman = submission[0].verified;
184
208
  updateState({
@@ -1 +1 @@
1
- {"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../src/modules/Manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../src/modules/Manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ProviderApi } from "@prosopo/api";
2
- import { type CaptchaResponseBody, type CaptchaSolution, type ProcaptchaApiInterface, type RandomProvider } from "@prosopo/types";
2
+ import { type CaptchaResponseBody, type CaptchaSolution, type ClientMetaData, type ProcaptchaApiInterface, type RandomProvider } from "@prosopo/types";
3
3
  import type { TCaptchaSubmitResult } from "@prosopo/types";
4
4
  export declare class ProsopoCaptchaApi implements ProcaptchaApiInterface {
5
5
  userAccount: string;
@@ -9,8 +9,8 @@ export declare class ProsopoCaptchaApi implements ProcaptchaApiInterface {
9
9
  _web2: boolean;
10
10
  constructor(userAccount: string, provider: RandomProvider, providerApi: ProviderApi, web2: boolean, dappAccount: string);
11
11
  get web2(): boolean;
12
- getCaptchaChallenge(sessionId?: string): Promise<CaptchaResponseBody>;
13
- submitCaptchaSolution(userTimestampSignature: string, requestHash: string, solutions: CaptchaSolution[], timestamp: string, providerRequestHashSignature: string): Promise<TCaptchaSubmitResult>;
12
+ getCaptchaChallenge(sessionId?: string, simdReadings?: string): Promise<CaptchaResponseBody>;
13
+ submitCaptchaSolution(userTimestampSignature: string, requestHash: string, solutions: CaptchaSolution[], timestamp: string, providerRequestHashSignature: string, behavioralData?: string, simdReadings?: string, clientMetaData?: ClientMetaData): Promise<TCaptchaSubmitResult>;
14
14
  }
15
15
  export default ProsopoCaptchaApi;
16
16
  //# sourceMappingURL=ProsopoCaptchaApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProsopoCaptchaApi.d.ts","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,OAAO,EAEN,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAEpB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,iBAAkB,YAAW,sBAAsB;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;gBAGd,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,MAAM;IASpB,IAAI,IAAI,IAAI,OAAO,CAElB;IAEY,mBAAmB,CAC/B,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC;IA8BlB,qBAAqB,CACjC,sBAAsB,EAAE,MAAM,EAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAAE,EAC5B,SAAS,EAAE,MAAM,EACjB,4BAA4B,EAAE,MAAM,GAClC,OAAO,CAAC,oBAAoB,CAAC;CAoChC;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ProsopoCaptchaApi.d.ts","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,OAAO,EAEN,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAEpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,qBAAa,iBAAkB,YAAW,sBAAsB;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;gBAGd,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,OAAO,EACb,WAAW,EAAE,MAAM;IASpB,IAAI,IAAI,IAAI,OAAO,CAElB;IAEY,mBAAmB,CAC/B,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,CAAC;IA+BlB,qBAAqB,CACjC,sBAAsB,EAAE,MAAM,EAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAAE,EAC5B,SAAS,EAAE,MAAM,EACjB,4BAA4B,EAAE,MAAM,EACpC,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,cAAc,GAC7B,OAAO,CAAC,oBAAoB,CAAC;CAuChC;AAED,eAAe,iBAAiB,CAAC"}
@@ -12,12 +12,13 @@ class ProsopoCaptchaApi {
12
12
  get web2() {
13
13
  return this._web2;
14
14
  }
15
- async getCaptchaChallenge(sessionId) {
15
+ async getCaptchaChallenge(sessionId, simdReadings) {
16
16
  try {
17
17
  const captchaChallenge = await this.providerApi.getCaptchaChallenge(
18
18
  this.userAccount,
19
19
  this.provider,
20
- sessionId
20
+ sessionId,
21
+ simdReadings
21
22
  );
22
23
  if (captchaChallenge[ApiParams.error]) {
23
24
  return captchaChallenge;
@@ -36,7 +37,7 @@ class ProsopoCaptchaApi {
36
37
  });
37
38
  }
38
39
  }
39
- async submitCaptchaSolution(userTimestampSignature, requestHash, solutions, timestamp, providerRequestHashSignature) {
40
+ async submitCaptchaSolution(userTimestampSignature, requestHash, solutions, timestamp, providerRequestHashSignature, behavioralData, simdReadings, clientMetaData) {
40
41
  const tree = new CaptchaMerkleTree();
41
42
  const captchasHashed = solutions.map(
42
43
  (captcha) => computeCaptchaSolutionHash(captcha)
@@ -56,7 +57,10 @@ class ProsopoCaptchaApi {
56
57
  this.userAccount,
57
58
  timestamp,
58
59
  providerRequestHashSignature,
59
- userTimestampSignature
60
+ userTimestampSignature,
61
+ behavioralData,
62
+ simdReadings,
63
+ clientMetaData
60
64
  );
61
65
  } catch (error) {
62
66
  throw new ProsopoDatasetError("CAPTCHA.INVALID_CAPTCHA_CHALLENGE", {
@@ -1 +1 @@
1
- {"version":3,"file":"ProsopoCaptchaApi.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProsopoCaptchaApi.js","sourceRoot":"","sources":["../../src/modules/ProsopoCaptchaApi.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/procaptcha",
3
- "version": "2.9.27",
3
+ "version": "2.10.28",
4
4
  "author": "PROSOPO LIMITED <info@prosopo.io>",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./dist/index.js",
@@ -33,16 +33,16 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "@polkadot/util": "13.5.7",
36
- "@prosopo/api": "3.1.41",
37
- "@prosopo/common": "3.1.28",
38
- "@prosopo/datasets": "3.0.55",
39
- "@prosopo/procaptcha-common": "2.9.23",
40
- "@prosopo/types": "3.8.0",
41
- "@prosopo/util": "3.2.5",
36
+ "@prosopo/api": "3.4.9",
37
+ "@prosopo/common": "3.1.38",
38
+ "@prosopo/datasets": "3.1.29",
39
+ "@prosopo/procaptcha-common": "2.10.18",
40
+ "@prosopo/types": "4.3.1",
41
+ "@prosopo/util": "3.2.15",
42
42
  "@prosopo/util-crypto": "13.5.29"
43
43
  },
44
44
  "devDependencies": {
45
- "@prosopo/config": "3.3.0",
45
+ "@prosopo/config": "3.3.1",
46
46
  "@types/node": "22.10.2",
47
47
  "@vitest/coverage-v8": "3.2.4",
48
48
  "concurrently": "9.0.1",
@@ -58,7 +58,8 @@
58
58
  "keywords": [],
59
59
  "repository": {
60
60
  "type": "git",
61
- "url": "git+https://github.com/prosopo/captcha.git"
61
+ "url": "git+https://github.com/prosopo/captcha.git",
62
+ "directory": "packages/procaptcha"
62
63
  },
63
64
  "bugs": {
64
65
  "url": "https://github.com/prosopo/captcha/issues"