@brightchain/brightchain-api-lib 0.24.1 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/package.json +4 -3
  2. package/src/lib/application.d.ts +3 -14
  3. package/src/lib/application.d.ts.map +1 -1
  4. package/src/lib/application.js +121 -44
  5. package/src/lib/application.js.map +1 -1
  6. package/src/lib/auth/aclDocumentStore.d.ts +90 -0
  7. package/src/lib/auth/aclDocumentStore.d.ts.map +1 -0
  8. package/src/lib/auth/aclDocumentStore.js +155 -0
  9. package/src/lib/auth/aclDocumentStore.js.map +1 -0
  10. package/src/lib/auth/index.d.ts +4 -0
  11. package/src/lib/auth/index.d.ts.map +1 -1
  12. package/src/lib/auth/index.js +4 -0
  13. package/src/lib/auth/index.js.map +1 -1
  14. package/src/lib/auth/writeAclApiRouter.d.ts +32 -0
  15. package/src/lib/auth/writeAclApiRouter.d.ts.map +1 -0
  16. package/src/lib/auth/writeAclApiRouter.js +348 -0
  17. package/src/lib/auth/writeAclApiRouter.js.map +1 -0
  18. package/src/lib/auth/writeAclAuditLogger.d.ts +94 -0
  19. package/src/lib/auth/writeAclAuditLogger.d.ts.map +1 -0
  20. package/src/lib/auth/writeAclAuditLogger.js +143 -0
  21. package/src/lib/auth/writeAclAuditLogger.js.map +1 -0
  22. package/src/lib/auth/writeProofMiddleware.d.ts +39 -0
  23. package/src/lib/auth/writeProofMiddleware.d.ts.map +1 -0
  24. package/src/lib/auth/writeProofMiddleware.js +56 -0
  25. package/src/lib/auth/writeProofMiddleware.js.map +1 -0
  26. package/src/lib/availability/aclDocumentSyncHandler.d.ts +39 -0
  27. package/src/lib/availability/aclDocumentSyncHandler.d.ts.map +1 -0
  28. package/src/lib/availability/aclDocumentSyncHandler.js +81 -0
  29. package/src/lib/availability/aclDocumentSyncHandler.js.map +1 -0
  30. package/src/lib/availability/gossipService.d.ts +4 -1
  31. package/src/lib/availability/gossipService.d.ts.map +1 -1
  32. package/src/lib/availability/gossipService.js +15 -1
  33. package/src/lib/availability/gossipService.js.map +1 -1
  34. package/src/lib/availability/headUpdateSyncHandler.d.ts +32 -0
  35. package/src/lib/availability/headUpdateSyncHandler.d.ts.map +1 -0
  36. package/src/lib/availability/headUpdateSyncHandler.js +78 -0
  37. package/src/lib/availability/headUpdateSyncHandler.js.map +1 -0
  38. package/src/lib/availability/index.d.ts +2 -0
  39. package/src/lib/availability/index.d.ts.map +1 -1
  40. package/src/lib/availability/index.js +2 -0
  41. package/src/lib/availability/index.js.map +1 -1
  42. package/src/lib/constants.d.ts.map +1 -1
  43. package/src/lib/constants.js +2 -0
  44. package/src/lib/constants.js.map +1 -1
  45. package/src/lib/controllers/api/brighthub/connectionController.d.ts +6 -0
  46. package/src/lib/controllers/api/brighthub/connectionController.d.ts.map +1 -1
  47. package/src/lib/controllers/api/brighthub/connectionController.js +158 -11
  48. package/src/lib/controllers/api/brighthub/connectionController.js.map +1 -1
  49. package/src/lib/controllers/api/brighthub/messagingController.d.ts +6 -0
  50. package/src/lib/controllers/api/brighthub/messagingController.d.ts.map +1 -1
  51. package/src/lib/controllers/api/brighthub/messagingController.js +190 -58
  52. package/src/lib/controllers/api/brighthub/messagingController.js.map +1 -1
  53. package/src/lib/controllers/api/brighthub/postController.d.ts +12 -3
  54. package/src/lib/controllers/api/brighthub/postController.d.ts.map +1 -1
  55. package/src/lib/controllers/api/brighthub/postController.js +60 -0
  56. package/src/lib/controllers/api/brighthub/postController.js.map +1 -1
  57. package/src/lib/controllers/api/brighthub/timelineController.d.ts +19 -0
  58. package/src/lib/controllers/api/brighthub/timelineController.d.ts.map +1 -1
  59. package/src/lib/controllers/api/brighthub/timelineController.js +133 -0
  60. package/src/lib/controllers/api/brighthub/timelineController.js.map +1 -1
  61. package/src/lib/controllers/api/emails.d.ts +4 -1
  62. package/src/lib/controllers/api/emails.d.ts.map +1 -1
  63. package/src/lib/controllers/api/emails.js +28 -1
  64. package/src/lib/controllers/api/emails.js.map +1 -1
  65. package/src/lib/controllers/api/user.d.ts.map +1 -1
  66. package/src/lib/controllers/api/user.js +10 -0
  67. package/src/lib/controllers/api/user.js.map +1 -1
  68. package/src/lib/databaseInit.d.ts +7 -11
  69. package/src/lib/databaseInit.d.ts.map +1 -1
  70. package/src/lib/databaseInit.js +41 -97
  71. package/src/lib/databaseInit.js.map +1 -1
  72. package/src/lib/datastore/block-document-store-factory.d.ts +3 -0
  73. package/src/lib/datastore/block-document-store-factory.d.ts.map +1 -1
  74. package/src/lib/datastore/block-document-store-factory.js +15 -18
  75. package/src/lib/datastore/block-document-store-factory.js.map +1 -1
  76. package/src/lib/datastore/block-document-store.d.ts +2 -191
  77. package/src/lib/datastore/block-document-store.d.ts.map +1 -1
  78. package/src/lib/datastore/block-document-store.js +4 -628
  79. package/src/lib/datastore/block-document-store.js.map +1 -1
  80. package/src/lib/datastore/document-store.d.ts +1 -62
  81. package/src/lib/datastore/document-store.d.ts.map +1 -1
  82. package/src/lib/datastore/memory-document-store.d.ts +1 -8
  83. package/src/lib/datastore/memory-document-store.d.ts.map +1 -1
  84. package/src/lib/datastore/memory-document-store.js +3 -214
  85. package/src/lib/datastore/memory-document-store.js.map +1 -1
  86. package/src/lib/environment.d.ts +3 -20
  87. package/src/lib/environment.d.ts.map +1 -1
  88. package/src/lib/environment.js +2 -45
  89. package/src/lib/environment.js.map +1 -1
  90. package/src/lib/factories/blockStoreFactory.d.ts.map +1 -1
  91. package/src/lib/factories/blockStoreFactory.js +4 -1
  92. package/src/lib/factories/blockStoreFactory.js.map +1 -1
  93. package/src/lib/interfaces/environment.d.ts +23 -2
  94. package/src/lib/interfaces/environment.d.ts.map +1 -1
  95. package/src/lib/interfaces/responses/brighthub/api-post-response.d.ts +8 -1
  96. package/src/lib/interfaces/responses/brighthub/api-post-response.d.ts.map +1 -1
  97. package/src/lib/middleware/index.d.ts +1 -1
  98. package/src/lib/middleware/index.d.ts.map +1 -1
  99. package/src/lib/middleware/index.js +3 -2
  100. package/src/lib/middleware/index.js.map +1 -1
  101. package/src/lib/middleware/validateBody.d.ts +1 -12
  102. package/src/lib/middleware/validateBody.d.ts.map +1 -1
  103. package/src/lib/middleware/validateBody.js +4 -32
  104. package/src/lib/middleware/validateBody.js.map +1 -1
  105. package/src/lib/middlewares.d.ts.map +1 -1
  106. package/src/lib/middlewares.js +7 -1
  107. package/src/lib/middlewares.js.map +1 -1
  108. package/src/lib/plugins/brightchain-database-plugin.d.ts +27 -79
  109. package/src/lib/plugins/brightchain-database-plugin.d.ts.map +1 -1
  110. package/src/lib/plugins/brightchain-database-plugin.js +27 -97
  111. package/src/lib/plugins/brightchain-database-plugin.js.map +1 -1
  112. package/src/lib/routers/api.d.ts +18 -1
  113. package/src/lib/routers/api.d.ts.map +1 -1
  114. package/src/lib/routers/api.js +24 -1
  115. package/src/lib/routers/api.js.map +1 -1
  116. package/src/lib/routers/app.d.ts.map +1 -1
  117. package/src/lib/routers/app.js +5 -2
  118. package/src/lib/routers/app.js.map +1 -1
  119. package/src/lib/services/auth.d.ts.map +1 -1
  120. package/src/lib/services/auth.js +37 -3
  121. package/src/lib/services/auth.js.map +1 -1
  122. package/src/lib/services/blockStore.d.ts +8 -1
  123. package/src/lib/services/blockStore.d.ts.map +1 -1
  124. package/src/lib/services/blockStore.js +19 -7
  125. package/src/lib/services/blockStore.js.map +1 -1
  126. package/src/lib/services/brightChainBackupCodeService.d.ts +42 -39
  127. package/src/lib/services/brightChainBackupCodeService.d.ts.map +1 -1
  128. package/src/lib/services/brightChainBackupCodeService.js +86 -61
  129. package/src/lib/services/brightChainBackupCodeService.js.map +1 -1
  130. package/src/lib/services/brighthub/collectionAdapter.d.ts +81 -0
  131. package/src/lib/services/brighthub/collectionAdapter.d.ts.map +1 -0
  132. package/src/lib/services/brighthub/collectionAdapter.js +127 -0
  133. package/src/lib/services/brighthub/collectionAdapter.js.map +1 -0
  134. package/src/lib/services/brighthub/connectionService.d.ts.map +1 -1
  135. package/src/lib/services/brighthub/connectionService.js +3 -0
  136. package/src/lib/services/brighthub/connectionService.js.map +1 -1
  137. package/src/lib/services/brighthub/messagingService.d.ts +4 -0
  138. package/src/lib/services/brighthub/messagingService.d.ts.map +1 -1
  139. package/src/lib/services/brighthub/messagingService.js +25 -4
  140. package/src/lib/services/brighthub/messagingService.js.map +1 -1
  141. package/src/lib/services/brighthub/notificationService.d.ts.map +1 -1
  142. package/src/lib/services/brighthub/notificationService.js +35 -20
  143. package/src/lib/services/brighthub/notificationService.js.map +1 -1
  144. package/src/lib/services/brighthub/postService.d.ts +7 -1
  145. package/src/lib/services/brighthub/postService.d.ts.map +1 -1
  146. package/src/lib/services/brighthub/postService.js +22 -1
  147. package/src/lib/services/brighthub/postService.js.map +1 -1
  148. package/src/lib/services/brighthub/userProfileService.d.ts +19 -1
  149. package/src/lib/services/brighthub/userProfileService.d.ts.map +1 -1
  150. package/src/lib/services/brighthub/userProfileService.js +74 -0
  151. package/src/lib/services/brighthub/userProfileService.js.map +1 -1
  152. package/src/lib/services/emailGateway/antiSpamFilter.d.ts +229 -0
  153. package/src/lib/services/emailGateway/antiSpamFilter.d.ts.map +1 -0
  154. package/src/lib/services/emailGateway/antiSpamFilter.js +325 -0
  155. package/src/lib/services/emailGateway/antiSpamFilter.js.map +1 -0
  156. package/src/lib/services/emailGateway/bounceProcessor.d.ts +171 -0
  157. package/src/lib/services/emailGateway/bounceProcessor.d.ts.map +1 -0
  158. package/src/lib/services/emailGateway/bounceProcessor.js +378 -0
  159. package/src/lib/services/emailGateway/bounceProcessor.js.map +1 -0
  160. package/src/lib/services/emailGateway/emailAuthVerifier.d.ts +99 -0
  161. package/src/lib/services/emailGateway/emailAuthVerifier.d.ts.map +1 -0
  162. package/src/lib/services/emailGateway/emailAuthVerifier.js +202 -0
  163. package/src/lib/services/emailGateway/emailAuthVerifier.js.map +1 -0
  164. package/src/lib/services/emailGateway/emailGatewayConfig.d.ts +73 -0
  165. package/src/lib/services/emailGateway/emailGatewayConfig.d.ts.map +1 -0
  166. package/src/lib/services/emailGateway/emailGatewayConfig.js +107 -0
  167. package/src/lib/services/emailGateway/emailGatewayConfig.js.map +1 -0
  168. package/src/lib/services/emailGateway/emailGatewayService.d.ts +152 -0
  169. package/src/lib/services/emailGateway/emailGatewayService.d.ts.map +1 -0
  170. package/src/lib/services/emailGateway/emailGatewayService.js +201 -0
  171. package/src/lib/services/emailGateway/emailGatewayService.js.map +1 -0
  172. package/src/lib/services/emailGateway/gatewayObservability.d.ts +123 -0
  173. package/src/lib/services/emailGateway/gatewayObservability.d.ts.map +1 -0
  174. package/src/lib/services/emailGateway/gatewayObservability.js +186 -0
  175. package/src/lib/services/emailGateway/gatewayObservability.js.map +1 -0
  176. package/src/lib/services/emailGateway/inboundProcessor.d.ts +113 -0
  177. package/src/lib/services/emailGateway/inboundProcessor.d.ts.map +1 -0
  178. package/src/lib/services/emailGateway/inboundProcessor.js +298 -0
  179. package/src/lib/services/emailGateway/inboundProcessor.js.map +1 -0
  180. package/src/lib/services/emailGateway/index.d.ts +23 -0
  181. package/src/lib/services/emailGateway/index.d.ts.map +1 -0
  182. package/src/lib/services/emailGateway/index.js +26 -0
  183. package/src/lib/services/emailGateway/index.js.map +1 -0
  184. package/src/lib/services/emailGateway/outboundDeliveryWorker.d.ts +111 -0
  185. package/src/lib/services/emailGateway/outboundDeliveryWorker.d.ts.map +1 -0
  186. package/src/lib/services/emailGateway/outboundDeliveryWorker.js +97 -0
  187. package/src/lib/services/emailGateway/outboundDeliveryWorker.js.map +1 -0
  188. package/src/lib/services/emailGateway/outboundQueue.d.ts +135 -0
  189. package/src/lib/services/emailGateway/outboundQueue.d.ts.map +1 -0
  190. package/src/lib/services/emailGateway/outboundQueue.js +227 -0
  191. package/src/lib/services/emailGateway/outboundQueue.js.map +1 -0
  192. package/src/lib/services/emailGateway/outboundQueueStore.d.ts +110 -0
  193. package/src/lib/services/emailGateway/outboundQueueStore.d.ts.map +1 -0
  194. package/src/lib/services/emailGateway/outboundQueueStore.js +131 -0
  195. package/src/lib/services/emailGateway/outboundQueueStore.js.map +1 -0
  196. package/src/lib/services/emailGateway/recipientLookupService.d.ts +135 -0
  197. package/src/lib/services/emailGateway/recipientLookupService.d.ts.map +1 -0
  198. package/src/lib/services/emailGateway/recipientLookupService.js +294 -0
  199. package/src/lib/services/emailGateway/recipientLookupService.js.map +1 -0
  200. package/src/lib/services/emailGateway/retryBackoff.d.ts +79 -0
  201. package/src/lib/services/emailGateway/retryBackoff.d.ts.map +1 -0
  202. package/src/lib/services/emailGateway/retryBackoff.js +77 -0
  203. package/src/lib/services/emailGateway/retryBackoff.js.map +1 -0
  204. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
  205. package/src/lib/services/eventNotificationSystem.js.map +1 -1
  206. package/src/lib/services/index.d.ts +2 -1
  207. package/src/lib/services/index.d.ts.map +1 -1
  208. package/src/lib/services/index.js +2 -1
  209. package/src/lib/services/index.js.map +1 -1
  210. package/src/lib/services/quorumDatabaseAdapter.d.ts +7 -1
  211. package/src/lib/services/quorumDatabaseAdapter.d.ts.map +1 -1
  212. package/src/lib/services/quorumDatabaseAdapter.js +83 -0
  213. package/src/lib/services/quorumDatabaseAdapter.js.map +1 -1
  214. package/src/lib/services/sessionAdapter.d.ts +2 -61
  215. package/src/lib/services/sessionAdapter.d.ts.map +1 -1
  216. package/src/lib/services/sessionAdapter.js +2 -102
  217. package/src/lib/services/sessionAdapter.js.map +1 -1
  218. package/src/lib/shared-types.d.ts +7 -15
  219. package/src/lib/shared-types.d.ts.map +1 -1
  220. package/src/lib/stores/availabilityAwareBlockStore.d.ts +4 -3
  221. package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -1
  222. package/src/lib/stores/availabilityAwareBlockStore.js +5 -2
  223. package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -1
  224. package/src/lib/stores/cloudBlockStoreBase.d.ts +2 -1
  225. package/src/lib/stores/cloudBlockStoreBase.d.ts.map +1 -1
  226. package/src/lib/stores/cloudBlockStoreBase.js +34 -13
  227. package/src/lib/stores/cloudBlockStoreBase.js.map +1 -1
  228. package/src/lib/stores/diskBlockAsyncStore.d.ts +21 -1
  229. package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
  230. package/src/lib/stores/diskBlockAsyncStore.js +48 -17
  231. package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
  232. package/src/lib/stores/diskBlockStore.d.ts +10 -2
  233. package/src/lib/stores/diskBlockStore.d.ts.map +1 -1
  234. package/src/lib/stores/diskBlockStore.js +43 -19
  235. package/src/lib/stores/diskBlockStore.js.map +1 -1
  236. package/src/lib/types/backend-id.d.ts +1 -2
  237. package/src/lib/types/backend-id.d.ts.map +1 -1
  238. package/src/lib/utils/emailValidation.d.ts.map +1 -1
  239. package/src/lib/utils/emailValidation.js +2 -1
  240. package/src/lib/utils/emailValidation.js.map +1 -1
  241. package/src/lib/validation/userValidation.d.ts +2 -43
  242. package/src/lib/validation/userValidation.d.ts.map +1 -1
  243. package/src/lib/validation/userValidation.js +6 -144
  244. package/src/lib/validation/userValidation.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightchain/brightchain-api-lib",
3
- "version": "0.24.1",
3
+ "version": "0.26.0",
4
4
  "main": "./src/index.js",
5
5
  "types": "./src/index.d.ts",
6
6
  "files": [
@@ -9,8 +9,9 @@
9
9
  ],
10
10
  "dependencies": {
11
11
  "@aws-sdk/client-ses": "^3.859.0",
12
- "@brightchain/brightchain-lib": "^0.24.1",
13
- "@brightchain/db": "^0.24.1",
12
+ "@brightchain/brightchain-lib": "^0.26.0",
13
+ "@brightchain/db": "^0.26.0",
14
+ "@brightchain/node-express-suite": "^0.26.0",
14
15
  "@digitaldefiance/branded-enum": "^0.0.7",
15
16
  "@digitaldefiance/ecies-lib": "^4.20.2",
16
17
  "@digitaldefiance/enclave-bridge-client": "^1.1.0",
@@ -1,7 +1,7 @@
1
1
  import { IAvailabilityService, IDiscoveryProtocol, IReconciliationService } from '@brightchain/brightchain-lib';
2
+ import { BrightDbApplication } from '@brightchain/node-express-suite';
2
3
  import { PlatformID } from '@digitaldefiance/node-ecies-lib';
3
- import { IConstants, Application as UpstreamApplication } from '@digitaldefiance/node-express-suite';
4
- import { Server } from 'http';
4
+ import { IConstants } from '@digitaldefiance/node-express-suite';
5
5
  import { GossipService } from './availability/gossipService';
6
6
  import { PoolDiscoveryService } from './availability/poolDiscoveryService';
7
7
  import { DocumentCollection, DocumentRecord, DocumentStore } from './datastore/document-store';
@@ -25,7 +25,7 @@ import { WebSocketMessageServer } from './services/webSocketMessageServer';
25
25
  * Database integration is handled by the BrightChainDatabasePlugin, registered
26
26
  * via configureBrightChainApp() during construction.
27
27
  */
28
- export declare class App<TID extends PlatformID> extends UpstreamApplication<TID, Environment<TID>, IConstants, AppRouter<TID>> {
28
+ export declare class App<TID extends PlatformID> extends BrightDbApplication<TID, Environment<TID>, IConstants, AppRouter<TID>> {
29
29
  private controllers;
30
30
  private readonly keyStorage;
31
31
  private readonly _brightchainDocumentStore;
@@ -41,12 +41,6 @@ export declare class App<TID extends PlatformID> extends UpstreamApplication<TID
41
41
  private identityExpirationScheduler;
42
42
  private quorumGossipHandler;
43
43
  private contentAwareBlocksService;
44
- /**
45
- * Captured HTTP server reference for WebSocket attachment.
46
- * The upstream Application stores the server as a private field,
47
- * so we intercept expressApp.listen() to capture it here.
48
- */
49
- private _httpServer;
50
44
  constructor(environment: Environment<TID>);
51
45
  /**
52
46
  * Get the BrightChain document store.
@@ -66,11 +60,6 @@ export declare class App<TID extends PlatformID> extends UpstreamApplication<TID
66
60
  getModel<U extends DocumentRecord>(modelName: string): DocumentCollection<U>;
67
61
  start(dbUri?: string): Promise<void>;
68
62
  stop(): Promise<void>;
69
- /**
70
- * Get the underlying HTTP server instance.
71
- * Useful for tests that need to determine the bound port after start().
72
- */
73
- get httpServer(): Server | null;
74
63
  getController<T = unknown>(name: string): T;
75
64
  setController(name: string, controller: unknown): void;
76
65
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.App = void 0;
4
4
  const brightchain_lib_1 = require("@brightchain/brightchain-lib");
5
5
  const db_1 = require("@brightchain/db");
6
- const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
6
+ const node_express_suite_1 = require("@brightchain/node-express-suite");
7
+ const node_express_suite_2 = require("@digitaldefiance/node-express-suite");
7
8
  const quorumGossipHandler_1 = require("./availability/quorumGossipHandler");
8
9
  const constants_1 = require("./constants");
9
10
  const sessions_1 = require("./controllers/api/sessions");
@@ -14,9 +15,12 @@ const api_1 = require("./routers/api");
14
15
  const app_1 = require("./routers/app");
15
16
  const testEmailRouter_1 = require("./routers/testEmailRouter");
16
17
  const services_1 = require("./services");
18
+ const collectionAdapter_1 = require("./services/brighthub/collectionAdapter");
19
+ const threadService_1 = require("./services/brighthub/threadService");
17
20
  const clientWebSocketServer_1 = require("./services/clientWebSocketServer");
18
21
  const eventNotificationSystem_1 = require("./services/eventNotificationSystem");
19
22
  const fakeEmailService_1 = require("./services/fakeEmailService");
23
+ const messagePassingService_1 = require("./services/messagePassingService");
20
24
  const webSocketMessageServer_1 = require("./services/webSocketMessageServer");
21
25
  /**
22
26
  * Application class for BrightChain.
@@ -31,7 +35,7 @@ const webSocketMessageServer_1 = require("./services/webSocketMessageServer");
31
35
  * Database integration is handled by the BrightChainDatabasePlugin, registered
32
36
  * via configureBrightChainApp() during construction.
33
37
  */
34
- class App extends node_express_suite_1.Application {
38
+ class App extends node_express_suite_1.BrightDbApplication {
35
39
  controllers = new Map();
36
40
  keyStorage;
37
41
  _brightchainDocumentStore;
@@ -48,12 +52,6 @@ class App extends node_express_suite_1.Application {
48
52
  identityExpirationScheduler = null;
49
53
  quorumGossipHandler = null;
50
54
  contentAwareBlocksService = null;
51
- /**
52
- * Captured HTTP server reference for WebSocket attachment.
53
- * The upstream Application stores the server as a private field,
54
- * so we intercept expressApp.listen() to capture it here.
55
- */
56
- _httpServer = null;
57
55
  constructor(environment) {
58
56
  super(environment,
59
57
  // apiRouterFactory — creates BrightChain's ApiRouter and captures the reference
@@ -78,6 +76,7 @@ class App extends node_express_suite_1.Application {
78
76
  this.keyStorage = services_1.SecureKeyStorage.getInstance();
79
77
  this._brightchainDocumentStore = (0, block_document_store_factory_1.createBlockDocumentStore)({
80
78
  useMemory: true,
79
+ blockSize: brightchain_lib_1.BlockSize.Medium,
81
80
  });
82
81
  }
83
82
  /**
@@ -165,7 +164,7 @@ class App extends node_express_suite_1.Application {
165
164
  : new services_1.EmailService(this);
166
165
  if (this.environment.disableEmailSend) {
167
166
  this.expressApp.use((0, testEmailRouter_1.createTestEmailRouter)());
168
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] FakeEmailService and TestEmailRouter mounted (DISABLE_EMAIL_SEND=true)');
167
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ ready ] FakeEmailService and TestEmailRouter mounted (DISABLE_EMAIL_SEND=true)');
169
168
  }
170
169
  const authProvider = this._plugin.authenticationProvider;
171
170
  const authService = new services_1.AuthService(this, memberStore, energyStore, emailService, this.environment.jwtSecret, authProvider);
@@ -180,20 +179,26 @@ class App extends node_express_suite_1.Application {
180
179
  // BrightChainBackupCodeService — singleton backed by MemberStore + crypto services
181
180
  const serviceProvider = brightchain_lib_1.ServiceProvider.getInstance();
182
181
  const eciesService = serviceProvider.eciesService;
183
- const keyWrappingService = new node_express_suite_1.KeyWrappingService();
182
+ const keyWrappingService = new node_express_suite_2.KeyWrappingService();
184
183
  const backupCodeService = new services_1.BrightChainBackupCodeService(memberStore,
185
184
  // Cast: ecies-lib ECIESService → node-ecies-lib ECIESService (structurally compatible at runtime)
186
185
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
187
186
  eciesService, keyWrappingService, constants_1.Constants.BACKUP_CODES);
188
187
  this.services.register('backupCodeService', () => backupCodeService);
189
188
  // Wire system user into BrightChainBackupCodeService after seeding.
190
- // The plugin's lastInitResult carries the systemMember BackendMember
191
- // created during seedWithRbac() / seedProductionIfEmpty().
192
- const initResult = this._plugin.lastInitResult;
193
- if (initResult?.systemMember) {
194
- // Cast: ecies-lib Member → node-ecies-lib Member (structurally compatible at runtime)
189
+ // SystemUserService.getSystemUser() returns the node-ecies-lib Member
190
+ // singleton (with encryptData/decryptData) that was initialized from
191
+ // the SYSTEM_MNEMONIC env var during app startup.
192
+ try {
193
+ const systemUser = node_express_suite_2.SystemUserService.getSystemUser(
195
194
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
196
- backupCodeService.setSystemUser(initResult.systemMember);
195
+ this.environment, this.constants);
196
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
197
+ backupCodeService.setSystemUser(systemUser);
198
+ }
199
+ catch {
200
+ // System user may not be available in minimal test environments
201
+ console.warn('[App] SystemUserService.getSystemUser() unavailable — backup code generation will fail until system user is set.');
197
202
  }
198
203
  // BrightChainSessionAdapter — singleton backed by BrightDb
199
204
  const sessionAdapter = new services_1.BrightChainSessionAdapter(brightDb);
@@ -208,7 +213,7 @@ class App extends node_express_suite_1.Application {
208
213
  if (this._httpServer) {
209
214
  this.wsServer = new webSocketMessageServer_1.WebSocketMessageServer(this._httpServer, false);
210
215
  this.services.register('wsServer', () => this.wsServer);
211
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] WebSocket server initialized');
216
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ ready ] WebSocket server initialized');
212
217
  // Client-facing WebSocket server for Lumen protocol
213
218
  // @see Requirements 9.6, 11.3
214
219
  this.clientWsServer = new clientWebSocketServer_1.ClientWebSocketServer(this._httpServer, this.environment.jwtSecret);
@@ -216,21 +221,92 @@ class App extends node_express_suite_1.Application {
216
221
  // Wire EventNotificationSystem to broadcast through ClientWebSocketServer
217
222
  // This unifies all real-time event delivery through a single WebSocket connection
218
223
  this.eventSystem.setBroadcaster(this.clientWsServer);
219
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Client WebSocket server initialized (unified event delivery)');
224
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ ready ] Client WebSocket server initialized (unified event delivery)');
220
225
  }
221
226
  // Wire EventNotificationSystem to SyncController via the apiRouter
222
227
  if (this.apiRouter) {
223
228
  this.apiRouter.setSyncEventSystem(this.eventSystem);
224
229
  }
230
+ // ── Email subsystem (MessagePassingService) initialization ──────
231
+ // The MessagePassingService is required by the EmailController to handle
232
+ // inbox queries, send/receive, thread views, etc. Without it, all email
233
+ // endpoints return SERVICE_UNAVAILABLE (503).
234
+ // We create a local instance with in-memory stores and a no-op gossip stub.
235
+ // When a real GossipService is wired later (via setPoolDiscoveryService),
236
+ // setMessagePassingService() can replace this with a fully-connected instance.
237
+ // @see Requirements 14.1, 14.2
238
+ try {
239
+ const messageCBL = {
240
+ createMessage: async () => ({
241
+ messageId: `msg-${Date.now()}-${Math.random().toString(36).slice(2)}`,
242
+ contentBlockIds: [],
243
+ magnetUrl: '',
244
+ }),
245
+ getMessageMetadata: async () => null,
246
+ getMessageContent: async () => null,
247
+ };
248
+ const messageMetadataStore = new brightchain_lib_1.MemoryMessageMetadataStore();
249
+ const emailMetadataStore = new brightchain_lib_1.InMemoryEmailMetadataStore();
250
+ // No-op gossip stub — real gossip is wired externally via setPoolDiscoveryService
251
+ const gossipStubForEmail = {
252
+ announceBlock: async () => { },
253
+ announceRemoval: async () => { },
254
+ announcePoolDeletion: async () => { },
255
+ announceCBLIndexUpdate: async () => { },
256
+ announceCBLIndexDelete: async () => { },
257
+ announceHeadUpdate: async () => { },
258
+ announceACLUpdate: async () => { },
259
+ handleAnnouncement: async () => { },
260
+ onAnnouncement: () => { },
261
+ offAnnouncement: () => { },
262
+ getPendingAnnouncements: () => [],
263
+ flushAnnouncements: async () => { },
264
+ start: () => { },
265
+ stop: async () => { },
266
+ getConfig: () => ({}),
267
+ announceMessage: async () => { },
268
+ sendDeliveryAck: async () => { },
269
+ onMessageDelivery: () => { },
270
+ offMessageDelivery: () => { },
271
+ onDeliveryAck: () => { },
272
+ offDeliveryAck: () => { },
273
+ announceQuorumProposal: async () => { },
274
+ announceQuorumVote: async () => { },
275
+ onQuorumProposal: () => { },
276
+ offQuorumProposal: () => { },
277
+ onQuorumVote: () => { },
278
+ offQuorumVote: () => { },
279
+ };
280
+ const mps = new messagePassingService_1.MessagePassingService(messageCBL, messageMetadataStore, this.eventSystem, gossipStubForEmail);
281
+ mps.configureEmail(emailMetadataStore);
282
+ // Store on the App instance and register with the service container
283
+ this.messagePassingService = mps;
284
+ this.services.register('messagePassingService', () => mps);
285
+ // Wire to both the messages controller and the email controller
286
+ if (this.apiRouter) {
287
+ this.apiRouter.setMessagePassingService(mps);
288
+ this.apiRouter.setMessagePassingServiceForEmail(mps);
289
+ }
290
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ ready ] MessagePassingService initialized (email subsystem active)');
291
+ }
292
+ catch (emailSubsystemErr) {
293
+ console.warn('[ warning ] Email subsystem initialization failed, email endpoints will return 503:', emailSubsystemErr);
294
+ }
225
295
  // ── BrightHub social services initialization ────────────────────
226
296
  if (this.apiRouter) {
227
- // Cast needed because each BrightHub service defines its own local
228
- // IApplicationWithCollections { getModel<T>(name: string): Collection<T> }
229
- // which is structurally compatible but has different generic constraints
230
- // than the upstream Application.getModel signature.
297
+ // BrightHub services expect a Collection<T> interface with
298
+ // .findOne().exec(), .updateOne(filter, fields).exec() patterns.
299
+ // BrightDb's DocumentCollection has a different API, so we wrap
300
+ // each collection via CollectionAdapter (see collectionAdapter.ts).
231
301
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
232
- const appForCollections = this;
302
+ const realApp = this;
303
+ const appForCollections = {
304
+ getModel(name) {
305
+ return (0, collectionAdapter_1.wrapCollection)(realApp.getModel(name));
306
+ },
307
+ };
233
308
  const postService = new services_1.PostService(appForCollections);
309
+ const threadService = (0, threadService_1.createThreadService)(appForCollections);
234
310
  const feedService = new services_1.FeedService(appForCollections);
235
311
  const messagingService = new services_1.MessagingService(appForCollections);
236
312
  const notificationService = new services_1.NotificationService(appForCollections);
@@ -238,20 +314,27 @@ class App extends node_express_suite_1.Application {
238
314
  const discoveryService = new services_1.DiscoveryService(appForCollections);
239
315
  const userProfileService = new services_1.UserProfileService(appForCollections);
240
316
  this.services.register('postService', () => postService);
317
+ this.services.register('threadService', () => threadService);
241
318
  this.services.register('feedService', () => feedService);
242
319
  this.services.register('messagingService', () => messagingService);
243
320
  this.services.register('notificationService', () => notificationService);
244
321
  this.services.register('connectionService', () => connectionService);
245
322
  this.services.register('discoveryService', () => discoveryService);
246
323
  this.services.register('userProfileService', () => userProfileService);
324
+ // Wire notification service into services that create notifications
325
+ postService.setNotificationService(notificationService);
326
+ userProfileService.setNotificationService(notificationService);
327
+ // Wire connection service into user profile service for block inheritance
328
+ userProfileService.setConnectionService(connectionService);
247
329
  this.apiRouter.setBrightHubPostService(postService);
330
+ this.apiRouter.setBrightHubThreadService(threadService);
248
331
  this.apiRouter.setBrightHubFeedService(feedService);
249
332
  this.apiRouter.setBrightHubMessagingService(messagingService);
250
333
  this.apiRouter.setBrightHubNotificationService(notificationService);
251
334
  this.apiRouter.setBrightHubConnectionService(connectionService);
252
335
  this.apiRouter.setBrightHubDiscoveryService(discoveryService);
253
336
  this.apiRouter.setBrightHubUserProfileService(userProfileService);
254
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] BrightHub social services initialized');
337
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ ready ] BrightHub social services initialized');
255
338
  }
256
339
  // ── Quorum subsystem initialization ─────────────────────────────
257
340
  // Task 23.1: Initialize QuorumDatabaseAdapter with pool ID "quorum-system"
@@ -262,7 +345,7 @@ class App extends node_express_suite_1.Application {
262
345
  });
263
346
  this.quorumDbAdapter = new services_1.QuorumDatabaseAdapter(quorumDb, brightchain_lib_1.ServiceProvider.getInstance().idProvider);
264
347
  this.services.register('quorumDbAdapter', () => this.quorumDbAdapter);
265
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Quorum database adapter initialized (pool: quorum-system)');
348
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ ready ] Quorum database adapter initialized (pool: quorum-system)');
266
349
  // Task 23.2: Initialize QuorumStateMachine with dependencies
267
350
  const serviceProvider = brightchain_lib_1.ServiceProvider.getInstance();
268
351
  const sealingService = serviceProvider.sealingService;
@@ -302,12 +385,12 @@ class App extends node_express_suite_1.Application {
302
385
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
303
386
  gossipStub, auditLogService, aliasRegistry);
304
387
  this.services.register('quorumStateMachine', () => this.quorumStateMachine);
305
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Quorum state machine initialized');
388
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ ready ] Quorum state machine initialized');
306
389
  // Task 23.3: Start IdentityExpirationScheduler
307
390
  this.identityExpirationScheduler = new services_1.IdentityExpirationScheduler(this.quorumDbAdapter, auditLogService);
308
391
  this.identityExpirationScheduler.start();
309
392
  this.services.register('identityExpirationScheduler', () => this.identityExpirationScheduler);
310
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Identity expiration scheduler started');
393
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ ready ] Identity expiration scheduler started');
311
394
  // Task 23.4: Register gossip message handlers for quorum_proposal and quorum_vote
312
395
  // The QuorumGossipHandler is created here but gossip service binding
313
396
  // happens when setQuorumGossipService() is called externally.
@@ -316,7 +399,7 @@ class App extends node_express_suite_1.Application {
316
399
  this.quorumGossipHandler = new quorumGossipHandler_1.QuorumGossipHandler(gossipService, this.quorumStateMachine, this.quorumDbAdapter);
317
400
  this.quorumGossipHandler.start();
318
401
  this.services.register('quorumGossipHandler', () => this.quorumGossipHandler);
319
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Quorum gossip handlers registered (quorum_proposal, quorum_vote)');
402
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ ready ] Quorum gossip handlers registered (quorum_proposal, quorum_vote)');
320
403
  });
321
404
  // Task 23.5: Wire content ingestion middleware (IdentityValidator + IdentitySealingPipeline)
322
405
  const membershipProofService = new brightchain_lib_1.MembershipProofService();
@@ -327,7 +410,7 @@ class App extends node_express_suite_1.Application {
327
410
  // CLIOperatorPrompt for interactive voting
328
411
  const operatorPrompt = new services_1.CLIOperatorPrompt();
329
412
  this.services.register('operatorPrompt', () => operatorPrompt);
330
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Quorum subsystem fully initialized');
413
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ ready ] Quorum subsystem fully initialized');
331
414
  }
332
415
  catch (quorumErr) {
333
416
  console.warn('[ warning ] Quorum subsystem initialization failed, continuing without quorum:', quorumErr);
@@ -335,13 +418,13 @@ class App extends node_express_suite_1.Application {
335
418
  // UPnP port mapping (non-fatal on failure)
336
419
  try {
337
420
  if (this.environment.upnp?.enabled) {
338
- this.upnpManager = new node_express_suite_1.UpnpManager(this.environment.upnp);
421
+ this.upnpManager = new node_express_suite_2.UpnpManager(this.environment.upnp);
339
422
  await this.upnpManager.initialize();
340
423
  this.services.register('upnpManager', () => this.upnpManager);
341
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] UPnP port mapping initialized');
424
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ ready ] UPnP port mapping initialized');
342
425
  }
343
426
  else {
344
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ info ] UPnP port mapping disabled');
427
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ info ] UPnP port mapping disabled');
345
428
  }
346
429
  }
347
430
  catch (upnpErr) {
@@ -353,13 +436,13 @@ class App extends node_express_suite_1.Application {
353
436
  // ── Quorum subsystem shutdown ─────────────────────────────────────
354
437
  // Task 23.3: Stop ExpirationScheduler (graceful cleanup)
355
438
  if (this.identityExpirationScheduler) {
356
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] Identity expiration scheduler');
439
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ stopping ] Identity expiration scheduler');
357
440
  this.identityExpirationScheduler.stop();
358
441
  this.identityExpirationScheduler = null;
359
442
  }
360
443
  // Task 23.4: Unregister gossip handlers
361
444
  if (this.quorumGossipHandler) {
362
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] Quorum gossip handlers');
445
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ stopping ] Quorum gossip handlers');
363
446
  this.quorumGossipHandler.stop();
364
447
  this.quorumGossipHandler = null;
365
448
  }
@@ -369,13 +452,13 @@ class App extends node_express_suite_1.Application {
369
452
  this.contentAwareBlocksService = null;
370
453
  // Shutdown UPnP port mappings
371
454
  if (this.upnpManager) {
372
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] UPnP port mapping');
455
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ stopping ] UPnP port mapping');
373
456
  await this.upnpManager.shutdown();
374
457
  this.upnpManager = null;
375
458
  }
376
459
  // Close WebSocket server
377
460
  if (this.wsServer) {
378
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] WebSocket server');
461
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ stopping ] WebSocket server');
379
462
  await new Promise((resolve) => {
380
463
  this.wsServer.close(() => resolve());
381
464
  });
@@ -383,7 +466,7 @@ class App extends node_express_suite_1.Application {
383
466
  }
384
467
  // Close client WebSocket server
385
468
  if (this.clientWsServer) {
386
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] Client WebSocket server');
469
+ (0, node_express_suite_2.debugLog)(this.environment.debug, 'log', '[ stopping ] Client WebSocket server');
387
470
  await new Promise((resolve) => {
388
471
  this.clientWsServer.close(() => resolve());
389
472
  });
@@ -397,13 +480,6 @@ class App extends node_express_suite_1.Application {
397
480
  // Upstream handles: greenlockManager.stop(), server.close(), db disconnect, _ready = false
398
481
  await super.stop();
399
482
  }
400
- /**
401
- * Get the underlying HTTP server instance.
402
- * Useful for tests that need to determine the bound port after start().
403
- */
404
- get httpServer() {
405
- return this._httpServer;
406
- }
407
483
  getController(name) {
408
484
  return this.controllers.get(name);
409
485
  }
@@ -450,6 +526,7 @@ class App extends node_express_suite_1.Application {
450
526
  this.services.register('messagePassingService', () => service);
451
527
  if (this.apiRouter) {
452
528
  this.apiRouter.setMessagePassingService(service);
529
+ this.apiRouter.setMessagePassingServiceForEmail(service);
453
530
  }
454
531
  }
455
532
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * ACL Document Store - stores and retrieves Write ACL documents as signed blocks.
3
+ *
4
+ * Follows the PoolACLStore pattern: each ACL document is serialized to JSON
5
+ * (without creatorSignature), signed with the admin's ECDSA key, and stored
6
+ * as a block. On retrieval, the signature is verified against the signer's
7
+ * public key before the document is returned.
8
+ *
9
+ * Version chaining: each update references the previous ACL block ID via
10
+ * `previousVersionBlockId`, forming an auditable linked list.
11
+ *
12
+ * @see Requirements 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
13
+ */
14
+ import { type IAclDocument } from '@brightchain/brightchain-lib';
15
+ import { ECDSANodeAuthenticator } from './ecdsaNodeAuthenticator';
16
+ /**
17
+ * The on-disk format for a signed ACL document block.
18
+ * `aclJson` is the serialized IAclDocument without creatorSignature;
19
+ * `signatures` carries the admin signatures as hex strings alongside
20
+ * their public keys.
21
+ *
22
+ * Follows the SignedACLBlock pattern from PoolACLStore.
23
+ */
24
+ export interface SignedAclDocumentBlock {
25
+ aclJson: string;
26
+ signatures: Array<{
27
+ publicKeyHex: string;
28
+ signature: string;
29
+ }>;
30
+ }
31
+ /**
32
+ * Stores and retrieves Write ACL documents as signed blocks.
33
+ *
34
+ * Uses an in-memory Map for block storage, following the PoolACLStore
35
+ * pattern. Block IDs are SHA-256 hashes of the stored content.
36
+ *
37
+ * @see Requirements 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
38
+ */
39
+ export declare class AclDocumentStore {
40
+ protected readonly blocks: Map<string, Uint8Array<ArrayBufferLike>>;
41
+ private readonly authenticator;
42
+ constructor(authenticator?: ECDSANodeAuthenticator);
43
+ /**
44
+ * Serialize an ACL document to JSON, sign it, and store as a block.
45
+ * Returns the block ID (SHA-256 hex of the stored content).
46
+ *
47
+ * The document is serialized using the shared serializeAclDocument helper
48
+ * (which handles Date → ISO string and Uint8Array → hex encoding).
49
+ * The creatorSignature field is excluded from the signed payload;
50
+ * the signature is stored separately in the SignedAclDocumentBlock envelope.
51
+ *
52
+ * @param doc - The ACL document to store (creatorSignature is ignored; a fresh signature is computed)
53
+ * @param signerPrivateKey - The admin's raw 32-byte secp256k1 private key
54
+ * @returns The block ID (SHA-256 hex digest)
55
+ * @see Requirements 2.1, 2.2, 2.3
56
+ */
57
+ storeAclDocument(doc: IAclDocument, signerPrivateKey: Uint8Array): Promise<string>;
58
+ /**
59
+ * Load an ACL document from a stored block, verifying the signature.
60
+ * Throws if the block doesn't exist or the signature is invalid.
61
+ *
62
+ * @param blockId - The block ID to load
63
+ * @returns The deserialized and verified ACL document
64
+ * @throws AclSignatureVerificationError if signature verification fails
65
+ * @see Requirements 2.3, 2.4
66
+ */
67
+ loadAclDocument(blockId: string): Promise<IAclDocument>;
68
+ /**
69
+ * Update an ACL document: validates version increment, sets
70
+ * previousVersionBlockId to the current block ID, and stores
71
+ * the new version.
72
+ *
73
+ * @param currentBlockId - The block ID of the current ACL document
74
+ * @param updatedDoc - The updated ACL document
75
+ * @param signerPrivateKey - The admin's raw 32-byte secp256k1 private key
76
+ * @returns The new block ID
77
+ * @throws AclVersionConflictError if version is not strictly greater
78
+ * @see Requirements 2.5, 2.6
79
+ */
80
+ updateAclDocument(currentBlockId: string, updatedDoc: IAclDocument, signerPrivateKey: Uint8Array): Promise<string>;
81
+ /**
82
+ * Check whether a block exists in the store.
83
+ */
84
+ hasBlock(blockId: string): boolean;
85
+ /**
86
+ * Compute a block ID as the SHA-256 hex digest of the content.
87
+ */
88
+ private computeBlockId;
89
+ }
90
+ //# sourceMappingURL=aclDocumentStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aclDocumentStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/auth/aclDocumentStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,KAAK,YAAY,EAKlB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAC3B,SAAS,CAAC,QAAQ,CAAC,MAAM,2CAAiC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;gBAE3C,aAAa,CAAC,EAAE,sBAAsB;IAIlD;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CACpB,GAAG,EAAE,YAAY,EACjB,gBAAgB,EAAE,UAAU,GAC3B,OAAO,CAAC,MAAM,CAAC;IAuClB;;;;;;;;OAQG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA+C7D;;;;;;;;;;;OAWG;IACG,iBAAiB,CACrB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,YAAY,EACxB,gBAAgB,EAAE,UAAU,GAC3B,OAAO,CAAC,MAAM,CAAC;IAuBlB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,OAAO,CAAC,cAAc;CAMvB"}