@brightchain/brightchain-api-lib 0.2.1 → 0.6.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 +2 -2
- package/src/index.d.ts +10 -75
- package/src/index.d.ts.map +1 -1
- package/src/index.js +11 -78
- package/src/index.js.map +1 -1
- package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.d.ts +1 -2
- package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.d.ts.map +1 -1
- package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.js +1 -1
- package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.js.map +1 -1
- package/src/lib/application-base.d.ts +7 -6
- package/src/lib/application-base.d.ts.map +1 -1
- package/src/lib/application-base.js.map +1 -1
- package/src/lib/application.d.ts +7 -2
- package/src/lib/application.d.ts.map +1 -1
- package/src/lib/application.js +30 -0
- package/src/lib/application.js.map +1 -1
- package/src/lib/controllers/api/blocks.d.ts +246 -0
- package/src/lib/controllers/api/blocks.d.ts.map +1 -0
- package/src/lib/controllers/api/blocks.js +414 -0
- package/src/lib/controllers/api/blocks.js.map +1 -0
- package/src/lib/controllers/api/cbl.d.ts +88 -0
- package/src/lib/controllers/api/cbl.d.ts.map +1 -0
- package/src/lib/controllers/api/cbl.js +222 -0
- package/src/lib/controllers/api/cbl.js.map +1 -0
- package/src/lib/controllers/api/energy.d.ts +18 -0
- package/src/lib/controllers/api/energy.d.ts.map +1 -0
- package/src/lib/controllers/api/energy.js +96 -0
- package/src/lib/controllers/api/energy.js.map +1 -0
- package/src/lib/controllers/api/i18n.d.ts +19 -0
- package/src/lib/controllers/api/i18n.d.ts.map +1 -0
- package/src/lib/controllers/api/i18n.js +27 -0
- package/src/lib/controllers/api/i18n.js.map +1 -0
- package/src/lib/controllers/api/index.d.ts +9 -0
- package/src/lib/controllers/api/index.d.ts.map +1 -0
- package/src/lib/controllers/api/index.js +12 -0
- package/src/lib/controllers/api/index.js.map +1 -0
- package/src/lib/controllers/api/members.d.ts +19 -0
- package/src/lib/controllers/api/members.d.ts.map +1 -0
- package/src/lib/controllers/api/members.js +27 -0
- package/src/lib/controllers/api/members.js.map +1 -0
- package/src/lib/controllers/api/quorum.d.ts +369 -0
- package/src/lib/controllers/api/quorum.d.ts.map +1 -0
- package/src/lib/controllers/api/quorum.js +592 -0
- package/src/lib/controllers/api/quorum.js.map +1 -0
- package/src/lib/controllers/api/sessions.d.ts +21 -0
- package/src/lib/controllers/api/sessions.d.ts.map +1 -0
- package/src/lib/controllers/api/sessions.js +32 -0
- package/src/lib/controllers/api/sessions.js.map +1 -0
- package/src/lib/controllers/api/user.d.ts +20 -0
- package/src/lib/controllers/api/user.d.ts.map +1 -0
- package/src/lib/controllers/api/user.js +109 -0
- package/src/lib/controllers/api/user.js.map +1 -0
- package/src/lib/controllers/base.d.ts +6 -48
- package/src/lib/controllers/base.d.ts.map +1 -1
- package/src/lib/controllers/base.js +2 -225
- package/src/lib/controllers/base.js.map +1 -1
- package/src/lib/controllers/index.d.ts +3 -0
- package/src/lib/controllers/index.d.ts.map +1 -0
- package/src/lib/controllers/index.js +6 -0
- package/src/lib/controllers/index.js.map +1 -0
- package/src/lib/datastore/block-document-store.d.ts.map +1 -1
- package/src/lib/datastore/block-document-store.js +22 -18
- package/src/lib/datastore/block-document-store.js.map +1 -1
- package/src/lib/datastore/document-store.d.ts +1 -2
- package/src/lib/datastore/document-store.d.ts.map +1 -1
- package/src/lib/datastore/index.d.ts +6 -0
- package/src/lib/datastore/index.d.ts.map +1 -0
- package/src/lib/datastore/index.js +8 -0
- package/src/lib/datastore/index.js.map +1 -0
- package/src/lib/datastore/memory-document-store.d.ts.map +1 -1
- package/src/lib/datastore/memory-document-store.js.map +1 -1
- package/src/lib/documents/base.d.ts +3 -2
- package/src/lib/documents/base.d.ts.map +1 -1
- package/src/lib/enumerations/index.d.ts +5 -0
- package/src/lib/enumerations/index.d.ts.map +1 -0
- package/src/lib/enumerations/index.js +8 -0
- package/src/lib/enumerations/index.js.map +1 -0
- package/src/lib/enumerations/websocketMessageType.d.ts +44 -0
- package/src/lib/enumerations/websocketMessageType.d.ts.map +1 -0
- package/src/lib/enumerations/websocketMessageType.js +47 -0
- package/src/lib/enumerations/websocketMessageType.js.map +1 -0
- package/src/lib/environment.d.ts +4 -2
- package/src/lib/environment.d.ts.map +1 -1
- package/src/lib/environment.js.map +1 -1
- package/src/lib/errors/index.d.ts +20 -0
- package/src/lib/errors/index.d.ts.map +1 -0
- package/src/lib/errors/index.js +23 -0
- package/src/lib/errors/index.js.map +1 -0
- package/src/lib/interfaces/application.d.ts +19 -7
- package/src/lib/interfaces/application.d.ts.map +1 -1
- package/src/lib/interfaces/auth-credentials.d.ts +6 -0
- package/src/lib/interfaces/auth-credentials.d.ts.map +1 -0
- package/src/lib/interfaces/{server-init-result.js → auth-credentials.js} +1 -1
- package/src/lib/interfaces/auth-credentials.js.map +1 -0
- package/src/lib/interfaces/auth-token.d.ts +6 -0
- package/src/lib/interfaces/auth-token.d.ts.map +1 -0
- package/src/lib/interfaces/{ecies-consts.js → auth-token.js} +1 -1
- package/src/lib/interfaces/auth-token.js.map +1 -0
- package/src/lib/interfaces/backend-objects/index.d.ts +5 -0
- package/src/lib/interfaces/backend-objects/index.d.ts.map +1 -0
- package/src/lib/interfaces/backend-objects/index.js +8 -0
- package/src/lib/interfaces/backend-objects/index.js.map +1 -0
- package/src/lib/interfaces/bases/index.d.ts +5 -0
- package/src/lib/interfaces/bases/index.d.ts.map +1 -0
- package/src/lib/interfaces/bases/index.js +8 -0
- package/src/lib/interfaces/bases/index.js.map +1 -0
- package/src/lib/interfaces/blockRequest.d.ts +40 -0
- package/src/lib/interfaces/blockRequest.d.ts.map +1 -0
- package/src/lib/interfaces/{mongo-errors.js → blockRequest.js} +1 -1
- package/src/lib/interfaces/blockRequest.js.map +1 -0
- package/src/lib/interfaces/blockResponses.d.ts +32 -0
- package/src/lib/interfaces/blockResponses.d.ts.map +1 -0
- package/src/lib/interfaces/blockResponses.js +3 -0
- package/src/lib/interfaces/blockResponses.js.map +1 -0
- package/src/lib/interfaces/blockService.d.ts +16 -0
- package/src/lib/interfaces/blockService.d.ts.map +1 -0
- package/src/lib/interfaces/{pbkdf2-result.js → blockService.js} +1 -1
- package/src/lib/interfaces/blockService.js.map +1 -0
- package/src/lib/interfaces/blockStore.d.ts +7 -0
- package/src/lib/interfaces/blockStore.d.ts.map +1 -0
- package/src/lib/interfaces/blockStore.js +3 -0
- package/src/lib/interfaces/blockStore.js.map +1 -0
- package/src/lib/interfaces/blocksHandlers.d.ts +7 -0
- package/src/lib/interfaces/blocksHandlers.d.ts.map +1 -0
- package/src/lib/interfaces/blocksHandlers.js +3 -0
- package/src/lib/interfaces/blocksHandlers.js.map +1 -0
- package/src/lib/interfaces/cblHandlers.d.ts +7 -0
- package/src/lib/interfaces/cblHandlers.d.ts.map +1 -0
- package/src/lib/interfaces/cblHandlers.js +3 -0
- package/src/lib/interfaces/cblHandlers.js.map +1 -0
- package/src/lib/interfaces/environment.d.ts +4 -2
- package/src/lib/interfaces/environment.d.ts.map +1 -1
- package/src/lib/interfaces/index.d.ts +33 -0
- package/src/lib/interfaces/index.d.ts.map +1 -0
- package/src/lib/interfaces/index.js +36 -0
- package/src/lib/interfaces/index.js.map +1 -0
- package/src/lib/interfaces/member/index.d.ts +3 -0
- package/src/lib/interfaces/member/index.d.ts.map +1 -0
- package/src/lib/interfaces/member/index.js +6 -0
- package/src/lib/interfaces/member/index.js.map +1 -0
- package/src/lib/interfaces/member/operational.d.ts +1 -2
- package/src/lib/interfaces/member/operational.d.ts.map +1 -1
- package/src/lib/interfaces/membersResponse.d.ts +12 -0
- package/src/lib/interfaces/membersResponse.d.ts.map +1 -0
- package/src/lib/interfaces/membersResponse.js +3 -0
- package/src/lib/interfaces/membersResponse.js.map +1 -0
- package/src/lib/interfaces/responses/index.d.ts +0 -1
- package/src/lib/interfaces/responses/index.d.ts.map +1 -1
- package/src/lib/interfaces/token-payload.d.ts +9 -0
- package/src/lib/interfaces/token-payload.d.ts.map +1 -0
- package/src/lib/interfaces/token-payload.js +3 -0
- package/src/lib/interfaces/token-payload.js.map +1 -0
- package/src/lib/interfaces/websocketMessages.d.ts +222 -0
- package/src/lib/interfaces/websocketMessages.d.ts.map +1 -0
- package/src/lib/interfaces/websocketMessages.js +6 -0
- package/src/lib/interfaces/websocketMessages.js.map +1 -0
- package/src/lib/routers/api.d.ts +9 -4
- package/src/lib/routers/api.d.ts.map +1 -1
- package/src/lib/routers/api.js +18 -6
- package/src/lib/routers/api.js.map +1 -1
- package/src/lib/routers/app.d.ts +3 -2
- package/src/lib/routers/app.d.ts.map +1 -1
- package/src/lib/routers/app.js +5 -4
- package/src/lib/routers/app.js.map +1 -1
- package/src/lib/routers/base.d.ts +6 -4
- package/src/lib/routers/base.d.ts.map +1 -1
- package/src/lib/routers/base.js.map +1 -1
- package/src/lib/routers/index.d.ts +5 -0
- package/src/lib/routers/index.d.ts.map +1 -0
- package/src/lib/routers/index.js +8 -0
- package/src/lib/routers/index.js.map +1 -0
- package/src/lib/services/auth.d.ts +23 -0
- package/src/lib/services/auth.d.ts.map +1 -0
- package/src/lib/services/auth.js +93 -0
- package/src/lib/services/auth.js.map +1 -0
- package/src/lib/services/base.d.ts +12 -0
- package/src/lib/services/base.d.ts.map +1 -0
- package/src/lib/services/base.js +15 -0
- package/src/lib/services/base.js.map +1 -0
- package/src/lib/services/blockServiceFactory.d.ts +29 -0
- package/src/lib/services/blockServiceFactory.d.ts.map +1 -0
- package/src/lib/services/blockServiceFactory.js +42 -0
- package/src/lib/services/blockServiceFactory.js.map +1 -0
- package/src/lib/services/blockStore.d.ts +52 -0
- package/src/lib/services/blockStore.d.ts.map +1 -0
- package/src/lib/services/blockStore.js +105 -0
- package/src/lib/services/blockStore.js.map +1 -0
- package/src/lib/services/blocks.d.ts +26 -0
- package/src/lib/services/blocks.d.ts.map +1 -0
- package/src/lib/services/blocks.js +35 -0
- package/src/lib/services/blocks.js.map +1 -0
- 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 +4 -3
- package/src/lib/services/email.d.ts.map +1 -1
- package/src/lib/services/email.js +4 -3
- package/src/lib/services/email.js.map +1 -1
- package/src/lib/services/index.d.ts +21 -0
- package/src/lib/services/index.d.ts.map +1 -0
- package/src/lib/services/index.js +26 -0
- package/src/lib/services/index.js.map +1 -0
- package/src/lib/services/messagePassingService.d.ts.map +1 -1
- package/src/lib/services/messagePassingService.js +1 -1
- package/src/lib/services/messagePassingService.js.map +1 -1
- package/src/lib/services/quorum.d.ts +44 -0
- package/src/lib/services/quorum.d.ts.map +1 -0
- package/src/lib/services/quorum.js +83 -0
- package/src/lib/services/quorum.js.map +1 -0
- package/src/lib/services/requestUser.d.ts +18 -0
- package/src/lib/services/requestUser.d.ts.map +1 -0
- package/src/lib/services/requestUser.js +22 -0
- package/src/lib/services/requestUser.js.map +1 -0
- package/src/lib/services/role.d.ts +19 -0
- package/src/lib/services/role.d.ts.map +1 -0
- package/src/lib/services/role.js +18 -0
- package/src/lib/services/role.js.map +1 -0
- package/src/lib/services/websocketHandler.d.ts +95 -0
- package/src/lib/services/websocketHandler.d.ts.map +1 -0
- package/src/lib/services/websocketHandler.js +269 -0
- package/src/lib/services/websocketHandler.js.map +1 -0
- package/src/lib/shared-types.d.ts +2 -1
- package/src/lib/shared-types.d.ts.map +1 -1
- package/src/lib/stores/availabilityAwareBlockStore.d.ts +45 -1
- package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -1
- package/src/lib/stores/availabilityAwareBlockStore.js +109 -0
- package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -1
- package/src/lib/stores/diskBlockAsyncStore.d.ts +82 -4
- package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockAsyncStore.js +403 -64
- package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
- package/src/lib/stores/diskBlockMetadataStore.d.ts +1 -1
- package/src/lib/stores/diskBlockMetadataStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockMetadataStore.js +1 -1
- package/src/lib/stores/diskBlockMetadataStore.js.map +1 -1
- package/src/lib/stores/diskBlockStore.d.ts +5 -4
- package/src/lib/stores/diskBlockStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockStore.js +9 -8
- package/src/lib/stores/diskBlockStore.js.map +1 -1
- package/src/lib/stores/diskBlockSyncStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockSyncStore.js +23 -23
- package/src/lib/stores/diskBlockSyncStore.js.map +1 -1
- package/src/lib/transforms/index.d.ts +4 -0
- package/src/lib/transforms/index.d.ts.map +1 -0
- package/src/lib/transforms/index.js +7 -0
- package/src/lib/transforms/index.js.map +1 -0
- package/src/lib/utils/errorResponse.d.ts +180 -0
- package/src/lib/utils/errorResponse.d.ts.map +1 -0
- package/src/lib/utils/errorResponse.js +313 -0
- package/src/lib/utils/errorResponse.js.map +1 -0
- package/src/lib/controllers/user.d.ts +0 -9
- package/src/lib/controllers/user.d.ts.map +0 -1
- package/src/lib/controllers/user.js +0 -21
- package/src/lib/controllers/user.js.map +0 -1
- package/src/lib/interfaces/api-express-validation-error-response.d.ts +0 -7
- package/src/lib/interfaces/api-express-validation-error-response.d.ts.map +0 -1
- package/src/lib/interfaces/api-express-validation-error-response.js +0 -3
- package/src/lib/interfaces/api-express-validation-error-response.js.map +0 -1
- package/src/lib/interfaces/api-mongo-validation-error-response.d.ts +0 -6
- package/src/lib/interfaces/api-mongo-validation-error-response.d.ts.map +0 -1
- package/src/lib/interfaces/api-mongo-validation-error-response.js +0 -3
- package/src/lib/interfaces/api-mongo-validation-error-response.js.map +0 -1
- package/src/lib/interfaces/authenticated-cipher.d.ts +0 -10
- package/src/lib/interfaces/authenticated-cipher.d.ts.map +0 -1
- package/src/lib/interfaces/authenticated-cipher.js +0 -3
- package/src/lib/interfaces/authenticated-cipher.js.map +0 -1
- package/src/lib/interfaces/authenticated-decipher.d.ts +0 -9
- package/src/lib/interfaces/authenticated-decipher.d.ts.map +0 -1
- package/src/lib/interfaces/authenticated-decipher.js +0 -3
- package/src/lib/interfaces/authenticated-decipher.js.map +0 -1
- package/src/lib/interfaces/ecies-consts.d.ts +0 -88
- package/src/lib/interfaces/ecies-consts.d.ts.map +0 -1
- package/src/lib/interfaces/ecies-consts.js.map +0 -1
- package/src/lib/interfaces/mongo-errors.d.ts +0 -9
- package/src/lib/interfaces/mongo-errors.d.ts.map +0 -1
- package/src/lib/interfaces/mongo-errors.js.map +0 -1
- package/src/lib/interfaces/pbkdf2-result.d.ts +0 -6
- package/src/lib/interfaces/pbkdf2-result.d.ts.map +0 -1
- package/src/lib/interfaces/pbkdf2-result.js.map +0 -1
- package/src/lib/interfaces/server-init-result.d.ts +0 -34
- package/src/lib/interfaces/server-init-result.d.ts.map +0 -1
- package/src/lib/interfaces/server-init-result.js.map +0 -1
- package/src/lib/services/keyWrapping.d.ts +0 -61
- package/src/lib/services/keyWrapping.d.ts.map +0 -1
- package/src/lib/services/keyWrapping.js +0 -297
- package/src/lib/services/keyWrapping.js.map +0 -1
- package/src/lib/services/pbkdf2.d.ts +0 -6
- package/src/lib/services/pbkdf2.d.ts.map +0 -1
- package/src/lib/services/pbkdf2.js +0 -31
- package/src/lib/services/pbkdf2.js.map +0 -1
- package/src/lib/services/user.d.ts +0 -10
- package/src/lib/services/user.d.ts.map +0 -1
- package/src/lib/services/user.js +0 -11
- package/src/lib/services/user.js.map +0 -1
- /package/{README.md → brightchain-api-lib/README.md} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAc3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;GAEG;AACH,qBAAa,SAAS,CACpB,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,UAAU,CAAC,GAAG,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyB;IAC3D;;OAEG;gBACS,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;CAoCtD"}
|
package/src/lib/routers/api.js
CHANGED
|
@@ -4,10 +4,13 @@ exports.ApiRouter = void 0;
|
|
|
4
4
|
const node_ecies_lib_1 = require("@digitaldefiance/node-ecies-lib");
|
|
5
5
|
const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
|
|
6
6
|
const appConstants_1 = require("../appConstants");
|
|
7
|
-
const
|
|
7
|
+
const blocks_1 = require("../controllers/api/blocks");
|
|
8
|
+
const cbl_1 = require("../controllers/api/cbl");
|
|
9
|
+
const energy_1 = require("../controllers/api/energy");
|
|
10
|
+
const i18n_1 = require("../controllers/api/i18n");
|
|
11
|
+
const quorum_1 = require("../controllers/api/quorum");
|
|
12
|
+
const user_1 = require("../controllers/api/user");
|
|
8
13
|
const email_1 = require("../services/email");
|
|
9
|
-
const keyWrapping_1 = require("../services/keyWrapping");
|
|
10
|
-
const user_2 = require("../services/user");
|
|
11
14
|
const base_1 = require("./base");
|
|
12
15
|
/**
|
|
13
16
|
* Router for the API
|
|
@@ -21,7 +24,7 @@ class ApiRouter extends base_1.BaseRouter {
|
|
|
21
24
|
this.jwtService = new node_express_suite_1.JwtService(application);
|
|
22
25
|
this.roleService = new node_express_suite_1.RoleService(application);
|
|
23
26
|
this.emailService = new email_1.EmailService(application);
|
|
24
|
-
this.keyWrappingService = new
|
|
27
|
+
this.keyWrappingService = new node_express_suite_1.KeyWrappingService();
|
|
25
28
|
const config = {
|
|
26
29
|
curveName: appConstants_1.AppConstants.ECIES.CURVE_NAME,
|
|
27
30
|
primaryKeyDerivationPath: appConstants_1.AppConstants.ECIES.PRIMARY_KEY_DERIVATION_PATH,
|
|
@@ -32,9 +35,18 @@ class ApiRouter extends base_1.BaseRouter {
|
|
|
32
35
|
};
|
|
33
36
|
this.eciesService = new node_ecies_lib_1.ECIESService(config);
|
|
34
37
|
this.backupCodeService = new node_express_suite_1.BackupCodeService(application, this.eciesService, this.keyWrappingService, this.roleService);
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
38
|
+
this.userController = new user_1.UserController(application);
|
|
39
|
+
this.blocksController = new blocks_1.BlocksController(application);
|
|
40
|
+
this.energyController = new energy_1.EnergyController(application);
|
|
41
|
+
this.i18nController = new i18n_1.I18nController(application);
|
|
42
|
+
this.quorumController = new quorum_1.QuorumController(application);
|
|
43
|
+
this.cblController = new cbl_1.CBLController(application);
|
|
37
44
|
this.router.use('/user', this.userController.router);
|
|
45
|
+
this.router.use('/blocks', this.blocksController.router);
|
|
46
|
+
this.router.use('/i18n', this.i18nController.router);
|
|
47
|
+
this.router.use('/energy', this.energyController.router);
|
|
48
|
+
this.router.use('/quorum', this.quorumController.router);
|
|
49
|
+
this.router.use('/cbl', this.cblController.router);
|
|
38
50
|
}
|
|
39
51
|
}
|
|
40
52
|
exports.ApiRouter = ApiRouter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/api.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/api.ts"],"names":[],"mappings":";;;AAEA,oEAA2E;AAC3E,4EAK6C;AAC7C,kDAA+C;AAC/C,sDAA6D;AAC7D,gDAAuD;AACvD,sDAA6D;AAC7D,kDAAyD;AACzD,sDAA6D;AAC7D,kDAAyD;AAEzD,6CAAiD;AAEjD,iCAAoC;AAEpC;;GAEG;AACH,MAAa,SAEX,SAAQ,iBAAe;IAavB;;OAEG;IACH,YAAY,WAAyC;QACnD,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,+BAAU,CAAM,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,IAAI,gCAAW,CAAM,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,oBAAY,CAAM,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAkB,EAAE,CAAC;QACnD,MAAM,MAAM,GAAiB;YAC3B,SAAS,EAAE,2BAAY,CAAC,KAAK,CAAC,UAAU;YACxC,wBAAwB,EAAE,2BAAY,CAAC,KAAK,CAAC,2BAA2B;YACxE,gBAAgB,EAAE,2BAAY,CAAC,KAAK,CAAC,iBAAiB;YACtD,kBAAkB,EAAE,2BAAY,CAAC,KAAK,CAAC,iCAAiC;YACxE,gBAAgB,EAAE,2BAAY,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ;YACvD,gBAAgB,EAAE,2BAAY,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI;SACpD,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,6BAAY,CAAM,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,IAAI,sCAAiB,CAC5C,WAAW,EACX,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,kBAAyB,EAC9B,IAAI,CAAC,WAAW,CACjB,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,qBAAc,CAAM,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAgB,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAgB,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,qBAAc,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAgB,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAa,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;CACF;AAtDD,8BAsDC"}
|
package/src/lib/routers/app.d.ts
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
1
2
|
import { Application } from 'express';
|
|
2
3
|
import { ApiRouter } from './api';
|
|
3
4
|
/**
|
|
4
5
|
* Application router
|
|
5
6
|
* Sets up the API and static file serving
|
|
6
7
|
*/
|
|
7
|
-
export declare class AppRouter {
|
|
8
|
+
export declare class AppRouter<TID extends PlatformID> {
|
|
8
9
|
private readonly viewsPath;
|
|
9
10
|
private readonly indexPath;
|
|
10
11
|
private readonly assetsDir;
|
|
11
12
|
private readonly apiRouter;
|
|
12
13
|
private readonly application;
|
|
13
|
-
constructor(apiRouter: ApiRouter);
|
|
14
|
+
constructor(apiRouter: ApiRouter<TID>);
|
|
14
15
|
getAssetFilename(assetDir: string, pattern: RegExp): string | undefined;
|
|
15
16
|
/**
|
|
16
17
|
* Initialize the application router
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAY7D,OAAO,EACL,WAAW,EAIZ,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOlC;;;GAGG;AACH,qBAAa,SAAS,CAAC,GAAG,SAAS,UAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;gBAEpC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC;IAW9B,gBAAgB,CACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,SAAS;IASrB;;;;OAIG;IACI,IAAI,CAAC,GAAG,EAAE,WAAW;CA2H7B"}
|
package/src/lib/routers/app.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AppRouter = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
5
|
const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
|
|
7
6
|
const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
|
|
8
7
|
const ejs_1 = tslib_1.__importDefault(require("ejs"));
|
|
@@ -101,14 +100,16 @@ class AppRouter {
|
|
|
101
100
|
(req.socket.localPort === 80 && req.protocol === 'http')
|
|
102
101
|
? `${req.protocol}://${hostname}`
|
|
103
102
|
: `${req.protocol}://${hostname}:${req.socket.localPort}`;
|
|
103
|
+
const environment = this.apiRouter.application
|
|
104
|
+
.environment;
|
|
104
105
|
res.render('index', {
|
|
105
106
|
cspNonce,
|
|
106
107
|
title: SiteName,
|
|
107
108
|
tagline: 'The Future of Decentralized Storage', // translate(SuiteCoreStringKey.SiteTagline),
|
|
108
109
|
server: server,
|
|
109
|
-
siteUrl:
|
|
110
|
-
baseHref:
|
|
111
|
-
fontawesomeKitId:
|
|
110
|
+
siteUrl: environment.serverUrl,
|
|
111
|
+
baseHref: environment.basePath,
|
|
112
|
+
fontawesomeKitId: environment.fontAwesomeKitId,
|
|
112
113
|
hostname: hostname,
|
|
113
114
|
siteTitle: SiteName,
|
|
114
115
|
jsFile: jsFile ? `assets/${jsFile}` : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/app.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
2
|
+
import { IApplication } from '@digitaldefiance/node-express-suite';
|
|
1
3
|
import { Router } from 'express';
|
|
2
|
-
import {
|
|
3
|
-
export declare abstract class BaseRouter {
|
|
4
|
+
import { DefaultBackendIdType } from '../shared-types';
|
|
5
|
+
export declare abstract class BaseRouter<TID extends PlatformID = DefaultBackendIdType> {
|
|
4
6
|
readonly router: Router;
|
|
5
|
-
readonly application: IApplication
|
|
6
|
-
protected constructor(application: IApplication);
|
|
7
|
+
readonly application: IApplication<TID>;
|
|
8
|
+
protected constructor(application: IApplication<TID>);
|
|
7
9
|
}
|
|
8
10
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,8BAAsB,UAAU,CAC9B,GAAG,SAAS,UAAU,GAAG,oBAAoB;IAE7C,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IAC/C,SAAS,aAAa,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC;CAIrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/base.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/base.ts"],"names":[],"mappings":";;;AAEA,qCAAiC;AAGjC,MAAsB,UAAU;IAK9B,YAAsB,WAA8B;QAClD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IACzB,CAAC;CACF;AATD,gCASC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./api"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./app"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./base"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./messageRouter"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/routers/index.ts"],"names":[],"mappings":";;;AAAA,gDAAsB;AACtB,gDAAsB;AACtB,iDAAuB;AACvB,0DAAgC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { EnergyAccountStore, MemberStore } from '@brightchain/brightchain-lib';
|
|
2
|
+
import { MemberType, SecureString } from '@digitaldefiance/ecies-lib';
|
|
3
|
+
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
4
|
+
import { IBrightChainApplication } from '../interfaces/application';
|
|
5
|
+
import { IAuthCredentials } from '../interfaces/auth-credentials';
|
|
6
|
+
import { IAuthToken } from '../interfaces/auth-token';
|
|
7
|
+
import { ITokenPayload } from '../interfaces/token-payload';
|
|
8
|
+
import { DefaultBackendIdType } from '../shared-types';
|
|
9
|
+
import { BaseService } from './base';
|
|
10
|
+
import { EmailService } from './email';
|
|
11
|
+
export declare class AuthService<TID extends PlatformID = DefaultBackendIdType> extends BaseService<TID> {
|
|
12
|
+
private memberStore;
|
|
13
|
+
private energyStore;
|
|
14
|
+
private emailService;
|
|
15
|
+
private jwtSecret;
|
|
16
|
+
constructor(application: IBrightChainApplication<TID>, memberStore: MemberStore, energyStore: EnergyAccountStore, emailService: EmailService<TID>, jwtSecret: string);
|
|
17
|
+
register(username: string, email: string, _mnemonic?: SecureString): Promise<IAuthToken>;
|
|
18
|
+
login(credentials: IAuthCredentials): Promise<IAuthToken>;
|
|
19
|
+
signToken(memberId: string, username: string, type: MemberType): string;
|
|
20
|
+
verifyToken(token: string): Promise<ITokenPayload>;
|
|
21
|
+
private sendWelcomeEmail;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kBAAkB,EAClB,WAAW,EACZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,qBAAa,WAAW,CACtB,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,WAAW,CAAC,GAAG,CAAC;IACxB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAS;gBAGxB,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC,EACzC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,kBAAkB,EAC/B,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,EAC/B,SAAS,EAAE,MAAM;IASb,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,YAAY,GACvB,OAAO,CAAC,UAAU,CAAC;IAwBhB,KAAK,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IA0B/D,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM;IAYjE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;YAS1C,gBAAgB;CA2B/B"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const brightchain_lib_1 = require("@brightchain/brightchain-lib");
|
|
6
|
+
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
7
|
+
const jwt = tslib_1.__importStar(require("jsonwebtoken"));
|
|
8
|
+
const base_1 = require("./base");
|
|
9
|
+
class AuthService extends base_1.BaseService {
|
|
10
|
+
constructor(application, memberStore, energyStore, emailService, jwtSecret) {
|
|
11
|
+
super(application);
|
|
12
|
+
this.memberStore = memberStore;
|
|
13
|
+
this.energyStore = energyStore;
|
|
14
|
+
this.emailService = emailService;
|
|
15
|
+
this.jwtSecret = jwtSecret;
|
|
16
|
+
}
|
|
17
|
+
async register(username, email, _mnemonic) {
|
|
18
|
+
const { reference } = await this.memberStore.createMember({
|
|
19
|
+
type: ecies_lib_1.MemberType.User,
|
|
20
|
+
name: username,
|
|
21
|
+
contactEmail: new brightchain_lib_1.EmailString(email),
|
|
22
|
+
});
|
|
23
|
+
const memberId = reference.id.toString();
|
|
24
|
+
const memberChecksum = brightchain_lib_1.Checksum.fromUint8Array(reference.id);
|
|
25
|
+
const energyAccount = brightchain_lib_1.EnergyAccount.createWithTrialCredits(memberChecksum);
|
|
26
|
+
await this.energyStore.set(memberChecksum, energyAccount);
|
|
27
|
+
await this.sendWelcomeEmail(email, username);
|
|
28
|
+
const token = this.signToken(memberId, username, reference.type);
|
|
29
|
+
return {
|
|
30
|
+
token,
|
|
31
|
+
memberId,
|
|
32
|
+
energyBalance: energyAccount.balance,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
async login(credentials) {
|
|
36
|
+
const results = await this.memberStore.queryIndex({ limit: 1 });
|
|
37
|
+
if (results.length === 0) {
|
|
38
|
+
throw new Error('Invalid credentials');
|
|
39
|
+
}
|
|
40
|
+
const reference = results[0];
|
|
41
|
+
const memberId = reference.id.toString();
|
|
42
|
+
const memberChecksum = brightchain_lib_1.Checksum.fromUint8Array(reference.id);
|
|
43
|
+
const energyAccount = await this.energyStore.getOrCreate(memberChecksum);
|
|
44
|
+
const token = this.signToken(memberId, credentials.username, reference.type);
|
|
45
|
+
return {
|
|
46
|
+
token,
|
|
47
|
+
memberId,
|
|
48
|
+
energyBalance: energyAccount.balance,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
signToken(memberId, username, type) {
|
|
52
|
+
const payload = {
|
|
53
|
+
memberId,
|
|
54
|
+
username,
|
|
55
|
+
type,
|
|
56
|
+
};
|
|
57
|
+
return jwt.sign(payload, this.jwtSecret, {
|
|
58
|
+
expiresIn: '7d',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
async verifyToken(token) {
|
|
62
|
+
try {
|
|
63
|
+
const decoded = jwt.verify(token, this.jwtSecret);
|
|
64
|
+
return decoded;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
throw new Error('Invalid token');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async sendWelcomeEmail(email, username) {
|
|
71
|
+
if (!this.emailService) {
|
|
72
|
+
console.log(`[EmailService disabled] Would send welcome email to ${email}`);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const subject = 'Welcome to BrightChain';
|
|
76
|
+
const text = `Welcome ${username}!\n\nYour account has been created successfully. You've been credited with 1000 Joules to get started.\n\nBest regards,\nThe BrightChain Team`;
|
|
77
|
+
const html = `
|
|
78
|
+
<h1>Welcome to BrightChain!</h1>
|
|
79
|
+
<p>Hi ${username},</p>
|
|
80
|
+
<p>Your account has been created successfully.</p>
|
|
81
|
+
<p><strong>You've been credited with 1000 Joules to get started.</strong></p>
|
|
82
|
+
<p>Best regards,<br/>The BrightChain Team</p>
|
|
83
|
+
`;
|
|
84
|
+
try {
|
|
85
|
+
await this.emailService.sendEmail(email, subject, text, html);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.error('Failed to send welcome email:', error);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.AuthService = AuthService;
|
|
93
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
2
|
+
import { BaseService as UpstreamBaseService } from '@digitaldefiance/node-express-suite';
|
|
3
|
+
import { IBrightChainApplication } from '../interfaces/application';
|
|
4
|
+
import { DefaultBackendIdType } from '../shared-types';
|
|
5
|
+
/**
|
|
6
|
+
* Base service class
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class BaseService<TID extends PlatformID = DefaultBackendIdType> extends UpstreamBaseService<TID, IBrightChainApplication<TID>> {
|
|
9
|
+
protected readonly application: IBrightChainApplication<TID>;
|
|
10
|
+
constructor(application: IBrightChainApplication<TID>);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD;;GAEG;AACH,8BAAsB,WAAW,CAC/B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,mBAAmB,CAAC,GAAG,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC9D,mBAA4B,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;gBAE1D,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;CAItD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseService = void 0;
|
|
4
|
+
const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
|
|
5
|
+
/**
|
|
6
|
+
* Base service class
|
|
7
|
+
*/
|
|
8
|
+
class BaseService extends node_express_suite_1.BaseService {
|
|
9
|
+
constructor(application) {
|
|
10
|
+
super(application);
|
|
11
|
+
this.application = application;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.BaseService = BaseService;
|
|
15
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/base.ts"],"names":[],"mappings":";;;AACA,4EAAyF;AAIzF;;GAEG;AACH,MAAsB,WAEpB,SAAQ,gCAAsD;IAG9D,YAAY,WAAyC;QACnD,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AATD,kCASC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
2
|
+
import { IBrightChainApplication } from '../interfaces';
|
|
3
|
+
import { IBlockService } from '../interfaces/blockService';
|
|
4
|
+
import { DefaultBackendIdType } from '../shared-types';
|
|
5
|
+
/**
|
|
6
|
+
* Factory for creating and managing BlockService instances.
|
|
7
|
+
*
|
|
8
|
+
* This factory ensures that:
|
|
9
|
+
* - Only one BlockService instance exists per application
|
|
10
|
+
* - Services are properly initialized with FEC support
|
|
11
|
+
* - Services can be cleared for testing purposes
|
|
12
|
+
*/
|
|
13
|
+
export declare class BlockServiceFactory<TID extends PlatformID = DefaultBackendIdType> {
|
|
14
|
+
private static instance;
|
|
15
|
+
private services;
|
|
16
|
+
private constructor();
|
|
17
|
+
static getInstance(): BlockServiceFactory;
|
|
18
|
+
/**
|
|
19
|
+
* Get or create a block service instance for the given application.
|
|
20
|
+
* The service is initialized with FEC support if available.
|
|
21
|
+
*/
|
|
22
|
+
getService(application: IBrightChainApplication<TID>): IBlockService;
|
|
23
|
+
/**
|
|
24
|
+
* Clear all service instances.
|
|
25
|
+
* Useful for testing or when reconfiguring the application.
|
|
26
|
+
*/
|
|
27
|
+
clearServices(): void;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=blockServiceFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockServiceFactory.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/blockServiceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvD;;;;;;;GAOG;AACH,qBAAa,mBAAmB,CAC9B,GAAG,SAAS,UAAU,GAAG,oBAAoB;IAE7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAmD;IAEnE,OAAO;WAIO,WAAW,IAAI,mBAAmB;IAOhD;;;OAGG;IACI,UAAU,CAAC,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC,GAAG,aAAa;IAO3E;;;OAGG;IACI,aAAa,IAAI,IAAI;CAG7B"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BlockServiceFactory = void 0;
|
|
4
|
+
const blocks_1 = require("./blocks");
|
|
5
|
+
/**
|
|
6
|
+
* Factory for creating and managing BlockService instances.
|
|
7
|
+
*
|
|
8
|
+
* This factory ensures that:
|
|
9
|
+
* - Only one BlockService instance exists per application
|
|
10
|
+
* - Services are properly initialized with FEC support
|
|
11
|
+
* - Services can be cleared for testing purposes
|
|
12
|
+
*/
|
|
13
|
+
class BlockServiceFactory {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.services = new WeakMap();
|
|
16
|
+
}
|
|
17
|
+
static getInstance() {
|
|
18
|
+
if (!BlockServiceFactory.instance) {
|
|
19
|
+
BlockServiceFactory.instance = new BlockServiceFactory();
|
|
20
|
+
}
|
|
21
|
+
return BlockServiceFactory.instance;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get or create a block service instance for the given application.
|
|
25
|
+
* The service is initialized with FEC support if available.
|
|
26
|
+
*/
|
|
27
|
+
getService(application) {
|
|
28
|
+
if (!this.services.has(application)) {
|
|
29
|
+
this.services.set(application, new blocks_1.BlocksService(application));
|
|
30
|
+
}
|
|
31
|
+
return this.services.get(application);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Clear all service instances.
|
|
35
|
+
* Useful for testing or when reconfiguring the application.
|
|
36
|
+
*/
|
|
37
|
+
clearServices() {
|
|
38
|
+
this.services = new WeakMap();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.BlockServiceFactory = BlockServiceFactory;
|
|
42
|
+
//# sourceMappingURL=blockServiceFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockServiceFactory.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/blockServiceFactory.ts"],"names":[],"mappings":";;;AAKA,qCAAyC;AAEzC;;;;;;;GAOG;AACH,MAAa,mBAAmB;IAM9B;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YAClC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3D,CAAC;QACD,OAAO,mBAAmB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,WAAyC;QACzD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,sBAAa,CAAC,WAAW,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,aAAa;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;IAChC,CAAC;CACF;AAnCD,kDAmCC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { BlockStoreOptions, BrightenResult, IBlockMetadata, IFecService } from '@brightchain/brightchain-lib';
|
|
2
|
+
import { BlockSize } from '@brightchain/brightchain-lib/lib/enumerations/blockSize';
|
|
3
|
+
import { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
4
|
+
import { IBrightChainApplication } from '../interfaces';
|
|
5
|
+
import { IBlockStore } from '../interfaces/blockStore';
|
|
6
|
+
import { DefaultBackendIdType } from '../shared-types';
|
|
7
|
+
import { DiskBlockAsyncStore } from '../stores';
|
|
8
|
+
import { BaseService } from './base';
|
|
9
|
+
/**
|
|
10
|
+
* Service for block storage operations backed by the BrightChain disk blockstore.
|
|
11
|
+
*
|
|
12
|
+
* This service initializes the DiskBlockAsyncStore with:
|
|
13
|
+
* - DiskBlockMetadataStore for tracking block lifecycle and access patterns
|
|
14
|
+
* - FEC service (via FecServiceFactory) for parity generation and recovery
|
|
15
|
+
*
|
|
16
|
+
* The FEC service is initialized asynchronously on first use to avoid blocking
|
|
17
|
+
* the constructor. Use ensureInitialized() to ensure the FEC service is ready.
|
|
18
|
+
*/
|
|
19
|
+
export declare class BlockStoreService<TID extends PlatformID = DefaultBackendIdType> extends BaseService<TID> implements IBlockStore {
|
|
20
|
+
private readonly store;
|
|
21
|
+
private fecServiceInitialized;
|
|
22
|
+
private fecServicePromise;
|
|
23
|
+
constructor(application: IBrightChainApplication<TID>);
|
|
24
|
+
/**
|
|
25
|
+
* Initialize the FEC service asynchronously.
|
|
26
|
+
* This is called automatically in the constructor but can be awaited
|
|
27
|
+
* to ensure the FEC service is ready before use.
|
|
28
|
+
*/
|
|
29
|
+
private initializeFecService;
|
|
30
|
+
/**
|
|
31
|
+
* Ensure the FEC service is initialized before performing operations
|
|
32
|
+
* that require it. This is optional - operations will work without FEC
|
|
33
|
+
* but won't have parity protection.
|
|
34
|
+
*/
|
|
35
|
+
ensureInitialized(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Get the underlying DiskBlockAsyncStore instance.
|
|
38
|
+
* Useful for advanced operations or testing.
|
|
39
|
+
*/
|
|
40
|
+
getStore(): DiskBlockAsyncStore;
|
|
41
|
+
/**
|
|
42
|
+
* Get the FEC service if available.
|
|
43
|
+
*/
|
|
44
|
+
getFecService(): IFecService | null;
|
|
45
|
+
getBlockSize(): BlockSize;
|
|
46
|
+
storeBlock(data: Buffer, options?: BlockStoreOptions): Promise<string>;
|
|
47
|
+
getBlock(blockId: string): Promise<Buffer>;
|
|
48
|
+
getBlockMetadata(blockId: string): Promise<IBlockMetadata | null>;
|
|
49
|
+
deleteBlock(blockId: string): Promise<void>;
|
|
50
|
+
brightenBlock(blockId: string, randomBlockCount: number): Promise<BrightenResult>;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=blockStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/blockStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,WAAW,EACZ,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,yDAAyD,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGrC;;;;;;;;;GASG;AACH,qBAAa,iBAAiB,CAAC,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC1E,SAAQ,WAAW,CAAC,GAAG,CACvB,YAAW,WAAW;IAEtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,iBAAiB,CAA8B;gBAE3C,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAerD;;;;OAIG;YACW,oBAAoB;IA8BlC;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;OAGG;IACH,QAAQ,IAAI,mBAAmB;IAI/B;;OAEG;IACH,aAAa,IAAI,WAAW,GAAG,IAAI;IAInC,YAAY,IAAI,SAAS;IAInB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAOtE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1C,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAIjE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,cAAc,CAAC;CAG3B"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BlockStoreService = void 0;
|
|
4
|
+
const rawData_1 = require("@brightchain/brightchain-lib/lib/blocks/rawData");
|
|
5
|
+
const blockSize_1 = require("@brightchain/brightchain-lib/lib/enumerations/blockSize");
|
|
6
|
+
const checksum_1 = require("@brightchain/brightchain-lib/lib/types/checksum");
|
|
7
|
+
const stores_1 = require("../stores");
|
|
8
|
+
const base_1 = require("./base");
|
|
9
|
+
const fecServiceFactory_1 = require("./fecServiceFactory");
|
|
10
|
+
/**
|
|
11
|
+
* Service for block storage operations backed by the BrightChain disk blockstore.
|
|
12
|
+
*
|
|
13
|
+
* This service initializes the DiskBlockAsyncStore with:
|
|
14
|
+
* - DiskBlockMetadataStore for tracking block lifecycle and access patterns
|
|
15
|
+
* - FEC service (via FecServiceFactory) for parity generation and recovery
|
|
16
|
+
*
|
|
17
|
+
* The FEC service is initialized asynchronously on first use to avoid blocking
|
|
18
|
+
* the constructor. Use ensureInitialized() to ensure the FEC service is ready.
|
|
19
|
+
*/
|
|
20
|
+
class BlockStoreService extends base_1.BaseService {
|
|
21
|
+
constructor(application) {
|
|
22
|
+
super(application);
|
|
23
|
+
this.fecServiceInitialized = false;
|
|
24
|
+
this.fecServicePromise = null;
|
|
25
|
+
const storePath = this.application.environment.blockStorePath ?? 'tmp/blockstore';
|
|
26
|
+
const blockSize = (this.application.environment.blockStoreBlockSize
|
|
27
|
+
? this.application.environment.blockStoreBlockSize
|
|
28
|
+
: blockSize_1.BlockSize.Medium);
|
|
29
|
+
this.store = new stores_1.DiskBlockAsyncStore({ storePath, blockSize });
|
|
30
|
+
// Start FEC service initialization in the background
|
|
31
|
+
this.initializeFecService();
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Initialize the FEC service asynchronously.
|
|
35
|
+
* This is called automatically in the constructor but can be awaited
|
|
36
|
+
* to ensure the FEC service is ready before use.
|
|
37
|
+
*/
|
|
38
|
+
async initializeFecService() {
|
|
39
|
+
if (this.fecServiceInitialized) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (this.fecServicePromise) {
|
|
43
|
+
return this.fecServicePromise;
|
|
44
|
+
}
|
|
45
|
+
this.fecServicePromise = (async () => {
|
|
46
|
+
try {
|
|
47
|
+
const fecService = await fecServiceFactory_1.FecServiceFactory.getBestAvailable();
|
|
48
|
+
this.store.setFecService(fecService);
|
|
49
|
+
this.fecServiceInitialized = true;
|
|
50
|
+
console.log('[BlockStoreService] FEC service initialized successfully');
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
// FEC service is optional - log warning but don't fail
|
|
54
|
+
console.warn('[BlockStoreService] FEC service not available:', error instanceof Error ? error.message : String(error));
|
|
55
|
+
console.warn('[BlockStoreService] Block storage will work without FEC parity protection');
|
|
56
|
+
}
|
|
57
|
+
})();
|
|
58
|
+
return this.fecServicePromise;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Ensure the FEC service is initialized before performing operations
|
|
62
|
+
* that require it. This is optional - operations will work without FEC
|
|
63
|
+
* but won't have parity protection.
|
|
64
|
+
*/
|
|
65
|
+
async ensureInitialized() {
|
|
66
|
+
await this.initializeFecService();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get the underlying DiskBlockAsyncStore instance.
|
|
70
|
+
* Useful for advanced operations or testing.
|
|
71
|
+
*/
|
|
72
|
+
getStore() {
|
|
73
|
+
return this.store;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get the FEC service if available.
|
|
77
|
+
*/
|
|
78
|
+
getFecService() {
|
|
79
|
+
return this.store.getFecService();
|
|
80
|
+
}
|
|
81
|
+
getBlockSize() {
|
|
82
|
+
return this.store.blockSize;
|
|
83
|
+
}
|
|
84
|
+
async storeBlock(data, options) {
|
|
85
|
+
const block = new rawData_1.RawDataBlock(this.store.blockSize, data);
|
|
86
|
+
const blockId = block.idChecksum.toHex();
|
|
87
|
+
await this.store.setData(block, options);
|
|
88
|
+
return blockId;
|
|
89
|
+
}
|
|
90
|
+
async getBlock(blockId) {
|
|
91
|
+
const block = await this.store.getData(checksum_1.Checksum.fromHex(blockId));
|
|
92
|
+
return Buffer.from(block.data);
|
|
93
|
+
}
|
|
94
|
+
async getBlockMetadata(blockId) {
|
|
95
|
+
return this.store.getMetadata(blockId);
|
|
96
|
+
}
|
|
97
|
+
async deleteBlock(blockId) {
|
|
98
|
+
await this.store.delete(blockId);
|
|
99
|
+
}
|
|
100
|
+
async brightenBlock(blockId, randomBlockCount) {
|
|
101
|
+
return this.store.brightenBlock(blockId, randomBlockCount);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.BlockStoreService = BlockStoreService;
|
|
105
|
+
//# sourceMappingURL=blockStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockStore.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/blockStore.ts"],"names":[],"mappings":"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"}
|