@brightchain/brightchain-api-lib 0.12.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 +4 -4
- 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 +104 -0
- 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.map +1 -1
- package/src/lib/enumerations/brightChainApiStrings.js.map +1 -1
- package/src/lib/errors/symmetric.d.ts +2 -2
- package/src/lib/errors/symmetric.d.ts.map +1 -1
- package/src/lib/errors/symmetric.js.map +1 -1
- package/src/lib/errors/typed-error-local.d.ts +3 -3
- 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/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/i18n/index.d.ts +0 -7
- package/src/lib/i18n/index.d.ts.map +0 -1
- package/src/lib/i18n/index.js +0 -29
- package/src/lib/i18n/index.js.map +0 -1
- package/src/lib/i18n/strings/index.d.ts +0 -6
- package/src/lib/i18n/strings/index.d.ts.map +0 -1
- package/src/lib/i18n/strings/index.js +0 -17
- package/src/lib/i18n/strings/index.js.map +0 -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,15 +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
9
|
"@digitaldefiance/branded-enum": "^0.0.6",
|
|
10
10
|
"@digitaldefiance/enclave-bridge-client": "^1.1.0",
|
|
11
|
-
"@digitaldefiance/i18n-lib": "^4.
|
|
12
|
-
"@digitaldefiance/node-ecies-lib": "^4.
|
|
11
|
+
"@digitaldefiance/i18n-lib": "^4.3.2",
|
|
12
|
+
"@digitaldefiance/node-ecies-lib": "^4.17.2",
|
|
13
13
|
"@ethereumjs/wallet": "^10.0.0",
|
|
14
14
|
"bip39": "^3.1.0",
|
|
15
15
|
"buffer": "^6.0.3",
|
|
@@ -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,9 +63,17 @@ 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
|
|
@@ -72,6 +86,13 @@ class App extends application_base_1.BaseApplication {
|
|
|
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"}
|