@brightchain/brightchain-api-lib 0.10.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -5
- package/src/lib/application-base.d.ts +1 -1
- package/src/lib/application-base.d.ts.map +1 -1
- package/src/lib/application.d.ts +52 -0
- package/src/lib/application.d.ts.map +1 -1
- package/src/lib/application.js +105 -1
- package/src/lib/application.js.map +1 -1
- package/src/lib/controllers/api/blocks.d.ts.map +1 -1
- package/src/lib/controllers/api/blocks.js +62 -0
- package/src/lib/controllers/api/blocks.js.map +1 -1
- package/src/lib/controllers/api/docs.d.ts +67 -0
- package/src/lib/controllers/api/docs.d.ts.map +1 -0
- package/src/lib/controllers/api/docs.js +86 -0
- package/src/lib/controllers/api/docs.js.map +1 -0
- package/src/lib/controllers/api/energy.d.ts.map +1 -1
- package/src/lib/controllers/api/energy.js +35 -7
- package/src/lib/controllers/api/energy.js.map +1 -1
- package/src/lib/controllers/api/health.d.ts +95 -0
- package/src/lib/controllers/api/health.d.ts.map +1 -0
- package/src/lib/controllers/api/health.js +319 -0
- package/src/lib/controllers/api/health.js.map +1 -0
- package/src/lib/controllers/api/index.d.ts +6 -0
- package/src/lib/controllers/api/index.d.ts.map +1 -1
- package/src/lib/controllers/api/index.js +6 -0
- package/src/lib/controllers/api/index.js.map +1 -1
- package/src/lib/controllers/api/messages.d.ts +119 -0
- package/src/lib/controllers/api/messages.d.ts.map +1 -0
- package/src/lib/controllers/api/messages.js +269 -0
- package/src/lib/controllers/api/messages.js.map +1 -0
- package/src/lib/controllers/api/nodes.d.ts +152 -0
- package/src/lib/controllers/api/nodes.d.ts.map +1 -0
- package/src/lib/controllers/api/nodes.js +378 -0
- package/src/lib/controllers/api/nodes.js.map +1 -0
- package/src/lib/controllers/api/quorum.d.ts +12 -8
- package/src/lib/controllers/api/quorum.d.ts.map +1 -1
- package/src/lib/controllers/api/quorum.js +83 -17
- package/src/lib/controllers/api/quorum.js.map +1 -1
- package/src/lib/controllers/api/scbl.d.ts +80 -0
- package/src/lib/controllers/api/scbl.d.ts.map +1 -0
- package/src/lib/controllers/api/scbl.js +325 -0
- package/src/lib/controllers/api/scbl.js.map +1 -0
- package/src/lib/controllers/api/sync.d.ts +140 -0
- package/src/lib/controllers/api/sync.d.ts.map +1 -0
- package/src/lib/controllers/api/sync.js +352 -0
- package/src/lib/controllers/api/sync.js.map +1 -0
- package/src/lib/controllers/api/user.d.ts +2 -0
- package/src/lib/controllers/api/user.d.ts.map +1 -1
- package/src/lib/controllers/api/user.js +122 -7
- package/src/lib/controllers/api/user.js.map +1 -1
- package/src/lib/enumerations/brightChainApiStrings.d.ts +3 -0
- package/src/lib/enumerations/brightChainApiStrings.d.ts.map +1 -0
- package/src/lib/enumerations/brightChainApiStrings.js +7 -0
- package/src/lib/enumerations/brightChainApiStrings.js.map +1 -0
- package/src/lib/errors/symmetric.d.ts +5 -5
- package/src/lib/errors/symmetric.d.ts.map +1 -1
- package/src/lib/errors/symmetric.js.map +1 -1
- package/src/lib/errors/translatable-error-local.d.ts +2 -2
- package/src/lib/errors/translatable-error-local.d.ts.map +1 -1
- package/src/lib/errors/translatable-error-local.js.map +1 -1
- package/src/lib/errors/typed-error-local.d.ts +5 -5
- package/src/lib/errors/typed-error-local.d.ts.map +1 -1
- package/src/lib/errors/typed-error-local.js.map +1 -1
- package/src/lib/interfaces/application.d.ts +2 -1
- package/src/lib/interfaces/application.d.ts.map +1 -1
- package/src/lib/interfaces/backend-objects/index.d.ts +4 -4
- package/src/lib/interfaces/backend-objects/index.d.ts.map +1 -1
- package/src/lib/interfaces/backend-objects/index.js +0 -5
- package/src/lib/interfaces/backend-objects/index.js.map +1 -1
- package/src/lib/interfaces/bases/index.d.ts +4 -4
- package/src/lib/interfaces/bases/index.d.ts.map +1 -1
- package/src/lib/interfaces/bases/index.js +0 -5
- package/src/lib/interfaces/bases/index.js.map +1 -1
- package/src/lib/interfaces/index.d.ts +32 -32
- package/src/lib/interfaces/index.d.ts.map +1 -1
- package/src/lib/interfaces/index.js +0 -33
- package/src/lib/interfaces/index.js.map +1 -1
- package/src/lib/interfaces/member/index.d.ts +3 -3
- package/src/lib/interfaces/member/index.d.ts.map +1 -1
- package/src/lib/interfaces/member/index.js +0 -4
- package/src/lib/interfaces/member/index.js.map +1 -1
- package/src/lib/interfaces/requests/deleteMessagesRequest.d.ts +12 -0
- package/src/lib/interfaces/requests/deleteMessagesRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/deleteMessagesRequest.js +3 -0
- package/src/lib/interfaces/requests/deleteMessagesRequest.js.map +1 -0
- package/src/lib/interfaces/requests/discoverBlockRequest.d.ts +10 -0
- package/src/lib/interfaces/requests/discoverBlockRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/discoverBlockRequest.js +3 -0
- package/src/lib/interfaces/requests/discoverBlockRequest.js.map +1 -0
- package/src/lib/interfaces/requests/getBlockLocationRequest.d.ts +9 -0
- package/src/lib/interfaces/requests/getBlockLocationRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/getBlockLocationRequest.js +3 -0
- package/src/lib/interfaces/requests/getBlockLocationRequest.js.map +1 -0
- package/src/lib/interfaces/requests/getMessageRequest.d.ts +12 -0
- package/src/lib/interfaces/requests/getMessageRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/getMessageRequest.js +3 -0
- package/src/lib/interfaces/requests/getMessageRequest.js.map +1 -0
- package/src/lib/interfaces/requests/getNodeRequest.d.ts +9 -0
- package/src/lib/interfaces/requests/getNodeRequest.d.ts.map +1 -0
- package/src/lib/interfaces/{membersResponse.js → requests/getNodeRequest.js} +1 -1
- package/src/lib/interfaces/requests/getNodeRequest.js.map +1 -0
- package/src/lib/interfaces/requests/index.d.ts +12 -0
- package/src/lib/interfaces/requests/index.d.ts.map +1 -0
- package/src/lib/interfaces/requests/index.js +3 -0
- package/src/lib/interfaces/requests/index.js.map +1 -0
- package/src/lib/interfaces/requests/messageRequest.d.ts +10 -0
- package/src/lib/interfaces/requests/messageRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/messageRequest.js +3 -0
- package/src/lib/interfaces/requests/messageRequest.js.map +1 -0
- package/src/lib/interfaces/requests/queryMessagesRequest.d.ts +16 -0
- package/src/lib/interfaces/requests/queryMessagesRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/queryMessagesRequest.js +3 -0
- package/src/lib/interfaces/requests/queryMessagesRequest.js.map +1 -0
- package/src/lib/interfaces/requests/registerNodeRequest.d.ts +11 -0
- package/src/lib/interfaces/requests/registerNodeRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/registerNodeRequest.js +3 -0
- package/src/lib/interfaces/requests/registerNodeRequest.js.map +1 -0
- package/src/lib/interfaces/requests/replicateBlockRequest.d.ts +13 -0
- package/src/lib/interfaces/requests/replicateBlockRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/replicateBlockRequest.js +3 -0
- package/src/lib/interfaces/requests/replicateBlockRequest.js.map +1 -0
- package/src/lib/interfaces/requests/sendMessageRequest.d.ts +24 -0
- package/src/lib/interfaces/requests/sendMessageRequest.d.ts.map +1 -0
- package/src/lib/interfaces/requests/sendMessageRequest.js +3 -0
- package/src/lib/interfaces/requests/sendMessageRequest.js.map +1 -0
- package/src/lib/interfaces/requests/storeSCBLRequestBody.d.ts +9 -0
- package/src/lib/interfaces/requests/storeSCBLRequestBody.d.ts.map +1 -0
- package/src/lib/interfaces/requests/storeSCBLRequestBody.js +3 -0
- package/src/lib/interfaces/requests/storeSCBLRequestBody.js.map +1 -0
- package/src/lib/interfaces/requests/syncRequestBody.d.ts +10 -0
- package/src/lib/interfaces/requests/syncRequestBody.d.ts.map +1 -0
- package/src/lib/interfaces/requests/syncRequestBody.js +3 -0
- package/src/lib/interfaces/requests/syncRequestBody.js.map +1 -0
- package/src/lib/interfaces/responses/index.d.ts +7 -7
- package/src/lib/interfaces/responses/index.d.ts.map +1 -1
- package/src/lib/interfaces/responses/index.js +0 -8
- package/src/lib/interfaces/responses/index.js.map +1 -1
- package/src/lib/middlewares/authentication.d.ts +133 -0
- package/src/lib/middlewares/authentication.d.ts.map +1 -0
- package/src/lib/middlewares/authentication.js +224 -0
- package/src/lib/middlewares/authentication.js.map +1 -0
- package/src/lib/middlewares/index.d.ts +2 -0
- package/src/lib/middlewares/index.d.ts.map +1 -1
- package/src/lib/middlewares/index.js +15 -1
- package/src/lib/middlewares/index.js.map +1 -1
- package/src/lib/middlewares/request-id.d.ts +18 -0
- package/src/lib/middlewares/request-id.d.ts.map +1 -0
- package/src/lib/middlewares/request-id.js +30 -0
- package/src/lib/middlewares/request-id.js.map +1 -0
- package/src/lib/openapi/index.d.ts +8 -0
- package/src/lib/openapi/index.d.ts.map +1 -0
- package/src/lib/openapi/index.js +21 -0
- package/src/lib/openapi/index.js.map +1 -0
- package/src/lib/openapi/schemas.d.ts +15 -0
- package/src/lib/openapi/schemas.d.ts.map +1 -0
- package/src/lib/openapi/schemas.js +610 -0
- package/src/lib/openapi/schemas.js.map +1 -0
- package/src/lib/routers/api.d.ts +62 -0
- package/src/lib/routers/api.d.ts.map +1 -1
- package/src/lib/routers/api.js +85 -0
- package/src/lib/routers/api.js.map +1 -1
- package/src/lib/services/diskQuorumService.d.ts +7 -6
- package/src/lib/services/diskQuorumService.d.ts.map +1 -1
- package/src/lib/services/diskQuorumService.js.map +1 -1
- package/src/lib/services/email.d.ts +2 -1
- package/src/lib/services/email.d.ts.map +1 -1
- package/src/lib/services/email.js.map +1 -1
- package/src/lib/services/eventNotificationSystem.d.ts +88 -6
- package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
- package/src/lib/services/eventNotificationSystem.js +132 -17
- package/src/lib/services/eventNotificationSystem.js.map +1 -1
- package/src/lib/services/fec.js +1 -1
- package/src/lib/services/fec.js.map +1 -1
- package/src/lib/stores/diskCBLStore.d.ts.map +1 -1
- package/src/lib/stores/diskCBLStore.js +2 -4
- package/src/lib/stores/diskCBLStore.js.map +1 -1
- package/src/lib/types/backend-id.d.ts +2 -1
- package/src/lib/types/backend-id.d.ts.map +1 -1
- package/src/lib/utils/errorResponse.d.ts +227 -2
- package/src/lib/utils/errorResponse.d.ts.map +1 -1
- package/src/lib/utils/errorResponse.js +292 -3
- package/src/lib/utils/errorResponse.js.map +1 -1
- package/src/lib/interfaces/membersResponse.d.ts +0 -12
- package/src/lib/interfaces/membersResponse.d.ts.map +0 -1
- package/src/lib/interfaces/membersResponse.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brightchain/brightchain-api-lib",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"main": "./src/index.js",
|
|
5
5
|
"types": "./src/index.d.ts",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@aws-sdk/client-ses": "^3.859.0",
|
|
8
|
-
"@brightchain/brightchain-lib": "0.
|
|
8
|
+
"@brightchain/brightchain-lib": "0.13.0",
|
|
9
|
+
"@digitaldefiance/branded-enum": "^0.0.6",
|
|
9
10
|
"@digitaldefiance/enclave-bridge-client": "^1.1.0",
|
|
10
|
-
"@digitaldefiance/
|
|
11
|
+
"@digitaldefiance/i18n-lib": "^4.3.2",
|
|
12
|
+
"@digitaldefiance/node-ecies-lib": "^4.17.2",
|
|
11
13
|
"@ethereumjs/wallet": "^10.0.0",
|
|
12
14
|
"bip39": "^3.1.0",
|
|
13
15
|
"buffer": "^6.0.3",
|
|
@@ -16,7 +18,6 @@
|
|
|
16
18
|
"dotenv": "^17.2.1",
|
|
17
19
|
"ejs": "^3.1.10",
|
|
18
20
|
"elliptic": "^6.6.1",
|
|
19
|
-
"ethereumjs-util": "^7.1.5",
|
|
20
21
|
"express": "^5.1.0",
|
|
21
22
|
"express-validator": "^7.2.1",
|
|
22
23
|
"helmet": "^8.1.0",
|
|
@@ -33,7 +34,6 @@
|
|
|
33
34
|
"@types/dotenv": "^8.2.3",
|
|
34
35
|
"@types/ejs": "^3.1.5",
|
|
35
36
|
"@types/elliptic": "^6.4.18",
|
|
36
|
-
"@types/ethereumjs-util": "^6.1.2",
|
|
37
37
|
"@types/express": "^5.0.3",
|
|
38
38
|
"@types/express-validator": "^3.0.2",
|
|
39
39
|
"@types/helmet": "^4.0.0",
|
|
@@ -2,7 +2,7 @@ import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
|
2
2
|
import { IApplication, IBaseDocument, IConstants, PluginManager, ServiceContainer } from '@digitaldefiance/node-express-suite';
|
|
3
3
|
import { DocumentStore } from './datastore/document-store';
|
|
4
4
|
import { Environment } from './environment';
|
|
5
|
-
import { DefaultBackendIdType } from './shared-types';
|
|
5
|
+
import type { DefaultBackendIdType } from './shared-types';
|
|
6
6
|
/**
|
|
7
7
|
* Base Application class with core functionality
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-base.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application-base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;
|
|
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"}
|
package/src/lib/application.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
import { IAvailabilityService, IDiscoveryProtocol, IReconciliationService } from '@brightchain/brightchain-lib';
|
|
1
2
|
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
2
3
|
import { Application } from 'express';
|
|
3
4
|
import { BaseApplication } from './application-base';
|
|
4
5
|
import { Environment } from './environment';
|
|
6
|
+
import { ApiRouter } from './routers/api';
|
|
7
|
+
import { EventNotificationSystem } from './services/eventNotificationSystem';
|
|
8
|
+
import { MessagePassingService } from './services/messagePassingService';
|
|
9
|
+
import { WebSocketMessageServer } from './services/webSocketMessageServer';
|
|
5
10
|
/**
|
|
6
11
|
* Application class
|
|
7
12
|
*/
|
|
@@ -10,10 +15,57 @@ export declare class App<TID extends PlatformID> extends BaseApplication<TID> {
|
|
|
10
15
|
private server;
|
|
11
16
|
private controllers;
|
|
12
17
|
private readonly keyStorage;
|
|
18
|
+
private apiRouter;
|
|
19
|
+
private eventSystem;
|
|
20
|
+
private wsServer;
|
|
21
|
+
private messagePassingService;
|
|
13
22
|
constructor(environment: Environment<TID>);
|
|
14
23
|
start(): Promise<void>;
|
|
15
24
|
stop(): Promise<void>;
|
|
16
25
|
getController<T = unknown>(name: string): T;
|
|
17
26
|
setController(name: string, controller: unknown): void;
|
|
27
|
+
/**
|
|
28
|
+
* Get the API router instance.
|
|
29
|
+
* Useful for setting up services after initialization.
|
|
30
|
+
*/
|
|
31
|
+
getApiRouter(): ApiRouter<TID> | null;
|
|
32
|
+
/**
|
|
33
|
+
* Get the EventNotificationSystem instance.
|
|
34
|
+
* Useful for subscribing to events.
|
|
35
|
+
*/
|
|
36
|
+
getEventSystem(): EventNotificationSystem | null;
|
|
37
|
+
/**
|
|
38
|
+
* Get the WebSocketMessageServer instance.
|
|
39
|
+
* Useful for sending messages to connected nodes.
|
|
40
|
+
*/
|
|
41
|
+
getWebSocketServer(): WebSocketMessageServer | null;
|
|
42
|
+
/**
|
|
43
|
+
* Set the MessagePassingService for the application.
|
|
44
|
+
* This should be called after the application is started and
|
|
45
|
+
* all required dependencies (MessageCBLService, IMessageMetadataStore) are available.
|
|
46
|
+
* @requirements 1.6
|
|
47
|
+
*/
|
|
48
|
+
setMessagePassingService(service: MessagePassingService): void;
|
|
49
|
+
/**
|
|
50
|
+
* Set the DiscoveryProtocol for the application.
|
|
51
|
+
* This should be called after the application is started and
|
|
52
|
+
* the discovery protocol is initialized.
|
|
53
|
+
* @requirements 3.3
|
|
54
|
+
*/
|
|
55
|
+
setDiscoveryProtocol(protocol: IDiscoveryProtocol): void;
|
|
56
|
+
/**
|
|
57
|
+
* Set the AvailabilityService for the application.
|
|
58
|
+
* This should be called after the application is started and
|
|
59
|
+
* the availability service is initialized.
|
|
60
|
+
* @requirements 3.1, 3.2, 4.1, 4.2, 4.3
|
|
61
|
+
*/
|
|
62
|
+
setAvailabilityService(service: IAvailabilityService): void;
|
|
63
|
+
/**
|
|
64
|
+
* Set the ReconciliationService for the application.
|
|
65
|
+
* This should be called after the application is started and
|
|
66
|
+
* the reconciliation service is initialized.
|
|
67
|
+
* @requirements 4.4
|
|
68
|
+
*/
|
|
69
|
+
setReconciliationService(service: IReconciliationService): void;
|
|
18
70
|
}
|
|
19
71
|
//# sourceMappingURL=application.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"
|
|
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"}
|
package/src/lib/application.js
CHANGED
|
@@ -18,6 +18,8 @@ const middlewares_1 = require("./middlewares");
|
|
|
18
18
|
const api_1 = require("./routers/api");
|
|
19
19
|
const app_1 = require("./routers/app");
|
|
20
20
|
const services_1 = require("./services");
|
|
21
|
+
const eventNotificationSystem_1 = require("./services/eventNotificationSystem");
|
|
22
|
+
const webSocketMessageServer_1 = require("./services/webSocketMessageServer");
|
|
21
23
|
/**
|
|
22
24
|
* Application class
|
|
23
25
|
*/
|
|
@@ -30,6 +32,10 @@ class App extends application_base_1.BaseApplication {
|
|
|
30
32
|
}));
|
|
31
33
|
this.server = null;
|
|
32
34
|
this.controllers = new Map();
|
|
35
|
+
this.apiRouter = null;
|
|
36
|
+
this.eventSystem = null;
|
|
37
|
+
this.wsServer = null;
|
|
38
|
+
this.messagePassingService = null;
|
|
33
39
|
this.expressApp = (0, express_1.default)();
|
|
34
40
|
this.server = null;
|
|
35
41
|
this.keyStorage = services_1.SecureKeyStorage.getInstance();
|
|
@@ -57,21 +63,36 @@ class App extends application_base_1.BaseApplication {
|
|
|
57
63
|
this.services.register('energyLedger', () => energyLedger);
|
|
58
64
|
this.services.register('emailService', () => emailService);
|
|
59
65
|
this.services.register('auth', () => authService);
|
|
66
|
+
// Initialize EventNotificationSystem for WebSocket events
|
|
67
|
+
// @requirements 5.1, 5.2, 5.4
|
|
68
|
+
this.eventSystem = new eventNotificationSystem_1.EventNotificationSystem();
|
|
69
|
+
this.services.register('eventSystem', () => this.eventSystem);
|
|
60
70
|
middlewares_1.Middlewares.init(this.expressApp);
|
|
61
71
|
const apiRouter = new api_1.ApiRouter(this);
|
|
72
|
+
this.apiRouter = apiRouter;
|
|
62
73
|
const appRouter = new app_1.AppRouter(apiRouter);
|
|
74
|
+
// Wire EventNotificationSystem to SyncController for replication events
|
|
75
|
+
// @requirements 4.5
|
|
76
|
+
apiRouter.setSyncEventSystem(this.eventSystem);
|
|
63
77
|
appRouter.init(this.expressApp);
|
|
64
78
|
this.expressApp.use((err, req, res, next) => {
|
|
65
79
|
const handleableError = err instanceof i18n_lib_1.HandleableError
|
|
66
80
|
? err
|
|
67
81
|
: new i18n_lib_1.HandleableError(new Error(err.message ||
|
|
68
|
-
(0, brightchain_lib_1.translate)(brightchain_lib_1.BrightChainStrings.
|
|
82
|
+
(0, brightchain_lib_1.translate)(brightchain_lib_1.BrightChainStrings.Error_Unexpected_Error)), { cause: err });
|
|
69
83
|
(0, node_express_suite_1.handleError)(handleableError, res, node_express_suite_1.sendApiMessageResponse, next);
|
|
70
84
|
});
|
|
71
85
|
const serversReady = [];
|
|
72
86
|
serversReady.push(new Promise((resolve) => {
|
|
73
87
|
this.server = this.expressApp.listen(this.environment.port, this.environment.host, () => {
|
|
74
88
|
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', `[ ready ] http://${this.environment.host}:${this.environment.port}`);
|
|
89
|
+
// Initialize WebSocket server after HTTP server is ready
|
|
90
|
+
// @requirements 5.1
|
|
91
|
+
if (this.server) {
|
|
92
|
+
this.wsServer = new webSocketMessageServer_1.WebSocketMessageServer(this.server, false);
|
|
93
|
+
this.services.register('wsServer', () => this.wsServer);
|
|
94
|
+
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] WebSocket server initialized');
|
|
95
|
+
}
|
|
75
96
|
resolve();
|
|
76
97
|
});
|
|
77
98
|
}));
|
|
@@ -106,6 +127,14 @@ class App extends application_base_1.BaseApplication {
|
|
|
106
127
|
}
|
|
107
128
|
}
|
|
108
129
|
async stop() {
|
|
130
|
+
// Close WebSocket server first
|
|
131
|
+
if (this.wsServer) {
|
|
132
|
+
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] WebSocket server');
|
|
133
|
+
await new Promise((resolve) => {
|
|
134
|
+
this.wsServer.close(() => resolve());
|
|
135
|
+
});
|
|
136
|
+
this.wsServer = null;
|
|
137
|
+
}
|
|
109
138
|
if (this.server) {
|
|
110
139
|
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] Application server');
|
|
111
140
|
await new Promise((resolve, reject) => {
|
|
@@ -121,6 +150,10 @@ class App extends application_base_1.BaseApplication {
|
|
|
121
150
|
});
|
|
122
151
|
this.server = null;
|
|
123
152
|
}
|
|
153
|
+
// Clean up other services
|
|
154
|
+
this.eventSystem = null;
|
|
155
|
+
this.messagePassingService = null;
|
|
156
|
+
this.apiRouter = null;
|
|
124
157
|
await super.stop();
|
|
125
158
|
this._ready = false;
|
|
126
159
|
(0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopped ] Application server and database connections');
|
|
@@ -131,6 +164,77 @@ class App extends application_base_1.BaseApplication {
|
|
|
131
164
|
setController(name, controller) {
|
|
132
165
|
this.controllers.set(name, controller);
|
|
133
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Get the API router instance.
|
|
169
|
+
* Useful for setting up services after initialization.
|
|
170
|
+
*/
|
|
171
|
+
getApiRouter() {
|
|
172
|
+
return this.apiRouter;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Get the EventNotificationSystem instance.
|
|
176
|
+
* Useful for subscribing to events.
|
|
177
|
+
*/
|
|
178
|
+
getEventSystem() {
|
|
179
|
+
return this.eventSystem;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Get the WebSocketMessageServer instance.
|
|
183
|
+
* Useful for sending messages to connected nodes.
|
|
184
|
+
*/
|
|
185
|
+
getWebSocketServer() {
|
|
186
|
+
return this.wsServer;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Set the MessagePassingService for the application.
|
|
190
|
+
* This should be called after the application is started and
|
|
191
|
+
* all required dependencies (MessageCBLService, IMessageMetadataStore) are available.
|
|
192
|
+
* @requirements 1.6
|
|
193
|
+
*/
|
|
194
|
+
setMessagePassingService(service) {
|
|
195
|
+
this.messagePassingService = service;
|
|
196
|
+
this.services.register('messagePassingService', () => service);
|
|
197
|
+
if (this.apiRouter) {
|
|
198
|
+
this.apiRouter.setMessagePassingService(service);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Set the DiscoveryProtocol for the application.
|
|
203
|
+
* This should be called after the application is started and
|
|
204
|
+
* the discovery protocol is initialized.
|
|
205
|
+
* @requirements 3.3
|
|
206
|
+
*/
|
|
207
|
+
setDiscoveryProtocol(protocol) {
|
|
208
|
+
this.services.register('discoveryProtocol', () => protocol);
|
|
209
|
+
if (this.apiRouter) {
|
|
210
|
+
this.apiRouter.setDiscoveryProtocol(protocol);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Set the AvailabilityService for the application.
|
|
215
|
+
* This should be called after the application is started and
|
|
216
|
+
* the availability service is initialized.
|
|
217
|
+
* @requirements 3.1, 3.2, 4.1, 4.2, 4.3
|
|
218
|
+
*/
|
|
219
|
+
setAvailabilityService(service) {
|
|
220
|
+
this.services.register('availabilityService', () => service);
|
|
221
|
+
if (this.apiRouter) {
|
|
222
|
+
this.apiRouter.setAvailabilityService(service);
|
|
223
|
+
this.apiRouter.setSyncAvailabilityService(service);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Set the ReconciliationService for the application.
|
|
228
|
+
* This should be called after the application is started and
|
|
229
|
+
* the reconciliation service is initialized.
|
|
230
|
+
* @requirements 4.4
|
|
231
|
+
*/
|
|
232
|
+
setReconciliationService(service) {
|
|
233
|
+
this.services.register('reconciliationService', () => service);
|
|
234
|
+
if (this.apiRouter) {
|
|
235
|
+
this.apiRouter.setReconciliationService(service);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
134
238
|
}
|
|
135
239
|
exports.App = App;
|
|
136
240
|
//# sourceMappingURL=application.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/blocks.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/blocks.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAEjB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAQvE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAQ1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC;;;GAGG;AACH,oBAAY,cAAc;IACxB,eAAe,oBAAoB;IACnC,uBAAuB,4BAA4B;IACnD,mBAAmB,wBAAwB;IAC3C,0BAA0B,+BAA+B;IACzD,oBAAoB,yBAAyB;IAC7C,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;CAClC;AAED,KAAK,gBAAgB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,yBAAyB,GACzB,oBAAoB,GACpB,sBAAsB,GACtB,gBAAgB,CAAC;AAErB,UAAU,cAAe,SAAQ,aAAa;IAC5C,UAAU,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACtE,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;IAClE,gBAAgB,EAAE,iBAAiB,CACjC,yBAAyB,GAAG,gBAAgB,CAC7C,CAAC;IACF,WAAW,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IACxE,aAAa,EAAE,iBAAiB,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,CAAC;CAC7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,qBAAa,gBAAgB,CAC3B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CACtB,GAAG,EACH,gBAAgB,EAChB,cAAc,EACd,gBAAgB,CACjB;IACC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAOrD,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAyGtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,OAAO,CAAC,gBAAgB,CA+DtB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,cAAc,CA4BpB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,OAAO,CAAC,sBAAsB,CA6B5B;IAEF;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,iBAAiB,CAyBvB;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,OAAO,CAAC,mBAAmB,CAoCzB;CACH"}
|
|
@@ -379,28 +379,90 @@ class BlocksController extends base_1.BaseController {
|
|
|
379
379
|
useAuthentication: true,
|
|
380
380
|
useCryptoAuthentication: false,
|
|
381
381
|
handlerKey: 'storeBlock',
|
|
382
|
+
openapi: {
|
|
383
|
+
summary: 'Store a block',
|
|
384
|
+
description: 'Store a new block with optional durability settings.',
|
|
385
|
+
tags: ['Blocks'],
|
|
386
|
+
requestBody: {
|
|
387
|
+
schema: 'StoreBlockRequest',
|
|
388
|
+
example: {
|
|
389
|
+
data: 'SGVsbG8gV29ybGQ=',
|
|
390
|
+
options: { durabilityLevel: 'standard' },
|
|
391
|
+
},
|
|
392
|
+
},
|
|
393
|
+
responses: {
|
|
394
|
+
200: { schema: 'StoreBlockResponse', description: 'Block stored' },
|
|
395
|
+
},
|
|
396
|
+
},
|
|
382
397
|
}),
|
|
383
398
|
(0, node_express_suite_1.routeConfig)('get', '/:blockId', {
|
|
384
399
|
handlerKey: 'getBlock',
|
|
385
400
|
useAuthentication: true,
|
|
386
401
|
useCryptoAuthentication: false,
|
|
402
|
+
openapi: {
|
|
403
|
+
summary: 'Get block by ID',
|
|
404
|
+
description: 'Retrieve a block by its ID.',
|
|
405
|
+
tags: ['Blocks'],
|
|
406
|
+
responses: {
|
|
407
|
+
200: { schema: 'GetBlockResponse', description: 'Block retrieved' },
|
|
408
|
+
404: { schema: 'ErrorResponse', description: 'Block not found' },
|
|
409
|
+
},
|
|
410
|
+
},
|
|
387
411
|
}),
|
|
388
412
|
(0, node_express_suite_1.routeConfig)('get', '/:blockId/metadata', {
|
|
389
413
|
handlerKey: 'getBlockMetadata',
|
|
390
414
|
useAuthentication: true,
|
|
391
415
|
useCryptoAuthentication: false,
|
|
416
|
+
openapi: {
|
|
417
|
+
summary: 'Get block metadata',
|
|
418
|
+
description: 'Get metadata for a block without retrieving the data.',
|
|
419
|
+
tags: ['Blocks'],
|
|
420
|
+
responses: {
|
|
421
|
+
200: {
|
|
422
|
+
schema: 'GetBlockMetadataResponse',
|
|
423
|
+
description: 'Metadata retrieved',
|
|
424
|
+
},
|
|
425
|
+
404: { schema: 'ErrorResponse', description: 'Block not found' },
|
|
426
|
+
},
|
|
427
|
+
},
|
|
392
428
|
}),
|
|
393
429
|
(0, node_express_suite_1.routeConfig)('delete', '/:blockId', {
|
|
394
430
|
handlerKey: 'deleteBlock',
|
|
395
431
|
useAuthentication: true,
|
|
396
432
|
useCryptoAuthentication: false,
|
|
433
|
+
openapi: {
|
|
434
|
+
summary: 'Delete block',
|
|
435
|
+
description: 'Delete a block and its parity blocks.',
|
|
436
|
+
tags: ['Blocks'],
|
|
437
|
+
responses: {
|
|
438
|
+
200: { description: 'Block deleted' },
|
|
439
|
+
404: { schema: 'ErrorResponse', description: 'Block not found' },
|
|
440
|
+
},
|
|
441
|
+
},
|
|
397
442
|
}),
|
|
398
443
|
(0, node_express_suite_1.routeConfig)('post', '/brighten', {
|
|
399
444
|
handlerKey: 'brightenBlock',
|
|
400
445
|
useAuthentication: true,
|
|
401
446
|
useCryptoAuthentication: false,
|
|
447
|
+
openapi: {
|
|
448
|
+
summary: 'Brighten a block',
|
|
449
|
+
description: 'XOR a block with random blocks for Owner-Free storage.',
|
|
450
|
+
tags: ['Blocks'],
|
|
451
|
+
requestBody: {
|
|
452
|
+
schema: 'BrightenBlockRequest',
|
|
453
|
+
example: { blockId: 'abc123...', randomBlockCount: 3 },
|
|
454
|
+
},
|
|
455
|
+
responses: {
|
|
456
|
+
200: {
|
|
457
|
+
schema: 'BrightenBlockResponse',
|
|
458
|
+
description: 'Block brightened',
|
|
459
|
+
},
|
|
460
|
+
},
|
|
461
|
+
},
|
|
402
462
|
}),
|
|
403
463
|
];
|
|
464
|
+
// Register with OpenAPI registry
|
|
465
|
+
node_express_suite_1.ControllerRegistry.register('/blocks', 'BlocksController', this.routeDefinitions);
|
|
404
466
|
this.handlers = {
|
|
405
467
|
storeBlock: this.handleStoreBlock.bind(this),
|
|
406
468
|
getBlock: this.handleGetBlock.bind(this),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/blocks.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,kEAIsC;AAGtC,
|
|
1
|
+
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
|
|
2
|
+
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
3
|
+
import { ApiErrorResponse, ApiRequestHandler, IApiMessageResponse, TypedHandlers } from '@digitaldefiance/node-express-suite';
|
|
4
|
+
import { IBrightChainApplication } from '../../interfaces/application';
|
|
5
|
+
import '../../openapi/schemas';
|
|
6
|
+
import { DefaultBackendIdType } from '../../shared-types';
|
|
7
|
+
import { BaseController } from '../base';
|
|
8
|
+
/**
|
|
9
|
+
* OpenAPI specification response
|
|
10
|
+
*/
|
|
11
|
+
export interface IOpenAPIResponse extends IApiMessageResponse {
|
|
12
|
+
openapi: string;
|
|
13
|
+
info: {
|
|
14
|
+
title: string;
|
|
15
|
+
version: string;
|
|
16
|
+
description: string;
|
|
17
|
+
};
|
|
18
|
+
servers: Array<{
|
|
19
|
+
url: string;
|
|
20
|
+
description: string;
|
|
21
|
+
}>;
|
|
22
|
+
paths: Record<string, any>;
|
|
23
|
+
components: {
|
|
24
|
+
schemas: Record<string, any>;
|
|
25
|
+
securitySchemes: Record<string, any>;
|
|
26
|
+
};
|
|
27
|
+
[key: string]: unknown;
|
|
28
|
+
}
|
|
29
|
+
type DocsApiResponse = IOpenAPIResponse | ApiErrorResponse;
|
|
30
|
+
interface DocsHandlers extends TypedHandlers {
|
|
31
|
+
getDocs: ApiRequestHandler<IOpenAPIResponse | ApiErrorResponse>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Controller for API documentation endpoint.
|
|
35
|
+
*
|
|
36
|
+
* Provides the OpenAPI specification for the BrightChain API.
|
|
37
|
+
* The specification is built dynamically from registered controllers
|
|
38
|
+
* using their route definitions and OpenAPI metadata.
|
|
39
|
+
*
|
|
40
|
+
* ## Endpoints
|
|
41
|
+
*
|
|
42
|
+
* ### GET /api/docs
|
|
43
|
+
* Returns the OpenAPI specification in JSON format.
|
|
44
|
+
*
|
|
45
|
+
* **Response:**
|
|
46
|
+
* - OpenAPI 3.0.3 specification with all endpoints
|
|
47
|
+
* - Request/response schemas for each endpoint
|
|
48
|
+
* - Authentication requirements per endpoint
|
|
49
|
+
* - Example requests and responses
|
|
50
|
+
*
|
|
51
|
+
* @requirements 10.1, 10.2, 10.3, 10.4
|
|
52
|
+
*/
|
|
53
|
+
export declare class DocsController<TID extends PlatformID = DefaultBackendIdType> extends BaseController<TID, DocsApiResponse, DocsHandlers, CoreLanguageCode> {
|
|
54
|
+
private static readonly API_VERSION;
|
|
55
|
+
private readonly builder;
|
|
56
|
+
constructor(application: IBrightChainApplication<TID>);
|
|
57
|
+
protected initRouteDefinitions(): void;
|
|
58
|
+
/**
|
|
59
|
+
* GET /api/docs
|
|
60
|
+
* Returns the OpenAPI specification in JSON format.
|
|
61
|
+
*
|
|
62
|
+
* @requirements 10.1, 10.2, 10.3, 10.4
|
|
63
|
+
*/
|
|
64
|
+
private handleGetDocs;
|
|
65
|
+
}
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=docs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/docs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAEjB,mBAAmB,EAGnB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,OAAO,EAAE,KAAK,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACtC,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,KAAK,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAE3D,UAAU,YAAa,SAAQ,aAAa;IAC1C,OAAO,EAAE,iBAAiB,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;CACjE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAc,CACzB,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,CAAC;IAC5E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAE7B,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAYrD,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAgCtC;;;;;OAKG;YACW,aAAa;CAiB5B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DocsController = void 0;
|
|
4
|
+
const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
|
|
5
|
+
// Import to trigger schema registration
|
|
6
|
+
require("../../openapi/schemas");
|
|
7
|
+
const base_1 = require("../base");
|
|
8
|
+
/**
|
|
9
|
+
* Controller for API documentation endpoint.
|
|
10
|
+
*
|
|
11
|
+
* Provides the OpenAPI specification for the BrightChain API.
|
|
12
|
+
* The specification is built dynamically from registered controllers
|
|
13
|
+
* using their route definitions and OpenAPI metadata.
|
|
14
|
+
*
|
|
15
|
+
* ## Endpoints
|
|
16
|
+
*
|
|
17
|
+
* ### GET /api/docs
|
|
18
|
+
* Returns the OpenAPI specification in JSON format.
|
|
19
|
+
*
|
|
20
|
+
* **Response:**
|
|
21
|
+
* - OpenAPI 3.0.3 specification with all endpoints
|
|
22
|
+
* - Request/response schemas for each endpoint
|
|
23
|
+
* - Authentication requirements per endpoint
|
|
24
|
+
* - Example requests and responses
|
|
25
|
+
*
|
|
26
|
+
* @requirements 10.1, 10.2, 10.3, 10.4
|
|
27
|
+
*/
|
|
28
|
+
class DocsController extends base_1.BaseController {
|
|
29
|
+
constructor(application) {
|
|
30
|
+
super(application);
|
|
31
|
+
this.builder = new node_express_suite_1.OpenAPIBuilder({
|
|
32
|
+
title: 'BrightChain API',
|
|
33
|
+
version: DocsController.API_VERSION,
|
|
34
|
+
description: 'REST API for BrightChain distributed storage and messaging system',
|
|
35
|
+
servers: [{ url: '/api', description: 'API server' }],
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
initRouteDefinitions() {
|
|
39
|
+
this.routeDefinitions = [
|
|
40
|
+
(0, node_express_suite_1.routeConfig)('get', '/', {
|
|
41
|
+
handlerKey: 'getDocs',
|
|
42
|
+
useAuthentication: false,
|
|
43
|
+
useCryptoAuthentication: false,
|
|
44
|
+
openapi: {
|
|
45
|
+
summary: 'Get OpenAPI specification',
|
|
46
|
+
description: 'Returns the OpenAPI specification in JSON format.',
|
|
47
|
+
tags: ['Documentation'],
|
|
48
|
+
responses: {
|
|
49
|
+
200: {
|
|
50
|
+
schema: 'OpenAPISpec',
|
|
51
|
+
description: 'OpenAPI specification',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
}),
|
|
56
|
+
];
|
|
57
|
+
// Register this controller
|
|
58
|
+
node_express_suite_1.ControllerRegistry.register('/docs', 'DocsController', this.routeDefinitions);
|
|
59
|
+
this.handlers = {
|
|
60
|
+
getDocs: this.handleGetDocs.bind(this),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* GET /api/docs
|
|
65
|
+
* Returns the OpenAPI specification in JSON format.
|
|
66
|
+
*
|
|
67
|
+
* @requirements 10.1, 10.2, 10.3, 10.4
|
|
68
|
+
*/
|
|
69
|
+
async handleGetDocs() {
|
|
70
|
+
const spec = this.builder.build();
|
|
71
|
+
return {
|
|
72
|
+
statusCode: 200,
|
|
73
|
+
response: {
|
|
74
|
+
message: 'OpenAPI specification',
|
|
75
|
+
openapi: spec.openapi,
|
|
76
|
+
info: spec.info,
|
|
77
|
+
servers: spec.servers,
|
|
78
|
+
paths: spec.paths,
|
|
79
|
+
components: spec.components,
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.DocsController = DocsController;
|
|
85
|
+
DocsController.API_VERSION = '0.13.0';
|
|
86
|
+
//# sourceMappingURL=docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/docs.ts"],"names":[],"mappings":";;;AAGA,4EAS6C;AAE7C,wCAAwC;AACxC,iCAA+B;AAE/B,kCAAyC;AA8BzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,cAEX,SAAQ,qBAAoE;IAI5E,YAAY,WAAyC;QACnD,KAAK,CAAC,WAAW,CAAC,CAAC;QAEnB,IAAI,CAAC,OAAO,GAAG,IAAI,mCAAc,CAAC;YAChC,KAAK,EAAE,iBAAiB;YACxB,OAAO,EAAE,cAAc,CAAC,WAAW;YACnC,WAAW,EACT,mEAAmE;YACrE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;IAES,oBAAoB;QAC5B,IAAI,CAAC,gBAAgB,GAAG;YACtB,IAAA,gCAAW,EAAC,KAAK,EAAE,GAAG,EAAE;gBACtB,UAAU,EAAE,SAAS;gBACrB,iBAAiB,EAAE,KAAK;gBACxB,uBAAuB,EAAE,KAAK;gBAC9B,OAAO,EAAE;oBACP,OAAO,EAAE,2BAA2B;oBACpC,WAAW,EAAE,mDAAmD;oBAChE,IAAI,EAAE,CAAC,eAAe,CAAC;oBACvB,SAAS,EAAE;wBACT,GAAG,EAAE;4BACH,MAAM,EAAE,aAAa;4BACrB,WAAW,EAAE,uBAAuB;yBACrC;qBACF;iBACF;aACF,CAAC;SACH,CAAC;QAEF,2BAA2B;QAC3B,uCAAkB,CAAC,QAAQ,CACzB,OAAO,EACP,gBAAgB,EAChB,IAAI,CAAC,gBAAgB,CACtB,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG;YACd,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;SACvC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,aAAa;QAGzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAElC,OAAO;YACL,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE;gBACR,OAAO,EAAE,uBAAuB;gBAChC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B;SACF,CAAC;IACJ,CAAC;;AAxEH,wCAyEC;AAtEyB,0BAAW,GAAG,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"energy.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/energy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"energy.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/energy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EAEnB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,UAAU,eAAgB,SAAQ,aAAa;IAC7C,UAAU,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACtE,eAAe,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;CAC5E;AAED,qBAAa,gBAAgB,CAC3B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CACtB,GAAG,EACH,mBAAmB,GAAG,gBAAgB,EACtC,eAAe,EACf,gBAAgB,CACjB;gBACa,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAIrD,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAoBtC,OAAO,CAAC,gBAAgB,CAqDtB;IAEF,OAAO,CAAC,qBAAqB,CA0D3B;CACH"}
|