@brightchain/brightchain-api-lib 0.14.0 → 0.16.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 (288) hide show
  1. package/package.json +5 -5
  2. package/src/browser.d.ts +13 -0
  3. package/src/browser.d.ts.map +1 -0
  4. package/src/browser.js +16 -0
  5. package/src/browser.js.map +1 -0
  6. package/src/index.d.ts +4 -1
  7. package/src/index.d.ts.map +1 -1
  8. package/src/index.js +6 -1
  9. package/src/index.js.map +1 -1
  10. package/src/lib/application-base.d.ts +8 -37
  11. package/src/lib/application-base.d.ts.map +1 -1
  12. package/src/lib/application-base.js +8 -80
  13. package/src/lib/application-base.js.map +1 -1
  14. package/src/lib/application.d.ts +37 -7
  15. package/src/lib/application.d.ts.map +1 -1
  16. package/src/lib/application.js +130 -118
  17. package/src/lib/application.js.map +1 -1
  18. package/src/lib/auth/aclEnforcedAvailability.d.ts +57 -0
  19. package/src/lib/auth/aclEnforcedAvailability.d.ts.map +1 -0
  20. package/src/lib/auth/aclEnforcedAvailability.js +87 -0
  21. package/src/lib/auth/aclEnforcedAvailability.js.map +1 -0
  22. package/src/lib/auth/aclEnforcedBlockStore.d.ts +66 -0
  23. package/src/lib/auth/aclEnforcedBlockStore.d.ts.map +1 -0
  24. package/src/lib/auth/aclEnforcedBlockStore.js +83 -0
  25. package/src/lib/auth/aclEnforcedBlockStore.js.map +1 -0
  26. package/src/lib/auth/ecdsaNodeAuthenticator.d.ts +46 -0
  27. package/src/lib/auth/ecdsaNodeAuthenticator.d.ts.map +1 -0
  28. package/src/lib/auth/ecdsaNodeAuthenticator.js +110 -0
  29. package/src/lib/auth/ecdsaNodeAuthenticator.js.map +1 -0
  30. package/src/lib/auth/index.d.ts +7 -0
  31. package/src/lib/auth/index.d.ts.map +1 -0
  32. package/src/lib/auth/index.js +13 -0
  33. package/src/lib/auth/index.js.map +1 -0
  34. package/src/lib/auth/poolAclBootstrap.d.ts +36 -0
  35. package/src/lib/auth/poolAclBootstrap.d.ts.map +1 -0
  36. package/src/lib/auth/poolAclBootstrap.js +64 -0
  37. package/src/lib/auth/poolAclBootstrap.js.map +1 -0
  38. package/src/lib/auth/poolAclStore.d.ts +77 -0
  39. package/src/lib/auth/poolAclStore.d.ts.map +1 -0
  40. package/src/lib/auth/poolAclStore.js +189 -0
  41. package/src/lib/auth/poolAclStore.js.map +1 -0
  42. package/src/lib/auth/poolAclUpdater.d.ts +79 -0
  43. package/src/lib/auth/poolAclUpdater.d.ts.map +1 -0
  44. package/src/lib/auth/poolAclUpdater.js +144 -0
  45. package/src/lib/auth/poolAclUpdater.js.map +1 -0
  46. package/src/lib/availability/availabilityService.d.ts +2 -2
  47. package/src/lib/availability/availabilityService.d.ts.map +1 -1
  48. package/src/lib/availability/availabilityService.js +12 -5
  49. package/src/lib/availability/availabilityService.js.map +1 -1
  50. package/src/lib/availability/blockRegistry.d.ts +45 -3
  51. package/src/lib/availability/blockRegistry.d.ts.map +1 -1
  52. package/src/lib/availability/blockRegistry.js +123 -5
  53. package/src/lib/availability/blockRegistry.js.map +1 -1
  54. package/src/lib/availability/discoveryProtocol.d.ts +30 -1
  55. package/src/lib/availability/discoveryProtocol.d.ts.map +1 -1
  56. package/src/lib/availability/discoveryProtocol.js +76 -0
  57. package/src/lib/availability/discoveryProtocol.js.map +1 -1
  58. package/src/lib/availability/gossipService.d.ts +45 -6
  59. package/src/lib/availability/gossipService.d.ts.map +1 -1
  60. package/src/lib/availability/gossipService.js +177 -5
  61. package/src/lib/availability/gossipService.js.map +1 -1
  62. package/src/lib/availability/reconciliationService.d.ts +88 -1
  63. package/src/lib/availability/reconciliationService.d.ts.map +1 -1
  64. package/src/lib/availability/reconciliationService.js +246 -48
  65. package/src/lib/availability/reconciliationService.js.map +1 -1
  66. package/src/lib/blockFetch/blockFetcher.d.ts +100 -0
  67. package/src/lib/blockFetch/blockFetcher.d.ts.map +1 -0
  68. package/src/lib/blockFetch/blockFetcher.js +279 -0
  69. package/src/lib/blockFetch/blockFetcher.js.map +1 -0
  70. package/src/lib/blockFetch/fetchQueue.d.ts +88 -0
  71. package/src/lib/blockFetch/fetchQueue.d.ts.map +1 -0
  72. package/src/lib/blockFetch/fetchQueue.js +204 -0
  73. package/src/lib/blockFetch/fetchQueue.js.map +1 -0
  74. package/src/lib/blockFetch/httpBlockFetchTransport.d.ts +65 -0
  75. package/src/lib/blockFetch/httpBlockFetchTransport.d.ts.map +1 -0
  76. package/src/lib/blockFetch/httpBlockFetchTransport.js +104 -0
  77. package/src/lib/blockFetch/httpBlockFetchTransport.js.map +1 -0
  78. package/src/lib/blockFetch/index.d.ts +10 -0
  79. package/src/lib/blockFetch/index.d.ts.map +1 -0
  80. package/src/lib/blockFetch/index.js +13 -0
  81. package/src/lib/blockFetch/index.js.map +1 -0
  82. package/src/lib/constants.js +2 -2
  83. package/src/lib/constants.js.map +1 -1
  84. package/src/lib/controllers/api/blocks.d.ts.map +1 -1
  85. package/src/lib/controllers/api/blocks.js +290 -290
  86. package/src/lib/controllers/api/blocks.js.map +1 -1
  87. package/src/lib/controllers/api/brightpass.d.ts +72 -0
  88. package/src/lib/controllers/api/brightpass.d.ts.map +1 -0
  89. package/src/lib/controllers/api/brightpass.js +577 -0
  90. package/src/lib/controllers/api/brightpass.js.map +1 -0
  91. package/src/lib/controllers/api/channels.d.ts +122 -0
  92. package/src/lib/controllers/api/channels.d.ts.map +1 -0
  93. package/src/lib/controllers/api/channels.js +701 -0
  94. package/src/lib/controllers/api/channels.js.map +1 -0
  95. package/src/lib/controllers/api/conversations.d.ts +89 -0
  96. package/src/lib/controllers/api/conversations.d.ts.map +1 -0
  97. package/src/lib/controllers/api/conversations.js +259 -0
  98. package/src/lib/controllers/api/conversations.js.map +1 -0
  99. package/src/lib/controllers/api/emails.d.ts +122 -0
  100. package/src/lib/controllers/api/emails.d.ts.map +1 -0
  101. package/src/lib/controllers/api/emails.js +494 -0
  102. package/src/lib/controllers/api/emails.js.map +1 -0
  103. package/src/lib/controllers/api/energy.d.ts.map +1 -1
  104. package/src/lib/controllers/api/energy.js +93 -93
  105. package/src/lib/controllers/api/energy.js.map +1 -1
  106. package/src/lib/controllers/api/explodingMessages.d.ts +79 -0
  107. package/src/lib/controllers/api/explodingMessages.d.ts.map +1 -0
  108. package/src/lib/controllers/api/explodingMessages.js +378 -0
  109. package/src/lib/controllers/api/explodingMessages.js.map +1 -0
  110. package/src/lib/controllers/api/groups.d.ts +94 -0
  111. package/src/lib/controllers/api/groups.d.ts.map +1 -0
  112. package/src/lib/controllers/api/groups.js +484 -0
  113. package/src/lib/controllers/api/groups.js.map +1 -0
  114. package/src/lib/controllers/api/i18n.d.ts.map +1 -1
  115. package/src/lib/controllers/api/i18n.js +8 -8
  116. package/src/lib/controllers/api/i18n.js.map +1 -1
  117. package/src/lib/controllers/api/index.d.ts +6 -0
  118. package/src/lib/controllers/api/index.d.ts.map +1 -1
  119. package/src/lib/controllers/api/index.js +6 -0
  120. package/src/lib/controllers/api/index.js.map +1 -1
  121. package/src/lib/controllers/api/messages.d.ts.map +1 -1
  122. package/src/lib/controllers/api/messages.js +2 -1
  123. package/src/lib/controllers/api/messages.js.map +1 -1
  124. package/src/lib/controllers/api/quorum.d.ts.map +1 -1
  125. package/src/lib/controllers/api/quorum.js +483 -483
  126. package/src/lib/controllers/api/quorum.js.map +1 -1
  127. package/src/lib/controllers/api/sessions.d.ts.map +1 -1
  128. package/src/lib/controllers/api/sessions.js +8 -8
  129. package/src/lib/controllers/api/sessions.js.map +1 -1
  130. package/src/lib/controllers/api/sync.d.ts +38 -2
  131. package/src/lib/controllers/api/sync.d.ts.map +1 -1
  132. package/src/lib/controllers/api/sync.js +89 -0
  133. package/src/lib/controllers/api/sync.js.map +1 -1
  134. package/src/lib/controllers/api/user.d.ts.map +1 -1
  135. package/src/lib/controllers/api/user.js +180 -180
  136. package/src/lib/controllers/api/user.js.map +1 -1
  137. package/src/lib/controllers/crypto/gitController.d.ts +70 -0
  138. package/src/lib/controllers/crypto/gitController.d.ts.map +1 -0
  139. package/src/lib/controllers/crypto/gitController.js +306 -0
  140. package/src/lib/controllers/crypto/gitController.js.map +1 -0
  141. package/src/lib/controllers/crypto/index.d.ts +3 -0
  142. package/src/lib/controllers/crypto/index.d.ts.map +1 -0
  143. package/src/lib/controllers/crypto/index.js +6 -0
  144. package/src/lib/controllers/crypto/index.js.map +1 -0
  145. package/src/lib/controllers/crypto/walletController.d.ts +64 -0
  146. package/src/lib/controllers/crypto/walletController.d.ts.map +1 -0
  147. package/src/lib/controllers/crypto/walletController.js +260 -0
  148. package/src/lib/controllers/crypto/walletController.js.map +1 -0
  149. package/src/lib/controllers/identity/deviceController.d.ts +96 -0
  150. package/src/lib/controllers/identity/deviceController.d.ts.map +1 -0
  151. package/src/lib/controllers/identity/deviceController.js +355 -0
  152. package/src/lib/controllers/identity/deviceController.js.map +1 -0
  153. package/src/lib/controllers/identity/directoryController.d.ts +75 -0
  154. package/src/lib/controllers/identity/directoryController.d.ts.map +1 -0
  155. package/src/lib/controllers/identity/directoryController.js +288 -0
  156. package/src/lib/controllers/identity/directoryController.js.map +1 -0
  157. package/src/lib/controllers/identity/identityProofController.d.ts +94 -0
  158. package/src/lib/controllers/identity/identityProofController.d.ts.map +1 -0
  159. package/src/lib/controllers/identity/identityProofController.js +454 -0
  160. package/src/lib/controllers/identity/identityProofController.js.map +1 -0
  161. package/src/lib/controllers/identity/index.d.ts +4 -0
  162. package/src/lib/controllers/identity/index.d.ts.map +1 -0
  163. package/src/lib/controllers/identity/index.js +7 -0
  164. package/src/lib/controllers/identity/index.js.map +1 -0
  165. package/src/lib/controllers/index.d.ts +2 -0
  166. package/src/lib/controllers/index.d.ts.map +1 -1
  167. package/src/lib/controllers/index.js +2 -0
  168. package/src/lib/controllers/index.js.map +1 -1
  169. package/src/lib/encryption/encryptedMetadataService.d.ts +87 -0
  170. package/src/lib/encryption/encryptedMetadataService.d.ts.map +1 -0
  171. package/src/lib/encryption/encryptedMetadataService.js +224 -0
  172. package/src/lib/encryption/encryptedMetadataService.js.map +1 -0
  173. package/src/lib/encryption/encryptionAwareReplication.d.ts +76 -0
  174. package/src/lib/encryption/encryptionAwareReplication.d.ts.map +1 -0
  175. package/src/lib/encryption/encryptionAwareReplication.js +116 -0
  176. package/src/lib/encryption/encryptionAwareReplication.js.map +1 -0
  177. package/src/lib/encryption/errors.d.ts +49 -0
  178. package/src/lib/encryption/errors.d.ts.map +1 -0
  179. package/src/lib/encryption/errors.js +80 -0
  180. package/src/lib/encryption/errors.js.map +1 -0
  181. package/src/lib/encryption/index.d.ts +6 -0
  182. package/src/lib/encryption/index.d.ts.map +1 -0
  183. package/src/lib/encryption/index.js +9 -0
  184. package/src/lib/encryption/index.js.map +1 -0
  185. package/src/lib/encryption/poolEncryptionService.d.ts +94 -0
  186. package/src/lib/encryption/poolEncryptionService.d.ts.map +1 -0
  187. package/src/lib/encryption/poolEncryptionService.js +252 -0
  188. package/src/lib/encryption/poolEncryptionService.js.map +1 -0
  189. package/src/lib/encryption/poolKeyManager.d.ts +82 -0
  190. package/src/lib/encryption/poolKeyManager.d.ts.map +1 -0
  191. package/src/lib/encryption/poolKeyManager.js +156 -0
  192. package/src/lib/encryption/poolKeyManager.js.map +1 -0
  193. package/src/lib/environment.d.ts +3 -0
  194. package/src/lib/environment.d.ts.map +1 -1
  195. package/src/lib/environment.js +5 -0
  196. package/src/lib/environment.js.map +1 -1
  197. package/src/lib/interfaces/application.d.ts +7 -1
  198. package/src/lib/interfaces/application.d.ts.map +1 -1
  199. package/src/lib/interfaces/brightchain-init-result.d.ts +17 -0
  200. package/src/lib/interfaces/brightchain-init-result.d.ts.map +1 -0
  201. package/src/lib/interfaces/brightchain-init-result.js +9 -0
  202. package/src/lib/interfaces/brightchain-init-result.js.map +1 -0
  203. package/src/lib/interfaces/environment.d.ts +7 -1
  204. package/src/lib/interfaces/environment.d.ts.map +1 -1
  205. package/src/lib/interfaces/index.d.ts +1 -1
  206. package/src/lib/interfaces/index.d.ts.map +1 -1
  207. package/src/lib/interfaces/requests/getBlockDataRequest.d.ts +12 -0
  208. package/src/lib/interfaces/requests/getBlockDataRequest.d.ts.map +1 -0
  209. package/src/lib/interfaces/{blockStore.js → requests/getBlockDataRequest.js} +1 -1
  210. package/src/lib/interfaces/requests/getBlockDataRequest.js.map +1 -0
  211. package/src/lib/interfaces/requests/index.d.ts +1 -0
  212. package/src/lib/interfaces/requests/index.d.ts.map +1 -1
  213. package/src/lib/routers/api.d.ts +54 -1
  214. package/src/lib/routers/api.d.ts.map +1 -1
  215. package/src/lib/routers/api.js +77 -0
  216. package/src/lib/routers/api.js.map +1 -1
  217. package/src/lib/routers/app.d.ts +22 -14
  218. package/src/lib/routers/app.d.ts.map +1 -1
  219. package/src/lib/routers/app.js +28 -116
  220. package/src/lib/routers/app.js.map +1 -1
  221. package/src/lib/services/blockStore.d.ts +5 -2
  222. package/src/lib/services/blockStore.d.ts.map +1 -1
  223. package/src/lib/services/blockStore.js +4 -0
  224. package/src/lib/services/blockStore.js.map +1 -1
  225. package/src/lib/services/brightpass/auditLogger.d.ts +77 -0
  226. package/src/lib/services/brightpass/auditLogger.d.ts.map +1 -0
  227. package/src/lib/services/brightpass/auditLogger.js +184 -0
  228. package/src/lib/services/brightpass/auditLogger.js.map +1 -0
  229. package/src/lib/services/brightpass/vaultEncryption.d.ts +82 -0
  230. package/src/lib/services/brightpass/vaultEncryption.d.ts.map +1 -0
  231. package/src/lib/services/brightpass/vaultEncryption.js +144 -0
  232. package/src/lib/services/brightpass/vaultEncryption.js.map +1 -0
  233. package/src/lib/services/brightpass.d.ts +294 -0
  234. package/src/lib/services/brightpass.d.ts.map +1 -0
  235. package/src/lib/services/brightpass.js +1260 -0
  236. package/src/lib/services/brightpass.js.map +1 -0
  237. package/src/lib/services/brightpass.property.helpers.d.ts +23 -0
  238. package/src/lib/services/brightpass.property.helpers.d.ts.map +1 -0
  239. package/src/lib/services/brightpass.property.helpers.js +113 -0
  240. package/src/lib/services/brightpass.property.helpers.js.map +1 -0
  241. package/src/lib/services/eventNotificationSystem.d.ts +69 -3
  242. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
  243. package/src/lib/services/eventNotificationSystem.js +200 -0
  244. package/src/lib/services/eventNotificationSystem.js.map +1 -1
  245. package/src/lib/services/expirationScheduler.d.ts +90 -0
  246. package/src/lib/services/expirationScheduler.d.ts.map +1 -0
  247. package/src/lib/services/expirationScheduler.js +131 -0
  248. package/src/lib/services/expirationScheduler.js.map +1 -0
  249. package/src/lib/services/fecUsageExample.d.ts +2 -2
  250. package/src/lib/services/index.d.ts +2 -0
  251. package/src/lib/services/index.d.ts.map +1 -1
  252. package/src/lib/services/index.js +2 -0
  253. package/src/lib/services/index.js.map +1 -1
  254. package/src/lib/services/paginationService.d.ts +18 -0
  255. package/src/lib/services/paginationService.d.ts.map +1 -0
  256. package/src/lib/services/paginationService.js +32 -0
  257. package/src/lib/services/paginationService.js.map +1 -0
  258. package/src/lib/services/presenceService.d.ts +76 -0
  259. package/src/lib/services/presenceService.d.ts.map +1 -0
  260. package/src/lib/services/presenceService.js +143 -0
  261. package/src/lib/services/presenceService.js.map +1 -0
  262. package/src/lib/services/wireConversationPromotion.d.ts +23 -0
  263. package/src/lib/services/wireConversationPromotion.d.ts.map +1 -0
  264. package/src/lib/services/wireConversationPromotion.js +26 -0
  265. package/src/lib/services/wireConversationPromotion.js.map +1 -0
  266. package/src/lib/stores/availabilityAwareBlockStore.d.ts +115 -10
  267. package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -1
  268. package/src/lib/stores/availabilityAwareBlockStore.js +267 -23
  269. package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -1
  270. package/src/lib/stores/diskBlockAsyncStore.d.ts +81 -2
  271. package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
  272. package/src/lib/stores/diskBlockAsyncStore.js +297 -10
  273. package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
  274. package/src/lib/upstream-stubs.d.ts +36 -0
  275. package/src/lib/upstream-stubs.d.ts.map +1 -0
  276. package/src/lib/upstream-stubs.js +43 -0
  277. package/src/lib/upstream-stubs.js.map +1 -0
  278. package/src/lib/utils/communicationValidation.d.ts +44 -0
  279. package/src/lib/utils/communicationValidation.d.ts.map +1 -0
  280. package/src/lib/utils/communicationValidation.js +291 -0
  281. package/src/lib/utils/communicationValidation.js.map +1 -0
  282. package/src/lib/utils/emailValidation.d.ts +19 -0
  283. package/src/lib/utils/emailValidation.d.ts.map +1 -0
  284. package/src/lib/utils/emailValidation.js +232 -0
  285. package/src/lib/utils/emailValidation.js.map +1 -0
  286. package/src/lib/interfaces/blockStore.d.ts +0 -7
  287. package/src/lib/interfaces/blockStore.d.ts.map +0 -1
  288. package/src/lib/interfaces/blockStore.js.map +0 -1
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@brightchain/brightchain-api-lib",
3
- "version": "0.14.0",
3
+ "version": "0.16.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.14.0",
9
- "@digitaldefiance/branded-enum": "^0.0.6",
8
+ "@brightchain/brightchain-lib": "0.16.0",
9
+ "@digitaldefiance/branded-enum": "^0.0.7",
10
10
  "@digitaldefiance/enclave-bridge-client": "^1.1.0",
11
- "@digitaldefiance/i18n-lib": "^4.3.2",
12
- "@digitaldefiance/node-ecies-lib": "^4.17.2",
11
+ "@digitaldefiance/i18n-lib": "^4.6.2",
12
+ "@digitaldefiance/node-ecies-lib": "^4.19.3",
13
13
  "@ethereumjs/wallet": "^10.0.0",
14
14
  "bip39": "^3.1.0",
15
15
  "buffer": "^6.0.3",
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Browser-safe exports from brightchain-api-lib
3
+ *
4
+ * This file exports only the types and constants that are safe to use
5
+ * in browser environments, excluding Node.js-specific implementations.
6
+ */
7
+ export * from './lib/constants';
8
+ export * from './lib/enumerations';
9
+ export * from './lib/errors';
10
+ export type { IApiConstants } from './lib/interfaces/api-constants';
11
+ export type { ClientSession, DefaultBackendIdType, SchemaMap } from './lib/shared-types';
12
+ export * from './lib/browserKeyring';
13
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../brightchain-api-lib/src/browser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAG7B,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGzF,cAAc,sBAAsB,CAAC"}
package/src/browser.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ /**
3
+ * Browser-safe exports from brightchain-api-lib
4
+ *
5
+ * This file exports only the types and constants that are safe to use
6
+ * in browser environments, excluding Node.js-specific implementations.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const tslib_1 = require("tslib");
10
+ // Export only constants and types, no Node.js implementations
11
+ tslib_1.__exportStar(require("./lib/constants"), exports);
12
+ tslib_1.__exportStar(require("./lib/enumerations"), exports);
13
+ tslib_1.__exportStar(require("./lib/errors"), exports);
14
+ // Export browser-safe keyring
15
+ tslib_1.__exportStar(require("./lib/browserKeyring"), exports);
16
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../brightchain-api-lib/src/browser.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,8DAA8D;AAC9D,0DAAgC;AAChC,6DAAmC;AACnC,uDAA6B;AAM7B,8BAA8B;AAC9B,+DAAqC"}
package/src/index.d.ts CHANGED
@@ -3,7 +3,7 @@ export * from './lib/transforms';
3
3
  export * from './lib/services';
4
4
  export * from './lib/appConstants';
5
5
  export * from './lib/application';
6
- export * from './lib/application-base';
6
+ export * from './lib/upstream-stubs';
7
7
  export * from './lib/constants';
8
8
  export * from './lib/controllers';
9
9
  export * from './lib/enumerations';
@@ -14,9 +14,12 @@ export * from './lib/datastore';
14
14
  export * from './lib/middlewares';
15
15
  export * from './lib/routers';
16
16
  export * from './lib/availability';
17
+ export * from './lib/blockFetch';
17
18
  export * from './lib/utils/errorResponse';
18
19
  export * from './lib/utils/type-converters';
19
20
  export type { ClientSession, DefaultBackendIdType, SchemaMap, } from './lib/shared-types';
21
+ export * from './lib/auth';
22
+ export * from './lib/encryption';
20
23
  export * from './lib/browserKeyring';
21
24
  export * from './lib/nodeKeyring';
22
25
  export * from './lib/secureEnclaveKeyring';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../brightchain-api-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAKjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAG9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAE5C,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAG5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../brightchain-api-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAKjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAG9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAE5C,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
package/src/index.js CHANGED
@@ -9,7 +9,7 @@ tslib_1.__exportStar(require("./lib/services"), exports);
9
9
  // API lib exports
10
10
  tslib_1.__exportStar(require("./lib/appConstants"), exports);
11
11
  tslib_1.__exportStar(require("./lib/application"), exports);
12
- tslib_1.__exportStar(require("./lib/application-base"), exports);
12
+ tslib_1.__exportStar(require("./lib/upstream-stubs"), exports);
13
13
  tslib_1.__exportStar(require("./lib/constants"), exports);
14
14
  tslib_1.__exportStar(require("./lib/controllers"), exports);
15
15
  // Note: UserController is exported from controllers/api, not controllers/user (which is the legacy location)
@@ -26,8 +26,13 @@ tslib_1.__exportStar(require("./lib/routers"), exports);
26
26
  // Note: FEC types (ParityData, FecRecoveryResult, IFecService) are re-exported from brightchain-lib
27
27
  // Only export the WASM implementation class with a unique name to avoid conflicts
28
28
  tslib_1.__exportStar(require("./lib/availability"), exports);
29
+ tslib_1.__exportStar(require("./lib/blockFetch"), exports);
29
30
  tslib_1.__exportStar(require("./lib/utils/errorResponse"), exports);
30
31
  tslib_1.__exportStar(require("./lib/utils/type-converters"), exports);
32
+ // Auth exports
33
+ tslib_1.__exportStar(require("./lib/auth"), exports);
34
+ // Encryption exports
35
+ tslib_1.__exportStar(require("./lib/encryption"), exports);
31
36
  // Keyring exports
32
37
  tslib_1.__exportStar(require("./lib/browserKeyring"), exports);
33
38
  tslib_1.__exportStar(require("./lib/nodeKeyring"), exports);
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../brightchain-api-lib/src/index.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,uDAA6B;AAC7B,2DAAiC;AAEjC,mCAAmC;AACnC,yDAA+B;AAE/B,kBAAkB;AAClB,6DAAmC;AACnC,4DAAkC;AAClC,iEAAuC;AACvC,0DAAgC;AAChC,4DAAkC;AAClC,6GAA6G;AAC7G,6DAAmC;AACnC,4DAAkC;AAClC,uDAA6B;AAC7B,2DAAiC;AACjC,iGAAiG;AACjG,+EAA+E;AAC/E,gFAAgF;AAEhF,0DAAgC;AAChC,4DAAkC;AAClC,wDAA8B;AAC9B,oGAAoG;AACpG,kFAAkF;AAClF,6DAAmC;AACnC,oEAA0C;AAC1C,sEAA4C;AAQ5C,kBAAkB;AAClB,+DAAqC;AACrC,4DAAkC;AAClC,qEAA2C;AAC3C,8DAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../brightchain-api-lib/src/index.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,uDAA6B;AAC7B,2DAAiC;AAEjC,mCAAmC;AACnC,yDAA+B;AAE/B,kBAAkB;AAClB,6DAAmC;AACnC,4DAAkC;AAClC,+DAAqC;AACrC,0DAAgC;AAChC,4DAAkC;AAClC,6GAA6G;AAC7G,6DAAmC;AACnC,4DAAkC;AAClC,uDAA6B;AAC7B,2DAAiC;AACjC,iGAAiG;AACjG,+EAA+E;AAC/E,gFAAgF;AAEhF,0DAAgC;AAChC,4DAAkC;AAClC,wDAA8B;AAC9B,oGAAoG;AACpG,kFAAkF;AAClF,6DAAmC;AACnC,2DAAiC;AACjC,oEAA0C;AAC1C,sEAA4C;AAQ5C,eAAe;AACf,qDAA2B;AAE3B,qBAAqB;AACrB,2DAAiC;AAEjC,kBAAkB;AAClB,+DAAqC;AACrC,4DAAkC;AAClC,qEAA2C;AAC3C,8DAAoC"}
@@ -1,40 +1,11 @@
1
- import { PlatformID } from '@digitaldefiance/node-ecies-lib';
2
- import { IApplication, IBaseDocument, IConstants, PluginManager, ServiceContainer } from '@digitaldefiance/node-express-suite';
3
- import { DocumentStore } from './datastore/document-store';
4
- import { Environment } from './environment';
5
- import type { DefaultBackendIdType } from './shared-types';
6
1
  /**
7
- * Base Application class with core functionality
2
+ * @deprecated This file is no longer used.
3
+ *
4
+ * The local BaseApplication class has been removed as part of the upstream
5
+ * Application refactor. BrightChain's App<TID> now extends the upstream
6
+ * Application from @digitaldefiance/node-express-suite directly, and
7
+ * manages DocumentStore/BlockDocumentStore internally.
8
+ *
9
+ * See: brightchain-api-lib/src/lib/application.ts
8
10
  */
9
- export declare class BaseApplication<TID extends PlatformID = DefaultBackendIdType> implements IApplication<TID> {
10
- private _environment;
11
- get environment(): Environment<TID>;
12
- get constants(): IConstants;
13
- get db(): any;
14
- private _services;
15
- get services(): ServiceContainer;
16
- private _plugins;
17
- get plugins(): PluginManager<TID>;
18
- getModel<U extends IBaseDocument<any, any>>(modelName: string): U;
19
- reloadEnvironment(path?: string, override?: boolean): void;
20
- static get distDir(): string;
21
- /**
22
- * Flag indicating whether the application is ready to handle requests
23
- */
24
- protected _ready: boolean;
25
- /**
26
- * Get whether the application is ready to handle requests
27
- */
28
- get ready(): boolean;
29
- constructor(environment: Environment<TID>, documentStore?: DocumentStore);
30
- private readonly documentStore;
31
- /**
32
- * Start the application and connect to the database
33
- */
34
- start(delayReady?: boolean): Promise<void>;
35
- /**
36
- * Stop the application
37
- */
38
- stop(): Promise<void>;
39
- }
40
11
  //# sourceMappingURL=application-base.d.ts.map
@@ -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,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
+ {"version":3,"file":"application-base.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -1,84 +1,12 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseApplication = void 0;
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
- const brightchain_lib_1 = require("@brightchain/brightchain-lib");
6
- const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
7
- const path_1 = require("path");
8
- const appConstants_1 = require("./appConstants");
9
- const block_document_store_1 = require("./datastore/block-document-store");
10
- const environment_1 = require("./environment");
11
2
  /**
12
- * Base Application class with core functionality
3
+ * @deprecated This file is no longer used.
4
+ *
5
+ * The local BaseApplication class has been removed as part of the upstream
6
+ * Application refactor. BrightChain's App<TID> now extends the upstream
7
+ * Application from @digitaldefiance/node-express-suite directly, and
8
+ * manages DocumentStore/BlockDocumentStore internally.
9
+ *
10
+ * See: brightchain-api-lib/src/lib/application.ts
13
11
  */
14
- class BaseApplication {
15
- get environment() {
16
- return this._environment;
17
- }
18
- get constants() {
19
- return appConstants_1.AppConstants;
20
- }
21
- get db() {
22
- return this.documentStore;
23
- }
24
- get services() {
25
- if (!this._services) {
26
- this._services = new node_express_suite_1.ServiceContainer();
27
- }
28
- return this._services;
29
- }
30
- get plugins() {
31
- if (!this._plugins) {
32
- this._plugins = new node_express_suite_1.PluginManager();
33
- }
34
- return this._plugins;
35
- }
36
- getModel(modelName) {
37
- // Get a collection from the in-memory document store
38
- const collection = this.documentStore.collection(modelName);
39
- return collection;
40
- }
41
- reloadEnvironment(path, override = true) {
42
- this._environment = new environment_1.Environment(path, false, override);
43
- }
44
- static get distDir() {
45
- const cwd = process.cwd();
46
- const distPath = (0, path_1.join)(cwd, 'dist');
47
- return distPath;
48
- }
49
- /**
50
- * Get whether the application is ready to handle requests
51
- */
52
- get ready() {
53
- return this._ready;
54
- }
55
- constructor(environment, documentStore) {
56
- this._ready = false;
57
- this._environment = environment;
58
- this.documentStore =
59
- documentStore ??
60
- new block_document_store_1.BlockDocumentStore(new brightchain_lib_1.MemoryBlockStore(brightchain_lib_1.BlockSize.Small));
61
- }
62
- /**
63
- * Start the application and connect to the database
64
- */
65
- async start(delayReady) {
66
- if (this._ready) {
67
- console.error('Failed to start the application:', 'Application is already running');
68
- const err = new Error('Application is already running');
69
- if (process.env['NODE_ENV'] === 'test') {
70
- throw err;
71
- }
72
- process.exit(1);
73
- }
74
- this._ready = delayReady ? false : true;
75
- }
76
- /**
77
- * Stop the application
78
- */
79
- async stop() {
80
- this._ready = false;
81
- }
82
- }
83
- exports.BaseApplication = BaseApplication;
84
12
  //# sourceMappingURL=application-base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"application-base.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application-base.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,kEAA2E;AAE3E,4EAM6C;AAC7C,+BAA4B;AAC5B,iDAA8C;AAC9C,2EAAsE;AAEtE,+CAA4C;AAG5C;;GAEG;AACH,MAAa,eAAe;IAI1B,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,2BAAY,CAAC;IACtB,CAAC;IAED,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAGD,IAAW,QAAQ;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,qCAAgB,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAGD,IAAW,OAAO;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,kCAAa,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,QAAQ,CAAoC,SAAiB;QAClE,qDAAqD;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC5D,OAAO,UAA0B,CAAC;IACpC,CAAC;IAEM,iBAAiB,CAAC,IAAa,EAAE,QAAQ,GAAG,IAAI;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,yBAAW,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM,KAAK,OAAO;QACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAOD;;OAEG;IACH,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,YAAY,WAA6B,EAAE,aAA6B;QACtE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,aAAa;YAChB,aAAa;gBACb,IAAI,yCAAkB,CAAC,IAAI,kCAAgB,CAAC,2BAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IAID;;OAEG;IACI,KAAK,CAAC,KAAK,CAAC,UAAoB;QACrC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CACX,kCAAkC,EAClC,gCAAgC,CACjC,CAAC;YACF,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACxD,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;QACD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;CACF;AA9FD,0CA8FC"}
1
+ {"version":3,"file":"application-base.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application-base.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG"}
@@ -1,26 +1,56 @@
1
1
  import { IAvailabilityService, IDiscoveryProtocol, IReconciliationService } from '@brightchain/brightchain-lib';
2
2
  import { PlatformID } from '@digitaldefiance/node-ecies-lib';
3
- import { Application } from 'express';
4
- import { BaseApplication } from './application-base';
3
+ import { IConstants, Application as UpstreamApplication } from '@digitaldefiance/node-express-suite';
4
+ import { DocumentCollection, DocumentRecord, DocumentStore } from './datastore/document-store';
5
5
  import { Environment } from './environment';
6
+ import { IBrightChainInitResult } from './interfaces/brightchain-init-result';
6
7
  import { ApiRouter } from './routers/api';
8
+ import { AppRouter } from './routers/app';
7
9
  import { EventNotificationSystem } from './services/eventNotificationSystem';
8
10
  import { MessagePassingService } from './services/messagePassingService';
9
11
  import { WebSocketMessageServer } from './services/webSocketMessageServer';
10
12
  /**
11
- * Application class
13
+ * Application class for BrightChain.
14
+ *
15
+ * Extends the upstream Application from @digitaldefiance/node-express-suite,
16
+ * inheriting HTTP/HTTPS server lifecycle, greenlock/Let's Encrypt support,
17
+ * middleware initialization, and graceful shutdown.
18
+ *
19
+ * BrightChain-specific concerns (services, WebSocket, UPnP, EventNotificationSystem)
20
+ * are initialized after the upstream start() completes.
21
+ *
22
+ * Mongoose-related upstream parameters are satisfied with no-op stubs since
23
+ * BrightChain uses DocumentStore/BlockDocumentStore instead.
12
24
  */
13
- export declare class App<TID extends PlatformID> extends BaseApplication<TID> {
14
- readonly expressApp: Application;
15
- private server;
25
+ export declare class App<TID extends PlatformID> extends UpstreamApplication<IBrightChainInitResult<TID>, Record<string, never>, TID, Environment<TID>, IConstants, AppRouter<TID>> {
16
26
  private controllers;
17
27
  private readonly keyStorage;
28
+ private readonly _brightchainDocumentStore;
18
29
  private apiRouter;
19
30
  private eventSystem;
20
31
  private wsServer;
21
32
  private messagePassingService;
33
+ private upnpManager;
34
+ /**
35
+ * Captured HTTP server reference for WebSocket attachment.
36
+ * The upstream Application stores the server as a private field,
37
+ * so we intercept expressApp.listen() to capture it here.
38
+ */
39
+ private _httpServer;
22
40
  constructor(environment: Environment<TID>);
23
- start(): Promise<void>;
41
+ /**
42
+ * Get the BrightChain document store.
43
+ * Overrides the upstream mongoose-based `db` getter since BrightChain
44
+ * uses its own BlockDocumentStore instead of mongoose.
45
+ */
46
+ get db(): DocumentStore;
47
+ /**
48
+ * Get a collection from the BrightChain document store by name.
49
+ * Overrides the upstream mongoose-based `getModel()` to delegate
50
+ * to the BlockDocumentStore's collection() method.
51
+ */
52
+ getModel<U extends DocumentRecord>(modelName: string): DocumentCollection<U>;
53
+ start(mongoUri?: string): Promise<void>;
24
54
  stop(): Promise<void>;
25
55
  getController<T = unknown>(name: string): T;
26
56
  setController(name: string, controller: unknown): void;
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EAEvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAGL,UAAU,EAEV,WAAW,IAAI,mBAAmB,EACnC,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAO3E;;;;;;;;;;;;GAYG;AACH,qBAAa,GAAG,CAAC,GAAG,SAAS,UAAU,CAAE,SAAQ,mBAAmB,CAClE,sBAAsB,CAAC,GAAG,CAAC,EAC3B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,GAAG,EACH,WAAW,CAAC,GAAG,CAAC,EAChB,UAAU,EACV,SAAS,CAAC,GAAG,CAAC,CACf;IACC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAgB;IAC1D,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,WAAW,CAA4B;IAE/C;;;;OAIG;IACH,OAAO,CAAC,WAAW,CAAuB;gBAE9B,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;IA2BzC;;;;OAIG;IAEH,IAAoB,EAAE,IAAI,aAAa,CAEtC;IAED;;;;OAIG;IAEa,QAAQ,CAAC,CAAC,SAAS,cAAc,EAC/C,SAAS,EAAE,MAAM,GAChB,kBAAkB,CAAC,CAAC,CAAC;IAIF,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8FvC,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;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"}
@@ -1,17 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.App = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const brightchain_lib_1 = require("@brightchain/brightchain-lib");
6
- const i18n_lib_1 = require("@digitaldefiance/i18n-lib");
7
5
  const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
8
- const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
9
- /* eslint-disable @typescript-eslint/no-explicit-any */
10
- const express_1 = tslib_1.__importDefault(require("express"));
11
- const fs_1 = require("fs");
12
- const https_1 = require("https");
13
- const path_1 = require("path");
14
- const application_base_1 = require("./application-base");
6
+ const appConstants_1 = require("./appConstants");
15
7
  const block_document_store_factory_1 = require("./datastore/block-document-store-factory");
16
8
  const blockStoreFactory_1 = require("./factories/blockStoreFactory");
17
9
  const middlewares_1 = require("./middlewares");
@@ -20,114 +12,149 @@ const app_1 = require("./routers/app");
20
12
  const services_1 = require("./services");
21
13
  const eventNotificationSystem_1 = require("./services/eventNotificationSystem");
22
14
  const webSocketMessageServer_1 = require("./services/webSocketMessageServer");
15
+ const upstream_stubs_1 = require("./upstream-stubs");
23
16
  /**
24
- * Application class
17
+ * Application class for BrightChain.
18
+ *
19
+ * Extends the upstream Application from @digitaldefiance/node-express-suite,
20
+ * inheriting HTTP/HTTPS server lifecycle, greenlock/Let's Encrypt support,
21
+ * middleware initialization, and graceful shutdown.
22
+ *
23
+ * BrightChain-specific concerns (services, WebSocket, UPnP, EventNotificationSystem)
24
+ * are initialized after the upstream start() completes.
25
+ *
26
+ * Mongoose-related upstream parameters are satisfied with no-op stubs since
27
+ * BrightChain uses DocumentStore/BlockDocumentStore instead.
25
28
  */
26
- class App extends application_base_1.BaseApplication {
29
+ class App extends node_express_suite_1.Application {
27
30
  constructor(environment) {
28
- super(environment, (0, block_document_store_factory_1.createBlockDocumentStore)({
29
- storePath: environment.blockStorePath,
30
- blockSize: environment.blockStoreBlockSize,
31
- useMemory: environment.useMemoryDocumentStore,
32
- }));
33
- this.server = null;
31
+ super(environment,
32
+ // apiRouterFactory — creates BrightChain's ApiRouter
33
+ // @ts-expect-error — App overrides db/getModel with DocumentStore types; runtime-compatible
34
+ (app) => new api_1.ApiRouter(app),
35
+ // schemaMapFactory — no-op, returns empty object (no mongoose models)
36
+ upstream_stubs_1.noOpSchemaMapFactory,
37
+ // databaseInitFunction — no-op, returns { success: true }
38
+ upstream_stubs_1.noOpDatabaseInitFunction,
39
+ // initResultHashFunction — no-op, returns 'no-mongoose'
40
+ upstream_stubs_1.noOpInitResultHashFunction,
41
+ // cspConfig — undefined; BrightChain's Middlewares.init handles CSP
42
+ undefined,
43
+ // constants
44
+ appConstants_1.AppConstants,
45
+ // appRouterFactory — creates BrightChain's AppRouter wrapping the ApiRouter
46
+ (apiRouter) => new app_1.AppRouter(apiRouter),
47
+ // customInitMiddleware — wrap Middlewares.init to match upstream signature
48
+ (app) => middlewares_1.Middlewares.init(app));
34
49
  this.controllers = new Map();
35
50
  this.apiRouter = null;
36
51
  this.eventSystem = null;
37
52
  this.wsServer = null;
38
53
  this.messagePassingService = null;
39
- this.expressApp = (0, express_1.default)();
40
- this.server = null;
54
+ this.upnpManager = null;
55
+ /**
56
+ * Captured HTTP server reference for WebSocket attachment.
57
+ * The upstream Application stores the server as a private field,
58
+ * so we intercept expressApp.listen() to capture it here.
59
+ */
60
+ this._httpServer = null;
41
61
  this.keyStorage = services_1.SecureKeyStorage.getInstance();
62
+ this._brightchainDocumentStore = (0, block_document_store_factory_1.createBlockDocumentStore)({
63
+ useMemory: true,
64
+ });
42
65
  }
43
- async start() {
44
- await super.start(true);
66
+ /**
67
+ * Get the BrightChain document store.
68
+ * Overrides the upstream mongoose-based `db` getter since BrightChain
69
+ * uses its own BlockDocumentStore instead of mongoose.
70
+ */
71
+ // @ts-expect-error — intentional override: BrightChain uses DocumentStore, not mongoose
72
+ get db() {
73
+ return this._brightchainDocumentStore;
74
+ }
75
+ /**
76
+ * Get a collection from the BrightChain document store by name.
77
+ * Overrides the upstream mongoose-based `getModel()` to delegate
78
+ * to the BlockDocumentStore's collection() method.
79
+ */
80
+ // @ts-expect-error — intentional override: returns DocumentCollection, not mongoose Model
81
+ getModel(modelName) {
82
+ return this._brightchainDocumentStore.collection(modelName);
83
+ }
84
+ async start(mongoUri) {
85
+ // Intercept expressApp.listen to capture the HTTP server reference.
86
+ // The upstream Application creates the server internally via expressApp.listen(),
87
+ // but stores it in a private field we cannot access from a subclass.
88
+ const originalListen = this.expressApp.listen.bind(this.expressApp);
89
+ this.expressApp.listen = ((...args) => {
90
+ const server = originalListen(...args);
91
+ this._httpServer = server;
92
+ return server;
93
+ });
94
+ // Delegate to upstream — handles: middleware init, router setup, error handler,
95
+ // HTTP server on :port, greenlock/HTTPS on :443, dev-HTTPS, _ready = true
96
+ // Pass undefined to skip mongoose connection.
97
+ await super.start(mongoUri);
98
+ // Restore original listen to avoid side effects on subsequent calls
99
+ this.expressApp.listen = originalListen;
100
+ // ── BrightChain-specific initialization ──────────────────────────
101
+ await this.keyStorage.initializeFromEnvironment();
102
+ // Initialize core services
103
+ const blockStore = blockStoreFactory_1.BlockStoreFactory.createMemoryStore({
104
+ blockSize: brightchain_lib_1.BlockSize.Small,
105
+ });
106
+ const memberStore = new brightchain_lib_1.MemberStore(blockStore);
107
+ const energyStore = new brightchain_lib_1.EnergyAccountStore();
108
+ const energyLedger = new brightchain_lib_1.EnergyLedger();
109
+ // @ts-expect-error — App overrides db/getModel with DocumentStore types; runtime-compatible
110
+ const emailService = new services_1.EmailService(this);
111
+ const authService = new services_1.AuthService(
112
+ // @ts-expect-error — App overrides db/getModel with DocumentStore types; runtime-compatible
113
+ this, memberStore, energyStore, emailService, this.environment.jwtSecret);
114
+ // Register services in the upstream ServiceContainer
115
+ this.services.register('memberStore', () => memberStore);
116
+ this.services.register('energyStore', () => energyStore);
117
+ this.services.register('energyLedger', () => energyLedger);
118
+ this.services.register('emailService', () => emailService);
119
+ this.services.register('auth', () => authService);
120
+ // EventNotificationSystem for WebSocket events
121
+ this.eventSystem = new eventNotificationSystem_1.EventNotificationSystem();
122
+ this.services.register('eventSystem', () => this.eventSystem);
123
+ // WebSocket — attach to the captured HTTP server
124
+ if (this._httpServer) {
125
+ this.wsServer = new webSocketMessageServer_1.WebSocketMessageServer(this._httpServer, false);
126
+ this.services.register('wsServer', () => this.wsServer);
127
+ (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] WebSocket server initialized');
128
+ }
129
+ // Wire EventNotificationSystem to SyncController via the apiRouter
130
+ if (this.apiRouter) {
131
+ this.apiRouter.setSyncEventSystem(this.eventSystem);
132
+ }
133
+ // UPnP port mapping (non-fatal on failure)
45
134
  try {
46
- if (this._ready) {
47
- console.error('Failed to start the application:', 'Application is already running');
48
- process.exit(1);
135
+ if (this.environment.upnp?.enabled) {
136
+ this.upnpManager = new node_express_suite_1.UpnpManager(this.environment.upnp);
137
+ await this.upnpManager.initialize();
138
+ this.services.register('upnpManager', () => this.upnpManager);
139
+ (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] UPnP port mapping initialized');
49
140
  }
50
- await this.keyStorage.initializeFromEnvironment();
51
- // Initialize services
52
- const blockStore = blockStoreFactory_1.BlockStoreFactory.createMemoryStore({
53
- blockSize: brightchain_lib_1.BlockSize.Small,
54
- });
55
- const memberStore = new brightchain_lib_1.MemberStore(blockStore);
56
- const energyStore = new brightchain_lib_1.EnergyAccountStore();
57
- const energyLedger = new brightchain_lib_1.EnergyLedger();
58
- const emailService = new services_1.EmailService(this);
59
- const authService = new services_1.AuthService(this, memberStore, energyStore, emailService, this.environment.jwtSecret);
60
- // Register services
61
- this.services.register('memberStore', () => memberStore);
62
- this.services.register('energyStore', () => energyStore);
63
- this.services.register('energyLedger', () => energyLedger);
64
- this.services.register('emailService', () => emailService);
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);
70
- middlewares_1.Middlewares.init(this.expressApp);
71
- const apiRouter = new api_1.ApiRouter(this);
72
- this.apiRouter = apiRouter;
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);
77
- appRouter.init(this.expressApp);
78
- this.expressApp.use((err, req, res, next) => {
79
- const handleableError = err instanceof i18n_lib_1.HandleableError
80
- ? err
81
- : new i18n_lib_1.HandleableError(new Error(err.message ||
82
- (0, brightchain_lib_1.translate)(brightchain_lib_1.BrightChainStrings.Error_Unexpected_Error)), { cause: err });
83
- (0, node_express_suite_1.handleError)(handleableError, res, node_express_suite_1.sendApiMessageResponse, next);
84
- });
85
- const serversReady = [];
86
- serversReady.push(new Promise((resolve) => {
87
- this.server = this.expressApp.listen(this.environment.port, this.environment.host, () => {
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
- }
96
- resolve();
97
- });
98
- }));
99
- if (this.environment.httpsDevCertRoot) {
100
- try {
101
- const certPath = (0, path_1.resolve)(this.environment.httpsDevCertRoot + '.pem');
102
- const keyPath = (0, path_1.resolve)(this.environment.httpsDevCertRoot + '-key.pem');
103
- const options = {
104
- key: (0, fs_1.readFileSync)(keyPath),
105
- cert: (0, fs_1.readFileSync)(certPath),
106
- };
107
- serversReady.push(new Promise((resolve) => {
108
- (0, https_1.createServer)(options, this.expressApp).listen(this.environment.httpsDevPort, () => {
109
- console.log(`[ ${(0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_Ready)} ] https://${this.environment.host}:${this.environment.httpsDevPort}`);
110
- resolve();
111
- });
112
- }));
113
- }
114
- catch (err) {
115
- console.error('Failed to start HTTPS server:', err);
116
- }
141
+ else {
142
+ (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ info ] UPnP port mapping disabled');
117
143
  }
118
- await Promise.all(serversReady);
119
- this._ready = true;
120
144
  }
121
- catch (err) {
122
- console.error('Failed to start the application:', err);
123
- if (process.env['NODE_ENV'] === 'test') {
124
- throw err;
125
- }
126
- process.exit(1);
145
+ catch (upnpErr) {
146
+ console.warn('[ warning ] UPnP initialization failed, continuing without port mapping:', upnpErr);
127
147
  }
128
148
  }
129
149
  async stop() {
130
- // Close WebSocket server first
150
+ // BrightChain-specific cleanup first, then delegate to upstream
151
+ // Shutdown UPnP port mappings
152
+ if (this.upnpManager) {
153
+ (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] UPnP port mapping');
154
+ await this.upnpManager.shutdown();
155
+ this.upnpManager = null;
156
+ }
157
+ // Close WebSocket server
131
158
  if (this.wsServer) {
132
159
  (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] WebSocket server');
133
160
  await new Promise((resolve) => {
@@ -135,28 +162,13 @@ class App extends application_base_1.BaseApplication {
135
162
  });
136
163
  this.wsServer = null;
137
164
  }
138
- if (this.server) {
139
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] Application server');
140
- await new Promise((resolve, reject) => {
141
- this.server.closeAllConnections?.();
142
- this.server.close((err) => {
143
- if (err) {
144
- reject(err);
145
- }
146
- else {
147
- resolve();
148
- }
149
- });
150
- });
151
- this.server = null;
152
- }
153
- // Clean up other services
165
+ // Clean up BrightChain services
154
166
  this.eventSystem = null;
155
167
  this.messagePassingService = null;
156
168
  this.apiRouter = null;
169
+ this._httpServer = null;
170
+ // Upstream handles: greenlockManager.stop(), server.close(), db disconnect, _ready = false
157
171
  await super.stop();
158
- this._ready = false;
159
- (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopped ] Application server and database connections');
160
172
  }
161
173
  getController(name) {
162
174
  return this.controllers.get(name);