@brightchain/brightchain-api-lib 0.16.0 → 0.17.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.
- package/package.json +4 -4
- package/src/browser.d.ts +1 -1
- package/src/browser.d.ts.map +1 -1
- package/src/browser.js.map +1 -1
- package/src/index.d.ts +5 -1
- package/src/index.d.ts.map +1 -1
- package/src/index.js +7 -1
- package/src/index.js.map +1 -1
- package/src/lib/adapters/brightChainDbDocumentStoreAdapter.d.ts +24 -0
- package/src/lib/adapters/brightChainDbDocumentStoreAdapter.d.ts.map +1 -0
- package/src/lib/adapters/brightChainDbDocumentStoreAdapter.js +53 -0
- package/src/lib/adapters/brightChainDbDocumentStoreAdapter.js.map +1 -0
- package/src/lib/application.d.ts +20 -0
- package/src/lib/application.d.ts.map +1 -1
- package/src/lib/application.js +59 -13
- package/src/lib/application.js.map +1 -1
- package/src/lib/availability/gossipService.d.ts +20 -1
- package/src/lib/availability/gossipService.d.ts.map +1 -1
- package/src/lib/availability/gossipService.js +59 -0
- package/src/lib/availability/gossipService.js.map +1 -1
- package/src/lib/availability/index.d.ts +1 -0
- package/src/lib/availability/index.d.ts.map +1 -1
- package/src/lib/availability/index.js +1 -0
- package/src/lib/availability/index.js.map +1 -1
- package/src/lib/availability/poolDiscoveryService.d.ts +117 -0
- package/src/lib/availability/poolDiscoveryService.d.ts.map +1 -0
- package/src/lib/availability/poolDiscoveryService.js +218 -0
- package/src/lib/availability/poolDiscoveryService.js.map +1 -0
- package/src/lib/blockFetch/httpBlockFetchTransport.d.ts.map +1 -1
- package/src/lib/blockFetch/httpBlockFetchTransport.js.map +1 -1
- package/src/lib/controllers/api/blocks.d.ts.map +1 -1
- package/src/lib/controllers/api/blocks.js.map +1 -1
- package/src/lib/controllers/api/brightpass.d.ts.map +1 -1
- package/src/lib/controllers/api/brightpass.js +4 -8
- package/src/lib/controllers/api/brightpass.js.map +1 -1
- package/src/lib/controllers/api/energy.d.ts.map +1 -1
- package/src/lib/controllers/api/energy.js.map +1 -1
- package/src/lib/controllers/api/health.d.ts +4 -4
- package/src/lib/controllers/api/health.d.ts.map +1 -1
- package/src/lib/controllers/api/health.js.map +1 -1
- package/src/lib/controllers/api/i18n.d.ts.map +1 -1
- package/src/lib/controllers/api/i18n.js.map +1 -1
- package/src/lib/controllers/api/index.d.ts +1 -0
- package/src/lib/controllers/api/index.d.ts.map +1 -1
- package/src/lib/controllers/api/index.js +1 -0
- package/src/lib/controllers/api/index.js.map +1 -1
- package/src/lib/controllers/api/introspection.d.ts +60 -0
- package/src/lib/controllers/api/introspection.d.ts.map +1 -0
- package/src/lib/controllers/api/introspection.js +375 -0
- package/src/lib/controllers/api/introspection.js.map +1 -0
- package/src/lib/controllers/api/nodes.d.ts +7 -6
- package/src/lib/controllers/api/nodes.d.ts.map +1 -1
- package/src/lib/controllers/api/nodes.js.map +1 -1
- package/src/lib/controllers/api/quorum.d.ts.map +1 -1
- package/src/lib/controllers/api/quorum.js.map +1 -1
- package/src/lib/controllers/api/sessions.d.ts.map +1 -1
- package/src/lib/controllers/api/sessions.js.map +1 -1
- package/src/lib/controllers/api/sync.d.ts +6 -5
- package/src/lib/controllers/api/sync.d.ts.map +1 -1
- package/src/lib/controllers/api/sync.js.map +1 -1
- package/src/lib/controllers/api/user.d.ts.map +1 -1
- package/src/lib/controllers/api/user.js +130 -50
- package/src/lib/controllers/api/user.js.map +1 -1
- package/src/lib/controllers/base.d.ts +1 -2
- package/src/lib/controllers/base.d.ts.map +1 -1
- package/src/lib/controllers/base.js +0 -1
- package/src/lib/controllers/base.js.map +1 -1
- package/src/lib/databaseInit.d.ts +28 -0
- package/src/lib/databaseInit.d.ts.map +1 -0
- package/src/lib/databaseInit.js +107 -0
- package/src/lib/databaseInit.js.map +1 -0
- package/src/lib/enumerations/brightChainApiStrings.d.ts +4 -0
- package/src/lib/enumerations/brightChainApiStrings.d.ts.map +1 -1
- package/src/lib/enumerations/brightChainApiStrings.js +4 -0
- package/src/lib/enumerations/brightChainApiStrings.js.map +1 -1
- package/src/lib/enumerations/index.d.ts +1 -0
- package/src/lib/enumerations/index.d.ts.map +1 -1
- package/src/lib/enumerations/index.js +1 -0
- package/src/lib/enumerations/index.js.map +1 -1
- package/src/lib/enumerations/websocketMessageType.d.ts +5 -1
- package/src/lib/enumerations/websocketMessageType.d.ts.map +1 -1
- package/src/lib/enumerations/websocketMessageType.js +4 -0
- package/src/lib/enumerations/websocketMessageType.js.map +1 -1
- package/src/lib/environment.d.ts +5 -0
- package/src/lib/environment.d.ts.map +1 -1
- package/src/lib/environment.js +7 -0
- package/src/lib/environment.js.map +1 -1
- package/src/lib/errors/index.d.ts +1 -0
- package/src/lib/errors/index.d.ts.map +1 -1
- package/src/lib/errors/index.js +1 -0
- package/src/lib/errors/index.js.map +1 -1
- package/src/lib/errors/memberIndexSchemaValidationError.d.ts +6 -0
- package/src/lib/errors/memberIndexSchemaValidationError.d.ts.map +1 -0
- package/src/lib/errors/memberIndexSchemaValidationError.js +15 -0
- package/src/lib/errors/memberIndexSchemaValidationError.js.map +1 -0
- package/src/lib/factories/blockStoreFactory.d.ts +2 -13
- package/src/lib/factories/blockStoreFactory.d.ts.map +1 -1
- package/src/lib/factories/blockStoreFactory.js +5 -10
- package/src/lib/factories/blockStoreFactory.js.map +1 -1
- package/src/lib/interfaces/blocksHandlers.d.ts +3 -3
- package/src/lib/interfaces/blocksHandlers.d.ts.map +1 -1
- package/src/lib/interfaces/cblHandlers.d.ts +3 -2
- package/src/lib/interfaces/cblHandlers.d.ts.map +1 -1
- package/src/lib/interfaces/environment.d.ts +4 -0
- package/src/lib/interfaces/environment.d.ts.map +1 -1
- package/src/lib/interfaces/index.d.ts +5 -1
- package/src/lib/interfaces/index.d.ts.map +1 -1
- package/src/lib/interfaces/introspectionApiResponses.d.ts +66 -0
- package/src/lib/interfaces/introspectionApiResponses.d.ts.map +1 -0
- package/src/lib/interfaces/introspectionApiResponses.js +3 -0
- package/src/lib/interfaces/introspectionApiResponses.js.map +1 -0
- package/src/lib/interfaces/members-handlers.d.ts +11 -0
- package/src/lib/interfaces/members-handlers.d.ts.map +1 -0
- package/src/lib/interfaces/members-handlers.js +3 -0
- package/src/lib/interfaces/members-handlers.js.map +1 -0
- package/src/lib/interfaces/responses/api-backup-codes-response.d.ts +2 -5
- package/src/lib/interfaces/responses/api-backup-codes-response.d.ts.map +1 -1
- package/src/lib/interfaces/responses/api-challenge-response.d.ts +2 -5
- package/src/lib/interfaces/responses/api-challenge-response.d.ts.map +1 -1
- package/src/lib/interfaces/responses/api-code-count-response.d.ts +2 -5
- package/src/lib/interfaces/responses/api-code-count-response.d.ts.map +1 -1
- package/src/lib/interfaces/responses/api-detailed-health-response.d.ts +5 -0
- package/src/lib/interfaces/responses/api-detailed-health-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-detailed-health-response.js +3 -0
- package/src/lib/interfaces/responses/api-detailed-health-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-discover-block-response.d.ts +5 -0
- package/src/lib/interfaces/responses/api-discover-block-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-discover-block-response.js +3 -0
- package/src/lib/interfaces/responses/api-discover-block-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-error.d.ts +5 -0
- package/src/lib/interfaces/responses/api-error.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-error.js +3 -0
- package/src/lib/interfaces/responses/api-error.js.map +1 -0
- package/src/lib/interfaces/responses/api-express-validation-error.d.ts +7 -0
- package/src/lib/interfaces/responses/api-express-validation-error.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-express-validation-error.js +3 -0
- package/src/lib/interfaces/responses/api-express-validation-error.js.map +1 -0
- package/src/lib/interfaces/responses/api-get-block-response.d.ts +5 -0
- package/src/lib/interfaces/responses/api-get-block-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-get-block-response.js +3 -0
- package/src/lib/interfaces/responses/api-get-block-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-get-node-response.d.ts +5 -0
- package/src/lib/interfaces/responses/api-get-node-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-get-node-response.js +3 -0
- package/src/lib/interfaces/responses/api-get-node-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-health-response.d.ts +5 -0
- package/src/lib/interfaces/responses/api-health-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-health-response.js +3 -0
- package/src/lib/interfaces/responses/api-health-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-list-nodes-response.d.ts +5 -0
- package/src/lib/interfaces/responses/api-list-nodes-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-list-nodes-response.js +3 -0
- package/src/lib/interfaces/responses/api-list-nodes-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-login-response.d.ts +2 -14
- package/src/lib/interfaces/responses/api-login-response.d.ts.map +1 -1
- package/src/lib/interfaces/responses/api-members-response.d.ts +8 -0
- package/src/lib/interfaces/responses/api-members-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-members-response.js +3 -0
- package/src/lib/interfaces/responses/api-members-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-mnemonic-response.d.ts +2 -5
- package/src/lib/interfaces/responses/api-mnemonic-response.d.ts.map +1 -1
- package/src/lib/interfaces/responses/api-reconcile-response.d.ts +5 -0
- package/src/lib/interfaces/responses/api-reconcile-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-reconcile-response.js +3 -0
- package/src/lib/interfaces/responses/api-reconcile-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-register-node-response.d.ts +5 -0
- package/src/lib/interfaces/responses/api-register-node-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-register-node-response.js +3 -0
- package/src/lib/interfaces/responses/api-register-node-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-registration-response.d.ts +2 -10
- package/src/lib/interfaces/responses/api-registration-response.d.ts.map +1 -1
- package/src/lib/interfaces/responses/api-replicate-block-response.d.ts +5 -0
- package/src/lib/interfaces/responses/api-replicate-block-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-replicate-block-response.js +3 -0
- package/src/lib/interfaces/responses/api-replicate-block-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-request-user-response.d.ts +2 -6
- package/src/lib/interfaces/responses/api-request-user-response.d.ts.map +1 -1
- package/src/lib/interfaces/responses/api-status-code-response.d.ts +7 -0
- package/src/lib/interfaces/responses/api-status-code-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-status-code-response.js +3 -0
- package/src/lib/interfaces/responses/api-status-code-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-store-block-response.d.ts +5 -0
- package/src/lib/interfaces/responses/api-store-block-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-store-block-response.js +3 -0
- package/src/lib/interfaces/responses/api-store-block-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-store-cbl-response.d.ts +5 -0
- package/src/lib/interfaces/responses/api-store-cbl-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-store-cbl-response.js +3 -0
- package/src/lib/interfaces/responses/api-store-cbl-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-sync-request-response.d.ts +5 -0
- package/src/lib/interfaces/responses/api-sync-request-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-sync-request-response.js +3 -0
- package/src/lib/interfaces/responses/api-sync-request-response.js.map +1 -0
- package/src/lib/interfaces/responses/block-data-response.d.ts +11 -0
- package/src/lib/interfaces/responses/block-data-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/block-data-response.js +3 -0
- package/src/lib/interfaces/responses/block-data-response.js.map +1 -0
- package/src/lib/interfaces/responses/block-location-response.d.ts +11 -0
- package/src/lib/interfaces/responses/block-location-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/block-location-response.js +3 -0
- package/src/lib/interfaces/responses/block-location-response.js.map +1 -0
- package/src/lib/interfaces/responses/index.d.ts +18 -0
- package/src/lib/interfaces/responses/index.d.ts.map +1 -1
- package/src/lib/interfaces/status-code-response.d.ts +1 -6
- package/src/lib/interfaces/status-code-response.d.ts.map +1 -1
- package/src/lib/interfaces/storage/client-session.d.ts +8 -0
- package/src/lib/interfaces/storage/client-session.d.ts.map +1 -0
- package/src/lib/interfaces/storage/client-session.js +3 -0
- package/src/lib/interfaces/storage/client-session.js.map +1 -0
- package/src/lib/interfaces/storage/collection.d.ts +9 -0
- package/src/lib/interfaces/storage/collection.d.ts.map +1 -0
- package/src/lib/interfaces/storage/collection.js +3 -0
- package/src/lib/interfaces/storage/collection.js.map +1 -0
- package/src/lib/interfaces/storage/database-lifecycle-hooks.d.ts +8 -0
- package/src/lib/interfaces/storage/database-lifecycle-hooks.d.ts.map +1 -0
- package/src/lib/interfaces/storage/database-lifecycle-hooks.js +3 -0
- package/src/lib/interfaces/storage/database-lifecycle-hooks.js.map +1 -0
- package/src/lib/interfaces/storage/database.d.ts +9 -0
- package/src/lib/interfaces/storage/database.d.ts.map +1 -0
- package/src/lib/interfaces/storage/database.js +3 -0
- package/src/lib/interfaces/storage/database.js.map +1 -0
- package/src/lib/interfaces/storage/document-types.d.ts +9 -0
- package/src/lib/interfaces/storage/document-types.d.ts.map +1 -0
- package/src/lib/interfaces/storage/document-types.js +10 -0
- package/src/lib/interfaces/storage/document-types.js.map +1 -0
- package/src/lib/interfaces/storage/index.d.ts +7 -0
- package/src/lib/interfaces/storage/index.d.ts.map +1 -0
- package/src/lib/interfaces/storage/index.js +7 -0
- package/src/lib/interfaces/storage/index.js.map +1 -0
- package/src/lib/interfaces/storage/memberIndexSchema.d.ts +11 -0
- package/src/lib/interfaces/storage/memberIndexSchema.d.ts.map +1 -0
- package/src/lib/interfaces/storage/memberIndexSchema.js +26 -0
- package/src/lib/interfaces/storage/memberIndexSchema.js.map +1 -0
- package/src/lib/interfaces/userApiResponse.d.ts +17 -0
- package/src/lib/interfaces/userApiResponse.d.ts.map +1 -0
- package/src/lib/interfaces/userApiResponse.js +3 -0
- package/src/lib/interfaces/userApiResponse.js.map +1 -0
- package/src/lib/interfaces/websocketMessages.d.ts +64 -1
- package/src/lib/interfaces/websocketMessages.d.ts.map +1 -1
- package/src/lib/middleware/index.d.ts +2 -0
- package/src/lib/middleware/index.d.ts.map +1 -0
- package/src/lib/middleware/index.js +6 -0
- package/src/lib/middleware/index.js.map +1 -0
- package/src/lib/middleware/validateBody.d.ts +13 -0
- package/src/lib/middleware/validateBody.d.ts.map +1 -0
- package/src/lib/middleware/validateBody.js +35 -0
- package/src/lib/middleware/validateBody.js.map +1 -0
- package/src/lib/middlewares/authentication.d.ts +2 -0
- package/src/lib/middlewares/authentication.d.ts.map +1 -1
- package/src/lib/middlewares/authentication.js.map +1 -1
- package/src/lib/routers/api.d.ts +27 -0
- package/src/lib/routers/api.d.ts.map +1 -1
- package/src/lib/routers/api.js +44 -0
- package/src/lib/routers/api.js.map +1 -1
- package/src/lib/services/auth.d.ts +3 -1
- package/src/lib/services/auth.d.ts.map +1 -1
- package/src/lib/services/auth.js +51 -4
- package/src/lib/services/auth.js.map +1 -1
- package/src/lib/services/brightchain-member-init.service.d.ts +66 -0
- package/src/lib/services/brightchain-member-init.service.d.ts.map +1 -0
- package/src/lib/services/brightchain-member-init.service.js +152 -0
- package/src/lib/services/brightchain-member-init.service.js.map +1 -0
- package/src/lib/services/clientWebSocketServer.d.ts +147 -0
- package/src/lib/services/clientWebSocketServer.d.ts.map +1 -0
- package/src/lib/services/clientWebSocketServer.js +437 -0
- package/src/lib/services/clientWebSocketServer.js.map +1 -0
- package/src/lib/services/index.d.ts +2 -0
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +2 -0
- package/src/lib/services/index.js.map +1 -1
- package/src/lib/stores/diskBlockAsyncStore.d.ts +4 -4
- package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
- package/src/lib/stores/diskBlockStore.d.ts +82 -17
- package/src/lib/stores/diskBlockStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockStore.js +787 -19
- package/src/lib/stores/diskBlockStore.js.map +1 -1
- package/src/lib/stores/diskBlockSyncStore.d.ts +24 -5
- package/src/lib/stores/diskBlockSyncStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockSyncStore.js +30 -13
- package/src/lib/stores/diskBlockSyncStore.js.map +1 -1
- package/src/lib/validation/userValidation.d.ts +27 -0
- package/src/lib/validation/userValidation.d.ts.map +1 -0
- package/src/lib/validation/userValidation.js +70 -0
- package/src/lib/validation/userValidation.js.map +1 -0
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brightchain/brightchain-api-lib",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.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.
|
|
8
|
+
"@brightchain/brightchain-lib": "0.17.0",
|
|
9
9
|
"@digitaldefiance/branded-enum": "^0.0.7",
|
|
10
10
|
"@digitaldefiance/enclave-bridge-client": "^1.1.0",
|
|
11
|
-
"@digitaldefiance/i18n-lib": "^4.6.
|
|
12
|
-
"@digitaldefiance/node-ecies-lib": "^4.19.
|
|
11
|
+
"@digitaldefiance/i18n-lib": "^4.6.3",
|
|
12
|
+
"@digitaldefiance/node-ecies-lib": "^4.19.4",
|
|
13
13
|
"@ethereumjs/wallet": "^10.0.0",
|
|
14
14
|
"bip39": "^3.1.0",
|
|
15
15
|
"buffer": "^6.0.3",
|
package/src/browser.d.ts
CHANGED
|
@@ -8,6 +8,6 @@ export * from './lib/constants';
|
|
|
8
8
|
export * from './lib/enumerations';
|
|
9
9
|
export * from './lib/errors';
|
|
10
10
|
export type { IApiConstants } from './lib/interfaces/api-constants';
|
|
11
|
-
export type { ClientSession, DefaultBackendIdType, SchemaMap } from './lib/shared-types';
|
|
11
|
+
export type { ClientSession, DefaultBackendIdType, SchemaMap, } from './lib/shared-types';
|
|
12
12
|
export * from './lib/browserKeyring';
|
|
13
13
|
//# sourceMappingURL=browser.d.ts.map
|
package/src/browser.d.ts.map
CHANGED
|
@@ -1 +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,
|
|
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,EACV,aAAa,EACb,oBAAoB,EACpB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAG5B,cAAc,sBAAsB,CAAC"}
|
package/src/browser.js.map
CHANGED
|
@@ -1 +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;
|
|
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;AAU7B,8BAA8B;AAC9B,+DAAqC"}
|
package/src/index.d.ts
CHANGED
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
export * from './lib/stores';
|
|
2
2
|
export * from './lib/transforms';
|
|
3
3
|
export * from './lib/services';
|
|
4
|
+
export * from './lib/adapters/brightChainDbDocumentStoreAdapter';
|
|
5
|
+
export * from './lib/databaseInit';
|
|
4
6
|
export * from './lib/appConstants';
|
|
5
7
|
export * from './lib/application';
|
|
6
|
-
export * from './lib/upstream-stubs';
|
|
7
8
|
export * from './lib/constants';
|
|
8
9
|
export * from './lib/controllers';
|
|
10
|
+
export * from './lib/upstream-stubs';
|
|
9
11
|
export * from './lib/enumerations';
|
|
10
12
|
export * from './lib/environment';
|
|
11
13
|
export * from './lib/errors';
|
|
12
14
|
export * from './lib/interfaces';
|
|
13
15
|
export * from './lib/datastore';
|
|
16
|
+
export * from './lib/middleware';
|
|
14
17
|
export * from './lib/middlewares';
|
|
15
18
|
export * from './lib/routers';
|
|
16
19
|
export * from './lib/availability';
|
|
17
20
|
export * from './lib/blockFetch';
|
|
18
21
|
export * from './lib/utils/errorResponse';
|
|
19
22
|
export * from './lib/utils/type-converters';
|
|
23
|
+
export * from './lib/validation/userValidation';
|
|
20
24
|
export type { ClientSession, DefaultBackendIdType, SchemaMap, } from './lib/shared-types';
|
|
21
25
|
export * from './lib/auth';
|
|
22
26
|
export * from './lib/encryption';
|
package/src/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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,kDAAkD,CAAC;AACjE,cAAc,oBAAoB,CAAC;AAGnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AAErC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAKjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAG9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,iCAAiC,CAAC;AAEhD,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
|
@@ -6,12 +6,15 @@ tslib_1.__exportStar(require("./lib/stores"), exports);
|
|
|
6
6
|
tslib_1.__exportStar(require("./lib/transforms"), exports);
|
|
7
7
|
// Export Node.js specific services
|
|
8
8
|
tslib_1.__exportStar(require("./lib/services"), exports);
|
|
9
|
+
// Database initialization
|
|
10
|
+
tslib_1.__exportStar(require("./lib/adapters/brightChainDbDocumentStoreAdapter"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./lib/databaseInit"), exports);
|
|
9
12
|
// API lib exports
|
|
10
13
|
tslib_1.__exportStar(require("./lib/appConstants"), exports);
|
|
11
14
|
tslib_1.__exportStar(require("./lib/application"), exports);
|
|
12
|
-
tslib_1.__exportStar(require("./lib/upstream-stubs"), exports);
|
|
13
15
|
tslib_1.__exportStar(require("./lib/constants"), exports);
|
|
14
16
|
tslib_1.__exportStar(require("./lib/controllers"), exports);
|
|
17
|
+
tslib_1.__exportStar(require("./lib/upstream-stubs"), exports);
|
|
15
18
|
// Note: UserController is exported from controllers/api, not controllers/user (which is the legacy location)
|
|
16
19
|
tslib_1.__exportStar(require("./lib/enumerations"), exports);
|
|
17
20
|
tslib_1.__exportStar(require("./lib/environment"), exports);
|
|
@@ -21,6 +24,7 @@ tslib_1.__exportStar(require("./lib/interfaces"), exports);
|
|
|
21
24
|
// Duplicate with brightchain-lib: export * from './lib/interfaces/token-user';
|
|
22
25
|
// Duplicate with brightchain-lib: export * from './lib/interfaces/wallet-seed';
|
|
23
26
|
tslib_1.__exportStar(require("./lib/datastore"), exports);
|
|
27
|
+
tslib_1.__exportStar(require("./lib/middleware"), exports);
|
|
24
28
|
tslib_1.__exportStar(require("./lib/middlewares"), exports);
|
|
25
29
|
tslib_1.__exportStar(require("./lib/routers"), exports);
|
|
26
30
|
// Note: FEC types (ParityData, FecRecoveryResult, IFecService) are re-exported from brightchain-lib
|
|
@@ -29,6 +33,8 @@ tslib_1.__exportStar(require("./lib/availability"), exports);
|
|
|
29
33
|
tslib_1.__exportStar(require("./lib/blockFetch"), exports);
|
|
30
34
|
tslib_1.__exportStar(require("./lib/utils/errorResponse"), exports);
|
|
31
35
|
tslib_1.__exportStar(require("./lib/utils/type-converters"), exports);
|
|
36
|
+
// Validation utilities
|
|
37
|
+
tslib_1.__exportStar(require("./lib/validation/userValidation"), exports);
|
|
32
38
|
// Auth exports
|
|
33
39
|
tslib_1.__exportStar(require("./lib/auth"), exports);
|
|
34
40
|
// Encryption 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
|
|
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,0BAA0B;AAC1B,2FAAiE;AACjE,6DAAmC;AAEnC,kBAAkB;AAClB,6DAAmC;AACnC,4DAAkC;AAClC,0DAAgC;AAChC,4DAAkC;AAClC,+DAAqC;AACrC,6GAA6G;AAC7G,6DAAmC;AACnC,4DAAkC;AAClC,uDAA6B;AAC7B,2DAAiC;AACjC,iGAAiG;AACjG,+EAA+E;AAC/E,gFAAgF;AAEhF,0DAAgC;AAChC,2DAAiC;AACjC,4DAAkC;AAClC,wDAA8B;AAC9B,oGAAoG;AACpG,kFAAkF;AAClF,6DAAmC;AACnC,2DAAiC;AACjC,oEAA0C;AAC1C,sEAA4C;AAE5C,uBAAuB;AACvB,0EAAgD;AAQhD,eAAe;AACf,qDAA2B;AAE3B,qBAAqB;AACrB,2DAAiC;AAEjC,kBAAkB;AAClB,+DAAqC;AACrC,4DAAkC;AAClC,qEAA2C;AAC3C,8DAAoC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Adapter that wraps BrightChainDb as an IDocumentStore.
|
|
3
|
+
*
|
|
4
|
+
* BrightChainDb's Collection.find() returns a Cursor synchronously, while
|
|
5
|
+
* IDocumentStore expects find() to return Promise<IDocumentCursor<T>>.
|
|
6
|
+
* This thin adapter bridges the structural mismatch so that
|
|
7
|
+
* EnergyAccountStore (in brightchain-lib) can use BrightChainDb for
|
|
8
|
+
* persistence without depending on brightchain-db directly.
|
|
9
|
+
*
|
|
10
|
+
* @module adapters/brightChainDbDocumentStoreAdapter
|
|
11
|
+
*/
|
|
12
|
+
import type { IDocumentCollection, IDocumentStore } from '@brightchain/brightchain-lib';
|
|
13
|
+
import type { BrightChainDb } from '@brightchain/db';
|
|
14
|
+
/**
|
|
15
|
+
* Wraps a BrightChainDb instance to satisfy the IDocumentStore interface.
|
|
16
|
+
*/
|
|
17
|
+
export declare class BrightChainDbDocumentStoreAdapter implements IDocumentStore {
|
|
18
|
+
private readonly db;
|
|
19
|
+
constructor(db: BrightChainDb);
|
|
20
|
+
collection<T>(name: string): IDocumentCollection<T>;
|
|
21
|
+
connect(uri?: string): Promise<void>;
|
|
22
|
+
isConnected(): boolean;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=brightChainDbDocumentStoreAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brightChainDbDocumentStoreAdapter.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/adapters/brightChainDbDocumentStoreAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,mBAAmB,EAEnB,cAAc,EACf,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AAEnE;;GAEG;AACH,qBAAa,iCAAkC,YAAW,cAAc;IAC1D,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,aAAa;IAE9C,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC;IAgC7C,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,WAAW,IAAI,OAAO;CAGvB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Adapter that wraps BrightChainDb as an IDocumentStore.
|
|
4
|
+
*
|
|
5
|
+
* BrightChainDb's Collection.find() returns a Cursor synchronously, while
|
|
6
|
+
* IDocumentStore expects find() to return Promise<IDocumentCursor<T>>.
|
|
7
|
+
* This thin adapter bridges the structural mismatch so that
|
|
8
|
+
* EnergyAccountStore (in brightchain-lib) can use BrightChainDb for
|
|
9
|
+
* persistence without depending on brightchain-db directly.
|
|
10
|
+
*
|
|
11
|
+
* @module adapters/brightChainDbDocumentStoreAdapter
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.BrightChainDbDocumentStoreAdapter = void 0;
|
|
15
|
+
/**
|
|
16
|
+
* Wraps a BrightChainDb instance to satisfy the IDocumentStore interface.
|
|
17
|
+
*/
|
|
18
|
+
class BrightChainDbDocumentStoreAdapter {
|
|
19
|
+
constructor(db) {
|
|
20
|
+
this.db = db;
|
|
21
|
+
}
|
|
22
|
+
collection(name) {
|
|
23
|
+
const coll = this.db.collection(name);
|
|
24
|
+
return {
|
|
25
|
+
async find(filter) {
|
|
26
|
+
// Collection.find() returns a Cursor synchronously; wrap it
|
|
27
|
+
// as a Promise<IDocumentCursor<T>> by resolving immediately.
|
|
28
|
+
const cursor = coll.find(filter);
|
|
29
|
+
return {
|
|
30
|
+
async toArray() {
|
|
31
|
+
const docs = await cursor.toArray();
|
|
32
|
+
return docs;
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
async replaceOne(filter, doc, options) {
|
|
37
|
+
await coll.replaceOne(filter, doc, options);
|
|
38
|
+
},
|
|
39
|
+
async deleteOne(filter) {
|
|
40
|
+
const result = await coll.deleteOne(filter);
|
|
41
|
+
return result.deletedCount > 0;
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
async connect(uri) {
|
|
46
|
+
await this.db.connect(uri);
|
|
47
|
+
}
|
|
48
|
+
isConnected() {
|
|
49
|
+
return this.db.isConnected();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.BrightChainDbDocumentStoreAdapter = BrightChainDbDocumentStoreAdapter;
|
|
53
|
+
//# sourceMappingURL=brightChainDbDocumentStoreAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brightChainDbDocumentStoreAdapter.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/adapters/brightChainDbDocumentStoreAdapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AASH;;GAEG;AACH,MAAa,iCAAiC;IAC5C,YAA6B,EAAiB;QAAjB,OAAE,GAAF,EAAE,CAAe;IAAG,CAAC;IAElD,UAAU,CAAI,IAAY;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAe,IAAI,CAAC,CAAC;QACpD,OAAO;YACL,KAAK,CAAC,IAAI,CAAC,MAAkB;gBAC3B,4DAA4D;gBAC5D,6DAA6D;gBAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAA+B,CAAC,CAAC;gBAC1D,OAAO;oBACL,KAAK,CAAC,OAAO;wBACX,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;wBACpC,OAAO,IAAW,CAAC;oBACrB,CAAC;iBACF,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,UAAU,CACd,MAAkB,EAClB,GAAM,EACN,OAA8B;gBAE9B,MAAM,IAAI,CAAC,UAAU,CACnB,MAA+B,EAC/B,GAAmB,EACnB,OAAO,CACR,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,SAAS,CAAC,MAAkB;gBAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAA+B,CAAC,CAAC;gBACrE,OAAO,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;YACjC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAY;QACxB,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC;CACF;AA1CD,8EA0CC"}
|
package/src/lib/application.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { IAvailabilityService, IDiscoveryProtocol, IReconciliationService } from '@brightchain/brightchain-lib';
|
|
2
2
|
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
3
3
|
import { IConstants, Application as UpstreamApplication } from '@digitaldefiance/node-express-suite';
|
|
4
|
+
import { GossipService } from './availability/gossipService';
|
|
5
|
+
import { PoolDiscoveryService } from './availability/poolDiscoveryService';
|
|
4
6
|
import { DocumentCollection, DocumentRecord, DocumentStore } from './datastore/document-store';
|
|
5
7
|
import { Environment } from './environment';
|
|
6
8
|
import { IBrightChainInitResult } from './interfaces/brightchain-init-result';
|
|
7
9
|
import { ApiRouter } from './routers/api';
|
|
8
10
|
import { AppRouter } from './routers/app';
|
|
11
|
+
import { ClientWebSocketServer } from './services/clientWebSocketServer';
|
|
9
12
|
import { EventNotificationSystem } from './services/eventNotificationSystem';
|
|
10
13
|
import { MessagePassingService } from './services/messagePassingService';
|
|
11
14
|
import { WebSocketMessageServer } from './services/webSocketMessageServer';
|
|
@@ -29,6 +32,7 @@ export declare class App<TID extends PlatformID> extends UpstreamApplication<IBr
|
|
|
29
32
|
private apiRouter;
|
|
30
33
|
private eventSystem;
|
|
31
34
|
private wsServer;
|
|
35
|
+
private clientWsServer;
|
|
32
36
|
private messagePassingService;
|
|
33
37
|
private upnpManager;
|
|
34
38
|
/**
|
|
@@ -69,6 +73,12 @@ export declare class App<TID extends PlatformID> extends UpstreamApplication<IBr
|
|
|
69
73
|
* Useful for sending messages to connected nodes.
|
|
70
74
|
*/
|
|
71
75
|
getWebSocketServer(): WebSocketMessageServer | null;
|
|
76
|
+
/**
|
|
77
|
+
* Get the ClientWebSocketServer instance.
|
|
78
|
+
* Used for Lumen client protocol connections.
|
|
79
|
+
* @see Requirements 9.6, 11.3
|
|
80
|
+
*/
|
|
81
|
+
getClientWebSocketServer(): ClientWebSocketServer | null;
|
|
72
82
|
/**
|
|
73
83
|
* Set the MessagePassingService for the application.
|
|
74
84
|
* This should be called after the application is started and
|
|
@@ -97,5 +107,15 @@ export declare class App<TID extends PlatformID> extends UpstreamApplication<IBr
|
|
|
97
107
|
* @requirements 4.4
|
|
98
108
|
*/
|
|
99
109
|
setReconciliationService(service: IReconciliationService): void;
|
|
110
|
+
/**
|
|
111
|
+
* Set the PoolDiscoveryService and wire gossip handlers.
|
|
112
|
+
* Registers the service, connects GossipService pool announcement/removal
|
|
113
|
+
* handlers, and passes the service to the IntrospectionController via ApiRouter.
|
|
114
|
+
*
|
|
115
|
+
* @param poolDiscoveryService - The pool discovery service instance
|
|
116
|
+
* @param gossipService - The gossip service to wire pool announcement handlers to
|
|
117
|
+
* @see Requirements 7.1, 8.3
|
|
118
|
+
*/
|
|
119
|
+
setPoolDiscoveryService(poolDiscoveryService: PoolDiscoveryService, gossipService: GossipService): void;
|
|
100
120
|
}
|
|
101
121
|
//# 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":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
|
package/src/lib/application.js
CHANGED
|
@@ -4,12 +4,13 @@ exports.App = void 0;
|
|
|
4
4
|
const brightchain_lib_1 = require("@brightchain/brightchain-lib");
|
|
5
5
|
const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
|
|
6
6
|
const appConstants_1 = require("./appConstants");
|
|
7
|
+
const databaseInit_1 = require("./databaseInit");
|
|
7
8
|
const block_document_store_factory_1 = require("./datastore/block-document-store-factory");
|
|
8
|
-
const blockStoreFactory_1 = require("./factories/blockStoreFactory");
|
|
9
9
|
const middlewares_1 = require("./middlewares");
|
|
10
10
|
const api_1 = require("./routers/api");
|
|
11
11
|
const app_1 = require("./routers/app");
|
|
12
12
|
const services_1 = require("./services");
|
|
13
|
+
const clientWebSocketServer_1 = require("./services/clientWebSocketServer");
|
|
13
14
|
const eventNotificationSystem_1 = require("./services/eventNotificationSystem");
|
|
14
15
|
const webSocketMessageServer_1 = require("./services/webSocketMessageServer");
|
|
15
16
|
const upstream_stubs_1 = require("./upstream-stubs");
|
|
@@ -30,7 +31,6 @@ class App extends node_express_suite_1.Application {
|
|
|
30
31
|
constructor(environment) {
|
|
31
32
|
super(environment,
|
|
32
33
|
// apiRouterFactory — creates BrightChain's ApiRouter
|
|
33
|
-
// @ts-expect-error — App overrides db/getModel with DocumentStore types; runtime-compatible
|
|
34
34
|
(app) => new api_1.ApiRouter(app),
|
|
35
35
|
// schemaMapFactory — no-op, returns empty object (no mongoose models)
|
|
36
36
|
upstream_stubs_1.noOpSchemaMapFactory,
|
|
@@ -50,6 +50,7 @@ class App extends node_express_suite_1.Application {
|
|
|
50
50
|
this.apiRouter = null;
|
|
51
51
|
this.eventSystem = null;
|
|
52
52
|
this.wsServer = null;
|
|
53
|
+
this.clientWsServer = null;
|
|
53
54
|
this.messagePassingService = null;
|
|
54
55
|
this.upnpManager = null;
|
|
55
56
|
/**
|
|
@@ -99,19 +100,18 @@ class App extends node_express_suite_1.Application {
|
|
|
99
100
|
this.expressApp.listen = originalListen;
|
|
100
101
|
// ── BrightChain-specific initialization ──────────────────────────
|
|
101
102
|
await this.keyStorage.initializeFromEnvironment();
|
|
102
|
-
// Initialize
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const energyStore =
|
|
103
|
+
// Initialize persistent (or ephemeral) database stack
|
|
104
|
+
const initResult = await (0, databaseInit_1.brightchainDatabaseInit)(this.environment);
|
|
105
|
+
if (!initResult.success || !initResult.backend) {
|
|
106
|
+
throw new Error(`BrightChain database initialization failed: ${initResult.error ?? 'unknown error'}`);
|
|
107
|
+
}
|
|
108
|
+
const { blockStore, db, memberStore, energyStore } = initResult.backend;
|
|
108
109
|
const energyLedger = new brightchain_lib_1.EnergyLedger();
|
|
109
|
-
// @ts-expect-error — App overrides db/getModel with DocumentStore types; runtime-compatible
|
|
110
110
|
const emailService = new services_1.EmailService(this);
|
|
111
|
-
const authService = new services_1.AuthService(
|
|
112
|
-
//
|
|
113
|
-
this,
|
|
114
|
-
|
|
111
|
+
const authService = new services_1.AuthService(this, memberStore, energyStore, emailService, this.environment.jwtSecret);
|
|
112
|
+
// Register services from init result and additional services
|
|
113
|
+
this.services.register('blockStore', () => blockStore);
|
|
114
|
+
this.services.register('db', () => db);
|
|
115
115
|
this.services.register('memberStore', () => memberStore);
|
|
116
116
|
this.services.register('energyStore', () => energyStore);
|
|
117
117
|
this.services.register('energyLedger', () => energyLedger);
|
|
@@ -125,6 +125,11 @@ class App extends node_express_suite_1.Application {
|
|
|
125
125
|
this.wsServer = new webSocketMessageServer_1.WebSocketMessageServer(this._httpServer, false);
|
|
126
126
|
this.services.register('wsServer', () => this.wsServer);
|
|
127
127
|
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] WebSocket server initialized');
|
|
128
|
+
// Client-facing WebSocket server for Lumen protocol
|
|
129
|
+
// @see Requirements 9.6, 11.3
|
|
130
|
+
this.clientWsServer = new clientWebSocketServer_1.ClientWebSocketServer(this._httpServer, this.environment.jwtSecret, this.eventSystem);
|
|
131
|
+
this.services.register('clientWsServer', () => this.clientWsServer);
|
|
132
|
+
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Client WebSocket server initialized');
|
|
128
133
|
}
|
|
129
134
|
// Wire EventNotificationSystem to SyncController via the apiRouter
|
|
130
135
|
if (this.apiRouter) {
|
|
@@ -162,6 +167,14 @@ class App extends node_express_suite_1.Application {
|
|
|
162
167
|
});
|
|
163
168
|
this.wsServer = null;
|
|
164
169
|
}
|
|
170
|
+
// Close client WebSocket server
|
|
171
|
+
if (this.clientWsServer) {
|
|
172
|
+
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] Client WebSocket server');
|
|
173
|
+
await new Promise((resolve) => {
|
|
174
|
+
this.clientWsServer.close(() => resolve());
|
|
175
|
+
});
|
|
176
|
+
this.clientWsServer = null;
|
|
177
|
+
}
|
|
165
178
|
// Clean up BrightChain services
|
|
166
179
|
this.eventSystem = null;
|
|
167
180
|
this.messagePassingService = null;
|
|
@@ -197,6 +210,14 @@ class App extends node_express_suite_1.Application {
|
|
|
197
210
|
getWebSocketServer() {
|
|
198
211
|
return this.wsServer;
|
|
199
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Get the ClientWebSocketServer instance.
|
|
215
|
+
* Used for Lumen client protocol connections.
|
|
216
|
+
* @see Requirements 9.6, 11.3
|
|
217
|
+
*/
|
|
218
|
+
getClientWebSocketServer() {
|
|
219
|
+
return this.clientWsServer;
|
|
220
|
+
}
|
|
200
221
|
/**
|
|
201
222
|
* Set the MessagePassingService for the application.
|
|
202
223
|
* This should be called after the application is started and
|
|
@@ -247,6 +268,31 @@ class App extends node_express_suite_1.Application {
|
|
|
247
268
|
this.apiRouter.setReconciliationService(service);
|
|
248
269
|
}
|
|
249
270
|
}
|
|
271
|
+
/**
|
|
272
|
+
* Set the PoolDiscoveryService and wire gossip handlers.
|
|
273
|
+
* Registers the service, connects GossipService pool announcement/removal
|
|
274
|
+
* handlers, and passes the service to the IntrospectionController via ApiRouter.
|
|
275
|
+
*
|
|
276
|
+
* @param poolDiscoveryService - The pool discovery service instance
|
|
277
|
+
* @param gossipService - The gossip service to wire pool announcement handlers to
|
|
278
|
+
* @see Requirements 7.1, 8.3
|
|
279
|
+
*/
|
|
280
|
+
setPoolDiscoveryService(poolDiscoveryService, gossipService) {
|
|
281
|
+
this.services.register('poolDiscoveryService', () => poolDiscoveryService);
|
|
282
|
+
// Wire gossip pool announcement/removal handlers
|
|
283
|
+
gossipService.onAnnouncement((announcement) => {
|
|
284
|
+
if (announcement.type === 'pool_announce') {
|
|
285
|
+
poolDiscoveryService.handlePoolAnnouncement(announcement);
|
|
286
|
+
}
|
|
287
|
+
else if (announcement.type === 'pool_remove' && announcement.poolId) {
|
|
288
|
+
poolDiscoveryService.handlePoolRemoval(announcement.poolId, announcement.nodeId);
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
// Pass to IntrospectionController via ApiRouter
|
|
292
|
+
if (this.apiRouter) {
|
|
293
|
+
this.apiRouter.setIntrospectionPoolDiscoveryService(poolDiscoveryService);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
250
296
|
}
|
|
251
297
|
exports.App = App;
|
|
252
298
|
//# sourceMappingURL=application.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @see Requirements 6.1, 6.2, 6.3, 6.4, 6.5, 6.6
|
|
9
9
|
*/
|
|
10
|
-
import { AnnouncementHandler, BlockAnnouncement, DeliveryAckMetadata, GossipConfig, ICBLIndexEntry, IGossipService, MessageDeliveryMetadata, PoolId } from '@brightchain/brightchain-lib';
|
|
10
|
+
import { AnnouncementHandler, BlockAnnouncement, DeliveryAckMetadata, GossipConfig, ICBLIndexEntry, IGossipService, MessageDeliveryMetadata, PoolAnnouncementMetadata, PoolId } from '@brightchain/brightchain-lib';
|
|
11
11
|
import { ECIESService } from '@digitaldefiance/node-ecies-lib';
|
|
12
12
|
/**
|
|
13
13
|
* Error thrown when gossip configuration is invalid.
|
|
@@ -141,6 +141,25 @@ export declare class GossipService implements IGossipService {
|
|
|
141
141
|
* @see Requirements 2.2, 2.7
|
|
142
142
|
*/
|
|
143
143
|
announcePoolDeletion(poolId: PoolId): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* Announce a new or updated pool to the network.
|
|
146
|
+
* Creates a pool_announce announcement with pool metadata for discovery.
|
|
147
|
+
* When the pool has encryption enabled, the caller should provide
|
|
148
|
+
* pre-encrypted metadata via the encryptedMetadata field.
|
|
149
|
+
*
|
|
150
|
+
* @param poolId - The pool being announced
|
|
151
|
+
* @param metadata - Pool announcement metadata (blockCount, totalSize, encrypted, encryptedMetadata)
|
|
152
|
+
* @see Requirements 8.1, 8.2
|
|
153
|
+
*/
|
|
154
|
+
announcePool(poolId: PoolId, metadata: PoolAnnouncementMetadata): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Announce that a pool has been removed from this node.
|
|
157
|
+
* Creates a pool_remove announcement propagated to peers for discovery cache updates.
|
|
158
|
+
*
|
|
159
|
+
* @param poolId - The pool being removed
|
|
160
|
+
* @see Requirements 8.4
|
|
161
|
+
*/
|
|
162
|
+
announcePoolRemoval(poolId: PoolId): Promise<void>;
|
|
144
163
|
/**
|
|
145
164
|
* Announce a new or updated CBL index entry to peers in the same pool.
|
|
146
165
|
* Creates a cbl_index_update announcement scoped to the entry's pool.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gossipService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gossipService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"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"}
|
|
@@ -153,6 +153,46 @@ class GossipService {
|
|
|
153
153
|
};
|
|
154
154
|
this.queueAnnouncement(announcement);
|
|
155
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Announce a new or updated pool to the network.
|
|
158
|
+
* Creates a pool_announce announcement with pool metadata for discovery.
|
|
159
|
+
* When the pool has encryption enabled, the caller should provide
|
|
160
|
+
* pre-encrypted metadata via the encryptedMetadata field.
|
|
161
|
+
*
|
|
162
|
+
* @param poolId - The pool being announced
|
|
163
|
+
* @param metadata - Pool announcement metadata (blockCount, totalSize, encrypted, encryptedMetadata)
|
|
164
|
+
* @see Requirements 8.1, 8.2
|
|
165
|
+
*/
|
|
166
|
+
async announcePool(poolId, metadata) {
|
|
167
|
+
const announcement = {
|
|
168
|
+
type: 'pool_announce',
|
|
169
|
+
blockId: '',
|
|
170
|
+
poolId,
|
|
171
|
+
nodeId: this.peerProvider.getLocalNodeId(),
|
|
172
|
+
timestamp: new Date(),
|
|
173
|
+
ttl: this.config.defaultTtl,
|
|
174
|
+
poolAnnouncement: metadata,
|
|
175
|
+
};
|
|
176
|
+
this.queueAnnouncement(announcement);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Announce that a pool has been removed from this node.
|
|
180
|
+
* Creates a pool_remove announcement propagated to peers for discovery cache updates.
|
|
181
|
+
*
|
|
182
|
+
* @param poolId - The pool being removed
|
|
183
|
+
* @see Requirements 8.4
|
|
184
|
+
*/
|
|
185
|
+
async announcePoolRemoval(poolId) {
|
|
186
|
+
const announcement = {
|
|
187
|
+
type: 'pool_remove',
|
|
188
|
+
blockId: '',
|
|
189
|
+
poolId,
|
|
190
|
+
nodeId: this.peerProvider.getLocalNodeId(),
|
|
191
|
+
timestamp: new Date(),
|
|
192
|
+
ttl: this.config.defaultTtl,
|
|
193
|
+
};
|
|
194
|
+
this.queueAnnouncement(announcement);
|
|
195
|
+
}
|
|
156
196
|
/**
|
|
157
197
|
* Announce a new or updated CBL index entry to peers in the same pool.
|
|
158
198
|
* Creates a cbl_index_update announcement scoped to the entry's pool.
|
|
@@ -260,6 +300,25 @@ class GossipService {
|
|
|
260
300
|
}
|
|
261
301
|
return;
|
|
262
302
|
}
|
|
303
|
+
// Case 0a: Pool announce/remove announcements — dispatch to handlers and forward (Req 8.1, 8.3, 8.4)
|
|
304
|
+
if (announcement.type === 'pool_announce' ||
|
|
305
|
+
announcement.type === 'pool_remove') {
|
|
306
|
+
if (!announcement.poolId)
|
|
307
|
+
return; // Invalid without poolId, ignore
|
|
308
|
+
for (const handler of this.handlers) {
|
|
309
|
+
try {
|
|
310
|
+
handler(announcement);
|
|
311
|
+
}
|
|
312
|
+
catch {
|
|
313
|
+
// Ignore handler errors to prevent one handler from affecting others
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
// Forward with decremented TTL
|
|
317
|
+
if (announcement.ttl > 0) {
|
|
318
|
+
this.queueAnnouncement({ ...announcement, ttl: announcement.ttl - 1 });
|
|
319
|
+
}
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
263
322
|
// Case 0b: CBL index announcements — dispatch to handlers and forward (Req 8.1, 8.6)
|
|
264
323
|
if (announcement.type === 'cbl_index_update' ||
|
|
265
324
|
announcement.type === 'cbl_index_delete') {
|