@prosopo/database 2.1.4 → 2.1.6
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/dist/base/index.d.ts +3 -0
- package/dist/base/index.d.ts.map +1 -0
- package/dist/base/index.js +3 -0
- package/dist/base/index.js.map +1 -0
- package/dist/base/mongo.d.ts +16 -0
- package/dist/base/mongo.d.ts.map +1 -0
- package/dist/base/mongo.js +89 -0
- package/dist/base/mongo.js.map +1 -0
- package/dist/base/mongoMemory.d.ts +11 -0
- package/dist/base/mongoMemory.d.ts.map +1 -0
- package/dist/base/mongoMemory.js +27 -0
- package/dist/base/mongoMemory.js.map +1 -0
- package/dist/captchaDatabase/captchaDatabse.d.ts +3 -0
- package/dist/captchaDatabase/captchaDatabse.d.ts.map +1 -0
- package/dist/captchaDatabase/captchaDatabse.js +22 -0
- package/dist/captchaDatabase/captchaDatabse.js.map +1 -0
- package/dist/captchaDatabase/index.d.ts +2 -0
- package/dist/captchaDatabase/index.d.ts.map +1 -0
- package/dist/captchaDatabase/index.js +2 -0
- package/dist/captchaDatabase/index.js.map +1 -0
- package/dist/cjs/base/index.cjs +6 -0
- package/dist/cjs/base/mongo.cjs +97 -0
- package/dist/cjs/base/mongoMemory.cjs +28 -0
- package/dist/cjs/databases/captcha.cjs +82 -0
- package/dist/cjs/databases/client.cjs +52 -0
- package/dist/cjs/databases/index.cjs +19 -0
- package/dist/cjs/databases/provider.cjs +983 -0
- package/dist/cjs/index.cjs +15 -0
- package/dist/databases/captcha.d.ts +16 -0
- package/dist/databases/captcha.d.ts.map +1 -0
- package/dist/databases/captcha.js +75 -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 +48 -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 +17 -0
- package/dist/databases/index.js.map +1 -0
- package/dist/databases/mongo.d.ts +58 -0
- package/dist/databases/mongo.d.ts.map +1 -0
- package/dist/databases/mongo.js +682 -0
- package/dist/databases/mongo.js.map +1 -0
- package/dist/databases/mongoMemory.d.ts +10 -0
- package/dist/databases/mongoMemory.d.ts.map +1 -0
- package/dist/databases/mongoMemory.js +30 -0
- package/dist/databases/mongoMemory.js.map +1 -0
- package/dist/databases/provider.d.ts +73 -0
- package/dist/databases/provider.d.ts.map +1 -0
- package/dist/databases/provider.js +823 -0
- package/dist/databases/provider.js.map +1 -0
- package/dist/eventsDatabase/eventsDatabase.d.ts +3 -0
- package/dist/eventsDatabase/eventsDatabase.d.ts.map +1 -0
- package/dist/eventsDatabase/eventsDatabase.js +46 -0
- package/dist/eventsDatabase/eventsDatabase.js.map +1 -0
- package/dist/eventsDatabase/index.d.ts +2 -0
- package/dist/eventsDatabase/index.d.ts.map +1 -0
- package/dist/eventsDatabase/index.js +2 -0
- package/dist/eventsDatabase/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
require("./base/index.cjs");
|
|
4
|
+
const index = require("./databases/index.cjs");
|
|
5
|
+
const mongo = require("./base/mongo.cjs");
|
|
6
|
+
const mongoMemory = require("./base/mongoMemory.cjs");
|
|
7
|
+
const provider = require("./databases/provider.cjs");
|
|
8
|
+
const captcha = require("./databases/captcha.cjs");
|
|
9
|
+
const client = require("./databases/client.cjs");
|
|
10
|
+
exports.Databases = index.Databases;
|
|
11
|
+
exports.MongoDatabase = mongo.MongoDatabase;
|
|
12
|
+
exports.MongoMemoryDatabase = mongoMemory.MongoMemoryDatabase;
|
|
13
|
+
exports.ProviderDatabase = provider.ProviderDatabase;
|
|
14
|
+
exports.CaptchaDatabase = captcha.CaptchaDatabase;
|
|
15
|
+
exports.ClientDatabase = client.ClientDatabase;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Logger } from "@prosopo/common";
|
|
2
|
+
import { type ICaptchaDatabase, type PoWCaptchaRecord, type Tables, type UserCommitmentRecord } from "@prosopo/types-database";
|
|
3
|
+
import { MongoDatabase } from "../base/index.js";
|
|
4
|
+
declare enum TableNames {
|
|
5
|
+
commitment = "commitment",
|
|
6
|
+
powcaptcha = "powcaptcha"
|
|
7
|
+
}
|
|
8
|
+
export declare class CaptchaDatabase extends MongoDatabase implements ICaptchaDatabase {
|
|
9
|
+
tables: Tables<TableNames>;
|
|
10
|
+
constructor(url: string, dbname?: string, authSource?: string, logger?: Logger);
|
|
11
|
+
connect(): Promise<void>;
|
|
12
|
+
getTables(): Tables<TableNames>;
|
|
13
|
+
saveCaptchas(imageCaptchaEvents: UserCommitmentRecord[], powCaptchaEvents: PoWCaptchaRecord[]): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=captcha.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/databases/captcha.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,MAAM,EAAoC,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAErB,KAAK,MAAM,EACX,KAAK,oBAAoB,EAEzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,aAAK,UAAU;IACd,UAAU,eAAe;IACzB,UAAU,eAAe;CACzB;AAeD,qBAAa,eAAgB,SAAQ,aAAc,YAAW,gBAAgB;IAC7E,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;gBAG1B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM;IAMD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASvC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC;IAUzB,YAAY,CACjB,kBAAkB,EAAE,oBAAoB,EAAE,EAC1C,gBAAgB,EAAE,gBAAgB,EAAE;CAsCrC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { ProsopoDBError, getLoggerDefault } from "@prosopo/common";
|
|
2
|
+
import { PoWCaptchaRecordSchema, UserCommitmentRecordSchema, } from "@prosopo/types-database";
|
|
3
|
+
import { MongoDatabase } from "../base/index.js";
|
|
4
|
+
const logger = getLoggerDefault();
|
|
5
|
+
var TableNames;
|
|
6
|
+
(function (TableNames) {
|
|
7
|
+
TableNames["commitment"] = "commitment";
|
|
8
|
+
TableNames["powcaptcha"] = "powcaptcha";
|
|
9
|
+
})(TableNames || (TableNames = {}));
|
|
10
|
+
const CAPTCHA_TABLES = [
|
|
11
|
+
{
|
|
12
|
+
collectionName: TableNames.powcaptcha,
|
|
13
|
+
modelName: "PowCaptcha",
|
|
14
|
+
schema: PoWCaptchaRecordSchema,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
collectionName: TableNames.commitment,
|
|
18
|
+
modelName: "UserCommitment",
|
|
19
|
+
schema: UserCommitmentRecordSchema,
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
export class CaptchaDatabase extends MongoDatabase {
|
|
23
|
+
constructor(url, dbname, authSource, logger) {
|
|
24
|
+
super(url, dbname, authSource, logger);
|
|
25
|
+
this.tables = {};
|
|
26
|
+
}
|
|
27
|
+
async connect() {
|
|
28
|
+
await super.connect();
|
|
29
|
+
CAPTCHA_TABLES.map(({ collectionName, modelName, schema }) => {
|
|
30
|
+
if (this.connection) {
|
|
31
|
+
this.tables[collectionName] = this.connection.model(modelName, schema);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
getTables() {
|
|
36
|
+
if (!this.tables) {
|
|
37
|
+
throw new ProsopoDBError("DATABASE.TABLES_UNDEFINED", {
|
|
38
|
+
context: { failedFuncName: this.getTables.name },
|
|
39
|
+
logger: this.logger,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return this.tables;
|
|
43
|
+
}
|
|
44
|
+
async saveCaptchas(imageCaptchaEvents, powCaptchaEvents) {
|
|
45
|
+
await this.connect();
|
|
46
|
+
if (imageCaptchaEvents.length) {
|
|
47
|
+
const result = await this.tables.commitment.bulkWrite(imageCaptchaEvents.map((doc) => {
|
|
48
|
+
const { _id, ...safeDoc } = doc;
|
|
49
|
+
return {
|
|
50
|
+
updateOne: {
|
|
51
|
+
filter: { id: safeDoc.id },
|
|
52
|
+
update: { $set: safeDoc },
|
|
53
|
+
upsert: true,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}));
|
|
57
|
+
logger.info("Mongo Saved Image Events", result);
|
|
58
|
+
}
|
|
59
|
+
if (powCaptchaEvents.length) {
|
|
60
|
+
const result = await this.tables.powcaptcha.bulkWrite(powCaptchaEvents.map((doc) => {
|
|
61
|
+
const { _id, ...safeDoc } = doc;
|
|
62
|
+
return {
|
|
63
|
+
updateOne: {
|
|
64
|
+
filter: { challenge: safeDoc.challenge },
|
|
65
|
+
update: { $set: safeDoc },
|
|
66
|
+
upsert: true,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}));
|
|
70
|
+
logger.info("Mongo Saved PoW Events", result);
|
|
71
|
+
}
|
|
72
|
+
await this.close();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=captcha.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/databases/captcha.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Logger } from "@prosopo/common";
|
|
2
|
+
import type { Timestamp } from "@prosopo/types";
|
|
3
|
+
import { type ClientRecord, type IClientDatabase, TableNames, type Tables } from "@prosopo/types-database";
|
|
4
|
+
import { MongoDatabase } from "../base/index.js";
|
|
5
|
+
export declare class ClientDatabase extends MongoDatabase implements IClientDatabase {
|
|
6
|
+
tables: Tables<TableNames>;
|
|
7
|
+
constructor(url: string, dbname?: string, authSource?: string, logger?: Logger);
|
|
8
|
+
connect(): Promise<void>;
|
|
9
|
+
getTables(): Tables<TableNames>;
|
|
10
|
+
getUpdatedClients(updatedAtTimestamp: Timestamp): Promise<ClientRecord[]>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/databases/client.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,MAAM,EAEX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUjD,qBAAa,cAAe,SAAQ,aAAc,YAAW,eAAe;IAC3E,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;gBAG1B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM;IAMD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASvC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC;IAUzB,iBAAiB,CACtB,kBAAkB,EAAE,SAAS,GAC3B,OAAO,CAAC,YAAY,EAAE,CAAC;CAkB1B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ProsopoDBError } from "@prosopo/common";
|
|
2
|
+
import { TableNames, UserDataSchema, } from "@prosopo/types-database";
|
|
3
|
+
import { MongoDatabase } from "../base/index.js";
|
|
4
|
+
const CLIENT_TABLES = [
|
|
5
|
+
{
|
|
6
|
+
collectionName: TableNames.emails,
|
|
7
|
+
modelName: "Email",
|
|
8
|
+
schema: UserDataSchema,
|
|
9
|
+
},
|
|
10
|
+
];
|
|
11
|
+
export class ClientDatabase extends MongoDatabase {
|
|
12
|
+
constructor(url, dbname, authSource, logger) {
|
|
13
|
+
super(url, dbname, authSource, logger);
|
|
14
|
+
this.tables = {};
|
|
15
|
+
}
|
|
16
|
+
async connect() {
|
|
17
|
+
await super.connect();
|
|
18
|
+
CLIENT_TABLES.map(({ collectionName, modelName, schema }) => {
|
|
19
|
+
if (this.connection) {
|
|
20
|
+
this.tables[collectionName] = this.connection.model(modelName, schema);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
getTables() {
|
|
25
|
+
if (!this.tables) {
|
|
26
|
+
throw new ProsopoDBError("DATABASE.TABLES_UNDEFINED", {
|
|
27
|
+
context: { failedFuncName: this.getTables.name },
|
|
28
|
+
logger: this.logger,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return this.tables;
|
|
32
|
+
}
|
|
33
|
+
async getUpdatedClients(updatedAtTimestamp) {
|
|
34
|
+
await this.connect();
|
|
35
|
+
const newClientRecords = await this.tables.emails
|
|
36
|
+
.find({
|
|
37
|
+
$or: [
|
|
38
|
+
{ updatedAtTimestamp: { $gt: updatedAtTimestamp } },
|
|
39
|
+
{ updatedAtTimestamp: { $exists: false } },
|
|
40
|
+
],
|
|
41
|
+
activated: true,
|
|
42
|
+
}, { account: 1, settings: 1 })
|
|
43
|
+
.lean();
|
|
44
|
+
await this.close();
|
|
45
|
+
return newClientRecords;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/databases/client.ts"],"names":[],"mappings":"AAcA,OAAO,EAAe,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAGN,UAAU,EAEV,cAAc,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,aAAa,GAAG;IACrB;QACC,cAAc,EAAE,UAAU,CAAC,MAAM;QACjC,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE,cAAc;KACtB;CACD,CAAC;AAEF,MAAM,OAAO,cAAe,SAAQ,aAAa;IAGhD,YACC,GAAW,EACX,MAAe,EACf,UAAmB,EACnB,MAAe;QAEf,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,EAAwB,CAAC;IACxC,CAAC;IAEQ,KAAK,CAAC,OAAO;QACrB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;YAC3D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACxE,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,SAAS;QACR,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,cAAc,CAAC,2BAA2B,EAAE;gBACrD,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;gBAChD,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,iBAAiB,CACtB,kBAA6B;QAE7B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;aAC/C,IAAI,CACJ;YACC,GAAG,EAAE;gBACJ,EAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,EAAE;gBACnD,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;aAC1C;YACD,SAAS,EAAE,IAAI;SACf,EACD,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAC3B;aACA,IAAI,EAAkB,CAAC;QACzB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,gBAAgB,CAAC;IACzB,CAAC;CACD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MongoDatabase } from "../base/mongo.js";
|
|
2
|
+
import { MongoMemoryDatabase } from "../base/mongoMemory.js";
|
|
3
|
+
import { CaptchaDatabase } from "./captcha.js";
|
|
4
|
+
import { ClientDatabase } from "./client.js";
|
|
5
|
+
import { ProviderDatabase } from "./provider.js";
|
|
6
|
+
export * from "./captcha.js";
|
|
7
|
+
export * from "./client.js";
|
|
8
|
+
export { ProviderDatabase } from "./provider.js";
|
|
9
|
+
export declare const Databases: {
|
|
10
|
+
mongo: typeof MongoDatabase;
|
|
11
|
+
provider: typeof ProviderDatabase;
|
|
12
|
+
client: typeof ClientDatabase;
|
|
13
|
+
captcha: typeof CaptchaDatabase;
|
|
14
|
+
mongoMemory: typeof MongoMemoryDatabase;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/databases/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DatabaseTypes } from "@prosopo/types";
|
|
2
|
+
import { MongoDatabase } from "../base/mongo.js";
|
|
3
|
+
import { MongoMemoryDatabase } from "../base/mongoMemory.js";
|
|
4
|
+
import { CaptchaDatabase } from "./captcha.js";
|
|
5
|
+
import { ClientDatabase } from "./client.js";
|
|
6
|
+
import { ProviderDatabase } from "./provider.js";
|
|
7
|
+
export * from "./captcha.js";
|
|
8
|
+
export * from "./client.js";
|
|
9
|
+
export { ProviderDatabase } from "./provider.js";
|
|
10
|
+
export const Databases = {
|
|
11
|
+
[DatabaseTypes.Values.mongo]: MongoDatabase,
|
|
12
|
+
[DatabaseTypes.Values.provider]: ProviderDatabase,
|
|
13
|
+
[DatabaseTypes.Values.client]: ClientDatabase,
|
|
14
|
+
[DatabaseTypes.Values.captcha]: CaptchaDatabase,
|
|
15
|
+
[DatabaseTypes.Values.mongoMemory]: MongoMemoryDatabase,
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/databases/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,MAAM,CAAC,MAAM,SAAS,GAAG;IACxB,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa;IAC3C,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,gBAAgB;IACjD,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc;IAC7C,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,eAAe;IAC/C,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,mBAAmB;CACvD,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/// <reference types="mongoose/types/connection.js" />
|
|
2
|
+
import { AsyncFactory, type Logger } from "@prosopo/common";
|
|
3
|
+
import { type Captcha, type CaptchaSolution, CaptchaStates, type DatasetBase, type DatasetWithIds, type DatasetWithIdsAndTree, type Hash, type PendingCaptchaRequest, type PowCaptcha, ScheduledTaskNames, type ScheduledTaskResult, ScheduledTaskStatus } from "@prosopo/types";
|
|
4
|
+
import { type Database, type ScheduledTaskRecord, type SolutionRecord, type Tables, type UserCommitmentRecord, type UserSolutionRecord } from "@prosopo/types-database";
|
|
5
|
+
import { type DeleteResult } from "mongodb";
|
|
6
|
+
import mongoose, { type Connection } from "mongoose";
|
|
7
|
+
export declare class ProsopoDatabase extends AsyncFactory implements Database {
|
|
8
|
+
url: string;
|
|
9
|
+
tables?: Tables;
|
|
10
|
+
dbname: string;
|
|
11
|
+
connection?: Connection;
|
|
12
|
+
logger: Logger;
|
|
13
|
+
constructor();
|
|
14
|
+
init(url: string, dbname: string, logger: Logger, authSource?: string): Promise<this>;
|
|
15
|
+
getTables(): Tables;
|
|
16
|
+
getConnection(): mongoose.Connection;
|
|
17
|
+
connect(): Promise<void>;
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
storeDataset(dataset: DatasetWithIdsAndTree): Promise<void>;
|
|
20
|
+
getSolutions(datasetId: string): Promise<SolutionRecord[]>;
|
|
21
|
+
getDataset(datasetId: string): Promise<DatasetWithIds>;
|
|
22
|
+
getRandomCaptcha(solved: boolean, datasetId: Hash, size?: number): Promise<Captcha[] | undefined>;
|
|
23
|
+
getCaptchaById(captchaId: string[]): Promise<Captcha[] | undefined>;
|
|
24
|
+
updateCaptcha(captcha: Captcha, datasetId: Hash): Promise<void>;
|
|
25
|
+
removeCaptchas(captchaIds: string[]): Promise<void>;
|
|
26
|
+
getDatasetDetails(datasetId: Hash): Promise<DatasetBase>;
|
|
27
|
+
storeDappUserSolution(captchas: CaptchaSolution[], commit: UserCommitmentRecord): Promise<void>;
|
|
28
|
+
storePowCaptchaRecord(challenge: string, checked: boolean): Promise<void>;
|
|
29
|
+
getPowCaptchaRecordByChallenge(challenge: string): Promise<PowCaptcha | null>;
|
|
30
|
+
updatePowCaptchaRecord(challenge: string, checked: boolean): Promise<void>;
|
|
31
|
+
getProcessedDappUserSolutions(): Promise<UserSolutionRecord[]>;
|
|
32
|
+
getProcessedDappUserCommitments(): Promise<UserCommitmentRecord[]>;
|
|
33
|
+
getUnbatchedDappUserCommitments(): Promise<UserCommitmentRecord[]>;
|
|
34
|
+
getUnstoredDappUserCommitments(): Promise<UserCommitmentRecord[]>;
|
|
35
|
+
markDappUserCommitmentsStored(commitmentIds: Hash[]): Promise<void>;
|
|
36
|
+
getBatchedDappUserCommitments(): Promise<UserCommitmentRecord[]>;
|
|
37
|
+
removeProcessedDappUserSolutions(commitmentIds: string[]): Promise<DeleteResult | undefined>;
|
|
38
|
+
removeProcessedDappUserCommitments(commitmentIds: string[]): Promise<DeleteResult | undefined>;
|
|
39
|
+
storeDappUserPending(userAccount: string, requestHash: string, salt: string, deadlineTimestamp: number, requestedAtBlock: number): Promise<void>;
|
|
40
|
+
getDappUserPending(requestHash: string): Promise<PendingCaptchaRequest>;
|
|
41
|
+
updateDappUserPendingStatus(requestHash: string): Promise<void>;
|
|
42
|
+
getAllCaptchasByDatasetId(datasetId: string, state?: CaptchaStates): Promise<Captcha[] | undefined>;
|
|
43
|
+
getAllDappUserSolutions(captchaId: string[]): Promise<UserSolutionRecord[] | undefined>;
|
|
44
|
+
getDatasetIdWithSolvedCaptchasOfSizeN(solvedCaptchaCount: number): Promise<string>;
|
|
45
|
+
getRandomSolvedCaptchasFromSingleDataset(datasetId: string, size: number): Promise<CaptchaSolution[]>;
|
|
46
|
+
getDappUserSolutionById(commitmentId: string): Promise<UserSolutionRecord | undefined>;
|
|
47
|
+
getDappUserCommitmentById(commitmentId: string): Promise<UserCommitmentRecord | undefined>;
|
|
48
|
+
getDappUserCommitmentByAccount(userAccount: string): Promise<UserCommitmentRecord[]>;
|
|
49
|
+
approveDappUserCommitment(commitmentId: string): Promise<void>;
|
|
50
|
+
flagProcessedDappUserSolutions(captchaIds: Hash[]): Promise<void>;
|
|
51
|
+
flagProcessedDappUserCommitments(commitmentIds: Hash[]): Promise<void>;
|
|
52
|
+
flagBatchedDappUserCommitments(commitmentIds: Hash[]): Promise<void>;
|
|
53
|
+
getLastBatchCommitTime(): Promise<Date>;
|
|
54
|
+
getScheduledTaskStatus(taskId: string, status: ScheduledTaskStatus): Promise<ScheduledTaskRecord | undefined>;
|
|
55
|
+
getLastScheduledTaskStatus(task: ScheduledTaskNames, status?: ScheduledTaskStatus): Promise<ScheduledTaskRecord | undefined>;
|
|
56
|
+
storeScheduledTaskStatus(taskId: `0x${string}`, task: ScheduledTaskNames, status: ScheduledTaskStatus, result?: ScheduledTaskResult): Promise<void>;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=mongo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongo.d.ts","sourceRoot":"","sources":["../../src/databases/mongo.ts"],"names":[],"mappings":";AAcA,OAAO,EACL,YAAY,EACZ,KAAK,MAAM,EAIZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,aAAa,EAEb,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAE1B,KAAK,IAAI,EACT,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,KAAK,QAAQ,EAIb,KAAK,mBAAmB,EAGxB,KAAK,cAAc,EAEnB,KAAK,MAAM,EACX,KAAK,oBAAoB,EAGzB,KAAK,kBAAkB,EAGxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,SAAS,CAAC;AAE9D,OAAO,QAAQ,EAAE,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAarD,qBAAa,eAAgB,SAAQ,YAAa,YAAW,QAAQ;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;;IASF,IAAI,CACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM;IAcrB,SAAS,IAAI,MAAM;IAUnB,aAAa,IAAI,QAAQ,CAAC,UAAU;IAa9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoExB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,YAAY,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgF3D,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAU1D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAqDtD,gBAAgB,CACpB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,IAAI,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC;IA0C3B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC;IAqBnE,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/D,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD,iBAAiB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IA0BxD,qBAAqB,CACzB,QAAQ,EAAE,eAAe,EAAE,EAC3B,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAqCV,qBAAqB,CACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC;IAgCV,8BAA8B,CAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAsCvB,sBAAsB,CAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC;IAqCV,6BAA6B,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAS9D,+BAA+B,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAOlE,+BAA+B,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAOlE,8BAA8B,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAWjE,6BAA6B,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE,6BAA6B,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAOhE,gCAAgC,CACpC,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAS9B,kCAAkC,CACtC,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAU9B,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC;IA2BV,kBAAkB,CACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,CAAC;IAsB3B,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB/D,yBAAyB,CAC7B,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC;IAoB3B,uBAAuB,CAC3B,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,kBAAkB,EAAE,GAAG,SAAS,CAAC;IAgBtC,qCAAqC,CACzC,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC;IA8BZ,wCAAwC,CAC5C,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,eAAe,EAAE,CAAC;IAyCvB,uBAAuB,CAC3B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAwBpC,yBAAyB,CAC7B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IActC,8BAA8B,CAClC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAc5B,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB9D,8BAA8B,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjE,gCAAgC,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBtE,8BAA8B,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBpE,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBvC,sBAAsB,CAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAWrC,0BAA0B,CAC9B,IAAI,EAAE,kBAAkB,EACxB,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAmBrC,wBAAwB,CAC5B,MAAM,EAAE,KAAK,MAAM,EAAE,EACrB,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC;CAWjB"}
|