@brightchain/node-express-suite 0.26.0 → 0.26.2
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 +1 -1
- 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/plugins/bright-db-database-plugin.d.ts +13 -2
- package/src/lib/plugins/bright-db-database-plugin.d.ts.map +1 -1
- package/src/lib/plugins/bright-db-database-plugin.js +29 -5
- package/src/lib/plugins/bright-db-database-plugin.js.map +1 -1
- package/src/lib/services/dev-store-seeder.d.ts +48 -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
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"}
|
|
@@ -59,7 +59,14 @@ export declare class BrightDbDatabasePlugin<TID extends PlatformID> implements I
|
|
|
59
59
|
isConnected(): boolean;
|
|
60
60
|
/**
|
|
61
61
|
* Initialize the plugin after connection.
|
|
62
|
-
*
|
|
62
|
+
*
|
|
63
|
+
* When the environment has a `devDatabasePoolName` (i.e. `DEV_DATABASE` is set),
|
|
64
|
+
* this method calls {@link initializeDevStore} to seed the dev database.
|
|
65
|
+
* The upstream PluginManager only calls `init()` — it does not invoke
|
|
66
|
+
* `initializeDevStore()` on its own — so we bridge the gap here.
|
|
67
|
+
*
|
|
68
|
+
* Subclasses override to create domain-specific auth providers and should
|
|
69
|
+
* call `super.init(app)` (or invoke `initializeDevStore()` themselves).
|
|
63
70
|
*/
|
|
64
71
|
init(_app: IApplication<TID>): Promise<void>;
|
|
65
72
|
/**
|
|
@@ -78,7 +85,11 @@ export declare class BrightDbDatabasePlugin<TID extends PlatformID> implements I
|
|
|
78
85
|
teardownDevStore(): Promise<void>;
|
|
79
86
|
/**
|
|
80
87
|
* Seed the dev database after connection.
|
|
81
|
-
*
|
|
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).
|
|
82
93
|
*/
|
|
83
94
|
initializeDevStore(): Promise<unknown>;
|
|
84
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;IAuB5C;;;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';
|
|
@@ -82,10 +83,22 @@ class BrightDbDatabasePlugin {
|
|
|
82
83
|
}
|
|
83
84
|
/**
|
|
84
85
|
* Initialize the plugin after connection.
|
|
85
|
-
*
|
|
86
|
+
*
|
|
87
|
+
* When the environment has a `devDatabasePoolName` (i.e. `DEV_DATABASE` is set),
|
|
88
|
+
* this method calls {@link initializeDevStore} to seed the dev database.
|
|
89
|
+
* The upstream PluginManager only calls `init()` — it does not invoke
|
|
90
|
+
* `initializeDevStore()` on its own — so we bridge the gap here.
|
|
91
|
+
*
|
|
92
|
+
* Subclasses override to create domain-specific auth providers and should
|
|
93
|
+
* call `super.init(app)` (or invoke `initializeDevStore()` themselves).
|
|
86
94
|
*/
|
|
87
95
|
async init(_app) {
|
|
88
|
-
//
|
|
96
|
+
// Seed the dev database when DEV_DATABASE is set.
|
|
97
|
+
// Subclasses (e.g. BrightChainDatabasePlugin) override initializeDevStore()
|
|
98
|
+
// with domain-specific seeding + credential printing.
|
|
99
|
+
if (this._environment.devDatabasePoolName && !this._skipAutoSeed) {
|
|
100
|
+
await this.initializeDevStore();
|
|
101
|
+
}
|
|
89
102
|
}
|
|
90
103
|
/**
|
|
91
104
|
* Stop the plugin. Delegates to disconnect() for cleanup.
|
|
@@ -111,11 +124,22 @@ class BrightDbDatabasePlugin {
|
|
|
111
124
|
}
|
|
112
125
|
/**
|
|
113
126
|
* Seed the dev database after connection.
|
|
114
|
-
*
|
|
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).
|
|
115
132
|
*/
|
|
116
133
|
async initializeDevStore() {
|
|
117
|
-
|
|
118
|
-
|
|
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);
|
|
141
|
+
(0, dev_store_seeder_1.printDevStoreResults)(result);
|
|
142
|
+
return result;
|
|
119
143
|
}
|
|
120
144
|
// ── Typed accessors ───────────────────────────────────────────────
|
|
121
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,48 @@
|
|
|
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
|
+
* @returns The seeding result with member credentials.
|
|
42
|
+
*/
|
|
43
|
+
export declare function seedDevStore<TID extends PlatformID>(blockStore: IBlockStore, db: BrightDb, poolName: string): Promise<IDevStoreSeederResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Print dev store seeding results to the console.
|
|
46
|
+
*/
|
|
47
|
+
export declare function printDevStoreResults(result: IDevStoreSeederResult): void;
|
|
48
|
+
//# 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;AA+BD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,GAAG,SAAS,UAAU,EACvD,UAAU,EAAE,WAAW,EACvB,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,qBAAqB,CAAC,CA4BhC;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
|
+
*/
|
|
22
|
+
const DEFAULT_DEV_MEMBERS = [
|
|
23
|
+
{
|
|
24
|
+
label: 'System',
|
|
25
|
+
type: ecies_lib_1.MemberType.System,
|
|
26
|
+
name: 'system',
|
|
27
|
+
email: 'system@localhost',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
label: 'Admin',
|
|
31
|
+
type: ecies_lib_1.MemberType.User,
|
|
32
|
+
name: 'admin',
|
|
33
|
+
email: 'admin@localhost',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
label: 'Member',
|
|
37
|
+
type: ecies_lib_1.MemberType.User,
|
|
38
|
+
name: 'member',
|
|
39
|
+
email: 'member@localhost',
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
/**
|
|
43
|
+
* Seed the dev database with basic members and print their credentials.
|
|
44
|
+
*
|
|
45
|
+
* @param blockStore - The block store backing the BrightDb instance.
|
|
46
|
+
* @param db - The BrightDb instance to seed.
|
|
47
|
+
* @param poolName - The dev pool name (for display purposes).
|
|
48
|
+
* @returns The seeding result with member credentials.
|
|
49
|
+
*/
|
|
50
|
+
async function seedDevStore(blockStore, db, poolName) {
|
|
51
|
+
// MemberStore.createMember() depends on ServiceProvider (eciesService, cblService).
|
|
52
|
+
// initializeBrightChain() is idempotent — safe to call even if already initialized.
|
|
53
|
+
(0, brightchain_lib_1.initializeBrightChain)();
|
|
54
|
+
const memberStore = new brightchain_lib_1.MemberStore(blockStore, db);
|
|
55
|
+
const results = [];
|
|
56
|
+
for (const def of DEFAULT_DEV_MEMBERS) {
|
|
57
|
+
const memberData = {
|
|
58
|
+
type: def.type,
|
|
59
|
+
name: def.name,
|
|
60
|
+
contactEmail: new ecies_lib_1.EmailString(def.email),
|
|
61
|
+
};
|
|
62
|
+
const { reference, mnemonic } = await memberStore.createMember(memberData);
|
|
63
|
+
results.push({
|
|
64
|
+
label: def.label,
|
|
65
|
+
name: def.name,
|
|
66
|
+
email: def.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":"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"}
|