@prosopo/api 3.1.41 → 3.4.8

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/api@3.1.41 build:cjs
2
+ > @prosopo/api@3.4.8 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -26,10 +26,10 @@ Build end
26
26
  ✓ 6 modules transformed.
27
27
  Entry module "src/api/HttpClientBase.ts" is using named and default exports together. Consumers of your bundle will have to use `..default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
28
28
  rendering chunks...
29
- dist/cjs/api/index.cjs 0.37 kB
30
- dist/cjs/api/HttpError.cjs 0.38 kB
31
- dist/cjs/index.cjs 0.41 kB
32
- dist/cjs/api/apiClient.cjs 0.42 kB
33
- dist/cjs/api/HttpClientBase.cjs 2.00 kB
34
- dist/cjs/api/ProviderApi.cjs 6.41 kB
35
- ✓ built in 271ms
29
+ dist/cjs/api/HttpError.cjs  0.38 kB
30
+ dist/cjs/api/apiClient.cjs  0.42 kB
31
+ dist/cjs/api/index.cjs  0.46 kB
32
+ dist/cjs/index.cjs  0.50 kB
33
+ dist/cjs/api/HttpClientBase.cjs  2.90 kB
34
+ dist/cjs/api/ProviderApi.cjs 13.10 kB
35
+ ✓ built in 218ms
@@ -1,8 +1,8 @@
1
1
 
2
- > @prosopo/api@3.1.41 build:tsc
2
+ > @prosopo/api@3.4.8 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 4:56:46 PM - Projects in this build:
5
+ 8:14:20 AM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../locale/tsconfig.json
8
8
  * ../util/tsconfig.json
@@ -10,17 +10,17 @@
10
10
  * ../types/tsconfig.json
11
11
  * tsconfig.json
12
12
 
13
- 4:56:46 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'
13
+ 8:14:20 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'
14
14
 
15
- 4:56:46 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
15
+ 8:14:20 AM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
16
16
 
17
- 4:56:46 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/verifyRecency.ts' is older than output '../util/tsconfig.tsbuildinfo'
17
+ 8:14:20 AM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
18
18
 
19
- 4:56:46 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'
19
+ 8:14:21 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'
20
20
 
21
- 4:56:46 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/procaptcha/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
21
+ 8:14:21 AM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/procaptcha/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
22
22
 
23
- 4:56:46 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
23
+ 8:14:21 AM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
24
24
 
25
- 4:56:46 PM - Building project '/home/runner/work/captcha/captcha/packages/api/tsconfig.json'...
25
+ 8:14:21 AM - Building project '/home/runner/work/captcha/captcha/packages/api/tsconfig.json'...
26
26
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/api@3.1.41 build
2
+ > @prosopo/api@3.4.8 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/api@3.1.41 build:cross-env
6
+ > @prosopo/api@3.4.8 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -29,10 +29,10 @@ transforming...
29
29
  Build end
30
30
  ✓ 6 modules transformed.
31
31
  rendering chunks...
32
- dist/api/index.js 0.22 kB
33
- dist/index.js 0.26 kB
34
- dist/api/HttpError.js 0.29 kB
35
- dist/api/apiClient.js 0.31 kB
36
- dist/api/HttpClientBase.js 1.82 kB
37
- dist/api/ProviderApi.js 6.17 kB
38
- ✓ built in 216ms
32
+ dist/api/index.js  0.28 kB
33
+ dist/api/HttpError.js  0.29 kB
34
+ dist/api/apiClient.js  0.31 kB
35
+ dist/index.js  0.32 kB
36
+ dist/api/HttpClientBase.js  2.71 kB
37
+ dist/api/ProviderApi.js 12.68 kB
38
+ ✓ built in 215ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,314 @@
1
1
  # @prosopo/api
2
2
 
3
+ ## 3.4.8
4
+ ### Patch Changes
5
+
6
+ - Updated dependencies [a1d60db]
7
+ - Updated dependencies [2392aaf]
8
+ - @prosopo/types@4.3.0
9
+
10
+ ## 3.4.7
11
+ ### Patch Changes
12
+
13
+ - 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.
14
+ - Updated dependencies [6c26669]
15
+ - Updated dependencies [f7f9ec5]
16
+ - @prosopo/types@4.2.1
17
+
18
+ ## 3.4.6
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies [20cae63]
22
+ - Updated dependencies [4d9923e]
23
+ - @prosopo/types@4.2.0
24
+
25
+ ## 3.4.5
26
+ ### Patch Changes
27
+
28
+ - Updated dependencies [d351362]
29
+ - @prosopo/types@4.1.4
30
+
31
+ ## 3.4.4
32
+ ### Patch Changes
33
+
34
+ - Updated dependencies [e2711ae]
35
+ - Updated dependencies [5786629]
36
+ - @prosopo/types@4.1.3
37
+
38
+ ## 3.4.3
39
+ ### Patch Changes
40
+
41
+ - @prosopo/types@4.1.2
42
+
43
+ ## 3.4.2
44
+ ### Patch Changes
45
+
46
+ - 91958da: Puzzle captcha + maintenance mode hardening, plus a refactor of the
47
+ frictionless handler into focused modules.
48
+
49
+ - **Puzzle captcha now records checkbox-click coordinates like POW.** Adds an
50
+ optional `salt` field to `SubmitPuzzleCaptchaSolutionBody`; the puzzle
51
+ widget hashes the click coords into the salt and the server decodes them
52
+ into the puzzle record's `coords` field on submit. New `start(x, y)`
53
+ parameters on `procaptcha-puzzle` Manager + widget.
54
+ - **Fix puzzle "No session found" caused by stale Redis dedup.** The
55
+ `/frictionless` dedup path is now Mongo-authoritative — Redis is no
56
+ longer consulted as a session source. A concurrent `/captcha/{type}`
57
+ invalidation could previously race a fire-and-forget Redis repopulation
58
+ in the `/frictionless` dedup branch, leaving Redis pointing at a
59
+ Mongo-deleted session for the full 1-hour TTL. Stale pointers are now
60
+ evicted lazily.
61
+ - **Maintenance mode operates without MongoDB.** `/frictionless` and
62
+ `/captcha/{pow,puzzle}` short-circuit to dummy responses before any DB
63
+ call, and `Environment.isReady()` tolerates a Mongo connect failure when
64
+ `MAINTENANCE_MODE=true` so the provider can start with Mongo down.
65
+ - **Refactor `getFrictionlessCaptchaChallenge.ts` into focused modules** under
66
+ `getFrictionlessCaptchaChallenge/` (handler, sessionDedup, shortCircuit,
67
+ accessPolicy, decisionMachine, decryptSimdReadings, constants). Original
68
+ import path preserved via a re-export shim.
69
+ - **Move `RedisWriteQueue` from `@prosopo/provider` to `@prosopo/database`**
70
+ (where the Redis connection itself lives), and clear residual Redis
71
+ session keys at provider startup via `Environment.cleanup()` so a
72
+ previously-crashed run can't leak stale dedup pointers.
73
+ - Adds puzzle-type branch to access-policy handling in `/frictionless`.
74
+ - Updated dependencies [91958da]
75
+ - @prosopo/types@4.1.1
76
+
77
+ ## 3.4.1
78
+ ### Patch Changes
79
+
80
+ - Updated dependencies [6a741ce]
81
+ - @prosopo/types@4.1.0
82
+
83
+ ## 3.4.0
84
+ ### Minor Changes
85
+
86
+ - d865319: Add puzzle captcha (drag-to-target challenge) as a new captcha type:
87
+ provider endpoints, manager + widget package, types, demo pages, and
88
+ a `puzzleTolerance` site setting.
89
+
90
+ ### Patch Changes
91
+
92
+ - 3c0be68: Add a new admin-only endpoint `POST /v1/prosopo/provider/admin/counters/clear-all`
93
+ for deleting per-sitekey usage counters from Redis. Intended for manual
94
+ testing of routing decision machines and staging-environment resets — not
95
+ part of the hot path.
96
+
97
+ - `ClearAllCountersBody` (optional `dapp`) and `ClearAllCountersResponse`
98
+ (`success`, `deletedCount`, `scope`) zod schemas in `@prosopo/types`,
99
+ plus `AdminApiPaths.ClearAllCounters` and a 10/60s rate limit.
100
+ - `UsageCounters.clearAll(dappAccount?)` in the provider, using Redis
101
+ `SCAN` + `DEL` in 500-key batches. Returns null on Redis failure so
102
+ callers can surface the underlying error.
103
+ - `ApiClearAllCountersEndpoint` wired through `ApiAdminRoutesProvider`.
104
+ - `ProviderApi.clearAllCounters(jwt, dappAccount?)` client method.
105
+ - 4aae4e6: Plumb the WASM SIMD CPU fingerprint readings (collected by the catcher
106
+ client per https://blog.azerpas.com/writing/wasm-simd-fingerprinting/)
107
+ through the captcha flow and onto the linked `Session` record.
108
+ Collection-only — no scoring or classification yet.
109
+
110
+ The readings are sent at the earliest moment they're available so the
111
+ signal lands on the session as soon as possible:
112
+
113
+ 1. **Captcha-challenge GET** (PoW / Puzzle / Image) — the procaptcha
114
+ Manager calls `frictionlessState.getSimdReadings(0)` (non-blocking
115
+ cache check) and attaches it to the challenge-request body. The
116
+ provider handler decodes and patches the linked session via
117
+ `updateSessionRecord`.
118
+ 2. **Solution submission** (PoW / Puzzle / Image) — same non-blocking
119
+ check on the submit body. Acts as a backup if the benchmark wasn't
120
+ ready in time for the challenge GET.
121
+
122
+ Frictionless init itself stays SIMD-free (benchmark is too slow to gate
123
+ the first hop).
124
+
125
+ Surface area:
126
+
127
+ - `SimdReadings` discriminated union + `SimdOpReadingRecord` /
128
+ `SimdOpCategory` in `@prosopo/types`, plus `simdReadingsCodec` shared
129
+ encode/decode helpers so the browser SDK and the provider use the same
130
+ pipe-safe wire format.
131
+ - Optional `simdReadings: string()` on `CaptchaRequestBody`,
132
+ `GetPowCaptchaChallengeRequestBody`, `GetPuzzleCaptchaChallengeRequestBody`,
133
+ `CaptchaSolutionBody`, `SubmitPowCaptchaSolutionBody`, and
134
+ `SubmitPuzzleCaptchaSolutionBody`.
135
+ - `FrictionlessState.getSimdReadings` + `BotDetectionFunctionResult.getSimdReadings`
136
+ so the catcher's prefetched benchmark is consumed at the request sites.
137
+ - `ProcaptchaApiInterface.{getCaptchaChallenge, submitCaptchaSolution}` and
138
+ the `ProviderApi.{getCaptchaChallenge, getPowCaptchaChallenge, getPuzzleCaptchaChallenge,
139
+ submitCaptchaSolution, submitPowCaptchaSolution, submitPuzzleCaptchaSolution}`
140
+ client methods accept the field.
141
+ - Provider challenge + solution handlers decode via `decodeSimdReadings`
142
+ and `updateSessionRecord` (Mongoose `Mixed`, Zod discriminated-union
143
+ validation at the edge). The challenge-GET patch is fire-and-forget.
144
+
145
+ Backward-compatible: older catcher clients omit the field at every layer;
146
+ the session record omits it in turn.
147
+ - Updated dependencies [3c0be68]
148
+ - Updated dependencies [f9ea09d]
149
+ - Updated dependencies [d865319]
150
+ - Updated dependencies [753304b]
151
+ - Updated dependencies [8bb7286]
152
+ - Updated dependencies [f9ea09d]
153
+ - Updated dependencies [4aae4e6]
154
+ - @prosopo/types@4.0.0
155
+
156
+ ## 3.3.2
157
+ ### Patch Changes
158
+
159
+ - 819ed95: Adding invisible mode to session data
160
+ - Updated dependencies [819ed95]
161
+ - @prosopo/types@3.16.1
162
+
163
+ ## 3.3.1
164
+ ### Patch Changes
165
+
166
+ - f6a4402: API endpoint for removing site keys
167
+ - Updated dependencies [f6a4402]
168
+ - Updated dependencies [99dfb44]
169
+ - @prosopo/types@3.16.0
170
+
171
+ ## 3.3.0
172
+ ### Minor Changes
173
+
174
+ - 3e54c0a: Rate limits by client
175
+
176
+ ### Patch Changes
177
+
178
+ - Updated dependencies [3e54c0a]
179
+ - @prosopo/types@3.15.0
180
+
181
+ ## 3.2.11
182
+ ### Patch Changes
183
+
184
+ - Updated dependencies [946a8ba]
185
+ - Updated dependencies [5614814]
186
+ - @prosopo/types@3.14.1
187
+
188
+ ## 3.2.10
189
+ ### Patch Changes
190
+
191
+ - 7be39c4: Add register site keys endpoint def
192
+ - Updated dependencies [fc514dd]
193
+ - Updated dependencies [42650db]
194
+ - @prosopo/types@3.14.0
195
+
196
+ ## 3.2.9
197
+ ### Patch Changes
198
+
199
+ - @prosopo/types@3.13.3
200
+
201
+ ## 3.2.8
202
+ ### Patch Changes
203
+
204
+ - @prosopo/types@3.13.2
205
+
206
+ ## 3.2.7
207
+ ### Patch Changes
208
+
209
+ - @prosopo/types@3.13.1
210
+
211
+ ## 3.2.6
212
+ ### Patch Changes
213
+
214
+ - Updated dependencies [e6d9553]
215
+ - @prosopo/types@3.13.0
216
+
217
+ ## 3.2.5
218
+ ### Patch Changes
219
+
220
+ - Updated dependencies [d5082a9]
221
+ - Updated dependencies [e1ea65f]
222
+ - Updated dependencies [c316257]
223
+ - @prosopo/types@3.12.3
224
+
225
+ ## 3.2.4
226
+ ### Patch Changes
227
+
228
+ - adb89a6: Disposable email checking
229
+ - Updated dependencies [adb89a6]
230
+ - @prosopo/types@3.12.2
231
+
232
+ ## 3.2.3
233
+ ### Patch Changes
234
+
235
+ - Updated dependencies [a90eb54]
236
+ - @prosopo/types@3.12.1
237
+
238
+ ## 3.2.2
239
+ ### Patch Changes
240
+
241
+ - Updated dependencies [676c5f2]
242
+ - Updated dependencies [feaca02]
243
+ - @prosopo/types@3.12.0
244
+
245
+ ## 3.2.1
246
+ ### Patch Changes
247
+
248
+ - Updated dependencies [8148587]
249
+ - @prosopo/types@3.11.1
250
+
251
+ ## 3.2.0
252
+ ### Minor Changes
253
+
254
+ - 7f6ffc5: Store behavioural for image challenges
255
+
256
+ ### Patch Changes
257
+
258
+ - Updated dependencies [7f6ffc5]
259
+ - @prosopo/types@3.11.0
260
+
261
+ ## 3.1.49
262
+ ### Patch Changes
263
+
264
+ - 93fa086: Add decision engine endpoints
265
+ - Updated dependencies [93fa086]
266
+ - @prosopo/types@3.10.2
267
+
268
+ ## 3.1.48
269
+ ### Patch Changes
270
+
271
+ - Updated dependencies [cde7550]
272
+ - @prosopo/types@3.10.1
273
+
274
+ ## 3.1.47
275
+ ### Patch Changes
276
+
277
+ - Updated dependencies [ad6d622]
278
+ - @prosopo/types@3.10.0
279
+
280
+ ## 3.1.46
281
+ ### Patch Changes
282
+
283
+ - Updated dependencies [ff58a70]
284
+ - @prosopo/types@3.9.0
285
+
286
+ ## 3.1.45
287
+ ### Patch Changes
288
+
289
+ - Updated dependencies [d2431cd]
290
+ - @prosopo/types@3.8.4
291
+
292
+ ## 3.1.44
293
+ ### Patch Changes
294
+
295
+ - Updated dependencies [bd6995b]
296
+ - @prosopo/types@3.8.3
297
+
298
+ ## 3.1.43
299
+ ### Patch Changes
300
+
301
+ - 9633e58: Add captcha type to decision machine and run on image verification"
302
+ - Updated dependencies [9633e58]
303
+ - @prosopo/types@3.8.2
304
+
305
+ ## 3.1.42
306
+ ### Patch Changes
307
+
308
+ - f52a5c1: Adding decision machine to provider for behavior detection
309
+ - Updated dependencies [f52a5c1]
310
+ - @prosopo/types@3.8.1
311
+
3
312
  ## 3.1.41
4
313
  ### Patch Changes
5
314
 
@@ -3,6 +3,10 @@ export declare class HttpClientBase {
3
3
  constructor(baseURL: string, prefix?: string);
4
4
  protected fetch<T>(input: RequestInfo, init?: RequestInit): Promise<T>;
5
5
  protected post<T, U>(input: RequestInfo, body: U, init?: RequestInit): Promise<T>;
6
+ protected postWithHeaders<T, U>(input: RequestInfo, body: U, init?: RequestInit): Promise<{
7
+ data: T;
8
+ headers: Headers;
9
+ }>;
6
10
  protected responseHandler<T>(response: Response): Promise<T>;
7
11
  protected errorHandler(error: Error): Promise<never>;
8
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClientBase.d.ts","sourceRoot":"","sources":["../../src/api/HttpClientBase.ts"],"names":[],"mappings":"AAeA,qBAAa,cAAc;IAC1B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAK;cAIxB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;cAiB5D,IAAI,CAAC,CAAC,EAAE,CAAC,EACxB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC,CAAC,CAAC;cA0BG,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IASlE,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CAQpD;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"HttpClientBase.d.ts","sourceRoot":"","sources":["../../src/api/HttpClientBase.ts"],"names":[],"mappings":"AAeA,qBAAa,cAAc;IAC1B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAK;cAIxB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;cAiB5D,IAAI,CAAC,CAAC,EAAE,CAAC,EACxB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC,CAAC,CAAC;cA6BG,eAAe,CAAC,CAAC,EAAE,CAAC,EACnC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;cA0BzB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IASlE,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CAQpD;AAED,eAAe,cAAc,CAAC"}
@@ -36,6 +36,30 @@ class HttpClientBase {
36
36
  return this.errorHandler(error);
37
37
  }
38
38
  }
39
+ // Like `post`, but also surfaces the response Headers so callers can read
40
+ // values delivered out-of-band (e.g. the honeypot meta header). The body
41
+ // is still parsed as JSON.
42
+ async postWithHeaders(input, body, init) {
43
+ const headers = {
44
+ "Content-Type": "application/json",
45
+ ...init?.headers || {}
46
+ };
47
+ try {
48
+ const response = await fetch(this.baseURL + input, {
49
+ method: "POST",
50
+ body: JSON.stringify(body),
51
+ ...init,
52
+ headers
53
+ });
54
+ if (!response.ok && response.status !== 400 && !response.headers.get("content-type")?.includes("application/json")) {
55
+ throw new HttpError(response.status, response.statusText, response.url);
56
+ }
57
+ const data = await this.responseHandler(response);
58
+ return { data, headers: response.headers };
59
+ } catch (error) {
60
+ return this.errorHandler(error);
61
+ }
62
+ }
39
63
  async responseHandler(response) {
40
64
  try {
41
65
  return await response.json();
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClientBase.js","sourceRoot":"","sources":["../../src/api/HttpClientBase.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,OAAO,cAAc;IAG1B,YAAY,OAAe,EAAE,MAAM,GAAG,EAAE;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,KAAK,CAAI,KAAkB,EAAE,IAAkB;QAC9D,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;YACzD,IACC,CAAC,QAAQ,CAAC,EAAE;gBAEZ,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACvB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClE,CAAC;gBACF,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAI,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAc,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAES,KAAK,CAAC,IAAI,CACnB,KAAkB,EAClB,IAAO,EACP,IAAkB;QAElB,MAAM,OAAO,GAAG;YACf,cAAc,EAAE,kBAAkB;YAClC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;SACxB,CAAC;QACF,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE;gBAClD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,GAAG,IAAI;gBACP,OAAO;aACP,CAAC,CAAC;YACH,IACC,CAAC,QAAQ,CAAC,EAAE;gBAEZ,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACvB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClE,CAAC;gBACF,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAI,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAc,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAES,KAAK,CAAC,eAAe,CAAI,QAAkB;QACpD,IAAI,CAAC;YACJ,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAES,YAAY,CAAC,KAAY;QAClC,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACD;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"HttpClientBase.js","sourceRoot":"","sources":["../../src/api/HttpClientBase.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,OAAO,cAAc;IAG1B,YAAY,OAAe,EAAE,MAAM,GAAG,EAAE;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,KAAK,CAAI,KAAkB,EAAE,IAAkB;QAC9D,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;YACzD,IACC,CAAC,QAAQ,CAAC,EAAE;gBAEZ,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACvB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClE,CAAC;gBACF,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAI,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAc,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAES,KAAK,CAAC,IAAI,CACnB,KAAkB,EAClB,IAAO,EACP,IAAkB;QAElB,MAAM,OAAO,GAAG;YACf,cAAc,EAAE,kBAAkB;YAClC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;SACxB,CAAC;QACF,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE;gBAClD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,GAAG,IAAI;gBACP,OAAO;aACP,CAAC,CAAC;YACH,IACC,CAAC,QAAQ,CAAC,EAAE;gBAEZ,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACvB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClE,CAAC;gBACF,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAI,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAc,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAKS,KAAK,CAAC,eAAe,CAC9B,KAAkB,EAClB,IAAO,EACP,IAAkB;QAElB,MAAM,OAAO,GAAG;YACf,cAAc,EAAE,kBAAkB;YAClC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;SACxB,CAAC;QACF,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE;gBAClD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,GAAG,IAAI;gBACP,OAAO;aACP,CAAC,CAAC;YACH,IACC,CAAC,QAAQ,CAAC,EAAE;gBACZ,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACvB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClE,CAAC;gBACF,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YACzE,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAI,QAAQ,CAAC,CAAC;YACrD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAc,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAES,KAAK,CAAC,eAAe,CAAI,QAAkB;QACpD,IAAI,CAAC;YACJ,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAES,YAAY,CAAC,KAAY;QAClC,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACD;AAED,eAAe,cAAc,CAAC"}
@@ -1,18 +1,34 @@
1
- import { type ApiResponse, type CaptchaResponseBody, type CaptchaSolution, type CaptchaSolutionResponse, type GetFrictionlessCaptchaResponse, type GetPowCaptchaResponse, type IUserSettings, type ImageVerificationResponse, type PowCaptchaSolutionResponse, type ProcaptchaToken, type Provider, type ProviderApiInterface, type ProviderRegistered, type RandomProvider, type StoredEvents, type Tier, type UpdateDetectorKeyResponse, type UpdateProviderClientsResponse, type VerificationResponse } from "@prosopo/types";
1
+ import { type ApiResponse, type CaptchaResponseBody, type CaptchaSolution, type CaptchaSolutionResponse, type CaptchaType, type ClientMetaData, type DecisionMachineLanguage, type DecisionMachineRuntime, type DecisionMachineScope, type GetFrictionlessCaptchaResponse, type GetPowCaptchaResponse, type GetPuzzleCaptchaResponse, type IUserSettings, type ImageVerificationResponse, type ModeEnum, type PowCaptchaSolutionResponse, type ProcaptchaToken, type Provider, type ProviderApiInterface, type ProviderRegistered, type PuzzleCaptchaSolutionResponse, type RandomProvider, type RegisterSitekeysBodyTypeOutput, type RemoveSitekeysBodyTypeOutput, type StoredEvents, type Tier, type UpdateDetectorKeyResponse, type UpdateProviderClientsResponse, type VerificationResponse } from "@prosopo/types";
2
2
  import { ApiClient } from "./apiClient.js";
3
3
  export default class ProviderApi extends ApiClient implements ProviderApiInterface {
4
- getCaptchaChallenge(userAccount: string, randomProvider: RandomProvider, sessionId?: string): Promise<CaptchaResponseBody>;
5
- submitCaptchaSolution(captchas: CaptchaSolution[], requestHash: string, userAccount: string, timestamp: string, providerRequestHashSignature: string, userTimestampSignature: string): Promise<CaptchaSolutionResponse>;
6
- verifyDappUser(token: ProcaptchaToken, signature: string, userAccount: string, maxVerifiedTime?: number, ip?: string): Promise<ImageVerificationResponse>;
7
- getPowCaptchaChallenge(user: string, dapp: string, sessionId?: string): Promise<GetPowCaptchaResponse>;
8
- submitPowCaptchaSolution(challenge: GetPowCaptchaResponse, userAccount: string, dappAccount: string, nonce: number, userTimestampSignature: string, timeout?: number, behavioralData?: string, salt?: string): Promise<PowCaptchaSolutionResponse>;
9
- getFrictionlessCaptcha(token: string, headHash: string, dapp: string, user: string): Promise<GetFrictionlessCaptchaResponse>;
4
+ getCaptchaChallenge(userAccount: string, randomProvider: RandomProvider, sessionId?: string, simdReadings?: string): Promise<CaptchaResponseBody>;
5
+ submitCaptchaSolution(captchas: CaptchaSolution[], requestHash: string, userAccount: string, timestamp: string, providerRequestHashSignature: string, userTimestampSignature: string, behavioralData?: string, simdReadings?: string, clientMetaData?: ClientMetaData): Promise<CaptchaSolutionResponse>;
6
+ verifyDappUser(token: ProcaptchaToken, signature: string, userAccount: string, maxVerifiedTime?: number, ip?: string, email?: string): Promise<ImageVerificationResponse>;
7
+ getPowCaptchaChallenge(user: string, dapp: string, sessionId?: string, simdReadings?: string): Promise<GetPowCaptchaResponse>;
8
+ submitPowCaptchaSolution(challenge: GetPowCaptchaResponse, userAccount: string, dappAccount: string, nonce: number, userTimestampSignature: string, timeout?: number, behavioralData?: string, salt?: string, simdReadings?: string, clientMetaData?: ClientMetaData): Promise<PowCaptchaSolutionResponse>;
9
+ getPuzzleCaptchaChallenge(user: string, dapp: string, sessionId?: string, simdReadings?: string): Promise<GetPuzzleCaptchaResponse>;
10
+ submitPuzzleCaptchaSolution(challenge: GetPuzzleCaptchaResponse, userAccount: string, dappAccount: string, finalX: number, finalY: number, puzzleEvents: Array<{
11
+ x: number;
12
+ y: number;
13
+ t: number;
14
+ }>, userTimestampSignature: string, timeout?: number, behavioralData?: string, salt?: string, simdReadings?: string, clientMetaData?: ClientMetaData): Promise<PuzzleCaptchaSolutionResponse>;
15
+ submitPuzzleCaptchaVerify(token: string, signatureHex: string, recencyLimit: number, user: string, ip?: string, email?: string): Promise<VerificationResponse>;
16
+ getFrictionlessCaptcha(token: string, headHash: string, dapp: string, user: string, mode?: ModeEnum, simdReadings?: string): Promise<GetFrictionlessCaptchaResponse>;
10
17
  submitUserEvents(events: StoredEvents, string: string): Promise<UpdateProviderClientsResponse>;
11
18
  getProviderStatus(): Promise<ProviderRegistered>;
12
19
  getProviderDetails(): Promise<Provider>;
13
- submitPowCaptchaVerify(token: string, signatureHex: string, recencyLimit: number, user: string, ip?: string): Promise<VerificationResponse>;
20
+ submitPowCaptchaVerify(token: string, signatureHex: string, recencyLimit: number, user: string, ip?: string, email?: string): Promise<VerificationResponse>;
14
21
  registerSiteKey(siteKey: string, tier: Tier, settings: IUserSettings, jwt: string): Promise<ApiResponse>;
22
+ registerSiteKeys(siteKeys: RegisterSitekeysBodyTypeOutput, jwt: string): Promise<ApiResponse>;
23
+ removeSiteKey(siteKey: string, jwt: string): Promise<ApiResponse>;
24
+ removeSiteKeys(siteKeys: RemoveSitekeysBodyTypeOutput, jwt: string): Promise<ApiResponse>;
15
25
  updateDetectorKey(detectorKey: string, jwt: string): Promise<UpdateDetectorKeyResponse>;
26
+ updateDecisionMachine(scope: DecisionMachineScope, runtime: DecisionMachineRuntime, source: string, jwt: string, dappAccount?: string, language?: DecisionMachineLanguage, name?: string, version?: string, captchaType?: CaptchaType): Promise<ApiResponse>;
27
+ getAllDecisionMachines(jwt: string): Promise<ApiResponse>;
28
+ getDecisionMachine(id: string, jwt: string): Promise<ApiResponse>;
29
+ removeDecisionMachine(id: string, jwt: string): Promise<ApiResponse>;
30
+ removeAllDecisionMachines(jwt: string): Promise<ApiResponse>;
31
+ clearAllCounters(jwt: string, dappAccount?: string): Promise<ApiResponse>;
16
32
  removeDetectorKey(detectorKey: string, jwt: string, expirationInSeconds?: number): Promise<ApiResponse>;
17
33
  toggleMaintenanceMode(enabled: boolean, timestamp: string, signature: string): Promise<ApiResponse>;
18
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderApi.d.ts","sourceRoot":"","sources":["../../src/api/ProviderApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProviderApi.d.ts","sourceRoot":"","sources":["../../src/api/ProviderApi.ts"],"names":[],"mappings":"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"}