@brightchain/brightchain-api-lib 0.10.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 +5 -5
  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 +105 -1
  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 +3 -0
  51. package/src/lib/enumerations/brightChainApiStrings.d.ts.map +1 -0
  52. package/src/lib/enumerations/brightChainApiStrings.js +7 -0
  53. package/src/lib/enumerations/brightChainApiStrings.js.map +1 -0
  54. package/src/lib/errors/symmetric.d.ts +5 -5
  55. package/src/lib/errors/symmetric.d.ts.map +1 -1
  56. package/src/lib/errors/symmetric.js.map +1 -1
  57. package/src/lib/errors/translatable-error-local.d.ts +2 -2
  58. package/src/lib/errors/translatable-error-local.d.ts.map +1 -1
  59. package/src/lib/errors/translatable-error-local.js.map +1 -1
  60. package/src/lib/errors/typed-error-local.d.ts +5 -5
  61. package/src/lib/errors/typed-error-local.d.ts.map +1 -1
  62. package/src/lib/errors/typed-error-local.js.map +1 -1
  63. package/src/lib/interfaces/application.d.ts +2 -1
  64. package/src/lib/interfaces/application.d.ts.map +1 -1
  65. package/src/lib/interfaces/backend-objects/index.d.ts +4 -4
  66. package/src/lib/interfaces/backend-objects/index.d.ts.map +1 -1
  67. package/src/lib/interfaces/backend-objects/index.js +0 -5
  68. package/src/lib/interfaces/backend-objects/index.js.map +1 -1
  69. package/src/lib/interfaces/bases/index.d.ts +4 -4
  70. package/src/lib/interfaces/bases/index.d.ts.map +1 -1
  71. package/src/lib/interfaces/bases/index.js +0 -5
  72. package/src/lib/interfaces/bases/index.js.map +1 -1
  73. package/src/lib/interfaces/index.d.ts +32 -32
  74. package/src/lib/interfaces/index.d.ts.map +1 -1
  75. package/src/lib/interfaces/index.js +0 -33
  76. package/src/lib/interfaces/index.js.map +1 -1
  77. package/src/lib/interfaces/member/index.d.ts +3 -3
  78. package/src/lib/interfaces/member/index.d.ts.map +1 -1
  79. package/src/lib/interfaces/member/index.js +0 -4
  80. package/src/lib/interfaces/member/index.js.map +1 -1
  81. package/src/lib/interfaces/requests/deleteMessagesRequest.d.ts +12 -0
  82. package/src/lib/interfaces/requests/deleteMessagesRequest.d.ts.map +1 -0
  83. package/src/lib/interfaces/requests/deleteMessagesRequest.js +3 -0
  84. package/src/lib/interfaces/requests/deleteMessagesRequest.js.map +1 -0
  85. package/src/lib/interfaces/requests/discoverBlockRequest.d.ts +10 -0
  86. package/src/lib/interfaces/requests/discoverBlockRequest.d.ts.map +1 -0
  87. package/src/lib/interfaces/requests/discoverBlockRequest.js +3 -0
  88. package/src/lib/interfaces/requests/discoverBlockRequest.js.map +1 -0
  89. package/src/lib/interfaces/requests/getBlockLocationRequest.d.ts +9 -0
  90. package/src/lib/interfaces/requests/getBlockLocationRequest.d.ts.map +1 -0
  91. package/src/lib/interfaces/requests/getBlockLocationRequest.js +3 -0
  92. package/src/lib/interfaces/requests/getBlockLocationRequest.js.map +1 -0
  93. package/src/lib/interfaces/requests/getMessageRequest.d.ts +12 -0
  94. package/src/lib/interfaces/requests/getMessageRequest.d.ts.map +1 -0
  95. package/src/lib/interfaces/requests/getMessageRequest.js +3 -0
  96. package/src/lib/interfaces/requests/getMessageRequest.js.map +1 -0
  97. package/src/lib/interfaces/requests/getNodeRequest.d.ts +9 -0
  98. package/src/lib/interfaces/requests/getNodeRequest.d.ts.map +1 -0
  99. package/src/lib/interfaces/{membersResponse.js → requests/getNodeRequest.js} +1 -1
  100. package/src/lib/interfaces/requests/getNodeRequest.js.map +1 -0
  101. package/src/lib/interfaces/requests/index.d.ts +12 -0
  102. package/src/lib/interfaces/requests/index.d.ts.map +1 -0
  103. package/src/lib/interfaces/requests/index.js +3 -0
  104. package/src/lib/interfaces/requests/index.js.map +1 -0
  105. package/src/lib/interfaces/requests/messageRequest.d.ts +10 -0
  106. package/src/lib/interfaces/requests/messageRequest.d.ts.map +1 -0
  107. package/src/lib/interfaces/requests/messageRequest.js +3 -0
  108. package/src/lib/interfaces/requests/messageRequest.js.map +1 -0
  109. package/src/lib/interfaces/requests/queryMessagesRequest.d.ts +16 -0
  110. package/src/lib/interfaces/requests/queryMessagesRequest.d.ts.map +1 -0
  111. package/src/lib/interfaces/requests/queryMessagesRequest.js +3 -0
  112. package/src/lib/interfaces/requests/queryMessagesRequest.js.map +1 -0
  113. package/src/lib/interfaces/requests/registerNodeRequest.d.ts +11 -0
  114. package/src/lib/interfaces/requests/registerNodeRequest.d.ts.map +1 -0
  115. package/src/lib/interfaces/requests/registerNodeRequest.js +3 -0
  116. package/src/lib/interfaces/requests/registerNodeRequest.js.map +1 -0
  117. package/src/lib/interfaces/requests/replicateBlockRequest.d.ts +13 -0
  118. package/src/lib/interfaces/requests/replicateBlockRequest.d.ts.map +1 -0
  119. package/src/lib/interfaces/requests/replicateBlockRequest.js +3 -0
  120. package/src/lib/interfaces/requests/replicateBlockRequest.js.map +1 -0
  121. package/src/lib/interfaces/requests/sendMessageRequest.d.ts +24 -0
  122. package/src/lib/interfaces/requests/sendMessageRequest.d.ts.map +1 -0
  123. package/src/lib/interfaces/requests/sendMessageRequest.js +3 -0
  124. package/src/lib/interfaces/requests/sendMessageRequest.js.map +1 -0
  125. package/src/lib/interfaces/requests/storeSCBLRequestBody.d.ts +9 -0
  126. package/src/lib/interfaces/requests/storeSCBLRequestBody.d.ts.map +1 -0
  127. package/src/lib/interfaces/requests/storeSCBLRequestBody.js +3 -0
  128. package/src/lib/interfaces/requests/storeSCBLRequestBody.js.map +1 -0
  129. package/src/lib/interfaces/requests/syncRequestBody.d.ts +10 -0
  130. package/src/lib/interfaces/requests/syncRequestBody.d.ts.map +1 -0
  131. package/src/lib/interfaces/requests/syncRequestBody.js +3 -0
  132. package/src/lib/interfaces/requests/syncRequestBody.js.map +1 -0
  133. package/src/lib/interfaces/responses/index.d.ts +7 -7
  134. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  135. package/src/lib/interfaces/responses/index.js +0 -8
  136. package/src/lib/interfaces/responses/index.js.map +1 -1
  137. package/src/lib/middlewares/authentication.d.ts +133 -0
  138. package/src/lib/middlewares/authentication.d.ts.map +1 -0
  139. package/src/lib/middlewares/authentication.js +224 -0
  140. package/src/lib/middlewares/authentication.js.map +1 -0
  141. package/src/lib/middlewares/index.d.ts +2 -0
  142. package/src/lib/middlewares/index.d.ts.map +1 -1
  143. package/src/lib/middlewares/index.js +15 -1
  144. package/src/lib/middlewares/index.js.map +1 -1
  145. package/src/lib/middlewares/request-id.d.ts +18 -0
  146. package/src/lib/middlewares/request-id.d.ts.map +1 -0
  147. package/src/lib/middlewares/request-id.js +30 -0
  148. package/src/lib/middlewares/request-id.js.map +1 -0
  149. package/src/lib/openapi/index.d.ts +8 -0
  150. package/src/lib/openapi/index.d.ts.map +1 -0
  151. package/src/lib/openapi/index.js +21 -0
  152. package/src/lib/openapi/index.js.map +1 -0
  153. package/src/lib/openapi/schemas.d.ts +15 -0
  154. package/src/lib/openapi/schemas.d.ts.map +1 -0
  155. package/src/lib/openapi/schemas.js +610 -0
  156. package/src/lib/openapi/schemas.js.map +1 -0
  157. package/src/lib/routers/api.d.ts +62 -0
  158. package/src/lib/routers/api.d.ts.map +1 -1
  159. package/src/lib/routers/api.js +85 -0
  160. package/src/lib/routers/api.js.map +1 -1
  161. package/src/lib/services/diskQuorumService.d.ts +7 -6
  162. package/src/lib/services/diskQuorumService.d.ts.map +1 -1
  163. package/src/lib/services/diskQuorumService.js.map +1 -1
  164. package/src/lib/services/email.d.ts +2 -1
  165. package/src/lib/services/email.d.ts.map +1 -1
  166. package/src/lib/services/email.js.map +1 -1
  167. package/src/lib/services/eventNotificationSystem.d.ts +88 -6
  168. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
  169. package/src/lib/services/eventNotificationSystem.js +132 -17
  170. package/src/lib/services/eventNotificationSystem.js.map +1 -1
  171. package/src/lib/services/fec.js +1 -1
  172. package/src/lib/services/fec.js.map +1 -1
  173. package/src/lib/stores/diskCBLStore.d.ts.map +1 -1
  174. package/src/lib/stores/diskCBLStore.js +2 -4
  175. package/src/lib/stores/diskCBLStore.js.map +1 -1
  176. package/src/lib/types/backend-id.d.ts +2 -1
  177. package/src/lib/types/backend-id.d.ts.map +1 -1
  178. package/src/lib/utils/errorResponse.d.ts +227 -2
  179. package/src/lib/utils/errorResponse.d.ts.map +1 -1
  180. package/src/lib/utils/errorResponse.js +292 -3
  181. package/src/lib/utils/errorResponse.js.map +1 -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
package/package.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "name": "@brightchain/brightchain-api-lib",
3
- "version": "0.10.0",
3
+ "version": "0.13.0",
4
4
  "main": "./src/index.js",
5
5
  "types": "./src/index.d.ts",
6
6
  "dependencies": {
7
7
  "@aws-sdk/client-ses": "^3.859.0",
8
- "@brightchain/brightchain-lib": "0.10.0",
8
+ "@brightchain/brightchain-lib": "0.13.0",
9
+ "@digitaldefiance/branded-enum": "^0.0.6",
9
10
  "@digitaldefiance/enclave-bridge-client": "^1.1.0",
10
- "@digitaldefiance/node-ecies-lib": "^4.13.8",
11
+ "@digitaldefiance/i18n-lib": "^4.3.2",
12
+ "@digitaldefiance/node-ecies-lib": "^4.17.2",
11
13
  "@ethereumjs/wallet": "^10.0.0",
12
14
  "bip39": "^3.1.0",
13
15
  "buffer": "^6.0.3",
@@ -16,7 +18,6 @@
16
18
  "dotenv": "^17.2.1",
17
19
  "ejs": "^3.1.10",
18
20
  "elliptic": "^6.6.1",
19
- "ethereumjs-util": "^7.1.5",
20
21
  "express": "^5.1.0",
21
22
  "express-validator": "^7.2.1",
22
23
  "helmet": "^8.1.0",
@@ -33,7 +34,6 @@
33
34
  "@types/dotenv": "^8.2.3",
34
35
  "@types/ejs": "^3.1.5",
35
36
  "@types/elliptic": "^6.4.18",
36
- "@types/ethereumjs-util": "^6.1.2",
37
37
  "@types/express": "^5.0.3",
38
38
  "@types/express-validator": "^3.0.2",
39
39
  "@types/helmet": "^4.0.0",
@@ -2,7 +2,7 @@ import { PlatformID } from '@digitaldefiance/node-ecies-lib';
2
2
  import { IApplication, IBaseDocument, IConstants, PluginManager, ServiceContainer } from '@digitaldefiance/node-express-suite';
3
3
  import { DocumentStore } from './datastore/document-store';
4
4
  import { Environment } from './environment';
5
- import { DefaultBackendIdType } from './shared-types';
5
+ import type { DefaultBackendIdType } from './shared-types';
6
6
  /**
7
7
  * Base Application class with core functionality
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"application-base.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application-base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;GAEG;AACH,qBAAa,eAAe,CAC1B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,YAAW,YAAY,CAAC,GAAG,CAAC;IAC5B,OAAO,CAAC,YAAY,CAAmB;IACvC,IAAW,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,CAEzC;IAED,IAAW,SAAS,IAAI,UAAU,CAEjC;IAED,IAAW,EAAE,IAAI,GAAG,CAEnB;IAED,OAAO,CAAC,SAAS,CAA+B;IAChD,IAAW,QAAQ,IAAI,gBAAgB,CAKtC;IAED,OAAO,CAAC,QAAQ,CAAiC;IACjD,IAAW,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAKvC;IAEM,QAAQ,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;IAMjE,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,IAAI;IAI9D,WAAkB,OAAO,IAAI,MAAM,CAIlC;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,IAAW,KAAK,IAAI,OAAO,CAE1B;gBAEW,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,EAAE,aAAa;IAQxE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C;;OAEG;IACU,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAevD;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAGnC"}
1
+ {"version":3,"file":"application-base.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application-base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D;;GAEG;AACH,qBAAa,eAAe,CAC1B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,YAAW,YAAY,CAAC,GAAG,CAAC;IAC5B,OAAO,CAAC,YAAY,CAAmB;IACvC,IAAW,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,CAEzC;IAED,IAAW,SAAS,IAAI,UAAU,CAEjC;IAED,IAAW,EAAE,IAAI,GAAG,CAEnB;IAED,OAAO,CAAC,SAAS,CAA+B;IAChD,IAAW,QAAQ,IAAI,gBAAgB,CAKtC;IAED,OAAO,CAAC,QAAQ,CAAiC;IACjD,IAAW,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAKvC;IAEM,QAAQ,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;IAMjE,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,IAAI;IAI9D,WAAkB,OAAO,IAAI,MAAM,CAIlC;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,IAAW,KAAK,IAAI,OAAO,CAE1B;gBAEW,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,EAAE,aAAa;IAQxE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C;;OAEG;IACU,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAevD;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAGnC"}
@@ -1,7 +1,12 @@
1
+ import { IAvailabilityService, IDiscoveryProtocol, IReconciliationService } from '@brightchain/brightchain-lib';
1
2
  import { PlatformID } from '@digitaldefiance/node-ecies-lib';
2
3
  import { Application } from 'express';
3
4
  import { BaseApplication } from './application-base';
4
5
  import { Environment } from './environment';
6
+ import { ApiRouter } from './routers/api';
7
+ import { EventNotificationSystem } from './services/eventNotificationSystem';
8
+ import { MessagePassingService } from './services/messagePassingService';
9
+ import { WebSocketMessageServer } from './services/webSocketMessageServer';
5
10
  /**
6
11
  * Application class
7
12
  */
@@ -10,10 +15,57 @@ export declare class App<TID extends PlatformID> extends BaseApplication<TID> {
10
15
  private server;
11
16
  private controllers;
12
17
  private readonly keyStorage;
18
+ private apiRouter;
19
+ private eventSystem;
20
+ private wsServer;
21
+ private messagePassingService;
13
22
  constructor(environment: Environment<TID>);
14
23
  start(): Promise<void>;
15
24
  stop(): Promise<void>;
16
25
  getController<T = unknown>(name: string): T;
17
26
  setController(name: string, controller: unknown): void;
27
+ /**
28
+ * Get the API router instance.
29
+ * Useful for setting up services after initialization.
30
+ */
31
+ getApiRouter(): ApiRouter<TID> | null;
32
+ /**
33
+ * Get the EventNotificationSystem instance.
34
+ * Useful for subscribing to events.
35
+ */
36
+ getEventSystem(): EventNotificationSystem | null;
37
+ /**
38
+ * Get the WebSocketMessageServer instance.
39
+ * Useful for sending messages to connected nodes.
40
+ */
41
+ getWebSocketServer(): WebSocketMessageServer | null;
42
+ /**
43
+ * Set the MessagePassingService for the application.
44
+ * This should be called after the application is started and
45
+ * all required dependencies (MessageCBLService, IMessageMetadataStore) are available.
46
+ * @requirements 1.6
47
+ */
48
+ setMessagePassingService(service: MessagePassingService): void;
49
+ /**
50
+ * Set the DiscoveryProtocol for the application.
51
+ * This should be called after the application is started and
52
+ * the discovery protocol is initialized.
53
+ * @requirements 3.3
54
+ */
55
+ setDiscoveryProtocol(protocol: IDiscoveryProtocol): void;
56
+ /**
57
+ * Set the AvailabilityService for the application.
58
+ * This should be called after the application is started and
59
+ * the availability service is initialized.
60
+ * @requirements 3.1, 3.2, 4.1, 4.2, 4.3
61
+ */
62
+ setAvailabilityService(service: IAvailabilityService): void;
63
+ /**
64
+ * Set the ReconciliationService for the application.
65
+ * This should be called after the application is started and
66
+ * the reconciliation service is initialized.
67
+ * @requirements 4.4
68
+ */
69
+ setReconciliationService(service: IReconciliationService): void;
18
70
  }
19
71
  //# sourceMappingURL=application.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAW7D,OAAgB,EAAE,WAAW,EAAmC,MAAM,SAAS,CAAC;AAKhF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C;;GAEG;AACH,qBAAa,GAAG,CAAC,GAAG,SAAS,UAAU,CAAE,SAAQ,eAAe,CAAC,GAAG,CAAC;IACnE,SAAgB,UAAU,EAAE,WAAW,CAAC;IACxC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;gBAElC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;IAcnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BpC,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI3C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;CAG9D"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EAGvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAW7D,OAAgB,EAAE,WAAW,EAAmC,MAAM,SAAS,CAAC;AAKhF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;GAEG;AACH,qBAAa,GAAG,CAAC,GAAG,SAAS,UAAU,CAAE,SAAQ,eAAe,CAAC,GAAG,CAAC;IACnE,SAAgB,UAAU,EAAE,WAAW,CAAC;IACxC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,qBAAqB,CAAsC;gBAEvD,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;IAcnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuJtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2CpC,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI3C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IAI7D;;;OAGG;IACI,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI;IAI5C;;;OAGG;IACI,cAAc,IAAI,uBAAuB,GAAG,IAAI;IAIvD;;;OAGG;IACI,kBAAkB,IAAI,sBAAsB,GAAG,IAAI;IAI1D;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAQrE;;;;;OAKG;IACI,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAO/D;;;;;OAKG;IACI,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAQlE;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;CAMvE"}
@@ -18,6 +18,8 @@ const middlewares_1 = require("./middlewares");
18
18
  const api_1 = require("./routers/api");
19
19
  const app_1 = require("./routers/app");
20
20
  const services_1 = require("./services");
21
+ const eventNotificationSystem_1 = require("./services/eventNotificationSystem");
22
+ const webSocketMessageServer_1 = require("./services/webSocketMessageServer");
21
23
  /**
22
24
  * Application class
23
25
  */
@@ -30,6 +32,10 @@ class App extends application_base_1.BaseApplication {
30
32
  }));
31
33
  this.server = null;
32
34
  this.controllers = new Map();
35
+ this.apiRouter = null;
36
+ this.eventSystem = null;
37
+ this.wsServer = null;
38
+ this.messagePassingService = null;
33
39
  this.expressApp = (0, express_1.default)();
34
40
  this.server = null;
35
41
  this.keyStorage = services_1.SecureKeyStorage.getInstance();
@@ -57,21 +63,36 @@ class App extends application_base_1.BaseApplication {
57
63
  this.services.register('energyLedger', () => energyLedger);
58
64
  this.services.register('emailService', () => emailService);
59
65
  this.services.register('auth', () => authService);
66
+ // Initialize EventNotificationSystem for WebSocket events
67
+ // @requirements 5.1, 5.2, 5.4
68
+ this.eventSystem = new eventNotificationSystem_1.EventNotificationSystem();
69
+ this.services.register('eventSystem', () => this.eventSystem);
60
70
  middlewares_1.Middlewares.init(this.expressApp);
61
71
  const apiRouter = new api_1.ApiRouter(this);
72
+ this.apiRouter = apiRouter;
62
73
  const appRouter = new app_1.AppRouter(apiRouter);
74
+ // Wire EventNotificationSystem to SyncController for replication events
75
+ // @requirements 4.5
76
+ apiRouter.setSyncEventSystem(this.eventSystem);
63
77
  appRouter.init(this.expressApp);
64
78
  this.expressApp.use((err, req, res, next) => {
65
79
  const handleableError = err instanceof i18n_lib_1.HandleableError
66
80
  ? err
67
81
  : new i18n_lib_1.HandleableError(new Error(err.message ||
68
- (0, brightchain_lib_1.translate)(brightchain_lib_1.BrightChainStrings.Error_UnexpectedError)), { cause: err });
82
+ (0, brightchain_lib_1.translate)(brightchain_lib_1.BrightChainStrings.Error_Unexpected_Error)), { cause: err });
69
83
  (0, node_express_suite_1.handleError)(handleableError, res, node_express_suite_1.sendApiMessageResponse, next);
70
84
  });
71
85
  const serversReady = [];
72
86
  serversReady.push(new Promise((resolve) => {
73
87
  this.server = this.expressApp.listen(this.environment.port, this.environment.host, () => {
74
88
  (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', `[ ready ] http://${this.environment.host}:${this.environment.port}`);
89
+ // Initialize WebSocket server after HTTP server is ready
90
+ // @requirements 5.1
91
+ if (this.server) {
92
+ this.wsServer = new webSocketMessageServer_1.WebSocketMessageServer(this.server, false);
93
+ this.services.register('wsServer', () => this.wsServer);
94
+ (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] WebSocket server initialized');
95
+ }
75
96
  resolve();
76
97
  });
77
98
  }));
@@ -106,6 +127,14 @@ class App extends application_base_1.BaseApplication {
106
127
  }
107
128
  }
108
129
  async stop() {
130
+ // Close WebSocket server first
131
+ if (this.wsServer) {
132
+ (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] WebSocket server');
133
+ await new Promise((resolve) => {
134
+ this.wsServer.close(() => resolve());
135
+ });
136
+ this.wsServer = null;
137
+ }
109
138
  if (this.server) {
110
139
  (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] Application server');
111
140
  await new Promise((resolve, reject) => {
@@ -121,6 +150,10 @@ class App extends application_base_1.BaseApplication {
121
150
  });
122
151
  this.server = null;
123
152
  }
153
+ // Clean up other services
154
+ this.eventSystem = null;
155
+ this.messagePassingService = null;
156
+ this.apiRouter = null;
124
157
  await super.stop();
125
158
  this._ready = false;
126
159
  (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopped ] Application server and database connections');
@@ -131,6 +164,77 @@ class App extends application_base_1.BaseApplication {
131
164
  setController(name, controller) {
132
165
  this.controllers.set(name, controller);
133
166
  }
167
+ /**
168
+ * Get the API router instance.
169
+ * Useful for setting up services after initialization.
170
+ */
171
+ getApiRouter() {
172
+ return this.apiRouter;
173
+ }
174
+ /**
175
+ * Get the EventNotificationSystem instance.
176
+ * Useful for subscribing to events.
177
+ */
178
+ getEventSystem() {
179
+ return this.eventSystem;
180
+ }
181
+ /**
182
+ * Get the WebSocketMessageServer instance.
183
+ * Useful for sending messages to connected nodes.
184
+ */
185
+ getWebSocketServer() {
186
+ return this.wsServer;
187
+ }
188
+ /**
189
+ * Set the MessagePassingService for the application.
190
+ * This should be called after the application is started and
191
+ * all required dependencies (MessageCBLService, IMessageMetadataStore) are available.
192
+ * @requirements 1.6
193
+ */
194
+ setMessagePassingService(service) {
195
+ this.messagePassingService = service;
196
+ this.services.register('messagePassingService', () => service);
197
+ if (this.apiRouter) {
198
+ this.apiRouter.setMessagePassingService(service);
199
+ }
200
+ }
201
+ /**
202
+ * Set the DiscoveryProtocol for the application.
203
+ * This should be called after the application is started and
204
+ * the discovery protocol is initialized.
205
+ * @requirements 3.3
206
+ */
207
+ setDiscoveryProtocol(protocol) {
208
+ this.services.register('discoveryProtocol', () => protocol);
209
+ if (this.apiRouter) {
210
+ this.apiRouter.setDiscoveryProtocol(protocol);
211
+ }
212
+ }
213
+ /**
214
+ * Set the AvailabilityService for the application.
215
+ * This should be called after the application is started and
216
+ * the availability service is initialized.
217
+ * @requirements 3.1, 3.2, 4.1, 4.2, 4.3
218
+ */
219
+ setAvailabilityService(service) {
220
+ this.services.register('availabilityService', () => service);
221
+ if (this.apiRouter) {
222
+ this.apiRouter.setAvailabilityService(service);
223
+ this.apiRouter.setSyncAvailabilityService(service);
224
+ }
225
+ }
226
+ /**
227
+ * Set the ReconciliationService for the application.
228
+ * This should be called after the application is started and
229
+ * the reconciliation service is initialized.
230
+ * @requirements 4.4
231
+ */
232
+ setReconciliationService(service) {
233
+ this.services.register('reconciliationService', () => service);
234
+ if (this.apiRouter) {
235
+ this.apiRouter.setReconciliationService(service);
236
+ }
237
+ }
134
238
  }
135
239
  exports.App = App;
136
240
  //# sourceMappingURL=application.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":";;;;AAAA,kEAOsC;AACtC,wDAA4D;AAE5D,4EAI6C;AAC7C,oEAGyC;AACzC,uDAAuD;AACvD,8DAAgF;AAChF,2BAAkC;AAElC,iCAAqC;AACrC,+BAA+B;AAC/B,yDAAqD;AACrD,2FAAoF;AAEpF,qEAAkE;AAClE,+CAA4C;AAC5C,uCAA0C;AAC1C,uCAA0C;AAC1C,yCAAyE;AAEzE;;GAEG;AACH,MAAa,GAA4B,SAAQ,kCAAoB;IAMnE,YAAY,WAA6B;QACvC,KAAK,CACH,WAAW,EACX,IAAA,uDAAwB,EAAC;YACvB,SAAS,EAAE,WAAW,CAAC,cAAc;YACrC,SAAS,EAAE,WAAW,CAAC,mBAAmB;YAC1C,SAAS,EAAE,WAAW,CAAC,sBAAsB;SAC9C,CAAC,CACH,CAAC;QAZI,WAAM,GAAkB,IAAI,CAAC;QAC7B,gBAAW,GAAyB,IAAI,GAAG,EAAE,CAAC;QAYpD,IAAI,CAAC,UAAU,GAAG,IAAA,iBAAO,GAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,2BAAgB,CAAC,WAAW,EAAE,CAAC;IACnD,CAAC;IAEe,KAAK,CAAC,KAAK;QACzB,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CACX,kCAAkC,EAClC,gCAAgC,CACjC,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC;YAElD,sBAAsB;YACtB,MAAM,UAAU,GAAG,qCAAiB,CAAC,iBAAiB,CAAC;gBACrD,SAAS,EAAE,2BAAS,CAAC,KAAK;aAC3B,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,6BAAW,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,oCAAkB,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAG,IAAI,8BAAY,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,uBAAY,CAAM,IAAI,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,IAAI,sBAAW,CACjC,IAAI,EACJ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,IAAI,CAAC,WAAW,CAAC,SAAS,CAC3B,CAAC;YAEF,oBAAoB;YACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;YAElD,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,eAAS,CAAM,IAAI,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,IAAI,eAAS,CAAM,SAAS,CAAC,CAAC;YAEhD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,CACE,GAA4B,EAC5B,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;gBACF,MAAM,eAAe,GACnB,GAAG,YAAY,0BAAe;oBAC5B,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,IAAI,0BAAe,CACjB,IAAI,KAAK,CACP,GAAG,CAAC,OAAO;wBACT,IAAA,2BAAS,EAAC,oCAAkB,CAAC,qBAAqB,CAAC,CACtD,EACD,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;gBACR,IAAA,gCAAW,EACT,eAAe,EACf,GAAU,EACV,2CAAsB,EACtB,IAAI,CACL,CAAC;YACJ,CAAC,CACF,CAAC;YAEF,MAAM,YAAY,GAAoB,EAAE,CAAC;YACzC,YAAY,CAAC,IAAI,CACf,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAClC,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,EAAE;oBACH,IAAA,6BAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CACrE,CAAC;oBACF,OAAO,EAAE,CAAC;gBACZ,CAAC,CACF,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YAEF,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC;oBACrE,MAAM,OAAO,GAAG,IAAA,cAAO,EACrB,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,UAAU,CAC/C,CAAC;oBACF,MAAM,OAAO,GAAG;wBACd,GAAG,EAAE,IAAA,iBAAY,EAAC,OAAO,CAAC;wBAC1B,IAAI,EAAE,IAAA,iBAAY,EAAC,QAAQ,CAAC;qBAC7B,CAAC;oBAEF,YAAY,CAAC,IAAI,CACf,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;wBAC5B,IAAA,oBAAY,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAC3C,IAAI,CAAC,WAAW,CAAC,YAAY,EAC7B,GAAG,EAAE;4BACH,OAAO,CAAC,GAAG,CACT,KAAK,IAAA,wCAAuB,EAC1B,mCAAkB,CAAC,YAAY,CAChC,cAAc,IAAI,CAAC,WAAW,CAAC,IAAI,IAClC,IAAI,CAAC,WAAW,CAAC,YACnB,EAAE,CACH,CAAC;4BACF,OAAO,EAAE,CAAC;wBACZ,CAAC,CACF,CAAC;oBACJ,CAAC,CAAC,CACH,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;YACvD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;gBACvC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAEe,KAAK,CAAC,IAAI;QACxB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAA,6BAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,iCAAiC,CAClC,CAAC;YACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,MAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBACrC,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzB,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAA,6BAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IAEM,aAAa,CAAc,IAAY;QAC5C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAM,CAAC;IACzC,CAAC;IAEM,aAAa,CAAC,IAAY,EAAE,UAAmB;QACpD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACzC,CAAC;CACF;AAxLD,kBAwLC"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":";;;;AAAA,kEAUsC;AACtC,wDAA4D;AAE5D,4EAI6C;AAC7C,oEAGyC;AACzC,uDAAuD;AACvD,8DAAgF;AAChF,2BAAkC;AAElC,iCAAqC;AACrC,+BAA+B;AAC/B,yDAAqD;AACrD,2FAAoF;AAEpF,qEAAkE;AAClE,+CAA4C;AAC5C,uCAA0C;AAC1C,uCAA0C;AAC1C,yCAAyE;AACzE,gFAA6E;AAE7E,8EAA2E;AAE3E;;GAEG;AACH,MAAa,GAA4B,SAAQ,kCAAoB;IAUnE,YAAY,WAA6B;QACvC,KAAK,CACH,WAAW,EACX,IAAA,uDAAwB,EAAC;YACvB,SAAS,EAAE,WAAW,CAAC,cAAc;YACrC,SAAS,EAAE,WAAW,CAAC,mBAAmB;YAC1C,SAAS,EAAE,WAAW,CAAC,sBAAsB;SAC9C,CAAC,CACH,CAAC;QAhBI,WAAM,GAAkB,IAAI,CAAC;QAC7B,gBAAW,GAAyB,IAAI,GAAG,EAAE,CAAC;QAE9C,cAAS,GAA0B,IAAI,CAAC;QACxC,gBAAW,GAAmC,IAAI,CAAC;QACnD,aAAQ,GAAkC,IAAI,CAAC;QAC/C,0BAAqB,GAAiC,IAAI,CAAC;QAWjE,IAAI,CAAC,UAAU,GAAG,IAAA,iBAAO,GAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,2BAAgB,CAAC,WAAW,EAAE,CAAC;IACnD,CAAC;IAEe,KAAK,CAAC,KAAK;QACzB,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CACX,kCAAkC,EAClC,gCAAgC,CACjC,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC;YAElD,sBAAsB;YACtB,MAAM,UAAU,GAAG,qCAAiB,CAAC,iBAAiB,CAAC;gBACrD,SAAS,EAAE,2BAAS,CAAC,KAAK;aAC3B,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,6BAAW,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,oCAAkB,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAG,IAAI,8BAAY,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,uBAAY,CAAM,IAAI,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,IAAI,sBAAW,CACjC,IAAI,EACJ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,IAAI,CAAC,WAAW,CAAC,SAAS,CAC3B,CAAC;YAEF,oBAAoB;YACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;YAElD,0DAA0D;YAC1D,8BAA8B;YAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,iDAAuB,EAAE,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE9D,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,eAAS,CAAM,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,eAAS,CAAM,SAAS,CAAC,CAAC;YAEhD,wEAAwE;YACxE,oBAAoB;YACpB,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE/C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,CACE,GAA4B,EAC5B,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;gBACF,MAAM,eAAe,GACnB,GAAG,YAAY,0BAAe;oBAC5B,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,IAAI,0BAAe,CACjB,IAAI,KAAK,CACP,GAAG,CAAC,OAAO;wBACT,IAAA,2BAAS,EAAC,oCAAkB,CAAC,sBAAsB,CAAC,CACvD,EACD,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;gBACR,IAAA,gCAAW,EACT,eAAe,EACf,GAAU,EACV,2CAAsB,EACtB,IAAI,CACL,CAAC;YACJ,CAAC,CACF,CAAC;YAEF,MAAM,YAAY,GAAoB,EAAE,CAAC;YACzC,YAAY,CAAC,IAAI,CACf,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAClC,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,EAAE;oBACH,IAAA,6BAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CACrE,CAAC;oBAEF,yDAAyD;oBACzD,oBAAoB;oBACpB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBAC/D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACxD,IAAA,6BAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,wCAAwC,CACzC,CAAC;oBACJ,CAAC;oBAED,OAAO,EAAE,CAAC;gBACZ,CAAC,CACF,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YAEF,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC;oBACrE,MAAM,OAAO,GAAG,IAAA,cAAO,EACrB,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,UAAU,CAC/C,CAAC;oBACF,MAAM,OAAO,GAAG;wBACd,GAAG,EAAE,IAAA,iBAAY,EAAC,OAAO,CAAC;wBAC1B,IAAI,EAAE,IAAA,iBAAY,EAAC,QAAQ,CAAC;qBAC7B,CAAC;oBAEF,YAAY,CAAC,IAAI,CACf,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;wBAC5B,IAAA,oBAAY,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAC3C,IAAI,CAAC,WAAW,CAAC,YAAY,EAC7B,GAAG,EAAE;4BACH,OAAO,CAAC,GAAG,CACT,KAAK,IAAA,wCAAuB,EAC1B,mCAAkB,CAAC,YAAY,CAChC,cAAc,IAAI,CAAC,WAAW,CAAC,IAAI,IAClC,IAAI,CAAC,WAAW,CAAC,YACnB,EAAE,CACH,CAAC;4BACF,OAAO,EAAE,CAAC;wBACZ,CAAC,CACF,CAAC;oBACJ,CAAC,CAAC,CACH,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;YACvD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;gBACvC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAEe,KAAK,CAAC,IAAI;QACxB,+BAA+B;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAA,6BAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,+BAA+B,CAAC,CAAC;YACzE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,CAAC,QAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAA,6BAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,iCAAiC,CAClC,CAAC;YACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,MAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBACrC,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzB,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAA,6BAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IAEM,aAAa,CAAc,IAAY;QAC5C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAM,CAAC;IACzC,CAAC;IAEM,aAAa,CAAC,IAAY,EAAE,UAAmB;QACpD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,YAAY;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,kBAAkB;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACI,wBAAwB,CAAC,OAA8B;QAC5D,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,oBAAoB,CAAC,QAA4B;QACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,sBAAsB,CAAC,OAA6B;QACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,wBAAwB,CAAC,OAA+B;QAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF;AA/SD,kBA+SC"}
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/blocks.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAQvE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAQ1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC;;;GAGG;AACH,oBAAY,cAAc;IACxB,eAAe,oBAAoB;IACnC,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;IAC3C,0BAA0B,+BAA+B;IACzD,oBAAoB,yBAAyB;IAC7C,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;CAClC;AAED,KAAK,gBAAgB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,yBAAyB,GACzB,oBAAoB,GACpB,sBAAsB,GACtB,gBAAgB,CAAC;AAErB,UAAU,cAAe,SAAQ,aAAa;IAC5C,UAAU,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACtE,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;IAClE,gBAAgB,EAAE,iBAAiB,CACjC,yBAAyB,GAAG,gBAAgB,CAC7C,CAAC;IACF,WAAW,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IACxE,aAAa,EAAE,iBAAiB,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,CAAC;CAC7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,qBAAa,gBAAgB,CAC3B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CACtB,GAAG,EACH,gBAAgB,EAChB,cAAc,EACd,gBAAgB,CACjB;IACC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAOrD,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAsCtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,OAAO,CAAC,gBAAgB,CA+DtB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,cAAc,CA4BpB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,OAAO,CAAC,sBAAsB,CA6B5B;IAEF;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,iBAAiB,CAyBvB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,OAAO,CAAC,mBAAmB,CAoCzB;CACH"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/blocks.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAEjB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAQvE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAQ1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC;;;GAGG;AACH,oBAAY,cAAc;IACxB,eAAe,oBAAoB;IACnC,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;IAC3C,0BAA0B,+BAA+B;IACzD,oBAAoB,yBAAyB;IAC7C,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;CAClC;AAED,KAAK,gBAAgB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,yBAAyB,GACzB,oBAAoB,GACpB,sBAAsB,GACtB,gBAAgB,CAAC;AAErB,UAAU,cAAe,SAAQ,aAAa;IAC5C,UAAU,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACtE,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;IAClE,gBAAgB,EAAE,iBAAiB,CACjC,yBAAyB,GAAG,gBAAgB,CAC7C,CAAC;IACF,WAAW,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IACxE,aAAa,EAAE,iBAAiB,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,CAAC;CAC7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,qBAAa,gBAAgB,CAC3B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CACtB,GAAG,EACH,gBAAgB,EAChB,cAAc,EACd,gBAAgB,CACjB;IACC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAOrD,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAyGtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,OAAO,CAAC,gBAAgB,CA+DtB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,cAAc,CA4BpB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,OAAO,CAAC,sBAAsB,CA6B5B;IAEF;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,iBAAiB,CAyBvB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,OAAO,CAAC,mBAAmB,CAoCzB;CACH"}
@@ -379,28 +379,90 @@ class BlocksController extends base_1.BaseController {
379
379
  useAuthentication: true,
380
380
  useCryptoAuthentication: false,
381
381
  handlerKey: 'storeBlock',
382
+ openapi: {
383
+ summary: 'Store a block',
384
+ description: 'Store a new block with optional durability settings.',
385
+ tags: ['Blocks'],
386
+ requestBody: {
387
+ schema: 'StoreBlockRequest',
388
+ example: {
389
+ data: 'SGVsbG8gV29ybGQ=',
390
+ options: { durabilityLevel: 'standard' },
391
+ },
392
+ },
393
+ responses: {
394
+ 200: { schema: 'StoreBlockResponse', description: 'Block stored' },
395
+ },
396
+ },
382
397
  }),
383
398
  (0, node_express_suite_1.routeConfig)('get', '/:blockId', {
384
399
  handlerKey: 'getBlock',
385
400
  useAuthentication: true,
386
401
  useCryptoAuthentication: false,
402
+ openapi: {
403
+ summary: 'Get block by ID',
404
+ description: 'Retrieve a block by its ID.',
405
+ tags: ['Blocks'],
406
+ responses: {
407
+ 200: { schema: 'GetBlockResponse', description: 'Block retrieved' },
408
+ 404: { schema: 'ErrorResponse', description: 'Block not found' },
409
+ },
410
+ },
387
411
  }),
388
412
  (0, node_express_suite_1.routeConfig)('get', '/:blockId/metadata', {
389
413
  handlerKey: 'getBlockMetadata',
390
414
  useAuthentication: true,
391
415
  useCryptoAuthentication: false,
416
+ openapi: {
417
+ summary: 'Get block metadata',
418
+ description: 'Get metadata for a block without retrieving the data.',
419
+ tags: ['Blocks'],
420
+ responses: {
421
+ 200: {
422
+ schema: 'GetBlockMetadataResponse',
423
+ description: 'Metadata retrieved',
424
+ },
425
+ 404: { schema: 'ErrorResponse', description: 'Block not found' },
426
+ },
427
+ },
392
428
  }),
393
429
  (0, node_express_suite_1.routeConfig)('delete', '/:blockId', {
394
430
  handlerKey: 'deleteBlock',
395
431
  useAuthentication: true,
396
432
  useCryptoAuthentication: false,
433
+ openapi: {
434
+ summary: 'Delete block',
435
+ description: 'Delete a block and its parity blocks.',
436
+ tags: ['Blocks'],
437
+ responses: {
438
+ 200: { description: 'Block deleted' },
439
+ 404: { schema: 'ErrorResponse', description: 'Block not found' },
440
+ },
441
+ },
397
442
  }),
398
443
  (0, node_express_suite_1.routeConfig)('post', '/brighten', {
399
444
  handlerKey: 'brightenBlock',
400
445
  useAuthentication: true,
401
446
  useCryptoAuthentication: false,
447
+ openapi: {
448
+ summary: 'Brighten a block',
449
+ description: 'XOR a block with random blocks for Owner-Free storage.',
450
+ tags: ['Blocks'],
451
+ requestBody: {
452
+ schema: 'BrightenBlockRequest',
453
+ example: { blockId: 'abc123...', randomBlockCount: 3 },
454
+ },
455
+ responses: {
456
+ 200: {
457
+ schema: 'BrightenBlockResponse',
458
+ description: 'Block brightened',
459
+ },
460
+ },
461
+ },
402
462
  }),
403
463
  ];
464
+ // Register with OpenAPI registry
465
+ node_express_suite_1.ControllerRegistry.register('/blocks', 'BlocksController', this.routeDefinitions);
404
466
  this.handlers = {
405
467
  storeBlock: this.handleStoreBlock.bind(this),
406
468
  getBlock: this.handleGetBlock.bind(this),
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/blocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/blocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
2
+ import { PlatformID } from '@digitaldefiance/node-ecies-lib';
3
+ import { ApiErrorResponse, ApiRequestHandler, IApiMessageResponse, TypedHandlers } from '@digitaldefiance/node-express-suite';
4
+ import { IBrightChainApplication } from '../../interfaces/application';
5
+ import '../../openapi/schemas';
6
+ import { DefaultBackendIdType } from '../../shared-types';
7
+ import { BaseController } from '../base';
8
+ /**
9
+ * OpenAPI specification response
10
+ */
11
+ export interface IOpenAPIResponse extends IApiMessageResponse {
12
+ openapi: string;
13
+ info: {
14
+ title: string;
15
+ version: string;
16
+ description: string;
17
+ };
18
+ servers: Array<{
19
+ url: string;
20
+ description: string;
21
+ }>;
22
+ paths: Record<string, any>;
23
+ components: {
24
+ schemas: Record<string, any>;
25
+ securitySchemes: Record<string, any>;
26
+ };
27
+ [key: string]: unknown;
28
+ }
29
+ type DocsApiResponse = IOpenAPIResponse | ApiErrorResponse;
30
+ interface DocsHandlers extends TypedHandlers {
31
+ getDocs: ApiRequestHandler<IOpenAPIResponse | ApiErrorResponse>;
32
+ }
33
+ /**
34
+ * Controller for API documentation endpoint.
35
+ *
36
+ * Provides the OpenAPI specification for the BrightChain API.
37
+ * The specification is built dynamically from registered controllers
38
+ * using their route definitions and OpenAPI metadata.
39
+ *
40
+ * ## Endpoints
41
+ *
42
+ * ### GET /api/docs
43
+ * Returns the OpenAPI specification in JSON format.
44
+ *
45
+ * **Response:**
46
+ * - OpenAPI 3.0.3 specification with all endpoints
47
+ * - Request/response schemas for each endpoint
48
+ * - Authentication requirements per endpoint
49
+ * - Example requests and responses
50
+ *
51
+ * @requirements 10.1, 10.2, 10.3, 10.4
52
+ */
53
+ export declare class DocsController<TID extends PlatformID = DefaultBackendIdType> extends BaseController<TID, DocsApiResponse, DocsHandlers, CoreLanguageCode> {
54
+ private static readonly API_VERSION;
55
+ private readonly builder;
56
+ constructor(application: IBrightChainApplication<TID>);
57
+ protected initRouteDefinitions(): void;
58
+ /**
59
+ * GET /api/docs
60
+ * Returns the OpenAPI specification in JSON format.
61
+ *
62
+ * @requirements 10.1, 10.2, 10.3, 10.4
63
+ */
64
+ private handleGetDocs;
65
+ }
66
+ export {};
67
+ //# sourceMappingURL=docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/docs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAEjB,mBAAmB,EAGnB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,OAAO,EAAE,KAAK,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACtC,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,KAAK,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAE3D,UAAU,YAAa,SAAQ,aAAa;IAC1C,OAAO,EAAE,iBAAiB,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;CACjE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAc,CACzB,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,CAAC;IAC5E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAE7B,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAYrD,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAgCtC;;;;;OAKG;YACW,aAAa;CAiB5B"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocsController = void 0;
4
+ const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
5
+ // Import to trigger schema registration
6
+ require("../../openapi/schemas");
7
+ const base_1 = require("../base");
8
+ /**
9
+ * Controller for API documentation endpoint.
10
+ *
11
+ * Provides the OpenAPI specification for the BrightChain API.
12
+ * The specification is built dynamically from registered controllers
13
+ * using their route definitions and OpenAPI metadata.
14
+ *
15
+ * ## Endpoints
16
+ *
17
+ * ### GET /api/docs
18
+ * Returns the OpenAPI specification in JSON format.
19
+ *
20
+ * **Response:**
21
+ * - OpenAPI 3.0.3 specification with all endpoints
22
+ * - Request/response schemas for each endpoint
23
+ * - Authentication requirements per endpoint
24
+ * - Example requests and responses
25
+ *
26
+ * @requirements 10.1, 10.2, 10.3, 10.4
27
+ */
28
+ class DocsController extends base_1.BaseController {
29
+ constructor(application) {
30
+ super(application);
31
+ this.builder = new node_express_suite_1.OpenAPIBuilder({
32
+ title: 'BrightChain API',
33
+ version: DocsController.API_VERSION,
34
+ description: 'REST API for BrightChain distributed storage and messaging system',
35
+ servers: [{ url: '/api', description: 'API server' }],
36
+ });
37
+ }
38
+ initRouteDefinitions() {
39
+ this.routeDefinitions = [
40
+ (0, node_express_suite_1.routeConfig)('get', '/', {
41
+ handlerKey: 'getDocs',
42
+ useAuthentication: false,
43
+ useCryptoAuthentication: false,
44
+ openapi: {
45
+ summary: 'Get OpenAPI specification',
46
+ description: 'Returns the OpenAPI specification in JSON format.',
47
+ tags: ['Documentation'],
48
+ responses: {
49
+ 200: {
50
+ schema: 'OpenAPISpec',
51
+ description: 'OpenAPI specification',
52
+ },
53
+ },
54
+ },
55
+ }),
56
+ ];
57
+ // Register this controller
58
+ node_express_suite_1.ControllerRegistry.register('/docs', 'DocsController', this.routeDefinitions);
59
+ this.handlers = {
60
+ getDocs: this.handleGetDocs.bind(this),
61
+ };
62
+ }
63
+ /**
64
+ * GET /api/docs
65
+ * Returns the OpenAPI specification in JSON format.
66
+ *
67
+ * @requirements 10.1, 10.2, 10.3, 10.4
68
+ */
69
+ async handleGetDocs() {
70
+ const spec = this.builder.build();
71
+ return {
72
+ statusCode: 200,
73
+ response: {
74
+ message: 'OpenAPI specification',
75
+ openapi: spec.openapi,
76
+ info: spec.info,
77
+ servers: spec.servers,
78
+ paths: spec.paths,
79
+ components: spec.components,
80
+ },
81
+ };
82
+ }
83
+ }
84
+ exports.DocsController = DocsController;
85
+ DocsController.API_VERSION = '0.13.0';
86
+ //# sourceMappingURL=docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/docs.ts"],"names":[],"mappings":";;;AAGA,4EAS6C;AAE7C,wCAAwC;AACxC,iCAA+B;AAE/B,kCAAyC;AA8BzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,cAEX,SAAQ,qBAAoE;IAI5E,YAAY,WAAyC;QACnD,KAAK,CAAC,WAAW,CAAC,CAAC;QAEnB,IAAI,CAAC,OAAO,GAAG,IAAI,mCAAc,CAAC;YAChC,KAAK,EAAE,iBAAiB;YACxB,OAAO,EAAE,cAAc,CAAC,WAAW;YACnC,WAAW,EACT,mEAAmE;YACrE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;IAES,oBAAoB;QAC5B,IAAI,CAAC,gBAAgB,GAAG;YACtB,IAAA,gCAAW,EAAC,KAAK,EAAE,GAAG,EAAE;gBACtB,UAAU,EAAE,SAAS;gBACrB,iBAAiB,EAAE,KAAK;gBACxB,uBAAuB,EAAE,KAAK;gBAC9B,OAAO,EAAE;oBACP,OAAO,EAAE,2BAA2B;oBACpC,WAAW,EAAE,mDAAmD;oBAChE,IAAI,EAAE,CAAC,eAAe,CAAC;oBACvB,SAAS,EAAE;wBACT,GAAG,EAAE;4BACH,MAAM,EAAE,aAAa;4BACrB,WAAW,EAAE,uBAAuB;yBACrC;qBACF;iBACF;aACF,CAAC;SACH,CAAC;QAEF,2BAA2B;QAC3B,uCAAkB,CAAC,QAAQ,CACzB,OAAO,EACP,gBAAgB,EAChB,IAAI,CAAC,gBAAgB,CACtB,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG;YACd,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;SACvC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,aAAa;QAGzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAElC,OAAO;YACL,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE;gBACR,OAAO,EAAE,uBAAuB;gBAChC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B;SACF,CAAC;IACJ,CAAC;;AAxEH,wCAyEC;AAtEyB,0BAAW,GAAG,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"energy.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/energy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EAEnB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,UAAU,eAAgB,SAAQ,aAAa;IAC7C,UAAU,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACtE,eAAe,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;CAC5E;AAED,qBAAa,gBAAgB,CAC3B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CACtB,GAAG,EACH,mBAAmB,GAAG,gBAAgB,EACtC,eAAe,EACf,gBAAgB,CACjB;gBACa,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAIrD,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAoBtC,OAAO,CAAC,gBAAgB,CAqDtB;IAEF,OAAO,CAAC,qBAAqB,CAwB3B;CACH"}
1
+ {"version":3,"file":"energy.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/energy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EAEnB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,UAAU,eAAgB,SAAQ,aAAa;IAC7C,UAAU,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACtE,eAAe,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;CAC5E;AAED,qBAAa,gBAAgB,CAC3B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CACtB,GAAG,EACH,mBAAmB,GAAG,gBAAgB,EACtC,eAAe,EACf,gBAAgB,CACjB;gBACa,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAIrD,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAoBtC,OAAO,CAAC,gBAAgB,CAqDtB;IAEF,OAAO,CAAC,qBAAqB,CA0D3B;CACH"}