@brightchain/node-express-suite 0.26.1 → 0.27.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 +3 -3
- package/src/index.d.ts +2 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +5 -1
- package/src/index.js.map +1 -1
- package/src/lib/constants.js +1 -1
- package/src/lib/constants.js.map +1 -1
- package/src/lib/environment.d.ts +13 -0
- package/src/lib/environment.d.ts.map +1 -1
- package/src/lib/environment.js +33 -0
- package/src/lib/environment.js.map +1 -1
- package/src/lib/plugins/bright-db-database-plugin.d.ts +5 -1
- package/src/lib/plugins/bright-db-database-plugin.d.ts.map +1 -1
- package/src/lib/plugins/bright-db-database-plugin.js +15 -3
- package/src/lib/plugins/bright-db-database-plugin.js.map +1 -1
- package/src/lib/services/dev-store-seeder.d.ts +49 -0
- package/src/lib/services/dev-store-seeder.d.ts.map +1 -0
- package/src/lib/services/dev-store-seeder.js +95 -0
- package/src/lib/services/dev-store-seeder.js.map +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brightchain/node-express-suite",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"@digitaldefiance/branded-interface": "^0.0.5",
|
|
13
13
|
"@digitaldefiance/node-ecies-lib": "^4.20.0",
|
|
14
14
|
"@digitaldefiance/node-express-suite": "^4.20.1",
|
|
15
|
-
"@brightchain/brightchain-lib": "^0.
|
|
16
|
-
"@brightchain/db": "^0.
|
|
15
|
+
"@brightchain/brightchain-lib": "^0.27.0",
|
|
16
|
+
"@brightchain/db": "^0.27.0"
|
|
17
17
|
}
|
|
18
18
|
}
|
package/src/index.d.ts
CHANGED
|
@@ -24,6 +24,8 @@ export { BrightDbEnvironment } from './lib/environment';
|
|
|
24
24
|
export type { IAzureEnvironmentConfig, IS3EnvironmentConfig } from './lib/interfaces/environment';
|
|
25
25
|
export { BrightDbDatabasePlugin } from './lib/plugins/bright-db-database-plugin';
|
|
26
26
|
export type { IBrightDbDatabasePluginOptions } from './lib/plugins/bright-db-database-plugin';
|
|
27
|
+
export { seedDevStore, printDevStoreResults, } from './lib/services/dev-store-seeder';
|
|
28
|
+
export type { IDevMemberResult, IDevStoreSeederResult, } from './lib/services/dev-store-seeder';
|
|
27
29
|
export { BrightDbApplication } from './lib/application';
|
|
28
30
|
export type { IBrightDbApplication } from './lib/interfaces/bright-db-application';
|
|
29
31
|
export { configureBrightDbApp } from './lib/plugins/configure-bright-db-app';
|
package/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../brightchain-node-express-suite/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAG5F,YAAY,EACV,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAClG,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAG5E,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAG1E,YAAY,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGlG,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAG9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAGnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,YAAY,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAGxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AAGlG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAC9F,YAAY,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAGnG,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../brightchain-node-express-suite/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAG5F,YAAY,EACV,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAClG,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAG5E,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAG1E,YAAY,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGlG,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAG9F,OAAO,EACL,YAAY,EACZ,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAGnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,YAAY,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAGxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AAGlG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAC9F,YAAY,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAGnG,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
|
package/src/index.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @brightchain/brightchain-api-lib (domain-specific).
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.BrightDbTransactionManager = exports.BrightDbModelRegistry = exports.BrightDbBaseService = exports.BrightDbCollection = exports.createTestApp = exports.BrightDbMiddlewares = exports.BrightDbConstants = exports.BrightDbAuthenticationProvider = exports.configureBrightDbApp = exports.BrightDbApplication = exports.BrightDbDatabasePlugin = exports.BrightDbEnvironment = exports.BlockStoreFactory = exports.brightchainDatabaseInit = exports.BrightChainSessionAdapter = exports.validateBody = exports.validateRecovery = exports.validatePasswordChange = exports.validateLogin = exports.validateRegistration = exports.MemoryDocumentStore = exports.CollectionHeadRegistry = exports.BlockDocumentStore = void 0;
|
|
10
|
+
exports.BrightDbTransactionManager = exports.BrightDbModelRegistry = exports.BrightDbBaseService = exports.BrightDbCollection = exports.createTestApp = exports.BrightDbMiddlewares = exports.BrightDbConstants = exports.BrightDbAuthenticationProvider = exports.configureBrightDbApp = exports.BrightDbApplication = exports.printDevStoreResults = exports.seedDevStore = exports.BrightDbDatabasePlugin = exports.BrightDbEnvironment = exports.BlockStoreFactory = exports.brightchainDatabaseInit = exports.BrightChainSessionAdapter = exports.validateBody = exports.validateRecovery = exports.validatePasswordChange = exports.validateLogin = exports.validateRegistration = exports.MemoryDocumentStore = exports.CollectionHeadRegistry = exports.BlockDocumentStore = void 0;
|
|
11
11
|
const tslib_1 = require("tslib");
|
|
12
12
|
var block_document_store_1 = require("./lib/datastore/block-document-store");
|
|
13
13
|
Object.defineProperty(exports, "BlockDocumentStore", { enumerable: true, get: function () { return block_document_store_1.BlockDocumentStore; } });
|
|
@@ -37,6 +37,10 @@ Object.defineProperty(exports, "BrightDbEnvironment", { enumerable: true, get: f
|
|
|
37
37
|
// Plugins
|
|
38
38
|
var bright_db_database_plugin_1 = require("./lib/plugins/bright-db-database-plugin");
|
|
39
39
|
Object.defineProperty(exports, "BrightDbDatabasePlugin", { enumerable: true, get: function () { return bright_db_database_plugin_1.BrightDbDatabasePlugin; } });
|
|
40
|
+
// Dev Store Seeder
|
|
41
|
+
var dev_store_seeder_1 = require("./lib/services/dev-store-seeder");
|
|
42
|
+
Object.defineProperty(exports, "seedDevStore", { enumerable: true, get: function () { return dev_store_seeder_1.seedDevStore; } });
|
|
43
|
+
Object.defineProperty(exports, "printDevStoreResults", { enumerable: true, get: function () { return dev_store_seeder_1.printDevStoreResults; } });
|
|
40
44
|
// Application
|
|
41
45
|
var application_1 = require("./lib/application");
|
|
42
46
|
Object.defineProperty(exports, "BrightDbApplication", { enumerable: true, get: function () { return application_1.BrightDbApplication; } });
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../brightchain-node-express-suite/src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;AAsBH,6EAAkG;AAAzF,0HAAA,kBAAkB,OAAA;AAAE,8HAAA,sBAAsB,OAAA;AACnD,uFAA6D;AAC7D,yEAA+C;AAC/C,+EAA4E;AAAnE,4HAAA,mBAAmB,OAAA;AAI5B,kEAKyC;AAJvC,sHAAA,oBAAoB,OAAA;AACpB,+GAAA,aAAa,OAAA;AACb,wHAAA,sBAAsB,OAAA;AACtB,kHAAA,gBAAgB,OAAA;AAGlB,aAAa;AACb,8DAA6D;AAApD,4GAAA,YAAY,OAAA;AAIrB,gEAA0E;AAAjE,2HAAA,yBAAyB,OAAA;AAIlC,mDAA6D;AAApD,uHAAA,uBAAuB,OAAA;AAEhC,YAAY;AACZ,uEAAsE;AAA7D,sHAAA,iBAAiB,OAAA;AAE1B,cAAc;AACd,iDAAwD;AAA/C,kHAAA,mBAAmB,OAAA;AAG5B,UAAU;AACV,qFAAiF;AAAxE,mIAAA,sBAAsB,OAAA;AAG/B,cAAc;AACd,iDAAwD;AAA/C,kHAAA,mBAAmB,OAAA;AAG5B,uBAAuB;AACvB,iFAA6E;AAApE,+HAAA,oBAAoB,OAAA;AAG7B,0BAA0B;AAC1B,sGAAkG;AAAzF,mJAAA,8BAA8B,OAAA;AAEvC,YAAY;AACZ,6CAAoD;AAA3C,8GAAA,iBAAiB,OAAA;AAE1B,cAAc;AACd,iDAAwD;AAA/C,kHAAA,mBAAmB,OAAA;AAE5B,sBAAsB;AACtB,yDAA+B;AAE/B,sBAAsB;AACtB,yDAA+B;AAE/B,6BAA6B;AAC7B,gEAAsC;AAEtC,iBAAiB;AACjB,yDAAsD;AAA7C,gHAAA,aAAa,OAAA;AAGtB,2BAA2B;AAC3B,4EAAyE;AAAhE,0HAAA,kBAAkB,OAAA;AAC3B,gFAA4E;AAAnE,6HAAA,mBAAmB,OAAA;AAC5B,2EAAuE;AAA9D,iIAAA,qBAAqB,OAAA;AAE9B,kGAA8F;AAArF,2IAAA,0BAA0B,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../brightchain-node-express-suite/src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;AAsBH,6EAAkG;AAAzF,0HAAA,kBAAkB,OAAA;AAAE,8HAAA,sBAAsB,OAAA;AACnD,uFAA6D;AAC7D,yEAA+C;AAC/C,+EAA4E;AAAnE,4HAAA,mBAAmB,OAAA;AAI5B,kEAKyC;AAJvC,sHAAA,oBAAoB,OAAA;AACpB,+GAAA,aAAa,OAAA;AACb,wHAAA,sBAAsB,OAAA;AACtB,kHAAA,gBAAgB,OAAA;AAGlB,aAAa;AACb,8DAA6D;AAApD,4GAAA,YAAY,OAAA;AAIrB,gEAA0E;AAAjE,2HAAA,yBAAyB,OAAA;AAIlC,mDAA6D;AAApD,uHAAA,uBAAuB,OAAA;AAEhC,YAAY;AACZ,uEAAsE;AAA7D,sHAAA,iBAAiB,OAAA;AAE1B,cAAc;AACd,iDAAwD;AAA/C,kHAAA,mBAAmB,OAAA;AAG5B,UAAU;AACV,qFAAiF;AAAxE,mIAAA,sBAAsB,OAAA;AAG/B,mBAAmB;AACnB,oEAGyC;AAFvC,gHAAA,YAAY,OAAA;AACZ,wHAAA,oBAAoB,OAAA;AAOtB,cAAc;AACd,iDAAwD;AAA/C,kHAAA,mBAAmB,OAAA;AAG5B,uBAAuB;AACvB,iFAA6E;AAApE,+HAAA,oBAAoB,OAAA;AAG7B,0BAA0B;AAC1B,sGAAkG;AAAzF,mJAAA,8BAA8B,OAAA;AAEvC,YAAY;AACZ,6CAAoD;AAA3C,8GAAA,iBAAiB,OAAA;AAE1B,cAAc;AACd,iDAAwD;AAA/C,kHAAA,mBAAmB,OAAA;AAE5B,sBAAsB;AACtB,yDAA+B;AAE/B,sBAAsB;AACtB,yDAA+B;AAE/B,6BAA6B;AAC7B,gEAAsC;AAEtC,iBAAiB;AACjB,yDAAsD;AAA7C,gHAAA,aAAa,OAAA;AAGtB,2BAA2B;AAC3B,4EAAyE;AAAhE,0HAAA,kBAAkB,OAAA;AAC3B,gFAA4E;AAAnE,6HAAA,mBAAmB,OAAA;AAC5B,2EAAuE;AAA9D,iIAAA,qBAAqB,OAAA;AAE9B,kGAA8F;AAArF,2IAAA,0BAA0B,OAAA"}
|
package/src/lib/constants.js
CHANGED
|
@@ -6,7 +6,7 @@ const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
|
|
|
6
6
|
* Generic BrightDB constants using createExpressConstants with minimal defaults.
|
|
7
7
|
* Domain-specific constants (site name, tagline, etc.) are set by consuming libraries.
|
|
8
8
|
*/
|
|
9
|
-
exports.BrightDbConstants = (0, node_express_suite_1.createExpressConstants)(
|
|
9
|
+
exports.BrightDbConstants = (0, node_express_suite_1.createExpressConstants)({
|
|
10
10
|
Site: 'BrightDB',
|
|
11
11
|
});
|
|
12
12
|
//# sourceMappingURL=constants.js.map
|
package/src/lib/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../brightchain-node-express-suite/src/lib/constants.ts"],"names":[],"mappings":";;;AAAA,4EAA6E;AAE7E;;;GAGG;AACU,QAAA,iBAAiB,GAAG,IAAA,2CAAsB,EAAC
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../brightchain-node-express-suite/src/lib/constants.ts"],"names":[],"mappings":";;;AAAA,4EAA6E;AAE7E;;;GAGG;AACU,QAAA,iBAAiB,GAAG,IAAA,2CAAsB,EAAC;IACtD,IAAI,EAAE,UAAU;CACjB,CAAC,CAAC"}
|
package/src/lib/environment.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export declare class BrightDbEnvironment<TID extends PlatformID = DefaultBackend
|
|
|
24
24
|
protected _azureConfig?: IAzureEnvironmentConfig;
|
|
25
25
|
protected _s3Config?: IS3EnvironmentConfig;
|
|
26
26
|
protected _memberPoolName: string;
|
|
27
|
+
protected _emailDomain: string;
|
|
27
28
|
constructor(path?: string, initialization?: boolean, override?: boolean, constants?: IConstants);
|
|
28
29
|
get blockStorePath(): string | undefined;
|
|
29
30
|
/**
|
|
@@ -60,5 +61,17 @@ export declare class BrightDbEnvironment<TID extends PlatformID = DefaultBackend
|
|
|
60
61
|
* Member pool name (e.g. 'BrightChain')
|
|
61
62
|
*/
|
|
62
63
|
get memberPoolName(): string;
|
|
64
|
+
/**
|
|
65
|
+
* The canonical email domain for this BrightChain instance.
|
|
66
|
+
* Parsed from `EMAIL_DOMAIN` env var, falling back to the domain portion
|
|
67
|
+
* of `EMAIL_SENDER`, or `'example.com'` if neither is set.
|
|
68
|
+
*/
|
|
69
|
+
get emailDomain(): string;
|
|
70
|
+
/**
|
|
71
|
+
* Update the email domain at runtime (hot-reload support).
|
|
72
|
+
* @param newDomain - The new canonical email domain
|
|
73
|
+
* @see Requirement 8.5 — dynamic configuration reload
|
|
74
|
+
*/
|
|
75
|
+
set emailDomain(newDomain: string);
|
|
63
76
|
}
|
|
64
77
|
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../brightchain-node-express-suite/src/lib/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,WAAW,IAAI,eAAe,EAC9B,UAAU,EACX,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,SAAS,EACT,cAAc,EAEf,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,qBAAa,mBAAmB,CAAC,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC5E,SAAQ,eAAe,CAAC,GAAG,CAAC;IAE5B,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,qBAAqB,EAAE,SAAS,EAAE,CAAC;IAC7C,SAAS,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC3C,SAAS,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,SAAS,CAAC,eAAe,EAAE,cAAc,CAAC;IAC1C,SAAS,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACjD,SAAS,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC;IAC3C,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../../brightchain-node-express-suite/src/lib/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,WAAW,IAAI,eAAe,EAC9B,UAAU,EACX,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,SAAS,EACT,cAAc,EAEf,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,qBAAa,mBAAmB,CAAC,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC5E,SAAQ,eAAe,CAAC,GAAG,CAAC;IAE5B,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,qBAAqB,EAAE,SAAS,EAAE,CAAC;IAC7C,SAAS,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC3C,SAAS,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,SAAS,CAAC,eAAe,EAAE,cAAc,CAAC;IAC1C,SAAS,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACjD,SAAS,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC;IAC3C,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;gBAG7B,IAAI,CAAC,EAAE,MAAM,EACb,cAAc,UAAQ,EACtB,QAAQ,UAAO,EACf,SAAS,CAAC,EAAE,UAAU;IAkIxB,IAAW,cAAc,IAAI,MAAM,GAAG,SAAS,CAE9C;IAED;;;OAGG;IACH,IAAW,oBAAoB,IAAI,SAAS,SAAS,EAAE,CAEtD;IAED;;OAEG;IACH,IAAW,mBAAmB,IAAI,SAAS,CAE1C;IAED,IAAW,sBAAsB,IAAI,OAAO,CAE3C;IAED;;;OAGG;IACH,IAAW,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAEnD;IAED;;;OAGG;IACH,IAAW,cAAc,IAAI,cAAc,CAE1C;IAED;;;OAGG;IACH,IAAW,WAAW,IAAI,uBAAuB,GAAG,SAAS,CAE5D;IAED;;;OAGG;IACH,IAAW,QAAQ,IAAI,oBAAoB,GAAG,SAAS,CAEtD;IAED;;OAEG;IACH,IAAW,cAAc,IAAI,MAAM,CAElC;IACD;;;;OAIG;IACH,IAAoB,WAAW,IAAI,MAAM,CAExC;IAED;;;;OAIG;IACH,IAAoB,WAAW,CAAC,SAAS,EAAE,MAAM,EAEhD;CACF"}
|
package/src/lib/environment.js
CHANGED
|
@@ -24,6 +24,7 @@ class BrightDbEnvironment extends node_express_suite_1.Environment {
|
|
|
24
24
|
_azureConfig;
|
|
25
25
|
_s3Config;
|
|
26
26
|
_memberPoolName;
|
|
27
|
+
_emailDomain;
|
|
27
28
|
constructor(path, initialization = false, override = true, constants) {
|
|
28
29
|
super(path, initialization, override, constants);
|
|
29
30
|
const envObj = this.getObject();
|
|
@@ -57,6 +58,22 @@ class BrightDbEnvironment extends node_express_suite_1.Environment {
|
|
|
57
58
|
}
|
|
58
59
|
// --- Member pool name ---
|
|
59
60
|
this._memberPoolName = envObj['MEMBER_POOL_NAME'] ?? 'BrightChain';
|
|
61
|
+
// --- Email domain ---
|
|
62
|
+
// Temporary: duplicated here until upstream node-express-suite publishes
|
|
63
|
+
// with emailDomain on BaseEnvironment. Once published, this override
|
|
64
|
+
// becomes redundant but harmless.
|
|
65
|
+
const rawEmailDomain = envObj['EMAIL_DOMAIN'];
|
|
66
|
+
if (rawEmailDomain && rawEmailDomain.trim().length > 0) {
|
|
67
|
+
this._emailDomain = rawEmailDomain.trim();
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const emailSender = envObj['EMAIL_SENDER'];
|
|
71
|
+
const senderDomain = emailSender?.split('@')[1];
|
|
72
|
+
this._emailDomain =
|
|
73
|
+
senderDomain && senderDomain.trim().length > 0
|
|
74
|
+
? senderDomain.trim()
|
|
75
|
+
: 'example.com';
|
|
76
|
+
}
|
|
60
77
|
// --- Block store type ---
|
|
61
78
|
const rawStoreType = (envObj['BRIGHTCHAIN_BLOCKSTORE_TYPE'] ?? 'disk').toLowerCase();
|
|
62
79
|
if (!Object.values(brightchain_lib_1.BlockStoreType).includes(rawStoreType)) {
|
|
@@ -160,6 +177,22 @@ class BrightDbEnvironment extends node_express_suite_1.Environment {
|
|
|
160
177
|
get memberPoolName() {
|
|
161
178
|
return this._memberPoolName;
|
|
162
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* The canonical email domain for this BrightChain instance.
|
|
182
|
+
* Parsed from `EMAIL_DOMAIN` env var, falling back to the domain portion
|
|
183
|
+
* of `EMAIL_SENDER`, or `'example.com'` if neither is set.
|
|
184
|
+
*/
|
|
185
|
+
get emailDomain() {
|
|
186
|
+
return this._emailDomain;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Update the email domain at runtime (hot-reload support).
|
|
190
|
+
* @param newDomain - The new canonical email domain
|
|
191
|
+
* @see Requirement 8.5 — dynamic configuration reload
|
|
192
|
+
*/
|
|
193
|
+
set emailDomain(newDomain) {
|
|
194
|
+
this._emailDomain = newDomain;
|
|
195
|
+
}
|
|
163
196
|
}
|
|
164
197
|
exports.BrightDbEnvironment = BrightDbEnvironment;
|
|
165
198
|
//# sourceMappingURL=environment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../brightchain-node-express-suite/src/lib/environment.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,4EAG6C;AAC7C,kEAIsC;AAQtC,MAAa,mBACX,SAAQ,gCAAoB;IAElB,eAAe,CAAU;IACzB,qBAAqB,CAAc;IACnC,uBAAuB,CAAU;IACjC,oBAAoB,CAAqB;IACzC,eAAe,CAAiB;IAChC,YAAY,CAA2B;IACvC,SAAS,CAAwB;IACjC,eAAe,CAAS;
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../brightchain-node-express-suite/src/lib/environment.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,7 +85,11 @@ export declare class BrightDbDatabasePlugin<TID extends PlatformID> implements I
|
|
|
85
85
|
teardownDevStore(): Promise<void>;
|
|
86
86
|
/**
|
|
87
87
|
* Seed the dev database after connection.
|
|
88
|
-
*
|
|
88
|
+
*
|
|
89
|
+
* Creates three members (system, admin, member) using MemberStore and
|
|
90
|
+
* prints their credentials to the console so the user can log in.
|
|
91
|
+
*
|
|
92
|
+
* Subclasses override with domain-specific seeding (e.g. full RBAC).
|
|
89
93
|
*/
|
|
90
94
|
initializeDevStore(): Promise<unknown>;
|
|
91
95
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bright-db-database-plugin.d.ts","sourceRoot":"","sources":["../../../../../brightchain-node-express-suite/src/lib/plugins/bright-db-database-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"bright-db-database-plugin.d.ts","sourceRoot":"","sources":["../../../../../brightchain-node-express-suite/src/lib/plugins/bright-db-database-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAO1D,MAAM,WAAW,8BAA8B;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,sBAAsB,CAAC,GAAG,SAAS,UAAU,CACxD,YAAW,eAAe,CAAC,GAAG,CAAC;IAE/B,SAAgB,IAAI,EAAE,MAAM,CAAc;IAC1C,SAAgB,OAAO,EAAE,MAAM,CAAW;IAE1C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAC1C,SAAS,CAAC,UAAU,UAAS;IAC7B,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAQ;IACjD,SAAS,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAC5C,SAAS,CAAC,aAAa,EAAE,uBAAuB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;gBAGlE,WAAW,EAAE,mBAAmB,CAAC,GAAG,CAAC,EACrC,OAAO,GAAE,8BAAmC;IAQ9C;;;;OAIG;IACH,IAAI,QAAQ,IAAI,SAAS,CAOxB;IAED;;;OAGG;IACH,IAAI,sBAAsB,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,SAAS,CAErE;IAED;;;;;;;;OAQG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;;;;;;OAUG;IACG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASlD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAKtC;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;;;;;;OAOG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAwB5C;;;OAGG;IACH,IAAI,UAAU,IAAI,WAAW,CAO5B;IAED;;;OAGG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAOvB;CACF"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.BrightDbDatabasePlugin = void 0;
|
|
14
14
|
const databaseInit_1 = require("../databaseInit");
|
|
15
|
+
const dev_store_seeder_1 = require("../services/dev-store-seeder");
|
|
15
16
|
class BrightDbDatabasePlugin {
|
|
16
17
|
name = 'brightdb';
|
|
17
18
|
version = '1.0.0';
|
|
@@ -123,11 +124,22 @@ class BrightDbDatabasePlugin {
|
|
|
123
124
|
}
|
|
124
125
|
/**
|
|
125
126
|
* Seed the dev database after connection.
|
|
126
|
-
*
|
|
127
|
+
*
|
|
128
|
+
* Creates three members (system, admin, member) using MemberStore and
|
|
129
|
+
* prints their credentials to the console so the user can log in.
|
|
130
|
+
*
|
|
131
|
+
* Subclasses override with domain-specific seeding (e.g. full RBAC).
|
|
127
132
|
*/
|
|
128
133
|
async initializeDevStore() {
|
|
129
|
-
|
|
130
|
-
|
|
134
|
+
if (!this._blockStore || !this._brightDb) {
|
|
135
|
+
console.warn('[BrightDB] initializeDevStore() called before connect() — skipping.');
|
|
136
|
+
return {};
|
|
137
|
+
}
|
|
138
|
+
const poolName = this._environment.devDatabasePoolName ??
|
|
139
|
+
this._environment.memberPoolName;
|
|
140
|
+
const result = await (0, dev_store_seeder_1.seedDevStore)(this._blockStore, this._brightDb, poolName, this._environment.emailDomain);
|
|
141
|
+
(0, dev_store_seeder_1.printDevStoreResults)(result);
|
|
142
|
+
return result;
|
|
131
143
|
}
|
|
132
144
|
// ── Typed accessors ───────────────────────────────────────────────
|
|
133
145
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bright-db-database-plugin.js","sourceRoot":"","sources":["../../../../../brightchain-node-express-suite/src/lib/plugins/bright-db-database-plugin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAWH,kDAA0D;
|
|
1
|
+
{"version":3,"file":"bright-db-database-plugin.js","sourceRoot":"","sources":["../../../../../brightchain-node-express-suite/src/lib/plugins/bright-db-database-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Lightweight dev store seeder for BrightDB-backed applications.
|
|
3
|
+
*
|
|
4
|
+
* Creates three members (system, admin, member) using MemberStore.createMember()
|
|
5
|
+
* and prints their credentials so the user can log in during development.
|
|
6
|
+
*
|
|
7
|
+
* This is the base-level seeding that works with only brightchain-lib + db.
|
|
8
|
+
* The full BrightChain RBAC seeding (roles, user-roles, mnemonics) lives in
|
|
9
|
+
* brightchain-api-lib's BrightChainDatabasePlugin.initializeDevStore() override.
|
|
10
|
+
*
|
|
11
|
+
* @module services/dev-store-seeder
|
|
12
|
+
*/
|
|
13
|
+
import type { IBlockStore } from '@brightchain/brightchain-lib';
|
|
14
|
+
import type { BrightDb } from '@brightchain/db';
|
|
15
|
+
import { MemberType } from '@digitaldefiance/ecies-lib';
|
|
16
|
+
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
17
|
+
/**
|
|
18
|
+
* Result of a single member creation during dev seeding.
|
|
19
|
+
*/
|
|
20
|
+
export interface IDevMemberResult {
|
|
21
|
+
label: string;
|
|
22
|
+
name: string;
|
|
23
|
+
email: string;
|
|
24
|
+
mnemonic: string;
|
|
25
|
+
id: string;
|
|
26
|
+
type: MemberType;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Full result of dev store seeding.
|
|
30
|
+
*/
|
|
31
|
+
export interface IDevStoreSeederResult {
|
|
32
|
+
members: IDevMemberResult[];
|
|
33
|
+
poolName: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Seed the dev database with basic members and print their credentials.
|
|
37
|
+
*
|
|
38
|
+
* @param blockStore - The block store backing the BrightDb instance.
|
|
39
|
+
* @param db - The BrightDb instance to seed.
|
|
40
|
+
* @param poolName - The dev pool name (for display purposes).
|
|
41
|
+
* @param emailDomain - Domain for dev member email addresses (e.g. 'example.com').
|
|
42
|
+
* @returns The seeding result with member credentials.
|
|
43
|
+
*/
|
|
44
|
+
export declare function seedDevStore<TID extends PlatformID>(blockStore: IBlockStore, db: BrightDb, poolName: string, emailDomain?: string): Promise<IDevStoreSeederResult>;
|
|
45
|
+
/**
|
|
46
|
+
* Print dev store seeding results to the console.
|
|
47
|
+
*/
|
|
48
|
+
export declare function printDevStoreResults(result: IDevStoreSeederResult): void;
|
|
49
|
+
//# sourceMappingURL=dev-store-seeder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-store-seeder.d.ts","sourceRoot":"","sources":["../../../../../brightchain-node-express-suite/src/lib/services/dev-store-seeder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAMhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAe,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGlE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AA4BD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,GAAG,SAAS,UAAU,EACvD,UAAU,EAAE,WAAW,EACvB,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAgB,GAC1B,OAAO,CAAC,qBAAqB,CAAC,CA6BhC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAoBxE"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Lightweight dev store seeder for BrightDB-backed applications.
|
|
4
|
+
*
|
|
5
|
+
* Creates three members (system, admin, member) using MemberStore.createMember()
|
|
6
|
+
* and prints their credentials so the user can log in during development.
|
|
7
|
+
*
|
|
8
|
+
* This is the base-level seeding that works with only brightchain-lib + db.
|
|
9
|
+
* The full BrightChain RBAC seeding (roles, user-roles, mnemonics) lives in
|
|
10
|
+
* brightchain-api-lib's BrightChainDatabasePlugin.initializeDevStore() override.
|
|
11
|
+
*
|
|
12
|
+
* @module services/dev-store-seeder
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.seedDevStore = seedDevStore;
|
|
16
|
+
exports.printDevStoreResults = printDevStoreResults;
|
|
17
|
+
const brightchain_lib_1 = require("@brightchain/brightchain-lib");
|
|
18
|
+
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
19
|
+
/**
|
|
20
|
+
* Default member definitions for dev seeding.
|
|
21
|
+
* Email addresses are built dynamically from the configured email domain.
|
|
22
|
+
*/
|
|
23
|
+
const DEFAULT_DEV_MEMBERS = [
|
|
24
|
+
{
|
|
25
|
+
label: 'System',
|
|
26
|
+
type: ecies_lib_1.MemberType.System,
|
|
27
|
+
name: 'system',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
label: 'Admin',
|
|
31
|
+
type: ecies_lib_1.MemberType.User,
|
|
32
|
+
name: 'admin',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
label: 'Member',
|
|
36
|
+
type: ecies_lib_1.MemberType.User,
|
|
37
|
+
name: 'member',
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
/**
|
|
41
|
+
* Seed the dev database with basic members and print their credentials.
|
|
42
|
+
*
|
|
43
|
+
* @param blockStore - The block store backing the BrightDb instance.
|
|
44
|
+
* @param db - The BrightDb instance to seed.
|
|
45
|
+
* @param poolName - The dev pool name (for display purposes).
|
|
46
|
+
* @param emailDomain - Domain for dev member email addresses (e.g. 'example.com').
|
|
47
|
+
* @returns The seeding result with member credentials.
|
|
48
|
+
*/
|
|
49
|
+
async function seedDevStore(blockStore, db, poolName, emailDomain = 'example.com') {
|
|
50
|
+
// MemberStore.createMember() depends on ServiceProvider (eciesService, cblService).
|
|
51
|
+
// initializeBrightChain() is idempotent — safe to call even if already initialized.
|
|
52
|
+
(0, brightchain_lib_1.initializeBrightChain)();
|
|
53
|
+
const memberStore = new brightchain_lib_1.MemberStore(blockStore, db);
|
|
54
|
+
const results = [];
|
|
55
|
+
for (const def of DEFAULT_DEV_MEMBERS) {
|
|
56
|
+
const email = `${def.name}@${emailDomain}`;
|
|
57
|
+
const memberData = {
|
|
58
|
+
type: def.type,
|
|
59
|
+
name: def.name,
|
|
60
|
+
contactEmail: new ecies_lib_1.EmailString(email),
|
|
61
|
+
};
|
|
62
|
+
const { reference, mnemonic } = await memberStore.createMember(memberData);
|
|
63
|
+
results.push({
|
|
64
|
+
label: def.label,
|
|
65
|
+
name: def.name,
|
|
66
|
+
email,
|
|
67
|
+
mnemonic: mnemonic.toString(),
|
|
68
|
+
id: String(reference.id),
|
|
69
|
+
type: def.type,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return { members: results, poolName };
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Print dev store seeding results to the console.
|
|
76
|
+
*/
|
|
77
|
+
function printDevStoreResults(result) {
|
|
78
|
+
const log = (msg) => console.log(msg);
|
|
79
|
+
log('');
|
|
80
|
+
log('=== BrightChain Dev Account Credentials ===');
|
|
81
|
+
log('');
|
|
82
|
+
log(` Pool: ${result.poolName}`);
|
|
83
|
+
log(` Block Store: in-memory (ephemeral)`);
|
|
84
|
+
log('');
|
|
85
|
+
for (const member of result.members) {
|
|
86
|
+
log(` ${member.label} ID: ${member.id}`);
|
|
87
|
+
log(` ${member.label} Name: ${member.name}`);
|
|
88
|
+
log(` ${member.label} Email: ${member.email}`);
|
|
89
|
+
log(` ${member.label} Mnemonic: ${member.mnemonic}`);
|
|
90
|
+
log('');
|
|
91
|
+
}
|
|
92
|
+
log('=== End BrightChain Dev Account Credentials ===');
|
|
93
|
+
log('');
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=dev-store-seeder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-store-seeder.js","sourceRoot":"","sources":["../../../../../brightchain-node-express-suite/src/lib/services/dev-store-seeder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAoEH,oCAkCC;AAKD,oDAoBC;AA5HD,kEAIsC;AAEtC,0DAAqE;AAwBrE;;;GAGG;AACH,MAAM,mBAAmB,GAIpB;IACH;QACE,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,sBAAU,CAAC,MAAM;QACvB,IAAI,EAAE,QAAQ;KACf;IACD;QACE,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,sBAAU,CAAC,IAAI;QACrB,IAAI,EAAE,OAAO;KACd;IACD;QACE,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,sBAAU,CAAC,IAAI;QACrB,IAAI,EAAE,QAAQ;KACf;CACF,CAAC;AAEF;;;;;;;;GAQG;AACI,KAAK,UAAU,YAAY,CAChC,UAAuB,EACvB,EAAY,EACZ,QAAgB,EAChB,WAAW,GAAG,aAAa;IAE3B,oFAAoF;IACpF,oFAAoF;IACpF,IAAA,uCAAqB,GAAE,CAAC;IAExB,MAAM,WAAW,GAAG,IAAI,6BAAW,CAAM,UAAU,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAmB;YACjC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,YAAY,EAAE,IAAI,uBAAW,CAAC,KAAK,CAAC;SACrC,CAAC;QAEF,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE3E,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK;YACL,QAAQ,EAAG,QAAyB,CAAC,QAAQ,EAAE;YAC/C,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,MAA6B;IAChE,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9C,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,6CAA6C,CAAC,CAAC;IACnD,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,mBAAmB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1C,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAC7C,GAAG,CAAC,EAAE,CAAC,CAAC;IAER,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,cAAc,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACnD,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,cAAc,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,GAAG,CAAC,EAAE,CAAC,CAAC;IACV,CAAC;IAED,GAAG,CAAC,iDAAiD,CAAC,CAAC;IACvD,GAAG,CAAC,EAAE,CAAC,CAAC;AACV,CAAC"}
|