@prosopo/database 3.0.13 → 3.4.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 +375 -0
- package/dist/base/index.d.ts +3 -0
- package/dist/base/index.d.ts.map +1 -0
- package/dist/base/index.js.map +1 -0
- package/dist/base/mongo.d.ts +18 -0
- package/dist/base/mongo.d.ts.map +1 -0
- package/dist/base/mongo.js +8 -8
- package/dist/base/mongo.js.map +1 -0
- package/dist/base/mongoMemory.d.ts +10 -0
- package/dist/base/mongoMemory.d.ts.map +1 -0
- package/dist/base/mongoMemory.js +9 -14
- package/dist/base/mongoMemory.js.map +1 -0
- package/dist/cjs/base/mongo.cjs +10 -9
- package/dist/cjs/base/mongoMemory.cjs +9 -14
- package/dist/cjs/databases/captcha.cjs +36 -3
- package/dist/cjs/databases/provider.cjs +137 -90
- package/dist/cjs/index.cjs +2 -0
- package/dist/databases/captcha.d.ts +25 -0
- package/dist/databases/captcha.d.ts.map +1 -0
- package/dist/databases/captcha.js +32 -0
- package/dist/databases/captcha.js.map +1 -0
- package/dist/databases/client.d.ts +12 -0
- package/dist/databases/client.d.ts.map +1 -0
- package/dist/databases/client.js.map +1 -0
- package/dist/databases/index.d.ts +16 -0
- package/dist/databases/index.d.ts.map +1 -0
- package/dist/databases/index.js.map +1 -0
- package/dist/databases/provider.d.ts +106 -0
- package/dist/databases/provider.d.ts.map +1 -0
- package/dist/databases/provider.js +137 -90
- package/dist/databases/provider.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/package.json +20 -22
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { type Logger } from "@prosopo/common";
|
|
2
|
+
import type { TranslationKey } from "@prosopo/locale";
|
|
3
|
+
import { type RedisConnection } from "@prosopo/redis-client";
|
|
4
|
+
import { type Captcha, type CaptchaResult, type CaptchaSolution, CaptchaStates, type Dataset, type DatasetBase, type DatasetWithIds, type DatasetWithIdsAndTree, type Hash, type PoWChallengeComponents, type PoWChallengeId, type RequestHeaders, type ScheduledTaskNames, type ScheduledTaskResult, type ScheduledTaskStatus, type StoredStatus } from "@prosopo/types";
|
|
5
|
+
import type { CompositeIpAddress, SessionRecord } from "@prosopo/types-database";
|
|
6
|
+
import { type ClientRecord, type IProviderDatabase, type PendingCaptchaRequest, type PoWCaptchaRecord, type ScheduledTaskRecord, type Session, type SolutionRecord, type Tables, type UserCommitment, type UserCommitmentRecord, type UserSolutionRecord } from "@prosopo/types-database";
|
|
7
|
+
import type { AccessRulesStorage } from "@prosopo/user-access-policy";
|
|
8
|
+
import type { ObjectId } from "mongoose";
|
|
9
|
+
import { MongoDatabase } from "../base/mongo.js";
|
|
10
|
+
declare enum TableNames {
|
|
11
|
+
captcha = "captcha",
|
|
12
|
+
dataset = "dataset",
|
|
13
|
+
solution = "solution",
|
|
14
|
+
commitment = "commitment",
|
|
15
|
+
usersolution = "usersolution",
|
|
16
|
+
pending = "pending",
|
|
17
|
+
scheduler = "scheduler",
|
|
18
|
+
powcaptcha = "powcaptcha",
|
|
19
|
+
client = "client",
|
|
20
|
+
session = "session",
|
|
21
|
+
detector = "detector"
|
|
22
|
+
}
|
|
23
|
+
type ProviderDatabaseOptions = {
|
|
24
|
+
mongo: {
|
|
25
|
+
url: string;
|
|
26
|
+
dbname?: string;
|
|
27
|
+
authSource?: string;
|
|
28
|
+
};
|
|
29
|
+
redis?: {
|
|
30
|
+
url: string;
|
|
31
|
+
password: string;
|
|
32
|
+
indexName?: string;
|
|
33
|
+
};
|
|
34
|
+
logger?: Logger;
|
|
35
|
+
};
|
|
36
|
+
export declare class ProviderDatabase extends MongoDatabase implements IProviderDatabase {
|
|
37
|
+
private readonly options;
|
|
38
|
+
tables: Tables<TableNames>;
|
|
39
|
+
private redisConnection;
|
|
40
|
+
private redisAccessRulesConnection;
|
|
41
|
+
private userAccessRulesStorage;
|
|
42
|
+
private indexesEnsured;
|
|
43
|
+
constructor(options: ProviderDatabaseOptions);
|
|
44
|
+
connect(): Promise<void>;
|
|
45
|
+
protected setupRedis(): Promise<void>;
|
|
46
|
+
loadTables(): void;
|
|
47
|
+
getTables(): Tables<TableNames>;
|
|
48
|
+
getRedisAccessRulesConnection(): RedisConnection;
|
|
49
|
+
getRedisConnection(): RedisConnection;
|
|
50
|
+
ensureIndexes(): Promise<void>;
|
|
51
|
+
getUserAccessRulesStorage(): AccessRulesStorage;
|
|
52
|
+
storeDataset(dataset: Dataset | DatasetWithIdsAndTree): Promise<void>;
|
|
53
|
+
getSolutions(datasetId: string): Promise<SolutionRecord[]>;
|
|
54
|
+
getSolutionByCaptchaId(captchaId: string): Promise<SolutionRecord | null>;
|
|
55
|
+
getDataset(datasetId: string): Promise<DatasetWithIds>;
|
|
56
|
+
getRandomCaptcha(solved: boolean, datasetId: Hash, size?: number): Promise<Captcha[] | undefined>;
|
|
57
|
+
getCaptchaById(captchaId: string[]): Promise<Captcha[] | undefined>;
|
|
58
|
+
updateCaptcha(captcha: Captcha, datasetId: Hash): Promise<void>;
|
|
59
|
+
removeCaptchas(captchaIds: string[]): Promise<void>;
|
|
60
|
+
getDatasetDetails(datasetId: Hash): Promise<DatasetBase>;
|
|
61
|
+
storeUserImageCaptchaSolution(captchas: CaptchaSolution[], commit: UserCommitment): Promise<void>;
|
|
62
|
+
storePowCaptchaRecord(challenge: PoWChallengeId, components: PoWChallengeComponents, difficulty: number, providerSignature: string, ipAddress: CompositeIpAddress, headers: RequestHeaders, ja4: string, sessionId?: string, serverChecked?: boolean, userSubmitted?: boolean, storedStatus?: StoredStatus, userSignature?: string): Promise<void>;
|
|
63
|
+
getPowCaptchaRecordByChallenge(challenge: string): Promise<PoWCaptchaRecord | null>;
|
|
64
|
+
updatePowCaptchaRecordResult(challenge: PoWChallengeId, result: CaptchaResult, serverChecked?: boolean, userSubmitted?: boolean, userSignature?: string): Promise<void>;
|
|
65
|
+
updatePowCaptchaRecord(challenge: PoWChallengeId, updates: Partial<PoWCaptchaRecord>): Promise<void>;
|
|
66
|
+
getCheckedDappUserCommitments(): Promise<UserCommitmentRecord[]>;
|
|
67
|
+
getUnstoredDappUserCommitments(limit?: number, skip?: number): Promise<UserCommitmentRecord[]>;
|
|
68
|
+
markDappUserCommitmentsStored(commitmentIds: Hash[]): Promise<void>;
|
|
69
|
+
markDappUserCommitmentsChecked(commitmentIds: Hash[]): Promise<void>;
|
|
70
|
+
updateDappUserCommitment(commitmentId: Hash, updates: Partial<UserCommitment>): Promise<void>;
|
|
71
|
+
getUnstoredDappUserPoWCommitments(limit?: number, skip?: number): Promise<PoWCaptchaRecord[]>;
|
|
72
|
+
markDappUserPoWCommitmentsStored(challenges: string[]): Promise<void>;
|
|
73
|
+
markDappUserPoWCommitmentsChecked(challenges: string[]): Promise<void>;
|
|
74
|
+
storeSessionRecord(sessionRecord: Session): Promise<void>;
|
|
75
|
+
getSessionRecordBySessionId(sessionId: string): Promise<Session | undefined>;
|
|
76
|
+
getSessionRecordByToken(token: string): Promise<Session | undefined>;
|
|
77
|
+
checkAndRemoveSession(sessionId: string): Promise<SessionRecord | undefined>;
|
|
78
|
+
getUnstoredSessionRecords(limit?: number, skip?: number): Promise<SessionRecord[]>;
|
|
79
|
+
markSessionRecordsStored(sessionIds: string[]): Promise<void>;
|
|
80
|
+
storePendingImageCommitment(userAccount: string, requestHash: string, salt: string, deadlineTimestamp: number, requestedAtTimestamp: number, ipAddress: CompositeIpAddress, threshold: number, sessionId?: string): Promise<void>;
|
|
81
|
+
getPendingImageCommitment(requestHash: string): Promise<PendingCaptchaRequest>;
|
|
82
|
+
updatePendingImageCommitmentStatus(requestHash: string): Promise<void>;
|
|
83
|
+
getAllCaptchasByDatasetId(datasetId: string, state?: CaptchaStates): Promise<Captcha[] | undefined>;
|
|
84
|
+
getAllDappUserSolutions(captchaId: string[]): Promise<UserSolutionRecord[] | undefined>;
|
|
85
|
+
getDatasetIdWithSolvedCaptchasOfSizeN(solvedCaptchaCount: number): Promise<string>;
|
|
86
|
+
getRandomSolvedCaptchasFromSingleDataset(datasetId: string, size: number): Promise<CaptchaSolution[]>;
|
|
87
|
+
getDappUserSolutionById(commitmentId: string): Promise<UserSolutionRecord | undefined>;
|
|
88
|
+
getDappUserCommitmentById(commitmentId: string): Promise<UserCommitmentRecord | undefined>;
|
|
89
|
+
getDappUserCommitmentByAccount(userAccount: string, dappAccount: string): Promise<UserCommitmentRecord[]>;
|
|
90
|
+
approveDappUserCommitment(commitmentId: string, coords?: [number, number][][]): Promise<void>;
|
|
91
|
+
disapproveDappUserCommitment(commitmentId: string, reason?: TranslationKey, coords?: [number, number][][]): Promise<void>;
|
|
92
|
+
flagProcessedDappUserSolutions(captchaIds: Hash[]): Promise<void>;
|
|
93
|
+
flagProcessedDappUserCommitments(commitmentIds: Hash[]): Promise<void>;
|
|
94
|
+
getScheduledTaskStatus(taskId: ObjectId, status: ScheduledTaskStatus): Promise<ScheduledTaskRecord | undefined>;
|
|
95
|
+
getLastScheduledTaskStatus(task: ScheduledTaskNames, status?: ScheduledTaskStatus): Promise<ScheduledTaskRecord | undefined>;
|
|
96
|
+
createScheduledTaskStatus(taskName: ScheduledTaskNames, status: ScheduledTaskStatus): Promise<ObjectId>;
|
|
97
|
+
updateScheduledTaskStatus(taskId: ObjectId, status: ScheduledTaskStatus, result?: ScheduledTaskResult): Promise<void>;
|
|
98
|
+
cleanupScheduledTaskStatus(status: ScheduledTaskStatus): Promise<void>;
|
|
99
|
+
updateClientRecords(clientRecords: ClientRecord[]): Promise<void>;
|
|
100
|
+
getClientRecord(account: string): Promise<ClientRecord | undefined>;
|
|
101
|
+
storeDetectorKey(detectorKey: string): Promise<void>;
|
|
102
|
+
removeDetectorKey(detectorKey: string, expirationInSeconds?: number): Promise<void>;
|
|
103
|
+
getDetectorKeys(): Promise<string[]>;
|
|
104
|
+
}
|
|
105
|
+
export {};
|
|
106
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/databases/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { isHex } from "@polkadot/util/is";
|
|
2
2
|
import { ProsopoDBError } from "@prosopo/common";
|
|
3
|
+
import { connectToRedis, setupRedisIndex } from "@prosopo/redis-client";
|
|
3
4
|
import { DatasetWithIdsAndTreeSchema, StoredStatusNames, CaptchaStatus, ApiParams, CaptchaStates } from "@prosopo/types";
|
|
4
|
-
import { CaptchaRecordSchema, PoWCaptchaRecordSchema, DatasetRecordSchema, SolutionRecordSchema, UserCommitmentRecordSchema, UserSolutionRecordSchema, PendingRecordSchema, ScheduledTaskRecordSchema, ClientRecordSchema,
|
|
5
|
-
import {
|
|
6
|
-
import { createClient } from "redis";
|
|
5
|
+
import { CaptchaRecordSchema, PoWCaptchaRecordSchema, DatasetRecordSchema, SolutionRecordSchema, UserCommitmentRecordSchema, UserSolutionRecordSchema, PendingRecordSchema, ScheduledTaskRecordSchema, ClientRecordSchema, SessionRecordSchema, DetectorRecordSchema, UserCommitmentSchema, ScheduledTaskSchema } from "@prosopo/types-database";
|
|
6
|
+
import { accessRulesRedisIndex, createRedisAccessRulesStorage } from "@prosopo/user-access-policy/redis";
|
|
7
7
|
import { MongoDatabase } from "../base/mongo.js";
|
|
8
8
|
var TableNames = /* @__PURE__ */ ((TableNames2) => {
|
|
9
9
|
TableNames2["captcha"] = "captcha";
|
|
@@ -15,7 +15,6 @@ var TableNames = /* @__PURE__ */ ((TableNames2) => {
|
|
|
15
15
|
TableNames2["scheduler"] = "scheduler";
|
|
16
16
|
TableNames2["powcaptcha"] = "powcaptcha";
|
|
17
17
|
TableNames2["client"] = "client";
|
|
18
|
-
TableNames2["frictionlessToken"] = "frictionlessToken";
|
|
19
18
|
TableNames2["session"] = "session";
|
|
20
19
|
TableNames2["detector"] = "detector";
|
|
21
20
|
return TableNames2;
|
|
@@ -66,11 +65,6 @@ const PROVIDER_TABLES = [
|
|
|
66
65
|
modelName: "Client",
|
|
67
66
|
schema: ClientRecordSchema
|
|
68
67
|
},
|
|
69
|
-
{
|
|
70
|
-
collectionName: "frictionlessToken",
|
|
71
|
-
modelName: "FrictionlessToken",
|
|
72
|
-
schema: FrictionlessTokenRecordSchema
|
|
73
|
-
},
|
|
74
68
|
{
|
|
75
69
|
collectionName: "session",
|
|
76
70
|
modelName: "Session",
|
|
@@ -92,7 +86,10 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
92
86
|
);
|
|
93
87
|
this.options = options;
|
|
94
88
|
this.tables = {};
|
|
89
|
+
this.indexesEnsured = false;
|
|
95
90
|
this.tables = {};
|
|
91
|
+
this.redisAccessRulesConnection = null;
|
|
92
|
+
this.redisConnection = null;
|
|
96
93
|
this.userAccessRulesStorage = null;
|
|
97
94
|
}
|
|
98
95
|
async connect() {
|
|
@@ -101,27 +98,24 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
101
98
|
await this.setupRedis();
|
|
102
99
|
}
|
|
103
100
|
async setupRedis() {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
this.
|
|
101
|
+
this.redisConnection = connectToRedis({
|
|
102
|
+
url: this.options.redis?.url,
|
|
103
|
+
password: this.options.redis?.password,
|
|
104
|
+
logger: this.logger
|
|
105
|
+
});
|
|
106
|
+
this.redisAccessRulesConnection = setupRedisIndex(
|
|
107
|
+
this.redisConnection,
|
|
108
|
+
{
|
|
109
|
+
...accessRulesRedisIndex,
|
|
110
|
+
name: this.options.redis?.indexName || accessRulesRedisIndex.name
|
|
111
|
+
},
|
|
112
|
+
this.logger
|
|
108
113
|
);
|
|
109
114
|
this.userAccessRulesStorage = createRedisAccessRulesStorage(
|
|
110
|
-
|
|
115
|
+
this.redisAccessRulesConnection,
|
|
111
116
|
this.logger
|
|
112
117
|
);
|
|
113
118
|
}
|
|
114
|
-
async createRedisClient() {
|
|
115
|
-
return await createClient({
|
|
116
|
-
url: this.options.redis?.url,
|
|
117
|
-
password: this.options.redis?.password
|
|
118
|
-
}).on("error", (error) => {
|
|
119
|
-
this.logger.error(() => ({
|
|
120
|
-
err: error,
|
|
121
|
-
msg: "Redis client error"
|
|
122
|
-
}));
|
|
123
|
-
}).connect();
|
|
124
|
-
}
|
|
125
119
|
loadTables() {
|
|
126
120
|
const tables = {};
|
|
127
121
|
PROVIDER_TABLES.map(({ collectionName, modelName, schema }) => {
|
|
@@ -140,6 +134,56 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
140
134
|
}
|
|
141
135
|
return this.tables;
|
|
142
136
|
}
|
|
137
|
+
getRedisAccessRulesConnection() {
|
|
138
|
+
if (null === this.redisAccessRulesConnection) {
|
|
139
|
+
throw new ProsopoDBError(
|
|
140
|
+
"DATABASE.REDIS_ACCESS_RULES_CONNECTION_UNDEFINED"
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
return this.redisAccessRulesConnection;
|
|
144
|
+
}
|
|
145
|
+
getRedisConnection() {
|
|
146
|
+
if (null === this.redisConnection) {
|
|
147
|
+
throw new ProsopoDBError(
|
|
148
|
+
"DATABASE.REDIS_ACCESS_RULES_CONNECTION_UNDEFINED"
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
return this.redisConnection;
|
|
152
|
+
}
|
|
153
|
+
async ensureIndexes() {
|
|
154
|
+
const indexPromises = [];
|
|
155
|
+
if (!this.indexesEnsured) {
|
|
156
|
+
PROVIDER_TABLES.map(({ collectionName }) => {
|
|
157
|
+
indexPromises.push(
|
|
158
|
+
new Promise((resolve) => {
|
|
159
|
+
if (this.connected) {
|
|
160
|
+
this.tables[collectionName].collection.dropIndexes().then(() => {
|
|
161
|
+
this.tables[collectionName].ensureIndexes().then(() => {
|
|
162
|
+
this.logger.info(() => ({
|
|
163
|
+
msg: `Indexes ensured for collection ${collectionName}`
|
|
164
|
+
}));
|
|
165
|
+
resolve();
|
|
166
|
+
}).catch((err) => {
|
|
167
|
+
this.logger.warn(() => ({
|
|
168
|
+
err,
|
|
169
|
+
msg: `Error creating indexes for collection ${collectionName}`
|
|
170
|
+
}));
|
|
171
|
+
resolve();
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
} else {
|
|
175
|
+
this.logger.info(() => ({
|
|
176
|
+
msg: `Skipping index creation for collection ${collectionName} as not connected`
|
|
177
|
+
}));
|
|
178
|
+
resolve();
|
|
179
|
+
}
|
|
180
|
+
})
|
|
181
|
+
);
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
await Promise.all(indexPromises);
|
|
185
|
+
this.indexesEnsured = true;
|
|
186
|
+
}
|
|
143
187
|
getUserAccessRulesStorage() {
|
|
144
188
|
if (null === this.userAccessRulesStorage) {
|
|
145
189
|
throw new ProsopoDBError("DATABASE.USER_ACCESS_RULES_STORAGE_UNDEFINED");
|
|
@@ -396,7 +440,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
396
440
|
async storeUserImageCaptchaSolution(captchas, commit) {
|
|
397
441
|
const commitmentRecord = UserCommitmentSchema.parse({
|
|
398
442
|
...commit,
|
|
399
|
-
lastUpdatedTimestamp: Date
|
|
443
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date()
|
|
400
444
|
});
|
|
401
445
|
if (captchas.length) {
|
|
402
446
|
const filter = {
|
|
@@ -436,18 +480,20 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
436
480
|
* @param ipAddress
|
|
437
481
|
* @param headers
|
|
438
482
|
* @param ja4
|
|
439
|
-
* @param
|
|
483
|
+
* @param sessionId
|
|
440
484
|
* @param serverChecked
|
|
441
485
|
* @param userSubmitted
|
|
442
486
|
* @param storedStatus
|
|
443
487
|
* @param userSignature
|
|
444
488
|
* @returns {Promise<void>} A promise that resolves when the record is added.
|
|
445
489
|
*/
|
|
446
|
-
async storePowCaptchaRecord(challenge, components, difficulty, providerSignature, ipAddress, headers, ja4,
|
|
490
|
+
async storePowCaptchaRecord(challenge, components, difficulty, providerSignature, ipAddress, headers, ja4, sessionId, serverChecked = false, userSubmitted = false, storedStatus = StoredStatusNames.notStored, userSignature) {
|
|
447
491
|
const tables = this.getTables();
|
|
448
492
|
const powCaptchaRecord = {
|
|
449
493
|
challenge,
|
|
450
|
-
|
|
494
|
+
userAccount: components.userAccount,
|
|
495
|
+
dappAccount: components.dappAccount,
|
|
496
|
+
requestedAtTimestamp: new Date(components.requestedAtTimestamp),
|
|
451
497
|
ipAddress,
|
|
452
498
|
headers,
|
|
453
499
|
ja4,
|
|
@@ -457,8 +503,8 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
457
503
|
difficulty,
|
|
458
504
|
providerSignature,
|
|
459
505
|
userSignature,
|
|
460
|
-
lastUpdatedTimestamp: Date
|
|
461
|
-
|
|
506
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date(),
|
|
507
|
+
sessionId
|
|
462
508
|
};
|
|
463
509
|
try {
|
|
464
510
|
await tables.powcaptcha.create(powCaptchaRecord);
|
|
@@ -537,9 +583,9 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
537
583
|
* @param userSignature
|
|
538
584
|
* @returns {Promise<void>} A promise that resolves when the record is updated.
|
|
539
585
|
*/
|
|
540
|
-
async
|
|
586
|
+
async updatePowCaptchaRecordResult(challenge, result, serverChecked = false, userSubmitted = false, userSignature) {
|
|
541
587
|
const tables = this.getTables();
|
|
542
|
-
const timestamp = Date
|
|
588
|
+
const timestamp = /* @__PURE__ */ new Date();
|
|
543
589
|
const update = {
|
|
544
590
|
result,
|
|
545
591
|
serverChecked,
|
|
@@ -591,6 +637,14 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
591
637
|
throw err;
|
|
592
638
|
}
|
|
593
639
|
}
|
|
640
|
+
async updatePowCaptchaRecord(challenge, updates) {
|
|
641
|
+
const tables = this.getTables();
|
|
642
|
+
await tables.powcaptcha.updateOne(
|
|
643
|
+
{ challenge },
|
|
644
|
+
{ $set: updates },
|
|
645
|
+
{ upsert: false }
|
|
646
|
+
);
|
|
647
|
+
}
|
|
594
648
|
/** @description Get serverChecked Dapp User image captcha commitments from the commitments table
|
|
595
649
|
*/
|
|
596
650
|
async getCheckedDappUserCommitments() {
|
|
@@ -632,7 +686,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
632
686
|
*/
|
|
633
687
|
async markDappUserCommitmentsStored(commitmentIds) {
|
|
634
688
|
const updateDoc = {
|
|
635
|
-
storedAtTimestamp: Date
|
|
689
|
+
storedAtTimestamp: /* @__PURE__ */ new Date()
|
|
636
690
|
};
|
|
637
691
|
await this.tables?.commitment.updateMany(
|
|
638
692
|
{ id: { $in: commitmentIds } },
|
|
@@ -645,7 +699,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
645
699
|
async markDappUserCommitmentsChecked(commitmentIds) {
|
|
646
700
|
const updateDoc = {
|
|
647
701
|
[StoredStatusNames.serverChecked]: true,
|
|
648
|
-
lastUpdatedTimestamp: Date
|
|
702
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date()
|
|
649
703
|
};
|
|
650
704
|
await this.tables?.commitment.updateMany(
|
|
651
705
|
{ id: { $in: commitmentIds } },
|
|
@@ -653,6 +707,12 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
653
707
|
{ upsert: false }
|
|
654
708
|
);
|
|
655
709
|
}
|
|
710
|
+
/** @description Update an image captcha commitment
|
|
711
|
+
*/
|
|
712
|
+
async updateDappUserCommitment(commitmentId, updates) {
|
|
713
|
+
const filter = { id: commitmentId };
|
|
714
|
+
await this.tables?.commitment.updateOne(filter, updates);
|
|
715
|
+
}
|
|
656
716
|
/**
|
|
657
717
|
* @description Get Dapp User PoW captcha commitments that have not been counted towards the client's total
|
|
658
718
|
* @param {number} limit Maximum number of records to return
|
|
@@ -703,7 +763,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
703
763
|
*/
|
|
704
764
|
async markDappUserPoWCommitmentsStored(challenges) {
|
|
705
765
|
const updateDoc = {
|
|
706
|
-
storedAtTimestamp: Date
|
|
766
|
+
storedAtTimestamp: /* @__PURE__ */ new Date()
|
|
707
767
|
};
|
|
708
768
|
await this.tables?.powcaptcha.updateMany(
|
|
709
769
|
{ challenge: { $in: challenges } },
|
|
@@ -716,7 +776,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
716
776
|
async markDappUserPoWCommitmentsChecked(challenges) {
|
|
717
777
|
const updateDoc = {
|
|
718
778
|
[StoredStatusNames.serverChecked]: true,
|
|
719
|
-
lastUpdatedTimestamp: Date
|
|
779
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date()
|
|
720
780
|
};
|
|
721
781
|
await this.tables?.powcaptcha.updateMany(
|
|
722
782
|
{ challenge: { $in: challenges } },
|
|
@@ -726,46 +786,6 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
726
786
|
{ upsert: false }
|
|
727
787
|
);
|
|
728
788
|
}
|
|
729
|
-
/**
|
|
730
|
-
* Store a new frictionless token record
|
|
731
|
-
*/
|
|
732
|
-
async storeFrictionlessTokenRecord(tokenRecord) {
|
|
733
|
-
const doc = await this.tables.frictionlessToken.create(
|
|
734
|
-
tokenRecord
|
|
735
|
-
);
|
|
736
|
-
return doc._id;
|
|
737
|
-
}
|
|
738
|
-
/** Update a frictionless token record */
|
|
739
|
-
async updateFrictionlessTokenRecord(tokenId, updates) {
|
|
740
|
-
const filter = { _id: tokenId };
|
|
741
|
-
await this.tables.frictionlessToken.updateOne(filter, updates);
|
|
742
|
-
}
|
|
743
|
-
/** Get a frictionless token record */
|
|
744
|
-
async getFrictionlessTokenRecordByTokenId(tokenId) {
|
|
745
|
-
const filter = { _id: tokenId };
|
|
746
|
-
const doc = await this.tables.frictionlessToken.findOne(
|
|
747
|
-
filter
|
|
748
|
-
);
|
|
749
|
-
return doc ? doc : void 0;
|
|
750
|
-
}
|
|
751
|
-
/** Get many frictionless token records */
|
|
752
|
-
async getFrictionlessTokenRecordsByTokenIds(tokenId) {
|
|
753
|
-
const filter = {
|
|
754
|
-
_id: { $in: tokenId }
|
|
755
|
-
};
|
|
756
|
-
return this.tables.frictionlessToken.find(filter);
|
|
757
|
-
}
|
|
758
|
-
/**
|
|
759
|
-
* Check if a frictionless token record exists.
|
|
760
|
-
* Used to ensure that a token is not used more than once.
|
|
761
|
-
*/
|
|
762
|
-
async getFrictionlessTokenRecordByToken(token) {
|
|
763
|
-
const filter = { token };
|
|
764
|
-
const record = await this.tables.frictionlessToken.findOne(
|
|
765
|
-
filter
|
|
766
|
-
);
|
|
767
|
-
return record || void 0;
|
|
768
|
-
}
|
|
769
789
|
/**
|
|
770
790
|
* Store a new session record
|
|
771
791
|
*/
|
|
@@ -782,6 +802,23 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
782
802
|
});
|
|
783
803
|
}
|
|
784
804
|
}
|
|
805
|
+
/**
|
|
806
|
+
* Get a session record by sessionId
|
|
807
|
+
*/
|
|
808
|
+
async getSessionRecordBySessionId(sessionId) {
|
|
809
|
+
const filter = { sessionId };
|
|
810
|
+
const doc = await this.tables.session.findOne(filter).lean();
|
|
811
|
+
return doc || void 0;
|
|
812
|
+
}
|
|
813
|
+
/**
|
|
814
|
+
* Get a session record by token
|
|
815
|
+
* Used to ensure that a token is not used more than once.
|
|
816
|
+
*/
|
|
817
|
+
async getSessionRecordByToken(token) {
|
|
818
|
+
const filter = { token };
|
|
819
|
+
const record = await this.tables.session.findOne(filter).lean();
|
|
820
|
+
return record || void 0;
|
|
821
|
+
}
|
|
785
822
|
/**
|
|
786
823
|
* Check if a session exists and mark it as removed
|
|
787
824
|
* @returns The session record if it existed, undefined otherwise
|
|
@@ -797,7 +834,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
797
834
|
try {
|
|
798
835
|
const session = await this.tables.session.findOneAndUpdate(filter, {
|
|
799
836
|
deleted: true,
|
|
800
|
-
lastUpdatedTimestamp: Date
|
|
837
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date()
|
|
801
838
|
}).lean();
|
|
802
839
|
return session || void 0;
|
|
803
840
|
} catch (err) {
|
|
@@ -854,7 +891,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
854
891
|
/** Mark a list of session records as stored */
|
|
855
892
|
async markSessionRecordsStored(sessionIds) {
|
|
856
893
|
const updateDoc = {
|
|
857
|
-
storedAtTimestamp: Date
|
|
894
|
+
storedAtTimestamp: /* @__PURE__ */ new Date()
|
|
858
895
|
};
|
|
859
896
|
await this.tables?.session.updateMany(
|
|
860
897
|
{ sessionId: { $in: sessionIds } },
|
|
@@ -865,7 +902,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
865
902
|
/**
|
|
866
903
|
* @description Store a Dapp User's pending record
|
|
867
904
|
*/
|
|
868
|
-
async storePendingImageCommitment(userAccount, requestHash, salt, deadlineTimestamp, requestedAtTimestamp, ipAddress, threshold,
|
|
905
|
+
async storePendingImageCommitment(userAccount, requestHash, salt, deadlineTimestamp, requestedAtTimestamp, ipAddress, threshold, sessionId) {
|
|
869
906
|
if (!isHex(requestHash)) {
|
|
870
907
|
throw new ProsopoDBError("DATABASE.INVALID_HASH", {
|
|
871
908
|
context: {
|
|
@@ -882,7 +919,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
882
919
|
deadlineTimestamp,
|
|
883
920
|
requestedAtTimestamp: new Date(requestedAtTimestamp),
|
|
884
921
|
ipAddress,
|
|
885
|
-
|
|
922
|
+
sessionId,
|
|
886
923
|
threshold
|
|
887
924
|
};
|
|
888
925
|
await this.tables?.pending.updateOne(
|
|
@@ -1078,13 +1115,15 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
1078
1115
|
/**
|
|
1079
1116
|
* @description Approve a dapp user's solution
|
|
1080
1117
|
* @param {string[]} commitmentId
|
|
1118
|
+
* @param coords
|
|
1081
1119
|
*/
|
|
1082
|
-
async approveDappUserCommitment(commitmentId) {
|
|
1120
|
+
async approveDappUserCommitment(commitmentId, coords) {
|
|
1083
1121
|
try {
|
|
1084
1122
|
const result = { status: CaptchaStatus.approved };
|
|
1085
1123
|
const updateDoc = {
|
|
1086
1124
|
result,
|
|
1087
|
-
lastUpdatedTimestamp: Date
|
|
1125
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date(),
|
|
1126
|
+
...coords ? { coords } : {}
|
|
1088
1127
|
};
|
|
1089
1128
|
const filter = { id: commitmentId };
|
|
1090
1129
|
await this.tables?.commitment?.findOneAndUpdate(filter, { $set: updateDoc }, { upsert: false }).lean();
|
|
@@ -1097,13 +1136,15 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
1097
1136
|
/**
|
|
1098
1137
|
* @description Disapprove a dapp user's solution
|
|
1099
1138
|
* @param {string} commitmentId
|
|
1139
|
+
* @param coords
|
|
1100
1140
|
* @param reason
|
|
1101
1141
|
*/
|
|
1102
|
-
async disapproveDappUserCommitment(commitmentId, reason) {
|
|
1142
|
+
async disapproveDappUserCommitment(commitmentId, reason, coords) {
|
|
1103
1143
|
try {
|
|
1104
1144
|
const updateDoc = {
|
|
1105
1145
|
result: { status: CaptchaStatus.disapproved, reason },
|
|
1106
|
-
lastUpdatedTimestamp: Date
|
|
1146
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date(),
|
|
1147
|
+
...coords ? { coords } : {}
|
|
1107
1148
|
};
|
|
1108
1149
|
const filter = { id: commitmentId };
|
|
1109
1150
|
await this.tables?.commitment?.findOneAndUpdate(filter, { $set: updateDoc }, { upsert: false }).lean();
|
|
@@ -1177,7 +1218,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
1177
1218
|
* @description Create the status of a scheduled task
|
|
1178
1219
|
*/
|
|
1179
1220
|
async createScheduledTaskStatus(taskName, status) {
|
|
1180
|
-
const now =
|
|
1221
|
+
const now = /* @__PURE__ */ new Date();
|
|
1181
1222
|
const doc = ScheduledTaskSchema.parse({
|
|
1182
1223
|
processName: taskName,
|
|
1183
1224
|
datetime: now,
|
|
@@ -1192,7 +1233,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
1192
1233
|
async updateScheduledTaskStatus(taskId, status, result) {
|
|
1193
1234
|
const update = {
|
|
1194
1235
|
status,
|
|
1195
|
-
updated:
|
|
1236
|
+
updated: /* @__PURE__ */ new Date(),
|
|
1196
1237
|
...result && { result }
|
|
1197
1238
|
};
|
|
1198
1239
|
const filter = { _id: taskId };
|
|
@@ -1255,10 +1296,16 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
1255
1296
|
createdAt: /* @__PURE__ */ new Date()
|
|
1256
1297
|
});
|
|
1257
1298
|
}
|
|
1258
|
-
/**
|
|
1259
|
-
|
|
1299
|
+
/**
|
|
1300
|
+
* @description Remove a detector key
|
|
1301
|
+
* @param detectorKey The detector key to remove
|
|
1302
|
+
* @param expirationInSeconds Optional expiration time in seconds (default is 10 minutes)
|
|
1303
|
+
* */
|
|
1304
|
+
async removeDetectorKey(detectorKey, expirationInSeconds) {
|
|
1260
1305
|
const filter = { detectorKey };
|
|
1261
|
-
const expiresAt = new Date(
|
|
1306
|
+
const expiresAt = new Date(
|
|
1307
|
+
Date.now() + (expirationInSeconds || 10 * 60) * 1e3
|
|
1308
|
+
);
|
|
1262
1309
|
await this.tables?.detector.updateOne(filter, {
|
|
1263
1310
|
$set: { expiresAt }
|
|
1264
1311
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/databases/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import makeDir from "make-dir";
|
|
1
2
|
import "./base/index.js";
|
|
2
3
|
import { Databases } from "./databases/index.js";
|
|
3
4
|
import { MongoDatabase } from "./base/mongo.js";
|
|
@@ -5,6 +6,7 @@ import { MongoMemoryDatabase } from "./base/mongoMemory.js";
|
|
|
5
6
|
import { ProviderDatabase } from "./databases/provider.js";
|
|
6
7
|
import { CaptchaDatabase } from "./databases/captcha.js";
|
|
7
8
|
import { ClientDatabase } from "./databases/client.js";
|
|
9
|
+
console.debug(makeDir);
|
|
8
10
|
export {
|
|
9
11
|
CaptchaDatabase,
|
|
10
12
|
ClientDatabase,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
|