@prosopo/types 4.3.1 → 4.4.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.
- package/.turbo/turbo-build$colon$cjs.log +6 -6
- package/.turbo/turbo-build$colon$tsc.log +8 -8
- package/.turbo/turbo-build.log +7 -7
- package/.turbo/turbo-typecheck.log +1 -1
- package/CHANGELOG.md +64 -0
- package/dist/api/api.d.ts +3 -3
- package/dist/api/api.d.ts.map +1 -1
- package/dist/cjs/client/settings.cjs +3 -0
- package/dist/cjs/decisionMachine/index.cjs +1 -1
- package/dist/cjs/provider/api.cjs +0 -4
- package/dist/cjs/provider/database.cjs +15 -1
- package/dist/client/settings.d.ts +3 -0
- package/dist/client/settings.d.ts.map +1 -1
- package/dist/client/settings.js +3 -0
- package/dist/client/settings.js.map +1 -1
- package/dist/decisionMachine/index.d.ts +14 -4
- package/dist/decisionMachine/index.d.ts.map +1 -1
- package/dist/decisionMachine/index.js +1 -1
- package/dist/decisionMachine/index.js.map +1 -1
- package/dist/provider/api.d.ts +10 -12
- package/dist/provider/api.d.ts.map +1 -1
- package/dist/provider/api.js +1 -5
- package/dist/provider/api.js.map +1 -1
- package/dist/provider/database.d.ts +61 -10
- package/dist/provider/database.d.ts.map +1 -1
- package/dist/provider/database.js +15 -1
- package/dist/provider/database.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/types@4.
|
|
2
|
+
> @prosopo/types@4.4.1 build:cjs
|
|
3
3
|
> NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
|
|
4
4
|
|
|
5
5
|
ViteCommonJSConfig: .
|
|
@@ -55,13 +55,13 @@ rendering chunks...
|
|
|
55
55
|
[2mdist/cjs/[22m[36mconfig/index.cjs [39m[1m[2m 2.82 kB[22m[1m[22m
|
|
56
56
|
[2mdist/cjs/[22m[36mapi/params.cjs [39m[1m[2m 3.04 kB[22m[1m[22m
|
|
57
57
|
[2mdist/cjs/[22m[36mclient/index.cjs [39m[1m[2m 3.12 kB[22m[1m[22m
|
|
58
|
-
[2mdist/cjs/[22m[36mdecisionMachine/index.cjs [39m[1m[2m 3.
|
|
58
|
+
[2mdist/cjs/[22m[36mdecisionMachine/index.cjs [39m[1m[2m 3.61 kB[22m[1m[22m
|
|
59
59
|
[2mdist/cjs/[22m[36mprocaptcha/token.cjs [39m[1m[2m 3.69 kB[22m[1m[22m
|
|
60
60
|
[2mdist/cjs/[22m[36mprovider/index.cjs [39m[1m[2m 4.57 kB[22m[1m[22m
|
|
61
61
|
[2mdist/cjs/[22m[36mdatasets/captcha.cjs [39m[1m[2m 5.10 kB[22m[1m[22m
|
|
62
62
|
[2mdist/cjs/[22m[36mconfig/config.cjs [39m[1m[2m 9.30 kB[22m[1m[22m
|
|
63
|
-
[2mdist/cjs/[22m[36mclient/settings.cjs [39m[1m[2m 9.
|
|
64
|
-
[2mdist/cjs/[22m[36mprovider/database.cjs [39m[1m[
|
|
63
|
+
[2mdist/cjs/[22m[36mclient/settings.cjs [39m[1m[2m 9.58 kB[22m[1m[22m
|
|
64
|
+
[2mdist/cjs/[22m[36mprovider/database.cjs [39m[1m[2m10.31 kB[22m[1m[22m
|
|
65
65
|
[2mdist/cjs/[22m[36mindex.cjs [39m[1m[2m14.32 kB[22m[1m[22m
|
|
66
|
-
[2mdist/cjs/[22m[36mprovider/api.cjs [39m[1m[2m20.
|
|
67
|
-
[32m✓ built in
|
|
66
|
+
[2mdist/cjs/[22m[36mprovider/api.cjs [39m[1m[2m20.18 kB[22m[1m[22m
|
|
67
|
+
[32m✓ built in 215ms[39m
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/types@4.
|
|
2
|
+
> @prosopo/types@4.4.1 build:tsc
|
|
3
3
|
> tsc --build --verbose
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
11:33:47 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
|
* tsconfig.json
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
11:33:47 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'
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
11:33:47 AM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
11:33:47 AM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
11:33:47 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'
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
11:33:47 AM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
11:33:47 AM - Building project '/home/runner/work/captcha/captcha/packages/types/tsconfig.json'...
|
|
23
23
|
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/types@4.
|
|
2
|
+
> @prosopo/types@4.4.1 build
|
|
3
3
|
> npm run build:cross-env -- --mode ${NODE_ENV:-development}
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @prosopo/types@4.
|
|
6
|
+
> @prosopo/types@4.4.1 build:cross-env
|
|
7
7
|
> vite build --config vite.esm.config.ts --mode production
|
|
8
8
|
|
|
9
9
|
ViteEsmConfig: .
|
|
@@ -60,12 +60,12 @@ rendering chunks...
|
|
|
60
60
|
[2mdist/[22m[36mprovider/reasons.js [39m[1m[2m 2.61 kB[22m[1m[22m
|
|
61
61
|
[2mdist/[22m[36mprocaptcha/token.js [39m[1m[2m 2.90 kB[22m[1m[22m
|
|
62
62
|
[2mdist/[22m[36mapi/params.js [39m[1m[2m 2.95 kB[22m[1m[22m
|
|
63
|
-
[2mdist/[22m[36mdecisionMachine/index.js [39m[1m[2m 3.
|
|
63
|
+
[2mdist/[22m[36mdecisionMachine/index.js [39m[1m[2m 3.01 kB[22m[1m[22m
|
|
64
64
|
[2mdist/[22m[36mprovider/index.js [39m[1m[2m 3.60 kB[22m[1m[22m
|
|
65
65
|
[2mdist/[22m[36mdatasets/captcha.js [39m[1m[2m 4.29 kB[22m[1m[22m
|
|
66
|
-
[2mdist/[22m[36mclient/settings.js [39m[1m[2m 8.
|
|
67
|
-
[2mdist/[22m[36mprovider/database.js [39m[1m[2m 8.84 kB[22m[1m[22m
|
|
66
|
+
[2mdist/[22m[36mclient/settings.js [39m[1m[2m 8.40 kB[22m[1m[22m
|
|
68
67
|
[2mdist/[22m[36mconfig/config.js [39m[1m[2m 8.98 kB[22m[1m[22m
|
|
68
|
+
[2mdist/[22m[36mprovider/database.js [39m[1m[2m 9.51 kB[22m[1m[22m
|
|
69
69
|
[2mdist/[22m[36mindex.js [39m[1m[2m11.12 kB[22m[1m[22m
|
|
70
|
-
[2mdist/[22m[36mprovider/api.js [39m[1m[
|
|
71
|
-
[32m✓ built in
|
|
70
|
+
[2mdist/[22m[36mprovider/api.js [39m[1m[2m17.66 kB[22m[1m[22m
|
|
71
|
+
[32m✓ built in 565ms[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,69 @@
|
|
|
1
1
|
# @prosopo/types
|
|
2
2
|
|
|
3
|
+
## 4.4.1
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- f69724f: Expose `ipInfo` to the verify-phase decision machine. The frictionless DM already gets the full `IPInfoResponse`; the verify-phase DM was only receiving `countryCode`, so rules that need `isDatacenter`, `isVPN`, `isAbuser`, `asnNumber` etc. couldn't run at submission time.
|
|
7
|
+
|
|
8
|
+
`DecisionMachineInput` now carries an optional `ipInfo` field (alongside `countryCode`, which is kept for backwards compatibility). The three verify-phase call sites — `powTasks`, `puzzleTasks`, `imgCaptchaTasks` — forward `challengeRecord.ipInfo` / `solution.ipInfo` into the input.
|
|
9
|
+
|
|
10
|
+
This unblocks rules like:
|
|
11
|
+
```
|
|
12
|
+
if (input.behavioralDataPacked &&
|
|
13
|
+
!input.behavioralDataPacked.c1.length &&
|
|
14
|
+
!input.behavioralDataPacked.c2.length &&
|
|
15
|
+
!input.behavioralDataPacked.c3.length &&
|
|
16
|
+
input.ipInfo?.isDatacenter) return Deny;
|
|
17
|
+
```
|
|
18
|
+
which catches the datacenter-class bots (Sparkle, Versatel, OVH) that submit empty `behavioralDataPacked` — observed at 100% empty-bDP across a 21-row Sparkle sample, versus 1–3% in genuine traffic.
|
|
19
|
+
- 3973078: Track every lifecycle timestamp on every captcha type, and switch the dapp-verify recency check from issuance→verify to **submit→verify** with the window sourced from per-client settings.
|
|
20
|
+
|
|
21
|
+
### Lifecycle timestamps
|
|
22
|
+
|
|
23
|
+
`StoredCaptcha` (the base shared by PoW, Puzzle, and Image/UserCommitment) gains three new fields:
|
|
24
|
+
|
|
25
|
+
- `submittedAtTimestamp` — set once on the first user-submission write, never overwritten.
|
|
26
|
+
- `verifiedAtTimestamp` — set once when the dapp first calls /verify, never overwritten.
|
|
27
|
+
- `failedAtTimestamp` — set once on the first non-approved terminal state, never overwritten.
|
|
28
|
+
|
|
29
|
+
`lastUpdatedTimestamp` keeps its "last write of any kind" meaning. The new fields use `$ifNull` in aggregation-pipeline updates so the stamp lands only on the first transition — concurrent or repeat writes are no-ops on the lifecycle stamps.
|
|
30
|
+
|
|
31
|
+
### Submit→verify window
|
|
32
|
+
|
|
33
|
+
The dapp-verify recency check used to be `now - challengeTimestamp <= timeout`. The window was issuance→verify, which gave bots room to stockpile pre-solved solutions and redeem them many seconds (sometimes minutes) later from the time they reached the provider.
|
|
34
|
+
|
|
35
|
+
The check is now `now - challengeRecord.submittedAtTimestamp <= clientSettings.verifiedTimeout`. The window measures from the moment the user's solution actually arrived. Combined with the new lifecycle fields, this measurably tightens the stockpile attack surface — the data showed 1564 records / 21% on Twickets where a correct PoW was submitted but the dapp never verified, p99 issuance→submit of 31s on that cohort, and records up to 1.26 min.
|
|
36
|
+
|
|
37
|
+
### Settings move
|
|
38
|
+
|
|
39
|
+
`verifiedTimeout` moves to `ClientSettingsSchema` (per-client, operator-set via the portal). Default stays at 120000ms for back-compat; auto-submit dapps (Twickets et al.) should set it to ~10000ms.
|
|
40
|
+
|
|
41
|
+
Removed from request bodies entirely:
|
|
42
|
+
|
|
43
|
+
- `ServerPowCaptchaVerifyRequestBody`
|
|
44
|
+
- `ServerPuzzleCaptchaVerifyRequestBody`
|
|
45
|
+
- `SubmitPowCaptchaSolutionBody`
|
|
46
|
+
- `SubmitPuzzleCaptchaSolutionBody`
|
|
47
|
+
|
|
48
|
+
The client field was client-controlled and unsigned — any caller could raise the recency ceiling. It's now server-determined.
|
|
49
|
+
|
|
50
|
+
`ProviderApiInterface.submitPow/PuzzleCaptchaSolution` lose their `timeout` parameter (no longer forwarded). The verify wrappers keep their `recencyLimit` parameter for caller back-compat but the value is no longer transmitted; server reads from the client settings instead.
|
|
51
|
+
|
|
52
|
+
### Migration
|
|
53
|
+
|
|
54
|
+
Pre-PR records with `userSubmitted=true` but no `submittedAtTimestamp` will fail the new recency check. The submit window is short (120s default verifiedTimeout) so the migration cliff is naturally bounded — records in flight at deploy time expire within ~2 minutes.
|
|
55
|
+
|
|
56
|
+
348 provider unit tests + 28 database tests pass.
|
|
57
|
+
|
|
58
|
+
## 4.4.0
|
|
59
|
+
### Minor Changes
|
|
60
|
+
|
|
61
|
+
- bc3813d: Surface dnsEvent observations across the verify and frictionless flows. Each verify path now enriches the session's dnsEvent IPs once and passes the result to the traffic filter, decision machine, IP validation, and usage counters. Adds `scoreComponents.dnsAsymmetry` (Zod + TS interface + mongoose) computed from resolver / peer ipInfo plus path validity, with the score patched onto the session at DNS event ingest time so it weights subsequent reads. Adds `CounterDimension.peerIp` for rate-limit keys keyed on the dnsEvent peer IP.
|
|
62
|
+
|
|
63
|
+
### Patch Changes
|
|
64
|
+
|
|
65
|
+
- 4d05e3f: Add `ipInfo` and `parsedUserAgentInfo` to the Zod `UserCommitmentSchema` so the provider stops silently stripping them on the write path. Mirrors the existing fields on `PoWCaptchaStoredSchema` and `SessionSchema`.
|
|
66
|
+
|
|
3
67
|
## 4.3.1
|
|
4
68
|
### Patch Changes
|
|
5
69
|
|
package/dist/api/api.d.ts
CHANGED
|
@@ -10,14 +10,14 @@ export interface ProviderApiInterface {
|
|
|
10
10
|
submitCaptchaSolution(captchas: CaptchaSolution[], requestHash: string, userAccount: string, timestamp: string, providerRequestHashSignature: string, userRequestHashSignature: string, behavioralData?: string, simdReadings?: string, clientMetaData?: ClientMetaData): Promise<CaptchaSolutionResponse>;
|
|
11
11
|
verifyDappUser(token: ProcaptchaToken, signature: string, userAccount: string, maxVerifiedTime?: number): Promise<ImageVerificationResponse>;
|
|
12
12
|
getPowCaptchaChallenge(userAccount: string, dappAccount: string, sessionId?: string, simdReadings?: string): Promise<GetPowCaptchaResponse>;
|
|
13
|
-
submitPowCaptchaSolution(challenge: GetPowCaptchaResponse, userAccount: string, dappAccount: string, nonce: number, userTimestampSignature: string,
|
|
13
|
+
submitPowCaptchaSolution(challenge: GetPowCaptchaResponse, userAccount: string, dappAccount: string, nonce: number, userTimestampSignature: string, behavioralData?: string, salt?: string, simdReadings?: string, clientMetaData?: ClientMetaData): Promise<PowCaptchaSolutionResponse>;
|
|
14
14
|
getPuzzleCaptchaChallenge(userAccount: string, dappAccount: string, sessionId?: string, simdReadings?: string): Promise<GetPuzzleCaptchaResponse>;
|
|
15
15
|
submitPuzzleCaptchaSolution(challenge: GetPuzzleCaptchaResponse, userAccount: string, dappAccount: string, finalX: number, finalY: number, puzzleEvents: Array<{
|
|
16
16
|
x: number;
|
|
17
17
|
y: number;
|
|
18
18
|
t: number;
|
|
19
|
-
}>, userTimestampSignature: string,
|
|
20
|
-
submitPuzzleCaptchaVerify(token: string, signatureHex: string,
|
|
19
|
+
}>, userTimestampSignature: string, behavioralData?: string, salt?: string, simdReadings?: string, clientMetaData?: ClientMetaData): Promise<PuzzleCaptchaSolutionResponse>;
|
|
20
|
+
submitPuzzleCaptchaVerify(token: string, signatureHex: string, user: string, ip?: string, email?: string): Promise<VerificationResponse>;
|
|
21
21
|
submitUserEvents(events: StoredEvents, string: string): Promise<UpdateProviderClientsResponse>;
|
|
22
22
|
getProviderStatus(): Promise<ProviderRegistered>;
|
|
23
23
|
getProviderDetails(): Promise<Provider>;
|
package/dist/api/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACX,8BAA8B,EAC9B,4BAA4B,EAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EACX,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EACX,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,QAAQ,EACR,kBAAkB,EAClB,6BAA6B,EAC7B,cAAc,EACd,6BAA6B,EAC7B,oBAAoB,EACpB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,oBAAoB;IACpC,mBAAmB,CAClB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,EAC9B,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACnB,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,EAChC,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,cAAc,GAC7B,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,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACnB,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,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const z = require("zod");
|
|
4
|
+
const timeouts = require("../config/timeouts.cjs");
|
|
4
5
|
const captchaType = require("./captchaType/captchaType.cjs");
|
|
5
6
|
const captchaTypeSpec = require("./captchaType/captchaTypeSpec.cjs");
|
|
6
7
|
const captchaTypeDefault = captchaType.CaptchaType.frictionless;
|
|
@@ -144,6 +145,8 @@ const HoneypotSettingsSchema = z.object({
|
|
|
144
145
|
const ClientSettingsSchema = z.object({
|
|
145
146
|
captchaType: captchaTypeSpec.CaptchaTypeSpec.optional().default(captchaTypeDefault),
|
|
146
147
|
domains: z.array(z.string()).min(1),
|
|
148
|
+
// Maximum ms between user submission and the dapp's /verify call.
|
|
149
|
+
verifiedTimeout: z.number().int().min(1e3).max(6e5).optional().default(timeouts.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT),
|
|
147
150
|
frictionlessThreshold: z.number().min(0).max(1).optional().default(frictionlessThresholdDefault),
|
|
148
151
|
powDifficulty: z.number().int().positive().min(1).max(10).optional().default(powDifficultyDefault),
|
|
149
152
|
imageThreshold: z.number().min(0).max(1).optional().default(imageThresholdDefault),
|
|
@@ -46,7 +46,7 @@ const COUNTER_WINDOW_SECONDS = {
|
|
|
46
46
|
"24h": 86400
|
|
47
47
|
};
|
|
48
48
|
const COUNTER_KINDS = ["served", "solved"];
|
|
49
|
-
const COUNTER_DIMENSIONS = ["ip", "userAccount"];
|
|
49
|
+
const COUNTER_DIMENSIONS = ["ip", "userAccount", "peerIp"];
|
|
50
50
|
const COUNTER_CAPTCHA_ANY = "any";
|
|
51
51
|
const CounterSpecSchema = z.z.object({
|
|
52
52
|
kind: z.z.enum(COUNTER_KINDS),
|
|
@@ -242,7 +242,6 @@ const VerifySolutionBody = z.object({
|
|
|
242
242
|
const ServerPowCaptchaVerifyRequestBody = z.object({
|
|
243
243
|
[params.ApiParams.token]: token.ProcaptchaTokenSpec,
|
|
244
244
|
[params.ApiParams.dappSignature]: z.string(),
|
|
245
|
-
[params.ApiParams.verifiedTimeout]: z.number().optional().default(timeouts.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT),
|
|
246
245
|
[params.ApiParams.ip]: z.string().optional(),
|
|
247
246
|
[params.ApiParams.email]: z.string().email().optional()
|
|
248
247
|
});
|
|
@@ -291,7 +290,6 @@ const SubmitPowCaptchaSolutionBody = z.object({
|
|
|
291
290
|
[params.ApiParams.user]: z.string(),
|
|
292
291
|
[params.ApiParams.dapp]: z.string(),
|
|
293
292
|
[params.ApiParams.nonce]: z.number(),
|
|
294
|
-
[params.ApiParams.verifiedTimeout]: z.number().optional().default(timeouts.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT),
|
|
295
293
|
[params.ApiParams.behavioralData]: z.string().optional(),
|
|
296
294
|
[params.ApiParams.salt]: z.string().optional(),
|
|
297
295
|
[params.ApiParams.simdReadings]: z.string().optional(),
|
|
@@ -331,7 +329,6 @@ const SubmitPuzzleCaptchaSolutionBody = z.object({
|
|
|
331
329
|
}),
|
|
332
330
|
[params.ApiParams.user]: z.string(),
|
|
333
331
|
[params.ApiParams.dapp]: z.string(),
|
|
334
|
-
[params.ApiParams.verifiedTimeout]: z.number().optional().default(timeouts.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT),
|
|
335
332
|
[params.ApiParams.behavioralData]: z.string().optional(),
|
|
336
333
|
[params.ApiParams.salt]: z.string().optional(),
|
|
337
334
|
[params.ApiParams.simdReadings]: z.string().optional(),
|
|
@@ -340,7 +337,6 @@ const SubmitPuzzleCaptchaSolutionBody = z.object({
|
|
|
340
337
|
const ServerPuzzleCaptchaVerifyRequestBody = z.object({
|
|
341
338
|
[params.ApiParams.token]: token.ProcaptchaTokenSpec,
|
|
342
339
|
[params.ApiParams.dappSignature]: z.string(),
|
|
343
|
-
[params.ApiParams.verifiedTimeout]: z.number().optional().default(timeouts.DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT),
|
|
344
340
|
[params.ApiParams.ip]: z.string().optional(),
|
|
345
341
|
[params.ApiParams.email]: z.string().email().optional()
|
|
346
342
|
});
|
|
@@ -64,8 +64,18 @@ const UserCommitmentSchema = z.object({
|
|
|
64
64
|
ja4: z.string(),
|
|
65
65
|
userSubmitted: z.boolean(),
|
|
66
66
|
serverChecked: z.boolean(),
|
|
67
|
+
// The full ipinfo payload — optional and not validated nominally
|
|
68
|
+
// because IPInfoResponse is a discriminated union and consumers
|
|
69
|
+
// only need to narrow at read time. Mirrors PoWCaptchaStoredSchema.
|
|
70
|
+
// Omitting these dropped enrichment on every commitment because Zod
|
|
71
|
+
// strips unknown keys by default.
|
|
72
|
+
ipInfo: z.any().optional(),
|
|
73
|
+
parsedUserAgentInfo: z.any().optional(),
|
|
67
74
|
storedAtTimestamp: z.date().optional(),
|
|
68
75
|
requestedAtTimestamp: z.date(),
|
|
76
|
+
submittedAtTimestamp: z.date().optional(),
|
|
77
|
+
verifiedAtTimestamp: z.date().optional(),
|
|
78
|
+
failedAtTimestamp: z.date().optional(),
|
|
69
79
|
lastUpdatedTimestamp: z.date().optional(),
|
|
70
80
|
pendingStage: z.boolean().optional(),
|
|
71
81
|
sessionId: z.string().optional(),
|
|
@@ -93,7 +103,8 @@ const ScoreComponentsSchema = z.object({
|
|
|
93
103
|
unverifiedHost: z.number().optional(),
|
|
94
104
|
webView: z.number().optional(),
|
|
95
105
|
triggeredDetectors: z.array(z.number()).optional(),
|
|
96
|
-
shadowDomPenalty: z.boolean().optional()
|
|
106
|
+
shadowDomPenalty: z.boolean().optional(),
|
|
107
|
+
dnsAsymmetry: z.number().optional()
|
|
97
108
|
});
|
|
98
109
|
const SimdOpReadingRecordSchema = z.object({
|
|
99
110
|
name: z.string(),
|
|
@@ -199,6 +210,9 @@ const PoWCaptchaStoredSchema = z.object({
|
|
|
199
210
|
// From StoredCaptcha
|
|
200
211
|
result: CaptchaResultSchema,
|
|
201
212
|
requestedAtTimestamp: z.date(),
|
|
213
|
+
submittedAtTimestamp: z.date().optional(),
|
|
214
|
+
verifiedAtTimestamp: z.date().optional(),
|
|
215
|
+
failedAtTimestamp: z.date().optional(),
|
|
202
216
|
ipAddress: CompositeIpAddressSchema,
|
|
203
217
|
providedIp: CompositeIpAddressSchema.optional(),
|
|
204
218
|
metadata: StoredCaptchaMetadataSchema.optional(),
|
|
@@ -366,6 +366,7 @@ export type IHoneypotSettings = output<typeof HoneypotSettingsSchema>;
|
|
|
366
366
|
export declare const ClientSettingsSchema: z.ZodObject<{
|
|
367
367
|
captchaType: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof CaptchaType>>>;
|
|
368
368
|
domains: z.ZodArray<z.ZodString, "many">;
|
|
369
|
+
verifiedTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
369
370
|
frictionlessThreshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
370
371
|
powDifficulty: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
371
372
|
imageThreshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
@@ -609,6 +610,7 @@ export declare const ClientSettingsSchema: z.ZodObject<{
|
|
|
609
610
|
}, "strip", z.ZodTypeAny, {
|
|
610
611
|
captchaType: CaptchaType;
|
|
611
612
|
domains: string[];
|
|
613
|
+
verifiedTimeout: number;
|
|
612
614
|
frictionlessThreshold: number;
|
|
613
615
|
powDifficulty: number;
|
|
614
616
|
imageThreshold: number;
|
|
@@ -680,6 +682,7 @@ export declare const ClientSettingsSchema: z.ZodObject<{
|
|
|
680
682
|
}, {
|
|
681
683
|
domains: string[];
|
|
682
684
|
captchaType?: CaptchaType | undefined;
|
|
685
|
+
verifiedTimeout?: number | undefined;
|
|
683
686
|
frictionlessThreshold?: number | undefined;
|
|
684
687
|
powDifficulty?: number | undefined;
|
|
685
688
|
imageThreshold?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/client/settings.ts"],"names":[],"mappings":"AAaA,OAAO,EAAkC,KAAK,MAAM,EAAU,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/client/settings.ts"],"names":[],"mappings":"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"}
|
package/dist/client/settings.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z, object, boolean, number, string, array } from "zod";
|
|
2
|
+
import { DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT } from "../config/timeouts.js";
|
|
2
3
|
import { CaptchaType } from "./captchaType/captchaType.js";
|
|
3
4
|
import { CaptchaTypeSpec } from "./captchaType/captchaTypeSpec.js";
|
|
4
5
|
const captchaTypeDefault = CaptchaType.frictionless;
|
|
@@ -142,6 +143,8 @@ const HoneypotSettingsSchema = object({
|
|
|
142
143
|
const ClientSettingsSchema = object({
|
|
143
144
|
captchaType: CaptchaTypeSpec.optional().default(captchaTypeDefault),
|
|
144
145
|
domains: array(string()).min(1),
|
|
146
|
+
// Maximum ms between user submission and the dapp's /verify call.
|
|
147
|
+
verifiedTimeout: number().int().min(1e3).max(6e5).optional().default(DEFAULT_POW_CAPTCHA_VERIFIED_TIMEOUT),
|
|
145
148
|
frictionlessThreshold: number().min(0).max(1).optional().default(frictionlessThresholdDefault),
|
|
146
149
|
powDifficulty: number().int().positive().min(1).max(10).optional().default(powDifficultyDefault),
|
|
147
150
|
imageThreshold: number().min(0).max(1).optional().default(imageThresholdDefault),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/client/settings.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/client/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import type { IPInfoResponse } from "../api/ipapi.js";
|
|
2
3
|
import { CaptchaType } from "../client/captchaType/captchaType.js";
|
|
3
4
|
import type { RequestHeaders } from "../provider/api.js";
|
|
5
|
+
export type EnrichedDnsEvent = {
|
|
6
|
+
peerIp?: string;
|
|
7
|
+
resolverIp?: string;
|
|
8
|
+
pathValid?: boolean;
|
|
9
|
+
peerIpInfo?: IPInfoResponse;
|
|
10
|
+
resolverIpInfo?: IPInfoResponse;
|
|
11
|
+
};
|
|
4
12
|
export declare enum DecisionMachineRuntime {
|
|
5
13
|
Node = "node"
|
|
6
14
|
}
|
|
@@ -32,6 +40,8 @@ export type DecisionMachineInput = {
|
|
|
32
40
|
behavioralDataPacked?: DecisionMachineBehavioralDataPacked;
|
|
33
41
|
deviceCapability?: string;
|
|
34
42
|
countryCode?: string;
|
|
43
|
+
ipInfo?: IPInfoResponse;
|
|
44
|
+
dnsEvent?: EnrichedDnsEvent;
|
|
35
45
|
};
|
|
36
46
|
export type DecisionMachineOutput = {
|
|
37
47
|
decision: DecisionMachineDecision;
|
|
@@ -95,7 +105,7 @@ export type CounterWindow = (typeof COUNTER_WINDOWS)[number];
|
|
|
95
105
|
export declare const COUNTER_WINDOW_SECONDS: Record<CounterWindow, number>;
|
|
96
106
|
export declare const COUNTER_KINDS: readonly ["served", "solved"];
|
|
97
107
|
export type CounterKind = (typeof COUNTER_KINDS)[number];
|
|
98
|
-
export declare const COUNTER_DIMENSIONS: readonly ["ip", "userAccount"];
|
|
108
|
+
export declare const COUNTER_DIMENSIONS: readonly ["ip", "userAccount", "peerIp"];
|
|
99
109
|
export type CounterDimension = (typeof COUNTER_DIMENSIONS)[number];
|
|
100
110
|
export declare const COUNTER_CAPTCHA_ANY: "any";
|
|
101
111
|
export type CounterCaptchaType = CaptchaType.pow | CaptchaType.image | CaptchaType.puzzle | typeof COUNTER_CAPTCHA_ANY;
|
|
@@ -108,17 +118,17 @@ export interface CounterSpec {
|
|
|
108
118
|
export declare const CounterSpecSchema: z.ZodObject<{
|
|
109
119
|
kind: z.ZodEnum<["served", "solved"]>;
|
|
110
120
|
captchaType: z.ZodUnion<[z.ZodLiteral<CaptchaType.pow>, z.ZodLiteral<CaptchaType.image>, z.ZodLiteral<CaptchaType.puzzle>, z.ZodLiteral<"any">]>;
|
|
111
|
-
dimension: z.ZodEnum<["ip", "userAccount"]>;
|
|
121
|
+
dimension: z.ZodEnum<["ip", "userAccount", "peerIp"]>;
|
|
112
122
|
window: z.ZodEnum<["1m", "10m", "1h", "3h", "6h", "24h"]>;
|
|
113
123
|
}, "strip", z.ZodTypeAny, {
|
|
114
124
|
captchaType: CaptchaType.image | CaptchaType.pow | CaptchaType.puzzle | "any";
|
|
115
125
|
kind: "solved" | "served";
|
|
116
|
-
dimension: "ip" | "userAccount";
|
|
126
|
+
dimension: "ip" | "userAccount" | "peerIp";
|
|
117
127
|
window: "1m" | "10m" | "1h" | "3h" | "6h" | "24h";
|
|
118
128
|
}, {
|
|
119
129
|
captchaType: CaptchaType.image | CaptchaType.pow | CaptchaType.puzzle | "any";
|
|
120
130
|
kind: "solved" | "served";
|
|
121
|
-
dimension: "ip" | "userAccount";
|
|
131
|
+
dimension: "ip" | "userAccount" | "peerIp";
|
|
122
132
|
window: "1m" | "10m" | "1h" | "3h" | "6h" | "24h";
|
|
123
133
|
}>;
|
|
124
134
|
export declare const encodeCounterKey: (dappAccount: string, spec: CounterSpec, value: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decisionMachine/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACN,WAAW,EAEX,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,oBAAY,sBAAsB;IACjC,IAAI,SAAS;CACb;AAcD,oBAAY,oBAAoB;IAC/B,MAAM,WAAW;IACjB,IAAI,SAAS;CACb;AAED,oBAAY,uBAAuB;IAClC,UAAU,OAAO;IACjB,UAAU,OAAO;CACjB;AAED,oBAAY,uBAAuB;IAClC,KAAK,UAAU;IACf,IAAI,SAAS;CACb;AAED,MAAM,MAAM,mCAAmC,GAAG;IACjD,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,WAAW,CAAC,EAAE,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;IACvE,oBAAoB,CAAC,EAAE,mCAAmC,CAAC;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decisionMachine/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACN,WAAW,EAEX,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,oBAAY,sBAAsB;IACjC,IAAI,SAAS;CACb;AAcD,oBAAY,oBAAoB;IAC/B,MAAM,WAAW;IACjB,IAAI,SAAS;CACb;AAED,oBAAY,uBAAuB;IAClC,UAAU,OAAO;IACjB,UAAU,OAAO;CACjB;AAED,oBAAY,uBAAuB;IAClC,KAAK,UAAU;IACf,IAAI,SAAS;CACb;AAED,MAAM,MAAM,mCAAmC,GAAG;IACjD,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,WAAW,CAAC,EAAE,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;IACvE,oBAAoB,CAAC,EAAE,mCAAmC,CAAC;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAMrB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GACnC,WAAW,CAAC,GAAG,GACf,WAAW,CAAC,KAAK,GACjB,WAAW,CAAC,MAAM,CAAC;AAItB,MAAM,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAE,sBAAsB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,0BAA0B,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAKtC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;EAQtC,CAAC;AASH,eAAO,MAAM,eAAe,iDAAkD,CAAC;AAC/E,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAOhE,CAAC;AAEF,eAAO,MAAM,aAAa,+BAAgC,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,kBAAkB,0CAA2C,CAAC;AAC3E,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,eAAO,MAAM,mBAAmB,OAAiB,CAAC;AAClD,MAAM,MAAM,kBAAkB,GAC3B,WAAW,CAAC,GAAG,GACf,WAAW,CAAC,KAAK,GACjB,WAAW,CAAC,MAAM,GAClB,OAAO,mBAAmB,CAAC;AAE9B,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,kBAAkB,CAAC;IAChC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAU5B,CAAC;AAEH,eAAO,MAAM,gBAAgB,gBACf,MAAM,QACb,WAAW,SACV,MAAM,KACX,MAC6F,CAAC;AAEjG,MAAM,WAAW,sBAAsB;IACtC,WAAW,EAAE,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,mCAAmC,CAAC;CAC3D;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACvC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,sBAAsB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,sBAAsB,CAAC;IACjC,GAAG,EAAE,wBAAwB,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IACnE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACpC,WAAW,EAAE,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EAQrC,CAAC"}
|
|
@@ -44,7 +44,7 @@ const COUNTER_WINDOW_SECONDS = {
|
|
|
44
44
|
"24h": 86400
|
|
45
45
|
};
|
|
46
46
|
const COUNTER_KINDS = ["served", "solved"];
|
|
47
|
-
const COUNTER_DIMENSIONS = ["ip", "userAccount"];
|
|
47
|
+
const COUNTER_DIMENSIONS = ["ip", "userAccount", "peerIp"];
|
|
48
48
|
const COUNTER_CAPTCHA_ANY = "any";
|
|
49
49
|
const CounterSpecSchema = z.object({
|
|
50
50
|
kind: z.enum(COUNTER_KINDS),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decisionMachine/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decisionMachine/index.ts"],"names":[],"mappings":"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"}
|