@brightchain/brightchain-api-lib 0.18.2 → 0.21.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 +8 -3
- package/src/index.d.ts +0 -1
- package/src/index.d.ts.map +1 -1
- package/src/index.js +0 -1
- package/src/index.js.map +1 -1
- package/src/lib/application.d.ts +12 -3
- package/src/lib/application.d.ts.map +1 -1
- package/src/lib/application.js +153 -7
- package/src/lib/application.js.map +1 -1
- package/src/lib/availability/gossipService.d.ts +59 -1
- package/src/lib/availability/gossipService.d.ts.map +1 -1
- package/src/lib/availability/gossipService.js +125 -1
- package/src/lib/availability/gossipService.js.map +1 -1
- package/src/lib/availability/index.d.ts +1 -0
- package/src/lib/availability/index.d.ts.map +1 -1
- package/src/lib/availability/index.js +1 -0
- package/src/lib/availability/index.js.map +1 -1
- package/src/lib/availability/quorumGossipHandler.d.ts +126 -0
- package/src/lib/availability/quorumGossipHandler.d.ts.map +1 -0
- package/src/lib/availability/quorumGossipHandler.js +246 -0
- package/src/lib/availability/quorumGossipHandler.js.map +1 -0
- package/src/lib/constants.d.ts.map +1 -1
- package/src/lib/constants.js +4 -0
- package/src/lib/constants.js.map +1 -1
- package/src/lib/controllers/api/quorum.d.ts +110 -2
- package/src/lib/controllers/api/quorum.d.ts.map +1 -1
- package/src/lib/controllers/api/quorum.js +389 -0
- package/src/lib/controllers/api/quorum.js.map +1 -1
- package/src/lib/controllers/api/user.d.ts +12 -15
- package/src/lib/controllers/api/user.d.ts.map +1 -1
- package/src/lib/controllers/api/user.js +312 -94
- package/src/lib/controllers/api/user.js.map +1 -1
- package/src/lib/databaseInit.d.ts +3 -2
- package/src/lib/databaseInit.d.ts.map +1 -1
- package/src/lib/databaseInit.js +24 -12
- package/src/lib/databaseInit.js.map +1 -1
- package/src/lib/datastore/index.d.ts +0 -1
- package/src/lib/datastore/index.d.ts.map +1 -1
- package/src/lib/datastore/index.js +0 -1
- package/src/lib/datastore/index.js.map +1 -1
- package/src/lib/environment.d.ts +6 -0
- package/src/lib/environment.d.ts.map +1 -1
- package/src/lib/environment.js +14 -0
- package/src/lib/environment.js.map +1 -1
- package/src/lib/hydration/energyAccountHydration.d.ts +17 -0
- package/src/lib/hydration/energyAccountHydration.d.ts.map +1 -0
- package/src/lib/hydration/energyAccountHydration.js +24 -0
- package/src/lib/hydration/energyAccountHydration.js.map +1 -0
- package/src/lib/hydration/index.d.ts +13 -0
- package/src/lib/hydration/index.d.ts.map +1 -0
- package/src/lib/hydration/index.js +21 -0
- package/src/lib/hydration/index.js.map +1 -0
- package/src/lib/hydration/rbacHydration.d.ts +28 -0
- package/src/lib/hydration/rbacHydration.d.ts.map +1 -0
- package/src/lib/hydration/rbacHydration.js +56 -0
- package/src/lib/hydration/rbacHydration.js.map +1 -0
- package/src/lib/interfaces/environment.d.ts +7 -1
- package/src/lib/interfaces/environment.d.ts.map +1 -1
- package/src/lib/interfaces/responses/api-backup-codes-response.d.ts +1 -1
- package/src/lib/interfaces/responses/api-code-count-response.d.ts +1 -1
- package/src/lib/interfaces/responses/api-password-change-response.d.ts +9 -0
- package/src/lib/interfaces/responses/api-password-change-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-password-change-response.js +3 -0
- package/src/lib/interfaces/responses/api-password-change-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-recovery-response.d.ts +9 -0
- package/src/lib/interfaces/responses/api-recovery-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-recovery-response.js +3 -0
- package/src/lib/interfaces/responses/api-recovery-response.js.map +1 -0
- package/src/lib/interfaces/responses/index.d.ts +2 -0
- package/src/lib/interfaces/responses/index.d.ts.map +1 -1
- package/src/lib/interfaces/storage/client-session.d.ts +1 -1
- package/src/lib/interfaces/storage/client-session.d.ts.map +1 -1
- package/src/lib/interfaces/storage/collection.d.ts +1 -1
- package/src/lib/interfaces/storage/collection.d.ts.map +1 -1
- package/src/lib/interfaces/storage/database-lifecycle-hooks.d.ts +1 -1
- package/src/lib/interfaces/storage/database-lifecycle-hooks.d.ts.map +1 -1
- package/src/lib/interfaces/storage/database.d.ts +1 -1
- package/src/lib/interfaces/storage/database.d.ts.map +1 -1
- package/src/lib/interfaces/storage/document-types.d.ts +1 -1
- package/src/lib/interfaces/storage/document-types.d.ts.map +1 -1
- package/src/lib/interfaces/storage/index.d.ts +1 -0
- package/src/lib/interfaces/storage/index.d.ts.map +1 -1
- package/src/lib/interfaces/storage/index.js.map +1 -1
- package/src/lib/interfaces/storage/storedDocumentTypes.d.ts +73 -0
- package/src/lib/interfaces/storage/storedDocumentTypes.d.ts.map +1 -0
- package/src/lib/interfaces/storage/storedDocumentTypes.js +15 -0
- package/src/lib/interfaces/storage/storedDocumentTypes.js.map +1 -0
- package/src/lib/plugins/brightchain-database-plugin.d.ts +31 -21
- package/src/lib/plugins/brightchain-database-plugin.d.ts.map +1 -1
- package/src/lib/plugins/brightchain-database-plugin.js +103 -53
- package/src/lib/plugins/brightchain-database-plugin.js.map +1 -1
- package/src/lib/plugins/configure-brightchain-app.d.ts.map +1 -1
- package/src/lib/plugins/configure-brightchain-app.js +5 -0
- package/src/lib/plugins/configure-brightchain-app.js.map +1 -1
- package/src/lib/services/auth.d.ts +6 -2
- package/src/lib/services/auth.d.ts.map +1 -1
- package/src/lib/services/auth.js +43 -7
- package/src/lib/services/auth.js.map +1 -1
- package/src/lib/services/backupCodeService.d.ts +35 -0
- package/src/lib/services/backupCodeService.d.ts.map +1 -0
- package/src/lib/services/backupCodeService.js +109 -0
- package/src/lib/services/backupCodeService.js.map +1 -0
- package/src/lib/services/brightchain-authentication-provider.d.ts.map +1 -1
- package/src/lib/services/brightchain-authentication-provider.js +28 -9
- package/src/lib/services/brightchain-authentication-provider.js.map +1 -1
- package/src/lib/services/brightchain-member-init.service.d.ts +39 -20
- package/src/lib/services/brightchain-member-init.service.d.ts.map +1 -1
- package/src/lib/services/brightchain-member-init.service.js +139 -53
- package/src/lib/services/brightchain-member-init.service.js.map +1 -1
- package/src/lib/services/cliOperatorPrompt.d.ts +81 -0
- package/src/lib/services/cliOperatorPrompt.d.ts.map +1 -0
- package/src/lib/services/cliOperatorPrompt.js +177 -0
- package/src/lib/services/cliOperatorPrompt.js.map +1 -0
- package/src/lib/services/contentAwareBlocksService.d.ts +92 -0
- package/src/lib/services/contentAwareBlocksService.d.ts.map +1 -0
- package/src/lib/services/contentAwareBlocksService.js +102 -0
- package/src/lib/services/contentAwareBlocksService.js.map +1 -0
- package/src/lib/services/contentIngestionService.d.ts +68 -0
- package/src/lib/services/contentIngestionService.d.ts.map +1 -0
- package/src/lib/services/contentIngestionService.js +139 -0
- package/src/lib/services/contentIngestionService.js.map +1 -0
- package/src/lib/services/identityExpirationScheduler.d.ts +77 -0
- package/src/lib/services/identityExpirationScheduler.d.ts.map +1 -0
- package/src/lib/services/identityExpirationScheduler.js +157 -0
- package/src/lib/services/identityExpirationScheduler.js.map +1 -0
- package/src/lib/services/index.d.ts +7 -0
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +7 -0
- package/src/lib/services/index.js.map +1 -1
- package/src/lib/services/quorumDatabaseAdapter.d.ts +60 -0
- package/src/lib/services/quorumDatabaseAdapter.d.ts.map +1 -0
- package/src/lib/services/quorumDatabaseAdapter.js +652 -0
- package/src/lib/services/quorumDatabaseAdapter.js.map +1 -0
- package/src/lib/services/secureKeyStorage.js +3 -3
- package/src/lib/services/secureKeyStorage.js.map +1 -1
- package/src/lib/services/sessionAdapter.d.ts +62 -0
- package/src/lib/services/sessionAdapter.d.ts.map +1 -0
- package/src/lib/services/sessionAdapter.js +105 -0
- package/src/lib/services/sessionAdapter.js.map +1 -0
- package/src/lib/utils/rehydration.d.ts +31 -0
- package/src/lib/utils/rehydration.d.ts.map +1 -0
- package/src/lib/utils/rehydration.js +111 -0
- package/src/lib/utils/rehydration.js.map +1 -0
- package/src/lib/utils/serialization.d.ts +21 -0
- package/src/lib/utils/serialization.d.ts.map +1 -0
- package/src/lib/utils/serialization.js +41 -0
- package/src/lib/utils/serialization.js.map +1 -0
- package/src/lib/validation/userValidation.d.ts +17 -0
- package/src/lib/validation/userValidation.d.ts.map +1 -1
- package/src/lib/validation/userValidation.js +77 -0
- package/src/lib/validation/userValidation.js.map +1 -1
- package/src/lib/adapters/brightChainDbDocumentStoreAdapter.d.ts +0 -24
- package/src/lib/adapters/brightChainDbDocumentStoreAdapter.d.ts.map +0 -1
- package/src/lib/adapters/brightChainDbDocumentStoreAdapter.js +0 -53
- package/src/lib/adapters/brightChainDbDocumentStoreAdapter.js.map +0 -1
- package/src/lib/datastore/document-model-adapter.d.ts +0 -48
- package/src/lib/datastore/document-model-adapter.d.ts.map +0 -1
- package/src/lib/datastore/document-model-adapter.js +0 -178
- package/src/lib/datastore/document-model-adapter.js.map +0 -1
- /package/{brightchain-api-lib/README.md → README.md} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quorumDatabaseAdapter.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/quorumDatabaseAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,13 +18,13 @@ class SecureKeyStorage {
|
|
|
18
18
|
return SecureKeyStorage.instance;
|
|
19
19
|
}
|
|
20
20
|
async initializeFromEnvironment() {
|
|
21
|
-
const mnemonic = process.env['
|
|
21
|
+
const mnemonic = process.env['SYSTEM_MNEMONIC'];
|
|
22
22
|
if (!mnemonic) {
|
|
23
|
-
throw new Error('
|
|
23
|
+
throw new Error('SYSTEM_MNEMONIC environment variable not set');
|
|
24
24
|
}
|
|
25
25
|
await this.storeMnemonic(mnemonic);
|
|
26
26
|
// Immediately clear from process.env
|
|
27
|
-
delete process.env['
|
|
27
|
+
delete process.env['SYSTEM_MNEMONIC'];
|
|
28
28
|
}
|
|
29
29
|
async storeMnemonic(mnemonic) {
|
|
30
30
|
// Store in secure heap with auto-wiping
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secureKeyStorage.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/secureKeyStorage.ts"],"names":[],"mappings":";;;AAAA,kEAAgF;AAEhF;;;GAGG;AACH,MAAa,gBAAgB;IAK3B;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,mCAAiB,EAAE,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,+BAAa,CAAC,WAAW,EAAE,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC/B,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,yBAAyB;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"secureKeyStorage.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/secureKeyStorage.ts"],"names":[],"mappings":";;;AAAA,kEAAgF;AAEhF;;;GAGG;AACH,MAAa,gBAAgB;IAK3B;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,mCAAiB,EAAE,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,+BAAa,CAAC,WAAW,EAAE,CAAC;IACnD,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC/B,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,yBAAyB;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACnC,qCAAqC;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB;QAC1C,wCAAwC;QACxC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,SAA2C;QAE3C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,mCAAmC;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF;AA7CD,4CA6CC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { BrightChainDb } from '@brightchain/db';
|
|
2
|
+
/**
|
|
3
|
+
* Shape of a session document stored in BrightChainDb.
|
|
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 BrightChainDb `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: BrightChainDb);
|
|
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
|
+
}
|
|
62
|
+
//# sourceMappingURL=sessionAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionAdapter.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/sessionAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AAInE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB;AAmBD;;;;;GAKG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAgB;gBAEvB,EAAE,EAAE,aAAa;IAI7B;;;;;;;OAOG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;IAkBlB;;;;OAIG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAQrE;;;;;;;OAOG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IASpE;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CAQtC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BrightChainSessionAdapter = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const COLLECTION_SESSIONS = 'sessions';
|
|
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 BrightChainDb `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
|
+
constructor(db) {
|
|
18
|
+
this.db = db;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Create a new session for the given member.
|
|
22
|
+
*
|
|
23
|
+
* @param memberId Hex string of the member's ID.
|
|
24
|
+
* @param token The raw JWT token (will be SHA-256 hashed for storage).
|
|
25
|
+
* @param ttlMs Time-to-live in milliseconds.
|
|
26
|
+
* @returns The generated UUID session ID.
|
|
27
|
+
*/
|
|
28
|
+
async createSession(memberId, token, ttlMs) {
|
|
29
|
+
const sessionId = (0, crypto_1.randomUUID)();
|
|
30
|
+
const now = Date.now();
|
|
31
|
+
const doc = {
|
|
32
|
+
sessionId,
|
|
33
|
+
memberId,
|
|
34
|
+
tokenHash: sha256Hex(token),
|
|
35
|
+
createdAt: now,
|
|
36
|
+
expiresAt: now + ttlMs,
|
|
37
|
+
};
|
|
38
|
+
const col = this.db.collection(COLLECTION_SESSIONS);
|
|
39
|
+
await col.insertOne(doc);
|
|
40
|
+
return sessionId;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Retrieve a session by its ID.
|
|
44
|
+
*
|
|
45
|
+
* @returns The session document, or `null` if not found or expired.
|
|
46
|
+
*/
|
|
47
|
+
async getSession(sessionId) {
|
|
48
|
+
const col = this.db.collection(COLLECTION_SESSIONS);
|
|
49
|
+
const doc = await col.findOne({ sessionId });
|
|
50
|
+
if (!doc)
|
|
51
|
+
return null;
|
|
52
|
+
if (doc.expiresAt < Date.now())
|
|
53
|
+
return null;
|
|
54
|
+
return toSessionDocument(doc);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Validate a raw JWT token against stored sessions.
|
|
58
|
+
*
|
|
59
|
+
* Hashes the token with SHA-256, looks up the matching session,
|
|
60
|
+
* and checks expiration.
|
|
61
|
+
*
|
|
62
|
+
* @returns The session document, or `null` if invalid / expired / missing.
|
|
63
|
+
*/
|
|
64
|
+
async validateToken(token) {
|
|
65
|
+
const tokenHash = sha256Hex(token);
|
|
66
|
+
const col = this.db.collection(COLLECTION_SESSIONS);
|
|
67
|
+
const doc = await col.findOne({ tokenHash });
|
|
68
|
+
if (!doc)
|
|
69
|
+
return null;
|
|
70
|
+
if (doc.expiresAt < Date.now())
|
|
71
|
+
return null;
|
|
72
|
+
return toSessionDocument(doc);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Delete a session by its ID.
|
|
76
|
+
*/
|
|
77
|
+
async deleteSession(sessionId) {
|
|
78
|
+
const col = this.db.collection(COLLECTION_SESSIONS);
|
|
79
|
+
await col.deleteOne({ sessionId });
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Remove all expired sessions.
|
|
83
|
+
*
|
|
84
|
+
* @returns The number of sessions removed.
|
|
85
|
+
*/
|
|
86
|
+
async cleanExpired() {
|
|
87
|
+
const col = this.db.collection(COLLECTION_SESSIONS);
|
|
88
|
+
const now = Date.now();
|
|
89
|
+
// BrightChainDb's filter engine supports $lt on numeric fields.
|
|
90
|
+
const result = await col.deleteMany({ expiresAt: { $lt: now } });
|
|
91
|
+
return result.deletedCount;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.BrightChainSessionAdapter = BrightChainSessionAdapter;
|
|
95
|
+
/** Map a stored SessionDoc to the public ISessionDocument shape. */
|
|
96
|
+
function toSessionDocument(doc) {
|
|
97
|
+
return {
|
|
98
|
+
sessionId: doc.sessionId,
|
|
99
|
+
memberId: doc.memberId,
|
|
100
|
+
tokenHash: doc.tokenHash,
|
|
101
|
+
createdAt: doc.createdAt,
|
|
102
|
+
expiresAt: doc.expiresAt,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=sessionAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionAdapter.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/sessionAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Rehydration utilities for converting stored (serialized)
|
|
3
|
+
* BrightChainDb documents back into their typed in-memory representations.
|
|
4
|
+
*
|
|
5
|
+
* Each stored document has all IDs as hex strings and all dates as ISO-8601
|
|
6
|
+
* strings. Rehydration converts these back to TID (via IIdProvider.idFromString)
|
|
7
|
+
* and Date objects respectively.
|
|
8
|
+
*
|
|
9
|
+
* The inverse operation (typed → stored) is handled by
|
|
10
|
+
* BrightChainMemberInitService.serializeForStorage().
|
|
11
|
+
*/
|
|
12
|
+
import type { IIdProvider, PlatformID } from '@digitaldefiance/ecies-lib';
|
|
13
|
+
import { AccountStatus, type IMnemonicBase, type IRoleBase, type IUserBase, type IUserRoleBase } from '@digitaldefiance/suite-core-lib';
|
|
14
|
+
import type { IStoredMnemonic, IStoredRole, IStoredUser, IStoredUserRole } from '../interfaces/storage/storedDocumentTypes';
|
|
15
|
+
/**
|
|
16
|
+
* Rehydrate a stored role document into a typed IRoleBase.
|
|
17
|
+
*/
|
|
18
|
+
export declare function rehydrateRole<TID extends PlatformID>(stored: IStoredRole, idProvider: IIdProvider<TID>): IRoleBase<TID, Date, string>;
|
|
19
|
+
/**
|
|
20
|
+
* Rehydrate a stored user document into a typed IUserBase.
|
|
21
|
+
*/
|
|
22
|
+
export declare function rehydrateUser<TID extends PlatformID>(stored: IStoredUser, idProvider: IIdProvider<TID>): IUserBase<TID, Date, string, AccountStatus>;
|
|
23
|
+
/**
|
|
24
|
+
* Rehydrate a stored user-role junction document into a typed IUserRoleBase.
|
|
25
|
+
*/
|
|
26
|
+
export declare function rehydrateUserRole<TID extends PlatformID>(stored: IStoredUserRole, idProvider: IIdProvider<TID>): IUserRoleBase<TID, Date>;
|
|
27
|
+
/**
|
|
28
|
+
* Rehydrate a stored mnemonic document into a typed IMnemonicBase.
|
|
29
|
+
*/
|
|
30
|
+
export declare function rehydrateMnemonic<TID extends PlatformID>(stored: IStoredMnemonic, idProvider: IIdProvider<TID>): IMnemonicBase<TID>;
|
|
31
|
+
//# sourceMappingURL=rehydration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rehydration.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/utils/rehydration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EACL,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EAChB,MAAM,2CAA2C,CAAC;AAInD;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,SAAS,UAAU,EAClD,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,GAC3B,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAmB9B;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,SAAS,UAAU,EAClD,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,GAC3B,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAiC7C;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,SAAS,UAAU,EACtD,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,GAC3B,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAgB1B;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,SAAS,UAAU,EACtD,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,GAC3B,aAAa,CAAC,GAAG,CAAC,CAKpB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Rehydration utilities for converting stored (serialized)
|
|
4
|
+
* BrightChainDb documents back into their typed in-memory representations.
|
|
5
|
+
*
|
|
6
|
+
* Each stored document has all IDs as hex strings and all dates as ISO-8601
|
|
7
|
+
* strings. Rehydration converts these back to TID (via IIdProvider.idFromString)
|
|
8
|
+
* and Date objects respectively.
|
|
9
|
+
*
|
|
10
|
+
* The inverse operation (typed → stored) is handled by
|
|
11
|
+
* BrightChainMemberInitService.serializeForStorage().
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.rehydrateRole = rehydrateRole;
|
|
15
|
+
exports.rehydrateUser = rehydrateUser;
|
|
16
|
+
exports.rehydrateUserRole = rehydrateUserRole;
|
|
17
|
+
exports.rehydrateMnemonic = rehydrateMnemonic;
|
|
18
|
+
// ─── Roles ───────────────────────────────────────────────────────────────────
|
|
19
|
+
/**
|
|
20
|
+
* Rehydrate a stored role document into a typed IRoleBase.
|
|
21
|
+
*/
|
|
22
|
+
function rehydrateRole(stored, idProvider) {
|
|
23
|
+
return {
|
|
24
|
+
_id: idProvider.idFromString(stored._id),
|
|
25
|
+
name: stored.name,
|
|
26
|
+
admin: stored.admin,
|
|
27
|
+
member: stored.member,
|
|
28
|
+
child: stored.child,
|
|
29
|
+
system: stored.system,
|
|
30
|
+
createdBy: idProvider.idFromString(stored.createdBy),
|
|
31
|
+
updatedBy: idProvider.idFromString(stored.updatedBy),
|
|
32
|
+
createdAt: new Date(stored.createdAt),
|
|
33
|
+
updatedAt: new Date(stored.updatedAt),
|
|
34
|
+
...(stored.deletedAt !== undefined && {
|
|
35
|
+
deletedAt: new Date(stored.deletedAt),
|
|
36
|
+
}),
|
|
37
|
+
...(stored.deletedBy !== undefined && {
|
|
38
|
+
deletedBy: idProvider.idFromString(stored.deletedBy),
|
|
39
|
+
}),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// ─── Users ───────────────────────────────────────────────────────────────────
|
|
43
|
+
/**
|
|
44
|
+
* Rehydrate a stored user document into a typed IUserBase.
|
|
45
|
+
*/
|
|
46
|
+
function rehydrateUser(stored, idProvider) {
|
|
47
|
+
return {
|
|
48
|
+
_id: idProvider.idFromString(stored._id),
|
|
49
|
+
username: stored.username,
|
|
50
|
+
email: stored.email,
|
|
51
|
+
publicKey: stored.publicKey,
|
|
52
|
+
passwordWrappedPrivateKey: stored.passwordWrappedPrivateKey,
|
|
53
|
+
mnemonicRecovery: stored.mnemonicRecovery,
|
|
54
|
+
...(stored.mnemonicId !== undefined && {
|
|
55
|
+
mnemonicId: idProvider.idFromString(stored.mnemonicId),
|
|
56
|
+
}),
|
|
57
|
+
backupCodes: stored.backupCodes,
|
|
58
|
+
accountStatus: stored.accountStatus,
|
|
59
|
+
emailVerified: stored.emailVerified,
|
|
60
|
+
directChallenge: stored.directChallenge,
|
|
61
|
+
timezone: stored.timezone,
|
|
62
|
+
siteLanguage: stored.siteLanguage,
|
|
63
|
+
currency: stored.currency,
|
|
64
|
+
darkMode: stored.darkMode,
|
|
65
|
+
...(stored.lastLogin !== undefined && {
|
|
66
|
+
lastLogin: new Date(stored.lastLogin),
|
|
67
|
+
}),
|
|
68
|
+
createdBy: idProvider.idFromString(stored.createdBy),
|
|
69
|
+
updatedBy: idProvider.idFromString(stored.updatedBy),
|
|
70
|
+
createdAt: new Date(stored.createdAt),
|
|
71
|
+
updatedAt: new Date(stored.updatedAt),
|
|
72
|
+
...(stored.deletedAt !== undefined && {
|
|
73
|
+
deletedAt: new Date(stored.deletedAt),
|
|
74
|
+
}),
|
|
75
|
+
...(stored.deletedBy !== undefined && {
|
|
76
|
+
deletedBy: idProvider.idFromString(stored.deletedBy),
|
|
77
|
+
}),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
// ─── User Roles ──────────────────────────────────────────────────────────────
|
|
81
|
+
/**
|
|
82
|
+
* Rehydrate a stored user-role junction document into a typed IUserRoleBase.
|
|
83
|
+
*/
|
|
84
|
+
function rehydrateUserRole(stored, idProvider) {
|
|
85
|
+
return {
|
|
86
|
+
_id: idProvider.idFromString(stored._id),
|
|
87
|
+
userId: idProvider.idFromString(stored.userId),
|
|
88
|
+
roleId: idProvider.idFromString(stored.roleId),
|
|
89
|
+
createdBy: idProvider.idFromString(stored.createdBy),
|
|
90
|
+
updatedBy: idProvider.idFromString(stored.updatedBy),
|
|
91
|
+
createdAt: new Date(stored.createdAt),
|
|
92
|
+
updatedAt: new Date(stored.updatedAt),
|
|
93
|
+
...(stored.deletedAt !== undefined && {
|
|
94
|
+
deletedAt: new Date(stored.deletedAt),
|
|
95
|
+
}),
|
|
96
|
+
...(stored.deletedBy !== undefined && {
|
|
97
|
+
deletedBy: idProvider.idFromString(stored.deletedBy),
|
|
98
|
+
}),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// ─── Mnemonics ───────────────────────────────────────────────────────────────
|
|
102
|
+
/**
|
|
103
|
+
* Rehydrate a stored mnemonic document into a typed IMnemonicBase.
|
|
104
|
+
*/
|
|
105
|
+
function rehydrateMnemonic(stored, idProvider) {
|
|
106
|
+
return {
|
|
107
|
+
_id: idProvider.idFromString(stored._id),
|
|
108
|
+
hmac: stored.hmac,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=rehydration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rehydration.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/utils/rehydration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Serialization utility for converting typed RBAC documents
|
|
3
|
+
* to their stored (all-string) representation for BrightChainDb.
|
|
4
|
+
*
|
|
5
|
+
* Converts GuidV4Buffer values to hex strings and Date values to ISO strings.
|
|
6
|
+
* This is the inverse of the rehydration functions in ./rehydration.ts.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Serialize a typed document for storage.
|
|
10
|
+
*
|
|
11
|
+
* Converts:
|
|
12
|
+
* - Date → ISO-8601 string
|
|
13
|
+
* - GuidV4Buffer → full hex GUID string
|
|
14
|
+
* - Buffer → hex string
|
|
15
|
+
* - Everything else passes through unchanged
|
|
16
|
+
*
|
|
17
|
+
* @template T - The input typed document
|
|
18
|
+
* @template TStored - The expected stored output type (defaults to generic Record)
|
|
19
|
+
*/
|
|
20
|
+
export declare function serializeForStorage<T extends object, TStored extends Record<string, unknown> = Record<string, unknown>>(doc: T): TStored;
|
|
21
|
+
//# sourceMappingURL=serialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/utils/serialization.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,MAAM,EAChB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,GAAG,EAAE,CAAC,GAAG,OAAO,CAcjB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Serialization utility for converting typed RBAC documents
|
|
4
|
+
* to their stored (all-string) representation for BrightChainDb.
|
|
5
|
+
*
|
|
6
|
+
* Converts GuidV4Buffer values to hex strings and Date values to ISO strings.
|
|
7
|
+
* This is the inverse of the rehydration functions in ./rehydration.ts.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.serializeForStorage = serializeForStorage;
|
|
11
|
+
/**
|
|
12
|
+
* Serialize a typed document for storage.
|
|
13
|
+
*
|
|
14
|
+
* Converts:
|
|
15
|
+
* - Date → ISO-8601 string
|
|
16
|
+
* - GuidV4Buffer → full hex GUID string
|
|
17
|
+
* - Buffer → hex string
|
|
18
|
+
* - Everything else passes through unchanged
|
|
19
|
+
*
|
|
20
|
+
* @template T - The input typed document
|
|
21
|
+
* @template TStored - The expected stored output type (defaults to generic Record)
|
|
22
|
+
*/
|
|
23
|
+
function serializeForStorage(doc) {
|
|
24
|
+
const result = {};
|
|
25
|
+
for (const [key, value] of Object.entries(doc)) {
|
|
26
|
+
if (value instanceof Date) {
|
|
27
|
+
result[key] = value.toISOString();
|
|
28
|
+
}
|
|
29
|
+
else if (Buffer.isBuffer(value) && 'asFullHexGuid' in value) {
|
|
30
|
+
result[key] = value.asFullHexGuid;
|
|
31
|
+
}
|
|
32
|
+
else if (Buffer.isBuffer(value)) {
|
|
33
|
+
result[key] = value.toString('hex');
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
result[key] = value;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/utils/serialization.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAgBH,kDAiBC;AA7BD;;;;;;;;;;;GAWG;AACH,SAAgB,mBAAmB,CAGjC,GAAM;IACN,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,eAAe,IAAI,KAAK,EAAE,CAAC;YAC9D,MAAM,CAAC,GAAG,CAAC,GAAI,KAAsB,CAAC,aAAa,CAAC;QACtD,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAiB,CAAC;AAC3B,CAAC"}
|
|
@@ -24,4 +24,21 @@ export declare function validateRegistration(body: unknown): IValidationResult;
|
|
|
24
24
|
* - password: non-empty
|
|
25
25
|
*/
|
|
26
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;
|
|
27
44
|
//# 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":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CAsCrE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CAoB9D"}
|
|
1
|
+
{"version":3,"file":"userValidation.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/validation/userValidation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CAsCrE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CAoB9D;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CA+BvE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CAqCjE"}
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.validateRegistration = validateRegistration;
|
|
9
9
|
exports.validateLogin = validateLogin;
|
|
10
|
+
exports.validatePasswordChange = validatePasswordChange;
|
|
11
|
+
exports.validateRecovery = validateRecovery;
|
|
10
12
|
/**
|
|
11
13
|
* Validates a registration request body.
|
|
12
14
|
* - username: non-empty, alphanumeric/hyphens/underscores only
|
|
@@ -67,4 +69,79 @@ function validateLogin(body) {
|
|
|
67
69
|
}
|
|
68
70
|
return { valid: errors.length === 0, errors };
|
|
69
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Validates a password change request body.
|
|
74
|
+
* - currentPassword: non-empty string
|
|
75
|
+
* - newPassword: minimum 8 characters
|
|
76
|
+
*
|
|
77
|
+
* Requirements: 1.3, 5.7
|
|
78
|
+
*/
|
|
79
|
+
function validatePasswordChange(body) {
|
|
80
|
+
const errors = [];
|
|
81
|
+
const data = body;
|
|
82
|
+
const currentPassword = data['currentPassword'];
|
|
83
|
+
const newPassword = data['newPassword'];
|
|
84
|
+
if (!currentPassword ||
|
|
85
|
+
typeof currentPassword !== 'string' ||
|
|
86
|
+
currentPassword.trim().length === 0) {
|
|
87
|
+
errors.push({
|
|
88
|
+
field: 'currentPassword',
|
|
89
|
+
message: 'Current password is required',
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
if (!newPassword || typeof newPassword !== 'string') {
|
|
93
|
+
errors.push({
|
|
94
|
+
field: 'newPassword',
|
|
95
|
+
message: 'New password is required',
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
else if (newPassword.length < 8) {
|
|
99
|
+
errors.push({
|
|
100
|
+
field: 'newPassword',
|
|
101
|
+
message: 'New password must be at least 8 characters',
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return { valid: errors.length === 0, errors };
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Validates a mnemonic recovery request body.
|
|
108
|
+
* - email: valid email format
|
|
109
|
+
* - mnemonic: non-empty string
|
|
110
|
+
* - newPassword (optional): if present, minimum 8 characters
|
|
111
|
+
*
|
|
112
|
+
* Requirements: 5.7
|
|
113
|
+
*/
|
|
114
|
+
function validateRecovery(body) {
|
|
115
|
+
const errors = [];
|
|
116
|
+
const data = body;
|
|
117
|
+
const email = data['email'];
|
|
118
|
+
const mnemonic = data['mnemonic'];
|
|
119
|
+
const newPassword = data['newPassword'];
|
|
120
|
+
if (!email || typeof email !== 'string') {
|
|
121
|
+
errors.push({ field: 'email', message: 'Email is required' });
|
|
122
|
+
}
|
|
123
|
+
else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
|
|
124
|
+
errors.push({ field: 'email', message: 'Email format is invalid' });
|
|
125
|
+
}
|
|
126
|
+
if (!mnemonic ||
|
|
127
|
+
typeof mnemonic !== 'string' ||
|
|
128
|
+
mnemonic.trim().length === 0) {
|
|
129
|
+
errors.push({ field: 'mnemonic', message: 'Mnemonic is required' });
|
|
130
|
+
}
|
|
131
|
+
if (newPassword !== undefined && newPassword !== null) {
|
|
132
|
+
if (typeof newPassword !== 'string') {
|
|
133
|
+
errors.push({
|
|
134
|
+
field: 'newPassword',
|
|
135
|
+
message: 'New password must be a string',
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
else if (newPassword.length < 8) {
|
|
139
|
+
errors.push({
|
|
140
|
+
field: 'newPassword',
|
|
141
|
+
message: 'New password must be at least 8 characters',
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return { valid: errors.length === 0, errors };
|
|
146
|
+
}
|
|
70
147
|
//# sourceMappingURL=userValidation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userValidation.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/validation/userValidation.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAkBH,oDAsCC;AAOD,sCAoBC;
|
|
1
|
+
{"version":3,"file":"userValidation.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/validation/userValidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Adapter that wraps BrightChainDb as an IDocumentStore.
|
|
3
|
-
*
|
|
4
|
-
* BrightChainDb's Collection.find() returns a Cursor synchronously, while
|
|
5
|
-
* IDocumentStore expects find() to return Promise<IDocumentCursor<T>>.
|
|
6
|
-
* This thin adapter bridges the structural mismatch so that
|
|
7
|
-
* EnergyAccountStore (in brightchain-lib) can use BrightChainDb for
|
|
8
|
-
* persistence without depending on brightchain-db directly.
|
|
9
|
-
*
|
|
10
|
-
* @module adapters/brightChainDbDocumentStoreAdapter
|
|
11
|
-
*/
|
|
12
|
-
import type { IDocumentCollection, IDocumentStore } from '@brightchain/brightchain-lib';
|
|
13
|
-
import type { BrightChainDb } from '@brightchain/db';
|
|
14
|
-
/**
|
|
15
|
-
* Wraps a BrightChainDb instance to satisfy the IDocumentStore interface.
|
|
16
|
-
*/
|
|
17
|
-
export declare class BrightChainDbDocumentStoreAdapter implements IDocumentStore {
|
|
18
|
-
private readonly db;
|
|
19
|
-
constructor(db: BrightChainDb);
|
|
20
|
-
collection<T>(name: string): IDocumentCollection<T>;
|
|
21
|
-
connect(uri?: string): Promise<void>;
|
|
22
|
-
isConnected(): boolean;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=brightChainDbDocumentStoreAdapter.d.ts.map
|