@prosopo/types-database 3.3.5 → 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 +72 -0
  2. package/dist/cjs/index.cjs +0 -1
  3. package/dist/cjs/types/captcha.cjs +3 -19
  4. package/dist/cjs/types/client.cjs +64 -8
  5. package/dist/cjs/types/index.cjs +0 -1
  6. package/dist/cjs/types/provider.cjs +29 -36
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +1 -2
  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 -20
  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 +64 -8
  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 +1 -2
  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 +32 -39
  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 +11 -11
package/CHANGELOG.md CHANGED
@@ -1,5 +1,77 @@
1
1
  # @prosopo/types-database
2
2
 
3
+ ## 3.3.13
4
+ ### Patch Changes
5
+
6
+ - Updated dependencies [8f1773a]
7
+ - @prosopo/types@3.5.11
8
+ - @prosopo/user-access-policy@3.5.27
9
+
10
+ ## 3.3.12
11
+ ### Patch Changes
12
+
13
+ - cb8ab85: head entropy for bot detection
14
+ - Updated dependencies [cb8ab85]
15
+ - @prosopo/types@3.5.10
16
+ - @prosopo/user-access-policy@3.5.26
17
+
18
+ ## 3.3.11
19
+ ### Patch Changes
20
+
21
+ - 43907e8: Convert timestamp fields from numbers to Date objects throughout codebase
22
+ - b4639ec: Merge frictionless tokens into sessions
23
+ - 7101036: Force consistent IPs logic
24
+ - Updated dependencies [43907e8]
25
+ - Updated dependencies [005ce66]
26
+ - Updated dependencies [7101036]
27
+ - @prosopo/types@3.5.9
28
+ - @prosopo/user-access-policy@3.5.25
29
+
30
+ ## 3.3.10
31
+ ### Patch Changes
32
+
33
+ - b10a65f: Allow saving webview
34
+ - 6420187: Save iframe
35
+ - Updated dependencies [e5c259d]
36
+ - @prosopo/types@3.5.8
37
+ - @prosopo/user-access-policy@3.5.24
38
+
39
+ ## 3.3.9
40
+ ### Patch Changes
41
+
42
+ - 3a027ef: Fix session storer
43
+ - 3a027ef: Release cycle
44
+ - Updated dependencies [c9d8fdf]
45
+ - Updated dependencies [b8185a4]
46
+ - @prosopo/user-access-policy@3.5.23
47
+ - @prosopo/common@3.1.21
48
+ - @prosopo/config@3.1.21
49
+ - @prosopo/locale@3.1.21
50
+ - @prosopo/types@3.5.7
51
+
52
+ ## 3.3.8
53
+ ### Patch Changes
54
+
55
+ - Updated dependencies [5d11a81]
56
+ - @prosopo/types@3.5.6
57
+ - @prosopo/user-access-policy@3.5.22
58
+
59
+ ## 3.3.7
60
+ ### Patch Changes
61
+
62
+ - 494c5a8: Updated payload
63
+ - Updated dependencies [494c5a8]
64
+ - @prosopo/types@3.5.5
65
+ - @prosopo/user-access-policy@3.5.21
66
+
67
+ ## 3.3.6
68
+ ### Patch Changes
69
+
70
+ - 08ff50f: IP Validation Schema update
71
+ - Updated dependencies [08ff50f]
72
+ - @prosopo/types@3.5.4
73
+ - @prosopo/user-access-policy@3.5.20
74
+
3
75
  ## 3.3.5
4
76
  ### Patch Changes
5
77
 
@@ -10,7 +10,6 @@ exports.CompositeIpAddressRecordSchemaObj = provider.CompositeIpAddressRecordSch
10
10
  exports.CompositeIpAddressSchema = provider.CompositeIpAddressSchema;
11
11
  exports.DatasetRecordSchema = provider.DatasetRecordSchema;
12
12
  exports.DetectorRecordSchema = provider.DetectorRecordSchema;
13
- exports.FrictionlessTokenRecordSchema = provider.FrictionlessTokenRecordSchema;
14
13
  exports.IpAddressType = provider.IpAddressType;
15
14
  exports.PendingRecordSchema = provider.PendingRecordSchema;
16
15
  exports.PoWCaptchaRecordSchema = provider.PoWCaptchaRecordSchema;
@@ -2,31 +2,15 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const mongoose = require("mongoose");
4
4
  const provider = require("./provider.cjs");
5
- const StoredSessionRecordSchema = new mongoose.Schema({
6
- ...provider.SessionRecordSchema.obj,
7
- ...Object.fromEntries(
8
- Object.entries(provider.FrictionlessTokenRecordSchema.obj).filter(
9
- ([key]) => key !== "token"
10
- )
11
- )
12
- });
13
- const existingIndexes = StoredSessionRecordSchema.indexes();
14
- const filteredIndexes = existingIndexes.filter(
15
- (idx) => !("sessionId" in idx[0])
16
- );
17
- for (const [fields, options] of filteredIndexes) {
18
- StoredSessionRecordSchema.index(fields, options);
19
- }
20
- StoredSessionRecordSchema.index({ tokenId: 1 });
21
- StoredSessionRecordSchema.index({ sessionId: 1 }, { unique: false });
5
+ const StoredSessionRecordSchema = provider.SessionRecordSchema;
22
6
  const StoredUserCommitmentRecordSchema = new mongoose.Schema({
23
7
  ...provider.UserCommitmentRecordSchema.obj
24
8
  });
25
- StoredUserCommitmentRecordSchema.index({ frictionlessTokenId: 1 });
9
+ StoredUserCommitmentRecordSchema.index({ sessionId: 1 });
26
10
  const StoredPoWCaptchaRecordSchema = new mongoose.Schema({
27
11
  ...provider.PoWCaptchaRecordSchema.obj
28
12
  });
29
- StoredPoWCaptchaRecordSchema.index({ frictionlessTokenId: 1 });
13
+ StoredPoWCaptchaRecordSchema.index({ sessionId: 1 });
30
14
  exports.StoredPoWCaptchaRecordSchema = StoredPoWCaptchaRecordSchema;
31
15
  exports.StoredSessionRecordSchema = StoredSessionRecordSchema;
32
16
  exports.StoredUserCommitmentRecordSchema = StoredUserCommitmentRecordSchema;
@@ -1,12 +1,64 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const types = require("@prosopo/types");
3
4
  const mongoose = require("mongoose");
4
5
  const IPValidationRulesSchema = new mongoose.Schema({
5
- countryChangeAction: String,
6
- ispChangeAction: String,
7
- distanceThresholdKm: Number,
8
- distanceExceedAction: String,
9
- requireAllConditions: Boolean
6
+ actions: {
7
+ countryChangeAction: {
8
+ type: mongoose.Schema.Types.Mixed,
9
+ default: () => types.countryChangeActionDefault
10
+ },
11
+ cityChangeAction: {
12
+ type: mongoose.Schema.Types.Mixed,
13
+ default: () => types.cityChangeActionDefault
14
+ },
15
+ ispChangeAction: {
16
+ type: mongoose.Schema.Types.Mixed,
17
+ default: () => types.ispChangeActionDefault
18
+ },
19
+ distanceExceedAction: {
20
+ type: mongoose.Schema.Types.Mixed,
21
+ default: () => types.distanceExceedActionDefault
22
+ },
23
+ abuseScoreExceedAction: {
24
+ type: mongoose.Schema.Types.Mixed,
25
+ default: () => types.abuseScoreThresholdExceedActionDefault
26
+ }
27
+ },
28
+ distanceThresholdKm: {
29
+ type: Number,
30
+ min: 0,
31
+ default: types.distanceThresholdKmDefault
32
+ },
33
+ abuseScoreThreshold: {
34
+ type: Number,
35
+ min: 0,
36
+ default: types.abuseScoreThresholdDefault
37
+ },
38
+ requireAllConditions: {
39
+ type: Boolean,
40
+ default: types.requireAllConditionsDefault
41
+ },
42
+ forceConsistentIp: {
43
+ type: Boolean,
44
+ default: false
45
+ },
46
+ countryOverrides: {
47
+ type: Map,
48
+ of: new mongoose.Schema({
49
+ actions: {
50
+ countryChangeAction: { type: mongoose.Schema.Types.Mixed },
51
+ cityChangeAction: { type: mongoose.Schema.Types.Mixed },
52
+ ispChangeAction: { type: mongoose.Schema.Types.Mixed },
53
+ distanceExceedAction: { type: mongoose.Schema.Types.Mixed },
54
+ abuseScoreExceedAction: { type: mongoose.Schema.Types.Mixed }
55
+ },
56
+ distanceThresholdKm: { type: Number, min: 0 },
57
+ abuseScoreThreshold: { type: Number, min: 0 },
58
+ requireAllConditions: { type: Boolean }
59
+ }),
60
+ default: void 0
61
+ }
10
62
  });
11
63
  const UserSettingsSchema = new mongoose.Schema({
12
64
  captchaType: String,
@@ -14,7 +66,11 @@ const UserSettingsSchema = new mongoose.Schema({
14
66
  powDifficulty: Number,
15
67
  imageThreshold: Number,
16
68
  ipValidationRules: IPValidationRulesSchema,
17
- domains: [String]
69
+ domains: [String],
70
+ disallowWebView: {
71
+ type: Boolean,
72
+ default: false
73
+ }
18
74
  });
19
75
  const UserDataSchema = new mongoose.Schema({
20
76
  email: String,
@@ -22,14 +78,14 @@ const UserDataSchema = new mongoose.Schema({
22
78
  account: String,
23
79
  url: String,
24
80
  mnemonic: String,
25
- createdAt: Number,
81
+ createdAt: Date,
26
82
  activated: Boolean,
27
83
  tier: String,
28
84
  settings: {
29
85
  type: UserSettingsSchema,
30
86
  required: false
31
87
  },
32
- updatedAtTimestamp: Number
88
+ updatedAtTimestamp: Date
33
89
  });
34
90
  const AccountSchema = new mongoose.Schema({
35
91
  createdAt: Number,
@@ -11,7 +11,6 @@ exports.CompositeIpAddressRecordSchemaObj = provider.CompositeIpAddressRecordSch
11
11
  exports.CompositeIpAddressSchema = provider.CompositeIpAddressSchema;
12
12
  exports.DatasetRecordSchema = provider.DatasetRecordSchema;
13
13
  exports.DetectorRecordSchema = provider.DetectorRecordSchema;
14
- exports.FrictionlessTokenRecordSchema = provider.FrictionlessTokenRecordSchema;
15
14
  exports.IpAddressType = provider.IpAddressType;
16
15
  exports.PendingRecordSchema = provider.PendingRecordSchema;
17
16
  exports.PoWCaptchaRecordSchema = provider.PoWCaptchaRecordSchema;
@@ -69,13 +69,10 @@ const UserCommitmentSchema = zod.object({
69
69
  ja4: zod.string(),
70
70
  userSubmitted: zod.boolean(),
71
71
  serverChecked: zod.boolean(),
72
- storedAtTimestamp: types.TimestampSchema.optional(),
73
- requestedAtTimestamp: types.TimestampSchema,
74
- lastUpdatedTimestamp: types.TimestampSchema.optional(),
75
- frictionlessTokenId: zod.union([
76
- zod.string(),
77
- zod.instanceof(mongoose.Types.ObjectId)
78
- ]).optional(),
72
+ storedAtTimestamp: zod.date().optional(),
73
+ requestedAtTimestamp: zod.date(),
74
+ lastUpdatedTimestamp: zod.date().optional(),
75
+ sessionId: zod.string().optional(),
79
76
  coords: zod.array(zod.array(zod.array(zod.number()))).optional()
80
77
  });
81
78
  const CaptchaRecordSchema = new mongoose.Schema({
@@ -108,8 +105,8 @@ const PoWCaptchaRecordSchema = new mongoose.Schema({
108
105
  challenge: { type: String, required: true },
109
106
  dappAccount: { type: String, required: true },
110
107
  userAccount: { type: String, required: true },
111
- requestedAtTimestamp: { type: Number, required: true },
112
- lastUpdatedTimestamp: { type: Number, required: false },
108
+ requestedAtTimestamp: { type: Date, required: true },
109
+ lastUpdatedTimestamp: { type: Date, required: false },
113
110
  result: {
114
111
  status: { type: String, enum: types.CaptchaStatus, required: true },
115
112
  reason: {
@@ -134,8 +131,8 @@ const PoWCaptchaRecordSchema = new mongoose.Schema({
134
131
  geolocation: { type: String, required: false },
135
132
  vpn: { type: Boolean, required: false },
136
133
  parsedUserAgentInfo: { type: Object, required: false },
137
- frictionlessTokenId: {
138
- type: mongoose.Schema.Types.ObjectId,
134
+ sessionId: {
135
+ type: String,
139
136
  required: false
140
137
  },
141
138
  coords: { type: [[[Number]]], required: false }
@@ -171,13 +168,13 @@ const UserCommitmentRecordSchema = new mongoose.Schema({
171
168
  userSubmitted: { type: Boolean, required: true },
172
169
  serverChecked: { type: Boolean, required: true },
173
170
  storedAtTimestamp: { type: Date, required: false, expires: ONE_MONTH },
174
- requestedAtTimestamp: { type: Number, required: true },
175
- lastUpdatedTimestamp: { type: Number, required: false },
171
+ requestedAtTimestamp: { type: Date, required: true },
172
+ lastUpdatedTimestamp: { type: Date, required: false },
176
173
  geolocation: { type: String, required: false },
177
174
  vpn: { type: Boolean, required: false },
178
175
  parsedUserAgentInfo: { type: Object, required: false },
179
- frictionlessTokenId: {
180
- type: mongoose.Schema.Types.ObjectId,
176
+ sessionId: {
177
+ type: String,
181
178
  required: false
182
179
  },
183
180
  coords: { type: [[[Number]]], required: false }
@@ -240,8 +237,8 @@ const PendingRecordSchema = new mongoose.Schema({
240
237
  // unix timestamp
241
238
  requestedAtTimestamp: { type: Date, required: true, expires: ONE_WEEK },
242
239
  ipAddress: CompositeIpAddressRecordSchemaObj,
243
- frictionlessTokenId: {
244
- type: mongoose.Schema.Types.ObjectId,
240
+ sessionId: {
241
+ type: String,
245
242
  required: false
246
243
  },
247
244
  threshold: { type: Number, required: true, default: 0.8 }
@@ -249,8 +246,8 @@ const PendingRecordSchema = new mongoose.Schema({
249
246
  PendingRecordSchema.index({ requestHash: -1 });
250
247
  const ScheduledTaskSchema = zod.object({
251
248
  processName: zod.nativeEnum(types.ScheduledTaskNames),
252
- datetime: types.TimestampSchema,
253
- updated: types.TimestampSchema.optional(),
249
+ datetime: zod.date(),
250
+ updated: zod.date().optional(),
254
251
  status: zod.nativeEnum(types.ScheduledTaskStatus),
255
252
  result: zod.object({
256
253
  data: zod.any().optional(),
@@ -260,7 +257,7 @@ const ScheduledTaskSchema = zod.object({
260
257
  const ScheduledTaskRecordSchema = new mongoose.Schema({
261
258
  processName: { type: String, enum: types.ScheduledTaskNames, required: true },
262
259
  datetime: { type: Date, required: true, expires: ONE_WEEK },
263
- updated: { type: Number, required: false },
260
+ updated: { type: Date, required: false },
264
261
  status: { type: String, enum: types.ScheduledTaskStatus, required: true },
265
262
  result: {
266
263
  type: new mongoose.Schema(
@@ -276,7 +273,9 @@ const ScheduledTaskRecordSchema = new mongoose.Schema({
276
273
  ScheduledTaskRecordSchema.index({ processName: 1 });
277
274
  ScheduledTaskRecordSchema.index({ processName: 1, status: 1 });
278
275
  ScheduledTaskRecordSchema.index({ _id: 1, status: 1 });
279
- const FrictionlessTokenRecordSchema = new mongoose.Schema({
276
+ const SessionRecordSchema = new mongoose.Schema({
277
+ sessionId: { type: String, required: true },
278
+ createdAt: { type: Date, required: true },
280
279
  token: { type: String, required: true, unique: true },
281
280
  score: { type: Number, required: true },
282
281
  threshold: { type: Number, required: true },
@@ -284,32 +283,27 @@ const FrictionlessTokenRecordSchema = new mongoose.Schema({
284
283
  baseScore: { type: Number, required: true },
285
284
  lScore: { type: Number, required: false },
286
285
  timeout: { type: Number, required: false },
287
- accessPolicy: { type: Number, required: false }
286
+ accessPolicy: { type: Number, required: false },
287
+ unverifiedHost: { type: Number, required: false },
288
+ webView: { type: Number, required: false }
288
289
  },
289
290
  providerSelectEntropy: { type: Number, required: true },
290
291
  ipAddress: CompositeIpAddressRecordSchemaObj,
291
- createdAt: { type: Date, default: Date.now },
292
- lastUpdatedTimestamp: { type: Date, required: false },
293
- storedAtTimestamp: { type: Date, required: false, expires: ONE_DAY }
294
- });
295
- FrictionlessTokenRecordSchema.index({ createdAt: 1 });
296
- FrictionlessTokenRecordSchema.index({ providerSelectEntropy: 1 });
297
- const SessionRecordSchema = new mongoose.Schema({
298
- sessionId: { type: String, required: true },
299
- createdAt: { type: Date, required: true },
300
- tokenId: {
301
- type: mongoose.Schema.Types.ObjectId
302
- },
303
292
  captchaType: { type: String, enum: types.CaptchaType, required: true },
304
293
  solvedImagesCount: { type: Number, required: false },
305
294
  powDifficulty: { type: Number, required: false },
306
295
  storedAtTimestamp: { type: Date, required: false, expires: ONE_DAY },
307
296
  lastUpdatedTimestamp: { type: Date, required: false },
308
- deleted: { type: Boolean, required: false }
297
+ deleted: { type: Boolean, required: false },
298
+ webView: { type: Boolean, required: true, default: false },
299
+ iFrame: { type: Boolean, required: true, default: false },
300
+ decryptedHeadHash: { type: String, required: false, default: "" }
309
301
  });
310
302
  SessionRecordSchema.index({ createdAt: 1 });
311
303
  SessionRecordSchema.index({ deleted: 1 });
312
304
  SessionRecordSchema.index({ sessionId: 1 }, { unique: true });
305
+ SessionRecordSchema.index({ providerSelectEntropy: 1 });
306
+ SessionRecordSchema.index({ token: 1 });
313
307
  const DetectorRecordSchema = new mongoose.Schema({
314
308
  createdAt: { type: Date, required: true },
315
309
  detectorKey: { type: String, required: true },
@@ -323,7 +317,6 @@ exports.CompositeIpAddressRecordSchemaObj = CompositeIpAddressRecordSchemaObj;
323
317
  exports.CompositeIpAddressSchema = CompositeIpAddressSchema;
324
318
  exports.DatasetRecordSchema = DatasetRecordSchema;
325
319
  exports.DetectorRecordSchema = DetectorRecordSchema;
326
- exports.FrictionlessTokenRecordSchema = FrictionlessTokenRecordSchema;
327
320
  exports.IpAddressType = IpAddressType;
328
321
  exports.PendingRecordSchema = PendingRecordSchema;
329
322
  exports.PoWCaptchaRecordSchema = PoWCaptchaRecordSchema;
@@ -0,0 +1,3 @@
1
+ export * from "./types/index.js";
2
+ export type { PendingCaptchaRequest } from "./provider/pendingCaptchaRequest.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAC;AACjC,YAAY,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./types/index.js";
2
- import { CaptchaRecordSchema, ClientRecordSchema, CompositeIpAddressRecordSchemaObj, CompositeIpAddressSchema, DatasetRecordSchema, DetectorRecordSchema, FrictionlessTokenRecordSchema, IpAddressType, PendingRecordSchema, PoWCaptchaRecordSchema, ScheduledTaskRecordSchema, ScheduledTaskSchema, SessionRecordSchema, SolutionRecordSchema, UserCommitmentRecordSchema, UserCommitmentSchema, UserCommitmentWithSolutionsSchema, UserSolutionRecordSchema, UserSolutionSchema, parseMongooseCompositeIpAddress } from "./types/provider.js";
2
+ import { CaptchaRecordSchema, ClientRecordSchema, CompositeIpAddressRecordSchemaObj, CompositeIpAddressSchema, DatasetRecordSchema, DetectorRecordSchema, IpAddressType, PendingRecordSchema, PoWCaptchaRecordSchema, ScheduledTaskRecordSchema, ScheduledTaskSchema, SessionRecordSchema, SolutionRecordSchema, UserCommitmentRecordSchema, UserCommitmentSchema, UserCommitmentWithSolutionsSchema, UserSolutionRecordSchema, UserSolutionSchema, parseMongooseCompositeIpAddress } from "./types/provider.js";
3
3
  import { AccountSchema, IPValidationRulesSchema, TableNames, UserDataSchema, UserSettingsSchema } from "./types/client.js";
4
4
  import { StoredPoWCaptchaRecordSchema, StoredSessionRecordSchema, StoredUserCommitmentRecordSchema } from "./types/captcha.js";
5
5
  export {
@@ -10,7 +10,6 @@ export {
10
10
  CompositeIpAddressSchema,
11
11
  DatasetRecordSchema,
12
12
  DetectorRecordSchema,
13
- FrictionlessTokenRecordSchema,
14
13
  IPValidationRulesSchema,
15
14
  IpAddressType,
16
15
  PendingRecordSchema,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ApiParams } from "@prosopo/types";
2
+ import type { CompositeIpAddress } from "../types/index.js";
3
+ export interface PendingCaptchaRequest {
4
+ accountId: string;
5
+ pending: boolean;
6
+ salt: string;
7
+ [ApiParams.requestHash]: string;
8
+ deadlineTimestamp: number;
9
+ requestedAtTimestamp: Date;
10
+ ipAddress: CompositeIpAddress;
11
+ sessionId?: string;
12
+ threshold: number;
13
+ }
14
+ //# sourceMappingURL=pendingCaptchaRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pendingCaptchaRequest.d.ts","sourceRoot":"","sources":["../../src/provider/pendingCaptchaRequest.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,qBAAqB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,IAAI,CAAC;IAC3B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ import { ApiParams } from "@prosopo/types";
2
+ //# sourceMappingURL=pendingCaptchaRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pendingCaptchaRequest.js","sourceRoot":"","sources":["../../src/provider/pendingCaptchaRequest.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { PoWCaptcha } from "@prosopo/types";
2
+ import { type RootFilterQuery, Schema } from "mongoose";
3
+ import type { IDatabase } from "./mongo.js";
4
+ import { type PoWCaptchaRecord, type SessionRecord, type UserCommitment, type UserCommitmentRecord } from "./provider.js";
5
+ export type StoredSession = SessionRecord;
6
+ export declare const StoredSessionRecordSchema: Schema;
7
+ export declare const StoredUserCommitmentRecordSchema: Schema;
8
+ export declare const StoredPoWCaptchaRecordSchema: Schema;
9
+ export interface ICaptchaDatabase extends IDatabase {
10
+ saveCaptchas(sessionEvents: StoredSession[], imageCaptchaEvents: UserCommitmentRecord[], powCaptchaEvents: PoWCaptchaRecord[]): Promise<void>;
11
+ getCaptchas(filter: RootFilterQuery<CaptchaProperties>, limit: number): Promise<{
12
+ userCommitmentRecords: UserCommitmentRecord[];
13
+ powCaptchaRecords: PoWCaptchaRecord[];
14
+ }>;
15
+ }
16
+ export interface CaptchaProperties extends Partial<UserCommitment & PoWCaptcha> {
17
+ }
18
+ //# sourceMappingURL=captcha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/types/captcha.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACN,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAElB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAEzB,MAAM,eAAe,CAAC;AAGvB,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC;AAE1C,eAAO,MAAM,yBAAyB,EAAE,MAA4B,CAAC;AAErE,eAAO,MAAM,gCAAgC,EAAE,MAE7C,CAAC;AAGH,eAAO,MAAM,4BAA4B,EAAE,MAEzC,CAAC;AAGH,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAClD,YAAY,CACX,aAAa,EAAE,aAAa,EAAE,EAC9B,kBAAkB,EAAE,oBAAoB,EAAE,EAC1C,gBAAgB,EAAE,gBAAgB,EAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,WAAW,CACV,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,EAC1C,KAAK,EAAE,MAAM,GACX,OAAO,CAAC;QACV,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;QAC9C,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;KACtC,CAAC,CAAC;CACH;AAED,MAAM,WAAW,iBAChB,SAAQ,OAAO,CAAC,cAAc,GAAG,UAAU,CAAC;CAAG"}
@@ -1,30 +1,14 @@
1
1
  import { Schema } from "mongoose";
2
- import { FrictionlessTokenRecordSchema, SessionRecordSchema, UserCommitmentRecordSchema, PoWCaptchaRecordSchema } from "./provider.js";
3
- const StoredSessionRecordSchema = new Schema({
4
- ...SessionRecordSchema.obj,
5
- ...Object.fromEntries(
6
- Object.entries(FrictionlessTokenRecordSchema.obj).filter(
7
- ([key]) => key !== "token"
8
- )
9
- )
10
- });
11
- const existingIndexes = StoredSessionRecordSchema.indexes();
12
- const filteredIndexes = existingIndexes.filter(
13
- (idx) => !("sessionId" in idx[0])
14
- );
15
- for (const [fields, options] of filteredIndexes) {
16
- StoredSessionRecordSchema.index(fields, options);
17
- }
18
- StoredSessionRecordSchema.index({ tokenId: 1 });
19
- StoredSessionRecordSchema.index({ sessionId: 1 }, { unique: false });
2
+ import { SessionRecordSchema, UserCommitmentRecordSchema, PoWCaptchaRecordSchema } from "./provider.js";
3
+ const StoredSessionRecordSchema = SessionRecordSchema;
20
4
  const StoredUserCommitmentRecordSchema = new Schema({
21
5
  ...UserCommitmentRecordSchema.obj
22
6
  });
23
- StoredUserCommitmentRecordSchema.index({ frictionlessTokenId: 1 });
7
+ StoredUserCommitmentRecordSchema.index({ sessionId: 1 });
24
8
  const StoredPoWCaptchaRecordSchema = new Schema({
25
9
  ...PoWCaptchaRecordSchema.obj
26
10
  });
27
- StoredPoWCaptchaRecordSchema.index({ frictionlessTokenId: 1 });
11
+ StoredPoWCaptchaRecordSchema.index({ sessionId: 1 });
28
12
  export {
29
13
  StoredPoWCaptchaRecordSchema,
30
14
  StoredSessionRecordSchema,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/types/captcha.ts"],"names":[],"mappings":"AAeA,OAAO,EAAwB,MAAM,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EAEN,sBAAsB,EAEtB,mBAAmB,EAGnB,0BAA0B,GAC1B,MAAM,eAAe,CAAC;AAKvB,MAAM,CAAC,MAAM,yBAAyB,GAAW,mBAAmB,CAAC;AAErE,MAAM,CAAC,MAAM,gCAAgC,GAAW,IAAI,MAAM,CAAC;IAClE,GAAG,0BAA0B,CAAC,GAAG;CACjC,CAAC,CAAC;AACH,gCAAgC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,4BAA4B,GAAW,IAAI,MAAM,CAAC;IAC9D,GAAG,sBAAsB,CAAC,GAAG;CAC7B,CAAC,CAAC;AACH,4BAA4B,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC"}