@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.
- package/CHANGELOG.md +72 -0
- package/dist/cjs/index.cjs +0 -1
- package/dist/cjs/types/captcha.cjs +3 -19
- package/dist/cjs/types/client.cjs +64 -8
- package/dist/cjs/types/index.cjs +0 -1
- package/dist/cjs/types/provider.cjs +29 -36
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -0
- package/dist/provider/pendingCaptchaRequest.d.ts +14 -0
- package/dist/provider/pendingCaptchaRequest.d.ts.map +1 -0
- package/dist/provider/pendingCaptchaRequest.js +2 -0
- package/dist/provider/pendingCaptchaRequest.js.map +1 -0
- package/dist/types/captcha.d.ts +18 -0
- package/dist/types/captcha.d.ts.map +1 -0
- package/dist/types/captcha.js +4 -20
- package/dist/types/captcha.js.map +1 -0
- package/dist/types/client.d.ts +259 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/client.js +64 -8
- package/dist/types/client.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -2
- package/dist/types/index.js.map +1 -0
- package/dist/types/mongo.d.ts +13 -0
- package/dist/types/mongo.d.ts.map +1 -0
- package/dist/types/mongo.js.map +1 -0
- package/dist/types/provider.d.ts +667 -0
- package/dist/types/provider.d.ts.map +1 -0
- package/dist/types/provider.js +32 -39
- package/dist/types/provider.js.map +1 -0
- package/dist/types/userAgent.d.ts +31 -0
- package/dist/types/userAgent.d.ts.map +1 -0
- package/dist/types/userAgent.js.map +1 -0
- 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
|
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -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 =
|
|
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({
|
|
9
|
+
StoredUserCommitmentRecordSchema.index({ sessionId: 1 });
|
|
26
10
|
const StoredPoWCaptchaRecordSchema = new mongoose.Schema({
|
|
27
11
|
...provider.PoWCaptchaRecordSchema.obj
|
|
28
12
|
});
|
|
29
|
-
StoredPoWCaptchaRecordSchema.index({
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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:
|
|
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:
|
|
88
|
+
updatedAtTimestamp: Date
|
|
33
89
|
});
|
|
34
90
|
const AccountSchema = new mongoose.Schema({
|
|
35
91
|
createdAt: Number,
|
package/dist/cjs/types/index.cjs
CHANGED
|
@@ -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:
|
|
73
|
-
requestedAtTimestamp:
|
|
74
|
-
lastUpdatedTimestamp:
|
|
75
|
-
|
|
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:
|
|
112
|
-
lastUpdatedTimestamp: { type:
|
|
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
|
-
|
|
138
|
-
type:
|
|
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:
|
|
175
|
-
lastUpdatedTimestamp: { type:
|
|
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
|
-
|
|
180
|
-
type:
|
|
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
|
-
|
|
244
|
-
type:
|
|
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:
|
|
253
|
-
updated:
|
|
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:
|
|
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
|
|
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;
|
package/dist/index.d.ts
ADDED
|
@@ -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,
|
|
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 @@
|
|
|
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"}
|
package/dist/types/captcha.js
CHANGED
|
@@ -1,30 +1,14 @@
|
|
|
1
1
|
import { Schema } from "mongoose";
|
|
2
|
-
import {
|
|
3
|
-
const StoredSessionRecordSchema =
|
|
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({
|
|
7
|
+
StoredUserCommitmentRecordSchema.index({ sessionId: 1 });
|
|
24
8
|
const StoredPoWCaptchaRecordSchema = new Schema({
|
|
25
9
|
...PoWCaptchaRecordSchema.obj
|
|
26
10
|
});
|
|
27
|
-
StoredPoWCaptchaRecordSchema.index({
|
|
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"}
|