@brightchain/brightchain-api-lib 0.25.0 → 0.26.0
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/package.json +4 -3
- package/src/lib/application.d.ts +3 -14
- package/src/lib/application.d.ts.map +1 -1
- package/src/lib/application.js +89 -34
- package/src/lib/application.js.map +1 -1
- package/src/lib/databaseInit.d.ts +7 -11
- package/src/lib/databaseInit.d.ts.map +1 -1
- package/src/lib/databaseInit.js +41 -107
- package/src/lib/databaseInit.js.map +1 -1
- package/src/lib/datastore/block-document-store-factory.d.ts +3 -0
- package/src/lib/datastore/block-document-store-factory.d.ts.map +1 -1
- package/src/lib/datastore/block-document-store-factory.js +15 -18
- package/src/lib/datastore/block-document-store-factory.js.map +1 -1
- package/src/lib/datastore/block-document-store.d.ts +2 -191
- package/src/lib/datastore/block-document-store.d.ts.map +1 -1
- package/src/lib/datastore/block-document-store.js +4 -628
- package/src/lib/datastore/block-document-store.js.map +1 -1
- package/src/lib/datastore/document-store.d.ts +1 -62
- package/src/lib/datastore/document-store.d.ts.map +1 -1
- package/src/lib/datastore/memory-document-store.d.ts +1 -8
- package/src/lib/datastore/memory-document-store.d.ts.map +1 -1
- package/src/lib/datastore/memory-document-store.js +3 -214
- package/src/lib/datastore/memory-document-store.js.map +1 -1
- package/src/lib/environment.d.ts +4 -47
- package/src/lib/environment.d.ts.map +1 -1
- package/src/lib/environment.js +2 -136
- package/src/lib/environment.js.map +1 -1
- package/src/lib/interfaces/environment.d.ts +3 -25
- package/src/lib/interfaces/environment.d.ts.map +1 -1
- package/src/lib/middleware/index.d.ts +1 -1
- package/src/lib/middleware/index.d.ts.map +1 -1
- package/src/lib/middleware/index.js +3 -2
- package/src/lib/middleware/index.js.map +1 -1
- package/src/lib/middleware/validateBody.d.ts +1 -12
- package/src/lib/middleware/validateBody.d.ts.map +1 -1
- package/src/lib/middleware/validateBody.js +4 -32
- package/src/lib/middleware/validateBody.js.map +1 -1
- package/src/lib/middlewares.d.ts.map +1 -1
- package/src/lib/middlewares.js +7 -1
- package/src/lib/middlewares.js.map +1 -1
- package/src/lib/plugins/brightchain-database-plugin.d.ts +27 -79
- package/src/lib/plugins/brightchain-database-plugin.d.ts.map +1 -1
- package/src/lib/plugins/brightchain-database-plugin.js +27 -97
- package/src/lib/plugins/brightchain-database-plugin.js.map +1 -1
- package/src/lib/services/emailGateway/antiSpamFilter.d.ts +229 -0
- package/src/lib/services/emailGateway/antiSpamFilter.d.ts.map +1 -0
- package/src/lib/services/emailGateway/antiSpamFilter.js +325 -0
- package/src/lib/services/emailGateway/antiSpamFilter.js.map +1 -0
- package/src/lib/services/emailGateway/bounceProcessor.d.ts +171 -0
- package/src/lib/services/emailGateway/bounceProcessor.d.ts.map +1 -0
- package/src/lib/services/emailGateway/bounceProcessor.js +378 -0
- package/src/lib/services/emailGateway/bounceProcessor.js.map +1 -0
- package/src/lib/services/emailGateway/emailAuthVerifier.d.ts +99 -0
- package/src/lib/services/emailGateway/emailAuthVerifier.d.ts.map +1 -0
- package/src/lib/services/emailGateway/emailAuthVerifier.js +202 -0
- package/src/lib/services/emailGateway/emailAuthVerifier.js.map +1 -0
- package/src/lib/services/emailGateway/emailGatewayConfig.d.ts +73 -0
- package/src/lib/services/emailGateway/emailGatewayConfig.d.ts.map +1 -0
- package/src/lib/services/emailGateway/emailGatewayConfig.js +107 -0
- package/src/lib/services/emailGateway/emailGatewayConfig.js.map +1 -0
- package/src/lib/services/emailGateway/emailGatewayService.d.ts +152 -0
- package/src/lib/services/emailGateway/emailGatewayService.d.ts.map +1 -0
- package/src/lib/services/emailGateway/emailGatewayService.js +201 -0
- package/src/lib/services/emailGateway/emailGatewayService.js.map +1 -0
- package/src/lib/services/emailGateway/gatewayObservability.d.ts +123 -0
- package/src/lib/services/emailGateway/gatewayObservability.d.ts.map +1 -0
- package/src/lib/services/emailGateway/gatewayObservability.js +186 -0
- package/src/lib/services/emailGateway/gatewayObservability.js.map +1 -0
- package/src/lib/services/emailGateway/inboundProcessor.d.ts +113 -0
- package/src/lib/services/emailGateway/inboundProcessor.d.ts.map +1 -0
- package/src/lib/services/emailGateway/inboundProcessor.js +298 -0
- package/src/lib/services/emailGateway/inboundProcessor.js.map +1 -0
- package/src/lib/services/emailGateway/index.d.ts +23 -0
- package/src/lib/services/emailGateway/index.d.ts.map +1 -0
- package/src/lib/services/emailGateway/index.js +26 -0
- package/src/lib/services/emailGateway/index.js.map +1 -0
- package/src/lib/services/emailGateway/outboundDeliveryWorker.d.ts +111 -0
- package/src/lib/services/emailGateway/outboundDeliveryWorker.d.ts.map +1 -0
- package/src/lib/services/emailGateway/outboundDeliveryWorker.js +97 -0
- package/src/lib/services/emailGateway/outboundDeliveryWorker.js.map +1 -0
- package/src/lib/services/emailGateway/outboundQueue.d.ts +135 -0
- package/src/lib/services/emailGateway/outboundQueue.d.ts.map +1 -0
- package/src/lib/services/emailGateway/outboundQueue.js +227 -0
- package/src/lib/services/emailGateway/outboundQueue.js.map +1 -0
- package/src/lib/services/emailGateway/outboundQueueStore.d.ts +110 -0
- package/src/lib/services/emailGateway/outboundQueueStore.d.ts.map +1 -0
- package/src/lib/services/emailGateway/outboundQueueStore.js +131 -0
- package/src/lib/services/emailGateway/outboundQueueStore.js.map +1 -0
- package/src/lib/services/emailGateway/recipientLookupService.d.ts +135 -0
- package/src/lib/services/emailGateway/recipientLookupService.d.ts.map +1 -0
- package/src/lib/services/emailGateway/recipientLookupService.js +294 -0
- package/src/lib/services/emailGateway/recipientLookupService.js.map +1 -0
- package/src/lib/services/emailGateway/retryBackoff.d.ts +79 -0
- package/src/lib/services/emailGateway/retryBackoff.d.ts.map +1 -0
- package/src/lib/services/emailGateway/retryBackoff.js +77 -0
- package/src/lib/services/emailGateway/retryBackoff.js.map +1 -0
- package/src/lib/services/index.d.ts +1 -0
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +1 -0
- package/src/lib/services/index.js.map +1 -1
- package/src/lib/services/quorumDatabaseAdapter.d.ts +7 -1
- package/src/lib/services/quorumDatabaseAdapter.d.ts.map +1 -1
- package/src/lib/services/quorumDatabaseAdapter.js +83 -0
- package/src/lib/services/quorumDatabaseAdapter.js.map +1 -1
- package/src/lib/services/sessionAdapter.d.ts +2 -61
- package/src/lib/services/sessionAdapter.d.ts.map +1 -1
- package/src/lib/services/sessionAdapter.js +2 -102
- package/src/lib/services/sessionAdapter.js.map +1 -1
- package/src/lib/shared-types.d.ts +7 -15
- package/src/lib/shared-types.d.ts.map +1 -1
- package/src/lib/types/backend-id.d.ts +1 -2
- package/src/lib/types/backend-id.d.ts.map +1 -1
- package/src/lib/validation/userValidation.d.ts +2 -43
- package/src/lib/validation/userValidation.d.ts.map +1 -1
- package/src/lib/validation/userValidation.js +6 -144
- package/src/lib/validation/userValidation.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quorumDatabaseAdapter.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/quorumDatabaseAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC1B,0BAA0B,EAC1B,IAAI,
|
|
1
|
+
{"version":3,"file":"quorumDatabaseAdapter.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/quorumDatabaseAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ const COLLECTION_AUDIT_LOG = 'audit_log';
|
|
|
24
24
|
const COLLECTION_REDISTRIBUTION_JOURNAL = 'redistribution_journal';
|
|
25
25
|
const COLLECTION_STATUTE_CONFIG = 'statute_config';
|
|
26
26
|
const COLLECTION_OPERATIONAL_STATE = 'operational_state';
|
|
27
|
+
const COLLECTION_BAN_RECORDS = 'ban_records';
|
|
27
28
|
/** Dedicated pool ID for quorum data isolation */
|
|
28
29
|
exports.QUORUM_SYSTEM_POOL_ID = 'quorum-system';
|
|
29
30
|
// ─── Serialization Helpers ──────────────────────────────────────────────────
|
|
@@ -735,6 +736,88 @@ class QuorumDatabaseAdapter {
|
|
|
735
736
|
return false;
|
|
736
737
|
}
|
|
737
738
|
}
|
|
739
|
+
// === Ban Records ===
|
|
740
|
+
async saveBanRecord(record) {
|
|
741
|
+
const col = this.db.collection(COLLECTION_BAN_RECORDS);
|
|
742
|
+
const memberId = this.idProvider.idToString(record.memberId);
|
|
743
|
+
const data = {
|
|
744
|
+
memberId: memberId,
|
|
745
|
+
reason: record.reason,
|
|
746
|
+
proposalId: this.idProvider.idToString(record.proposalId),
|
|
747
|
+
epoch: record.epoch,
|
|
748
|
+
bannedAt: record.bannedAt.toISOString(),
|
|
749
|
+
evidenceBlockIds: record.evidenceBlockIds,
|
|
750
|
+
approvalSignatures: record.approvalSignatures.map((sig) => ({
|
|
751
|
+
memberId: this.idProvider.idToString(sig.memberId),
|
|
752
|
+
signature: serializeUint8Array(sig.signature),
|
|
753
|
+
})),
|
|
754
|
+
requiredSignatures: record.requiredSignatures,
|
|
755
|
+
};
|
|
756
|
+
const existing = await col.findOne({ memberId });
|
|
757
|
+
if (existing) {
|
|
758
|
+
await col.updateOne({ memberId }, { $set: { data } });
|
|
759
|
+
}
|
|
760
|
+
else {
|
|
761
|
+
await col.insertOne({ memberId, data });
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
async deleteBanRecord(memberId) {
|
|
765
|
+
const col = this.db.collection(COLLECTION_BAN_RECORDS);
|
|
766
|
+
const id = this.idProvider.idToString(memberId);
|
|
767
|
+
await col.deleteOne({ memberId: id });
|
|
768
|
+
}
|
|
769
|
+
async getBanRecord(memberId) {
|
|
770
|
+
const col = this.db.collection(COLLECTION_BAN_RECORDS);
|
|
771
|
+
const id = this.idProvider.idToString(memberId);
|
|
772
|
+
const doc = await col.findOne({ memberId: id });
|
|
773
|
+
if (!doc)
|
|
774
|
+
return null;
|
|
775
|
+
return this.deserializeBanRecord(doc.data);
|
|
776
|
+
}
|
|
777
|
+
async getAllBanRecords() {
|
|
778
|
+
const col = this.db.collection(COLLECTION_BAN_RECORDS);
|
|
779
|
+
const docs = await col.find({}).toArray();
|
|
780
|
+
return docs.map((doc) => this.deserializeBanRecord(doc.data));
|
|
781
|
+
}
|
|
782
|
+
async getMemberAdmissionProposerId(memberId) {
|
|
783
|
+
// Look up the ADD_MEMBER proposal that admitted this member.
|
|
784
|
+
// If no such proposal exists, the member is a founder.
|
|
785
|
+
const col = this.db.collection(COLLECTION_PROPOSALS);
|
|
786
|
+
const memberIdStr = this.idProvider.idToString(memberId);
|
|
787
|
+
const docs = await col
|
|
788
|
+
.find({})
|
|
789
|
+
.toArray();
|
|
790
|
+
for (const doc of docs) {
|
|
791
|
+
const data = doc.data;
|
|
792
|
+
if (data['actionType'] === 'ADD_MEMBER' &&
|
|
793
|
+
data['status'] === 'APPROVED') {
|
|
794
|
+
const payload = data['actionPayload'];
|
|
795
|
+
if (payload && payload['targetMemberId'] === memberIdStr) {
|
|
796
|
+
const proposerId = data['proposerMemberId'];
|
|
797
|
+
if (proposerId) {
|
|
798
|
+
return this.idProvider.idFromString(proposerId);
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
}
|
|
802
|
+
}
|
|
803
|
+
return null;
|
|
804
|
+
}
|
|
805
|
+
deserializeBanRecord(data) {
|
|
806
|
+
const sigs = data['approvalSignatures'] ?? [];
|
|
807
|
+
return {
|
|
808
|
+
memberId: this.idProvider.idFromString(data['memberId']),
|
|
809
|
+
reason: data['reason'],
|
|
810
|
+
proposalId: this.idProvider.idFromString(data['proposalId']),
|
|
811
|
+
epoch: data['epoch'],
|
|
812
|
+
bannedAt: new Date(data['bannedAt']),
|
|
813
|
+
evidenceBlockIds: data['evidenceBlockIds'],
|
|
814
|
+
approvalSignatures: sigs.map((sig) => ({
|
|
815
|
+
memberId: this.idProvider.idFromString(sig.memberId),
|
|
816
|
+
signature: deserializeUint8Array(sig.signature),
|
|
817
|
+
})),
|
|
818
|
+
requiredSignatures: data['requiredSignatures'],
|
|
819
|
+
};
|
|
820
|
+
}
|
|
738
821
|
}
|
|
739
822
|
exports.QuorumDatabaseAdapter = QuorumDatabaseAdapter;
|
|
740
823
|
//# sourceMappingURL=quorumDatabaseAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quorumDatabaseAdapter.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/quorumDatabaseAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quorumDatabaseAdapter.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/quorumDatabaseAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,62 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* Shape of a session document stored in BrightDB.
|
|
4
|
-
* Exported so consumers (tests, controllers) can reference the type.
|
|
5
|
-
*/
|
|
6
|
-
export interface ISessionDocument {
|
|
7
|
-
/** UUID v4 identifying this session. */
|
|
8
|
-
sessionId: string;
|
|
9
|
-
/** Hex-encoded member ID. */
|
|
10
|
-
memberId: string;
|
|
11
|
-
/** SHA-256 hex digest of the JWT token. */
|
|
12
|
-
tokenHash: string;
|
|
13
|
-
/** Epoch-ms when the session was created. */
|
|
14
|
-
createdAt: number;
|
|
15
|
-
/** Epoch-ms when the session expires. */
|
|
16
|
-
expiresAt: number;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Manages user sessions backed by a BrightDB `sessions` collection.
|
|
20
|
-
*
|
|
21
|
-
* Token hashes use SHA-256 (not bcrypt) so that `validateToken` can
|
|
22
|
-
* query by hash without a per-row compare.
|
|
23
|
-
*/
|
|
24
|
-
export declare class BrightChainSessionAdapter {
|
|
25
|
-
private readonly db;
|
|
26
|
-
constructor(db: BrightDb);
|
|
27
|
-
/**
|
|
28
|
-
* Create a new session for the given member.
|
|
29
|
-
*
|
|
30
|
-
* @param memberId Hex string of the member's ID.
|
|
31
|
-
* @param token The raw JWT token (will be SHA-256 hashed for storage).
|
|
32
|
-
* @param ttlMs Time-to-live in milliseconds.
|
|
33
|
-
* @returns The generated UUID session ID.
|
|
34
|
-
*/
|
|
35
|
-
createSession(memberId: string, token: string, ttlMs: number): Promise<string>;
|
|
36
|
-
/**
|
|
37
|
-
* Retrieve a session by its ID.
|
|
38
|
-
*
|
|
39
|
-
* @returns The session document, or `null` if not found or expired.
|
|
40
|
-
*/
|
|
41
|
-
getSession(sessionId: string): Promise<ISessionDocument | null>;
|
|
42
|
-
/**
|
|
43
|
-
* Validate a raw JWT token against stored sessions.
|
|
44
|
-
*
|
|
45
|
-
* Hashes the token with SHA-256, looks up the matching session,
|
|
46
|
-
* and checks expiration.
|
|
47
|
-
*
|
|
48
|
-
* @returns The session document, or `null` if invalid / expired / missing.
|
|
49
|
-
*/
|
|
50
|
-
validateToken(token: string): Promise<ISessionDocument | null>;
|
|
51
|
-
/**
|
|
52
|
-
* Delete a session by its ID.
|
|
53
|
-
*/
|
|
54
|
-
deleteSession(sessionId: string): Promise<void>;
|
|
55
|
-
/**
|
|
56
|
-
* Remove all expired sessions.
|
|
57
|
-
*
|
|
58
|
-
* @returns The number of sessions removed.
|
|
59
|
-
*/
|
|
60
|
-
cleanExpired(): Promise<number>;
|
|
61
|
-
}
|
|
1
|
+
export type { ISessionDocument } from '@brightchain/node-express-suite';
|
|
2
|
+
export { BrightChainSessionAdapter } from '@brightchain/node-express-suite';
|
|
62
3
|
//# sourceMappingURL=sessionAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionAdapter.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/sessionAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sessionAdapter.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/sessionAdapter.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -1,106 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BrightChainSessionAdapter = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
/** Compute the SHA-256 hex digest of a string. */
|
|
7
|
-
function sha256Hex(value) {
|
|
8
|
-
return (0, crypto_1.createHash)('sha256').update(value).digest('hex');
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Manages user sessions backed by a BrightDB `sessions` collection.
|
|
12
|
-
*
|
|
13
|
-
* Token hashes use SHA-256 (not bcrypt) so that `validateToken` can
|
|
14
|
-
* query by hash without a per-row compare.
|
|
15
|
-
*/
|
|
16
|
-
class BrightChainSessionAdapter {
|
|
17
|
-
db;
|
|
18
|
-
constructor(db) {
|
|
19
|
-
this.db = db;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Create a new session for the given member.
|
|
23
|
-
*
|
|
24
|
-
* @param memberId Hex string of the member's ID.
|
|
25
|
-
* @param token The raw JWT token (will be SHA-256 hashed for storage).
|
|
26
|
-
* @param ttlMs Time-to-live in milliseconds.
|
|
27
|
-
* @returns The generated UUID session ID.
|
|
28
|
-
*/
|
|
29
|
-
async createSession(memberId, token, ttlMs) {
|
|
30
|
-
const sessionId = (0, crypto_1.randomUUID)();
|
|
31
|
-
const now = Date.now();
|
|
32
|
-
const doc = {
|
|
33
|
-
sessionId,
|
|
34
|
-
memberId,
|
|
35
|
-
tokenHash: sha256Hex(token),
|
|
36
|
-
createdAt: now,
|
|
37
|
-
expiresAt: now + ttlMs,
|
|
38
|
-
};
|
|
39
|
-
const col = this.db.collection(COLLECTION_SESSIONS);
|
|
40
|
-
await col.insertOne(doc);
|
|
41
|
-
return sessionId;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Retrieve a session by its ID.
|
|
45
|
-
*
|
|
46
|
-
* @returns The session document, or `null` if not found or expired.
|
|
47
|
-
*/
|
|
48
|
-
async getSession(sessionId) {
|
|
49
|
-
const col = this.db.collection(COLLECTION_SESSIONS);
|
|
50
|
-
const doc = await col.findOne({ sessionId });
|
|
51
|
-
if (!doc)
|
|
52
|
-
return null;
|
|
53
|
-
if (doc.expiresAt < Date.now())
|
|
54
|
-
return null;
|
|
55
|
-
return toSessionDocument(doc);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Validate a raw JWT token against stored sessions.
|
|
59
|
-
*
|
|
60
|
-
* Hashes the token with SHA-256, looks up the matching session,
|
|
61
|
-
* and checks expiration.
|
|
62
|
-
*
|
|
63
|
-
* @returns The session document, or `null` if invalid / expired / missing.
|
|
64
|
-
*/
|
|
65
|
-
async validateToken(token) {
|
|
66
|
-
const tokenHash = sha256Hex(token);
|
|
67
|
-
const col = this.db.collection(COLLECTION_SESSIONS);
|
|
68
|
-
const doc = await col.findOne({ tokenHash });
|
|
69
|
-
if (!doc)
|
|
70
|
-
return null;
|
|
71
|
-
if (doc.expiresAt < Date.now())
|
|
72
|
-
return null;
|
|
73
|
-
return toSessionDocument(doc);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Delete a session by its ID.
|
|
77
|
-
*/
|
|
78
|
-
async deleteSession(sessionId) {
|
|
79
|
-
const col = this.db.collection(COLLECTION_SESSIONS);
|
|
80
|
-
await col.deleteOne({ sessionId });
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Remove all expired sessions.
|
|
84
|
-
*
|
|
85
|
-
* @returns The number of sessions removed.
|
|
86
|
-
*/
|
|
87
|
-
async cleanExpired() {
|
|
88
|
-
const col = this.db.collection(COLLECTION_SESSIONS);
|
|
89
|
-
const now = Date.now();
|
|
90
|
-
// BrightDB's filter engine supports $lt on numeric fields.
|
|
91
|
-
const result = await col.deleteMany({ expiresAt: { $lt: now } });
|
|
92
|
-
return result.deletedCount;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
exports.BrightChainSessionAdapter = BrightChainSessionAdapter;
|
|
96
|
-
/** Map a stored SessionDoc to the public ISessionDocument shape. */
|
|
97
|
-
function toSessionDocument(doc) {
|
|
98
|
-
return {
|
|
99
|
-
sessionId: doc.sessionId,
|
|
100
|
-
memberId: doc.memberId,
|
|
101
|
-
tokenHash: doc.tokenHash,
|
|
102
|
-
createdAt: doc.createdAt,
|
|
103
|
-
expiresAt: doc.expiresAt,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
4
|
+
var node_express_suite_1 = require("@brightchain/node-express-suite");
|
|
5
|
+
Object.defineProperty(exports, "BrightChainSessionAdapter", { enumerable: true, get: function () { return node_express_suite_1.BrightChainSessionAdapter; } });
|
|
106
6
|
//# sourceMappingURL=sessionAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionAdapter.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/sessionAdapter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"sessionAdapter.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/sessionAdapter.ts"],"names":[],"mappings":";;;AAEA,sEAA4E;AAAnE,+HAAA,yBAAyB,OAAA"}
|
|
@@ -1,32 +1,24 @@
|
|
|
1
1
|
import { ModelName } from './enumerations/model-name';
|
|
2
2
|
import { SchemaCollection } from './enumerations/schema-collection';
|
|
3
|
-
export type { GuidV4Buffer, SignatureBuffer, } from '@
|
|
4
|
-
|
|
5
|
-
import type { DefaultBackendIdType as DefaultBackendIdType_ } from './types/backend-id';
|
|
6
|
-
export type DefaultBackendIdType = DefaultBackendIdType_;
|
|
3
|
+
export type { GuidV4Buffer, SignatureBuffer, ClientSession, DefaultBackendIdType, } from '@brightchain/node-express-suite';
|
|
4
|
+
import type { IBlockStorageSchema as IBlockStorageSchemaBase, IBlockStorageSchemaEntry as IBlockStorageSchemaEntryBase } from '@brightchain/node-express-suite';
|
|
7
5
|
/**
|
|
8
|
-
* Block storage schema definition
|
|
6
|
+
* Block storage schema definition narrowed with domain-specific ModelName enum.
|
|
9
7
|
*/
|
|
10
|
-
export interface IBlockStorageSchema<T> {
|
|
8
|
+
export interface IBlockStorageSchema<T> extends Omit<IBlockStorageSchemaBase<T>, 'name'> {
|
|
11
9
|
name: ModelName;
|
|
12
|
-
fields: Record<string, unknown>;
|
|
13
|
-
indexes?: Array<{
|
|
14
|
-
fields: Record<string, number | undefined>;
|
|
15
|
-
options?: Record<string, unknown>;
|
|
16
|
-
}>;
|
|
17
|
-
validate?: (doc: Partial<T>) => void;
|
|
18
10
|
}
|
|
19
11
|
/**
|
|
20
|
-
* Block storage model definition
|
|
12
|
+
* Block storage model definition narrowed with domain-specific ModelName enum.
|
|
21
13
|
*/
|
|
22
14
|
export interface IBlockStorageModel<T> {
|
|
23
15
|
readonly modelName: ModelName;
|
|
24
16
|
readonly schema: IBlockStorageSchema<T>;
|
|
25
17
|
}
|
|
26
18
|
/**
|
|
27
|
-
* Block storage schema entry
|
|
19
|
+
* Block storage schema entry narrowed with domain-specific enums.
|
|
28
20
|
*/
|
|
29
|
-
export interface IBlockStorageSchemaEntry<T> {
|
|
21
|
+
export interface IBlockStorageSchemaEntry<T> extends Omit<IBlockStorageSchemaEntryBase<T>, 'collection' | 'model' | 'modelName' | 'schema'> {
|
|
30
22
|
collection: SchemaCollection;
|
|
31
23
|
model: IBlockStorageModel<T>;
|
|
32
24
|
modelName: ModelName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-types.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/shared-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpE,YAAY,EACV,YAAY,EACZ,eAAe,
|
|
1
|
+
{"version":3,"file":"shared-types.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/shared-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpE,YAAY,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EACV,mBAAmB,IAAI,uBAAuB,EAE9C,wBAAwB,IAAI,4BAA4B,EACzD,MAAM,iCAAiC,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IACtF,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB,CAAC,CAAC,CACzC,SAAQ,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC9F,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CAChC;AAED;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-id.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/types/backend-id.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"backend-id.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/types/backend-id.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -1,44 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* Requirements: 9.1, 9.2, 9.3, 9.4
|
|
5
|
-
*/
|
|
6
|
-
export interface IValidationError {
|
|
7
|
-
field: string;
|
|
8
|
-
message: string;
|
|
9
|
-
}
|
|
10
|
-
export interface IValidationResult {
|
|
11
|
-
valid: boolean;
|
|
12
|
-
errors: IValidationError[];
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Validates a registration request body.
|
|
16
|
-
* - username: non-empty, alphanumeric/hyphens/underscores only
|
|
17
|
-
* - email: valid email format
|
|
18
|
-
* - password: minimum 8 characters
|
|
19
|
-
*/
|
|
20
|
-
export declare function validateRegistration(body: unknown): IValidationResult;
|
|
21
|
-
/**
|
|
22
|
-
* Validates a login request body.
|
|
23
|
-
* - username: non-empty
|
|
24
|
-
* - password: non-empty
|
|
25
|
-
*/
|
|
26
|
-
export declare function validateLogin(body: unknown): IValidationResult;
|
|
27
|
-
/**
|
|
28
|
-
* Validates a password change request body.
|
|
29
|
-
* - currentPassword: non-empty string
|
|
30
|
-
* - newPassword: minimum 8 characters
|
|
31
|
-
*
|
|
32
|
-
* Requirements: 1.3, 5.7
|
|
33
|
-
*/
|
|
34
|
-
export declare function validatePasswordChange(body: unknown): IValidationResult;
|
|
35
|
-
/**
|
|
36
|
-
* Validates a mnemonic recovery request body.
|
|
37
|
-
* - email: valid email format
|
|
38
|
-
* - mnemonic: non-empty string
|
|
39
|
-
* - newPassword (optional): if present, minimum 8 characters
|
|
40
|
-
*
|
|
41
|
-
* Requirements: 5.7
|
|
42
|
-
*/
|
|
43
|
-
export declare function validateRecovery(body: unknown): IValidationResult;
|
|
1
|
+
export type { IValidationError, IValidationResult } from '@brightchain/node-express-suite';
|
|
2
|
+
export { validateRegistration, validateLogin, validatePasswordChange, validateRecovery, } from '@brightchain/node-express-suite';
|
|
44
3
|
//# sourceMappingURL=userValidation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userValidation.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/validation/userValidation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"userValidation.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/validation/userValidation.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC"}
|