@prosopo/database 3.4.5 → 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 +80 -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.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.map +1 -0
- package/dist/cjs/base/mongo.cjs +2 -1
- package/dist/cjs/databases/captcha.cjs +4 -3
- package/dist/cjs/databases/provider.cjs +41 -79
- 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.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 +41 -79
- 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 +17 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,85 @@
|
|
|
1
1
|
# @prosopo/database
|
|
2
2
|
|
|
3
|
+
## 3.4.13
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- Updated dependencies [8f1773a]
|
|
7
|
+
- @prosopo/types@3.5.11
|
|
8
|
+
- @prosopo/types-database@3.3.13
|
|
9
|
+
- @prosopo/user-access-policy@3.5.27
|
|
10
|
+
|
|
11
|
+
## 3.4.12
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [cb8ab85]
|
|
15
|
+
- @prosopo/types-database@3.3.12
|
|
16
|
+
- @prosopo/types@3.5.10
|
|
17
|
+
- @prosopo/user-access-policy@3.5.26
|
|
18
|
+
|
|
19
|
+
## 3.4.11
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- 43907e8: Convert timestamp fields from numbers to Date objects throughout codebase
|
|
23
|
+
- b4639ec: Merge frictionless tokens into sessions
|
|
24
|
+
- Updated dependencies [43907e8]
|
|
25
|
+
- Updated dependencies [b4639ec]
|
|
26
|
+
- Updated dependencies [005ce66]
|
|
27
|
+
- Updated dependencies [7101036]
|
|
28
|
+
- @prosopo/types-database@3.3.11
|
|
29
|
+
- @prosopo/types@3.5.9
|
|
30
|
+
- @prosopo/user-access-policy@3.5.25
|
|
31
|
+
|
|
32
|
+
## 3.4.10
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- Updated dependencies [b10a65f]
|
|
36
|
+
- Updated dependencies [e5c259d]
|
|
37
|
+
- Updated dependencies [6420187]
|
|
38
|
+
- @prosopo/types-database@3.3.10
|
|
39
|
+
- @prosopo/types@3.5.8
|
|
40
|
+
- @prosopo/user-access-policy@3.5.24
|
|
41
|
+
|
|
42
|
+
## 3.4.9
|
|
43
|
+
### Patch Changes
|
|
44
|
+
|
|
45
|
+
- b8185a4: feat/uap-rules-syncer
|
|
46
|
+
- Updated dependencies [c9d8fdf]
|
|
47
|
+
- Updated dependencies [b8185a4]
|
|
48
|
+
- Updated dependencies [3a027ef]
|
|
49
|
+
- Updated dependencies [3a027ef]
|
|
50
|
+
- @prosopo/user-access-policy@3.5.23
|
|
51
|
+
- @prosopo/common@3.1.21
|
|
52
|
+
- @prosopo/config@3.1.21
|
|
53
|
+
- @prosopo/types-database@3.3.9
|
|
54
|
+
- @prosopo/redis-client@1.0.6
|
|
55
|
+
- @prosopo/locale@3.1.21
|
|
56
|
+
- @prosopo/types@3.5.7
|
|
57
|
+
|
|
58
|
+
## 3.4.8
|
|
59
|
+
### Patch Changes
|
|
60
|
+
|
|
61
|
+
- Updated dependencies [5d11a81]
|
|
62
|
+
- @prosopo/types@3.5.6
|
|
63
|
+
- @prosopo/types-database@3.3.8
|
|
64
|
+
- @prosopo/user-access-policy@3.5.22
|
|
65
|
+
|
|
66
|
+
## 3.4.7
|
|
67
|
+
### Patch Changes
|
|
68
|
+
|
|
69
|
+
- Updated dependencies [494c5a8]
|
|
70
|
+
- @prosopo/types-database@3.3.7
|
|
71
|
+
- @prosopo/types@3.5.5
|
|
72
|
+
- @prosopo/user-access-policy@3.5.21
|
|
73
|
+
|
|
74
|
+
## 3.4.6
|
|
75
|
+
### Patch Changes
|
|
76
|
+
|
|
77
|
+
- Updated dependencies [08ff50f]
|
|
78
|
+
- Updated dependencies [08ff50f]
|
|
79
|
+
- @prosopo/types-database@3.3.6
|
|
80
|
+
- @prosopo/types@3.5.4
|
|
81
|
+
- @prosopo/user-access-policy@3.5.20
|
|
82
|
+
|
|
3
83
|
## 3.4.5
|
|
4
84
|
### Patch Changes
|
|
5
85
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAaA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAaA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Logger } from "@prosopo/common";
|
|
2
|
+
import type { IDatabase } from "@prosopo/types-database";
|
|
3
|
+
import mongoose, { type Connection } from "mongoose";
|
|
4
|
+
export declare class MongoDatabase implements IDatabase {
|
|
5
|
+
protected readonly _url: string;
|
|
6
|
+
safeURL: string;
|
|
7
|
+
dbname: string;
|
|
8
|
+
connection?: Connection;
|
|
9
|
+
logger: Logger;
|
|
10
|
+
connected: boolean;
|
|
11
|
+
private connecting?;
|
|
12
|
+
constructor(url: string, dbname?: string, authSource?: string, logger?: Logger);
|
|
13
|
+
get url(): string;
|
|
14
|
+
getConnection(): mongoose.Connection;
|
|
15
|
+
connect(): Promise<void>;
|
|
16
|
+
close(): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=mongo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongo.d.ts","sourceRoot":"","sources":["../../src/base/mongo.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,MAAM,EAA6B,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,QAAQ,EAAE,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAarD,qBAAa,aAAc,YAAW,SAAS;IAC9C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,UAAS;IAClB,OAAO,CAAC,UAAU,CAAC,CAAgB;gBAGlC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM;IAgBhB,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,aAAa,IAAI,QAAQ,CAAC,UAAU;IAa9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsGxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../src/base/mongo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Logger } from "@prosopo/common";
|
|
2
|
+
import { MongoDatabase } from "./mongo.js";
|
|
3
|
+
export declare class MongoMemoryDatabase extends MongoDatabase {
|
|
4
|
+
protected _url: string;
|
|
5
|
+
private mongod;
|
|
6
|
+
constructor(_url: string, dbname: string, logger: Logger, authSource?: string);
|
|
7
|
+
connect(): Promise<void>;
|
|
8
|
+
close(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=mongoMemory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongoMemory.d.ts","sourceRoot":"","sources":["../../src/base/mongoMemory.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,qBAAa,mBAAoB,SAAQ,aAAa;IACrD,UAAmB,IAAI,SAAM;IAC7B,OAAO,CAAC,MAAM,CAAgC;gBAG7C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM;IAKL,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAKrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongoMemory.js","sourceRoot":"","sources":["../../src/base/mongoMemory.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAIrD,YACC,IAAY,EACZ,MAAc,EACd,MAAc,EACd,UAAmB;QAEnB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QATpB,SAAI,GAAG,EAAE,CAAC;IAU7B,CAAC;IAEQ,KAAK,CAAC,OAAO;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAEQ,KAAK,CAAC,KAAK;QACnB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IACzB,CAAC;CACD"}
|
package/dist/cjs/base/mongo.cjs
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const common = require("@prosopo/common");
|
|
4
4
|
const mongodb = require("mongodb");
|
|
5
5
|
const mongoose = require("mongoose");
|
|
6
|
+
var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
|
|
6
7
|
mongoose.set("strictQuery", false);
|
|
7
8
|
const DEFAULT_ENDPOINT = "mongodb://127.0.0.1:27017";
|
|
8
9
|
class MongoDatabase {
|
|
@@ -19,7 +20,7 @@ class MongoDatabase {
|
|
|
19
20
|
this._url = parsedUrl.toString();
|
|
20
21
|
this.safeURL = this.url.replace(/\w+:\w+/, "<Credentials>");
|
|
21
22
|
this.dbname = dbname || parsedUrl.pathname.replace("/", "");
|
|
22
|
-
this.logger = logger || common.getLogger("info",
|
|
23
|
+
this.logger = logger || common.getLogger("info", typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("base/mongo.cjs", document.baseURI).href);
|
|
23
24
|
}
|
|
24
25
|
get url() {
|
|
25
26
|
return this._url;
|
|
@@ -4,7 +4,8 @@ const common = require("@prosopo/common");
|
|
|
4
4
|
const typesDatabase = require("@prosopo/types-database");
|
|
5
5
|
require("../base/index.cjs");
|
|
6
6
|
const mongo = require("../base/mongo.cjs");
|
|
7
|
-
|
|
7
|
+
var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
|
|
8
|
+
const logger = common.getLogger("info", typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("databases/captcha.cjs", document.baseURI).href);
|
|
8
9
|
var TableNames = /* @__PURE__ */ ((TableNames2) => {
|
|
9
10
|
TableNames2["frictionlessToken"] = "frictionlessToken";
|
|
10
11
|
TableNames2["session"] = "session";
|
|
@@ -87,8 +88,8 @@ class CaptchaDatabase extends mongo.MongoDatabase {
|
|
|
87
88
|
await this.connect();
|
|
88
89
|
if (sessionEvents.length) {
|
|
89
90
|
const result = await this.tables.session.bulkWrite(
|
|
90
|
-
sessionEvents.map((
|
|
91
|
-
const { _id, ...safeDoc } =
|
|
91
|
+
sessionEvents.map((document2) => {
|
|
92
|
+
const { _id, ...safeDoc } = document2;
|
|
92
93
|
return {
|
|
93
94
|
insertOne: {
|
|
94
95
|
document: safeDoc
|
|
@@ -5,7 +5,7 @@ const common = require("@prosopo/common");
|
|
|
5
5
|
const redisClient = require("@prosopo/redis-client");
|
|
6
6
|
const types = require("@prosopo/types");
|
|
7
7
|
const typesDatabase = require("@prosopo/types-database");
|
|
8
|
-
const
|
|
8
|
+
const redis = require("@prosopo/user-access-policy/redis");
|
|
9
9
|
const mongo = require("../base/mongo.cjs");
|
|
10
10
|
var TableNames = /* @__PURE__ */ ((TableNames2) => {
|
|
11
11
|
TableNames2["captcha"] = "captcha";
|
|
@@ -17,7 +17,6 @@ var TableNames = /* @__PURE__ */ ((TableNames2) => {
|
|
|
17
17
|
TableNames2["scheduler"] = "scheduler";
|
|
18
18
|
TableNames2["powcaptcha"] = "powcaptcha";
|
|
19
19
|
TableNames2["client"] = "client";
|
|
20
|
-
TableNames2["frictionlessToken"] = "frictionlessToken";
|
|
21
20
|
TableNames2["session"] = "session";
|
|
22
21
|
TableNames2["detector"] = "detector";
|
|
23
22
|
return TableNames2;
|
|
@@ -68,11 +67,6 @@ const PROVIDER_TABLES = [
|
|
|
68
67
|
modelName: "Client",
|
|
69
68
|
schema: typesDatabase.ClientRecordSchema
|
|
70
69
|
},
|
|
71
|
-
{
|
|
72
|
-
collectionName: "frictionlessToken",
|
|
73
|
-
modelName: "FrictionlessToken",
|
|
74
|
-
schema: typesDatabase.FrictionlessTokenRecordSchema
|
|
75
|
-
},
|
|
76
70
|
{
|
|
77
71
|
collectionName: "session",
|
|
78
72
|
modelName: "Session",
|
|
@@ -114,12 +108,12 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
114
108
|
this.redisAccessRulesConnection = redisClient.setupRedisIndex(
|
|
115
109
|
this.redisConnection,
|
|
116
110
|
{
|
|
117
|
-
...
|
|
118
|
-
name: this.options.redis?.indexName ||
|
|
111
|
+
...redis.accessRulesRedisIndex,
|
|
112
|
+
name: this.options.redis?.indexName || redis.accessRulesRedisIndex.name
|
|
119
113
|
},
|
|
120
114
|
this.logger
|
|
121
115
|
);
|
|
122
|
-
this.userAccessRulesStorage =
|
|
116
|
+
this.userAccessRulesStorage = redis.createRedisAccessRulesStorage(
|
|
123
117
|
this.redisAccessRulesConnection,
|
|
124
118
|
this.logger
|
|
125
119
|
);
|
|
@@ -448,7 +442,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
448
442
|
async storeUserImageCaptchaSolution(captchas, commit) {
|
|
449
443
|
const commitmentRecord = typesDatabase.UserCommitmentSchema.parse({
|
|
450
444
|
...commit,
|
|
451
|
-
lastUpdatedTimestamp: Date
|
|
445
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date()
|
|
452
446
|
});
|
|
453
447
|
if (captchas.length) {
|
|
454
448
|
const filter = {
|
|
@@ -488,18 +482,20 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
488
482
|
* @param ipAddress
|
|
489
483
|
* @param headers
|
|
490
484
|
* @param ja4
|
|
491
|
-
* @param
|
|
485
|
+
* @param sessionId
|
|
492
486
|
* @param serverChecked
|
|
493
487
|
* @param userSubmitted
|
|
494
488
|
* @param storedStatus
|
|
495
489
|
* @param userSignature
|
|
496
490
|
* @returns {Promise<void>} A promise that resolves when the record is added.
|
|
497
491
|
*/
|
|
498
|
-
async storePowCaptchaRecord(challenge, components, difficulty, providerSignature, ipAddress, headers, ja4,
|
|
492
|
+
async storePowCaptchaRecord(challenge, components, difficulty, providerSignature, ipAddress, headers, ja4, sessionId, serverChecked = false, userSubmitted = false, storedStatus = types.StoredStatusNames.notStored, userSignature) {
|
|
499
493
|
const tables = this.getTables();
|
|
500
494
|
const powCaptchaRecord = {
|
|
501
495
|
challenge,
|
|
502
|
-
|
|
496
|
+
userAccount: components.userAccount,
|
|
497
|
+
dappAccount: components.dappAccount,
|
|
498
|
+
requestedAtTimestamp: new Date(components.requestedAtTimestamp),
|
|
503
499
|
ipAddress,
|
|
504
500
|
headers,
|
|
505
501
|
ja4,
|
|
@@ -509,8 +505,8 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
509
505
|
difficulty,
|
|
510
506
|
providerSignature,
|
|
511
507
|
userSignature,
|
|
512
|
-
lastUpdatedTimestamp: Date
|
|
513
|
-
|
|
508
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date(),
|
|
509
|
+
sessionId
|
|
514
510
|
};
|
|
515
511
|
try {
|
|
516
512
|
await tables.powcaptcha.create(powCaptchaRecord);
|
|
@@ -591,7 +587,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
591
587
|
*/
|
|
592
588
|
async updatePowCaptchaRecordResult(challenge, result, serverChecked = false, userSubmitted = false, userSignature) {
|
|
593
589
|
const tables = this.getTables();
|
|
594
|
-
const timestamp = Date
|
|
590
|
+
const timestamp = /* @__PURE__ */ new Date();
|
|
595
591
|
const update = {
|
|
596
592
|
result,
|
|
597
593
|
serverChecked,
|
|
@@ -692,7 +688,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
692
688
|
*/
|
|
693
689
|
async markDappUserCommitmentsStored(commitmentIds) {
|
|
694
690
|
const updateDoc = {
|
|
695
|
-
storedAtTimestamp: Date
|
|
691
|
+
storedAtTimestamp: /* @__PURE__ */ new Date()
|
|
696
692
|
};
|
|
697
693
|
await this.tables?.commitment.updateMany(
|
|
698
694
|
{ id: { $in: commitmentIds } },
|
|
@@ -705,7 +701,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
705
701
|
async markDappUserCommitmentsChecked(commitmentIds) {
|
|
706
702
|
const updateDoc = {
|
|
707
703
|
[types.StoredStatusNames.serverChecked]: true,
|
|
708
|
-
lastUpdatedTimestamp: Date
|
|
704
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date()
|
|
709
705
|
};
|
|
710
706
|
await this.tables?.commitment.updateMany(
|
|
711
707
|
{ id: { $in: commitmentIds } },
|
|
@@ -769,7 +765,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
769
765
|
*/
|
|
770
766
|
async markDappUserPoWCommitmentsStored(challenges) {
|
|
771
767
|
const updateDoc = {
|
|
772
|
-
storedAtTimestamp: Date
|
|
768
|
+
storedAtTimestamp: /* @__PURE__ */ new Date()
|
|
773
769
|
};
|
|
774
770
|
await this.tables?.powcaptcha.updateMany(
|
|
775
771
|
{ challenge: { $in: challenges } },
|
|
@@ -782,7 +778,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
782
778
|
async markDappUserPoWCommitmentsChecked(challenges) {
|
|
783
779
|
const updateDoc = {
|
|
784
780
|
[types.StoredStatusNames.serverChecked]: true,
|
|
785
|
-
lastUpdatedTimestamp: Date
|
|
781
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date()
|
|
786
782
|
};
|
|
787
783
|
await this.tables?.powcaptcha.updateMany(
|
|
788
784
|
{ challenge: { $in: challenges } },
|
|
@@ -792,46 +788,6 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
792
788
|
{ upsert: false }
|
|
793
789
|
);
|
|
794
790
|
}
|
|
795
|
-
/**
|
|
796
|
-
* Store a new frictionless token record
|
|
797
|
-
*/
|
|
798
|
-
async storeFrictionlessTokenRecord(tokenRecord) {
|
|
799
|
-
const doc = await this.tables.frictionlessToken.create(
|
|
800
|
-
tokenRecord
|
|
801
|
-
);
|
|
802
|
-
return doc._id;
|
|
803
|
-
}
|
|
804
|
-
/** Update a frictionless token record */
|
|
805
|
-
async updateFrictionlessTokenRecord(tokenId, updates) {
|
|
806
|
-
const filter = { _id: tokenId };
|
|
807
|
-
await this.tables.frictionlessToken.updateOne(filter, updates);
|
|
808
|
-
}
|
|
809
|
-
/** Get a frictionless token record */
|
|
810
|
-
async getFrictionlessTokenRecordByTokenId(tokenId) {
|
|
811
|
-
const filter = { _id: tokenId };
|
|
812
|
-
const doc = await this.tables.frictionlessToken.findOne(
|
|
813
|
-
filter
|
|
814
|
-
);
|
|
815
|
-
return doc ? doc : void 0;
|
|
816
|
-
}
|
|
817
|
-
/** Get many frictionless token records */
|
|
818
|
-
async getFrictionlessTokenRecordsByTokenIds(tokenId) {
|
|
819
|
-
const filter = {
|
|
820
|
-
_id: { $in: tokenId }
|
|
821
|
-
};
|
|
822
|
-
return this.tables.frictionlessToken.find(filter).lean();
|
|
823
|
-
}
|
|
824
|
-
/**
|
|
825
|
-
* Check if a frictionless token record exists.
|
|
826
|
-
* Used to ensure that a token is not used more than once.
|
|
827
|
-
*/
|
|
828
|
-
async getFrictionlessTokenRecordByToken(token) {
|
|
829
|
-
const filter = { token };
|
|
830
|
-
const record = await this.tables.frictionlessToken.findOne(
|
|
831
|
-
filter
|
|
832
|
-
);
|
|
833
|
-
return record || void 0;
|
|
834
|
-
}
|
|
835
791
|
/**
|
|
836
792
|
* Store a new session record
|
|
837
793
|
*/
|
|
@@ -848,6 +804,23 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
848
804
|
});
|
|
849
805
|
}
|
|
850
806
|
}
|
|
807
|
+
/**
|
|
808
|
+
* Get a session record by sessionId
|
|
809
|
+
*/
|
|
810
|
+
async getSessionRecordBySessionId(sessionId) {
|
|
811
|
+
const filter = { sessionId };
|
|
812
|
+
const doc = await this.tables.session.findOne(filter).lean();
|
|
813
|
+
return doc || void 0;
|
|
814
|
+
}
|
|
815
|
+
/**
|
|
816
|
+
* Get a session record by token
|
|
817
|
+
* Used to ensure that a token is not used more than once.
|
|
818
|
+
*/
|
|
819
|
+
async getSessionRecordByToken(token) {
|
|
820
|
+
const filter = { token };
|
|
821
|
+
const record = await this.tables.session.findOne(filter).lean();
|
|
822
|
+
return record || void 0;
|
|
823
|
+
}
|
|
851
824
|
/**
|
|
852
825
|
* Check if a session exists and mark it as removed
|
|
853
826
|
* @returns The session record if it existed, undefined otherwise
|
|
@@ -863,7 +836,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
863
836
|
try {
|
|
864
837
|
const session = await this.tables.session.findOneAndUpdate(filter, {
|
|
865
838
|
deleted: true,
|
|
866
|
-
lastUpdatedTimestamp: Date
|
|
839
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date()
|
|
867
840
|
}).lean();
|
|
868
841
|
return session || void 0;
|
|
869
842
|
} catch (err) {
|
|
@@ -928,21 +901,10 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
928
901
|
{ upsert: false }
|
|
929
902
|
);
|
|
930
903
|
}
|
|
931
|
-
/** Mark a list of token records as stored */
|
|
932
|
-
async markFrictionlessTokenRecordsStored(tokenIds) {
|
|
933
|
-
const updateDoc = {
|
|
934
|
-
storedAtTimestamp: /* @__PURE__ */ new Date()
|
|
935
|
-
};
|
|
936
|
-
await this.tables?.frictionlessToken.updateMany(
|
|
937
|
-
{ _id: { $in: tokenIds } },
|
|
938
|
-
{ $set: updateDoc },
|
|
939
|
-
{ upsert: false }
|
|
940
|
-
);
|
|
941
|
-
}
|
|
942
904
|
/**
|
|
943
905
|
* @description Store a Dapp User's pending record
|
|
944
906
|
*/
|
|
945
|
-
async storePendingImageCommitment(userAccount, requestHash, salt, deadlineTimestamp, requestedAtTimestamp, ipAddress, threshold,
|
|
907
|
+
async storePendingImageCommitment(userAccount, requestHash, salt, deadlineTimestamp, requestedAtTimestamp, ipAddress, threshold, sessionId) {
|
|
946
908
|
if (!is.isHex(requestHash)) {
|
|
947
909
|
throw new common.ProsopoDBError("DATABASE.INVALID_HASH", {
|
|
948
910
|
context: {
|
|
@@ -959,7 +921,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
959
921
|
deadlineTimestamp,
|
|
960
922
|
requestedAtTimestamp: new Date(requestedAtTimestamp),
|
|
961
923
|
ipAddress,
|
|
962
|
-
|
|
924
|
+
sessionId,
|
|
963
925
|
threshold
|
|
964
926
|
};
|
|
965
927
|
await this.tables?.pending.updateOne(
|
|
@@ -1162,7 +1124,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
1162
1124
|
const result = { status: types.CaptchaStatus.approved };
|
|
1163
1125
|
const updateDoc = {
|
|
1164
1126
|
result,
|
|
1165
|
-
lastUpdatedTimestamp: Date
|
|
1127
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date(),
|
|
1166
1128
|
...coords ? { coords } : {}
|
|
1167
1129
|
};
|
|
1168
1130
|
const filter = { id: commitmentId };
|
|
@@ -1183,7 +1145,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
1183
1145
|
try {
|
|
1184
1146
|
const updateDoc = {
|
|
1185
1147
|
result: { status: types.CaptchaStatus.disapproved, reason },
|
|
1186
|
-
lastUpdatedTimestamp: Date
|
|
1148
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date(),
|
|
1187
1149
|
...coords ? { coords } : {}
|
|
1188
1150
|
};
|
|
1189
1151
|
const filter = { id: commitmentId };
|
|
@@ -1258,7 +1220,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
1258
1220
|
* @description Create the status of a scheduled task
|
|
1259
1221
|
*/
|
|
1260
1222
|
async createScheduledTaskStatus(taskName, status) {
|
|
1261
|
-
const now =
|
|
1223
|
+
const now = /* @__PURE__ */ new Date();
|
|
1262
1224
|
const doc = typesDatabase.ScheduledTaskSchema.parse({
|
|
1263
1225
|
processName: taskName,
|
|
1264
1226
|
datetime: now,
|
|
@@ -1273,7 +1235,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
|
|
|
1273
1235
|
async updateScheduledTaskStatus(taskId, status, result) {
|
|
1274
1236
|
const update = {
|
|
1275
1237
|
status,
|
|
1276
|
-
updated:
|
|
1238
|
+
updated: /* @__PURE__ */ new Date(),
|
|
1277
1239
|
...result && { result }
|
|
1278
1240
|
};
|
|
1279
1241
|
const filter = { _id: taskId };
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const makeDir = require("make-dir");
|
|
3
4
|
require("./base/index.cjs");
|
|
4
5
|
const index = require("./databases/index.cjs");
|
|
5
6
|
const mongo = require("./base/mongo.cjs");
|
|
@@ -7,6 +8,7 @@ const mongoMemory = require("./base/mongoMemory.cjs");
|
|
|
7
8
|
const provider = require("./databases/provider.cjs");
|
|
8
9
|
const captcha = require("./databases/captcha.cjs");
|
|
9
10
|
const client = require("./databases/client.cjs");
|
|
11
|
+
console.debug(makeDir);
|
|
10
12
|
exports.Databases = index.Databases;
|
|
11
13
|
exports.MongoDatabase = mongo.MongoDatabase;
|
|
12
14
|
exports.MongoMemoryDatabase = mongoMemory.MongoMemoryDatabase;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Logger } from "@prosopo/common";
|
|
2
|
+
import { type CaptchaProperties, type ICaptchaDatabase, type PoWCaptchaRecord, type StoredSession, type Tables, type UserCommitmentRecord } from "@prosopo/types-database";
|
|
3
|
+
import type { RootFilterQuery } from "mongoose";
|
|
4
|
+
import { MongoDatabase } from "../base/index.js";
|
|
5
|
+
declare enum TableNames {
|
|
6
|
+
frictionlessToken = "frictionlessToken",
|
|
7
|
+
session = "session",
|
|
8
|
+
commitment = "commitment",
|
|
9
|
+
powcaptcha = "powcaptcha"
|
|
10
|
+
}
|
|
11
|
+
export declare class CaptchaDatabase extends MongoDatabase implements ICaptchaDatabase {
|
|
12
|
+
tables: Tables<TableNames>;
|
|
13
|
+
private indexesEnsured;
|
|
14
|
+
constructor(url: string, dbname?: string, authSource?: string, logger?: Logger);
|
|
15
|
+
connect(): Promise<void>;
|
|
16
|
+
getTables(): Tables<TableNames>;
|
|
17
|
+
ensureIndexes(): Promise<void>;
|
|
18
|
+
saveCaptchas(sessionEvents: StoredSession[], imageCaptchaEvents: UserCommitmentRecord[], powCaptchaEvents: PoWCaptchaRecord[]): Promise<void>;
|
|
19
|
+
getCaptchas(filter?: RootFilterQuery<CaptchaProperties>, limit?: number): Promise<{
|
|
20
|
+
userCommitmentRecords: UserCommitmentRecord[];
|
|
21
|
+
powCaptchaRecords: PoWCaptchaRecord[];
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# 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,EAA6B,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAGlB,KAAK,MAAM,EACX,KAAK,oBAAoB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,aAAK,UAAU;IACd,iBAAiB,sBAAsB;IACvC,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,UAAU,eAAe;CACzB;AAoBD,qBAAa,eAAgB,SAAQ,aAAc,YAAW,gBAAgB;IAC7E,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3B,OAAO,CAAC,cAAc,CAAS;gBAG9B,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;IAUvC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC;IAUzB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC9B,YAAY,CACjB,aAAa,EAAE,aAAa,EAAE,EAC9B,kBAAkB,EAAE,oBAAoB,EAAE,EAC1C,gBAAgB,EAAE,gBAAgB,EAAE;IA2E/B,WAAW,CAChB,MAAM,GAAE,eAAe,CAAC,iBAAiB,CAAM,EAC/C,KAAK,SAAM,GACT,OAAO,CAAC;QACV,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;QAC9C,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;KACtC,CAAC;CAgCF"}
|
|
@@ -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,EAEN,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,MAAM,EACX,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;CA6B1B"}
|
|
@@ -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,EACN,aAAa,EAGb,UAAU,GAEV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,aAAa,GAAG;IACrB;QACC,cAAc,EAAE,UAAU,CAAC,QAAQ;QACnC,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,aAAa;KACrB;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,QAAQ;aACjD,IAAI,CACJ;YACC,GAAG,EAAE;gBACJ,EAAE,iBAAiB,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,EAAE;gBAClD,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;aACzC;YACD,cAAc,EAAE,QAAQ;SACxB,EACD,EAAE,eAAe,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAC5D;aACA,IAAI,EAAE;aACN,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACjB,OAAO,CAAC,GAAG,CACV,CAAC,MAAM,EAAE,EAAE,CACV,CAAC;YACA,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;YAC7B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;SACjB,CAAiB,CACnB,CACD,CAAC;QAEH,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 @@
|
|
|
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,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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"}
|
|
@@ -2,8 +2,8 @@ import { isHex } from "@polkadot/util/is";
|
|
|
2
2
|
import { ProsopoDBError } from "@prosopo/common";
|
|
3
3
|
import { connectToRedis, setupRedisIndex } from "@prosopo/redis-client";
|
|
4
4
|
import { DatasetWithIdsAndTreeSchema, StoredStatusNames, CaptchaStatus, ApiParams, CaptchaStates } from "@prosopo/types";
|
|
5
|
-
import { CaptchaRecordSchema, PoWCaptchaRecordSchema, DatasetRecordSchema, SolutionRecordSchema, UserCommitmentRecordSchema, UserSolutionRecordSchema, PendingRecordSchema, ScheduledTaskRecordSchema, ClientRecordSchema,
|
|
6
|
-
import {
|
|
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",
|
|
@@ -112,8 +106,8 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
112
106
|
this.redisAccessRulesConnection = setupRedisIndex(
|
|
113
107
|
this.redisConnection,
|
|
114
108
|
{
|
|
115
|
-
...
|
|
116
|
-
name: this.options.redis?.indexName ||
|
|
109
|
+
...accessRulesRedisIndex,
|
|
110
|
+
name: this.options.redis?.indexName || accessRulesRedisIndex.name
|
|
117
111
|
},
|
|
118
112
|
this.logger
|
|
119
113
|
);
|
|
@@ -446,7 +440,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
446
440
|
async storeUserImageCaptchaSolution(captchas, commit) {
|
|
447
441
|
const commitmentRecord = UserCommitmentSchema.parse({
|
|
448
442
|
...commit,
|
|
449
|
-
lastUpdatedTimestamp: Date
|
|
443
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date()
|
|
450
444
|
});
|
|
451
445
|
if (captchas.length) {
|
|
452
446
|
const filter = {
|
|
@@ -486,18 +480,20 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
486
480
|
* @param ipAddress
|
|
487
481
|
* @param headers
|
|
488
482
|
* @param ja4
|
|
489
|
-
* @param
|
|
483
|
+
* @param sessionId
|
|
490
484
|
* @param serverChecked
|
|
491
485
|
* @param userSubmitted
|
|
492
486
|
* @param storedStatus
|
|
493
487
|
* @param userSignature
|
|
494
488
|
* @returns {Promise<void>} A promise that resolves when the record is added.
|
|
495
489
|
*/
|
|
496
|
-
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) {
|
|
497
491
|
const tables = this.getTables();
|
|
498
492
|
const powCaptchaRecord = {
|
|
499
493
|
challenge,
|
|
500
|
-
|
|
494
|
+
userAccount: components.userAccount,
|
|
495
|
+
dappAccount: components.dappAccount,
|
|
496
|
+
requestedAtTimestamp: new Date(components.requestedAtTimestamp),
|
|
501
497
|
ipAddress,
|
|
502
498
|
headers,
|
|
503
499
|
ja4,
|
|
@@ -507,8 +503,8 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
507
503
|
difficulty,
|
|
508
504
|
providerSignature,
|
|
509
505
|
userSignature,
|
|
510
|
-
lastUpdatedTimestamp: Date
|
|
511
|
-
|
|
506
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date(),
|
|
507
|
+
sessionId
|
|
512
508
|
};
|
|
513
509
|
try {
|
|
514
510
|
await tables.powcaptcha.create(powCaptchaRecord);
|
|
@@ -589,7 +585,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
589
585
|
*/
|
|
590
586
|
async updatePowCaptchaRecordResult(challenge, result, serverChecked = false, userSubmitted = false, userSignature) {
|
|
591
587
|
const tables = this.getTables();
|
|
592
|
-
const timestamp = Date
|
|
588
|
+
const timestamp = /* @__PURE__ */ new Date();
|
|
593
589
|
const update = {
|
|
594
590
|
result,
|
|
595
591
|
serverChecked,
|
|
@@ -690,7 +686,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
690
686
|
*/
|
|
691
687
|
async markDappUserCommitmentsStored(commitmentIds) {
|
|
692
688
|
const updateDoc = {
|
|
693
|
-
storedAtTimestamp: Date
|
|
689
|
+
storedAtTimestamp: /* @__PURE__ */ new Date()
|
|
694
690
|
};
|
|
695
691
|
await this.tables?.commitment.updateMany(
|
|
696
692
|
{ id: { $in: commitmentIds } },
|
|
@@ -703,7 +699,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
703
699
|
async markDappUserCommitmentsChecked(commitmentIds) {
|
|
704
700
|
const updateDoc = {
|
|
705
701
|
[StoredStatusNames.serverChecked]: true,
|
|
706
|
-
lastUpdatedTimestamp: Date
|
|
702
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date()
|
|
707
703
|
};
|
|
708
704
|
await this.tables?.commitment.updateMany(
|
|
709
705
|
{ id: { $in: commitmentIds } },
|
|
@@ -767,7 +763,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
767
763
|
*/
|
|
768
764
|
async markDappUserPoWCommitmentsStored(challenges) {
|
|
769
765
|
const updateDoc = {
|
|
770
|
-
storedAtTimestamp: Date
|
|
766
|
+
storedAtTimestamp: /* @__PURE__ */ new Date()
|
|
771
767
|
};
|
|
772
768
|
await this.tables?.powcaptcha.updateMany(
|
|
773
769
|
{ challenge: { $in: challenges } },
|
|
@@ -780,7 +776,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
780
776
|
async markDappUserPoWCommitmentsChecked(challenges) {
|
|
781
777
|
const updateDoc = {
|
|
782
778
|
[StoredStatusNames.serverChecked]: true,
|
|
783
|
-
lastUpdatedTimestamp: Date
|
|
779
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date()
|
|
784
780
|
};
|
|
785
781
|
await this.tables?.powcaptcha.updateMany(
|
|
786
782
|
{ challenge: { $in: challenges } },
|
|
@@ -790,46 +786,6 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
790
786
|
{ upsert: false }
|
|
791
787
|
);
|
|
792
788
|
}
|
|
793
|
-
/**
|
|
794
|
-
* Store a new frictionless token record
|
|
795
|
-
*/
|
|
796
|
-
async storeFrictionlessTokenRecord(tokenRecord) {
|
|
797
|
-
const doc = await this.tables.frictionlessToken.create(
|
|
798
|
-
tokenRecord
|
|
799
|
-
);
|
|
800
|
-
return doc._id;
|
|
801
|
-
}
|
|
802
|
-
/** Update a frictionless token record */
|
|
803
|
-
async updateFrictionlessTokenRecord(tokenId, updates) {
|
|
804
|
-
const filter = { _id: tokenId };
|
|
805
|
-
await this.tables.frictionlessToken.updateOne(filter, updates);
|
|
806
|
-
}
|
|
807
|
-
/** Get a frictionless token record */
|
|
808
|
-
async getFrictionlessTokenRecordByTokenId(tokenId) {
|
|
809
|
-
const filter = { _id: tokenId };
|
|
810
|
-
const doc = await this.tables.frictionlessToken.findOne(
|
|
811
|
-
filter
|
|
812
|
-
);
|
|
813
|
-
return doc ? doc : void 0;
|
|
814
|
-
}
|
|
815
|
-
/** Get many frictionless token records */
|
|
816
|
-
async getFrictionlessTokenRecordsByTokenIds(tokenId) {
|
|
817
|
-
const filter = {
|
|
818
|
-
_id: { $in: tokenId }
|
|
819
|
-
};
|
|
820
|
-
return this.tables.frictionlessToken.find(filter).lean();
|
|
821
|
-
}
|
|
822
|
-
/**
|
|
823
|
-
* Check if a frictionless token record exists.
|
|
824
|
-
* Used to ensure that a token is not used more than once.
|
|
825
|
-
*/
|
|
826
|
-
async getFrictionlessTokenRecordByToken(token) {
|
|
827
|
-
const filter = { token };
|
|
828
|
-
const record = await this.tables.frictionlessToken.findOne(
|
|
829
|
-
filter
|
|
830
|
-
);
|
|
831
|
-
return record || void 0;
|
|
832
|
-
}
|
|
833
789
|
/**
|
|
834
790
|
* Store a new session record
|
|
835
791
|
*/
|
|
@@ -846,6 +802,23 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
846
802
|
});
|
|
847
803
|
}
|
|
848
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
|
+
}
|
|
849
822
|
/**
|
|
850
823
|
* Check if a session exists and mark it as removed
|
|
851
824
|
* @returns The session record if it existed, undefined otherwise
|
|
@@ -861,7 +834,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
861
834
|
try {
|
|
862
835
|
const session = await this.tables.session.findOneAndUpdate(filter, {
|
|
863
836
|
deleted: true,
|
|
864
|
-
lastUpdatedTimestamp: Date
|
|
837
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date()
|
|
865
838
|
}).lean();
|
|
866
839
|
return session || void 0;
|
|
867
840
|
} catch (err) {
|
|
@@ -926,21 +899,10 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
926
899
|
{ upsert: false }
|
|
927
900
|
);
|
|
928
901
|
}
|
|
929
|
-
/** Mark a list of token records as stored */
|
|
930
|
-
async markFrictionlessTokenRecordsStored(tokenIds) {
|
|
931
|
-
const updateDoc = {
|
|
932
|
-
storedAtTimestamp: /* @__PURE__ */ new Date()
|
|
933
|
-
};
|
|
934
|
-
await this.tables?.frictionlessToken.updateMany(
|
|
935
|
-
{ _id: { $in: tokenIds } },
|
|
936
|
-
{ $set: updateDoc },
|
|
937
|
-
{ upsert: false }
|
|
938
|
-
);
|
|
939
|
-
}
|
|
940
902
|
/**
|
|
941
903
|
* @description Store a Dapp User's pending record
|
|
942
904
|
*/
|
|
943
|
-
async storePendingImageCommitment(userAccount, requestHash, salt, deadlineTimestamp, requestedAtTimestamp, ipAddress, threshold,
|
|
905
|
+
async storePendingImageCommitment(userAccount, requestHash, salt, deadlineTimestamp, requestedAtTimestamp, ipAddress, threshold, sessionId) {
|
|
944
906
|
if (!isHex(requestHash)) {
|
|
945
907
|
throw new ProsopoDBError("DATABASE.INVALID_HASH", {
|
|
946
908
|
context: {
|
|
@@ -957,7 +919,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
957
919
|
deadlineTimestamp,
|
|
958
920
|
requestedAtTimestamp: new Date(requestedAtTimestamp),
|
|
959
921
|
ipAddress,
|
|
960
|
-
|
|
922
|
+
sessionId,
|
|
961
923
|
threshold
|
|
962
924
|
};
|
|
963
925
|
await this.tables?.pending.updateOne(
|
|
@@ -1160,7 +1122,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
1160
1122
|
const result = { status: CaptchaStatus.approved };
|
|
1161
1123
|
const updateDoc = {
|
|
1162
1124
|
result,
|
|
1163
|
-
lastUpdatedTimestamp: Date
|
|
1125
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date(),
|
|
1164
1126
|
...coords ? { coords } : {}
|
|
1165
1127
|
};
|
|
1166
1128
|
const filter = { id: commitmentId };
|
|
@@ -1181,7 +1143,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
1181
1143
|
try {
|
|
1182
1144
|
const updateDoc = {
|
|
1183
1145
|
result: { status: CaptchaStatus.disapproved, reason },
|
|
1184
|
-
lastUpdatedTimestamp: Date
|
|
1146
|
+
lastUpdatedTimestamp: /* @__PURE__ */ new Date(),
|
|
1185
1147
|
...coords ? { coords } : {}
|
|
1186
1148
|
};
|
|
1187
1149
|
const filter = { id: commitmentId };
|
|
@@ -1256,7 +1218,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
1256
1218
|
* @description Create the status of a scheduled task
|
|
1257
1219
|
*/
|
|
1258
1220
|
async createScheduledTaskStatus(taskName, status) {
|
|
1259
|
-
const now =
|
|
1221
|
+
const now = /* @__PURE__ */ new Date();
|
|
1260
1222
|
const doc = ScheduledTaskSchema.parse({
|
|
1261
1223
|
processName: taskName,
|
|
1262
1224
|
datetime: now,
|
|
@@ -1271,7 +1233,7 @@ class ProviderDatabase extends MongoDatabase {
|
|
|
1271
1233
|
async updateScheduledTaskStatus(taskId, status, result) {
|
|
1272
1234
|
const update = {
|
|
1273
1235
|
status,
|
|
1274
|
-
updated:
|
|
1236
|
+
updated: /* @__PURE__ */ new Date(),
|
|
1275
1237
|
...result && { result }
|
|
1276
1238
|
};
|
|
1277
1239
|
const filter = { _id: taskId };
|
|
@@ -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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prosopo/database",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.13",
|
|
4
4
|
"description": "Prosopo database plugins for provider",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"engines": {
|
|
9
|
-
"node": "
|
|
10
|
-
"npm": "10.
|
|
9
|
+
"node": ">=v20.0.0",
|
|
10
|
+
"npm": ">=10.6.0"
|
|
11
11
|
},
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
@@ -34,29 +34,30 @@
|
|
|
34
34
|
},
|
|
35
35
|
"homepage": "https://github.com/prosopo/captcha#readme",
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@polkadot/util": "
|
|
38
|
-
"@prosopo/common": "3.1.
|
|
39
|
-
"@prosopo/config": "3.1.
|
|
40
|
-
"@prosopo/locale": "3.1.
|
|
41
|
-
"@prosopo/
|
|
42
|
-
"@prosopo/types
|
|
43
|
-
"@prosopo/
|
|
37
|
+
"@polkadot/util": "13.5.7",
|
|
38
|
+
"@prosopo/common": "3.1.21",
|
|
39
|
+
"@prosopo/config": "3.1.21",
|
|
40
|
+
"@prosopo/locale": "3.1.21",
|
|
41
|
+
"@prosopo/redis-client": "1.0.6",
|
|
42
|
+
"@prosopo/types": "3.5.11",
|
|
43
|
+
"@prosopo/types-database": "3.3.13",
|
|
44
|
+
"@prosopo/user-access-policy": "3.5.27",
|
|
45
|
+
"make-dir": "3.1.0",
|
|
44
46
|
"mongodb": "6.15.0",
|
|
45
|
-
"mongodb-memory-server": "10.
|
|
46
|
-
"mongoose": "8.13.0"
|
|
47
|
-
"@prosopo/redis-client": "1.0.5"
|
|
47
|
+
"mongodb-memory-server": "10.3.0",
|
|
48
|
+
"mongoose": "8.13.0"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
|
50
51
|
"@types/node": "22.10.2",
|
|
51
|
-
"@vitest/coverage-v8": "3.
|
|
52
|
+
"@vitest/coverage-v8": "3.2.4",
|
|
52
53
|
"concurrently": "9.0.1",
|
|
53
54
|
"del-cli": "6.0.0",
|
|
54
55
|
"npm-run-all": "4.1.5",
|
|
55
56
|
"tslib": "2.7.0",
|
|
56
57
|
"tsx": "4.20.3",
|
|
57
58
|
"typescript": "5.6.2",
|
|
58
|
-
"vite": "6.
|
|
59
|
-
"vitest": "3.
|
|
59
|
+
"vite": "6.4.1",
|
|
60
|
+
"vitest": "3.2.4"
|
|
60
61
|
},
|
|
61
62
|
"sideEffects": false
|
|
62
63
|
}
|