@prosopo/types 3.8.0 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +19 -14
  2. package/.turbo/turbo-build$colon$tsc.log +8 -8
  3. package/.turbo/turbo-build.log +49 -44
  4. package/.turbo/turbo-typecheck.log +1 -1
  5. package/CHANGELOG.md +520 -0
  6. package/dist/api/api.d.ts +23 -5
  7. package/dist/api/api.d.ts.map +1 -1
  8. package/dist/api/ipapi.d.ts +2 -1
  9. package/dist/api/ipapi.d.ts.map +1 -1
  10. package/dist/api/params.d.ts +24 -1
  11. package/dist/api/params.d.ts.map +1 -1
  12. package/dist/api/params.js +23 -0
  13. package/dist/api/params.js.map +1 -1
  14. package/dist/cjs/api/params.cjs +23 -0
  15. package/dist/cjs/client/captchaType/captchaType.cjs +16 -0
  16. package/dist/cjs/client/index.cjs +17 -0
  17. package/dist/cjs/client/settings.cjs +83 -1
  18. package/dist/cjs/client/testSiteKeys.cjs +22 -0
  19. package/dist/cjs/config/config.cjs +25 -18
  20. package/dist/cjs/config/index.cjs +6 -2
  21. package/dist/cjs/config/mode.cjs +15 -0
  22. package/dist/cjs/config/timeouts.cjs +6 -0
  23. package/dist/cjs/decisionMachine/index.cjs +85 -0
  24. package/dist/cjs/index.cjs +81 -2
  25. package/dist/cjs/provider/api.cjs +261 -9
  26. package/dist/cjs/provider/database.cjs +254 -0
  27. package/dist/cjs/provider/index.cjs +43 -0
  28. package/dist/cjs/provider/reasons.cjs +45 -0
  29. package/dist/cjs/provider/scheduler.cjs +1 -0
  30. package/dist/client/captchaType/captchaType.d.ts +4 -2
  31. package/dist/client/captchaType/captchaType.d.ts.map +1 -1
  32. package/dist/client/captchaType/captchaType.js +17 -1
  33. package/dist/client/captchaType/captchaType.js.map +1 -1
  34. package/dist/client/index.d.ts +1 -0
  35. package/dist/client/index.d.ts.map +1 -1
  36. package/dist/client/index.js +20 -3
  37. package/dist/client/index.js.map +1 -1
  38. package/dist/client/settings.d.ts +276 -0
  39. package/dist/client/settings.d.ts.map +1 -1
  40. package/dist/client/settings.js +84 -2
  41. package/dist/client/settings.js.map +1 -1
  42. package/dist/client/testSiteKeys.d.ts +8 -0
  43. package/dist/client/testSiteKeys.d.ts.map +1 -0
  44. package/dist/client/testSiteKeys.js +22 -0
  45. package/dist/client/testSiteKeys.js.map +1 -0
  46. package/dist/config/config.d.ts +371 -27
  47. package/dist/config/config.d.ts.map +1 -1
  48. package/dist/config/config.js +25 -18
  49. package/dist/config/config.js.map +1 -1
  50. package/dist/config/index.d.ts +1 -0
  51. package/dist/config/index.d.ts.map +1 -1
  52. package/dist/config/index.js +6 -2
  53. package/dist/config/index.js.map +1 -1
  54. package/dist/config/mode.d.ts +8 -0
  55. package/dist/config/mode.d.ts.map +1 -0
  56. package/dist/config/mode.js +15 -0
  57. package/dist/config/mode.js.map +1 -0
  58. package/dist/config/timeouts.d.ts +3 -0
  59. package/dist/config/timeouts.d.ts.map +1 -1
  60. package/dist/config/timeouts.js +7 -1
  61. package/dist/config/timeouts.js.map +1 -1
  62. package/dist/datasets/captcha.d.ts +2 -2
  63. package/dist/datasets/captcha.d.ts.map +1 -1
  64. package/dist/datasets/captcha.js.map +1 -1
  65. package/dist/decisionMachine/index.d.ts +174 -0
  66. package/dist/decisionMachine/index.d.ts.map +1 -0
  67. package/dist/decisionMachine/index.js +85 -0
  68. package/dist/decisionMachine/index.js.map +1 -0
  69. package/dist/index.d.ts +1 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +85 -6
  72. package/dist/index.js.map +1 -1
  73. package/dist/procaptcha/api.d.ts +3 -2
  74. package/dist/procaptcha/api.d.ts.map +1 -1
  75. package/dist/procaptcha/behavioral.d.ts +13 -1
  76. package/dist/procaptcha/behavioral.d.ts.map +1 -1
  77. package/dist/procaptcha/props.d.ts +5 -0
  78. package/dist/procaptcha/props.d.ts.map +1 -1
  79. package/dist/procaptcha-bundle/index.d.ts +0 -3
  80. package/dist/procaptcha-bundle/index.d.ts.map +1 -1
  81. package/dist/procaptcha-frictionless/props.d.ts +1 -0
  82. package/dist/procaptcha-frictionless/props.d.ts.map +1 -1
  83. package/dist/provider/api.d.ts +1662 -122
  84. package/dist/provider/api.d.ts.map +1 -1
  85. package/dist/provider/api.js +261 -9
  86. package/dist/provider/api.js.map +1 -1
  87. package/dist/provider/database.d.ts +1385 -0
  88. package/dist/provider/database.d.ts.map +1 -0
  89. package/dist/provider/database.js +254 -0
  90. package/dist/provider/database.js.map +1 -0
  91. package/dist/provider/detection.d.ts +22 -0
  92. package/dist/provider/detection.d.ts.map +1 -1
  93. package/dist/provider/index.d.ts +2 -0
  94. package/dist/provider/index.d.ts.map +1 -1
  95. package/dist/provider/index.js +44 -1
  96. package/dist/provider/index.js.map +1 -1
  97. package/dist/provider/reasons.d.ts +40 -0
  98. package/dist/provider/reasons.d.ts.map +1 -0
  99. package/dist/provider/reasons.js +45 -0
  100. package/dist/provider/reasons.js.map +1 -0
  101. package/dist/provider/scheduler.d.ts +2 -1
  102. package/dist/provider/scheduler.d.ts.map +1 -1
  103. package/dist/provider/scheduler.js +1 -0
  104. package/dist/provider/scheduler.js.map +1 -1
  105. package/package.json +6 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,525 @@
1
1
  # @prosopo/types
2
2
 
3
+ ## 4.3.1
4
+ ### Patch Changes
5
+
6
+ - b03dad1: Thread `shadowDomPenalty: boolean` from the catcher's encrypted detection payload through `decryptPayload` and persist it on `Session.scoreComponents` so the flag is queryable in Mongo without inferring it from `baseScore=1 ∧ ¬triggeredDetectors`. Field is optional on the wire (position 6); older catcher bundles omit it and `shadowDomPenalty` stays undefined.
7
+
8
+ ## 4.3.0
9
+ ### Minor Changes
10
+
11
+ - 2392aaf: Integrate the prosopo/dns sidecar against the procaptcha provider.
12
+
13
+ - New admin endpoint `POST /v1/prosopo/provider/admin/dns/event` ingests batched DNS observation events from the sidecar (auth: admin sr25519 JWT) and merges resolver / peer IPs onto the matching Session record under a new `Session.dnsEvent` field.
14
+ - Frictionless response carries a per-session `dns_url` when the pronode has `DNS_EVENT_SUBZONE` + `DNS_EVENT_HMAC_SECRET` set. The HMAC path mirrors the sidecar's Rust implementation so both sides agree without shared per-request state.
15
+ - The frictionless bundle fires one no-cors GET to `dns_url` on detection completion (fire-and-forget; failures never affect the captcha flow).
16
+ - `dns_url` is included on the `reuse_session` short-circuit path too, not only the new-session path — otherwise repeat visits from the same user/IP/sitekey combination silently dropped the observation hop.
17
+ - Deploy compose entry for the sidecar plus a Caddy `layer4` SNI-passthrough block so the sidecar terminates TLS itself (no Cloudflare token needed). Caddy image must be rebuilt with the `caddy-l4` plugin.
18
+
19
+ ### Patch Changes
20
+
21
+ - a1d60db: Add optional internal ML labelling fields (label/labelReason/labelledBy/labelledAt) to captcha records.
22
+ - Updated dependencies [6ca1125]
23
+ - @prosopo/util@3.2.15
24
+
25
+ ## 4.2.1
26
+ ### Patch Changes
27
+
28
+ - 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.
29
+ - f7f9ec5: feat(provider,widget): reserved always-pass / always-fail test site keys
30
+
31
+ Add two fixed, well-known reserved site keys (`ALWAYS_PASS_SITE_KEY` /
32
+ `ALWAYS_FAIL_SITE_KEY`) that force a deterministic captcha verdict for CI/CD and
33
+ integration testing, constant across production, staging and development.
34
+
35
+ - `@prosopo/types`: shared constants + `getTestSiteKeyMode`, imported by both the
36
+ provider and the widget.
37
+ - `@prosopo/provider`: short-circuits the `submit*` and `verify` endpoints (verify
38
+ runs before the signature check, so no dapp secret is needed), serves an
39
+ invisible PoW session from the frictionless handler, and bypasses domain
40
+ middleware. Works in every environment with no DB record.
41
+ - `@prosopo/procaptcha-common` / `-react` / `-frictionless`: render a prominent
42
+ `TestModeBanner` warning (always pass/fail) plus a console warning so a test key
43
+ can never ship to production unnoticed.
44
+
45
+ always-pass verifies at both the submit and verify layers; always-fail fails at
46
+ both. Safe in production by design: the override only weakens protection for a
47
+ dapp that deliberately opts in, mirroring reCAPTCHA's public test keys.
48
+
49
+ ## 4.2.0
50
+ ### Minor Changes
51
+
52
+ - 20cae63: feat(provider): re-route after PoW using decrypted behavioural data
53
+
54
+ PoW solutions are now re-evaluated by the routing machine after submission.
55
+ Previously the routing decision was made up-front on a thin set of signals;
56
+ behavioural data only becomes available (decrypted server-side) once the
57
+ user submits their PoW solution, so a user with weak behavioural signals
58
+ could still earn a token by solving PoW alone.
59
+
60
+ The submit endpoint now runs the routing machine a second time in a new
61
+ `postPow` phase, feeding in the decrypted behavioural data, the originating
62
+ session's score, request headers, JA4, and IP info. If the router escalates,
63
+ the provider mints a fresh session (carrying the original session's risk
64
+ profile) and returns `escalation: { captchaType, sessionId }` on the
65
+ `PowCaptchaSolutionResponse`. The `verified` flag is forced to `false` on
66
+ escalation — the user isn't done until they clear the follow-up.
67
+
68
+ On the client, `ProcaptchaFrictionless` accepts the escalation via a new
69
+ internal `onEscalate` prop on the PoW widget and mounts the chosen image
70
+ or puzzle widget in place, splicing the new sessionId into the
71
+ `FrictionlessState`. The handoff is internal to the frictionless → pow
72
+ flow — dapps integrating Procaptcha see no API change.
73
+
74
+ `RoutingMachineInputBase.phase` widens from `"route"` to
75
+ `"route" | "postPow"` so decision-machine configs can distinguish the two
76
+ passes.
77
+
78
+ ### Patch Changes
79
+
80
+ - 4d9923e: feat: optional `storeMetadata` site setting persists `/verify` metadata
81
+
82
+ Adds a per-site-key boolean `storeMetadata` (default `false`) to
83
+ `ClientSettingsSchema` / `UserSettingsSchema`. When enabled, the provider
84
+ writes the dapp-server-forwarded metadata that arrives on the image, PoW
85
+ and puzzle `/verify` endpoints onto the corresponding captcha record under
86
+ a new `metadata` sub-document (`{ email?: string }` today; more fields
87
+ will be added here as the verify payload grows).
88
+
89
+ `providedIp` stays top-level — existing data and indexes already use it,
90
+ and it predates this setting.
91
+
92
+ Off by default. Existing spam-email checks still inspect the submitted
93
+ email unconditionally — this setting only gates **storage** of metadata
94
+ so the submitted values can be sampled later to judge whether traffic is
95
+ mostly spam.
96
+
97
+ ## 4.1.4
98
+ ### Patch Changes
99
+
100
+ - d351362: fix: replace `$or + $expr` unstored-records sweep with a `pendingStage` sentinel
101
+
102
+ The `StoreCommitmentsExternal` background job fetches "records that still
103
+ need to be shipped to the central DB" via
104
+ `{ $or: [ { storedAtTimestamp: { $exists: false } }, { $expr: { $lt: [$storedAtTimestamp, $lastUpdatedTimestamp] } } ] }`.
105
+ `$expr` is unindexable (per-doc computation) and combined with `$or`
106
+ defeats the planner entirely — production was running this every sweep
107
+ as a `IXSCAN { _id: 1 }` collection scan, examining ~673K powcaptcha
108
+ docs, ~240K usercommitments docs, and ~60K sessions docs per pass. On
109
+ the worst-affected nodes this thrashed the WiredTiger cache (10h of
110
+ cumulative app-thread blocking on disk reads in 43h of uptime) and made
111
+ every other Mongo lookup (including the frictionless session dedup
112
+ queries) slow by eviction — manifesting as traffic-correlated provider
113
+ latency starting 2026-05-26.
114
+
115
+ Replace the query semantics with a `pendingStage: true` sentinel:
116
+
117
+ - New optional `pendingStage` field on `StoredCaptcha` and `Session`
118
+ (Zod + TS + Mongoose schemas).
119
+ - New tiny partial index per collection:
120
+ `{ pendingStage: 1 }` with `partialFilterExpression: { pendingStage: true }`.
121
+ Indexes only the rows that need staging — typically a tiny rolling set,
122
+ ~20 KB for a 700K-row collection with 100 pending rows in local tests.
123
+ - Write paths (`storeXxx`, `updateXxx`, `markXxxChecked`, approve /
124
+ disapprove, `checkAndRemoveSession`, `recordSessionSimdReadingsIfAbsent`,
125
+ `storePendingImageCommitment`) set `pendingStage: true` alongside the
126
+ existing `lastUpdatedTimestamp` bump.
127
+ - `markXxxStored` and the per-record streamer mark-stored callbacks
128
+ `$unset: { pendingStage: 1 }` alongside the `storedAtTimestamp` write,
129
+ guarded by `lastUpdatedTimestamp: { $lte: ts }` so an in-flight update
130
+ doesn't get its pending flag cleared by an older stage completion.
131
+ - `markXxxStored` bulk methods accept an `asOfTimestamp` argument; the
132
+ sweep passes the time it fetched the batch so the guard is correct
133
+ across the full ship-then-mark round trip.
134
+ - `getUnstoredXxx` queries become `{ pendingStage: true }` sorted by
135
+ `_id` — uses the new partial index, examines only pending docs.
136
+
137
+ Local verification on a 700,100-doc test collection: old query ~549 ms
138
+ examining 700,100 docs; new query 0 ms examining 100 docs. Index storage
139
+ ~20 KB.
140
+
141
+ ## 4.1.3
142
+ ### Patch Changes
143
+
144
+ - e2711ae: feat(provider): add `autoBanScoreThreshold` client setting and frictionless auto-ban
145
+
146
+ Adds an optional `autoBanScoreThreshold` to `ClientSettingsSchema`. When set,
147
+ the frictionless decision machine blocks any request whose detector score is
148
+ at or above the threshold with HTTP 401 instead of issuing an image or PoW
149
+ challenge — useful for clients receiving floods of image solves from sessions
150
+ scoring at or above 1.
151
+
152
+ The check runs first in `runDecisionMachine`, before the existing
153
+ user-agent / context-aware / webview / timestamp / threshold gates, so score
154
+ bumps applied by those gates cannot bypass it. Blocked sessions are persisted
155
+ via `registerBlockedSession` with the new `FrictionlessReason.AUTO_BAN_SCORE`
156
+ reason.
157
+
158
+ Undefined threshold = disabled; existing clients are unaffected.
159
+ - 5786629: fix(provider): persist DISALLOWED_WEBVIEW outcome and broaden detection in image captcha verify
160
+
161
+ The webview check in `verifyImageCaptchaSolution` did an early return that
162
+ left the commitment stuck at `Approved` in the database and never marked
163
+ the session as `serverChecked` / `disapproved`, even though the API
164
+ correctly returned `verified: false`. This made the DB state misleading
165
+ and broke any downstream consumer reading commitment status directly.
166
+
167
+ The check also only fired when `scoreComponents.webView > 0`, which is
168
+ only set when the frictionless flow took the webview branch. Webview
169
+ users who reached the image captcha via another branch (UA mismatch,
170
+ context-aware failure, timestamp, bot score) had `session.webView: true`
171
+ but no `scoreComponents.webView`, so the verify-time block missed them.
172
+
173
+ - Convert the early return to the same `failStatus` /
174
+ `commitmentUpdates.result` pattern used by every other check in the
175
+ function, so the commitment and session are properly persisted as
176
+ disapproved with reason `DISALLOWED_WEBVIEW`.
177
+ - Trigger on `session.webView === true` OR `scoreComponents.webView > 0`.
178
+ - Add `ResultReason.DISALLOWED_WEBVIEW` and the English locale entry.
179
+ - Add unit tests for score-based detection, boolean-only detection, and
180
+ the `disallowWebView=false` passthrough.
181
+
182
+ Closes #3396.
183
+ - Updated dependencies [6567ce0]
184
+ - Updated dependencies [5786629]
185
+ - @prosopo/util@3.2.14
186
+ - @prosopo/locale@3.2.4
187
+
188
+ ## 4.1.2
189
+ ### Patch Changes
190
+
191
+ - Updated dependencies [72a1218]
192
+ - @prosopo/util@3.2.13
193
+
194
+ ## 4.1.1
195
+ ### Patch Changes
196
+
197
+ - 91958da: Puzzle captcha + maintenance mode hardening, plus a refactor of the
198
+ frictionless handler into focused modules.
199
+
200
+ - **Puzzle captcha now records checkbox-click coordinates like POW.** Adds an
201
+ optional `salt` field to `SubmitPuzzleCaptchaSolutionBody`; the puzzle
202
+ widget hashes the click coords into the salt and the server decodes them
203
+ into the puzzle record's `coords` field on submit. New `start(x, y)`
204
+ parameters on `procaptcha-puzzle` Manager + widget.
205
+ - **Fix puzzle "No session found" caused by stale Redis dedup.** The
206
+ `/frictionless` dedup path is now Mongo-authoritative — Redis is no
207
+ longer consulted as a session source. A concurrent `/captcha/{type}`
208
+ invalidation could previously race a fire-and-forget Redis repopulation
209
+ in the `/frictionless` dedup branch, leaving Redis pointing at a
210
+ Mongo-deleted session for the full 1-hour TTL. Stale pointers are now
211
+ evicted lazily.
212
+ - **Maintenance mode operates without MongoDB.** `/frictionless` and
213
+ `/captcha/{pow,puzzle}` short-circuit to dummy responses before any DB
214
+ call, and `Environment.isReady()` tolerates a Mongo connect failure when
215
+ `MAINTENANCE_MODE=true` so the provider can start with Mongo down.
216
+ - **Refactor `getFrictionlessCaptchaChallenge.ts` into focused modules** under
217
+ `getFrictionlessCaptchaChallenge/` (handler, sessionDedup, shortCircuit,
218
+ accessPolicy, decisionMachine, decryptSimdReadings, constants). Original
219
+ import path preserved via a re-export shim.
220
+ - **Move `RedisWriteQueue` from `@prosopo/provider` to `@prosopo/database`**
221
+ (where the Redis connection itself lives), and clear residual Redis
222
+ session keys at provider startup via `Environment.cleanup()` so a
223
+ previously-crashed run can't leak stale dedup pointers.
224
+ - Adds puzzle-type branch to access-policy handling in `/frictionless`.
225
+ - Updated dependencies [53bfd45]
226
+ - @prosopo/locale@3.2.3
227
+
228
+ ## 4.1.0
229
+ ### Minor Changes
230
+
231
+ - 6a741ce: Move `FrictionlessReason` into `@prosopo/types` and add a new
232
+ `ResultReason` enum covering the values previously inlined as string
233
+ literals on `result.reason` (API.CAPTCHA_PASSED, API.VPN_BLOCKED,
234
+ EMAIL_INVALID, etc.). Provider task code now references the enums so the
235
+ canonical list of selection/result reasons lives in one place and can be
236
+ imported by non-server packages (portal, audit tooling) without pulling
237
+ in `@prosopo/provider`. The previous `FrictionlessReason` export from
238
+ `@prosopo/provider` is preserved as a re-export for backwards
239
+ compatibility.
240
+
241
+ `CaptchaResult.reason`, `StoredCaptcha.result.reason`, `Session.result.reason`
242
+ are now typed `ResultReason | undefined`; `Session.reason` is typed
243
+ `FrictionlessReason | undefined`. The runtime zod schema stays permissive
244
+ (`string().optional().transform(v => v as ResultReason | undefined)`) so
245
+ operator-authored decision-machine output and old MongoDB records still
246
+ parse without throwing; the strict enum is preserved on the TS surface
247
+ via the transform.
248
+
249
+ ## 4.0.0
250
+ ### Major Changes
251
+
252
+ - 8bb7286: Move `captchaType` from client (`data-captcha-type` / render-options prop)
253
+ to a server-side site-key setting; the bundle now calls `/frictionless`
254
+ for all flows. Renames the bundle's universal mount component from
255
+ `FrictionlessCaptcha` to `BundleCaptcha` to reflect that it is no longer
256
+ frictionless-specific — the server decides which concrete challenge type
257
+ to render.
258
+
259
+ ### Minor Changes
260
+
261
+ - d865319: Add puzzle captcha (drag-to-target challenge) as a new captcha type:
262
+ provider endpoints, manager + widget package, types, demo pages, and
263
+ a `puzzleTolerance` site setting.
264
+ - 753304b: Extend the existing decision-machine artifact with a new `route` phase that
265
+ selects the concrete captcha type during the frictionless flow. Per-sitekey
266
+ JS sources (Dapp > Global priority) can now override the ladder's image/pow
267
+ baseline based on Redis-backed usage counters keyed by IP and userAccount.
268
+
269
+ Adds:
270
+
271
+ - `RoutingMachineInput`, `RoutingMachineOutput`, `CounterSpec`,
272
+ `CounterWindow` etc. in `@prosopo/types`.
273
+ - A `usageCounters` primitive in the provider (Lua INCR + TTL-on-first;
274
+ bulk MGET) and fire-and-forget served/solved counter writes at the
275
+ three captcha types.
276
+ - `DecisionMachineRunner.route()` and `.getRequiredCounters()` alongside
277
+ the existing `decide()` veto. Artifact cache is now shared across all
278
+ runner instances and busted on admin PUT for immediate propagation.
279
+ - `applyRouter` helper in the frictionless flow which falls back to the
280
+ ladder baseline on any machine/Redis failure.
281
+
282
+ Back-compat: existing post-PoW verify-phase machines keep working
283
+ unchanged. A single artifact can export both `route` and `verify` /
284
+ `decide`.
285
+
286
+ ### Patch Changes
287
+
288
+ - 3c0be68: Add a new admin-only endpoint `POST /v1/prosopo/provider/admin/counters/clear-all`
289
+ for deleting per-sitekey usage counters from Redis. Intended for manual
290
+ testing of routing decision machines and staging-environment resets — not
291
+ part of the hot path.
292
+
293
+ - `ClearAllCountersBody` (optional `dapp`) and `ClearAllCountersResponse`
294
+ (`success`, `deletedCount`, `scope`) zod schemas in `@prosopo/types`,
295
+ plus `AdminApiPaths.ClearAllCounters` and a 10/60s rate limit.
296
+ - `UsageCounters.clearAll(dappAccount?)` in the provider, using Redis
297
+ `SCAN` + `DEL` in 500-key batches. Returns null on Redis failure so
298
+ callers can surface the underlying error.
299
+ - `ApiClearAllCountersEndpoint` wired through `ApiAdminRoutesProvider`.
300
+ - `ProviderApi.clearAllCounters(jwt, dappAccount?)` client method.
301
+ - f9ea09d: Drop flat ipinfo fields (`vpn`, `countryCode`, `tor`, `proxy`, `datacenter`, `abuser`, `geolocation`) from captcha records — persist the full `IPInfoResponse` payload as `ipInfo` instead
302
+
303
+ The provider's `ipInfoMiddleware` already calls `ipInfoService.lookup()` on every captcha request and attaches the result to `req.ipInfo`. Persisting that whole payload on every captcha record means the portal sees the *exact* response the traffic filter consulted, with no cherry-picked-field translation layer in between. Adding a new flag in the future (e.g. `isMobile`) requires zero schema changes — it's already in the payload.
304
+
305
+ - `StoredCaptcha` interface: removed `vpn`, `countryCode`, `geolocation`. Keeps `ipInfo?: IPInfoResponse`.
306
+ - `PoWCaptchaStoredSchema` zod validator: same removals, adds `ipInfo` (validated as `any()` since `IPInfoResponse` is a discriminated union narrowed at read time).
307
+ - PoW, Puzzle, UserCommitment mongoose schemas in `@prosopo/types-database`: same removals. UserCommitment now also has `ipInfo` (previously only PoW + Puzzle did). Replaced `{ countryCode: 1 }` index with `{ "ipInfo.countryCode": 1 }` + `{ "ipInfo.isVPN": 1 }`.
308
+ - `IProviderDatabase` interface: `storePowCaptchaRecord` / `storePuzzleCaptchaRecord` / `storePendingImageCommitment` now take `ipInfo?: IPInfoResponse` in place of `countryCode?: string`.
309
+ - Provider call sites (`getPoWCaptchaChallenge.ts`, `getPuzzleCaptchaChallenge.ts`, `getImageCaptchaChallenge.ts`, `submitImageCaptchaSolution.ts`) pass `req.ipInfo` directly. The earlier "prefer session.countryCode, fallback to req's countryCode" branching is gone — record `ipInfo` reflects what was true at challenge-issuance time.
310
+ - Provider read sites (`powTasks.ts`, `puzzleTasks.ts`, `imgCaptchaTasks.ts`) narrow `record.ipInfo?.isValid` then read `.countryCode` for access-policy / decision-machine input — same effective value, derived from the persisted payload.
311
+ - Lean projections in `provider.ts` switched from `countryCode: 1` to `ipInfo: 1`.
312
+
313
+ Paired with [captcha-private#3339](https://github.com/prosopo/captcha-private/pull/3339), which updates the CHECK_IP_INFO backfill job (now writes the full payload, query becomes `{ ipInfo: { $exists: false } }`), the portal search models / aggregation pipeline (read nested `ipInfo.*`), and the anomaly detectors.
314
+ - f9ea09d: Drop flat `countryCode` / `geolocation` fields from Session records — persist the full `IPInfoResponse` payload as `session.ipInfo` instead
315
+
316
+ Brings sessions in line with captcha records (PoW / Puzzle / UserCommitment), which already store the full payload. The provider's `ipInfoMiddleware` populates `req.ipInfo` at session-creation time; that whole payload now lives on the session, so consumers narrow on `session.ipInfo?.isValid` and read whichever sub-field they need (countryCode, isVPN, isMobile, isTor, ...).
317
+
318
+ - `Session` interface + `SessionSchema` zod (`@prosopo/types`): replace `countryCode?: string` / `geolocation?: string` with `ipInfo?: IPInfoResponse`.
319
+ - `SessionRecordSchema` mongoose (`@prosopo/types-database`): same.
320
+ - `FrictionlessManager.setSessionParams` / `createSession`: accept `ipInfo` instead of `countryCode`.
321
+ - `getFrictionlessCaptchaChallenge.ts` call sites (10 of them — `sendImageCaptcha`, `sendPowCaptcha`, `registerBlockedSession`, etc.) pass `req.ipInfo` instead of `countryCode`.
322
+ - `CaptchaManager.isValidRequest()` return: drop dead `countryCode: sessionRecord.countryCode` field (no caller was destructuring it after the earlier refactor), surface `ipInfo: sessionRecord.ipInfo` instead for callers that want it.
323
+ - Two new MongoMemory roundtrip tests in `ipInfoPersistence.integration.test.ts` cover Session.ipInfo (valid response + error response). `routingDecisionMachines.integration.test.ts` fixture updated to write the full payload.
324
+
325
+ `RoutingContext.countryCode` is unchanged — that's a transient runtime struct fed into the routing machine, not a stored record. Callers of `setRoutingContext` already derive `countryCode` from `req.ipInfo.countryCode` at the API boundary.
326
+
327
+ Paired with [captcha-private#3339](https://github.com/prosopo/captcha-private/pull/3339).
328
+ - 4aae4e6: Plumb the WASM SIMD CPU fingerprint readings (collected by the catcher
329
+ client per https://blog.azerpas.com/writing/wasm-simd-fingerprinting/)
330
+ through the captcha flow and onto the linked `Session` record.
331
+ Collection-only — no scoring or classification yet.
332
+
333
+ The readings are sent at the earliest moment they're available so the
334
+ signal lands on the session as soon as possible:
335
+
336
+ 1. **Captcha-challenge GET** (PoW / Puzzle / Image) — the procaptcha
337
+ Manager calls `frictionlessState.getSimdReadings(0)` (non-blocking
338
+ cache check) and attaches it to the challenge-request body. The
339
+ provider handler decodes and patches the linked session via
340
+ `updateSessionRecord`.
341
+ 2. **Solution submission** (PoW / Puzzle / Image) — same non-blocking
342
+ check on the submit body. Acts as a backup if the benchmark wasn't
343
+ ready in time for the challenge GET.
344
+
345
+ Frictionless init itself stays SIMD-free (benchmark is too slow to gate
346
+ the first hop).
347
+
348
+ Surface area:
349
+
350
+ - `SimdReadings` discriminated union + `SimdOpReadingRecord` /
351
+ `SimdOpCategory` in `@prosopo/types`, plus `simdReadingsCodec` shared
352
+ encode/decode helpers so the browser SDK and the provider use the same
353
+ pipe-safe wire format.
354
+ - Optional `simdReadings: string()` on `CaptchaRequestBody`,
355
+ `GetPowCaptchaChallengeRequestBody`, `GetPuzzleCaptchaChallengeRequestBody`,
356
+ `CaptchaSolutionBody`, `SubmitPowCaptchaSolutionBody`, and
357
+ `SubmitPuzzleCaptchaSolutionBody`.
358
+ - `FrictionlessState.getSimdReadings` + `BotDetectionFunctionResult.getSimdReadings`
359
+ so the catcher's prefetched benchmark is consumed at the request sites.
360
+ - `ProcaptchaApiInterface.{getCaptchaChallenge, submitCaptchaSolution}` and
361
+ the `ProviderApi.{getCaptchaChallenge, getPowCaptchaChallenge, getPuzzleCaptchaChallenge,
362
+ submitCaptchaSolution, submitPowCaptchaSolution, submitPuzzleCaptchaSolution}`
363
+ client methods accept the field.
364
+ - Provider challenge + solution handlers decode via `decodeSimdReadings`
365
+ and `updateSessionRecord` (Mongoose `Mixed`, Zod discriminated-union
366
+ validation at the edge). The challenge-GET patch is fire-and-forget.
367
+
368
+ Backward-compatible: older catcher clients omit the field at every layer;
369
+ the session record omits it in turn.
370
+ - Updated dependencies [4aae4e6]
371
+ - @prosopo/locale@3.2.2
372
+ - @prosopo/util@3.2.12
373
+
374
+ ## 3.16.1
375
+ ### Patch Changes
376
+
377
+ - 819ed95: Adding invisible mode to session data
378
+
379
+ ## 3.16.0
380
+ ### Minor Changes
381
+
382
+ - 99dfb44: Pass back reason via verify calls
383
+
384
+ ### Patch Changes
385
+
386
+ - f6a4402: API endpoint for removing site keys
387
+
388
+ ## 3.15.0
389
+ ### Minor Changes
390
+
391
+ - 3e54c0a: Rate limits by client
392
+
393
+ ## 3.14.1
394
+ ### Patch Changes
395
+
396
+ - 946a8ba: Abuser score threshold
397
+ - 5614814: Small config changes
398
+ - Updated dependencies [b94890c]
399
+ - @prosopo/locale@3.2.1
400
+
401
+ ## 3.14.0
402
+ ### Minor Changes
403
+
404
+ - 42650db: Add better spam rules and move ipinfo service to local instead of external
405
+
406
+ ### Patch Changes
407
+
408
+ - fc514dd: ability to block different types of traffic
409
+ - Updated dependencies [fc514dd]
410
+ - Updated dependencies [42650db]
411
+ - @prosopo/locale@3.2.0
412
+
413
+ ## 3.13.3
414
+ ### Patch Changes
415
+
416
+ - Updated dependencies [a25dffa]
417
+ - @prosopo/util@3.2.11
418
+
419
+ ## 3.13.2
420
+ ### Patch Changes
421
+
422
+ - Updated dependencies [346edd7]
423
+ - @prosopo/util@3.2.10
424
+
425
+ ## 3.13.1
426
+ ### Patch Changes
427
+
428
+ - Updated dependencies [22bfee7]
429
+ - @prosopo/util@3.2.9
430
+
431
+ ## 3.13.0
432
+ ### Minor Changes
433
+
434
+ - e6d9553: Add `registerSiteKeys` bulk endpoint (`POST /v1/prosopo/provider/admin/sitekeys/register`) that accepts an array of site key records, allowing multiple client records to be registered in a single request.
435
+
436
+ ### Patch Changes
437
+
438
+ - Updated dependencies [e0fb3d6]
439
+ - Updated dependencies [f3f23e3]
440
+ - @prosopo/util@3.2.8
441
+
442
+ ## 3.12.3
443
+ ### Patch Changes
444
+
445
+ - d5082a9: Don't require email type
446
+ - e1ea65f: Better spam email domain checking
447
+ - c316257: Adding sync fo sessions wrt captcha status
448
+ - Updated dependencies [e1ea65f]
449
+ - @prosopo/util@3.2.7
450
+
451
+ ## 3.12.2
452
+ ### Patch Changes
453
+
454
+ - adb89a6: Disposable email checking
455
+ - Updated dependencies [adb89a6]
456
+ - @prosopo/locale@3.1.29
457
+ - @prosopo/util@3.2.6
458
+
459
+ ## 3.12.1
460
+ ### Patch Changes
461
+
462
+ - a90eb54: We know WHAT happens but we don't know WHY happens
463
+
464
+ ## 3.12.0
465
+ ### Minor Changes
466
+
467
+ - feaca02: Max image rounds
468
+
469
+ ### Patch Changes
470
+
471
+ - 676c5f2: Use HTTPS in developmentwq
472
+
473
+ ## 3.11.1
474
+ ### Patch Changes
475
+
476
+ - 8148587: Clustering
477
+
478
+ ## 3.11.0
479
+ ### Minor Changes
480
+
481
+ - 7f6ffc5: Store behavioural for image challenges
482
+
483
+ ## 3.10.2
484
+ ### Patch Changes
485
+
486
+ - 93fa086: Add decision engine endpoints
487
+
488
+ ## 3.10.1
489
+ ### Patch Changes
490
+
491
+ - cde7550: enhance/frictionless-headers-db-field
492
+
493
+ ## 3.10.0
494
+ ### Minor Changes
495
+
496
+ - ad6d622: Separate types from mongoose schemas to avoid bundling mongoose in frontend
497
+
498
+ ## 3.9.0
499
+ ### Minor Changes
500
+
501
+ - ff58a70: Load the geolocation service at startup only
502
+
503
+ ## 3.8.4
504
+ ### Patch Changes
505
+
506
+ - d2431cd: Allow IP validation rules to be disabled
507
+
508
+ ## 3.8.3
509
+ ### Patch Changes
510
+
511
+ - bd6995b: Adding UAP based geoblocking rules
512
+
513
+ ## 3.8.2
514
+ ### Patch Changes
515
+
516
+ - 9633e58: Add captcha type to decision machine and run on image verification"
517
+
518
+ ## 3.8.1
519
+ ### Patch Changes
520
+
521
+ - f52a5c1: Adding decision machine to provider for behavior detection
522
+
3
523
  ## 3.8.0
4
524
  ### Minor Changes
5
525
 
package/dist/api/api.d.ts CHANGED
@@ -1,18 +1,36 @@
1
+ import type { RegisterSitekeysBodyTypeOutput, RemoveSitekeysBodyTypeOutput } from "@prosopo/types";
1
2
  import type { IUserSettings, Tier } from "../client/index.js";
2
3
  import type { CaptchaSolution } from "../datasets/index.js";
4
+ import type { DecisionMachineCaptchaType, DecisionMachineLanguage, DecisionMachineRuntime, DecisionMachineScope } from "../decisionMachine/index.js";
3
5
  import type { ProcaptchaToken, StoredEvents } from "../procaptcha/index.js";
4
- import type { ApiResponse, CaptchaResponseBody, CaptchaSolutionResponse, GetPowCaptchaResponse, ImageVerificationResponse, PowCaptchaSolutionResponse, Provider, ProviderRegistered, RandomProvider, UpdateProviderClientsResponse } from "../provider/index.js";
6
+ import type { ClientMetaData } from "../provider/database.js";
7
+ import type { ApiResponse, CaptchaResponseBody, CaptchaSolutionResponse, GetPowCaptchaResponse, GetPuzzleCaptchaResponse, ImageVerificationResponse, PowCaptchaSolutionResponse, Provider, ProviderRegistered, PuzzleCaptchaSolutionResponse, RandomProvider, UpdateProviderClientsResponse, VerificationResponse } from "../provider/index.js";
5
8
  export interface ProviderApiInterface {
6
- getCaptchaChallenge(userAccount: string, randomProvider: RandomProvider): Promise<CaptchaResponseBody>;
7
- submitCaptchaSolution(captchas: CaptchaSolution[], requestHash: string, userAccount: string, timestamp: string, providerRequestHashSignature: string, userRequestHashSignature: string): Promise<CaptchaSolutionResponse>;
9
+ getCaptchaChallenge(userAccount: string, randomProvider: RandomProvider, sessionId?: string, simdReadings?: string): Promise<CaptchaResponseBody>;
10
+ submitCaptchaSolution(captchas: CaptchaSolution[], requestHash: string, userAccount: string, timestamp: string, providerRequestHashSignature: string, userRequestHashSignature: string, behavioralData?: string, simdReadings?: string, clientMetaData?: ClientMetaData): Promise<CaptchaSolutionResponse>;
8
11
  verifyDappUser(token: ProcaptchaToken, signature: string, userAccount: string, maxVerifiedTime?: number): Promise<ImageVerificationResponse>;
9
- getPowCaptchaChallenge(userAccount: string, dappAccount: string): Promise<GetPowCaptchaResponse>;
10
- submitPowCaptchaSolution(challenge: GetPowCaptchaResponse, userAccount: string, dappAccount: string, nonce: number, userTimestampSignature: string, timeout?: number, salt?: string): Promise<PowCaptchaSolutionResponse>;
12
+ getPowCaptchaChallenge(userAccount: string, dappAccount: string, sessionId?: string, simdReadings?: string): Promise<GetPowCaptchaResponse>;
13
+ submitPowCaptchaSolution(challenge: GetPowCaptchaResponse, userAccount: string, dappAccount: string, nonce: number, userTimestampSignature: string, timeout?: number, behavioralData?: string, salt?: string, simdReadings?: string, clientMetaData?: ClientMetaData): Promise<PowCaptchaSolutionResponse>;
14
+ getPuzzleCaptchaChallenge(userAccount: string, dappAccount: string, sessionId?: string, simdReadings?: string): Promise<GetPuzzleCaptchaResponse>;
15
+ submitPuzzleCaptchaSolution(challenge: GetPuzzleCaptchaResponse, userAccount: string, dappAccount: string, finalX: number, finalY: number, puzzleEvents: Array<{
16
+ x: number;
17
+ y: number;
18
+ t: number;
19
+ }>, userTimestampSignature: string, timeout?: number, behavioralData?: string, salt?: string, simdReadings?: string, clientMetaData?: ClientMetaData): Promise<PuzzleCaptchaSolutionResponse>;
20
+ submitPuzzleCaptchaVerify(token: string, signatureHex: string, recencyLimit: number, user: string, ip?: string, email?: string): Promise<VerificationResponse>;
11
21
  submitUserEvents(events: StoredEvents, string: string): Promise<UpdateProviderClientsResponse>;
12
22
  getProviderStatus(): Promise<ProviderRegistered>;
13
23
  getProviderDetails(): Promise<Provider>;
14
24
  registerSiteKey(siteKey: string, tier: Tier, settings: IUserSettings, jwt: string): Promise<ApiResponse>;
25
+ registerSiteKeys(siteKeys: RegisterSitekeysBodyTypeOutput, jwt: string): Promise<ApiResponse>;
26
+ removeSiteKey(siteKey: string, jwt: string): Promise<ApiResponse>;
27
+ removeSiteKeys(siteKeys: RemoveSitekeysBodyTypeOutput, jwt: string): Promise<ApiResponse>;
15
28
  updateDetectorKey(detectorKey: string, jwt: string): Promise<ApiResponse>;
16
29
  removeDetectorKey(detectorKey: string, jwt: string, expirationInSeconds?: number): Promise<ApiResponse>;
30
+ updateDecisionMachine(scope: DecisionMachineScope, runtime: DecisionMachineRuntime, source: string, jwt: string, dappAccount?: string, language?: DecisionMachineLanguage, name?: string, version?: string, captchaType?: DecisionMachineCaptchaType): Promise<ApiResponse>;
31
+ getAllDecisionMachines(jwt: string): Promise<ApiResponse>;
32
+ getDecisionMachine(id: string, jwt: string): Promise<ApiResponse>;
33
+ removeDecisionMachine(id: string, jwt: string): Promise<ApiResponse>;
34
+ removeAllDecisionMachines(jwt: string): Promise<ApiResponse>;
17
35
  }
18
36
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EACX,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,QAAQ,EACR,kBAAkB,EAClB,cAAc,EACd,6BAA6B,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,oBAAoB;IACpC,mBAAmB,CAClB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,qBAAqB,CACpB,QAAQ,EAAE,eAAe,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,4BAA4B,EAAE,MAAM,EACpC,wBAAwB,EAAE,MAAM,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACpC,cAAc,CACb,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtC,sBAAsB,CACrB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAClC,wBAAwB,CACvB,SAAS,EAAE,qBAAqB,EAChC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,sBAAsB,EAAE,MAAM,EAC9B,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACvC,gBAAgB,CACf,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC1C,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjD,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,eAAe,CACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1E,iBAAiB,CAChB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,mBAAmB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,WAAW,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"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"}
@@ -79,7 +79,7 @@ export interface IPApiResponse {
79
79
  is_bogon: boolean;
80
80
  is_mobile: boolean;
81
81
  is_satellite: boolean;
82
- is_crawler: boolean | string;
82
+ is_crawler: boolean;
83
83
  is_datacenter: boolean;
84
84
  is_tor: boolean;
85
85
  is_proxy: boolean;
@@ -103,6 +103,7 @@ export interface IPInfoResult {
103
103
  isAbuser: boolean;
104
104
  isMobile: boolean;
105
105
  isSatellite: boolean;
106
+ isCrawler: boolean;
106
107
  providerName?: string;
107
108
  providerType?: "hosting" | "education" | "government" | "banking" | "business" | "isp";
108
109
  asnNumber?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ipapi.d.ts","sourceRoot":"","sources":["../../src/api/ipapi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ipapi.d.ts","sourceRoot":"","sources":["../../src/api/ipapi.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,29 @@ export declare enum ApiParams {
40
40
  enabled = "enabled",
41
41
  headHash = "headHash",
42
42
  behavioralData = "behavioralData",
43
- salt = "salt"
43
+ simdReadings = "simdReadings",
44
+ decisionMachineScope = "decisionMachineScope",
45
+ decisionMachineRuntime = "decisionMachineRuntime",
46
+ decisionMachineSource = "decisionMachineSource",
47
+ decisionMachineLanguage = "decisionMachineLanguage",
48
+ decisionMachineName = "decisionMachineName",
49
+ decisionMachineVersion = "decisionMachineVersion",
50
+ decisionMachineCaptchaType = "decisionMachineCaptchaType",
51
+ salt = "salt",
52
+ email = "email",
53
+ targetX = "targetX",
54
+ targetY = "targetY",
55
+ originX = "originX",
56
+ originY = "originY",
57
+ finalX = "finalX",
58
+ finalY = "finalY",
59
+ puzzleEvents = "puzzleEvents",
60
+ tolerance = "tolerance",
61
+ mode = "mode",
62
+ reason = "reason",
63
+ escalation = "escalation",
64
+ hp = "hp",
65
+ clientMetaData = "clientMetaData",
66
+ honeypot = "honeypot"
44
67
  }
45
68
  //# sourceMappingURL=params.d.ts.map