@prosopo/procaptcha-pow 2.8.31 → 2.9.4

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-pow@2.8.31 build:cjs
2
+ > @prosopo/procaptcha-pow@2.9.4 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -11,11 +11,13 @@ ViteCommonJSConfig: .
11
11
  '/home/runner/work/captcha/captcha/packages/util/tsconfig.json',
12
12
  '/home/runner/work/captcha/captcha/packages/util-crypto/tsconfig.json',
13
13
  '/home/runner/work/captcha/captcha/packages/common/tsconfig.json',
14
+ '/home/runner/work/captcha/captcha/packages/logger/tsconfig.json',
14
15
  '/home/runner/work/captcha/captcha/packages/procaptcha-common/tsconfig.json',
15
16
  '/home/runner/work/captcha/captcha/packages/load-balancer/tsconfig.json',
16
17
  '/home/runner/work/captcha/captcha/packages/widget-skeleton/tsconfig.json',
17
18
  '/home/runner/work/captcha/captcha/packages/account/tsconfig.json',
18
19
  '/home/runner/work/captcha/captcha/packages/fingerprint/tsconfig.json',
20
+ '/home/runner/work/captcha/captcha/packages/fingerprintjs/tsconfig.json',
19
21
  '/home/runner/work/captcha/captcha/packages/keyring/tsconfig.json'
20
22
  ]
21
23
  }
@@ -27,11 +29,13 @@ ViteCommonJSConfig: .
27
29
  '@prosopo/util',
28
30
  '@prosopo/util-crypto',
29
31
  '@prosopo/common',
32
+ '@prosopo/logger',
30
33
  '@prosopo/procaptcha-common',
31
34
  '@prosopo/load-balancer',
32
35
  '@prosopo/widget-skeleton',
33
36
  '@prosopo/account',
34
37
  '@prosopo/fingerprint',
38
+ '@prosopo/fingerprintjs',
35
39
  '@prosopo/keyring'
36
40
  ]
37
41
  }
@@ -43,6 +47,6 @@ Build end
43
47
  rendering chunks...
44
48
  dist/cjs/index.cjs 0.25 kB
45
49
  dist/cjs/components/ProcaptchaPoW.cjs 0.82 kB
46
- dist/cjs/components/ProcaptchaWidget.cjs 3.52 kB
47
- dist/cjs/services/Manager.cjs 8.65 kB
48
- ✓ built in 290ms
50
+ dist/cjs/components/ProcaptchaWidget.cjs 3.98 kB
51
+ dist/cjs/services/Manager.cjs 9.59 kB
52
+ ✓ built in 172ms
@@ -1,50 +1,56 @@
1
1
 
2
- > @prosopo/procaptcha-pow@2.8.31 build:tsc
2
+ > @prosopo/procaptcha-pow@2.9.4 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 4:57:20 PM - Projects in this build:
5
+ 8:15:01 AM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../locale/tsconfig.json
8
8
  * ../util/tsconfig.json
9
9
  * ../util-crypto/tsconfig.json
10
10
  * ../types/tsconfig.json
11
11
  * ../api/tsconfig.json
12
+ * ../logger/tsconfig.json
12
13
  * ../common/tsconfig.json
13
14
  * ../load-balancer/tsconfig.json
14
15
  * ../widget-skeleton/tsconfig.json
16
+ * ../fingerprintjs/tsconfig.json
15
17
  * ../fingerprint/tsconfig.json
16
18
  * ../keyring/tsconfig.json
17
19
  * ../account/tsconfig.json
18
20
  * ../procaptcha-common/tsconfig.json
19
21
  * tsconfig.json
20
22
 
21
- 4:57:20 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'
23
+ 8:15:01 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'
22
24
 
23
- 4:57:20 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
25
+ 8:15:01 AM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
24
26
 
25
- 4:57:20 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/verifyRecency.ts' is older than output '../util/tsconfig.tsbuildinfo'
27
+ 8:15:01 AM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
26
28
 
27
- 4:57:20 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'
29
+ 8:15:01 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'
28
30
 
29
- 4:57:20 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/procaptcha/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
31
+ 8:15:01 AM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/procaptcha/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
30
32
 
31
- 4:57:20 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
33
+ 8:15:01 AM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
32
34
 
33
- 4:57:20 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/logger.ts' is older than output '../common/tsconfig.tsbuildinfo'
35
+ 8:15:01 AM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
34
36
 
35
- 4:57:21 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'
37
+ 8:15:01 AM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/error.ts' is older than output '../common/tsconfig.tsbuildinfo'
36
38
 
37
- 4:57:21 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'
39
+ 8:15:01 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'
38
40
 
39
- 4:57:21 PM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.ts' is older than output '../fingerprint/tsconfig.tsbuildinfo'
41
+ 8:15:01 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'
40
42
 
41
- 4:57:21 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
43
+ 8:15:01 AM - Project '../fingerprintjs/tsconfig.json' is up to date because newest input '../fingerprintjs/src/sources/webgl.ts' is older than output '../fingerprintjs/tsconfig.tsbuildinfo'
42
44
 
43
- 4:57:21 PM - Project '../account/tsconfig.json' is up to date because newest input '../account/src/custom.d.ts' is older than output '../account/tsconfig.tsbuildinfo'
45
+ 8:15:01 AM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.ts' is older than output '../fingerprint/tsconfig.tsbuildinfo'
44
46
 
45
- 4:57:21 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'
47
+ 8:15:01 AM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
46
48
 
47
- 4:57:21 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
49
+ 8:15:02 AM - Project '../account/tsconfig.json' is up to date because newest input '../account/src/workers/cryptoWorker.ts' is older than output '../account/tsconfig.tsbuildinfo'
48
50
 
49
- 4:57:21 PM - Building project '/home/runner/work/captcha/captcha/packages/procaptcha-pow/tsconfig.json'...
51
+ 8:15:02 AM - Project '../procaptcha-common/tsconfig.json' is up to date because newest input '../procaptcha-common/src/reactComponents/Honeypot.tsx' is older than output '../procaptcha-common/tsconfig.tsbuildinfo'
52
+
53
+ 8:15:02 AM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
54
+
55
+ 8:15:02 AM - Building project '/home/runner/work/captcha/captcha/packages/procaptcha-pow/tsconfig.json'...
50
56
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/procaptcha-pow@2.8.31 build
2
+ > @prosopo/procaptcha-pow@2.9.4 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/procaptcha-pow@2.8.31 build:cross-env
6
+ > @prosopo/procaptcha-pow@2.9.4 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -15,11 +15,13 @@ ViteEsmConfig: .
15
15
  '/home/runner/work/captcha/captcha/packages/util/tsconfig.json',
16
16
  '/home/runner/work/captcha/captcha/packages/util-crypto/tsconfig.json',
17
17
  '/home/runner/work/captcha/captcha/packages/common/tsconfig.json',
18
+ '/home/runner/work/captcha/captcha/packages/logger/tsconfig.json',
18
19
  '/home/runner/work/captcha/captcha/packages/procaptcha-common/tsconfig.json',
19
20
  '/home/runner/work/captcha/captcha/packages/load-balancer/tsconfig.json',
20
21
  '/home/runner/work/captcha/captcha/packages/widget-skeleton/tsconfig.json',
21
22
  '/home/runner/work/captcha/captcha/packages/account/tsconfig.json',
22
23
  '/home/runner/work/captcha/captcha/packages/fingerprint/tsconfig.json',
24
+ '/home/runner/work/captcha/captcha/packages/fingerprintjs/tsconfig.json',
23
25
  '/home/runner/work/captcha/captcha/packages/keyring/tsconfig.json'
24
26
  ]
25
27
  }
@@ -31,11 +33,13 @@ ViteEsmConfig: .
31
33
  '@prosopo/util',
32
34
  '@prosopo/util-crypto',
33
35
  '@prosopo/common',
36
+ '@prosopo/logger',
34
37
  '@prosopo/procaptcha-common',
35
38
  '@prosopo/load-balancer',
36
39
  '@prosopo/widget-skeleton',
37
40
  '@prosopo/account',
38
41
  '@prosopo/fingerprint',
42
+ '@prosopo/fingerprintjs',
39
43
  '@prosopo/keyring'
40
44
  ]
41
45
  }
@@ -47,6 +51,6 @@ Build end
47
51
  rendering chunks...
48
52
  dist/index.js 0.13 kB
49
53
  dist/components/ProcaptchaPoW.js 0.46 kB
50
- dist/components/ProcaptchaWidget.js 3.41 kB
51
- dist/services/Manager.js 8.50 kB
52
- ✓ built in 231ms
54
+ dist/components/ProcaptchaWidget.js 3.84 kB
55
+ dist/services/Manager.js 9.41 kB
56
+ ✓ built in 199ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,429 @@
1
1
  # @prosopo/procaptcha-pow
2
2
 
3
+ ## 2.9.4
4
+ ### Patch Changes
5
+
6
+ - Updated dependencies [a1d60db]
7
+ - Updated dependencies [2392aaf]
8
+ - Updated dependencies [6ca1125]
9
+ - @prosopo/types@4.3.0
10
+ - @prosopo/util@3.2.15
11
+ - @prosopo/api@3.4.8
12
+ - @prosopo/common@3.1.38
13
+ - @prosopo/procaptcha-common@2.10.17
14
+
15
+ ## 2.9.3
16
+ ### Patch Changes
17
+
18
+ - d3db08d: feat(widget): bait AI responses with empty input + decoded label, portaled into the dapp's form
19
+
20
+ Redesigns the honeypot so it can actually catch AI agents instead of being inert:
21
+
22
+ - Empty input + decoded label: the encoded morse/semaphore question moves from `input.value` to an offscreen `<label>` (base64-decoded at render). Naive form-fillers and humans leave the empty input alone; agents that read the DOM as a prompt write into the empty field, captured as `clientMetaData.hp` on submit.
23
+ - Portaled to light DOM, inside the dapp's `<form>`: widget stays in shadow DOM, but the honeypot portals via `react-dom/createPortal` into the enclosing form (`document.body` fallback). Bots no longer have to traverse `.shadowRoot` to reach it (which was tripping `@prosopo/catcher`'s shadow-DOM guard and wiping the bot's value), and the bait sits where bots actually look — `form.querySelectorAll('input')`.
24
+ - `form="<useId>-d"`: opaque per-instance non-existent form id disassociates the input from native form submission while keeping it DOM-discoverable. Dapp backends don't receive a stray `email_confirm=` field.
25
+ - Shared `<Honeypot />` extracted to `@prosopo/procaptcha-common`.
26
+ - `procaptcha-bundle` Vite config now routes the Honeypot module into a per-build opaque chunk (`c<random8hex>-<hash>.js`) so the URL doesn't identify the component or stay stable across builds for static blocklisting.
27
+ - Updated dependencies [d3db08d]
28
+ - @prosopo/procaptcha-common@2.10.16
29
+
30
+ ## 2.9.2
31
+ ### Patch Changes
32
+
33
+ - 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.
34
+ - Updated dependencies [6c26669]
35
+ - Updated dependencies [f7f9ec5]
36
+ - @prosopo/types@4.2.1
37
+ - @prosopo/api@3.4.7
38
+ - @prosopo/procaptcha-common@2.10.15
39
+
40
+ ## 2.9.1
41
+ ### Patch Changes
42
+
43
+ - Updated dependencies [0fd81af]
44
+ - @prosopo/common@3.1.37
45
+ - @prosopo/procaptcha-common@2.10.14
46
+
47
+ ## 2.9.0
48
+ ### Minor Changes
49
+
50
+ - 20cae63: feat(provider): re-route after PoW using decrypted behavioural data
51
+
52
+ PoW solutions are now re-evaluated by the routing machine after submission.
53
+ Previously the routing decision was made up-front on a thin set of signals;
54
+ behavioural data only becomes available (decrypted server-side) once the
55
+ user submits their PoW solution, so a user with weak behavioural signals
56
+ could still earn a token by solving PoW alone.
57
+
58
+ The submit endpoint now runs the routing machine a second time in a new
59
+ `postPow` phase, feeding in the decrypted behavioural data, the originating
60
+ session's score, request headers, JA4, and IP info. If the router escalates,
61
+ the provider mints a fresh session (carrying the original session's risk
62
+ profile) and returns `escalation: { captchaType, sessionId }` on the
63
+ `PowCaptchaSolutionResponse`. The `verified` flag is forced to `false` on
64
+ escalation — the user isn't done until they clear the follow-up.
65
+
66
+ On the client, `ProcaptchaFrictionless` accepts the escalation via a new
67
+ internal `onEscalate` prop on the PoW widget and mounts the chosen image
68
+ or puzzle widget in place, splicing the new sessionId into the
69
+ `FrictionlessState`. The handoff is internal to the frictionless → pow
70
+ flow — dapps integrating Procaptcha see no API change.
71
+
72
+ `RoutingMachineInputBase.phase` widens from `"route"` to
73
+ `"route" | "postPow"` so decision-machine configs can distinguish the two
74
+ passes.
75
+
76
+ ### Patch Changes
77
+
78
+ - Updated dependencies [20cae63]
79
+ - Updated dependencies [4d9923e]
80
+ - @prosopo/types@4.2.0
81
+ - @prosopo/api@3.4.6
82
+ - @prosopo/procaptcha-common@2.10.13
83
+
84
+ ## 2.8.62
85
+ ### Patch Changes
86
+
87
+ - Updated dependencies [d351362]
88
+ - @prosopo/types@4.1.4
89
+ - @prosopo/api@3.4.5
90
+ - @prosopo/procaptcha-common@2.10.12
91
+
92
+ ## 2.8.61
93
+ ### Patch Changes
94
+
95
+ - Updated dependencies [6567ce0]
96
+ - Updated dependencies [e2711ae]
97
+ - Updated dependencies [5786629]
98
+ - @prosopo/util@3.2.14
99
+ - @prosopo/types@4.1.3
100
+ - @prosopo/locale@3.2.4
101
+ - @prosopo/api@3.4.4
102
+ - @prosopo/common@3.1.36
103
+ - @prosopo/procaptcha-common@2.10.11
104
+
105
+ ## 2.8.60
106
+ ### Patch Changes
107
+
108
+ - Updated dependencies [72a1218]
109
+ - Updated dependencies [566c1f6]
110
+ - @prosopo/util@3.2.13
111
+ - @prosopo/widget-skeleton@2.8.3
112
+ - @prosopo/types@4.1.2
113
+ - @prosopo/procaptcha-common@2.10.10
114
+ - @prosopo/api@3.4.3
115
+
116
+ ## 2.8.59
117
+ ### Patch Changes
118
+
119
+ - Updated dependencies [53bfd45]
120
+ - Updated dependencies [91958da]
121
+ - @prosopo/procaptcha-common@2.10.9
122
+ - @prosopo/locale@3.2.3
123
+ - @prosopo/api@3.4.2
124
+ - @prosopo/types@4.1.1
125
+ - @prosopo/common@3.1.35
126
+
127
+ ## 2.8.58
128
+ ### Patch Changes
129
+
130
+ - Updated dependencies [6a741ce]
131
+ - @prosopo/types@4.1.0
132
+ - @prosopo/api@3.4.1
133
+ - @prosopo/procaptcha-common@2.10.8
134
+
135
+ ## 2.8.57
136
+ ### Patch Changes
137
+
138
+ - @prosopo/procaptcha-common@2.10.7
139
+
140
+ ## 2.8.56
141
+ ### Patch Changes
142
+
143
+ - 4aae4e6: Plumb the WASM SIMD CPU fingerprint readings (collected by the catcher
144
+ client per https://blog.azerpas.com/writing/wasm-simd-fingerprinting/)
145
+ through the captcha flow and onto the linked `Session` record.
146
+ Collection-only — no scoring or classification yet.
147
+
148
+ The readings are sent at the earliest moment they're available so the
149
+ signal lands on the session as soon as possible:
150
+
151
+ 1. **Captcha-challenge GET** (PoW / Puzzle / Image) — the procaptcha
152
+ Manager calls `frictionlessState.getSimdReadings(0)` (non-blocking
153
+ cache check) and attaches it to the challenge-request body. The
154
+ provider handler decodes and patches the linked session via
155
+ `updateSessionRecord`.
156
+ 2. **Solution submission** (PoW / Puzzle / Image) — same non-blocking
157
+ check on the submit body. Acts as a backup if the benchmark wasn't
158
+ ready in time for the challenge GET.
159
+
160
+ Frictionless init itself stays SIMD-free (benchmark is too slow to gate
161
+ the first hop).
162
+
163
+ Surface area:
164
+
165
+ - `SimdReadings` discriminated union + `SimdOpReadingRecord` /
166
+ `SimdOpCategory` in `@prosopo/types`, plus `simdReadingsCodec` shared
167
+ encode/decode helpers so the browser SDK and the provider use the same
168
+ pipe-safe wire format.
169
+ - Optional `simdReadings: string()` on `CaptchaRequestBody`,
170
+ `GetPowCaptchaChallengeRequestBody`, `GetPuzzleCaptchaChallengeRequestBody`,
171
+ `CaptchaSolutionBody`, `SubmitPowCaptchaSolutionBody`, and
172
+ `SubmitPuzzleCaptchaSolutionBody`.
173
+ - `FrictionlessState.getSimdReadings` + `BotDetectionFunctionResult.getSimdReadings`
174
+ so the catcher's prefetched benchmark is consumed at the request sites.
175
+ - `ProcaptchaApiInterface.{getCaptchaChallenge, submitCaptchaSolution}` and
176
+ the `ProviderApi.{getCaptchaChallenge, getPowCaptchaChallenge, getPuzzleCaptchaChallenge,
177
+ submitCaptchaSolution, submitPowCaptchaSolution, submitPuzzleCaptchaSolution}`
178
+ client methods accept the field.
179
+ - Provider challenge + solution handlers decode via `decodeSimdReadings`
180
+ and `updateSessionRecord` (Mongoose `Mixed`, Zod discriminated-union
181
+ validation at the edge). The challenge-GET patch is fire-and-forget.
182
+
183
+ Backward-compatible: older catcher clients omit the field at every layer;
184
+ the session record omits it in turn.
185
+ - Updated dependencies [3c0be68]
186
+ - Updated dependencies [f9ea09d]
187
+ - Updated dependencies [4aae4e6]
188
+ - Updated dependencies [d865319]
189
+ - Updated dependencies [753304b]
190
+ - Updated dependencies [8bb7286]
191
+ - Updated dependencies [f9ea09d]
192
+ - Updated dependencies [4aae4e6]
193
+ - Updated dependencies [4993813]
194
+ - Updated dependencies [5f1ae53]
195
+ - @prosopo/types@4.0.0
196
+ - @prosopo/api@3.4.0
197
+ - @prosopo/locale@3.2.2
198
+ - @prosopo/util@3.2.12
199
+ - @prosopo/common@3.1.34
200
+ - @prosopo/widget-skeleton@2.8.2
201
+ - @prosopo/procaptcha-common@2.10.6
202
+
203
+ ## 2.8.55
204
+ ### Patch Changes
205
+
206
+ - Updated dependencies [819ed95]
207
+ - @prosopo/types@3.16.1
208
+ - @prosopo/api@3.3.2
209
+ - @prosopo/procaptcha-common@2.10.5
210
+
211
+ ## 2.8.54
212
+ ### Patch Changes
213
+
214
+ - Updated dependencies [f6a4402]
215
+ - Updated dependencies [99dfb44]
216
+ - @prosopo/types@3.16.0
217
+ - @prosopo/api@3.3.1
218
+ - @prosopo/procaptcha-common@2.10.4
219
+
220
+ ## 2.8.53
221
+ ### Patch Changes
222
+
223
+ - Updated dependencies [3e54c0a]
224
+ - @prosopo/types@3.15.0
225
+ - @prosopo/api@3.3.0
226
+ - @prosopo/procaptcha-common@2.10.3
227
+
228
+ ## 2.8.52
229
+ ### Patch Changes
230
+
231
+ - Updated dependencies [946a8ba]
232
+ - Updated dependencies [5614814]
233
+ - Updated dependencies [b94890c]
234
+ - @prosopo/types@3.14.1
235
+ - @prosopo/locale@3.2.1
236
+ - @prosopo/api@3.2.11
237
+ - @prosopo/common@3.1.33
238
+ - @prosopo/procaptcha-common@2.10.2
239
+
240
+ ## 2.8.51
241
+ ### Patch Changes
242
+
243
+ - Updated dependencies [06970d2]
244
+ - Updated dependencies [fc514dd]
245
+ - Updated dependencies [7be39c4]
246
+ - Updated dependencies [42650db]
247
+ - Updated dependencies [dd3e06e]
248
+ - @prosopo/procaptcha-common@2.10.1
249
+ - @prosopo/widget-skeleton@2.8.1
250
+ - @prosopo/locale@3.2.0
251
+ - @prosopo/types@3.14.0
252
+ - @prosopo/api@3.2.10
253
+ - @prosopo/common@3.1.32
254
+
255
+ ## 2.8.50
256
+ ### Patch Changes
257
+
258
+ - Updated dependencies [73df23c]
259
+ - Updated dependencies [8139819]
260
+ - Updated dependencies [4a9c518]
261
+ - @prosopo/procaptcha-common@2.10.0
262
+ - @prosopo/widget-skeleton@2.8.0
263
+ - @prosopo/common@3.1.31
264
+
265
+ ## 2.8.49
266
+ ### Patch Changes
267
+
268
+ - Updated dependencies [a25dffa]
269
+ - @prosopo/util@3.2.11
270
+ - @prosopo/types@3.13.3
271
+ - @prosopo/procaptcha-common@2.9.41
272
+ - @prosopo/api@3.2.9
273
+
274
+ ## 2.8.48
275
+ ### Patch Changes
276
+
277
+ - Updated dependencies [346edd7]
278
+ - @prosopo/util@3.2.10
279
+ - @prosopo/types@3.13.2
280
+ - @prosopo/procaptcha-common@2.9.40
281
+ - @prosopo/api@3.2.8
282
+
283
+ ## 2.8.47
284
+ ### Patch Changes
285
+
286
+ - Updated dependencies [22bfee7]
287
+ - Updated dependencies [20192d2]
288
+ - @prosopo/util@3.2.9
289
+ - @prosopo/widget-skeleton@2.7.14
290
+ - @prosopo/types@3.13.1
291
+ - @prosopo/procaptcha-common@2.9.39
292
+ - @prosopo/api@3.2.7
293
+
294
+ ## 2.8.46
295
+ ### Patch Changes
296
+
297
+ - Updated dependencies [e0fb3d6]
298
+ - Updated dependencies [e6d9553]
299
+ - Updated dependencies [f3f23e3]
300
+ - @prosopo/util@3.2.8
301
+ - @prosopo/types@3.13.0
302
+ - @prosopo/api@3.2.6
303
+ - @prosopo/procaptcha-common@2.9.38
304
+
305
+ ## 2.8.45
306
+ ### Patch Changes
307
+
308
+ - Updated dependencies [d5082a9]
309
+ - Updated dependencies [e1ea65f]
310
+ - Updated dependencies [c316257]
311
+ - @prosopo/types@3.12.3
312
+ - @prosopo/util@3.2.7
313
+ - @prosopo/procaptcha-common@2.9.37
314
+ - @prosopo/api@3.2.5
315
+
316
+ ## 2.8.44
317
+ ### Patch Changes
318
+
319
+ - Updated dependencies [adb89a6]
320
+ - @prosopo/locale@3.1.29
321
+ - @prosopo/types@3.12.2
322
+ - @prosopo/util@3.2.6
323
+ - @prosopo/api@3.2.4
324
+ - @prosopo/common@3.1.30
325
+ - @prosopo/procaptcha-common@2.9.36
326
+
327
+ ## 2.8.43
328
+ ### Patch Changes
329
+
330
+ - Updated dependencies [c5ee492]
331
+ - Updated dependencies [a90eb54]
332
+ - @prosopo/common@3.1.29
333
+ - @prosopo/types@3.12.1
334
+ - @prosopo/api@3.2.3
335
+ - @prosopo/procaptcha-common@2.9.35
336
+
337
+ ## 2.8.42
338
+ ### Patch Changes
339
+
340
+ - Updated dependencies [676c5f2]
341
+ - Updated dependencies [feaca02]
342
+ - @prosopo/types@3.12.0
343
+ - @prosopo/procaptcha-common@2.9.34
344
+ - @prosopo/api@3.2.2
345
+
346
+ ## 2.8.41
347
+ ### Patch Changes
348
+
349
+ - Updated dependencies [8148587]
350
+ - @prosopo/types@3.11.1
351
+ - @prosopo/api@3.2.1
352
+ - @prosopo/procaptcha-common@2.9.33
353
+
354
+ ## 2.8.40
355
+ ### Patch Changes
356
+
357
+ - Updated dependencies [7f6ffc5]
358
+ - @prosopo/types@3.11.0
359
+ - @prosopo/api@3.2.0
360
+ - @prosopo/procaptcha-common@2.9.32
361
+
362
+ ## 2.8.39
363
+ ### Patch Changes
364
+
365
+ - Updated dependencies [93fa086]
366
+ - @prosopo/types@3.10.2
367
+ - @prosopo/api@3.1.49
368
+ - @prosopo/procaptcha-common@2.9.31
369
+
370
+ ## 2.8.38
371
+ ### Patch Changes
372
+
373
+ - Updated dependencies [cde7550]
374
+ - @prosopo/types@3.10.1
375
+ - @prosopo/api@3.1.48
376
+ - @prosopo/procaptcha-common@2.9.30
377
+
378
+ ## 2.8.37
379
+ ### Patch Changes
380
+
381
+ - Updated dependencies [ad6d622]
382
+ - @prosopo/types@3.10.0
383
+ - @prosopo/api@3.1.47
384
+ - @prosopo/procaptcha-common@2.9.29
385
+
386
+ ## 2.8.36
387
+ ### Patch Changes
388
+
389
+ - 592adf1: Don't make people wait so long for a new session
390
+ - Updated dependencies [ff58a70]
391
+ - @prosopo/types@3.9.0
392
+ - @prosopo/api@3.1.46
393
+ - @prosopo/procaptcha-common@2.9.28
394
+
395
+ ## 2.8.35
396
+ ### Patch Changes
397
+
398
+ - Updated dependencies [d2431cd]
399
+ - @prosopo/types@3.8.4
400
+ - @prosopo/api@3.1.45
401
+ - @prosopo/procaptcha-common@2.9.27
402
+
403
+ ## 2.8.34
404
+ ### Patch Changes
405
+
406
+ - Updated dependencies [bd6995b]
407
+ - @prosopo/types@3.8.3
408
+ - @prosopo/api@3.1.44
409
+ - @prosopo/procaptcha-common@2.9.26
410
+
411
+ ## 2.8.33
412
+ ### Patch Changes
413
+
414
+ - Updated dependencies [9633e58]
415
+ - @prosopo/types@3.8.2
416
+ - @prosopo/api@3.1.43
417
+ - @prosopo/procaptcha-common@2.9.25
418
+
419
+ ## 2.8.32
420
+ ### Patch Changes
421
+
422
+ - Updated dependencies [f52a5c1]
423
+ - @prosopo/types@3.8.1
424
+ - @prosopo/api@3.1.42
425
+ - @prosopo/procaptcha-common@2.9.24
426
+
3
427
  ## 2.8.31
4
428
  ### Patch Changes
5
429