@brightchain/brightchain-api-lib 0.17.2 → 0.18.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.
Files changed (164) hide show
  1. package/package.json +4 -4
  2. package/src/index.d.ts +2 -1
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +3 -1
  5. package/src/index.js.map +1 -1
  6. package/src/lib/application.d.ts +7 -7
  7. package/src/lib/application.d.ts.map +1 -1
  8. package/src/lib/application.js +21 -43
  9. package/src/lib/application.js.map +1 -1
  10. package/src/lib/controllers/api/channels.d.ts +1 -3
  11. package/src/lib/controllers/api/channels.d.ts.map +1 -1
  12. package/src/lib/controllers/api/channels.js +13 -13
  13. package/src/lib/controllers/api/channels.js.map +1 -1
  14. package/src/lib/controllers/api/conversations.d.ts +1 -2
  15. package/src/lib/controllers/api/conversations.d.ts.map +1 -1
  16. package/src/lib/controllers/api/conversations.js +7 -7
  17. package/src/lib/controllers/api/conversations.js.map +1 -1
  18. package/src/lib/controllers/api/emails.d.ts.map +1 -1
  19. package/src/lib/controllers/api/emails.js +12 -14
  20. package/src/lib/controllers/api/emails.js.map +1 -1
  21. package/src/lib/controllers/api/explodingMessages.d.ts +1 -2
  22. package/src/lib/controllers/api/explodingMessages.d.ts.map +1 -1
  23. package/src/lib/controllers/api/explodingMessages.js +11 -11
  24. package/src/lib/controllers/api/explodingMessages.js.map +1 -1
  25. package/src/lib/controllers/api/groups.d.ts +1 -3
  26. package/src/lib/controllers/api/groups.d.ts.map +1 -1
  27. package/src/lib/controllers/api/groups.js +9 -9
  28. package/src/lib/controllers/api/groups.js.map +1 -1
  29. package/src/lib/controllers/crypto/gitController.d.ts +1 -1
  30. package/src/lib/controllers/crypto/gitController.d.ts.map +1 -1
  31. package/src/lib/controllers/crypto/gitController.js +8 -8
  32. package/src/lib/controllers/crypto/gitController.js.map +1 -1
  33. package/src/lib/controllers/crypto/walletController.d.ts +1 -1
  34. package/src/lib/controllers/crypto/walletController.d.ts.map +1 -1
  35. package/src/lib/controllers/crypto/walletController.js +5 -5
  36. package/src/lib/controllers/crypto/walletController.js.map +1 -1
  37. package/src/lib/controllers/identity/deviceController.d.ts +1 -2
  38. package/src/lib/controllers/identity/deviceController.d.ts.map +1 -1
  39. package/src/lib/controllers/identity/deviceController.js +7 -8
  40. package/src/lib/controllers/identity/deviceController.js.map +1 -1
  41. package/src/lib/controllers/identity/directoryController.d.ts +1 -2
  42. package/src/lib/controllers/identity/directoryController.d.ts.map +1 -1
  43. package/src/lib/controllers/identity/directoryController.js +6 -7
  44. package/src/lib/controllers/identity/directoryController.js.map +1 -1
  45. package/src/lib/controllers/identity/identityProofController.d.ts +1 -1
  46. package/src/lib/controllers/identity/identityProofController.d.ts.map +1 -1
  47. package/src/lib/controllers/identity/identityProofController.js +15 -17
  48. package/src/lib/controllers/identity/identityProofController.js.map +1 -1
  49. package/src/lib/enumerations/brightChainApiStrings.d.ts +1 -1
  50. package/src/lib/enumerations/brightChainApiStrings.d.ts.map +1 -1
  51. package/src/lib/enumerations/brightChainApiStrings.js +1 -1
  52. package/src/lib/enumerations/brightChainApiStrings.js.map +1 -1
  53. package/src/lib/environment.d.ts +4 -4
  54. package/src/lib/environment.d.ts.map +1 -1
  55. package/src/lib/environment.js +5 -4
  56. package/src/lib/environment.js.map +1 -1
  57. package/src/lib/interfaces/index.d.ts +1 -0
  58. package/src/lib/interfaces/index.d.ts.map +1 -1
  59. package/src/lib/interfaces/member-init-config.d.ts +20 -0
  60. package/src/lib/interfaces/member-init-config.d.ts.map +1 -0
  61. package/src/lib/{documents/base.js → interfaces/member-init-config.js} +1 -1
  62. package/src/lib/interfaces/member-init-config.js.map +1 -0
  63. package/src/lib/interfaces/schema.d.ts +5 -3
  64. package/src/lib/interfaces/schema.d.ts.map +1 -1
  65. package/src/lib/interfaces/storage/index.d.ts +4 -0
  66. package/src/lib/interfaces/storage/index.d.ts.map +1 -1
  67. package/src/lib/interfaces/storage/index.js +14 -2
  68. package/src/lib/interfaces/storage/index.js.map +1 -1
  69. package/src/lib/interfaces/storage/mnemonicSchema.d.ts +10 -0
  70. package/src/lib/interfaces/storage/mnemonicSchema.d.ts.map +1 -0
  71. package/src/lib/interfaces/storage/mnemonicSchema.js +22 -0
  72. package/src/lib/interfaces/storage/mnemonicSchema.js.map +1 -0
  73. package/src/lib/interfaces/storage/roleSchema.d.ts +10 -0
  74. package/src/lib/interfaces/storage/roleSchema.d.ts.map +1 -0
  75. package/src/lib/interfaces/storage/roleSchema.js +45 -0
  76. package/src/lib/interfaces/storage/roleSchema.js.map +1 -0
  77. package/src/lib/interfaces/storage/userRoleSchema.d.ts +10 -0
  78. package/src/lib/interfaces/storage/userRoleSchema.d.ts.map +1 -0
  79. package/src/lib/interfaces/storage/userRoleSchema.js +35 -0
  80. package/src/lib/interfaces/storage/userRoleSchema.js.map +1 -0
  81. package/src/lib/interfaces/storage/userSchema.d.ts +12 -0
  82. package/src/lib/interfaces/storage/userSchema.d.ts.map +1 -0
  83. package/src/lib/interfaces/storage/userSchema.js +62 -0
  84. package/src/lib/interfaces/storage/userSchema.js.map +1 -0
  85. package/src/lib/plugins/brightchain-database-plugin.d.ts +150 -0
  86. package/src/lib/plugins/brightchain-database-plugin.d.ts.map +1 -0
  87. package/src/lib/plugins/brightchain-database-plugin.js +252 -0
  88. package/src/lib/plugins/brightchain-database-plugin.js.map +1 -0
  89. package/src/lib/plugins/configure-brightchain-app.d.ts +41 -0
  90. package/src/lib/plugins/configure-brightchain-app.d.ts.map +1 -0
  91. package/src/lib/plugins/configure-brightchain-app.js +70 -0
  92. package/src/lib/plugins/configure-brightchain-app.js.map +1 -0
  93. package/src/lib/routers/api.d.ts +1 -5
  94. package/src/lib/routers/api.d.ts.map +1 -1
  95. package/src/lib/services/blockStore.d.ts +1 -2
  96. package/src/lib/services/blockStore.d.ts.map +1 -1
  97. package/src/lib/services/blockStore.js +4 -6
  98. package/src/lib/services/blockStore.js.map +1 -1
  99. package/src/lib/services/brightchain-authentication-provider.d.ts +35 -0
  100. package/src/lib/services/brightchain-authentication-provider.d.ts.map +1 -0
  101. package/src/lib/services/brightchain-authentication-provider.js +196 -0
  102. package/src/lib/services/brightchain-authentication-provider.js.map +1 -0
  103. package/src/lib/services/brightchain-member-init.service.d.ts +103 -20
  104. package/src/lib/services/brightchain-member-init.service.d.ts.map +1 -1
  105. package/src/lib/services/brightchain-member-init.service.js +407 -1
  106. package/src/lib/services/brightchain-member-init.service.js.map +1 -1
  107. package/src/lib/services/expirationScheduler.d.ts +1 -2
  108. package/src/lib/services/expirationScheduler.d.ts.map +1 -1
  109. package/src/lib/services/expirationScheduler.js +3 -3
  110. package/src/lib/services/expirationScheduler.js.map +1 -1
  111. package/src/lib/services/quorum.d.ts.map +1 -1
  112. package/src/lib/services/quorum.js +2 -2
  113. package/src/lib/services/quorum.js.map +1 -1
  114. package/src/lib/services/wireConversationPromotion.d.ts +1 -2
  115. package/src/lib/services/wireConversationPromotion.d.ts.map +1 -1
  116. package/src/lib/services/wireConversationPromotion.js.map +1 -1
  117. package/src/lib/shared-types.d.ts +0 -17
  118. package/src/lib/shared-types.d.ts.map +1 -1
  119. package/src/lib/stores/diskBlockStore.d.ts.map +1 -1
  120. package/src/lib/stores/diskBlockStore.js +4 -1
  121. package/src/lib/stores/diskBlockStore.js.map +1 -1
  122. package/src/lib/utils/type-converters.d.ts +5 -8
  123. package/src/lib/utils/type-converters.d.ts.map +1 -1
  124. package/src/lib/utils/type-converters.js.map +1 -1
  125. package/src/lib/application-base.d.ts +0 -11
  126. package/src/lib/application-base.d.ts.map +0 -1
  127. package/src/lib/application-base.js +0 -12
  128. package/src/lib/application-base.js.map +0 -1
  129. package/src/lib/documents/base.d.ts +0 -6
  130. package/src/lib/documents/base.d.ts.map +0 -1
  131. package/src/lib/documents/base.js.map +0 -1
  132. package/src/lib/documents/email-token.d.ts +0 -8
  133. package/src/lib/documents/email-token.d.ts.map +0 -1
  134. package/src/lib/documents/email-token.js +0 -3
  135. package/src/lib/documents/email-token.js.map +0 -1
  136. package/src/lib/documents/index.d.ts +0 -7
  137. package/src/lib/documents/index.d.ts.map +0 -1
  138. package/src/lib/documents/index.js +0 -3
  139. package/src/lib/documents/index.js.map +0 -1
  140. package/src/lib/documents/mnemonic.d.ts +0 -8
  141. package/src/lib/documents/mnemonic.d.ts.map +0 -1
  142. package/src/lib/documents/mnemonic.js +0 -3
  143. package/src/lib/documents/mnemonic.js.map +0 -1
  144. package/src/lib/documents/role.d.ts +0 -8
  145. package/src/lib/documents/role.d.ts.map +0 -1
  146. package/src/lib/documents/role.js +0 -3
  147. package/src/lib/documents/role.js.map +0 -1
  148. package/src/lib/documents/used-direct-login-token.d.ts +0 -5
  149. package/src/lib/documents/used-direct-login-token.d.ts.map +0 -1
  150. package/src/lib/documents/used-direct-login-token.js +0 -3
  151. package/src/lib/documents/used-direct-login-token.js.map +0 -1
  152. package/src/lib/documents/user-role.d.ts +0 -8
  153. package/src/lib/documents/user-role.d.ts.map +0 -1
  154. package/src/lib/documents/user-role.js +0 -3
  155. package/src/lib/documents/user-role.js.map +0 -1
  156. package/src/lib/documents/user.d.ts +0 -13
  157. package/src/lib/documents/user.d.ts.map +0 -1
  158. package/src/lib/documents/user.js +0 -3
  159. package/src/lib/documents/user.js.map +0 -1
  160. package/src/lib/upstream-stubs.d.ts +0 -36
  161. package/src/lib/upstream-stubs.d.ts.map +0 -1
  162. package/src/lib/upstream-stubs.js +0 -43
  163. package/src/lib/upstream-stubs.js.map +0 -1
  164. /package/{README.md → brightchain-api-lib/README.md} +0 -0
@@ -1,7 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MEMBER_INDEX_SCHEMA = void 0;
4
- // Member index schema (runtime value — uses brandedField)
3
+ exports.USER_SCHEMA = exports.USERS_COLLECTION = exports.USER_ROLE_SCHEMA = exports.USER_ROLES_COLLECTION = exports.ROLE_SCHEMA = exports.ROLES_COLLECTION = exports.MNEMONIC_SCHEMA = exports.MNEMONICS_COLLECTION = exports.MEMBER_INDEX_SCHEMA = void 0;
4
+ // Collection schemas (runtime values)
5
5
  var memberIndexSchema_1 = require("./memberIndexSchema");
6
6
  Object.defineProperty(exports, "MEMBER_INDEX_SCHEMA", { enumerable: true, get: function () { return memberIndexSchema_1.MEMBER_INDEX_SCHEMA; } });
7
+ var mnemonicSchema_1 = require("./mnemonicSchema");
8
+ Object.defineProperty(exports, "MNEMONICS_COLLECTION", { enumerable: true, get: function () { return mnemonicSchema_1.MNEMONICS_COLLECTION; } });
9
+ Object.defineProperty(exports, "MNEMONIC_SCHEMA", { enumerable: true, get: function () { return mnemonicSchema_1.MNEMONIC_SCHEMA; } });
10
+ var roleSchema_1 = require("./roleSchema");
11
+ Object.defineProperty(exports, "ROLES_COLLECTION", { enumerable: true, get: function () { return roleSchema_1.ROLES_COLLECTION; } });
12
+ Object.defineProperty(exports, "ROLE_SCHEMA", { enumerable: true, get: function () { return roleSchema_1.ROLE_SCHEMA; } });
13
+ var userRoleSchema_1 = require("./userRoleSchema");
14
+ Object.defineProperty(exports, "USER_ROLES_COLLECTION", { enumerable: true, get: function () { return userRoleSchema_1.USER_ROLES_COLLECTION; } });
15
+ Object.defineProperty(exports, "USER_ROLE_SCHEMA", { enumerable: true, get: function () { return userRoleSchema_1.USER_ROLE_SCHEMA; } });
16
+ var userSchema_1 = require("./userSchema");
17
+ Object.defineProperty(exports, "USERS_COLLECTION", { enumerable: true, get: function () { return userSchema_1.USERS_COLLECTION; } });
18
+ Object.defineProperty(exports, "USER_SCHEMA", { enumerable: true, get: function () { return userSchema_1.USER_SCHEMA; } });
7
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/interfaces/storage/index.ts"],"names":[],"mappings":";;;AAMA,0DAA0D;AAC1D,yDAA0D;AAAjD,wHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/interfaces/storage/index.ts"],"names":[],"mappings":";;;AAMA,sCAAsC;AACtC,yDAA0D;AAAjD,wHAAA,mBAAmB,OAAA;AAC5B,mDAAyE;AAAhE,sHAAA,oBAAoB,OAAA;AAAE,iHAAA,eAAe,OAAA;AAC9C,2CAA6D;AAApD,8GAAA,gBAAgB,OAAA;AAAE,yGAAA,WAAW,OAAA;AACtC,mDAA2E;AAAlE,uHAAA,qBAAqB,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AAChD,2CAA6D;AAApD,8GAAA,gBAAgB,OAAA;AAAE,yGAAA,WAAW,OAAA"}
@@ -0,0 +1,10 @@
1
+ import type { CollectionSchema } from './document-types';
2
+ /** Well-known collection name for mnemonic hash documents. */
3
+ export declare const MNEMONICS_COLLECTION = "mnemonics";
4
+ /**
5
+ * Schema for the mnemonics collection.
6
+ * Mirrors the Mongoose mnemonic document structure:
7
+ * hmac (non-reversible HMAC of the mnemonic for uniqueness checks)
8
+ */
9
+ export declare const MNEMONIC_SCHEMA: CollectionSchema;
10
+ //# sourceMappingURL=mnemonicSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mnemonicSchema.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/interfaces/storage/mnemonicSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,8DAA8D;AAC9D,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,gBAU7B,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MNEMONIC_SCHEMA = exports.MNEMONICS_COLLECTION = void 0;
4
+ /** Well-known collection name for mnemonic hash documents. */
5
+ exports.MNEMONICS_COLLECTION = 'mnemonics';
6
+ /**
7
+ * Schema for the mnemonics collection.
8
+ * Mirrors the Mongoose mnemonic document structure:
9
+ * hmac (non-reversible HMAC of the mnemonic for uniqueness checks)
10
+ */
11
+ exports.MNEMONIC_SCHEMA = {
12
+ name: 'mnemonic',
13
+ properties: {
14
+ _id: { type: 'string', required: true },
15
+ hmac: { type: 'string', required: true },
16
+ },
17
+ required: ['_id', 'hmac'],
18
+ additionalProperties: true,
19
+ validationLevel: 'strict',
20
+ validationAction: 'error',
21
+ };
22
+ //# sourceMappingURL=mnemonicSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mnemonicSchema.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/interfaces/storage/mnemonicSchema.ts"],"names":[],"mappings":";;;AAEA,8DAA8D;AACjD,QAAA,oBAAoB,GAAG,WAAW,CAAC;AAEhD;;;;GAIG;AACU,QAAA,eAAe,GAAqB;IAC/C,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzC;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,IAAI;IAC1B,eAAe,EAAE,QAAQ;IACzB,gBAAgB,EAAE,OAAO;CAC1B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { CollectionSchema } from './document-types';
2
+ /** Well-known collection name for roles. */
3
+ export declare const ROLES_COLLECTION = "roles";
4
+ /**
5
+ * Schema for the roles collection.
6
+ * Mirrors the Mongoose role document structure:
7
+ * name, admin, member, child, system, createdBy, updatedBy, timestamps
8
+ */
9
+ export declare const ROLE_SCHEMA: CollectionSchema;
10
+ //# sourceMappingURL=roleSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roleSchema.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/interfaces/storage/roleSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,gBAiCzB,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ROLE_SCHEMA = exports.ROLES_COLLECTION = void 0;
4
+ /** Well-known collection name for roles. */
5
+ exports.ROLES_COLLECTION = 'roles';
6
+ /**
7
+ * Schema for the roles collection.
8
+ * Mirrors the Mongoose role document structure:
9
+ * name, admin, member, child, system, createdBy, updatedBy, timestamps
10
+ */
11
+ exports.ROLE_SCHEMA = {
12
+ name: 'role',
13
+ properties: {
14
+ _id: { type: 'string', required: true },
15
+ name: {
16
+ type: 'string',
17
+ required: true,
18
+ enum: ['System', 'Admin', 'Member'],
19
+ },
20
+ admin: { type: 'boolean', required: true },
21
+ member: { type: 'boolean', required: true },
22
+ child: { type: 'boolean', required: true },
23
+ system: { type: 'boolean', required: true },
24
+ createdBy: { type: 'string', required: true },
25
+ updatedBy: { type: 'string', required: true },
26
+ createdAt: { type: 'string', required: true },
27
+ updatedAt: { type: 'string', required: true },
28
+ },
29
+ required: [
30
+ '_id',
31
+ 'name',
32
+ 'admin',
33
+ 'member',
34
+ 'child',
35
+ 'system',
36
+ 'createdBy',
37
+ 'updatedBy',
38
+ 'createdAt',
39
+ 'updatedAt',
40
+ ],
41
+ additionalProperties: true,
42
+ validationLevel: 'strict',
43
+ validationAction: 'error',
44
+ };
45
+ //# sourceMappingURL=roleSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roleSchema.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/interfaces/storage/roleSchema.ts"],"names":[],"mappings":";;;AAEA,4CAA4C;AAC/B,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAExC;;;;GAIG;AACU,QAAA,WAAW,GAAqB;IAC3C,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;SACpC;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC9C;IACD,QAAQ,EAAE;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;KACZ;IACD,oBAAoB,EAAE,IAAI;IAC1B,eAAe,EAAE,QAAQ;IACzB,gBAAgB,EAAE,OAAO;CAC1B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { CollectionSchema } from './document-types';
2
+ /** Well-known collection name for user-role junction documents. */
3
+ export declare const USER_ROLES_COLLECTION = "user-roles";
4
+ /**
5
+ * Schema for the user-roles collection.
6
+ * Mirrors the Mongoose user-role junction document structure:
7
+ * userId, roleId, createdBy, updatedBy, timestamps
8
+ */
9
+ export declare const USER_ROLE_SCHEMA: CollectionSchema;
10
+ //# sourceMappingURL=userRoleSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userRoleSchema.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/interfaces/storage/userRoleSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAuB9B,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.USER_ROLE_SCHEMA = exports.USER_ROLES_COLLECTION = void 0;
4
+ /** Well-known collection name for user-role junction documents. */
5
+ exports.USER_ROLES_COLLECTION = 'user-roles';
6
+ /**
7
+ * Schema for the user-roles collection.
8
+ * Mirrors the Mongoose user-role junction document structure:
9
+ * userId, roleId, createdBy, updatedBy, timestamps
10
+ */
11
+ exports.USER_ROLE_SCHEMA = {
12
+ name: 'userRole',
13
+ properties: {
14
+ _id: { type: 'string', required: true },
15
+ userId: { type: 'string', required: true },
16
+ roleId: { type: 'string', required: true },
17
+ createdBy: { type: 'string', required: true },
18
+ updatedBy: { type: 'string', required: true },
19
+ createdAt: { type: 'string', required: true },
20
+ updatedAt: { type: 'string', required: true },
21
+ },
22
+ required: [
23
+ '_id',
24
+ 'userId',
25
+ 'roleId',
26
+ 'createdBy',
27
+ 'updatedBy',
28
+ 'createdAt',
29
+ 'updatedAt',
30
+ ],
31
+ additionalProperties: true,
32
+ validationLevel: 'strict',
33
+ validationAction: 'error',
34
+ };
35
+ //# sourceMappingURL=userRoleSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userRoleSchema.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/interfaces/storage/userRoleSchema.ts"],"names":[],"mappings":";;;AAEA,mEAAmE;AACtD,QAAA,qBAAqB,GAAG,YAAY,CAAC;AAElD;;;;GAIG;AACU,QAAA,gBAAgB,GAAqB;IAChD,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC9C;IACD,QAAQ,EAAE;QACR,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;KACZ;IACD,oBAAoB,EAAE,IAAI;IAC1B,eAAe,EAAE,QAAQ;IACzB,gBAAgB,EAAE,OAAO;CAC1B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { CollectionSchema } from './document-types';
2
+ /** Well-known collection name for users. */
3
+ export declare const USERS_COLLECTION = "users";
4
+ /**
5
+ * Schema for the users collection.
6
+ * Mirrors the Mongoose user document structure:
7
+ * username, email, publicKey, passwordWrappedPrivateKey, mnemonicRecovery,
8
+ * mnemonicId, backupCodes, accountStatus, emailVerified, directChallenge,
9
+ * timezone, siteLanguage, currency, darkMode, timestamps, owners
10
+ */
11
+ export declare const USER_SCHEMA: CollectionSchema;
12
+ //# sourceMappingURL=userSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userSchema.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/interfaces/storage/userSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,gBAgDzB,CAAC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.USER_SCHEMA = exports.USERS_COLLECTION = void 0;
4
+ /** Well-known collection name for users. */
5
+ exports.USERS_COLLECTION = 'users';
6
+ /**
7
+ * Schema for the users collection.
8
+ * Mirrors the Mongoose user document structure:
9
+ * username, email, publicKey, passwordWrappedPrivateKey, mnemonicRecovery,
10
+ * mnemonicId, backupCodes, accountStatus, emailVerified, directChallenge,
11
+ * timezone, siteLanguage, currency, darkMode, timestamps, owners
12
+ */
13
+ exports.USER_SCHEMA = {
14
+ name: 'user',
15
+ properties: {
16
+ _id: { type: 'string', required: true },
17
+ username: { type: 'string', required: true },
18
+ email: { type: 'string', required: true },
19
+ publicKey: { type: 'string', required: true },
20
+ passwordWrappedPrivateKey: { type: 'object' },
21
+ mnemonicRecovery: { type: 'string', required: true },
22
+ mnemonicId: { type: 'string' },
23
+ backupCodes: { type: 'array', required: true },
24
+ accountStatus: {
25
+ type: 'string',
26
+ required: true,
27
+ enum: ['PendingEmailVerification', 'Active', 'AdminLock'],
28
+ },
29
+ emailVerified: { type: 'boolean', required: true },
30
+ directChallenge: { type: 'boolean', required: true },
31
+ timezone: { type: 'string', required: true },
32
+ siteLanguage: { type: 'string', required: true },
33
+ currency: { type: 'string' },
34
+ darkMode: { type: 'boolean', required: true },
35
+ createdBy: { type: 'string', required: true },
36
+ updatedBy: { type: 'string', required: true },
37
+ createdAt: { type: 'string', required: true },
38
+ updatedAt: { type: 'string', required: true },
39
+ },
40
+ required: [
41
+ '_id',
42
+ 'username',
43
+ 'email',
44
+ 'publicKey',
45
+ 'mnemonicRecovery',
46
+ 'backupCodes',
47
+ 'accountStatus',
48
+ 'emailVerified',
49
+ 'directChallenge',
50
+ 'timezone',
51
+ 'siteLanguage',
52
+ 'darkMode',
53
+ 'createdBy',
54
+ 'updatedBy',
55
+ 'createdAt',
56
+ 'updatedAt',
57
+ ],
58
+ additionalProperties: true,
59
+ validationLevel: 'strict',
60
+ validationAction: 'error',
61
+ };
62
+ //# sourceMappingURL=userSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userSchema.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/interfaces/storage/userSchema.ts"],"names":[],"mappings":";;;AAEA,4CAA4C;AAC/B,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAExC;;;;;;GAMG;AACU,QAAA,WAAW,GAAqB;IAC3C,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5C,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,yBAAyB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7C,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9C,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,CAAC,0BAA0B,EAAE,QAAQ,EAAE,WAAW,CAAC;SAC1D;QACD,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAClD,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5C,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC9C;IACD,QAAQ,EAAE;QACR,KAAK;QACL,UAAU;QACV,OAAO;QACP,WAAW;QACX,kBAAkB;QAClB,aAAa;QACb,eAAe;QACf,eAAe;QACf,iBAAiB;QACjB,UAAU;QACV,cAAc;QACd,UAAU;QACV,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;KACZ;IACD,oBAAoB,EAAE,IAAI;IAC1B,eAAe,EAAE,QAAQ;IACzB,gBAAgB,EAAE,OAAO;CAC1B,CAAC"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * @fileoverview BrightChain database plugin for the express-suite plugin architecture.
3
+ *
4
+ * Implements IDatabasePlugin<TID> to encapsulate the BrightChain database stack
5
+ * lifecycle: block stores, BrightChainDb, member/energy stores, and the
6
+ * authentication provider. The plugin is registered via Application.useDatabasePlugin()
7
+ * and participates in the standard plugin lifecycle (connect → init → stop).
8
+ *
9
+ * BrightChainDb already implements IDatabase from express-suite, so the plugin's
10
+ * `database` property returns the BrightChainDb instance directly — no adapter needed.
11
+ *
12
+ * @module plugins/brightchain-database-plugin
13
+ */
14
+ import type { IBlockStore, IDocumentStore } from '@brightchain/brightchain-lib';
15
+ import { EnergyAccountStore, MemberStore } from '@brightchain/brightchain-lib';
16
+ import type { BrightChainDb } from '@brightchain/db';
17
+ import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
18
+ import type { IApplication, IAuthenticationProvider, IDatabase, IDatabasePlugin } from '@digitaldefiance/node-express-suite';
19
+ import type { Environment } from '../environment';
20
+ /**
21
+ * BrightChain database plugin implementing IDatabasePlugin<TID>.
22
+ *
23
+ * Owns the full database lifecycle:
24
+ * - connect() → calls brightchainDatabaseInit() and stores backend references
25
+ * - init(app) → creates BrightChainAuthenticationProvider
26
+ * - stop() → delegates to disconnect()
27
+ * - disconnect() → releases all references (idempotent)
28
+ *
29
+ * Typed accessors (blockStore, memberStore, energyStore, brightChainDb, documentStore)
30
+ * throw descriptive errors when the plugin is not connected.
31
+ */
32
+ export declare class BrightChainDatabasePlugin<TID extends PlatformID> implements IDatabasePlugin<TID> {
33
+ readonly name = "brightchain-database";
34
+ readonly version = "1.0.0";
35
+ private readonly _environment;
36
+ private _connected;
37
+ private _blockStore;
38
+ private _brightChainDb;
39
+ private _documentStore;
40
+ private _memberStore;
41
+ private _energyStore;
42
+ private _authProvider;
43
+ constructor(environment: Environment<TID>);
44
+ /**
45
+ * The IDatabase instance this plugin manages.
46
+ * BrightChainDb implements IDatabase directly, so no adapter is needed.
47
+ * @throws Error if the plugin is not connected.
48
+ */
49
+ get database(): IDatabase;
50
+ /**
51
+ * Authentication provider created during init().
52
+ * Returns undefined before init() is called.
53
+ */
54
+ get authenticationProvider(): IAuthenticationProvider<TID> | undefined;
55
+ /**
56
+ * Connect the BrightChain database stack.
57
+ *
58
+ * Calls brightchainDatabaseInit(environment) and stores the resulting
59
+ * backend references (blockStore, db/BrightChainDb, documentStore,
60
+ * memberStore, energyStore).
61
+ *
62
+ * @param _uri - Ignored; BrightChain uses environment-based configuration.
63
+ * @throws Error if brightchainDatabaseInit() returns a failure result.
64
+ */
65
+ connect(_uri?: string): Promise<void>;
66
+ /**
67
+ * Disconnect and release all backend references.
68
+ * Idempotent — calling when already disconnected completes without error.
69
+ */
70
+ disconnect(): Promise<void>;
71
+ /**
72
+ * Whether the database is currently connected.
73
+ */
74
+ isConnected(): boolean;
75
+ /**
76
+ * Initialize the plugin after connection.
77
+ * Creates the BrightChainAuthenticationProvider and stores it
78
+ * as the authenticationProvider property.
79
+ *
80
+ * @param app - The application instance (must implement IBrightChainApplication).
81
+ */
82
+ init(app: IApplication<TID>): Promise<void>;
83
+ /**
84
+ * Stop the plugin. Delegates to disconnect() for cleanup.
85
+ */
86
+ stop(): Promise<void>;
87
+ /**
88
+ * Provision an ephemeral dev/test block store.
89
+ *
90
+ * Called by Application.start() before connect() when
91
+ * environment.devDatabase is truthy. BrightChain doesn't use
92
+ * connection URIs — the memory vs disk decision is driven by
93
+ * environment.blockStorePath (absent → memory). This hook
94
+ * signals that we're in dev mode and returns an empty string
95
+ * (no URI concept for block stores).
96
+ */
97
+ setupDevStore(): Promise<string>;
98
+ /**
99
+ * Tear down the ephemeral dev/test block store.
100
+ *
101
+ * Called during stop() flow. Our disconnect() already releases
102
+ * all in-memory references, so this is a no-op beyond logging.
103
+ */
104
+ teardownDevStore(): Promise<void>;
105
+ /**
106
+ * Seed the dev database after connection.
107
+ *
108
+ * Called by Application.start() after connect() and init() when
109
+ * environment.devDatabase is truthy. Currently a no-op — can be
110
+ * extended to seed test users, blocks, etc. for local development.
111
+ */
112
+ initializeDevStore(): Promise<unknown>;
113
+ /**
114
+ * The block store backing the BrightChain database.
115
+ * @throws Error if the plugin is not connected.
116
+ */
117
+ get blockStore(): IBlockStore;
118
+ /**
119
+ * The BrightChainDb instance (implements IDatabase).
120
+ * @throws Error if the plugin is not connected.
121
+ */
122
+ get brightChainDb(): BrightChainDb;
123
+ /**
124
+ * The document store (BrightChainDbDocumentStoreAdapter wrapping BrightChainDb).
125
+ * @throws Error if the plugin is not connected.
126
+ */
127
+ get documentStore(): IDocumentStore;
128
+ /**
129
+ * The member store for user/member operations.
130
+ * @throws Error if the plugin is not connected.
131
+ */
132
+ get memberStore(): MemberStore;
133
+ /**
134
+ * The energy account store for energy ledger operations.
135
+ * @throws Error if the plugin is not connected.
136
+ */
137
+ get energyStore(): EnergyAccountStore;
138
+ /**
139
+ * Extract the underlying BrightChainDb from the IDocumentStore adapter.
140
+ *
141
+ * brightchainDatabaseInit() wraps BrightChainDb in a
142
+ * BrightChainDbDocumentStoreAdapter. We need the raw BrightChainDb
143
+ * for the IDatabasePlugin.database property (IDatabase contract).
144
+ *
145
+ * We verify the adapter type via instanceof, then access the runtime
146
+ * `db` property (TypeScript `private` is compile-time only).
147
+ */
148
+ private extractBrightChainDb;
149
+ }
150
+ //# sourceMappingURL=brightchain-database-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brightchain-database-plugin.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/plugins/brightchain-database-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EACvB,SAAS,EACT,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD;;;;;;;;;;;GAWG;AACH,qBAAa,yBAAyB,CACpC,GAAG,SAAS,UAAU,CACtB,YAAW,eAAe,CAAC,GAAG,CAAC;IAC/B,SAAgB,IAAI,0BAA0B;IAC9C,SAAgB,OAAO,WAAW;IAElC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,aAAa,CAAuD;gBAEhE,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;IAMzC;;;;OAIG;IACH,IAAI,QAAQ,IAAI,SAAS,CAOxB;IAED;;;OAGG;IACH,IAAI,sBAAsB,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,SAAS,CAErE;IAED;;;;;;;;;OASG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3C;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;;OAMG;IACG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B;;;;;;;;;OASG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAOtC;;;;;OAKG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;;;;;OAMG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAM5C;;;OAGG;IACH,IAAI,UAAU,IAAI,WAAW,CAO5B;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,aAAa,CAOjC;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,cAAc,CAOlC;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,WAAW,CAO7B;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,kBAAkB,CAOpC;IAID;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;CAqB7B"}