@brightchain/brightchain-api-lib 0.17.2 → 0.18.2
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 -4
- package/src/index.d.ts +2 -1
- package/src/index.d.ts.map +1 -1
- package/src/index.js +3 -1
- package/src/index.js.map +1 -1
- package/src/lib/application.d.ts +7 -7
- package/src/lib/application.d.ts.map +1 -1
- package/src/lib/application.js +21 -43
- package/src/lib/application.js.map +1 -1
- package/src/lib/controllers/api/channels.d.ts +1 -3
- package/src/lib/controllers/api/channels.d.ts.map +1 -1
- package/src/lib/controllers/api/channels.js +13 -13
- package/src/lib/controllers/api/channels.js.map +1 -1
- package/src/lib/controllers/api/conversations.d.ts +1 -2
- package/src/lib/controllers/api/conversations.d.ts.map +1 -1
- package/src/lib/controllers/api/conversations.js +7 -7
- package/src/lib/controllers/api/conversations.js.map +1 -1
- package/src/lib/controllers/api/emails.d.ts.map +1 -1
- package/src/lib/controllers/api/emails.js +12 -14
- package/src/lib/controllers/api/emails.js.map +1 -1
- package/src/lib/controllers/api/explodingMessages.d.ts +1 -2
- package/src/lib/controllers/api/explodingMessages.d.ts.map +1 -1
- package/src/lib/controllers/api/explodingMessages.js +11 -11
- package/src/lib/controllers/api/explodingMessages.js.map +1 -1
- package/src/lib/controllers/api/groups.d.ts +1 -3
- package/src/lib/controllers/api/groups.d.ts.map +1 -1
- package/src/lib/controllers/api/groups.js +9 -9
- package/src/lib/controllers/api/groups.js.map +1 -1
- package/src/lib/controllers/crypto/gitController.d.ts +1 -1
- package/src/lib/controllers/crypto/gitController.d.ts.map +1 -1
- package/src/lib/controllers/crypto/gitController.js +8 -8
- package/src/lib/controllers/crypto/gitController.js.map +1 -1
- package/src/lib/controllers/crypto/walletController.d.ts +1 -1
- package/src/lib/controllers/crypto/walletController.d.ts.map +1 -1
- package/src/lib/controllers/crypto/walletController.js +5 -5
- package/src/lib/controllers/crypto/walletController.js.map +1 -1
- package/src/lib/controllers/identity/deviceController.d.ts +1 -2
- package/src/lib/controllers/identity/deviceController.d.ts.map +1 -1
- package/src/lib/controllers/identity/deviceController.js +7 -8
- package/src/lib/controllers/identity/deviceController.js.map +1 -1
- package/src/lib/controllers/identity/directoryController.d.ts +1 -2
- package/src/lib/controllers/identity/directoryController.d.ts.map +1 -1
- package/src/lib/controllers/identity/directoryController.js +6 -7
- package/src/lib/controllers/identity/directoryController.js.map +1 -1
- package/src/lib/controllers/identity/identityProofController.d.ts +1 -1
- package/src/lib/controllers/identity/identityProofController.d.ts.map +1 -1
- package/src/lib/controllers/identity/identityProofController.js +15 -17
- package/src/lib/controllers/identity/identityProofController.js.map +1 -1
- package/src/lib/enumerations/brightChainApiStrings.d.ts +1 -1
- package/src/lib/enumerations/brightChainApiStrings.d.ts.map +1 -1
- package/src/lib/enumerations/brightChainApiStrings.js +1 -1
- package/src/lib/enumerations/brightChainApiStrings.js.map +1 -1
- package/src/lib/environment.d.ts +4 -4
- package/src/lib/environment.d.ts.map +1 -1
- package/src/lib/environment.js +6 -5
- package/src/lib/environment.js.map +1 -1
- package/src/lib/interfaces/index.d.ts +1 -0
- package/src/lib/interfaces/index.d.ts.map +1 -1
- package/src/lib/interfaces/member-init-config.d.ts +20 -0
- package/src/lib/interfaces/member-init-config.d.ts.map +1 -0
- package/src/lib/{documents/base.js → interfaces/member-init-config.js} +1 -1
- package/src/lib/interfaces/member-init-config.js.map +1 -0
- package/src/lib/interfaces/schema.d.ts +5 -3
- package/src/lib/interfaces/schema.d.ts.map +1 -1
- package/src/lib/interfaces/storage/index.d.ts +4 -0
- package/src/lib/interfaces/storage/index.d.ts.map +1 -1
- package/src/lib/interfaces/storage/index.js +14 -2
- package/src/lib/interfaces/storage/index.js.map +1 -1
- package/src/lib/interfaces/storage/mnemonicSchema.d.ts +10 -0
- package/src/lib/interfaces/storage/mnemonicSchema.d.ts.map +1 -0
- package/src/lib/interfaces/storage/mnemonicSchema.js +22 -0
- package/src/lib/interfaces/storage/mnemonicSchema.js.map +1 -0
- package/src/lib/interfaces/storage/roleSchema.d.ts +10 -0
- package/src/lib/interfaces/storage/roleSchema.d.ts.map +1 -0
- package/src/lib/interfaces/storage/roleSchema.js +45 -0
- package/src/lib/interfaces/storage/roleSchema.js.map +1 -0
- package/src/lib/interfaces/storage/userRoleSchema.d.ts +10 -0
- package/src/lib/interfaces/storage/userRoleSchema.d.ts.map +1 -0
- package/src/lib/interfaces/storage/userRoleSchema.js +35 -0
- package/src/lib/interfaces/storage/userRoleSchema.js.map +1 -0
- package/src/lib/interfaces/storage/userSchema.d.ts +12 -0
- package/src/lib/interfaces/storage/userSchema.d.ts.map +1 -0
- package/src/lib/interfaces/storage/userSchema.js +62 -0
- package/src/lib/interfaces/storage/userSchema.js.map +1 -0
- package/src/lib/plugins/brightchain-database-plugin.d.ts +150 -0
- package/src/lib/plugins/brightchain-database-plugin.d.ts.map +1 -0
- package/src/lib/plugins/brightchain-database-plugin.js +252 -0
- package/src/lib/plugins/brightchain-database-plugin.js.map +1 -0
- package/src/lib/plugins/configure-brightchain-app.d.ts +41 -0
- package/src/lib/plugins/configure-brightchain-app.d.ts.map +1 -0
- package/src/lib/plugins/configure-brightchain-app.js +70 -0
- package/src/lib/plugins/configure-brightchain-app.js.map +1 -0
- package/src/lib/routers/api.d.ts +1 -5
- package/src/lib/routers/api.d.ts.map +1 -1
- package/src/lib/services/blockStore.d.ts +1 -2
- package/src/lib/services/blockStore.d.ts.map +1 -1
- package/src/lib/services/blockStore.js +4 -6
- package/src/lib/services/blockStore.js.map +1 -1
- package/src/lib/services/brightchain-authentication-provider.d.ts +35 -0
- package/src/lib/services/brightchain-authentication-provider.d.ts.map +1 -0
- package/src/lib/services/brightchain-authentication-provider.js +196 -0
- package/src/lib/services/brightchain-authentication-provider.js.map +1 -0
- package/src/lib/services/brightchain-member-init.service.d.ts +103 -20
- package/src/lib/services/brightchain-member-init.service.d.ts.map +1 -1
- package/src/lib/services/brightchain-member-init.service.js +411 -5
- package/src/lib/services/brightchain-member-init.service.js.map +1 -1
- package/src/lib/services/expirationScheduler.d.ts +1 -2
- package/src/lib/services/expirationScheduler.d.ts.map +1 -1
- package/src/lib/services/expirationScheduler.js +3 -3
- package/src/lib/services/expirationScheduler.js.map +1 -1
- package/src/lib/services/quorum.d.ts.map +1 -1
- package/src/lib/services/quorum.js +2 -2
- package/src/lib/services/quorum.js.map +1 -1
- package/src/lib/services/wireConversationPromotion.d.ts +1 -2
- package/src/lib/services/wireConversationPromotion.d.ts.map +1 -1
- package/src/lib/services/wireConversationPromotion.js.map +1 -1
- package/src/lib/shared-types.d.ts +0 -17
- package/src/lib/shared-types.d.ts.map +1 -1
- package/src/lib/stores/diskBlockStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockStore.js +4 -1
- package/src/lib/stores/diskBlockStore.js.map +1 -1
- package/src/lib/utils/type-converters.d.ts +5 -8
- package/src/lib/utils/type-converters.d.ts.map +1 -1
- package/src/lib/utils/type-converters.js.map +1 -1
- package/src/lib/application-base.d.ts +0 -11
- package/src/lib/application-base.d.ts.map +0 -1
- package/src/lib/application-base.js +0 -12
- package/src/lib/application-base.js.map +0 -1
- package/src/lib/documents/base.d.ts +0 -6
- package/src/lib/documents/base.d.ts.map +0 -1
- package/src/lib/documents/base.js.map +0 -1
- package/src/lib/documents/email-token.d.ts +0 -8
- package/src/lib/documents/email-token.d.ts.map +0 -1
- package/src/lib/documents/email-token.js +0 -3
- package/src/lib/documents/email-token.js.map +0 -1
- package/src/lib/documents/index.d.ts +0 -7
- package/src/lib/documents/index.d.ts.map +0 -1
- package/src/lib/documents/index.js +0 -3
- package/src/lib/documents/index.js.map +0 -1
- package/src/lib/documents/mnemonic.d.ts +0 -8
- package/src/lib/documents/mnemonic.d.ts.map +0 -1
- package/src/lib/documents/mnemonic.js +0 -3
- package/src/lib/documents/mnemonic.js.map +0 -1
- package/src/lib/documents/role.d.ts +0 -8
- package/src/lib/documents/role.d.ts.map +0 -1
- package/src/lib/documents/role.js +0 -3
- package/src/lib/documents/role.js.map +0 -1
- package/src/lib/documents/used-direct-login-token.d.ts +0 -5
- package/src/lib/documents/used-direct-login-token.d.ts.map +0 -1
- package/src/lib/documents/used-direct-login-token.js +0 -3
- package/src/lib/documents/used-direct-login-token.js.map +0 -1
- package/src/lib/documents/user-role.d.ts +0 -8
- package/src/lib/documents/user-role.d.ts.map +0 -1
- package/src/lib/documents/user-role.js +0 -3
- package/src/lib/documents/user-role.js.map +0 -1
- package/src/lib/documents/user.d.ts +0 -13
- package/src/lib/documents/user.d.ts.map +0 -1
- package/src/lib/documents/user.js +0 -3
- package/src/lib/documents/user.js.map +0 -1
- package/src/lib/upstream-stubs.d.ts +0 -36
- package/src/lib/upstream-stubs.d.ts.map +0 -1
- package/src/lib/upstream-stubs.js +0 -43
- package/src/lib/upstream-stubs.js.map +0 -1
- /package/{README.md → brightchain-api-lib/README.md} +0 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview BrightChain database plugin for the express-suite plugin architecture.
|
|
4
|
+
*
|
|
5
|
+
* Implements IDatabasePlugin<TID> to encapsulate the BrightChain database stack
|
|
6
|
+
* lifecycle: block stores, BrightChainDb, member/energy stores, and the
|
|
7
|
+
* authentication provider. The plugin is registered via Application.useDatabasePlugin()
|
|
8
|
+
* and participates in the standard plugin lifecycle (connect → init → stop).
|
|
9
|
+
*
|
|
10
|
+
* BrightChainDb already implements IDatabase from express-suite, so the plugin's
|
|
11
|
+
* `database` property returns the BrightChainDb instance directly — no adapter needed.
|
|
12
|
+
*
|
|
13
|
+
* @module plugins/brightchain-database-plugin
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.BrightChainDatabasePlugin = void 0;
|
|
17
|
+
const brightChainDbDocumentStoreAdapter_1 = require("../adapters/brightChainDbDocumentStoreAdapter");
|
|
18
|
+
const databaseInit_1 = require("../databaseInit");
|
|
19
|
+
const brightchain_authentication_provider_1 = require("../services/brightchain-authentication-provider");
|
|
20
|
+
/**
|
|
21
|
+
* BrightChain database plugin implementing IDatabasePlugin<TID>.
|
|
22
|
+
*
|
|
23
|
+
* Owns the full database lifecycle:
|
|
24
|
+
* - connect() → calls brightchainDatabaseInit() and stores backend references
|
|
25
|
+
* - init(app) → creates BrightChainAuthenticationProvider
|
|
26
|
+
* - stop() → delegates to disconnect()
|
|
27
|
+
* - disconnect() → releases all references (idempotent)
|
|
28
|
+
*
|
|
29
|
+
* Typed accessors (blockStore, memberStore, energyStore, brightChainDb, documentStore)
|
|
30
|
+
* throw descriptive errors when the plugin is not connected.
|
|
31
|
+
*/
|
|
32
|
+
class BrightChainDatabasePlugin {
|
|
33
|
+
constructor(environment) {
|
|
34
|
+
this.name = 'brightchain-database';
|
|
35
|
+
this.version = '1.0.0';
|
|
36
|
+
this._connected = false;
|
|
37
|
+
this._blockStore = null;
|
|
38
|
+
this._brightChainDb = null;
|
|
39
|
+
this._documentStore = null;
|
|
40
|
+
this._memberStore = null;
|
|
41
|
+
this._energyStore = null;
|
|
42
|
+
this._authProvider = null;
|
|
43
|
+
this._environment = environment;
|
|
44
|
+
}
|
|
45
|
+
// ── IDatabasePlugin contract ──────────────────────────────────────
|
|
46
|
+
/**
|
|
47
|
+
* The IDatabase instance this plugin manages.
|
|
48
|
+
* BrightChainDb implements IDatabase directly, so no adapter is needed.
|
|
49
|
+
* @throws Error if the plugin is not connected.
|
|
50
|
+
*/
|
|
51
|
+
get database() {
|
|
52
|
+
if (!this._brightChainDb) {
|
|
53
|
+
throw new Error('BrightChainDatabasePlugin: cannot access "database" — plugin is not connected. Call connect() first.');
|
|
54
|
+
}
|
|
55
|
+
return this._brightChainDb;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Authentication provider created during init().
|
|
59
|
+
* Returns undefined before init() is called.
|
|
60
|
+
*/
|
|
61
|
+
get authenticationProvider() {
|
|
62
|
+
return this._authProvider ?? undefined;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Connect the BrightChain database stack.
|
|
66
|
+
*
|
|
67
|
+
* Calls brightchainDatabaseInit(environment) and stores the resulting
|
|
68
|
+
* backend references (blockStore, db/BrightChainDb, documentStore,
|
|
69
|
+
* memberStore, energyStore).
|
|
70
|
+
*
|
|
71
|
+
* @param _uri - Ignored; BrightChain uses environment-based configuration.
|
|
72
|
+
* @throws Error if brightchainDatabaseInit() returns a failure result.
|
|
73
|
+
*/
|
|
74
|
+
async connect(_uri) {
|
|
75
|
+
const initResult = await (0, databaseInit_1.brightchainDatabaseInit)(this._environment);
|
|
76
|
+
if (!initResult.success || !initResult.backend) {
|
|
77
|
+
throw new Error(`BrightChain database initialization failed: ${initResult.error ?? 'unknown error'}`);
|
|
78
|
+
}
|
|
79
|
+
const { blockStore, db, memberStore, energyStore } = initResult.backend;
|
|
80
|
+
this._blockStore = blockStore;
|
|
81
|
+
this._documentStore = db;
|
|
82
|
+
this._memberStore = memberStore;
|
|
83
|
+
this._energyStore = energyStore;
|
|
84
|
+
// BrightChainDb is the underlying database behind the documentStore adapter.
|
|
85
|
+
// brightchainDatabaseInit() creates BrightChainDb and wraps it in
|
|
86
|
+
// BrightChainDbDocumentStoreAdapter. We extract the raw BrightChainDb
|
|
87
|
+
// for the IDatabasePlugin.database property (IDatabase contract).
|
|
88
|
+
this._brightChainDb = this.extractBrightChainDb(db);
|
|
89
|
+
this._connected = true;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Disconnect and release all backend references.
|
|
93
|
+
* Idempotent — calling when already disconnected completes without error.
|
|
94
|
+
*/
|
|
95
|
+
async disconnect() {
|
|
96
|
+
if (!this._connected) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (this._brightChainDb?.isConnected()) {
|
|
100
|
+
await this._brightChainDb.disconnect();
|
|
101
|
+
}
|
|
102
|
+
this._blockStore = null;
|
|
103
|
+
this._brightChainDb = null;
|
|
104
|
+
this._documentStore = null;
|
|
105
|
+
this._memberStore = null;
|
|
106
|
+
this._energyStore = null;
|
|
107
|
+
this._authProvider = null;
|
|
108
|
+
this._connected = false;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Whether the database is currently connected.
|
|
112
|
+
*/
|
|
113
|
+
isConnected() {
|
|
114
|
+
return this._connected;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Initialize the plugin after connection.
|
|
118
|
+
* Creates the BrightChainAuthenticationProvider and stores it
|
|
119
|
+
* as the authenticationProvider property.
|
|
120
|
+
*
|
|
121
|
+
* @param app - The application instance (must implement IBrightChainApplication).
|
|
122
|
+
*/
|
|
123
|
+
async init(app) {
|
|
124
|
+
this._authProvider = new brightchain_authentication_provider_1.BrightChainAuthenticationProvider(app);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Stop the plugin. Delegates to disconnect() for cleanup.
|
|
128
|
+
*/
|
|
129
|
+
async stop() {
|
|
130
|
+
await this.disconnect();
|
|
131
|
+
}
|
|
132
|
+
// ── Dev store lifecycle hooks ─────────────────────────────────────
|
|
133
|
+
// These are the BrightChain equivalents of the Mongo plugin's
|
|
134
|
+
// MongoMemoryReplSet provisioning. When environment.devDatabase is
|
|
135
|
+
// truthy, the upstream Application.start() calls setupDevStore()
|
|
136
|
+
// before connect() and initializeDevStore() after init().
|
|
137
|
+
//
|
|
138
|
+
// For BrightChain, "dev store" means using a MemoryBlockStore with
|
|
139
|
+
// an InMemoryHeadRegistry — brightchainDatabaseInit() already handles
|
|
140
|
+
// this when environment.blockStorePath is not set.
|
|
141
|
+
/**
|
|
142
|
+
* Provision an ephemeral dev/test block store.
|
|
143
|
+
*
|
|
144
|
+
* Called by Application.start() before connect() when
|
|
145
|
+
* environment.devDatabase is truthy. BrightChain doesn't use
|
|
146
|
+
* connection URIs — the memory vs disk decision is driven by
|
|
147
|
+
* environment.blockStorePath (absent → memory). This hook
|
|
148
|
+
* signals that we're in dev mode and returns an empty string
|
|
149
|
+
* (no URI concept for block stores).
|
|
150
|
+
*/
|
|
151
|
+
async setupDevStore() {
|
|
152
|
+
console.log('[BrightChain] Dev database mode — using ephemeral MemoryBlockStore + InMemoryHeadRegistry.');
|
|
153
|
+
return '';
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Tear down the ephemeral dev/test block store.
|
|
157
|
+
*
|
|
158
|
+
* Called during stop() flow. Our disconnect() already releases
|
|
159
|
+
* all in-memory references, so this is a no-op beyond logging.
|
|
160
|
+
*/
|
|
161
|
+
async teardownDevStore() {
|
|
162
|
+
// disconnect() handles all cleanup — nothing extra needed
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Seed the dev database after connection.
|
|
166
|
+
*
|
|
167
|
+
* Called by Application.start() after connect() and init() when
|
|
168
|
+
* environment.devDatabase is truthy. Currently a no-op — can be
|
|
169
|
+
* extended to seed test users, blocks, etc. for local development.
|
|
170
|
+
*/
|
|
171
|
+
async initializeDevStore() {
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
// ── Typed accessors ───────────────────────────────────────────────
|
|
175
|
+
/**
|
|
176
|
+
* The block store backing the BrightChain database.
|
|
177
|
+
* @throws Error if the plugin is not connected.
|
|
178
|
+
*/
|
|
179
|
+
get blockStore() {
|
|
180
|
+
if (!this._blockStore) {
|
|
181
|
+
throw new Error('BrightChainDatabasePlugin: cannot access "blockStore" — plugin is not connected. Call connect() first.');
|
|
182
|
+
}
|
|
183
|
+
return this._blockStore;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* The BrightChainDb instance (implements IDatabase).
|
|
187
|
+
* @throws Error if the plugin is not connected.
|
|
188
|
+
*/
|
|
189
|
+
get brightChainDb() {
|
|
190
|
+
if (!this._brightChainDb) {
|
|
191
|
+
throw new Error('BrightChainDatabasePlugin: cannot access "brightChainDb" — plugin is not connected. Call connect() first.');
|
|
192
|
+
}
|
|
193
|
+
return this._brightChainDb;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* The document store (BrightChainDbDocumentStoreAdapter wrapping BrightChainDb).
|
|
197
|
+
* @throws Error if the plugin is not connected.
|
|
198
|
+
*/
|
|
199
|
+
get documentStore() {
|
|
200
|
+
if (!this._documentStore) {
|
|
201
|
+
throw new Error('BrightChainDatabasePlugin: cannot access "documentStore" — plugin is not connected. Call connect() first.');
|
|
202
|
+
}
|
|
203
|
+
return this._documentStore;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* The member store for user/member operations.
|
|
207
|
+
* @throws Error if the plugin is not connected.
|
|
208
|
+
*/
|
|
209
|
+
get memberStore() {
|
|
210
|
+
if (!this._memberStore) {
|
|
211
|
+
throw new Error('BrightChainDatabasePlugin: cannot access "memberStore" — plugin is not connected. Call connect() first.');
|
|
212
|
+
}
|
|
213
|
+
return this._memberStore;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* The energy account store for energy ledger operations.
|
|
217
|
+
* @throws Error if the plugin is not connected.
|
|
218
|
+
*/
|
|
219
|
+
get energyStore() {
|
|
220
|
+
if (!this._energyStore) {
|
|
221
|
+
throw new Error('BrightChainDatabasePlugin: cannot access "energyStore" — plugin is not connected. Call connect() first.');
|
|
222
|
+
}
|
|
223
|
+
return this._energyStore;
|
|
224
|
+
}
|
|
225
|
+
// ── Private helpers ───────────────────────────────────────────────
|
|
226
|
+
/**
|
|
227
|
+
* Extract the underlying BrightChainDb from the IDocumentStore adapter.
|
|
228
|
+
*
|
|
229
|
+
* brightchainDatabaseInit() wraps BrightChainDb in a
|
|
230
|
+
* BrightChainDbDocumentStoreAdapter. We need the raw BrightChainDb
|
|
231
|
+
* for the IDatabasePlugin.database property (IDatabase contract).
|
|
232
|
+
*
|
|
233
|
+
* We verify the adapter type via instanceof, then access the runtime
|
|
234
|
+
* `db` property (TypeScript `private` is compile-time only).
|
|
235
|
+
*/
|
|
236
|
+
extractBrightChainDb(documentStore) {
|
|
237
|
+
if (!(documentStore instanceof brightChainDbDocumentStoreAdapter_1.BrightChainDbDocumentStoreAdapter)) {
|
|
238
|
+
throw new Error('BrightChainDatabasePlugin: expected BrightChainDbDocumentStoreAdapter from brightchainDatabaseInit().');
|
|
239
|
+
}
|
|
240
|
+
// BrightChainDbDocumentStoreAdapter has a private `db: BrightChainDb` field.
|
|
241
|
+
// TypeScript's `private` keyword is compile-time only — the property exists
|
|
242
|
+
// at runtime. We use a structural interface to access it after the instanceof
|
|
243
|
+
// guard confirms the concrete type.
|
|
244
|
+
const adapterWithDb = documentStore;
|
|
245
|
+
if (!adapterWithDb.db) {
|
|
246
|
+
throw new Error('BrightChainDatabasePlugin: could not extract BrightChainDb from document store adapter.');
|
|
247
|
+
}
|
|
248
|
+
return adapterWithDb.db;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
exports.BrightChainDatabasePlugin = BrightChainDatabasePlugin;
|
|
252
|
+
//# sourceMappingURL=brightchain-database-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brightchain-database-plugin.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/plugins/brightchain-database-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Shared BrightChain application setup function.
|
|
3
|
+
*
|
|
4
|
+
* Extracts the GUID provider configuration, constants updates, runtime
|
|
5
|
+
* registration, and database plugin registration into a single reusable
|
|
6
|
+
* function. Both the API server (`App`) and the init-user-db tool consume
|
|
7
|
+
* this instead of duplicating the setup logic.
|
|
8
|
+
*
|
|
9
|
+
* @module plugins/configure-brightchain-app
|
|
10
|
+
*/
|
|
11
|
+
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
12
|
+
import type { IApplication, IConstants } from '@digitaldefiance/node-express-suite';
|
|
13
|
+
import type { Environment } from '../environment';
|
|
14
|
+
import { BrightChainDatabasePlugin } from './brightchain-database-plugin';
|
|
15
|
+
/**
|
|
16
|
+
* Result returned by {@link configureBrightChainApp}.
|
|
17
|
+
* Exposes the plugin so callers can retrieve store references after start().
|
|
18
|
+
*/
|
|
19
|
+
export interface ConfigureBrightChainResult<TID extends PlatformID> {
|
|
20
|
+
plugin: BrightChainDatabasePlugin<TID>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Configure a BrightChain application with GUID-based IDs, runtime
|
|
24
|
+
* constants, and the BrightChain database plugin.
|
|
25
|
+
*
|
|
26
|
+
* This function:
|
|
27
|
+
* 1. Creates a {@link GuidV4Provider} and updates the constants with
|
|
28
|
+
* GUID byte-length values (`idProvider`, `MEMBER_ID_LENGTH`,
|
|
29
|
+
* `ECIES.MULTIPLE.RECIPIENT_ID_SIZE`, and conditionally
|
|
30
|
+
* `ENCRYPTION.RECIPIENT_ID_SIZE`).
|
|
31
|
+
* 2. Calls `registerNodeRuntimeConfiguration('guid-config', constants)`.
|
|
32
|
+
* 3. Creates a {@link BrightChainDatabasePlugin} and registers it on the
|
|
33
|
+
* application via `useDatabasePlugin()`.
|
|
34
|
+
*
|
|
35
|
+
* @param app - The Application instance (full `App`, plain `Application`, or `BaseApplication`)
|
|
36
|
+
* @param environment - BrightChain environment configuration
|
|
37
|
+
* @param constants - Constants to configure; defaults to {@link AppConstants}
|
|
38
|
+
* @returns The created plugin for callers that need direct access
|
|
39
|
+
*/
|
|
40
|
+
export declare function configureBrightChainApp<TID extends PlatformID>(app: IApplication<TID>, environment: Environment<TID>, constants?: IConstants): ConfigureBrightChainResult<TID>;
|
|
41
|
+
//# sourceMappingURL=configure-brightchain-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-brightchain-app.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/plugins/configure-brightchain-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAKlE,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACX,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E;;;GAGG;AACH,MAAM,WAAW,0BAA0B,CAAC,GAAG,SAAS,UAAU;IAChE,MAAM,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,SAAS,UAAU,EAC5D,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EACtB,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,EAC7B,SAAS,GAAE,UAAyB,GACnC,0BAA0B,CAAC,GAAG,CAAC,CAwCjC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Shared BrightChain application setup function.
|
|
4
|
+
*
|
|
5
|
+
* Extracts the GUID provider configuration, constants updates, runtime
|
|
6
|
+
* registration, and database plugin registration into a single reusable
|
|
7
|
+
* function. Both the API server (`App`) and the init-user-db tool consume
|
|
8
|
+
* this instead of duplicating the setup logic.
|
|
9
|
+
*
|
|
10
|
+
* @module plugins/configure-brightchain-app
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.configureBrightChainApp = configureBrightChainApp;
|
|
14
|
+
const node_ecies_lib_1 = require("@digitaldefiance/node-ecies-lib");
|
|
15
|
+
const appConstants_1 = require("../appConstants");
|
|
16
|
+
const brightchain_database_plugin_1 = require("./brightchain-database-plugin");
|
|
17
|
+
/**
|
|
18
|
+
* Configure a BrightChain application with GUID-based IDs, runtime
|
|
19
|
+
* constants, and the BrightChain database plugin.
|
|
20
|
+
*
|
|
21
|
+
* This function:
|
|
22
|
+
* 1. Creates a {@link GuidV4Provider} and updates the constants with
|
|
23
|
+
* GUID byte-length values (`idProvider`, `MEMBER_ID_LENGTH`,
|
|
24
|
+
* `ECIES.MULTIPLE.RECIPIENT_ID_SIZE`, and conditionally
|
|
25
|
+
* `ENCRYPTION.RECIPIENT_ID_SIZE`).
|
|
26
|
+
* 2. Calls `registerNodeRuntimeConfiguration('guid-config', constants)`.
|
|
27
|
+
* 3. Creates a {@link BrightChainDatabasePlugin} and registers it on the
|
|
28
|
+
* application via `useDatabasePlugin()`.
|
|
29
|
+
*
|
|
30
|
+
* @param app - The Application instance (full `App`, plain `Application`, or `BaseApplication`)
|
|
31
|
+
* @param environment - BrightChain environment configuration
|
|
32
|
+
* @param constants - Constants to configure; defaults to {@link AppConstants}
|
|
33
|
+
* @returns The created plugin for callers that need direct access
|
|
34
|
+
*/
|
|
35
|
+
function configureBrightChainApp(app, environment, constants = appConstants_1.AppConstants) {
|
|
36
|
+
// 1. Configure GUID provider and sync all derived constants
|
|
37
|
+
const guidProvider = new node_ecies_lib_1.GuidV4Provider();
|
|
38
|
+
constants.idProvider = guidProvider;
|
|
39
|
+
constants.MEMBER_ID_LENGTH = guidProvider.byteLength;
|
|
40
|
+
constants.ECIES = {
|
|
41
|
+
...constants.ECIES,
|
|
42
|
+
MULTIPLE: {
|
|
43
|
+
...constants.ECIES.MULTIPLE,
|
|
44
|
+
RECIPIENT_ID_SIZE: guidProvider.byteLength,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
// Sync node-ecies-lib ENCRYPTION constants if present
|
|
48
|
+
if ('ENCRYPTION' in constants && constants.ENCRYPTION) {
|
|
49
|
+
constants.ENCRYPTION = {
|
|
50
|
+
...constants.ENCRYPTION,
|
|
51
|
+
RECIPIENT_ID_SIZE: guidProvider.byteLength,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
// 2. Register node runtime configuration
|
|
55
|
+
(0, node_ecies_lib_1.registerNodeRuntimeConfiguration)('guid-config', constants);
|
|
56
|
+
// 3. Create and register database plugin
|
|
57
|
+
const plugin = new brightchain_database_plugin_1.BrightChainDatabasePlugin(environment);
|
|
58
|
+
// Application (HTTP) exposes useDatabasePlugin() which stores the plugin
|
|
59
|
+
// reference AND registers it with the PluginManager. BaseApplication (CLI)
|
|
60
|
+
// only has the PluginManager, so fall back to plugins.register().
|
|
61
|
+
if ('useDatabasePlugin' in app &&
|
|
62
|
+
typeof app.useDatabasePlugin === 'function') {
|
|
63
|
+
app.useDatabasePlugin(plugin);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
app.plugins.register(plugin);
|
|
67
|
+
}
|
|
68
|
+
return { plugin };
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=configure-brightchain-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-brightchain-app.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/plugins/configure-brightchain-app.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAyCH,0DA4CC;AAlFD,oEAGyC;AAKzC,kDAA+C;AAE/C,+EAA0E;AAU1E;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,uBAAuB,CACrC,GAAsB,EACtB,WAA6B,EAC7B,YAAwB,2BAAY;IAEpC,4DAA4D;IAC5D,MAAM,YAAY,GAAG,IAAI,+BAAc,EAAE,CAAC;IAC1C,SAAS,CAAC,UAAU,GAAG,YAAY,CAAC;IACpC,SAAS,CAAC,gBAAgB,GAAG,YAAY,CAAC,UAAU,CAAC;IACrD,SAAS,CAAC,KAAK,GAAG;QAChB,GAAG,SAAS,CAAC,KAAK;QAClB,QAAQ,EAAE;YACR,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ;YAC3B,iBAAiB,EAAE,YAAY,CAAC,UAAU;SAC3C;KACF,CAAC;IAEF,sDAAsD;IACtD,IAAI,YAAY,IAAI,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACtD,SAAS,CAAC,UAAU,GAAG;YACrB,GAAG,SAAS,CAAC,UAAU;YACvB,iBAAiB,EAAE,YAAY,CAAC,UAAU;SAC3C,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,IAAA,iDAAgC,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE3D,yCAAyC;IACzC,MAAM,MAAM,GAAG,IAAI,uDAAyB,CAAM,WAAW,CAAC,CAAC;IAE/D,yEAAyE;IACzE,2EAA2E;IAC3E,kEAAkE;IAClE,IACE,mBAAmB,IAAI,GAAG;QAC1B,OAAO,GAAG,CAAC,iBAAiB,KAAK,UAAU,EAC3C,CAAC;QACD,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
|
package/src/lib/routers/api.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import { IAvailabilityService, IBlockStore, IDiscoveryProtocol, IReconciliationService } from '@brightchain/brightchain-lib';
|
|
2
|
-
import { ChannelService } from '@brightchain/brightchain-lib/lib/services/communication/channelService';
|
|
3
|
-
import { ConversationService } from '@brightchain/brightchain-lib/lib/services/communication/conversationService';
|
|
4
|
-
import { GroupService } from '@brightchain/brightchain-lib/lib/services/communication/groupService';
|
|
5
|
-
import { PermissionService } from '@brightchain/brightchain-lib/lib/services/communication/permissionService';
|
|
1
|
+
import { ChannelService, ConversationService, GroupService, IAvailabilityService, IBlockStore, IDiscoveryProtocol, IReconciliationService, PermissionService } from '@brightchain/brightchain-lib';
|
|
6
2
|
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
7
3
|
import { PoolDiscoveryService } from '../availability/poolDiscoveryService';
|
|
8
4
|
import { IntrospectionController, IntrospectionControllerConfig } from '../controllers/api/introspection';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAgB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAQ3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAW5E,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;GAEG;AACH,qBAAa,SAAS,CACpB,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,UAAU,CAAC,GAAG,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyB;IAC3D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA8B;IACrE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA0B;IAC7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,uBAAuB,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA+B;IACtE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyB;IAC3D;;OAEG;gBACS,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IA0DrD;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAIrE;;;;;OAKG;IACI,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAI/D;;;;;OAKG;IACI,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAIlE;;;OAGG;IACI,kBAAkB,IAAI,eAAe,CAAC,GAAG,CAAC;IAIjD;;;OAGG;IACI,iBAAiB,IAAI,cAAc,CAAC,GAAG,CAAC;IAI/C;;;;;OAKG;IACI,0BAA0B,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAItE;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAItE;;;;OAIG;IACI,kBAAkB,CAAC,WAAW,EAAE,uBAAuB,GAAG,IAAI;IAIrE;;;;OAIG;IACI,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAMlD;;;OAGG;IACI,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAIjE;;;OAGG;IACI,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAInD;;;OAGG;IACI,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIvD;;;OAGG;IACI,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAK7D;;;;;OAKG;IACI,gCAAgC,CACrC,OAAO,EAAE,qBAAqB,GAC7B,IAAI;IAIP;;OAEG;IACI,yBAAyB,IAAI,OAAO,IAAI,CAAC,sBAAsB;IAItE;;OAEG;IACI,kBAAkB,IAAI,OAAO,IAAI,CAAC,eAAe;IAIxD;;OAEG;IACI,oBAAoB,IAAI,OAAO,IAAI,CAAC,iBAAiB;IAM5D;;;;;OAKG;IACI,2BAA2B,CAChC,MAAM,EAAE,6BAA6B,GACpC,IAAI;IAQP;;;;OAIG;IACI,sBAAsB,CAAC,MAAM,EAAE,6BAA6B,GAAG,IAAI;IAM1E;;;;OAIG;IACI,oCAAoC,CACzC,OAAO,EAAE,oBAAoB,GAC5B,IAAI;IAUP;;OAEG;IACI,0BAA0B,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,IAAI;CAGzE"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { BlockStoreOptions, BrightenResult, IBlockMetadata, IFecService } from '@brightchain/brightchain-lib';
|
|
2
|
-
import { BlockSize } from '@brightchain/brightchain-lib/lib/enumerations/blockSize';
|
|
1
|
+
import { BlockSize, BlockStoreOptions, BrightenResult, IBlockMetadata, IFecService } from '@brightchain/brightchain-lib';
|
|
3
2
|
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
4
3
|
import { IBrightChainApplication } from '../interfaces';
|
|
5
4
|
import { DefaultBackendIdType } from '../shared-types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/blockStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,
|
|
1
|
+
{"version":3,"file":"blockStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/blockStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,cAAc,EAEd,cAAc,EACd,WAAW,EAEZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGrC;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAiB,CAC5B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,WAAW,CAAC,GAAG,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,iBAAiB,CAA8B;gBAE3C,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAerD;;;;OAIG;YACW,oBAAoB;IA8BlC;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;OAGG;IACH,QAAQ,IAAI,mBAAmB;IAI/B;;OAEG;IACH,aAAa,IAAI,WAAW,GAAG,IAAI;IAInC,YAAY,IAAI,SAAS;IAInB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAOtE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1C,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAIjE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,cAAc,CAAC;CAG3B"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BlockStoreService = void 0;
|
|
4
|
-
const
|
|
5
|
-
const blockSize_1 = require("@brightchain/brightchain-lib/lib/enumerations/blockSize");
|
|
6
|
-
const checksum_1 = require("@brightchain/brightchain-lib/lib/types/checksum");
|
|
4
|
+
const brightchain_lib_1 = require("@brightchain/brightchain-lib");
|
|
7
5
|
const stores_1 = require("../stores");
|
|
8
6
|
const base_1 = require("./base");
|
|
9
7
|
const fecServiceFactory_1 = require("./fecServiceFactory");
|
|
@@ -29,7 +27,7 @@ class BlockStoreService extends base_1.BaseService {
|
|
|
29
27
|
const storePath = this.application.environment.blockStorePath ?? 'tmp/blockstore';
|
|
30
28
|
const blockSize = (this.application.environment.blockStoreBlockSize
|
|
31
29
|
? this.application.environment.blockStoreBlockSize
|
|
32
|
-
:
|
|
30
|
+
: brightchain_lib_1.BlockSize.Medium);
|
|
33
31
|
this.store = new stores_1.DiskBlockAsyncStore({ storePath, blockSize });
|
|
34
32
|
// Start FEC service initialization in the background
|
|
35
33
|
this.initializeFecService();
|
|
@@ -86,13 +84,13 @@ class BlockStoreService extends base_1.BaseService {
|
|
|
86
84
|
return this.store.blockSize;
|
|
87
85
|
}
|
|
88
86
|
async storeBlock(data, options) {
|
|
89
|
-
const block = new
|
|
87
|
+
const block = new brightchain_lib_1.RawDataBlock(this.store.blockSize, data);
|
|
90
88
|
const blockId = block.idChecksum.toHex();
|
|
91
89
|
await this.store.setData(block, options);
|
|
92
90
|
return blockId;
|
|
93
91
|
}
|
|
94
92
|
async getBlock(blockId) {
|
|
95
|
-
const block = await this.store.getData(
|
|
93
|
+
const block = await this.store.getData(brightchain_lib_1.Checksum.fromHex(blockId));
|
|
96
94
|
return Buffer.from(block.data);
|
|
97
95
|
}
|
|
98
96
|
async getBlockMetadata(blockId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockStore.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/blockStore.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"blockStore.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/blockStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview BrightChain block-store-backed implementation of IAuthenticationProvider.
|
|
3
|
+
* Delegates user lookup to MemberStore, credential verification to bcrypt/mnemonic,
|
|
4
|
+
* and JWT operations to jsonwebtoken — fully decoupled from Mongoose.
|
|
5
|
+
*
|
|
6
|
+
* Follows the same structural pattern as MongoAuthenticationProvider:
|
|
7
|
+
* - findUserById → MemberStore.getMember + getMemberProfile
|
|
8
|
+
* - buildRequestUserDTO → MemberStore + MemberType-based role mapping
|
|
9
|
+
* - verifyToken → jwt.verify (no Mongoose JwtService)
|
|
10
|
+
* - authenticateWith* → MemberStore + bcrypt / Member.fromMnemonic
|
|
11
|
+
*
|
|
12
|
+
* @module services/brightchain-authentication-provider
|
|
13
|
+
*/
|
|
14
|
+
import type { SecureString } from '@digitaldefiance/ecies-lib';
|
|
15
|
+
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
16
|
+
import type { IAuthenticatedUser, IAuthenticationProvider, ICryptoAuthResult } from '@digitaldefiance/node-express-suite';
|
|
17
|
+
import type { IRequestUserDTO, ITokenUser } from '@digitaldefiance/suite-core-lib';
|
|
18
|
+
import { IBrightChainApplication } from '../interfaces';
|
|
19
|
+
/**
|
|
20
|
+
* BrightChain block-store-backed authentication provider.
|
|
21
|
+
* Uses MemberStore for user lookup, bcrypt for password verification,
|
|
22
|
+
* and jwt.verify for token validation — no Mongoose dependency.
|
|
23
|
+
*/
|
|
24
|
+
export declare class BrightChainAuthenticationProvider<TID extends PlatformID = Buffer, TLanguage extends string = string> implements IAuthenticationProvider<TID, TLanguage> {
|
|
25
|
+
private readonly application;
|
|
26
|
+
constructor(application: IBrightChainApplication<TID>);
|
|
27
|
+
/** Resolve MemberStore from the service container. */
|
|
28
|
+
private getMemberStore;
|
|
29
|
+
findUserById(userId: string): Promise<IAuthenticatedUser<TLanguage> | null>;
|
|
30
|
+
buildRequestUserDTO(userId: string): Promise<IRequestUserDTO | null>;
|
|
31
|
+
verifyToken<TTokenUser extends ITokenUser = ITokenUser>(token: string): Promise<TTokenUser | null>;
|
|
32
|
+
authenticateWithMnemonic(email: string, mnemonic: SecureString): Promise<ICryptoAuthResult<TID>>;
|
|
33
|
+
authenticateWithPassword(email: string, password: string): Promise<ICryptoAuthResult<TID>>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=brightchain-authentication-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brightchain-authentication-provider.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/brightchain-authentication-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAEV,eAAe,EAEf,UAAU,EACX,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAsDxD;;;;GAIG;AACH,qBAAa,iCAAiC,CAC5C,GAAG,SAAS,UAAU,GAAG,MAAM,EAC/B,SAAS,SAAS,MAAM,GAAG,MAAM,CACjC,YAAW,uBAAuB,CAAC,GAAG,EAAE,SAAS,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAEtE,sDAAsD;IACtD,OAAO,CAAC,cAAc;IAIhB,YAAY,CAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IA6B1C,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAqCpE,WAAW,CAAC,UAAU,SAAS,UAAU,GAAG,UAAU,EAC1D,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAiBvB,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IA4B5B,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;CAgCnC"}
|