@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 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,3 @@
1
+ export * from "./mongo.js";
2
+ export * from "./mongoMemory.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -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", module);
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
- const logger = common.getLogger("info", module);
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((document) => {
91
- const { _id, ...safeDoc } = document;
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 userAccessPolicy = require("@prosopo/user-access-policy");
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
- ...userAccessPolicy.redisAccessRulesIndex,
118
- name: this.options.redis?.indexName || userAccessPolicy.redisAccessRulesIndex.name
111
+ ...redis.accessRulesRedisIndex,
112
+ name: this.options.redis?.indexName || redis.accessRulesRedisIndex.name
119
113
  },
120
114
  this.logger
121
115
  );
122
- this.userAccessRulesStorage = userAccessPolicy.createRedisAccessRulesStorage(
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.now()
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 frictionlessTokenId
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, frictionlessTokenId, serverChecked = false, userSubmitted = false, storedStatus = types.StoredStatusNames.notStored, userSignature) {
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
- ...components,
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.now(),
513
- frictionlessTokenId
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.now();
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.now()
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.now()
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.now()
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.now()
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.now()
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, frictionlessTokenId) {
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
- frictionlessTokenId,
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.now(),
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.now(),
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 = (/* @__PURE__ */ new Date()).getTime();
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: (/* @__PURE__ */ new Date()).getTime(),
1238
+ updated: /* @__PURE__ */ new Date(),
1277
1239
  ...result && { result }
1278
1240
  };
1279
1241
  const filter = { _id: taskId };
@@ -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, FrictionlessTokenRecordSchema, SessionRecordSchema, DetectorRecordSchema, UserCommitmentSchema, ScheduledTaskSchema } from "@prosopo/types-database";
6
- import { redisAccessRulesIndex, createRedisAccessRulesStorage } from "@prosopo/user-access-policy";
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
- ...redisAccessRulesIndex,
116
- name: this.options.redis?.indexName || redisAccessRulesIndex.name
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.now()
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 frictionlessTokenId
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, frictionlessTokenId, serverChecked = false, userSubmitted = false, storedStatus = StoredStatusNames.notStored, userSignature) {
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
- ...components,
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.now(),
511
- frictionlessTokenId
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.now();
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.now()
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.now()
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.now()
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.now()
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.now()
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, frictionlessTokenId) {
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
- frictionlessTokenId,
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.now(),
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.now(),
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 = (/* @__PURE__ */ new Date()).getTime();
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: (/* @__PURE__ */ new Date()).getTime(),
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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"}
@@ -0,0 +1,3 @@
1
+ export * from "./base/index.js";
2
+ export * from "./databases/index.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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.5",
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": "20",
10
- "npm": "10.8.2"
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": "12.6.2",
38
- "@prosopo/common": "3.1.20",
39
- "@prosopo/config": "3.1.20",
40
- "@prosopo/locale": "3.1.20",
41
- "@prosopo/types": "3.5.3",
42
- "@prosopo/types-database": "3.3.5",
43
- "@prosopo/user-access-policy": "3.5.19",
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.0.0",
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.0.9",
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.3.5",
59
- "vitest": "3.0.9"
59
+ "vite": "6.4.1",
60
+ "vitest": "3.2.4"
60
61
  },
61
62
  "sideEffects": false
62
63
  }