@brightchain/brightchain-lib 0.18.0 → 0.20.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 (372) hide show
  1. package/package.json +2 -2
  2. package/src/lib/db/aggregation.d.ts +20 -0
  3. package/src/lib/db/aggregation.d.ts.map +1 -0
  4. package/src/lib/db/aggregation.js +407 -0
  5. package/src/lib/db/aggregation.js.map +1 -0
  6. package/src/lib/db/collection.d.ts +315 -0
  7. package/src/lib/db/collection.d.ts.map +1 -0
  8. package/src/lib/db/collection.js +1054 -0
  9. package/src/lib/db/collection.js.map +1 -0
  10. package/src/lib/db/cursor.d.ts +51 -0
  11. package/src/lib/db/cursor.d.ts.map +1 -0
  12. package/src/lib/db/cursor.js +100 -0
  13. package/src/lib/db/cursor.js.map +1 -0
  14. package/src/lib/db/errors.d.ts +83 -0
  15. package/src/lib/db/errors.d.ts.map +1 -0
  16. package/src/lib/db/errors.js +103 -0
  17. package/src/lib/db/errors.js.map +1 -0
  18. package/src/lib/db/inMemoryDatabase.d.ts +135 -0
  19. package/src/lib/db/inMemoryDatabase.d.ts.map +1 -0
  20. package/src/lib/db/inMemoryDatabase.js +258 -0
  21. package/src/lib/db/inMemoryDatabase.js.map +1 -0
  22. package/src/lib/db/inMemoryHeadRegistry.d.ts +33 -0
  23. package/src/lib/db/inMemoryHeadRegistry.d.ts.map +1 -0
  24. package/src/lib/db/inMemoryHeadRegistry.js +83 -0
  25. package/src/lib/db/inMemoryHeadRegistry.js.map +1 -0
  26. package/src/lib/db/index.d.ts +14 -0
  27. package/src/lib/db/index.d.ts.map +1 -0
  28. package/src/lib/db/index.js +18 -0
  29. package/src/lib/db/index.js.map +1 -0
  30. package/src/lib/db/indexing.d.ts +133 -0
  31. package/src/lib/db/indexing.d.ts.map +1 -0
  32. package/src/lib/db/indexing.js +287 -0
  33. package/src/lib/db/indexing.js.map +1 -0
  34. package/src/lib/db/queryEngine.d.ts +50 -0
  35. package/src/lib/db/queryEngine.d.ts.map +1 -0
  36. package/src/lib/db/queryEngine.js +461 -0
  37. package/src/lib/db/queryEngine.js.map +1 -0
  38. package/src/lib/db/schemaValidation.d.ts +41 -0
  39. package/src/lib/db/schemaValidation.d.ts.map +1 -0
  40. package/src/lib/db/schemaValidation.js +322 -0
  41. package/src/lib/db/schemaValidation.js.map +1 -0
  42. package/src/lib/db/transaction.d.ts +88 -0
  43. package/src/lib/db/transaction.d.ts.map +1 -0
  44. package/src/lib/db/transaction.js +112 -0
  45. package/src/lib/db/transaction.js.map +1 -0
  46. package/src/lib/db/types.d.ts +11 -0
  47. package/src/lib/db/types.d.ts.map +1 -0
  48. package/src/lib/db/types.js +11 -0
  49. package/src/lib/db/types.js.map +1 -0
  50. package/src/lib/db/updateEngine.d.ts +20 -0
  51. package/src/lib/db/updateEngine.d.ts.map +1 -0
  52. package/src/lib/db/updateEngine.js +193 -0
  53. package/src/lib/db/updateEngine.js.map +1 -0
  54. package/src/lib/db/uuidGenerator.d.ts +13 -0
  55. package/src/lib/db/uuidGenerator.d.ts.map +1 -0
  56. package/src/lib/db/uuidGenerator.js +34 -0
  57. package/src/lib/db/uuidGenerator.js.map +1 -0
  58. package/src/lib/documents/member/memberProfileHydration.d.ts.map +1 -1
  59. package/src/lib/documents/member/memberProfileHydration.js +6 -0
  60. package/src/lib/documents/member/memberProfileHydration.js.map +1 -1
  61. package/src/lib/enumerations/brightChainStrings.d.ts +39 -0
  62. package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -1
  63. package/src/lib/enumerations/brightChainStrings.js +47 -0
  64. package/src/lib/enumerations/brightChainStrings.js.map +1 -1
  65. package/src/lib/enumerations/identityValidationErrorType.d.ts +11 -0
  66. package/src/lib/enumerations/identityValidationErrorType.d.ts.map +1 -0
  67. package/src/lib/enumerations/identityValidationErrorType.js +15 -0
  68. package/src/lib/enumerations/identityValidationErrorType.js.map +1 -0
  69. package/src/lib/enumerations/index.d.ts +4 -0
  70. package/src/lib/enumerations/index.d.ts.map +1 -1
  71. package/src/lib/enumerations/index.js +5 -0
  72. package/src/lib/enumerations/index.js.map +1 -1
  73. package/src/lib/enumerations/memberStatusType.d.ts +2 -1
  74. package/src/lib/enumerations/memberStatusType.d.ts.map +1 -1
  75. package/src/lib/enumerations/memberStatusType.js +1 -0
  76. package/src/lib/enumerations/memberStatusType.js.map +1 -1
  77. package/src/lib/enumerations/proposalActionType.d.ts +22 -0
  78. package/src/lib/enumerations/proposalActionType.d.ts.map +1 -0
  79. package/src/lib/enumerations/proposalActionType.js +26 -0
  80. package/src/lib/enumerations/proposalActionType.js.map +1 -0
  81. package/src/lib/enumerations/proposalStatus.d.ts +14 -0
  82. package/src/lib/enumerations/proposalStatus.d.ts.map +1 -0
  83. package/src/lib/enumerations/proposalStatus.js +18 -0
  84. package/src/lib/enumerations/proposalStatus.js.map +1 -0
  85. package/src/lib/enumerations/quorumErrorType.d.ts +30 -1
  86. package/src/lib/enumerations/quorumErrorType.d.ts.map +1 -1
  87. package/src/lib/enumerations/quorumErrorType.js +37 -0
  88. package/src/lib/enumerations/quorumErrorType.js.map +1 -1
  89. package/src/lib/enumerations/quorumOperationalMode.d.ts +16 -0
  90. package/src/lib/enumerations/quorumOperationalMode.d.ts.map +1 -0
  91. package/src/lib/enumerations/quorumOperationalMode.js +20 -0
  92. package/src/lib/enumerations/quorumOperationalMode.js.map +1 -0
  93. package/src/lib/enumerations/sealingErrorType.d.ts +3 -1
  94. package/src/lib/enumerations/sealingErrorType.d.ts.map +1 -1
  95. package/src/lib/enumerations/sealingErrorType.js +2 -0
  96. package/src/lib/enumerations/sealingErrorType.js.map +1 -1
  97. package/src/lib/errors/identityValidationError.d.ts +8 -0
  98. package/src/lib/errors/identityValidationError.d.ts.map +1 -0
  99. package/src/lib/errors/identityValidationError.js +26 -0
  100. package/src/lib/errors/identityValidationError.js.map +1 -0
  101. package/src/lib/errors/index.d.ts +4 -0
  102. package/src/lib/errors/index.d.ts.map +1 -1
  103. package/src/lib/errors/index.js +7 -0
  104. package/src/lib/errors/index.js.map +1 -1
  105. package/src/lib/errors/memberIndexSchemaValidationError.d.ts +6 -0
  106. package/src/lib/errors/memberIndexSchemaValidationError.d.ts.map +1 -0
  107. package/src/lib/errors/memberIndexSchemaValidationError.js +15 -0
  108. package/src/lib/errors/memberIndexSchemaValidationError.js.map +1 -0
  109. package/src/lib/errors/quorumError.d.ts.map +1 -1
  110. package/src/lib/errors/quorumError.js +37 -0
  111. package/src/lib/errors/quorumError.js.map +1 -1
  112. package/src/lib/errors/sealingError.d.ts.map +1 -1
  113. package/src/lib/errors/sealingError.js +2 -0
  114. package/src/lib/errors/sealingError.js.map +1 -1
  115. package/src/lib/i18n/strings/englishUs.d.ts.map +1 -1
  116. package/src/lib/i18n/strings/englishUs.js +45 -0
  117. package/src/lib/i18n/strings/englishUs.js.map +1 -1
  118. package/src/lib/i18n/strings/french.d.ts.map +1 -1
  119. package/src/lib/i18n/strings/french.js +37 -0
  120. package/src/lib/i18n/strings/french.js.map +1 -1
  121. package/src/lib/i18n/strings/german.d.ts.map +1 -1
  122. package/src/lib/i18n/strings/german.js +37 -0
  123. package/src/lib/i18n/strings/german.js.map +1 -1
  124. package/src/lib/i18n/strings/japanese.d.ts.map +1 -1
  125. package/src/lib/i18n/strings/japanese.js +37 -0
  126. package/src/lib/i18n/strings/japanese.js.map +1 -1
  127. package/src/lib/i18n/strings/mandarin.d.ts.map +1 -1
  128. package/src/lib/i18n/strings/mandarin.js +37 -0
  129. package/src/lib/i18n/strings/mandarin.js.map +1 -1
  130. package/src/lib/i18n/strings/spanish.d.ts.map +1 -1
  131. package/src/lib/i18n/strings/spanish.js +37 -0
  132. package/src/lib/i18n/strings/spanish.js.map +1 -1
  133. package/src/lib/i18n/strings/ukrainian.d.ts.map +1 -1
  134. package/src/lib/i18n/strings/ukrainian.js +37 -0
  135. package/src/lib/i18n/strings/ukrainian.js.map +1 -1
  136. package/src/lib/index.d.ts +12 -0
  137. package/src/lib/index.d.ts.map +1 -1
  138. package/src/lib/index.js +55 -1
  139. package/src/lib/index.js.map +1 -1
  140. package/src/lib/interfaces/aliasRecord.d.ts +34 -0
  141. package/src/lib/interfaces/aliasRecord.d.ts.map +1 -0
  142. package/src/lib/interfaces/aliasRecord.js +11 -0
  143. package/src/lib/interfaces/aliasRecord.js.map +1 -0
  144. package/src/lib/interfaces/api/index.d.ts +2 -0
  145. package/src/lib/interfaces/api/index.d.ts.map +1 -0
  146. package/src/lib/interfaces/api/index.js +5 -0
  147. package/src/lib/interfaces/api/index.js.map +1 -0
  148. package/src/lib/interfaces/api/quorumApi.d.ts +97 -0
  149. package/src/lib/interfaces/api/quorumApi.d.ts.map +1 -0
  150. package/src/lib/interfaces/api/quorumApi.js +12 -0
  151. package/src/lib/interfaces/api/quorumApi.js.map +1 -0
  152. package/src/lib/interfaces/auditLogEntry.d.ts +34 -0
  153. package/src/lib/interfaces/auditLogEntry.d.ts.map +1 -0
  154. package/src/lib/interfaces/auditLogEntry.js +10 -0
  155. package/src/lib/interfaces/auditLogEntry.js.map +1 -0
  156. package/src/lib/interfaces/availability/gossipService.d.ts +116 -2
  157. package/src/lib/interfaces/availability/gossipService.d.ts.map +1 -1
  158. package/src/lib/interfaces/availability/gossipService.js +62 -0
  159. package/src/lib/interfaces/availability/gossipService.js.map +1 -1
  160. package/src/lib/interfaces/chainedAuditLogEntry.d.ts +27 -0
  161. package/src/lib/interfaces/chainedAuditLogEntry.d.ts.map +1 -0
  162. package/src/lib/interfaces/chainedAuditLogEntry.js +12 -0
  163. package/src/lib/interfaces/chainedAuditLogEntry.js.map +1 -0
  164. package/src/lib/interfaces/contentWithIdentity.d.ts +39 -0
  165. package/src/lib/interfaces/contentWithIdentity.d.ts.map +1 -0
  166. package/src/lib/interfaces/contentWithIdentity.js +24 -0
  167. package/src/lib/interfaces/contentWithIdentity.js.map +1 -0
  168. package/src/lib/interfaces/energyAccount.d.ts +3 -1
  169. package/src/lib/interfaces/energyAccount.d.ts.map +1 -1
  170. package/src/lib/interfaces/identityRecoveryRecord.d.ts +41 -0
  171. package/src/lib/interfaces/identityRecoveryRecord.d.ts.map +1 -0
  172. package/src/lib/interfaces/identityRecoveryRecord.js +11 -0
  173. package/src/lib/interfaces/identityRecoveryRecord.js.map +1 -0
  174. package/src/lib/interfaces/index.d.ts +17 -0
  175. package/src/lib/interfaces/index.d.ts.map +1 -1
  176. package/src/lib/interfaces/index.js +4 -0
  177. package/src/lib/interfaces/index.js.map +1 -1
  178. package/src/lib/interfaces/initResult.d.ts +6 -6
  179. package/src/lib/interfaces/initResult.d.ts.map +1 -1
  180. package/src/lib/interfaces/member/brightChainBaseInitResult.d.ts +4 -1
  181. package/src/lib/interfaces/member/brightChainBaseInitResult.d.ts.map +1 -1
  182. package/src/lib/interfaces/member/brightChainInitResult.d.ts +1 -1
  183. package/src/lib/interfaces/member/brightChainInitResult.d.ts.map +1 -1
  184. package/src/lib/interfaces/member/memberData.d.ts +3 -0
  185. package/src/lib/interfaces/member/memberData.d.ts.map +1 -1
  186. package/src/lib/interfaces/member/profileStorage.d.ts +5 -0
  187. package/src/lib/interfaces/member/profileStorage.d.ts.map +1 -1
  188. package/src/lib/interfaces/member-init-config.d.ts +20 -0
  189. package/src/lib/interfaces/member-init-config.d.ts.map +1 -0
  190. package/src/lib/interfaces/member-init-config.js +3 -0
  191. package/src/lib/interfaces/member-init-config.js.map +1 -0
  192. package/src/lib/interfaces/operationalState.d.ts +20 -0
  193. package/src/lib/interfaces/operationalState.d.ts.map +1 -0
  194. package/src/lib/interfaces/operationalState.js +10 -0
  195. package/src/lib/interfaces/operationalState.js.map +1 -0
  196. package/src/lib/interfaces/proposal.d.ts +59 -0
  197. package/src/lib/interfaces/proposal.d.ts.map +1 -0
  198. package/src/lib/interfaces/proposal.js +10 -0
  199. package/src/lib/interfaces/proposal.js.map +1 -0
  200. package/src/lib/interfaces/quorumDocumentMetadata.d.ts +20 -0
  201. package/src/lib/interfaces/quorumDocumentMetadata.d.ts.map +1 -0
  202. package/src/lib/interfaces/quorumDocumentMetadata.js +10 -0
  203. package/src/lib/interfaces/quorumDocumentMetadata.js.map +1 -0
  204. package/src/lib/interfaces/quorumEpoch.d.ts +33 -0
  205. package/src/lib/interfaces/quorumEpoch.d.ts.map +1 -0
  206. package/src/lib/interfaces/quorumEpoch.js +11 -0
  207. package/src/lib/interfaces/quorumEpoch.js.map +1 -0
  208. package/src/lib/interfaces/quorumMetrics.d.ts +49 -0
  209. package/src/lib/interfaces/quorumMetrics.d.ts.map +1 -0
  210. package/src/lib/interfaces/quorumMetrics.js +10 -0
  211. package/src/lib/interfaces/quorumMetrics.js.map +1 -0
  212. package/src/lib/interfaces/redistributionJournalEntry.d.ts +25 -0
  213. package/src/lib/interfaces/redistributionJournalEntry.d.ts.map +1 -0
  214. package/src/lib/interfaces/redistributionJournalEntry.js +11 -0
  215. package/src/lib/interfaces/redistributionJournalEntry.js.map +1 -0
  216. package/src/lib/interfaces/responses/backupCodesResponseData.d.ts +3 -5
  217. package/src/lib/interfaces/responses/backupCodesResponseData.d.ts.map +1 -1
  218. package/src/lib/interfaces/responses/challengeResponseData.d.ts +5 -0
  219. package/src/lib/interfaces/responses/challengeResponseData.d.ts.map +1 -1
  220. package/src/lib/interfaces/responses/codeCountResponseData.d.ts +3 -5
  221. package/src/lib/interfaces/responses/codeCountResponseData.d.ts.map +1 -1
  222. package/src/lib/interfaces/responses/index.d.ts +4 -2
  223. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  224. package/src/lib/interfaces/responses/passwordChangeResponse.d.ts +2 -0
  225. package/src/lib/interfaces/responses/passwordChangeResponse.d.ts.map +1 -0
  226. package/src/lib/interfaces/responses/passwordChangeResponse.js +3 -0
  227. package/src/lib/interfaces/responses/passwordChangeResponse.js.map +1 -0
  228. package/src/lib/interfaces/responses/recoveryResponse.d.ts +2 -0
  229. package/src/lib/interfaces/responses/recoveryResponse.d.ts.map +1 -0
  230. package/src/lib/interfaces/responses/recoveryResponse.js +3 -0
  231. package/src/lib/interfaces/responses/recoveryResponse.js.map +1 -0
  232. package/src/lib/interfaces/responses/registrationResponseData.d.ts +2 -2
  233. package/src/lib/interfaces/responses/registrationResponseData.d.ts.map +1 -1
  234. package/src/lib/interfaces/services/contentIngestion.d.ts +61 -0
  235. package/src/lib/interfaces/services/contentIngestion.d.ts.map +1 -0
  236. package/src/lib/interfaces/services/contentIngestion.js +12 -0
  237. package/src/lib/interfaces/services/contentIngestion.js.map +1 -0
  238. package/src/lib/interfaces/services/expirationScheduler.d.ts +55 -0
  239. package/src/lib/interfaces/services/expirationScheduler.d.ts.map +1 -0
  240. package/src/lib/interfaces/services/expirationScheduler.js +11 -0
  241. package/src/lib/interfaces/services/expirationScheduler.js.map +1 -0
  242. package/src/lib/interfaces/services/identitySealingPipeline.d.ts +56 -0
  243. package/src/lib/interfaces/services/identitySealingPipeline.d.ts.map +1 -0
  244. package/src/lib/interfaces/services/identitySealingPipeline.js +12 -0
  245. package/src/lib/interfaces/services/identitySealingPipeline.js.map +1 -0
  246. package/src/lib/interfaces/services/identityValidator.d.ts +44 -0
  247. package/src/lib/interfaces/services/identityValidator.d.ts.map +1 -0
  248. package/src/lib/interfaces/services/identityValidator.js +11 -0
  249. package/src/lib/interfaces/services/identityValidator.js.map +1 -0
  250. package/src/lib/interfaces/services/index.d.ts +9 -0
  251. package/src/lib/interfaces/services/index.d.ts.map +1 -1
  252. package/src/lib/interfaces/services/membershipProof.d.ts +40 -0
  253. package/src/lib/interfaces/services/membershipProof.d.ts.map +1 -0
  254. package/src/lib/interfaces/services/membershipProof.js +11 -0
  255. package/src/lib/interfaces/services/membershipProof.js.map +1 -0
  256. package/src/lib/interfaces/services/operatorPrompt.d.ts +68 -0
  257. package/src/lib/interfaces/services/operatorPrompt.d.ts.map +1 -0
  258. package/src/lib/interfaces/services/operatorPrompt.js +11 -0
  259. package/src/lib/interfaces/services/operatorPrompt.js.map +1 -0
  260. package/src/lib/interfaces/services/quorumDatabase.d.ts +207 -0
  261. package/src/lib/interfaces/services/quorumDatabase.d.ts.map +1 -0
  262. package/src/lib/interfaces/services/quorumDatabase.js +13 -0
  263. package/src/lib/interfaces/services/quorumDatabase.js.map +1 -0
  264. package/src/lib/interfaces/services/quorumService.d.ts +3 -0
  265. package/src/lib/interfaces/services/quorumService.d.ts.map +1 -1
  266. package/src/lib/interfaces/services/quorumStateMachine.d.ts +128 -0
  267. package/src/lib/interfaces/services/quorumStateMachine.d.ts.map +1 -0
  268. package/src/lib/interfaces/services/quorumStateMachine.js +12 -0
  269. package/src/lib/interfaces/services/quorumStateMachine.js.map +1 -0
  270. package/src/lib/interfaces/services/redistributionConfig.d.ts +20 -0
  271. package/src/lib/interfaces/services/redistributionConfig.d.ts.map +1 -0
  272. package/src/lib/interfaces/services/redistributionConfig.js +10 -0
  273. package/src/lib/interfaces/services/redistributionConfig.js.map +1 -0
  274. package/src/lib/interfaces/statuteConfig.d.ts +22 -0
  275. package/src/lib/interfaces/statuteConfig.d.ts.map +1 -0
  276. package/src/lib/interfaces/statuteConfig.js +18 -0
  277. package/src/lib/interfaces/statuteConfig.js.map +1 -0
  278. package/src/lib/interfaces/storage/documentStore.d.ts +46 -24
  279. package/src/lib/interfaces/storage/documentStore.d.ts.map +1 -1
  280. package/src/lib/interfaces/storage/documentStore.js +6 -2
  281. package/src/lib/interfaces/storage/documentStore.js.map +1 -1
  282. package/src/lib/interfaces/storage/index.d.ts +5 -0
  283. package/src/lib/interfaces/storage/index.d.ts.map +1 -1
  284. package/src/lib/interfaces/storage/index.js.map +1 -1
  285. package/src/lib/interfaces/storage/memberIndexSchema.d.ts +11 -0
  286. package/src/lib/interfaces/storage/memberIndexSchema.d.ts.map +1 -0
  287. package/src/lib/interfaces/storage/memberIndexSchema.js +26 -0
  288. package/src/lib/interfaces/storage/memberIndexSchema.js.map +1 -0
  289. package/src/lib/interfaces/storage/mnemonicSchema.d.ts +10 -0
  290. package/src/lib/interfaces/storage/mnemonicSchema.d.ts.map +1 -0
  291. package/src/lib/interfaces/storage/mnemonicSchema.js +22 -0
  292. package/src/lib/interfaces/storage/mnemonicSchema.js.map +1 -0
  293. package/src/lib/interfaces/storage/roleSchema.d.ts +10 -0
  294. package/src/lib/interfaces/storage/roleSchema.d.ts.map +1 -0
  295. package/src/lib/interfaces/storage/roleSchema.js +45 -0
  296. package/src/lib/interfaces/storage/roleSchema.js.map +1 -0
  297. package/src/lib/interfaces/storage/userRoleSchema.d.ts +10 -0
  298. package/src/lib/interfaces/storage/userRoleSchema.d.ts.map +1 -0
  299. package/src/lib/interfaces/storage/userRoleSchema.js +35 -0
  300. package/src/lib/interfaces/storage/userRoleSchema.js.map +1 -0
  301. package/src/lib/interfaces/storage/userSchema.d.ts +12 -0
  302. package/src/lib/interfaces/storage/userSchema.d.ts.map +1 -0
  303. package/src/lib/interfaces/storage/userSchema.js +62 -0
  304. package/src/lib/interfaces/storage/userSchema.js.map +1 -0
  305. package/src/lib/interfaces/userManagement.d.ts +49 -0
  306. package/src/lib/interfaces/userManagement.d.ts.map +1 -0
  307. package/src/lib/interfaces/userManagement.js +9 -0
  308. package/src/lib/interfaces/userManagement.js.map +1 -0
  309. package/src/lib/interfaces/vote.d.ts +45 -0
  310. package/src/lib/interfaces/vote.d.ts.map +1 -0
  311. package/src/lib/interfaces/vote.js +10 -0
  312. package/src/lib/interfaces/vote.js.map +1 -0
  313. package/src/lib/quorumDataRecord.d.ts +7 -1
  314. package/src/lib/quorumDataRecord.d.ts.map +1 -1
  315. package/src/lib/quorumDataRecord.js +12 -4
  316. package/src/lib/quorumDataRecord.js.map +1 -1
  317. package/src/lib/quorumDataRecordDto.d.ts +6 -0
  318. package/src/lib/quorumDataRecordDto.d.ts.map +1 -1
  319. package/src/lib/services/aliasRegistry.d.ts +77 -0
  320. package/src/lib/services/aliasRegistry.d.ts.map +1 -0
  321. package/src/lib/services/aliasRegistry.js +138 -0
  322. package/src/lib/services/aliasRegistry.js.map +1 -0
  323. package/src/lib/services/auditLogService.d.ts +100 -0
  324. package/src/lib/services/auditLogService.d.ts.map +1 -0
  325. package/src/lib/services/auditLogService.js +223 -0
  326. package/src/lib/services/auditLogService.js.map +1 -0
  327. package/src/lib/services/blockService.d.ts +2 -1
  328. package/src/lib/services/blockService.d.ts.map +1 -1
  329. package/src/lib/services/blockService.js +7 -2
  330. package/src/lib/services/blockService.js.map +1 -1
  331. package/src/lib/services/identitySealingPipeline.d.ts +120 -0
  332. package/src/lib/services/identitySealingPipeline.d.ts.map +1 -0
  333. package/src/lib/services/identitySealingPipeline.js +288 -0
  334. package/src/lib/services/identitySealingPipeline.js.map +1 -0
  335. package/src/lib/services/identityValidator.d.ts +75 -0
  336. package/src/lib/services/identityValidator.d.ts.map +1 -0
  337. package/src/lib/services/identityValidator.js +202 -0
  338. package/src/lib/services/identityValidator.js.map +1 -0
  339. package/src/lib/services/index.d.ts +6 -0
  340. package/src/lib/services/index.d.ts.map +1 -1
  341. package/src/lib/services/index.js +6 -0
  342. package/src/lib/services/index.js.map +1 -1
  343. package/src/lib/services/member/memberCblService.d.ts.map +1 -1
  344. package/src/lib/services/member/memberCblService.js +12 -1
  345. package/src/lib/services/member/memberCblService.js.map +1 -1
  346. package/src/lib/services/memberStore.d.ts.map +1 -1
  347. package/src/lib/services/memberStore.js +2 -0
  348. package/src/lib/services/memberStore.js.map +1 -1
  349. package/src/lib/services/membershipProofService.d.ts +90 -0
  350. package/src/lib/services/membershipProofService.d.ts.map +1 -0
  351. package/src/lib/services/membershipProofService.js +361 -0
  352. package/src/lib/services/membershipProofService.js.map +1 -0
  353. package/src/lib/services/quorumStateMachine.d.ts +336 -0
  354. package/src/lib/services/quorumStateMachine.d.ts.map +1 -0
  355. package/src/lib/services/quorumStateMachine.js +1396 -0
  356. package/src/lib/services/quorumStateMachine.js.map +1 -0
  357. package/src/lib/services/sealing.service.d.ts +80 -0
  358. package/src/lib/services/sealing.service.d.ts.map +1 -1
  359. package/src/lib/services/sealing.service.js +192 -0
  360. package/src/lib/services/sealing.service.js.map +1 -1
  361. package/src/lib/stores/energyAccountStore.d.ts +13 -11
  362. package/src/lib/stores/energyAccountStore.d.ts.map +1 -1
  363. package/src/lib/stores/energyAccountStore.js +18 -20
  364. package/src/lib/stores/energyAccountStore.js.map +1 -1
  365. /package/{BLOCK_COVERAGE_AUDIT.md → brightchain-lib/BLOCK_COVERAGE_AUDIT.md} +0 -0
  366. /package/{BROWSER_COMPAT.md → brightchain-lib/BROWSER_COMPAT.md} +0 -0
  367. /package/{DEPRECATIONS.md → brightchain-lib/DEPRECATIONS.md} +0 -0
  368. /package/{DEPRECATIONS_REMOVED.md → brightchain-lib/DEPRECATIONS_REMOVED.md} +0 -0
  369. /package/{MIGRATION.md → brightchain-lib/MIGRATION.md} +0 -0
  370. /package/{NAMING_AUDIT.md → brightchain-lib/NAMING_AUDIT.md} +0 -0
  371. /package/{NAMING_CONVENTIONS.md → brightchain-lib/NAMING_CONVENTIONS.md} +0 -0
  372. /package/{README.md → brightchain-lib/README.md} +0 -0
@@ -0,0 +1,336 @@
1
+ /**
2
+ * @fileoverview QuorumStateMachine implementation.
3
+ *
4
+ * Central coordinator for the quorum system. Manages operational mode,
5
+ * epoch lifecycle, proposal/vote orchestration, and delegates to
6
+ * SealingService for cryptographic operations.
7
+ *
8
+ * @see Requirements 1-8, 10-13
9
+ */
10
+ import { Member, PlatformID, ShortHexGuid } from '@digitaldefiance/ecies-lib';
11
+ import { QuorumOperationalMode } from '../enumerations/quorumOperationalMode';
12
+ import { IGossipService } from '../interfaces/availability/gossipService';
13
+ import { Proposal, ProposalInput } from '../interfaces/proposal';
14
+ import { QuorumEpoch } from '../interfaces/quorumEpoch';
15
+ import { QuorumMetrics } from '../interfaces/quorumMetrics';
16
+ import { IQuorumDatabase } from '../interfaces/services/quorumDatabase';
17
+ import { QuorumMemberMetadata, SealedDocumentResult } from '../interfaces/services/quorumService';
18
+ import { IQuorumStateMachine } from '../interfaces/services/quorumStateMachine';
19
+ import { RedistributionConfig } from '../interfaces/services/redistributionConfig';
20
+ import { VoteInput } from '../interfaces/vote';
21
+ import { AliasRegistry } from './aliasRegistry';
22
+ import { AuditLogService } from './auditLogService';
23
+ import { SealingService } from './sealing.service';
24
+ /**
25
+ * QuorumStateMachine is the central coordinator for the quorum system.
26
+ *
27
+ * It manages:
28
+ * - Operational mode (Bootstrap / Quorum / TransitionInProgress)
29
+ * - Epoch lifecycle
30
+ * - Document sealing/unsealing with mode-aware delegation
31
+ * - Metrics collection
32
+ *
33
+ * @template TID - Platform ID type for frontend/backend DTO compatibility
34
+ */
35
+ export declare class QuorumStateMachine<TID extends PlatformID = Uint8Array> implements IQuorumStateMachine<TID> {
36
+ private readonly db;
37
+ private readonly sealingService;
38
+ private readonly gossipService;
39
+ private readonly auditLogService?;
40
+ private readonly aliasRegistry?;
41
+ private mode;
42
+ private currentEpochData;
43
+ private configuredThreshold;
44
+ private initialized;
45
+ private readonly checksumService;
46
+ private metricsData;
47
+ constructor(db: IQuorumDatabase<TID>, sealingService: SealingService<TID>, gossipService: IGossipService, auditLogService?: AuditLogService<TID> | undefined, aliasRegistry?: AliasRegistry<TID> | undefined);
48
+ /**
49
+ * Initialize the quorum system.
50
+ *
51
+ * - Checks for persisted operational state first (restore on restart).
52
+ * - If TransitionInProgress is detected, triggers rollback recovery.
53
+ * - Otherwise, determines mode based on member count vs threshold.
54
+ * - Persists the operational state and creates epoch 1.
55
+ */
56
+ initialize(members: Member<TID>[], threshold: number): Promise<QuorumEpoch<TID>>;
57
+ /**
58
+ * Rollback a transition that was interrupted (crash recovery or failure).
59
+ *
60
+ * For each journal entry, restores the document's old shares, member IDs,
61
+ * and threshold from the journal. Then deletes all journal entries and
62
+ * resets operational state to Bootstrap mode.
63
+ *
64
+ * @param epochNumber - The epoch number to rollback
65
+ * @param emitAudit - Whether to emit a transition_ceremony_failed audit entry (false during crash recovery in initialize)
66
+ */
67
+ private rollbackTransition;
68
+ /** Ensure the state machine is initialized before operations. */
69
+ private ensureInitialized;
70
+ /** Ensure operations are not blocked by a transition ceremony. */
71
+ private ensureNotTransitioning;
72
+ /**
73
+ * Create the next epoch with incremented epoch number.
74
+ *
75
+ * 1. Gets the current epoch number
76
+ * 2. Creates a new epoch with epochNumber = current + 1
77
+ * 3. Saves the epoch to the database
78
+ * 4. Updates the operational state with the new epoch number
79
+ * 5. Updates the cached currentEpochData
80
+ * 6. Returns the new epoch
81
+ *
82
+ * @param memberIds - Active member IDs for the new epoch
83
+ * @param threshold - Threshold for the new epoch
84
+ * @param mode - Operational mode for the new epoch
85
+ * @param previousEpochNumber - Optional override for the previous epoch number
86
+ * @returns The newly created QuorumEpoch
87
+ */
88
+ private createNextEpoch;
89
+ /**
90
+ * Emit an audit log entry.
91
+ *
92
+ * If an AuditLogService is configured, routes through it for chain linking
93
+ * and signing. Otherwise, writes directly to the database.
94
+ *
95
+ * @param eventType - The type of audit event
96
+ * @param details - Additional event-specific details
97
+ * @param targetMemberId - Optional target member ID
98
+ */
99
+ private emitAuditEntry;
100
+ /**
101
+ * Resolve IQuorumMember records into Member objects suitable for SealingService.
102
+ *
103
+ * Creates Member instances with only public keys (no private keys) from
104
+ * the database member records. These are sufficient for encrypting new shares.
105
+ *
106
+ * @param quorumMembers - Database member records to resolve
107
+ * @returns Array of Member objects with public keys
108
+ */
109
+ private resolveMembersFromRecords;
110
+ /**
111
+ * Perform batched share redistribution for all documents in a given epoch.
112
+ *
113
+ * Processes documents in pages using `listDocumentsByEpoch`, decrypts shares
114
+ * from threshold members, calls `redistributeShares`, updates documents,
115
+ * and saves them back to the database.
116
+ *
117
+ * @param fromEpochNumber - The epoch whose documents need redistribution
118
+ * @param thresholdMembers - Members with private keys to decrypt existing shares
119
+ * @param newMembers - The new member set for re-encryption
120
+ * @param newThreshold - The new threshold for shares
121
+ * @param oldSharingConfig - The old sharing configuration (totalShares, threshold)
122
+ * @param config - Redistribution configuration (batch size, progress, continue-on-failure)
123
+ * @returns Array of failed document IDs
124
+ */
125
+ private redistributeDocuments;
126
+ /**
127
+ * Get the current operational mode.
128
+ * Restores from persisted state on first call if needed.
129
+ */
130
+ getMode(): Promise<QuorumOperationalMode>;
131
+ /**
132
+ * Initiate a transition ceremony from Bootstrap to Quorum mode.
133
+ *
134
+ * Flow:
135
+ * 1. Verify members >= threshold, set mode to TransitionInProgress
136
+ * 2. Emit transition_ceremony_started audit entry
137
+ * 3. Block seal/unseal/submitProposal (via ensureNotTransitioning)
138
+ * 4. For each bootstrap-sealed document (paginated):
139
+ * a. Save journal entry with old shares/members/threshold/epoch
140
+ * b. Redistribute shares to full member set with configured threshold
141
+ * c. Update document in database
142
+ * 5. On success: create new epoch in Quorum mode, delete journal entries,
143
+ * emit transition_ceremony_completed, unblock
144
+ * 6. On failure: rollback from journal, reset to Bootstrap, delete journal
145
+ * entries, emit transition_ceremony_failed
146
+ */
147
+ initiateTransition(): Promise<void>;
148
+ /**
149
+ * Create a new epoch for a completed transition ceremony.
150
+ *
151
+ * Called by the transition ceremony logic (Task 10) when all documents
152
+ * have been successfully re-split. Creates a new epoch in Quorum mode
153
+ * with the full member set and configured threshold.
154
+ *
155
+ * @param memberIds - The full member set after transition
156
+ * @param threshold - The configured quorum threshold
157
+ * @returns The new QuorumEpoch in Quorum mode
158
+ */
159
+ createTransitionEpoch(memberIds: ShortHexGuid[], threshold: number): Promise<QuorumEpoch<TID>>;
160
+ /**
161
+ * Add a new member to the quorum.
162
+ *
163
+ * Saves the member, increments the epoch, triggers batched share
164
+ * redistribution for all documents in the previous epoch, and emits
165
+ * audit entries for member_added and share_redistribution_*.
166
+ *
167
+ * @param member - The member to add
168
+ * @param metadata - Metadata for the member
169
+ * @param redistributionConfig - Optional redistribution configuration
170
+ * @returns The new QuorumEpoch after member addition
171
+ */
172
+ addMember(member: Member<TID>, metadata: QuorumMemberMetadata, redistributionConfig?: Partial<RedistributionConfig>): Promise<QuorumEpoch<TID>>;
173
+ /**
174
+ * Remove a member from the quorum.
175
+ *
176
+ * Validates remaining count >= threshold, removes the member,
177
+ * increments the epoch, triggers share redistribution with fresh
178
+ * polynomial coefficients, and emits audit entries for member_removed
179
+ * and share_redistribution_*.
180
+ *
181
+ * @param memberId - ID of the member to remove
182
+ * @param redistributionConfig - Optional redistribution configuration
183
+ * @returns The new QuorumEpoch after member removal
184
+ * @throws QuorumError with InsufficientRemainingMembers if removal would drop below threshold
185
+ * @throws QuorumError with MemberNotFound if the member is not in the current epoch
186
+ */
187
+ removeMember(memberId: ShortHexGuid, redistributionConfig?: Partial<RedistributionConfig>): Promise<QuorumEpoch<TID>>;
188
+ /**
189
+ * Maximum allowed description length for proposals.
190
+ */
191
+ private static readonly MAX_DESCRIPTION_LENGTH;
192
+ /**
193
+ * Member count threshold above which inner quorum routing is used.
194
+ */
195
+ private static readonly INNER_QUORUM_MEMBER_THRESHOLD;
196
+ /**
197
+ * Action types considered routine for inner quorum routing.
198
+ * When member count > 20 and an inner quorum exists, these use the inner quorum threshold.
199
+ */
200
+ private static readonly ROUTINE_ACTION_TYPES;
201
+ /**
202
+ * Determine the required threshold for a proposal based on inner quorum routing.
203
+ *
204
+ * When member count > 20 and the current epoch has innerQuorumMemberIds,
205
+ * routine operations use the inner quorum size as threshold,
206
+ * while critical operations use the full membership threshold.
207
+ *
208
+ * @param actionType - The proposal action type
209
+ * @returns The required vote threshold
210
+ */
211
+ private getRequiredThreshold;
212
+ /**
213
+ * Submit a proposal for quorum voting.
214
+ *
215
+ * Validates the proposer is an active member, validates description length,
216
+ * validates IDENTITY_DISCLOSURE has an attachment, assigns a unique ID,
217
+ * stores as pending, announces via gossip, and emits audit entry.
218
+ *
219
+ * @param proposal - The proposal input
220
+ * @returns The created Proposal with assigned ID and status
221
+ * @throws QuorumError with MissingAttachment if IDENTITY_DISCLOSURE lacks attachmentCblId
222
+ */
223
+ submitProposal(proposal: ProposalInput<TID>): Promise<Proposal<TID>>;
224
+ /**
225
+ * Submit a vote on a pending proposal.
226
+ *
227
+ * Validates the proposal exists and is pending, validates the voter is an
228
+ * active member, checks for duplicate votes, stores the vote, announces
229
+ * via gossip, emits audit entry, and triggers vote tallying.
230
+ *
231
+ * @param vote - The vote input
232
+ * @throws QuorumError with ProposalExpired if proposal is not pending
233
+ * @throws QuorumError with DuplicateVote if voter already voted
234
+ * @throws QuorumError with VoterNotOnProposal if voter is not an active member
235
+ */
236
+ submitVote(vote: VoteInput<TID>): Promise<void>;
237
+ /**
238
+ * Tally votes for a proposal.
239
+ *
240
+ * Counts approve and reject votes. If approve count >= threshold, marks
241
+ * the proposal as approved and dispatches the action. If reject count
242
+ * makes approval impossible, marks the proposal as rejected.
243
+ *
244
+ * @param proposal - The proposal to tally votes for
245
+ */
246
+ private tallyVotes;
247
+ /**
248
+ * Mark a proposal as expired and emit audit entry.
249
+ *
250
+ * @param proposal - The proposal to expire
251
+ */
252
+ private expireProposal;
253
+ /**
254
+ * Execute the action associated with an approved proposal.
255
+ *
256
+ * Dispatches to the appropriate handler based on ProposalActionType.
257
+ * Simple actions are fully implemented; complex ones are stubs that log.
258
+ *
259
+ * @param proposal - The approved proposal whose action to execute
260
+ */
261
+ private executeProposalAction;
262
+ /**
263
+ * 11.8.1 ADD_MEMBER — stub that calls addMember with payload data.
264
+ */
265
+ private executeAddMember;
266
+ /**
267
+ * 11.8.2 REMOVE_MEMBER — stub that calls removeMember with payload data.
268
+ */
269
+ private executeRemoveMember;
270
+ /**
271
+ * 11.8.3 CHANGE_THRESHOLD — update threshold and trigger share redistribution.
272
+ */
273
+ private executeChangeThreshold;
274
+ /**
275
+ * 11.8.5 UNSEAL_DOCUMENT — stub (collect shares, unseal).
276
+ */
277
+ private executeUnsealDocument;
278
+ /**
279
+ * 11.8.6 IDENTITY_DISCLOSURE — check statute of limitations, reject if expired/deleted.
280
+ *
281
+ * When the target IdentityRecoveryRecord has expired or been deleted by the
282
+ * expiration scheduler, throws IdentityPermanentlyUnrecoverable (Req 17.6).
283
+ */
284
+ private executeIdentityDisclosure;
285
+ /**
286
+ * 11.8.7 REGISTER_ALIAS — delegate to AliasRegistry.registerAlias().
287
+ */
288
+ private executeRegisterAlias;
289
+ /**
290
+ * 11.8.8 DEREGISTER_ALIAS — delegate to AliasRegistry.deregisterAlias().
291
+ */
292
+ private executeDeregisterAlias;
293
+ /**
294
+ * 11.8.9 EXTEND_STATUTE — update expiresAt on the target IdentityRecoveryRecord.
295
+ */
296
+ private executeExtendStatute;
297
+ /**
298
+ * 11.8.10 CHANGE_INNER_QUORUM — update innerQuorumMemberIds on current epoch.
299
+ */
300
+ private executeChangeInnerQuorum;
301
+ /**
302
+ * 11.8.11 CUSTOM — log approval without automated execution.
303
+ */
304
+ private executeCustomAction;
305
+ /**
306
+ * Get a proposal by its ID.
307
+ */
308
+ getProposal(proposalId: ShortHexGuid): Promise<Proposal<TID> | null>;
309
+ /**
310
+ * Seal a document using the appropriate mode (bootstrap or quorum).
311
+ *
312
+ * In bootstrap mode: delegates to quorumSealBootstrap with effective threshold = member count.
313
+ * In quorum mode: delegates to quorumSeal with configured threshold.
314
+ * Tags document with epoch number and sealedUnderBootstrap flag.
315
+ *
316
+ * @throws QuorumError with TransitionInProgress if a transition ceremony is active
317
+ */
318
+ sealDocument<T>(agent: Member<TID>, document: T, memberIds: ShortHexGuid[], sharesRequired?: number): Promise<SealedDocumentResult<TID>>;
319
+ /**
320
+ * Unseal a document.
321
+ *
322
+ * Verifies checksum (SHA-3) and creator signature using constant-time
323
+ * comparison before delegating to SealingService.
324
+ * Returns generic error on failure without revealing which check failed (Req 8.4-8.6).
325
+ */
326
+ unsealDocument<T>(documentId: ShortHexGuid, membersWithPrivateKey: Member<TID>[]): Promise<T>;
327
+ /** Get the current epoch. */
328
+ getCurrentEpoch(): Promise<QuorumEpoch<TID>>;
329
+ /** Get a specific epoch by number. */
330
+ getEpoch(epochNumber: number): Promise<QuorumEpoch<TID> | null>;
331
+ /** Get quorum system metrics for monitoring. */
332
+ getMetrics(): Promise<QuorumMetrics>;
333
+ /** Get the configured threshold for this quorum. */
334
+ getConfiguredThreshold(): number;
335
+ }
336
+ //# sourceMappingURL=quorumStateMachine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quorumStateMachine.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/quorumStateMachine.ts"],"names":[],"mappings":"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"}