@prosopo/database 2.6.5 → 3.0.5

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.
@@ -5,6 +5,7 @@ const common = require("@prosopo/common");
5
5
  const types = require("@prosopo/types");
6
6
  const typesDatabase = require("@prosopo/types-database");
7
7
  const userAccessPolicy = require("@prosopo/user-access-policy");
8
+ const redis = require("redis");
8
9
  const mongo = require("../base/mongo.cjs");
9
10
  var TableNames = /* @__PURE__ */ ((TableNames2) => {
10
11
  TableNames2["captcha"] = "captcha";
@@ -18,7 +19,6 @@ var TableNames = /* @__PURE__ */ ((TableNames2) => {
18
19
  TableNames2["client"] = "client";
19
20
  TableNames2["frictionlessToken"] = "frictionlessToken";
20
21
  TableNames2["session"] = "session";
21
- TableNames2["userAccessRules"] = "userAccessRules";
22
22
  TableNames2["detector"] = "detector";
23
23
  return TableNames2;
24
24
  })(TableNames || {});
@@ -78,11 +78,6 @@ const PROVIDER_TABLES = [
78
78
  modelName: "Session",
79
79
  schema: typesDatabase.SessionRecordSchema
80
80
  },
81
- {
82
- collectionName: "userAccessRules",
83
- modelName: "UserAccessRules",
84
- schema: userAccessPolicy.getRuleMongooseSchema()
85
- },
86
81
  {
87
82
  collectionName: "detector",
88
83
  modelName: "Detector",
@@ -90,20 +85,42 @@ const PROVIDER_TABLES = [
90
85
  }
91
86
  ];
92
87
  class ProviderDatabase extends mongo.MongoDatabase {
93
- constructor(url, dbname, authSource, logger) {
94
- super(url, dbname, authSource, logger);
88
+ constructor(options) {
89
+ super(
90
+ options.mongo.url,
91
+ options.mongo.dbname,
92
+ options.mongo.authSource,
93
+ options.logger
94
+ );
95
+ this.options = options;
95
96
  this.tables = {};
96
97
  this.tables = {};
97
- this.userAccessRulesDbStorage = null;
98
+ this.userAccessRulesStorage = null;
98
99
  }
99
100
  async connect() {
100
101
  await super.connect();
101
102
  this.loadTables();
102
- this.userAccessRulesDbStorage = userAccessPolicy.createMongooseRulesStorage(
103
- this.logger,
104
- this.tables.userAccessRules
103
+ await this.setupRedis();
104
+ }
105
+ async setupRedis() {
106
+ const redisClient = await this.createRedisClient();
107
+ await userAccessPolicy.createRedisAccessRulesIndex(redisClient);
108
+ this.userAccessRulesStorage = userAccessPolicy.createRedisAccessRulesStorage(
109
+ redisClient,
110
+ this.logger
105
111
  );
106
112
  }
113
+ async createRedisClient() {
114
+ return await redis.createClient({
115
+ url: this.options.redis?.url,
116
+ password: this.options.redis?.password
117
+ }).on("error", (error) => {
118
+ this.logger.error(() => ({
119
+ err: error,
120
+ msg: "Redis client error"
121
+ }));
122
+ }).connect();
123
+ }
107
124
  loadTables() {
108
125
  const tables = {};
109
126
  PROVIDER_TABLES.map(({ collectionName, modelName, schema }) => {
@@ -123,10 +140,10 @@ class ProviderDatabase extends mongo.MongoDatabase {
123
140
  return this.tables;
124
141
  }
125
142
  getUserAccessRulesStorage() {
126
- if (null === this.userAccessRulesDbStorage) {
127
- throw new common.ProsopoDBError("DATABASE.USER_ACCESS_RULES_UNDEFINED");
143
+ if (null === this.userAccessRulesStorage) {
144
+ throw new common.ProsopoDBError("DATABASE.USER_ACCESS_RULES_STORAGE_UNDEFINED");
128
145
  }
129
- return this.userAccessRulesDbStorage;
146
+ return this.userAccessRulesStorage;
130
147
  }
131
148
  /**
132
149
  * @description Load a dataset to the database
@@ -134,7 +151,10 @@ class ProviderDatabase extends mongo.MongoDatabase {
134
151
  */
135
152
  async storeDataset(dataset) {
136
153
  try {
137
- this.logger.debug("Storing dataset in database");
154
+ this.logger.debug(() => ({
155
+ data: { datasetId: dataset.datasetId },
156
+ msg: "Storing dataset in database"
157
+ }));
138
158
  const parsedDataset = types.DatasetWithIdsAndTreeSchema.parse(dataset);
139
159
  const datasetDoc = {
140
160
  datasetId: parsedDataset.datasetId,
@@ -160,7 +180,9 @@ class ProviderDatabase extends mongo.MongoDatabase {
160
180
  solved: !!solution?.length
161
181
  })
162
182
  );
163
- this.logger.debug("Inserting captcha records");
183
+ this.logger.debug(() => ({
184
+ msg: "Inserting captcha records"
185
+ }));
164
186
  if (captchaDocs.length) {
165
187
  await this.tables?.captcha.bulkWrite(
166
188
  captchaDocs.map((captchaDoc) => ({
@@ -180,7 +202,9 @@ class ProviderDatabase extends mongo.MongoDatabase {
180
202
  datasetId: parsedDataset.datasetId,
181
203
  datasetContentId: parsedDataset.datasetContentId
182
204
  }));
183
- this.logger.debug("Inserting solution records");
205
+ this.logger.debug(() => ({
206
+ msg: "Inserting solution records"
207
+ }));
184
208
  if (captchaSolutionDocs.length) {
185
209
  await this.tables?.solution.bulkWrite(
186
210
  captchaSolutionDocs.map((captchaSolutionDoc) => ({
@@ -192,7 +216,9 @@ class ProviderDatabase extends mongo.MongoDatabase {
192
216
  }))
193
217
  );
194
218
  }
195
- this.logger.debug("Dataset stored in database");
219
+ this.logger.debug(() => ({
220
+ msg: "Dataset stored in database"
221
+ }));
196
222
  } catch (err) {
197
223
  throw new common.ProsopoDBError("DATABASE.DATASET_LOAD_FAILED", {
198
224
  context: { failedFuncName: this.storeDataset.name, error: err },
@@ -416,7 +442,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
416
442
  * @param userSignature
417
443
  * @returns {Promise<void>} A promise that resolves when the record is added.
418
444
  */
419
- async storePowCaptchaRecord(challenge, components, difficulty, providerSignature, ipAddress, headers, ja4, frictionlessTokenId, serverChecked = false, userSubmitted = false, storedStatus = typesDatabase.StoredStatusNames.notStored, userSignature) {
445
+ async storePowCaptchaRecord(challenge, components, difficulty, providerSignature, ipAddress, headers, ja4, frictionlessTokenId, serverChecked = false, userSubmitted = false, storedStatus = types.StoredStatusNames.notStored, userSignature) {
420
446
  const tables = this.getTables();
421
447
  const powCaptchaRecord = {
422
448
  challenge,
@@ -435,21 +461,17 @@ class ProviderDatabase extends mongo.MongoDatabase {
435
461
  };
436
462
  try {
437
463
  await tables.powcaptcha.create(powCaptchaRecord);
438
- this.logger.info("PowCaptcha record added successfully", {
439
- challenge,
440
- userSubmitted,
441
- serverChecked,
442
- storedStatus
443
- });
464
+ this.logger.info(() => ({
465
+ data: {
466
+ challenge,
467
+ userSubmitted,
468
+ serverChecked,
469
+ storedStatus
470
+ },
471
+ msg: "PowCaptcha record added successfully"
472
+ }));
444
473
  } catch (error) {
445
- this.logger.error("Failed to add PowCaptcha record", {
446
- error,
447
- challenge,
448
- userSubmitted,
449
- serverChecked,
450
- storedStatus
451
- });
452
- throw new common.ProsopoDBError("DATABASE.CAPTCHA_UPDATE_FAILED", {
474
+ const err = new common.ProsopoDBError("DATABASE.CAPTCHA_UPDATE_FAILED", {
453
475
  context: {
454
476
  error,
455
477
  challenge,
@@ -459,6 +481,11 @@ class ProviderDatabase extends mongo.MongoDatabase {
459
481
  },
460
482
  logger: this.logger
461
483
  });
484
+ this.logger.error(() => ({
485
+ err: error,
486
+ msg: "Failed to add PowCaptcha record"
487
+ }));
488
+ throw err;
462
489
  }
463
490
  }
464
491
  /**
@@ -477,22 +504,27 @@ class ProviderDatabase extends mongo.MongoDatabase {
477
504
  const filter = { challenge };
478
505
  const record = await this.tables.powcaptcha.findOne(filter).lean();
479
506
  if (record) {
480
- this.logger.info("PowCaptcha record retrieved successfully", {
481
- challenge
482
- });
507
+ this.logger.info(() => ({
508
+ data: { challenge },
509
+ msg: "PowCaptcha record retrieved successfully"
510
+ }));
483
511
  return record;
484
512
  }
485
- this.logger.info("No PowCaptcha record found", { challenge });
513
+ this.logger.info(() => ({
514
+ data: { challenge },
515
+ msg: "No PowCaptcha record found"
516
+ }));
486
517
  return null;
487
518
  } catch (error) {
488
- this.logger.error("Failed to retrieve PowCaptcha record", {
489
- error,
490
- challenge
491
- });
492
- throw new common.ProsopoDBError("DATABASE.CAPTCHA_GET_FAILED", {
519
+ const err = new common.ProsopoDBError("DATABASE.CAPTCHA_GET_FAILED", {
493
520
  context: { error, challenge },
494
521
  logger: this.logger
495
522
  });
523
+ this.logger.error(() => ({
524
+ err,
525
+ msg: "Failed to retrieve PowCaptcha record"
526
+ }));
527
+ throw err;
496
528
  }
497
529
  }
498
530
  /**
@@ -522,29 +554,28 @@ class ProviderDatabase extends mongo.MongoDatabase {
522
554
  }
523
555
  );
524
556
  if (updateResult.matchedCount === 0) {
525
- this.logger.info("No PowCaptcha record found to update", {
526
- challenge,
527
- ...update
528
- });
529
- throw new common.ProsopoDBError("DATABASE.CAPTCHA_GET_FAILED", {
557
+ const err = new common.ProsopoDBError("DATABASE.CAPTCHA_GET_FAILED", {
530
558
  context: {
531
559
  challenge,
532
560
  ...update
533
561
  },
534
562
  logger: this.logger
535
563
  });
564
+ this.logger.info(() => ({
565
+ err,
566
+ msg: "No PowCaptcha record found to update"
567
+ }));
568
+ throw err;
536
569
  }
537
- this.logger.info("PowCaptcha record updated successfully", {
538
- challenge,
539
- ...update
540
- });
570
+ this.logger.info(() => ({
571
+ data: {
572
+ challenge,
573
+ ...update
574
+ },
575
+ msg: "PowCaptcha record updated successfully"
576
+ }));
541
577
  } catch (error) {
542
- this.logger.error("Failed to update PowCaptcha record", {
543
- error,
544
- challenge,
545
- ...update
546
- });
547
- throw new common.ProsopoDBError("DATABASE.CAPTCHA_UPDATE_FAILED", {
578
+ const err = new common.ProsopoDBError("DATABASE.CAPTCHA_UPDATE_FAILED", {
548
579
  context: {
549
580
  error,
550
581
  challenge,
@@ -552,12 +583,17 @@ class ProviderDatabase extends mongo.MongoDatabase {
552
583
  },
553
584
  logger: this.logger
554
585
  });
586
+ this.logger.error(() => ({
587
+ err,
588
+ msg: "Failed to update PowCaptcha record"
589
+ }));
590
+ throw err;
555
591
  }
556
592
  }
557
593
  /** @description Get serverChecked Dapp User image captcha commitments from the commitments table
558
594
  */
559
595
  async getCheckedDappUserCommitments() {
560
- const filter = { [typesDatabase.StoredStatusNames.serverChecked]: true };
596
+ const filter = { [types.StoredStatusNames.serverChecked]: true };
561
597
  const docs = await this.tables?.commitment.find(filter).lean();
562
598
  return docs || [];
563
599
  }
@@ -607,7 +643,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
607
643
  */
608
644
  async markDappUserCommitmentsChecked(commitmentIds) {
609
645
  const updateDoc = {
610
- [typesDatabase.StoredStatusNames.serverChecked]: true,
646
+ [types.StoredStatusNames.serverChecked]: true,
611
647
  lastUpdatedTimestamp: Date.now()
612
648
  };
613
649
  await this.tables?.commitment.updateMany(
@@ -678,7 +714,7 @@ class ProviderDatabase extends mongo.MongoDatabase {
678
714
  */
679
715
  async markDappUserPoWCommitmentsChecked(challenges) {
680
716
  const updateDoc = {
681
- [typesDatabase.StoredStatusNames.serverChecked]: true,
717
+ [types.StoredStatusNames.serverChecked]: true,
682
718
  lastUpdatedTimestamp: Date.now()
683
719
  };
684
720
  await this.tables?.powcaptcha.updateMany(
@@ -734,7 +770,9 @@ class ProviderDatabase extends mongo.MongoDatabase {
734
770
  */
735
771
  async storeSessionRecord(sessionRecord) {
736
772
  try {
737
- this.logger.debug({ action: "storing", sessionRecord });
773
+ this.logger.debug(() => ({
774
+ data: { action: "storing", sessionRecord }
775
+ }));
738
776
  await this.tables.session.create(sessionRecord);
739
777
  } catch (err) {
740
778
  throw new common.ProsopoDBError("DATABASE.SESSION_STORE_FAILED", {
@@ -748,7 +786,9 @@ class ProviderDatabase extends mongo.MongoDatabase {
748
786
  * @returns The session record if it existed, undefined otherwise
749
787
  */
750
788
  async checkAndRemoveSession(sessionId) {
751
- this.logger.debug({ action: "checking and removing", sessionId });
789
+ this.logger.debug(() => ({
790
+ data: { action: "checking and removing", sessionId }
791
+ }));
752
792
  const filter = {
753
793
  sessionId,
754
794
  deleted: { $exists: false }
@@ -1 +1 @@
1
- {"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/databases/captcha.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,MAAM,EAAoC,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAGrB,KAAK,aAAa,EAGlB,KAAK,MAAM,EACX,KAAK,oBAAoB,EAEzB,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;gBAG1B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM;IAMD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASvC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC;IAUzB,YAAY,CACjB,aAAa,EAAE,aAAa,EAAE,EAC9B,kBAAkB,EAAE,oBAAoB,EAAE,EAC1C,gBAAgB,EAAE,gBAAgB,EAAE;IAqD/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"}
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;gBAG1B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM;IAMD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASvC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC;IAUzB,YAAY,CACjB,aAAa,EAAE,aAAa,EAAE,EAC9B,kBAAkB,EAAE,oBAAoB,EAAE,EAC1C,gBAAgB,EAAE,gBAAgB,EAAE;IA8D/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"}
@@ -1,7 +1,7 @@
1
- import { ProsopoDBError, getLoggerDefault } from "@prosopo/common";
1
+ import { ProsopoDBError, getLogger } from "@prosopo/common";
2
2
  import { StoredPoWCaptchaRecordSchema, StoredSessionRecordSchema, StoredUserCommitmentRecordSchema, } from "@prosopo/types-database";
3
3
  import { MongoDatabase } from "../base/index.js";
4
- const logger = getLoggerDefault();
4
+ const logger = getLogger("info", import.meta.url);
5
5
  var TableNames;
6
6
  (function (TableNames) {
7
7
  TableNames["frictionlessToken"] = "frictionlessToken";
@@ -59,7 +59,10 @@ export class CaptchaDatabase extends MongoDatabase {
59
59
  },
60
60
  };
61
61
  }));
62
- logger.info("Mongo Saved Session Events", result.insertedCount);
62
+ logger.info(() => ({
63
+ data: { insertedCount: result.insertedCount },
64
+ msg: "Mongo Saved Session Events",
65
+ }));
63
66
  }
64
67
  if (imageCaptchaEvents.length) {
65
68
  const result = await this.tables.commitment.bulkWrite(imageCaptchaEvents.map((doc) => {
@@ -72,7 +75,10 @@ export class CaptchaDatabase extends MongoDatabase {
72
75
  },
73
76
  };
74
77
  }));
75
- logger.info("Mongo Saved Image Events", result.upsertedCount);
78
+ logger.info(() => ({
79
+ data: { upsertedCount: result.upsertedCount },
80
+ msg: "Mongo Saved Image Events",
81
+ }));
76
82
  }
77
83
  if (powCaptchaEvents.length) {
78
84
  const result = await this.tables.powcaptcha.bulkWrite(powCaptchaEvents.map((doc) => {
@@ -85,7 +91,10 @@ export class CaptchaDatabase extends MongoDatabase {
85
91
  },
86
92
  };
87
93
  }));
88
- logger.info("Mongo Saved PoW Events", result.upsertedCount);
94
+ logger.info(() => ({
95
+ data: { upsertedCount: result.upsertedCount },
96
+ msg: "Mongo Saved PoW Events",
97
+ }));
89
98
  }
90
99
  await this.close();
91
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/databases/captcha.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/databases/captcha.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import { type Logger } from "@prosopo/common";
2
2
  import type { TranslationKey } from "@prosopo/locale";
3
- 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 } from "@prosopo/types";
3
+ 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";
4
4
  import type { FrictionlessTokenRecord, SessionRecord } from "@prosopo/types-database";
5
- import { type ClientRecord, type FrictionlessToken, type FrictionlessTokenId, type IProviderDatabase, type PendingCaptchaRequest, type PoWCaptchaRecord, type ScheduledTaskRecord, type SolutionRecord, type StoredStatus, type Tables, type UserCommitment, type UserCommitmentRecord, type UserSolutionRecord } from "@prosopo/types-database";
6
- import { type RulesStorage } from "@prosopo/user-access-policy";
5
+ import { type ClientRecord, type FrictionlessToken, type FrictionlessTokenId, type IProviderDatabase, type PendingCaptchaRequest, type PoWCaptchaRecord, type ScheduledTaskRecord, type SolutionRecord, type Tables, type UserCommitment, type UserCommitmentRecord, type UserSolutionRecord } from "@prosopo/types-database";
6
+ import { type AccessRulesStorage } from "@prosopo/user-access-policy";
7
7
  import type { ObjectId } from "mongoose";
8
+ import { type RedisClientType } from "redis";
8
9
  import { MongoDatabase } from "../base/mongo.js";
9
10
  declare enum TableNames {
10
11
  captcha = "captcha",
@@ -18,17 +19,31 @@ declare enum TableNames {
18
19
  client = "client",
19
20
  frictionlessToken = "frictionlessToken",
20
21
  session = "session",
21
- userAccessRules = "userAccessRules",
22
22
  detector = "detector"
23
23
  }
24
+ type ProviderDatabaseOptions = {
25
+ mongo: {
26
+ url: string;
27
+ dbname?: string;
28
+ authSource?: string;
29
+ };
30
+ redis?: {
31
+ url: string;
32
+ password: string;
33
+ };
34
+ logger?: Logger;
35
+ };
24
36
  export declare class ProviderDatabase extends MongoDatabase implements IProviderDatabase {
37
+ private readonly options;
25
38
  tables: Tables<TableNames>;
26
- private userAccessRulesDbStorage;
27
- constructor(url: string, dbname?: string, authSource?: string, logger?: Logger);
39
+ private userAccessRulesStorage;
40
+ constructor(options: ProviderDatabaseOptions);
28
41
  connect(): Promise<void>;
42
+ protected setupRedis(): Promise<void>;
43
+ protected createRedisClient(): Promise<RedisClientType>;
29
44
  loadTables(): void;
30
45
  getTables(): Tables<TableNames>;
31
- getUserAccessRulesStorage(): RulesStorage;
46
+ getUserAccessRulesStorage(): AccessRulesStorage;
32
47
  storeDataset(dataset: Dataset | DatasetWithIdsAndTree): Promise<void>;
33
48
  getSolutions(datasetId: string): Promise<SolutionRecord[]>;
34
49
  getSolutionByCaptchaId(captchaId: string): Promise<SolutionRecord | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/databases/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/databases/provider.ts"],"names":[],"mappings":"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"}