@prosopo/types-database 3.0.13 → 3.3.13

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 (37) hide show
  1. package/CHANGELOG.md +332 -0
  2. package/dist/cjs/index.cjs +5 -1
  3. package/dist/cjs/types/captcha.cjs +3 -14
  4. package/dist/cjs/types/client.cjs +70 -4
  5. package/dist/cjs/types/index.cjs +5 -1
  6. package/dist/cjs/types/provider.cjs +102 -51
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +8 -4
  10. package/dist/index.js.map +1 -0
  11. package/dist/provider/pendingCaptchaRequest.d.ts +14 -0
  12. package/dist/provider/pendingCaptchaRequest.d.ts.map +1 -0
  13. package/dist/provider/pendingCaptchaRequest.js +2 -0
  14. package/dist/provider/pendingCaptchaRequest.js.map +1 -0
  15. package/dist/types/captcha.d.ts +18 -0
  16. package/dist/types/captcha.d.ts.map +1 -0
  17. package/dist/types/captcha.js +4 -15
  18. package/dist/types/captcha.js.map +1 -0
  19. package/dist/types/client.d.ts +259 -0
  20. package/dist/types/client.d.ts.map +1 -0
  21. package/dist/types/client.js +70 -4
  22. package/dist/types/client.js.map +1 -0
  23. package/dist/types/index.d.ts +6 -0
  24. package/dist/types/index.d.ts.map +1 -0
  25. package/dist/types/index.js +8 -4
  26. package/dist/types/index.js.map +1 -0
  27. package/dist/types/mongo.d.ts +13 -0
  28. package/dist/types/mongo.d.ts.map +1 -0
  29. package/dist/types/mongo.js.map +1 -0
  30. package/dist/types/provider.d.ts +667 -0
  31. package/dist/types/provider.d.ts.map +1 -0
  32. package/dist/types/provider.js +106 -55
  33. package/dist/types/provider.js.map +1 -0
  34. package/dist/types/userAgent.d.ts +31 -0
  35. package/dist/types/userAgent.d.ts.map +1 -0
  36. package/dist/types/userAgent.js.map +1 -0
  37. package/package.json +15 -20
@@ -1,7 +1,7 @@
1
1
  import { TranslationKeysSchema } from "@prosopo/locale";
2
- import { Tier, CaptchaStatus, TimestampSchema, CaptchaSolutionSchema, ScheduledTaskStatus, ScheduledTaskNames, CaptchaType } from "@prosopo/types";
3
- import mongoose, { Schema } from "mongoose";
4
- import { object, string, nativeEnum, union, instanceof as _instanceof, boolean, bigint, array, any } from "zod";
2
+ import { Tier, CaptchaStatus, CaptchaSolutionSchema, ScheduledTaskStatus, ScheduledTaskNames, CaptchaType } from "@prosopo/types";
3
+ import { Schema } from "mongoose";
4
+ import { object, nativeEnum, bigint, string, array, number, date, boolean, any } from "zod";
5
5
  import { UserSettingsSchema } from "./client.js";
6
6
  const ONE_HOUR = 60 * 60;
7
7
  const ONE_DAY = ONE_HOUR * 24;
@@ -14,6 +14,40 @@ const ClientRecordSchema = new Schema({
14
14
  tier: { type: String, enum: Tier, required: true }
15
15
  });
16
16
  ClientRecordSchema.index({ account: 1 });
17
+ var IpAddressType = /* @__PURE__ */ ((IpAddressType2) => {
18
+ IpAddressType2["v4"] = "v4";
19
+ IpAddressType2["v6"] = "v6";
20
+ return IpAddressType2;
21
+ })(IpAddressType || {});
22
+ const CompositeIpAddressSchema = object({
23
+ lower: bigint(),
24
+ upper: bigint().optional(),
25
+ type: nativeEnum(IpAddressType)
26
+ });
27
+ const CompositeIpAddressRecordSchemaObj = {
28
+ lower: {
29
+ // INT64 isn't enough capable - it reserves extra bits for the sign bit, etc, so Decimal128 guarantees no overflow
30
+ type: Schema.Types.Decimal128,
31
+ required: true,
32
+ // without casting to string Mongoose not able to set bigint to Decimal128
33
+ set: (value) => "bigint" === typeof value ? value.toString() : value
34
+ },
35
+ upper: {
36
+ // INT64 isn't enough capable - it reserves extra bits for the sign bit, etc, so Decimal128 guarantees no overflow
37
+ type: Schema.Types.Decimal128,
38
+ required: false,
39
+ // without casting to string Mongoose not able to set bigint to Decimal128
40
+ set: (value) => "bigint" === typeof value ? value.toString() : value
41
+ },
42
+ type: { type: String, enum: IpAddressType, required: true }
43
+ };
44
+ const parseMongooseCompositeIpAddress = (ip) => {
45
+ return {
46
+ lower: BigInt(ip.lower.$numberDecimal ?? ip.lower),
47
+ upper: ip.upper ? BigInt(ip.upper?.$numberDecimal ?? ip.upper) : void 0,
48
+ type: ip.type
49
+ };
50
+ };
17
51
  const CaptchaResultSchema = object({
18
52
  status: nativeEnum(CaptchaStatus),
19
53
  reason: TranslationKeysSchema.optional(),
@@ -27,18 +61,17 @@ const UserCommitmentSchema = object({
27
61
  id: string(),
28
62
  result: CaptchaResultSchema,
29
63
  userSignature: string(),
30
- ipAddress: bigint(),
64
+ ipAddress: CompositeIpAddressSchema,
65
+ providedIp: CompositeIpAddressSchema.optional(),
31
66
  headers: object({}).catchall(string()),
32
67
  ja4: string(),
33
68
  userSubmitted: boolean(),
34
69
  serverChecked: boolean(),
35
- storedAtTimestamp: TimestampSchema.optional(),
36
- requestedAtTimestamp: TimestampSchema,
37
- lastUpdatedTimestamp: TimestampSchema.optional(),
38
- frictionlessTokenId: union([
39
- string(),
40
- _instanceof(mongoose.Types.ObjectId)
41
- ]).optional()
70
+ storedAtTimestamp: date().optional(),
71
+ requestedAtTimestamp: date(),
72
+ lastUpdatedTimestamp: date().optional(),
73
+ sessionId: string().optional(),
74
+ coords: array(array(array(number()))).optional()
42
75
  });
43
76
  const CaptchaRecordSchema = new Schema({
44
77
  captchaId: { type: String, required: true },
@@ -70,8 +103,8 @@ const PoWCaptchaRecordSchema = new Schema({
70
103
  challenge: { type: String, required: true },
71
104
  dappAccount: { type: String, required: true },
72
105
  userAccount: { type: String, required: true },
73
- requestedAtTimestamp: { type: Number, required: true },
74
- lastUpdatedTimestamp: { type: Number, required: false },
106
+ requestedAtTimestamp: { type: Date, required: true },
107
+ lastUpdatedTimestamp: { type: Date, required: false },
75
108
  result: {
76
109
  status: { type: String, enum: CaptchaStatus, required: true },
77
110
  reason: {
@@ -82,7 +115,11 @@ const PoWCaptchaRecordSchema = new Schema({
82
115
  error: { type: String, required: false }
83
116
  },
84
117
  difficulty: { type: Number, required: true },
85
- ipAddress: { type: BigInt, required: true },
118
+ ipAddress: CompositeIpAddressRecordSchemaObj,
119
+ providedIp: {
120
+ type: new Schema(CompositeIpAddressRecordSchemaObj, { _id: false }),
121
+ required: false
122
+ },
86
123
  headers: { type: Object, required: true },
87
124
  ja4: { type: String, required: true },
88
125
  userSignature: { type: String, required: false },
@@ -92,15 +129,17 @@ const PoWCaptchaRecordSchema = new Schema({
92
129
  geolocation: { type: String, required: false },
93
130
  vpn: { type: Boolean, required: false },
94
131
  parsedUserAgentInfo: { type: Object, required: false },
95
- frictionlessTokenId: {
96
- type: mongoose.Schema.Types.ObjectId,
132
+ sessionId: {
133
+ type: String,
97
134
  required: false
98
- }
135
+ },
136
+ coords: { type: [[[Number]]], required: false }
99
137
  });
100
138
  PoWCaptchaRecordSchema.index({ challenge: 1 });
101
- PoWCaptchaRecordSchema.index({ storedAtTimestamp: 1 });
102
139
  PoWCaptchaRecordSchema.index({ storedAtTimestamp: 1, lastUpdatedTimestamp: 1 });
103
140
  PoWCaptchaRecordSchema.index({ dappAccount: 1, requestedAtTimestamp: 1 });
141
+ PoWCaptchaRecordSchema.index({ "ipAddress.lower": 1 });
142
+ PoWCaptchaRecordSchema.index({ "ipAddress.upper": 1 });
104
143
  const UserCommitmentRecordSchema = new Schema({
105
144
  userAccount: { type: String, required: true },
106
145
  dappAccount: { type: String, required: true },
@@ -116,30 +155,36 @@ const UserCommitmentRecordSchema = new Schema({
116
155
  },
117
156
  error: { type: String, required: false }
118
157
  },
119
- ipAddress: { type: BigInt, required: true },
158
+ ipAddress: CompositeIpAddressRecordSchemaObj,
159
+ providedIp: {
160
+ type: new Schema(CompositeIpAddressRecordSchemaObj, { _id: false }),
161
+ required: false
162
+ },
120
163
  headers: { type: Object, required: true },
121
164
  ja4: { type: String, required: true },
122
165
  userSignature: { type: String, required: true },
123
166
  userSubmitted: { type: Boolean, required: true },
124
167
  serverChecked: { type: Boolean, required: true },
125
- storedAtTimestamp: { type: Number, required: false },
126
- requestedAtTimestamp: { type: Number, required: true },
127
- lastUpdatedTimestamp: { type: Number, required: false },
168
+ storedAtTimestamp: { type: Date, required: false, expires: ONE_MONTH },
169
+ requestedAtTimestamp: { type: Date, required: true },
170
+ lastUpdatedTimestamp: { type: Date, required: false },
128
171
  geolocation: { type: String, required: false },
129
172
  vpn: { type: Boolean, required: false },
130
173
  parsedUserAgentInfo: { type: Object, required: false },
131
- frictionlessTokenId: {
132
- type: mongoose.Schema.Types.ObjectId,
174
+ sessionId: {
175
+ type: String,
133
176
  required: false
134
- }
177
+ },
178
+ coords: { type: [[[Number]]], required: false }
135
179
  });
136
180
  UserCommitmentRecordSchema.index({ id: -1 });
137
- UserCommitmentRecordSchema.index({ storedAtTimestamp: 1 });
138
181
  UserCommitmentRecordSchema.index({
139
182
  storedAtTimestamp: 1,
140
183
  lastUpdatedTimestamp: 1
141
184
  });
142
185
  UserCommitmentRecordSchema.index({ userAccount: 1, dappAccount: 1 });
186
+ UserCommitmentRecordSchema.index({ "ipAddress.lower": 1 });
187
+ UserCommitmentRecordSchema.index({ "ipAddress.upper": 1 });
143
188
  const DatasetRecordSchema = new Schema({
144
189
  contentTree: { type: [[String]], required: true },
145
190
  datasetContentId: { type: String, required: true },
@@ -160,7 +205,8 @@ SolutionRecordSchema.index({ captchaId: 1 });
160
205
  const UserSolutionSchema = CaptchaSolutionSchema.extend({
161
206
  processed: boolean(),
162
207
  checked: boolean(),
163
- commitmentId: string()
208
+ commitmentId: string(),
209
+ createdAt: date()
164
210
  });
165
211
  const UserSolutionRecordSchema = new Schema(
166
212
  {
@@ -170,7 +216,8 @@ const UserSolutionRecordSchema = new Schema(
170
216
  solution: [{ type: String, required: true }],
171
217
  processed: { type: Boolean, required: true },
172
218
  checked: { type: Boolean, required: true },
173
- commitmentId: { type: String, required: true }
219
+ commitmentId: { type: String, required: true },
220
+ createdAt: { type: Date, default: Date.now, expires: ONE_MONTH }
174
221
  },
175
222
  { _id: false }
176
223
  );
@@ -187,9 +234,9 @@ const PendingRecordSchema = new Schema({
187
234
  deadlineTimestamp: { type: Number, required: true },
188
235
  // unix timestamp
189
236
  requestedAtTimestamp: { type: Date, required: true, expires: ONE_WEEK },
190
- ipAddress: { type: BigInt, required: true },
191
- frictionlessTokenId: {
192
- type: mongoose.Schema.Types.ObjectId,
237
+ ipAddress: CompositeIpAddressRecordSchemaObj,
238
+ sessionId: {
239
+ type: String,
193
240
  required: false
194
241
  },
195
242
  threshold: { type: Number, required: true, default: 0.8 }
@@ -197,8 +244,8 @@ const PendingRecordSchema = new Schema({
197
244
  PendingRecordSchema.index({ requestHash: -1 });
198
245
  const ScheduledTaskSchema = object({
199
246
  processName: nativeEnum(ScheduledTaskNames),
200
- datetime: TimestampSchema,
201
- updated: TimestampSchema.optional(),
247
+ datetime: date(),
248
+ updated: date().optional(),
202
249
  status: nativeEnum(ScheduledTaskStatus),
203
250
  result: object({
204
251
  data: any().optional(),
@@ -208,7 +255,7 @@ const ScheduledTaskSchema = object({
208
255
  const ScheduledTaskRecordSchema = new Schema({
209
256
  processName: { type: String, enum: ScheduledTaskNames, required: true },
210
257
  datetime: { type: Date, required: true, expires: ONE_WEEK },
211
- updated: { type: Number, required: false },
258
+ updated: { type: Date, required: false },
212
259
  status: { type: String, enum: ScheduledTaskStatus, required: true },
213
260
  result: {
214
261
  type: new Schema(
@@ -224,7 +271,9 @@ const ScheduledTaskRecordSchema = new Schema({
224
271
  ScheduledTaskRecordSchema.index({ processName: 1 });
225
272
  ScheduledTaskRecordSchema.index({ processName: 1, status: 1 });
226
273
  ScheduledTaskRecordSchema.index({ _id: 1, status: 1 });
227
- const FrictionlessTokenRecordSchema = new Schema({
274
+ const SessionRecordSchema = new Schema({
275
+ sessionId: { type: String, required: true },
276
+ createdAt: { type: Date, required: true },
228
277
  token: { type: String, required: true, unique: true },
229
278
  score: { type: Number, required: true },
230
279
  threshold: { type: Number, required: true },
@@ -232,41 +281,42 @@ const FrictionlessTokenRecordSchema = new Schema({
232
281
  baseScore: { type: Number, required: true },
233
282
  lScore: { type: Number, required: false },
234
283
  timeout: { type: Number, required: false },
235
- accessPolicy: { type: Number, required: false }
236
- },
237
- createdAt: { type: Date, default: Date.now, expires: ONE_DAY },
238
- storedAtTimestamp: { type: Date, required: false },
239
- lastUpdatedTimestamp: { type: Date, required: false }
240
- });
241
- FrictionlessTokenRecordSchema.index({ token: 1 }, { unique: true });
242
- FrictionlessTokenRecordSchema.index({ storedAtTimestamp: 1 });
243
- const SessionRecordSchema = new Schema({
244
- sessionId: { type: String, required: true, unique: true },
245
- createdAt: { type: Date, required: true, expires: ONE_DAY },
246
- tokenId: {
247
- type: mongoose.Schema.Types.ObjectId
284
+ accessPolicy: { type: Number, required: false },
285
+ unverifiedHost: { type: Number, required: false },
286
+ webView: { type: Number, required: false }
248
287
  },
288
+ providerSelectEntropy: { type: Number, required: true },
289
+ ipAddress: CompositeIpAddressRecordSchemaObj,
249
290
  captchaType: { type: String, enum: CaptchaType, required: true },
250
- storedAtTimestamp: { type: Date, required: false },
291
+ solvedImagesCount: { type: Number, required: false },
292
+ powDifficulty: { type: Number, required: false },
293
+ storedAtTimestamp: { type: Date, required: false, expires: ONE_DAY },
251
294
  lastUpdatedTimestamp: { type: Date, required: false },
252
- deleted: { type: Boolean, required: false }
295
+ deleted: { type: Boolean, required: false },
296
+ webView: { type: Boolean, required: true, default: false },
297
+ iFrame: { type: Boolean, required: true, default: false },
298
+ decryptedHeadHash: { type: String, required: false, default: "" }
253
299
  });
254
- SessionRecordSchema.index({ sessionId: 1 }, { unique: true });
255
- SessionRecordSchema.index({ storedAtTimestamp: 1 });
300
+ SessionRecordSchema.index({ createdAt: 1 });
256
301
  SessionRecordSchema.index({ deleted: 1 });
302
+ SessionRecordSchema.index({ sessionId: 1 }, { unique: true });
303
+ SessionRecordSchema.index({ providerSelectEntropy: 1 });
304
+ SessionRecordSchema.index({ token: 1 });
257
305
  const DetectorRecordSchema = new Schema({
258
306
  createdAt: { type: Date, required: true },
259
307
  detectorKey: { type: String, required: true },
260
- expiresAt: { type: Date, required: false, expires: 0 }
308
+ expiresAt: { type: Date, required: false }
261
309
  });
262
310
  DetectorRecordSchema.index({ createdAt: 1 }, { unique: true });
263
311
  DetectorRecordSchema.index({ expiresAt: 1 }, { expireAfterSeconds: 0 });
264
312
  export {
265
313
  CaptchaRecordSchema,
266
314
  ClientRecordSchema,
315
+ CompositeIpAddressRecordSchemaObj,
316
+ CompositeIpAddressSchema,
267
317
  DatasetRecordSchema,
268
318
  DetectorRecordSchema,
269
- FrictionlessTokenRecordSchema,
319
+ IpAddressType,
270
320
  PendingRecordSchema,
271
321
  PoWCaptchaRecordSchema,
272
322
  ScheduledTaskRecordSchema,
@@ -277,5 +327,6 @@ export {
277
327
  UserCommitmentSchema,
278
328
  UserCommitmentWithSolutionsSchema,
279
329
  UserSolutionRecordSchema,
280
- UserSolutionSchema
330
+ UserSolutionSchema,
331
+ parseMongooseCompositeIpAddress
281
332
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/types/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export interface BrowserInfo {
2
+ name: string;
3
+ version?: string;
4
+ major?: string;
5
+ type?: string;
6
+ }
7
+ export interface CPUInfo {
8
+ architecture?: string;
9
+ }
10
+ export interface DeviceInfo {
11
+ vendor?: string;
12
+ model?: string;
13
+ type?: string;
14
+ }
15
+ export interface EngineInfo {
16
+ name?: string;
17
+ version?: string;
18
+ }
19
+ export interface OSInfo {
20
+ name: string;
21
+ version?: string;
22
+ }
23
+ export interface UserAgentInfo {
24
+ ua: string;
25
+ browser: BrowserInfo;
26
+ cpu: CPUInfo;
27
+ device: DeviceInfo;
28
+ engine: EngineInfo;
29
+ os: OSInfo;
30
+ }
31
+ //# sourceMappingURL=userAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userAgent.d.ts","sourceRoot":"","sources":["../../src/types/userAgent.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACX"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userAgent.js","sourceRoot":"","sources":["../../src/types/userAgent.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/types-database",
3
- "version": "3.0.13",
3
+ "version": "3.3.13",
4
4
  "description": "Types for prosopo database",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -13,15 +13,15 @@
13
13
  }
14
14
  },
15
15
  "engines": {
16
- "node": "20",
17
- "npm": "10.8.2"
16
+ "node": ">=v20.0.0",
17
+ "npm": ">=10.6.0"
18
18
  },
19
19
  "scripts": {
20
20
  "clean": "del-cli --verbose dist tsconfig.tsbuildinfo",
21
21
  "build": "NODE_ENV=${NODE_ENV:-development}; vite build --config vite.esm.config.ts --mode $NODE_ENV",
22
22
  "build:tsc": "tsc --build --verbose",
23
23
  "build:cjs": "NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV",
24
- "typecheck": "tsc --build --declaration --emitDeclarationOnly"
24
+ "typecheck": "tsc --project tsconfig.types.json"
25
25
  },
26
26
  "repository": {
27
27
  "type": "git",
@@ -34,30 +34,25 @@
34
34
  },
35
35
  "homepage": "https://github.com/prosopo/captcha#readme",
36
36
  "dependencies": {
37
- "@prosopo/common": "3.1.2",
38
- "@prosopo/types": "3.0.6",
39
- "@prosopo/user-access-policy": "3.4.0",
40
- "@typegoose/auto-increment": "4.13.0",
41
- "axios": "1.10.0",
42
- "esbuild": "0.25.6",
43
- "express": "4.21.2",
44
- "mongodb": "6.9.0",
45
- "mongoose": "8.6.2",
46
- "zod": "3.23.8",
47
- "@prosopo/config": "3.1.3",
48
- "openpgp": "5.11.3",
49
- "webpack-dev-server": "5.2.2"
37
+ "@prosopo/common": "3.1.21",
38
+ "@prosopo/locale": "3.1.21",
39
+ "@prosopo/types": "3.5.11",
40
+ "@prosopo/user-access-policy": "3.5.27",
41
+ "@prosopo/config": "3.1.21",
42
+ "mongoose": "8.13.0",
43
+ "zod": "3.23.8"
50
44
  },
51
45
  "devDependencies": {
52
- "@vitest/coverage-v8": "3.0.9",
46
+ "@types/node": "22.10.2",
47
+ "@vitest/coverage-v8": "3.2.4",
53
48
  "concurrently": "9.0.1",
54
49
  "del-cli": "6.0.0",
55
50
  "npm-run-all": "4.1.5",
56
51
  "tslib": "2.7.0",
57
52
  "tsx": "4.20.3",
58
53
  "typescript": "5.6.2",
59
- "vite": "6.3.5",
60
- "vitest": "3.0.9"
54
+ "vite": "6.4.1",
55
+ "vitest": "3.2.4"
61
56
  },
62
57
  "sideEffects": false
63
58
  }