@brightchain/brightchain-api-lib 0.12.0 → 0.13.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.
Files changed (184) hide show
  1. package/package.json +4 -4
  2. package/src/lib/application-base.d.ts +1 -1
  3. package/src/lib/application-base.d.ts.map +1 -1
  4. package/src/lib/application.d.ts +52 -0
  5. package/src/lib/application.d.ts.map +1 -1
  6. package/src/lib/application.js +104 -0
  7. package/src/lib/application.js.map +1 -1
  8. package/src/lib/controllers/api/blocks.d.ts.map +1 -1
  9. package/src/lib/controllers/api/blocks.js +62 -0
  10. package/src/lib/controllers/api/blocks.js.map +1 -1
  11. package/src/lib/controllers/api/docs.d.ts +67 -0
  12. package/src/lib/controllers/api/docs.d.ts.map +1 -0
  13. package/src/lib/controllers/api/docs.js +86 -0
  14. package/src/lib/controllers/api/docs.js.map +1 -0
  15. package/src/lib/controllers/api/energy.d.ts.map +1 -1
  16. package/src/lib/controllers/api/energy.js +35 -7
  17. package/src/lib/controllers/api/energy.js.map +1 -1
  18. package/src/lib/controllers/api/health.d.ts +95 -0
  19. package/src/lib/controllers/api/health.d.ts.map +1 -0
  20. package/src/lib/controllers/api/health.js +319 -0
  21. package/src/lib/controllers/api/health.js.map +1 -0
  22. package/src/lib/controllers/api/index.d.ts +6 -0
  23. package/src/lib/controllers/api/index.d.ts.map +1 -1
  24. package/src/lib/controllers/api/index.js +6 -0
  25. package/src/lib/controllers/api/index.js.map +1 -1
  26. package/src/lib/controllers/api/messages.d.ts +119 -0
  27. package/src/lib/controllers/api/messages.d.ts.map +1 -0
  28. package/src/lib/controllers/api/messages.js +269 -0
  29. package/src/lib/controllers/api/messages.js.map +1 -0
  30. package/src/lib/controllers/api/nodes.d.ts +152 -0
  31. package/src/lib/controllers/api/nodes.d.ts.map +1 -0
  32. package/src/lib/controllers/api/nodes.js +378 -0
  33. package/src/lib/controllers/api/nodes.js.map +1 -0
  34. package/src/lib/controllers/api/quorum.d.ts +12 -8
  35. package/src/lib/controllers/api/quorum.d.ts.map +1 -1
  36. package/src/lib/controllers/api/quorum.js +83 -17
  37. package/src/lib/controllers/api/quorum.js.map +1 -1
  38. package/src/lib/controllers/api/scbl.d.ts +80 -0
  39. package/src/lib/controllers/api/scbl.d.ts.map +1 -0
  40. package/src/lib/controllers/api/scbl.js +325 -0
  41. package/src/lib/controllers/api/scbl.js.map +1 -0
  42. package/src/lib/controllers/api/sync.d.ts +140 -0
  43. package/src/lib/controllers/api/sync.d.ts.map +1 -0
  44. package/src/lib/controllers/api/sync.js +352 -0
  45. package/src/lib/controllers/api/sync.js.map +1 -0
  46. package/src/lib/controllers/api/user.d.ts +2 -0
  47. package/src/lib/controllers/api/user.d.ts.map +1 -1
  48. package/src/lib/controllers/api/user.js +122 -7
  49. package/src/lib/controllers/api/user.js.map +1 -1
  50. package/src/lib/enumerations/brightChainApiStrings.d.ts.map +1 -1
  51. package/src/lib/enumerations/brightChainApiStrings.js.map +1 -1
  52. package/src/lib/errors/symmetric.d.ts +2 -2
  53. package/src/lib/errors/symmetric.d.ts.map +1 -1
  54. package/src/lib/errors/symmetric.js.map +1 -1
  55. package/src/lib/errors/typed-error-local.d.ts +3 -3
  56. package/src/lib/errors/typed-error-local.d.ts.map +1 -1
  57. package/src/lib/errors/typed-error-local.js.map +1 -1
  58. package/src/lib/interfaces/application.d.ts +2 -1
  59. package/src/lib/interfaces/application.d.ts.map +1 -1
  60. package/src/lib/interfaces/backend-objects/index.d.ts +4 -4
  61. package/src/lib/interfaces/backend-objects/index.d.ts.map +1 -1
  62. package/src/lib/interfaces/backend-objects/index.js +0 -5
  63. package/src/lib/interfaces/backend-objects/index.js.map +1 -1
  64. package/src/lib/interfaces/bases/index.d.ts +4 -4
  65. package/src/lib/interfaces/bases/index.d.ts.map +1 -1
  66. package/src/lib/interfaces/bases/index.js +0 -5
  67. package/src/lib/interfaces/bases/index.js.map +1 -1
  68. package/src/lib/interfaces/index.d.ts +32 -32
  69. package/src/lib/interfaces/index.d.ts.map +1 -1
  70. package/src/lib/interfaces/index.js +0 -33
  71. package/src/lib/interfaces/index.js.map +1 -1
  72. package/src/lib/interfaces/member/index.d.ts +3 -3
  73. package/src/lib/interfaces/member/index.d.ts.map +1 -1
  74. package/src/lib/interfaces/member/index.js +0 -4
  75. package/src/lib/interfaces/member/index.js.map +1 -1
  76. package/src/lib/interfaces/requests/deleteMessagesRequest.d.ts +12 -0
  77. package/src/lib/interfaces/requests/deleteMessagesRequest.d.ts.map +1 -0
  78. package/src/lib/interfaces/requests/deleteMessagesRequest.js +3 -0
  79. package/src/lib/interfaces/requests/deleteMessagesRequest.js.map +1 -0
  80. package/src/lib/interfaces/requests/discoverBlockRequest.d.ts +10 -0
  81. package/src/lib/interfaces/requests/discoverBlockRequest.d.ts.map +1 -0
  82. package/src/lib/interfaces/requests/discoverBlockRequest.js +3 -0
  83. package/src/lib/interfaces/requests/discoverBlockRequest.js.map +1 -0
  84. package/src/lib/interfaces/requests/getBlockLocationRequest.d.ts +9 -0
  85. package/src/lib/interfaces/requests/getBlockLocationRequest.d.ts.map +1 -0
  86. package/src/lib/interfaces/requests/getBlockLocationRequest.js +3 -0
  87. package/src/lib/interfaces/requests/getBlockLocationRequest.js.map +1 -0
  88. package/src/lib/interfaces/requests/getMessageRequest.d.ts +12 -0
  89. package/src/lib/interfaces/requests/getMessageRequest.d.ts.map +1 -0
  90. package/src/lib/interfaces/requests/getMessageRequest.js +3 -0
  91. package/src/lib/interfaces/requests/getMessageRequest.js.map +1 -0
  92. package/src/lib/interfaces/requests/getNodeRequest.d.ts +9 -0
  93. package/src/lib/interfaces/requests/getNodeRequest.d.ts.map +1 -0
  94. package/src/lib/interfaces/{membersResponse.js → requests/getNodeRequest.js} +1 -1
  95. package/src/lib/interfaces/requests/getNodeRequest.js.map +1 -0
  96. package/src/lib/interfaces/requests/index.d.ts +12 -0
  97. package/src/lib/interfaces/requests/index.d.ts.map +1 -0
  98. package/src/lib/interfaces/requests/index.js +3 -0
  99. package/src/lib/interfaces/requests/index.js.map +1 -0
  100. package/src/lib/interfaces/requests/messageRequest.d.ts +10 -0
  101. package/src/lib/interfaces/requests/messageRequest.d.ts.map +1 -0
  102. package/src/lib/interfaces/requests/messageRequest.js +3 -0
  103. package/src/lib/interfaces/requests/messageRequest.js.map +1 -0
  104. package/src/lib/interfaces/requests/queryMessagesRequest.d.ts +16 -0
  105. package/src/lib/interfaces/requests/queryMessagesRequest.d.ts.map +1 -0
  106. package/src/lib/interfaces/requests/queryMessagesRequest.js +3 -0
  107. package/src/lib/interfaces/requests/queryMessagesRequest.js.map +1 -0
  108. package/src/lib/interfaces/requests/registerNodeRequest.d.ts +11 -0
  109. package/src/lib/interfaces/requests/registerNodeRequest.d.ts.map +1 -0
  110. package/src/lib/interfaces/requests/registerNodeRequest.js +3 -0
  111. package/src/lib/interfaces/requests/registerNodeRequest.js.map +1 -0
  112. package/src/lib/interfaces/requests/replicateBlockRequest.d.ts +13 -0
  113. package/src/lib/interfaces/requests/replicateBlockRequest.d.ts.map +1 -0
  114. package/src/lib/interfaces/requests/replicateBlockRequest.js +3 -0
  115. package/src/lib/interfaces/requests/replicateBlockRequest.js.map +1 -0
  116. package/src/lib/interfaces/requests/sendMessageRequest.d.ts +24 -0
  117. package/src/lib/interfaces/requests/sendMessageRequest.d.ts.map +1 -0
  118. package/src/lib/interfaces/requests/sendMessageRequest.js +3 -0
  119. package/src/lib/interfaces/requests/sendMessageRequest.js.map +1 -0
  120. package/src/lib/interfaces/requests/storeSCBLRequestBody.d.ts +9 -0
  121. package/src/lib/interfaces/requests/storeSCBLRequestBody.d.ts.map +1 -0
  122. package/src/lib/interfaces/requests/storeSCBLRequestBody.js +3 -0
  123. package/src/lib/interfaces/requests/storeSCBLRequestBody.js.map +1 -0
  124. package/src/lib/interfaces/requests/syncRequestBody.d.ts +10 -0
  125. package/src/lib/interfaces/requests/syncRequestBody.d.ts.map +1 -0
  126. package/src/lib/interfaces/requests/syncRequestBody.js +3 -0
  127. package/src/lib/interfaces/requests/syncRequestBody.js.map +1 -0
  128. package/src/lib/interfaces/responses/index.d.ts +7 -7
  129. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  130. package/src/lib/interfaces/responses/index.js +0 -8
  131. package/src/lib/interfaces/responses/index.js.map +1 -1
  132. package/src/lib/middlewares/authentication.d.ts +133 -0
  133. package/src/lib/middlewares/authentication.d.ts.map +1 -0
  134. package/src/lib/middlewares/authentication.js +224 -0
  135. package/src/lib/middlewares/authentication.js.map +1 -0
  136. package/src/lib/middlewares/index.d.ts +2 -0
  137. package/src/lib/middlewares/index.d.ts.map +1 -1
  138. package/src/lib/middlewares/index.js +15 -1
  139. package/src/lib/middlewares/index.js.map +1 -1
  140. package/src/lib/middlewares/request-id.d.ts +18 -0
  141. package/src/lib/middlewares/request-id.d.ts.map +1 -0
  142. package/src/lib/middlewares/request-id.js +30 -0
  143. package/src/lib/middlewares/request-id.js.map +1 -0
  144. package/src/lib/openapi/index.d.ts +8 -0
  145. package/src/lib/openapi/index.d.ts.map +1 -0
  146. package/src/lib/openapi/index.js +21 -0
  147. package/src/lib/openapi/index.js.map +1 -0
  148. package/src/lib/openapi/schemas.d.ts +15 -0
  149. package/src/lib/openapi/schemas.d.ts.map +1 -0
  150. package/src/lib/openapi/schemas.js +610 -0
  151. package/src/lib/openapi/schemas.js.map +1 -0
  152. package/src/lib/routers/api.d.ts +62 -0
  153. package/src/lib/routers/api.d.ts.map +1 -1
  154. package/src/lib/routers/api.js +85 -0
  155. package/src/lib/routers/api.js.map +1 -1
  156. package/src/lib/services/diskQuorumService.d.ts +7 -6
  157. package/src/lib/services/diskQuorumService.d.ts.map +1 -1
  158. package/src/lib/services/diskQuorumService.js.map +1 -1
  159. package/src/lib/services/email.d.ts +2 -1
  160. package/src/lib/services/email.d.ts.map +1 -1
  161. package/src/lib/services/email.js.map +1 -1
  162. package/src/lib/services/eventNotificationSystem.d.ts +88 -6
  163. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
  164. package/src/lib/services/eventNotificationSystem.js +132 -17
  165. package/src/lib/services/eventNotificationSystem.js.map +1 -1
  166. package/src/lib/services/fec.js +1 -1
  167. package/src/lib/services/fec.js.map +1 -1
  168. package/src/lib/types/backend-id.d.ts +2 -1
  169. package/src/lib/types/backend-id.d.ts.map +1 -1
  170. package/src/lib/utils/errorResponse.d.ts +227 -2
  171. package/src/lib/utils/errorResponse.d.ts.map +1 -1
  172. package/src/lib/utils/errorResponse.js +292 -3
  173. package/src/lib/utils/errorResponse.js.map +1 -1
  174. package/src/lib/i18n/index.d.ts +0 -7
  175. package/src/lib/i18n/index.d.ts.map +0 -1
  176. package/src/lib/i18n/index.js +0 -29
  177. package/src/lib/i18n/index.js.map +0 -1
  178. package/src/lib/i18n/strings/index.d.ts +0 -6
  179. package/src/lib/i18n/strings/index.d.ts.map +0 -1
  180. package/src/lib/i18n/strings/index.js +0 -17
  181. package/src/lib/i18n/strings/index.js.map +0 -1
  182. package/src/lib/interfaces/membersResponse.d.ts +0 -12
  183. package/src/lib/interfaces/membersResponse.d.ts.map +0 -1
  184. package/src/lib/interfaces/membersResponse.js.map +0 -1
@@ -0,0 +1,378 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodesController = void 0;
4
+ const brightchain_lib_1 = require("@brightchain/brightchain-lib");
5
+ const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
6
+ const errorResponse_1 = require("../../utils/errorResponse");
7
+ const base_1 = require("../base");
8
+ /**
9
+ * Controller for node discovery and network management operations.
10
+ *
11
+ * Provides REST API endpoints for listing connected nodes, getting node details,
12
+ * discovering blocks across the network, and registering nodes for WebSocket authentication.
13
+ *
14
+ * ## Endpoints
15
+ *
16
+ * ### GET /api/nodes
17
+ * List all connected peer nodes with their status and capabilities.
18
+ *
19
+ * **Response:**
20
+ * - `nodes` (array): Array of node information objects
21
+ * - `total` (number): Total number of connected nodes
22
+ *
23
+ * ### GET /api/nodes/:nodeId
24
+ * Get detailed information about a specific node.
25
+ *
26
+ * **Parameters:**
27
+ * - `nodeId` (string, required): Node ID to retrieve
28
+ *
29
+ * **Response:**
30
+ * - `node` (object): Node information including latency and last seen timestamp
31
+ *
32
+ * ### POST /api/nodes/discover
33
+ * Discover nodes that have a specific block.
34
+ *
35
+ * **Request Body:**
36
+ * - `blockId` (string, required): Block ID to discover
37
+ *
38
+ * **Response:**
39
+ * - `blockId` (string): The block ID that was searched for
40
+ * - `found` (boolean): Whether the block was found
41
+ * - `locations` (array): Nodes where the block was found
42
+ * - `queriedPeers` (number): Number of peers queried
43
+ * - `duration` (number): Discovery duration in milliseconds
44
+ *
45
+ * ### POST /api/nodes/register
46
+ * Register a node's public key for WebSocket authentication.
47
+ *
48
+ * **Request Body:**
49
+ * - `nodeId` (string, required): Node ID to register
50
+ * - `publicKey` (string, required): Public key for authentication
51
+ *
52
+ * **Response:**
53
+ * - `success` (boolean): Whether registration succeeded
54
+ * - `nodeId` (string): The registered node ID
55
+ * - `message` (string): Status message
56
+ *
57
+ * @requirements 3.1, 3.2, 3.3, 3.4, 3.5
58
+ */
59
+ class NodesController extends base_1.BaseController {
60
+ constructor(application) {
61
+ super(application);
62
+ this.discoveryProtocol = null;
63
+ this.availabilityService = null;
64
+ /**
65
+ * Store for registered node public keys (nodeId -> publicKey)
66
+ */
67
+ this.registeredNodes = new Map();
68
+ }
69
+ /**
70
+ * Set the DiscoveryProtocol instance.
71
+ * This allows for dependency injection and testing.
72
+ */
73
+ setDiscoveryProtocol(protocol) {
74
+ this.discoveryProtocol = protocol;
75
+ }
76
+ /**
77
+ * Set the AvailabilityService instance.
78
+ * This allows for dependency injection and testing.
79
+ */
80
+ setAvailabilityService(service) {
81
+ this.availabilityService = service;
82
+ }
83
+ /**
84
+ * Get the DiscoveryProtocol instance.
85
+ * Throws if the protocol has not been set.
86
+ */
87
+ getDiscoveryProtocol() {
88
+ if (!this.discoveryProtocol) {
89
+ throw new Error('DiscoveryProtocol not initialized');
90
+ }
91
+ return this.discoveryProtocol;
92
+ }
93
+ /**
94
+ * Get the AvailabilityService instance.
95
+ * Throws if the service has not been set.
96
+ */
97
+ getAvailabilityService() {
98
+ if (!this.availabilityService) {
99
+ throw new Error('AvailabilityService not initialized');
100
+ }
101
+ return this.availabilityService;
102
+ }
103
+ /**
104
+ * Check if a node is registered.
105
+ * @param nodeId - The node ID to check
106
+ * @returns True if the node is registered
107
+ */
108
+ isNodeRegistered(nodeId) {
109
+ return this.registeredNodes.has(nodeId);
110
+ }
111
+ /**
112
+ * Get the public key for a registered node.
113
+ * @param nodeId - The node ID to get the public key for
114
+ * @returns The public key or undefined if not registered
115
+ */
116
+ getNodePublicKey(nodeId) {
117
+ return this.registeredNodes.get(nodeId);
118
+ }
119
+ /**
120
+ * Clear all registered nodes (for testing).
121
+ */
122
+ clearRegisteredNodes() {
123
+ this.registeredNodes.clear();
124
+ }
125
+ initRouteDefinitions() {
126
+ this.routeDefinitions = [
127
+ (0, node_express_suite_1.routeConfig)('get', '/', {
128
+ handlerKey: 'listNodes',
129
+ useAuthentication: false,
130
+ useCryptoAuthentication: false,
131
+ }),
132
+ (0, node_express_suite_1.routeConfig)('get', '/:nodeId', {
133
+ handlerKey: 'getNode',
134
+ useAuthentication: false,
135
+ useCryptoAuthentication: false,
136
+ }),
137
+ (0, node_express_suite_1.routeConfig)('post', '/discover', {
138
+ handlerKey: 'discoverBlock',
139
+ useAuthentication: false,
140
+ useCryptoAuthentication: false,
141
+ }),
142
+ (0, node_express_suite_1.routeConfig)('post', '/register', {
143
+ handlerKey: 'registerNode',
144
+ useAuthentication: false,
145
+ useCryptoAuthentication: false,
146
+ }),
147
+ ];
148
+ this.handlers = {
149
+ listNodes: this.handleListNodes.bind(this),
150
+ getNode: this.handleGetNode.bind(this),
151
+ discoverBlock: this.handleDiscoverBlock.bind(this),
152
+ registerNode: this.handleRegisterNode.bind(this),
153
+ };
154
+ }
155
+ /**
156
+ * Convert ILocationRecord to node info format
157
+ */
158
+ locationToNodeInfo(location) {
159
+ return {
160
+ nodeId: location.nodeId,
161
+ status: brightchain_lib_1.NodeStatus.ONLINE,
162
+ capabilities: ['block_storage'],
163
+ lastSeen: location.lastSeen.toISOString(),
164
+ latencyMs: location.latencyMs,
165
+ };
166
+ }
167
+ /**
168
+ * GET /api/nodes
169
+ * List all connected peer nodes with their status and capabilities.
170
+ *
171
+ * @returns List of connected nodes
172
+ * @requirements 3.1
173
+ */
174
+ async handleListNodes() {
175
+ try {
176
+ // Get nodes from availability service if available
177
+ const availabilityService = this.availabilityService;
178
+ const nodes = [];
179
+ if (availabilityService) {
180
+ // Get the local node ID
181
+ const localNodeId = availabilityService.getLocalNodeId();
182
+ // Add local node
183
+ if (localNodeId) {
184
+ nodes.push({
185
+ nodeId: localNodeId,
186
+ status: brightchain_lib_1.NodeStatus.ONLINE,
187
+ capabilities: ['block_storage', 'message_routing'],
188
+ lastSeen: new Date().toISOString(),
189
+ });
190
+ }
191
+ // Get disconnected peers if in partition mode
192
+ if (availabilityService.isInPartitionMode()) {
193
+ const disconnectedPeers = availabilityService.getDisconnectedPeers();
194
+ for (const peerId of disconnectedPeers) {
195
+ nodes.push({
196
+ nodeId: peerId,
197
+ status: brightchain_lib_1.NodeStatus.UNREACHABLE,
198
+ capabilities: ['block_storage'],
199
+ lastSeen: new Date().toISOString(),
200
+ });
201
+ }
202
+ }
203
+ }
204
+ // Add registered nodes that aren't already in the list
205
+ for (const [nodeId, publicKey] of this.registeredNodes) {
206
+ if (!nodes.some((n) => n.nodeId === nodeId)) {
207
+ nodes.push({
208
+ nodeId,
209
+ publicKey,
210
+ status: brightchain_lib_1.NodeStatus.ONLINE,
211
+ capabilities: ['block_storage'],
212
+ lastSeen: new Date().toISOString(),
213
+ });
214
+ }
215
+ }
216
+ return {
217
+ statusCode: 200,
218
+ response: {
219
+ message: 'OK',
220
+ nodes,
221
+ total: nodes.length,
222
+ },
223
+ };
224
+ }
225
+ catch (_error) {
226
+ return (0, errorResponse_1.handleError)(_error);
227
+ }
228
+ }
229
+ /**
230
+ * GET /api/nodes/:nodeId
231
+ * Get detailed information about a specific node.
232
+ *
233
+ * @param req - Request containing the node ID parameter
234
+ * @returns Node information on success, or 404 if not found
235
+ * @requirements 3.2, 3.5
236
+ */
237
+ async handleGetNode(req) {
238
+ try {
239
+ const { nodeId } = req.params;
240
+ if (!nodeId) {
241
+ return (0, errorResponse_1.validationError)('Missing required parameter: nodeId');
242
+ }
243
+ // Check if node is registered
244
+ const publicKey = this.registeredNodes.get(nodeId);
245
+ // Check availability service for node info
246
+ const availabilityService = this.availabilityService;
247
+ let status = brightchain_lib_1.NodeStatus.ONLINE;
248
+ if (availabilityService) {
249
+ const localNodeId = availabilityService.getLocalNodeId();
250
+ if (nodeId === localNodeId) {
251
+ return {
252
+ statusCode: 200,
253
+ response: {
254
+ message: 'OK',
255
+ node: {
256
+ nodeId,
257
+ publicKey,
258
+ status: brightchain_lib_1.NodeStatus.ONLINE,
259
+ capabilities: ['block_storage', 'message_routing'],
260
+ lastSeen: new Date().toISOString(),
261
+ },
262
+ },
263
+ };
264
+ }
265
+ // Check if node is in disconnected peers
266
+ if (availabilityService.isInPartitionMode()) {
267
+ const disconnectedPeers = availabilityService.getDisconnectedPeers();
268
+ if (disconnectedPeers.includes(nodeId)) {
269
+ status = brightchain_lib_1.NodeStatus.UNREACHABLE;
270
+ }
271
+ }
272
+ }
273
+ // If node is registered, return its info
274
+ if (publicKey !== undefined) {
275
+ return {
276
+ statusCode: 200,
277
+ response: {
278
+ message: 'OK',
279
+ node: {
280
+ nodeId,
281
+ publicKey,
282
+ status,
283
+ capabilities: ['block_storage'],
284
+ lastSeen: new Date().toISOString(),
285
+ },
286
+ },
287
+ };
288
+ }
289
+ // Node not found
290
+ return (0, errorResponse_1.notFoundError)('Node', nodeId);
291
+ }
292
+ catch (_error) {
293
+ return (0, errorResponse_1.handleError)(_error);
294
+ }
295
+ }
296
+ /**
297
+ * POST /api/nodes/discover
298
+ * Discover nodes that have a specific block.
299
+ *
300
+ * @param req - Request containing the block ID to discover
301
+ * @returns Discovery result with locations
302
+ * @requirements 3.3
303
+ */
304
+ async handleDiscoverBlock(req) {
305
+ try {
306
+ const { blockId } = req.body;
307
+ if (!blockId) {
308
+ return (0, errorResponse_1.validationError)('Missing required field: blockId');
309
+ }
310
+ if (typeof blockId !== 'string') {
311
+ return (0, errorResponse_1.validationError)('Invalid field type: blockId must be a string');
312
+ }
313
+ const discoveryProtocol = this.getDiscoveryProtocol();
314
+ const result = await discoveryProtocol.discoverBlock(blockId);
315
+ // Convert locations to response format
316
+ const locations = result.locations.map((loc) => ({
317
+ nodeId: loc.nodeId,
318
+ latencyMs: loc.latencyMs,
319
+ lastSeen: loc.lastSeen.toISOString(),
320
+ }));
321
+ return {
322
+ statusCode: 200,
323
+ response: {
324
+ message: 'OK',
325
+ blockId: result.blockId,
326
+ found: result.found,
327
+ locations,
328
+ queriedPeers: result.queriedPeers,
329
+ duration: result.duration,
330
+ },
331
+ };
332
+ }
333
+ catch (_error) {
334
+ return (0, errorResponse_1.handleError)(_error);
335
+ }
336
+ }
337
+ /**
338
+ * POST /api/nodes/register
339
+ * Register a node's public key for WebSocket authentication.
340
+ *
341
+ * @param req - Request containing node ID and public key
342
+ * @returns Registration result
343
+ * @requirements 3.4, 3.5
344
+ */
345
+ async handleRegisterNode(req) {
346
+ try {
347
+ const { nodeId, publicKey } = req
348
+ .body;
349
+ if (!nodeId) {
350
+ return (0, errorResponse_1.validationError)('Missing required field: nodeId');
351
+ }
352
+ if (!publicKey) {
353
+ return (0, errorResponse_1.validationError)('Missing required field: publicKey');
354
+ }
355
+ if (typeof nodeId !== 'string') {
356
+ return (0, errorResponse_1.validationError)('Invalid field type: nodeId must be a string');
357
+ }
358
+ if (typeof publicKey !== 'string') {
359
+ return (0, errorResponse_1.validationError)('Invalid field type: publicKey must be a string');
360
+ }
361
+ // Store the public key for WebSocket authentication
362
+ this.registeredNodes.set(nodeId, publicKey);
363
+ return {
364
+ statusCode: 201,
365
+ response: {
366
+ message: 'Node registered successfully',
367
+ success: true,
368
+ nodeId,
369
+ },
370
+ };
371
+ }
372
+ catch (_error) {
373
+ return (0, errorResponse_1.handleError)(_error);
374
+ }
375
+ }
376
+ }
377
+ exports.NodesController = NodesController;
378
+ //# sourceMappingURL=nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/nodes.ts"],"names":[],"mappings":"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"}
@@ -282,15 +282,16 @@ export declare class QuorumController<TID extends PlatformID = DefaultBackendIdT
282
282
  private handleSealDocument;
283
283
  /**
284
284
  * POST /api/quorum/documents/:documentId/unseal
285
- * Unseal a document using member shares.
285
+ * Unseal a document using member credentials (mnemonics).
286
286
  *
287
- * Combines the provided member shares to reconstruct the symmetric key,
288
- * then decrypts and returns the original document.
287
+ * Recovers member private keys from provided mnemonics, then uses them
288
+ * to decrypt shares and reconstruct the original document.
289
289
  *
290
- * Note: This endpoint requires members to have their private keys loaded,
291
- * which is not yet fully implemented. Currently returns 501 Not Implemented.
290
+ * Note: This endpoint requires the QuorumService to have the document
291
+ * loaded in memory. For disk-persisted documents, the full reconstruction
292
+ * is not yet implemented.
292
293
  *
293
- * @param req - Request containing document ID and member IDs
294
+ * @param req - Request containing document ID and member credentials
294
295
  * @returns Original document on success
295
296
  *
296
297
  * @example
@@ -298,10 +299,13 @@ export declare class QuorumController<TID extends PlatformID = DefaultBackendIdT
298
299
  * // Request
299
300
  * POST /api/quorum/documents/doc123.../unseal
300
301
  * {
301
- * "memberIds": ["member1...", "member2..."]
302
+ * "memberCredentials": [
303
+ * { "memberId": "member1...", "mnemonic": "word1 word2 word3..." },
304
+ * { "memberId": "member2...", "mnemonic": "word4 word5 word6..." }
305
+ * ]
302
306
  * }
303
307
  *
304
- * // Response (when implemented)
308
+ * // Response
305
309
  * {
306
310
  * "message": "Document unsealed successfully",
307
311
  * "document": { "secret": "data", "value": 42 }
@@ -1 +1 @@
1
- {"version":3,"file":"quorum.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/quorum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quorum.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/quorum.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EAEf,kBAAkB,EAElB,oBAAoB,EAErB,MAAM,8BAA8B,CAAC;AAStC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EAEnB,aAAa,EACd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAU1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC;;;GAGG;AACH,oBAAY,eAAe;IACzB,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IACzC,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IACnD,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;CAClC;AAYD,UAAU,iBAAkB,SAAQ,mBAAmB;IACrD,MAAM,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,UAAU,mBAAoB,SAAQ,mBAAmB;IACvD,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAQD,UAAU,oBAAqB,SAAQ,mBAAmB;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAUD,UAAU,oBAAqB,SAAQ,mBAAmB;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAcD,UAAU,sBAAuB,SAAQ,mBAAmB;IAC1D,QAAQ,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAQD,UAAU,mBAAoB,SAAQ,mBAAmB;IACvD,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAWD,UAAU,iBAAkB,SAAQ,mBAAmB,EAAE,eAAe;IACtE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,sBAAsB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAkBD,KAAK,iBAAiB,GAClB,iBAAiB,GACjB,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,GACpB,sBAAsB,GACtB,mBAAmB,GACnB,iBAAiB,GACjB,gBAAgB,CAAC;AAErB,UAAU,cAAe,SAAQ,aAAa;IAC5C,SAAS,EAAE,iBAAiB,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;IACnE,WAAW,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACvE,YAAY,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IACzE,YAAY,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IACzE,cAAc,EAAE,iBAAiB,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,CAAC;IAC7E,WAAW,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACvE,SAAS,EAAE,iBAAiB,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;CACpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,qBAAa,gBAAgB,CAC3B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CACtB,GAAG,EACH,iBAAiB,EACjB,cAAc,EACd,gBAAgB,CACjB;IACC,OAAO,CAAC,oBAAoB,CAA4B;gBAE5C,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAKrD,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAsDtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,OAAO,CAAC,eAAe,CAoDrB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,OAAO,CAAC,iBAAiB,CAoBvB;IAEF;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,kBAAkB,CA2BxB;IAIF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,OAAO,CAAC,kBAAkB,CAiFxB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,OAAO,CAAC,oBAAoB,CA2I1B;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,OAAO,CAAC,iBAAiB,CAgCvB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,eAAe,CAyCrB;CACH"}
@@ -375,15 +375,16 @@ class QuorumController extends base_1.BaseController {
375
375
  };
376
376
  /**
377
377
  * POST /api/quorum/documents/:documentId/unseal
378
- * Unseal a document using member shares.
378
+ * Unseal a document using member credentials (mnemonics).
379
379
  *
380
- * Combines the provided member shares to reconstruct the symmetric key,
381
- * then decrypts and returns the original document.
380
+ * Recovers member private keys from provided mnemonics, then uses them
381
+ * to decrypt shares and reconstruct the original document.
382
382
  *
383
- * Note: This endpoint requires members to have their private keys loaded,
384
- * which is not yet fully implemented. Currently returns 501 Not Implemented.
383
+ * Note: This endpoint requires the QuorumService to have the document
384
+ * loaded in memory. For disk-persisted documents, the full reconstruction
385
+ * is not yet implemented.
385
386
  *
386
- * @param req - Request containing document ID and member IDs
387
+ * @param req - Request containing document ID and member credentials
387
388
  * @returns Original document on success
388
389
  *
389
390
  * @example
@@ -391,10 +392,13 @@ class QuorumController extends base_1.BaseController {
391
392
  * // Request
392
393
  * POST /api/quorum/documents/doc123.../unseal
393
394
  * {
394
- * "memberIds": ["member1...", "member2..."]
395
+ * "memberCredentials": [
396
+ * { "memberId": "member1...", "mnemonic": "word1 word2 word3..." },
397
+ * { "memberId": "member2...", "mnemonic": "word4 word5 word6..." }
398
+ * ]
395
399
  * }
396
400
  *
397
- * // Response (when implemented)
401
+ * // Response
398
402
  * {
399
403
  * "message": "Document unsealed successfully",
400
404
  * "document": { "secret": "data", "value": 42 }
@@ -404,19 +408,81 @@ class QuorumController extends base_1.BaseController {
404
408
  this.handleUnsealDocument = async (req) => {
405
409
  try {
406
410
  const { documentId } = req.params;
407
- const { memberIds } = req.body;
411
+ const { memberCredentials } = req
412
+ .body;
408
413
  if (!documentId) {
409
414
  return (0, errorResponse_1.validationError)('Missing required parameter: documentId');
410
415
  }
411
- if (!memberIds || !Array.isArray(memberIds) || memberIds.length === 0) {
412
- return (0, errorResponse_1.validationError)('Missing required field: memberIds (array of member IDs)');
416
+ if (!memberCredentials ||
417
+ !Array.isArray(memberCredentials) ||
418
+ memberCredentials.length === 0) {
419
+ return (0, errorResponse_1.validationError)('Missing required field: memberCredentials (array of {memberId, mnemonic})');
413
420
  }
414
- // Note: In a real implementation, the members would need to provide their
415
- // private keys or pre-decrypted shares. For now, we return a 501 status
416
- // indicating this needs proper implementation with member authentication.
417
- void this.quorumServiceWrapper.getService();
418
- return (0, errorResponse_1.createApiErrorResult)(501, errorResponse_1.ErrorCode.NOT_IMPLEMENTED, 'Unseal operation requires members with loaded private keys. ' +
419
- 'This endpoint needs proper member authentication implementation.');
421
+ // Validate each credential has required fields
422
+ for (const cred of memberCredentials) {
423
+ if (!cred.memberId || !cred.mnemonic) {
424
+ return (0, errorResponse_1.validationError)('Each memberCredential must have memberId and mnemonic');
425
+ }
426
+ }
427
+ const quorumService = this.quorumServiceWrapper.getService();
428
+ // Check if document exists and if we have enough shares
429
+ const docInfo = await quorumService.getDocument(documentId);
430
+ if (!docInfo) {
431
+ return (0, errorResponse_1.notFoundError)('Document', documentId);
432
+ }
433
+ // Check if provided members can unlock the document
434
+ const memberIds = memberCredentials.map((c) => c.memberId);
435
+ const canUnlockResult = await quorumService.canUnlock(documentId, memberIds);
436
+ if (!canUnlockResult.canUnlock) {
437
+ return (0, errorResponse_1.createApiErrorResult)(400, errorResponse_1.ErrorCode.INSUFFICIENT_SHARES, `Insufficient shares: provided ${canUnlockResult.sharesProvided}, required ${canUnlockResult.sharesRequired}`);
438
+ }
439
+ // Recover members with private keys from mnemonics
440
+ const eciesService = brightchain_lib_1.ServiceProvider.getInstance().eciesService;
441
+ const membersWithPrivateKey = [];
442
+ for (const cred of memberCredentials) {
443
+ // Get the stored member info to get their metadata
444
+ const storedMember = await quorumService.getMember(cred.memberId);
445
+ if (!storedMember) {
446
+ return (0, errorResponse_1.notFoundError)('Member', cred.memberId);
447
+ }
448
+ // Recover wallet from mnemonic - need to wrap string in SecureString
449
+ const secureString = new ecies_lib_1.SecureString(cred.mnemonic);
450
+ const { wallet } = eciesService.walletAndSeedFromMnemonic(secureString);
451
+ const recoveredPublicKey = new Uint8Array(wallet.getPublicKey());
452
+ // Verify the recovered public key matches the stored one
453
+ if ((0, ecies_lib_1.uint8ArrayToHex)(recoveredPublicKey) !==
454
+ (0, ecies_lib_1.uint8ArrayToHex)(storedMember.publicKey)) {
455
+ return (0, errorResponse_1.createApiErrorResult)(400, errorResponse_1.ErrorCode.SHARE_DECRYPTION_FAILED, `Mnemonic does not match member ${cred.memberId}`);
456
+ }
457
+ // Create a member with the recovered private key
458
+ const email = storedMember.metadata.email
459
+ ? new ecies_lib_1.EmailString(storedMember.metadata.email)
460
+ : new ecies_lib_1.EmailString(`${storedMember.metadata.name?.toLowerCase().replace(/\s+/g, '.') ?? 'unknown'}@placeholder.local`);
461
+ // Use Member.newMember and then replace the wallet
462
+ // This is a workaround since Member constructor may not accept wallet directly
463
+ const { member: tempMember } = ecies_lib_1.Member.newMember(eciesService, ecies_lib_1.MemberType.User, storedMember.metadata.name ?? 'Unknown', email);
464
+ // Create a member-like object with the recovered wallet's private key
465
+ // The unsealDocument method needs members with privateKey access
466
+ const recoveredMember = Object.create(tempMember);
467
+ Object.defineProperty(recoveredMember, 'privateKey', {
468
+ get: () => new Uint8Array(wallet.getPrivateKey()),
469
+ configurable: true,
470
+ });
471
+ Object.defineProperty(recoveredMember, 'publicKey', {
472
+ get: () => recoveredPublicKey,
473
+ configurable: true,
474
+ });
475
+ membersWithPrivateKey.push(recoveredMember);
476
+ }
477
+ // Unseal the document
478
+ const unsealedDocument = await quorumService.unsealDocument(documentId, membersWithPrivateKey);
479
+ return {
480
+ statusCode: 200,
481
+ response: {
482
+ message: 'Document unsealed successfully',
483
+ document: unsealedDocument,
484
+ },
485
+ };
420
486
  }
421
487
  catch (_error) {
422
488
  if (_error instanceof brightchain_lib_1.QuorumError) {
@@ -1 +1 @@
1
- {"version":3,"file":"quorum.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/quorum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quorum.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/quorum.ts"],"names":[],"mappings":"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"}