@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.
- package/package.json +2 -2
- package/src/lib/db/aggregation.d.ts +20 -0
- package/src/lib/db/aggregation.d.ts.map +1 -0
- package/src/lib/db/aggregation.js +407 -0
- package/src/lib/db/aggregation.js.map +1 -0
- package/src/lib/db/collection.d.ts +315 -0
- package/src/lib/db/collection.d.ts.map +1 -0
- package/src/lib/db/collection.js +1054 -0
- package/src/lib/db/collection.js.map +1 -0
- package/src/lib/db/cursor.d.ts +51 -0
- package/src/lib/db/cursor.d.ts.map +1 -0
- package/src/lib/db/cursor.js +100 -0
- package/src/lib/db/cursor.js.map +1 -0
- package/src/lib/db/errors.d.ts +83 -0
- package/src/lib/db/errors.d.ts.map +1 -0
- package/src/lib/db/errors.js +103 -0
- package/src/lib/db/errors.js.map +1 -0
- package/src/lib/db/inMemoryDatabase.d.ts +135 -0
- package/src/lib/db/inMemoryDatabase.d.ts.map +1 -0
- package/src/lib/db/inMemoryDatabase.js +258 -0
- package/src/lib/db/inMemoryDatabase.js.map +1 -0
- package/src/lib/db/inMemoryHeadRegistry.d.ts +33 -0
- package/src/lib/db/inMemoryHeadRegistry.d.ts.map +1 -0
- package/src/lib/db/inMemoryHeadRegistry.js +83 -0
- package/src/lib/db/inMemoryHeadRegistry.js.map +1 -0
- package/src/lib/db/index.d.ts +14 -0
- package/src/lib/db/index.d.ts.map +1 -0
- package/src/lib/db/index.js +18 -0
- package/src/lib/db/index.js.map +1 -0
- package/src/lib/db/indexing.d.ts +133 -0
- package/src/lib/db/indexing.d.ts.map +1 -0
- package/src/lib/db/indexing.js +287 -0
- package/src/lib/db/indexing.js.map +1 -0
- package/src/lib/db/queryEngine.d.ts +50 -0
- package/src/lib/db/queryEngine.d.ts.map +1 -0
- package/src/lib/db/queryEngine.js +461 -0
- package/src/lib/db/queryEngine.js.map +1 -0
- package/src/lib/db/schemaValidation.d.ts +41 -0
- package/src/lib/db/schemaValidation.d.ts.map +1 -0
- package/src/lib/db/schemaValidation.js +322 -0
- package/src/lib/db/schemaValidation.js.map +1 -0
- package/src/lib/db/transaction.d.ts +88 -0
- package/src/lib/db/transaction.d.ts.map +1 -0
- package/src/lib/db/transaction.js +112 -0
- package/src/lib/db/transaction.js.map +1 -0
- package/src/lib/db/types.d.ts +11 -0
- package/src/lib/db/types.d.ts.map +1 -0
- package/src/lib/db/types.js +11 -0
- package/src/lib/db/types.js.map +1 -0
- package/src/lib/db/updateEngine.d.ts +20 -0
- package/src/lib/db/updateEngine.d.ts.map +1 -0
- package/src/lib/db/updateEngine.js +193 -0
- package/src/lib/db/updateEngine.js.map +1 -0
- package/src/lib/db/uuidGenerator.d.ts +13 -0
- package/src/lib/db/uuidGenerator.d.ts.map +1 -0
- package/src/lib/db/uuidGenerator.js +34 -0
- package/src/lib/db/uuidGenerator.js.map +1 -0
- package/src/lib/documents/member/memberProfileHydration.d.ts.map +1 -1
- package/src/lib/documents/member/memberProfileHydration.js +6 -0
- package/src/lib/documents/member/memberProfileHydration.js.map +1 -1
- package/src/lib/enumerations/brightChainStrings.d.ts +39 -0
- package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -1
- package/src/lib/enumerations/brightChainStrings.js +47 -0
- package/src/lib/enumerations/brightChainStrings.js.map +1 -1
- package/src/lib/enumerations/identityValidationErrorType.d.ts +11 -0
- package/src/lib/enumerations/identityValidationErrorType.d.ts.map +1 -0
- package/src/lib/enumerations/identityValidationErrorType.js +15 -0
- package/src/lib/enumerations/identityValidationErrorType.js.map +1 -0
- package/src/lib/enumerations/index.d.ts +4 -0
- package/src/lib/enumerations/index.d.ts.map +1 -1
- package/src/lib/enumerations/index.js +5 -0
- package/src/lib/enumerations/index.js.map +1 -1
- package/src/lib/enumerations/memberStatusType.d.ts +2 -1
- package/src/lib/enumerations/memberStatusType.d.ts.map +1 -1
- package/src/lib/enumerations/memberStatusType.js +1 -0
- package/src/lib/enumerations/memberStatusType.js.map +1 -1
- package/src/lib/enumerations/proposalActionType.d.ts +22 -0
- package/src/lib/enumerations/proposalActionType.d.ts.map +1 -0
- package/src/lib/enumerations/proposalActionType.js +26 -0
- package/src/lib/enumerations/proposalActionType.js.map +1 -0
- package/src/lib/enumerations/proposalStatus.d.ts +14 -0
- package/src/lib/enumerations/proposalStatus.d.ts.map +1 -0
- package/src/lib/enumerations/proposalStatus.js +18 -0
- package/src/lib/enumerations/proposalStatus.js.map +1 -0
- package/src/lib/enumerations/quorumErrorType.d.ts +30 -1
- package/src/lib/enumerations/quorumErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/quorumErrorType.js +37 -0
- package/src/lib/enumerations/quorumErrorType.js.map +1 -1
- package/src/lib/enumerations/quorumOperationalMode.d.ts +16 -0
- package/src/lib/enumerations/quorumOperationalMode.d.ts.map +1 -0
- package/src/lib/enumerations/quorumOperationalMode.js +20 -0
- package/src/lib/enumerations/quorumOperationalMode.js.map +1 -0
- package/src/lib/enumerations/sealingErrorType.d.ts +3 -1
- package/src/lib/enumerations/sealingErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/sealingErrorType.js +2 -0
- package/src/lib/enumerations/sealingErrorType.js.map +1 -1
- package/src/lib/errors/identityValidationError.d.ts +8 -0
- package/src/lib/errors/identityValidationError.d.ts.map +1 -0
- package/src/lib/errors/identityValidationError.js +26 -0
- package/src/lib/errors/identityValidationError.js.map +1 -0
- package/src/lib/errors/index.d.ts +4 -0
- package/src/lib/errors/index.d.ts.map +1 -1
- package/src/lib/errors/index.js +7 -0
- package/src/lib/errors/index.js.map +1 -1
- package/src/lib/errors/memberIndexSchemaValidationError.d.ts +6 -0
- package/src/lib/errors/memberIndexSchemaValidationError.d.ts.map +1 -0
- package/src/lib/errors/memberIndexSchemaValidationError.js +15 -0
- package/src/lib/errors/memberIndexSchemaValidationError.js.map +1 -0
- package/src/lib/errors/quorumError.d.ts.map +1 -1
- package/src/lib/errors/quorumError.js +37 -0
- package/src/lib/errors/quorumError.js.map +1 -1
- package/src/lib/errors/sealingError.d.ts.map +1 -1
- package/src/lib/errors/sealingError.js +2 -0
- package/src/lib/errors/sealingError.js.map +1 -1
- package/src/lib/i18n/strings/englishUs.d.ts.map +1 -1
- package/src/lib/i18n/strings/englishUs.js +45 -0
- package/src/lib/i18n/strings/englishUs.js.map +1 -1
- package/src/lib/i18n/strings/french.d.ts.map +1 -1
- package/src/lib/i18n/strings/french.js +37 -0
- package/src/lib/i18n/strings/french.js.map +1 -1
- package/src/lib/i18n/strings/german.d.ts.map +1 -1
- package/src/lib/i18n/strings/german.js +37 -0
- package/src/lib/i18n/strings/german.js.map +1 -1
- package/src/lib/i18n/strings/japanese.d.ts.map +1 -1
- package/src/lib/i18n/strings/japanese.js +37 -0
- package/src/lib/i18n/strings/japanese.js.map +1 -1
- package/src/lib/i18n/strings/mandarin.d.ts.map +1 -1
- package/src/lib/i18n/strings/mandarin.js +37 -0
- package/src/lib/i18n/strings/mandarin.js.map +1 -1
- package/src/lib/i18n/strings/spanish.d.ts.map +1 -1
- package/src/lib/i18n/strings/spanish.js +37 -0
- package/src/lib/i18n/strings/spanish.js.map +1 -1
- package/src/lib/i18n/strings/ukrainian.d.ts.map +1 -1
- package/src/lib/i18n/strings/ukrainian.js +37 -0
- package/src/lib/i18n/strings/ukrainian.js.map +1 -1
- package/src/lib/index.d.ts +12 -0
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +55 -1
- package/src/lib/index.js.map +1 -1
- package/src/lib/interfaces/aliasRecord.d.ts +34 -0
- package/src/lib/interfaces/aliasRecord.d.ts.map +1 -0
- package/src/lib/interfaces/aliasRecord.js +11 -0
- package/src/lib/interfaces/aliasRecord.js.map +1 -0
- package/src/lib/interfaces/api/index.d.ts +2 -0
- package/src/lib/interfaces/api/index.d.ts.map +1 -0
- package/src/lib/interfaces/api/index.js +5 -0
- package/src/lib/interfaces/api/index.js.map +1 -0
- package/src/lib/interfaces/api/quorumApi.d.ts +97 -0
- package/src/lib/interfaces/api/quorumApi.d.ts.map +1 -0
- package/src/lib/interfaces/api/quorumApi.js +12 -0
- package/src/lib/interfaces/api/quorumApi.js.map +1 -0
- package/src/lib/interfaces/auditLogEntry.d.ts +34 -0
- package/src/lib/interfaces/auditLogEntry.d.ts.map +1 -0
- package/src/lib/interfaces/auditLogEntry.js +10 -0
- package/src/lib/interfaces/auditLogEntry.js.map +1 -0
- package/src/lib/interfaces/availability/gossipService.d.ts +116 -2
- package/src/lib/interfaces/availability/gossipService.d.ts.map +1 -1
- package/src/lib/interfaces/availability/gossipService.js +62 -0
- package/src/lib/interfaces/availability/gossipService.js.map +1 -1
- package/src/lib/interfaces/chainedAuditLogEntry.d.ts +27 -0
- package/src/lib/interfaces/chainedAuditLogEntry.d.ts.map +1 -0
- package/src/lib/interfaces/chainedAuditLogEntry.js +12 -0
- package/src/lib/interfaces/chainedAuditLogEntry.js.map +1 -0
- package/src/lib/interfaces/contentWithIdentity.d.ts +39 -0
- package/src/lib/interfaces/contentWithIdentity.d.ts.map +1 -0
- package/src/lib/interfaces/contentWithIdentity.js +24 -0
- package/src/lib/interfaces/contentWithIdentity.js.map +1 -0
- package/src/lib/interfaces/energyAccount.d.ts +3 -1
- package/src/lib/interfaces/energyAccount.d.ts.map +1 -1
- package/src/lib/interfaces/identityRecoveryRecord.d.ts +41 -0
- package/src/lib/interfaces/identityRecoveryRecord.d.ts.map +1 -0
- package/src/lib/interfaces/identityRecoveryRecord.js +11 -0
- package/src/lib/interfaces/identityRecoveryRecord.js.map +1 -0
- package/src/lib/interfaces/index.d.ts +17 -0
- package/src/lib/interfaces/index.d.ts.map +1 -1
- package/src/lib/interfaces/index.js +4 -0
- package/src/lib/interfaces/index.js.map +1 -1
- package/src/lib/interfaces/initResult.d.ts +6 -6
- package/src/lib/interfaces/initResult.d.ts.map +1 -1
- package/src/lib/interfaces/member/brightChainBaseInitResult.d.ts +4 -1
- package/src/lib/interfaces/member/brightChainBaseInitResult.d.ts.map +1 -1
- package/src/lib/interfaces/member/brightChainInitResult.d.ts +1 -1
- package/src/lib/interfaces/member/brightChainInitResult.d.ts.map +1 -1
- package/src/lib/interfaces/member/memberData.d.ts +3 -0
- package/src/lib/interfaces/member/memberData.d.ts.map +1 -1
- package/src/lib/interfaces/member/profileStorage.d.ts +5 -0
- package/src/lib/interfaces/member/profileStorage.d.ts.map +1 -1
- package/src/lib/interfaces/member-init-config.d.ts +20 -0
- package/src/lib/interfaces/member-init-config.d.ts.map +1 -0
- package/src/lib/interfaces/member-init-config.js +3 -0
- package/src/lib/interfaces/member-init-config.js.map +1 -0
- package/src/lib/interfaces/operationalState.d.ts +20 -0
- package/src/lib/interfaces/operationalState.d.ts.map +1 -0
- package/src/lib/interfaces/operationalState.js +10 -0
- package/src/lib/interfaces/operationalState.js.map +1 -0
- package/src/lib/interfaces/proposal.d.ts +59 -0
- package/src/lib/interfaces/proposal.d.ts.map +1 -0
- package/src/lib/interfaces/proposal.js +10 -0
- package/src/lib/interfaces/proposal.js.map +1 -0
- package/src/lib/interfaces/quorumDocumentMetadata.d.ts +20 -0
- package/src/lib/interfaces/quorumDocumentMetadata.d.ts.map +1 -0
- package/src/lib/interfaces/quorumDocumentMetadata.js +10 -0
- package/src/lib/interfaces/quorumDocumentMetadata.js.map +1 -0
- package/src/lib/interfaces/quorumEpoch.d.ts +33 -0
- package/src/lib/interfaces/quorumEpoch.d.ts.map +1 -0
- package/src/lib/interfaces/quorumEpoch.js +11 -0
- package/src/lib/interfaces/quorumEpoch.js.map +1 -0
- package/src/lib/interfaces/quorumMetrics.d.ts +49 -0
- package/src/lib/interfaces/quorumMetrics.d.ts.map +1 -0
- package/src/lib/interfaces/quorumMetrics.js +10 -0
- package/src/lib/interfaces/quorumMetrics.js.map +1 -0
- package/src/lib/interfaces/redistributionJournalEntry.d.ts +25 -0
- package/src/lib/interfaces/redistributionJournalEntry.d.ts.map +1 -0
- package/src/lib/interfaces/redistributionJournalEntry.js +11 -0
- package/src/lib/interfaces/redistributionJournalEntry.js.map +1 -0
- package/src/lib/interfaces/responses/backupCodesResponseData.d.ts +3 -5
- package/src/lib/interfaces/responses/backupCodesResponseData.d.ts.map +1 -1
- package/src/lib/interfaces/responses/challengeResponseData.d.ts +5 -0
- package/src/lib/interfaces/responses/challengeResponseData.d.ts.map +1 -1
- package/src/lib/interfaces/responses/codeCountResponseData.d.ts +3 -5
- package/src/lib/interfaces/responses/codeCountResponseData.d.ts.map +1 -1
- package/src/lib/interfaces/responses/index.d.ts +4 -2
- package/src/lib/interfaces/responses/index.d.ts.map +1 -1
- package/src/lib/interfaces/responses/passwordChangeResponse.d.ts +2 -0
- package/src/lib/interfaces/responses/passwordChangeResponse.d.ts.map +1 -0
- package/src/lib/interfaces/responses/passwordChangeResponse.js +3 -0
- package/src/lib/interfaces/responses/passwordChangeResponse.js.map +1 -0
- package/src/lib/interfaces/responses/recoveryResponse.d.ts +2 -0
- package/src/lib/interfaces/responses/recoveryResponse.d.ts.map +1 -0
- package/src/lib/interfaces/responses/recoveryResponse.js +3 -0
- package/src/lib/interfaces/responses/recoveryResponse.js.map +1 -0
- package/src/lib/interfaces/responses/registrationResponseData.d.ts +2 -2
- package/src/lib/interfaces/responses/registrationResponseData.d.ts.map +1 -1
- package/src/lib/interfaces/services/contentIngestion.d.ts +61 -0
- package/src/lib/interfaces/services/contentIngestion.d.ts.map +1 -0
- package/src/lib/interfaces/services/contentIngestion.js +12 -0
- package/src/lib/interfaces/services/contentIngestion.js.map +1 -0
- package/src/lib/interfaces/services/expirationScheduler.d.ts +55 -0
- package/src/lib/interfaces/services/expirationScheduler.d.ts.map +1 -0
- package/src/lib/interfaces/services/expirationScheduler.js +11 -0
- package/src/lib/interfaces/services/expirationScheduler.js.map +1 -0
- package/src/lib/interfaces/services/identitySealingPipeline.d.ts +56 -0
- package/src/lib/interfaces/services/identitySealingPipeline.d.ts.map +1 -0
- package/src/lib/interfaces/services/identitySealingPipeline.js +12 -0
- package/src/lib/interfaces/services/identitySealingPipeline.js.map +1 -0
- package/src/lib/interfaces/services/identityValidator.d.ts +44 -0
- package/src/lib/interfaces/services/identityValidator.d.ts.map +1 -0
- package/src/lib/interfaces/services/identityValidator.js +11 -0
- package/src/lib/interfaces/services/identityValidator.js.map +1 -0
- package/src/lib/interfaces/services/index.d.ts +9 -0
- package/src/lib/interfaces/services/index.d.ts.map +1 -1
- package/src/lib/interfaces/services/membershipProof.d.ts +40 -0
- package/src/lib/interfaces/services/membershipProof.d.ts.map +1 -0
- package/src/lib/interfaces/services/membershipProof.js +11 -0
- package/src/lib/interfaces/services/membershipProof.js.map +1 -0
- package/src/lib/interfaces/services/operatorPrompt.d.ts +68 -0
- package/src/lib/interfaces/services/operatorPrompt.d.ts.map +1 -0
- package/src/lib/interfaces/services/operatorPrompt.js +11 -0
- package/src/lib/interfaces/services/operatorPrompt.js.map +1 -0
- package/src/lib/interfaces/services/quorumDatabase.d.ts +207 -0
- package/src/lib/interfaces/services/quorumDatabase.d.ts.map +1 -0
- package/src/lib/interfaces/services/quorumDatabase.js +13 -0
- package/src/lib/interfaces/services/quorumDatabase.js.map +1 -0
- package/src/lib/interfaces/services/quorumService.d.ts +3 -0
- package/src/lib/interfaces/services/quorumService.d.ts.map +1 -1
- package/src/lib/interfaces/services/quorumStateMachine.d.ts +128 -0
- package/src/lib/interfaces/services/quorumStateMachine.d.ts.map +1 -0
- package/src/lib/interfaces/services/quorumStateMachine.js +12 -0
- package/src/lib/interfaces/services/quorumStateMachine.js.map +1 -0
- package/src/lib/interfaces/services/redistributionConfig.d.ts +20 -0
- package/src/lib/interfaces/services/redistributionConfig.d.ts.map +1 -0
- package/src/lib/interfaces/services/redistributionConfig.js +10 -0
- package/src/lib/interfaces/services/redistributionConfig.js.map +1 -0
- package/src/lib/interfaces/statuteConfig.d.ts +22 -0
- package/src/lib/interfaces/statuteConfig.d.ts.map +1 -0
- package/src/lib/interfaces/statuteConfig.js +18 -0
- package/src/lib/interfaces/statuteConfig.js.map +1 -0
- package/src/lib/interfaces/storage/documentStore.d.ts +46 -24
- package/src/lib/interfaces/storage/documentStore.d.ts.map +1 -1
- package/src/lib/interfaces/storage/documentStore.js +6 -2
- package/src/lib/interfaces/storage/documentStore.js.map +1 -1
- package/src/lib/interfaces/storage/index.d.ts +5 -0
- package/src/lib/interfaces/storage/index.d.ts.map +1 -1
- package/src/lib/interfaces/storage/index.js.map +1 -1
- package/src/lib/interfaces/storage/memberIndexSchema.d.ts +11 -0
- package/src/lib/interfaces/storage/memberIndexSchema.d.ts.map +1 -0
- package/src/lib/interfaces/storage/memberIndexSchema.js +26 -0
- package/src/lib/interfaces/storage/memberIndexSchema.js.map +1 -0
- package/src/lib/interfaces/storage/mnemonicSchema.d.ts +10 -0
- package/src/lib/interfaces/storage/mnemonicSchema.d.ts.map +1 -0
- package/src/lib/interfaces/storage/mnemonicSchema.js +22 -0
- package/src/lib/interfaces/storage/mnemonicSchema.js.map +1 -0
- package/src/lib/interfaces/storage/roleSchema.d.ts +10 -0
- package/src/lib/interfaces/storage/roleSchema.d.ts.map +1 -0
- package/src/lib/interfaces/storage/roleSchema.js +45 -0
- package/src/lib/interfaces/storage/roleSchema.js.map +1 -0
- package/src/lib/interfaces/storage/userRoleSchema.d.ts +10 -0
- package/src/lib/interfaces/storage/userRoleSchema.d.ts.map +1 -0
- package/src/lib/interfaces/storage/userRoleSchema.js +35 -0
- package/src/lib/interfaces/storage/userRoleSchema.js.map +1 -0
- package/src/lib/interfaces/storage/userSchema.d.ts +12 -0
- package/src/lib/interfaces/storage/userSchema.d.ts.map +1 -0
- package/src/lib/interfaces/storage/userSchema.js +62 -0
- package/src/lib/interfaces/storage/userSchema.js.map +1 -0
- package/src/lib/interfaces/userManagement.d.ts +49 -0
- package/src/lib/interfaces/userManagement.d.ts.map +1 -0
- package/src/lib/interfaces/userManagement.js +9 -0
- package/src/lib/interfaces/userManagement.js.map +1 -0
- package/src/lib/interfaces/vote.d.ts +45 -0
- package/src/lib/interfaces/vote.d.ts.map +1 -0
- package/src/lib/interfaces/vote.js +10 -0
- package/src/lib/interfaces/vote.js.map +1 -0
- package/src/lib/quorumDataRecord.d.ts +7 -1
- package/src/lib/quorumDataRecord.d.ts.map +1 -1
- package/src/lib/quorumDataRecord.js +12 -4
- package/src/lib/quorumDataRecord.js.map +1 -1
- package/src/lib/quorumDataRecordDto.d.ts +6 -0
- package/src/lib/quorumDataRecordDto.d.ts.map +1 -1
- package/src/lib/services/aliasRegistry.d.ts +77 -0
- package/src/lib/services/aliasRegistry.d.ts.map +1 -0
- package/src/lib/services/aliasRegistry.js +138 -0
- package/src/lib/services/aliasRegistry.js.map +1 -0
- package/src/lib/services/auditLogService.d.ts +100 -0
- package/src/lib/services/auditLogService.d.ts.map +1 -0
- package/src/lib/services/auditLogService.js +223 -0
- package/src/lib/services/auditLogService.js.map +1 -0
- package/src/lib/services/blockService.d.ts +2 -1
- package/src/lib/services/blockService.d.ts.map +1 -1
- package/src/lib/services/blockService.js +7 -2
- package/src/lib/services/blockService.js.map +1 -1
- package/src/lib/services/identitySealingPipeline.d.ts +120 -0
- package/src/lib/services/identitySealingPipeline.d.ts.map +1 -0
- package/src/lib/services/identitySealingPipeline.js +288 -0
- package/src/lib/services/identitySealingPipeline.js.map +1 -0
- package/src/lib/services/identityValidator.d.ts +75 -0
- package/src/lib/services/identityValidator.d.ts.map +1 -0
- package/src/lib/services/identityValidator.js +202 -0
- package/src/lib/services/identityValidator.js.map +1 -0
- package/src/lib/services/index.d.ts +6 -0
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +6 -0
- package/src/lib/services/index.js.map +1 -1
- package/src/lib/services/member/memberCblService.d.ts.map +1 -1
- package/src/lib/services/member/memberCblService.js +12 -1
- package/src/lib/services/member/memberCblService.js.map +1 -1
- package/src/lib/services/memberStore.d.ts.map +1 -1
- package/src/lib/services/memberStore.js +2 -0
- package/src/lib/services/memberStore.js.map +1 -1
- package/src/lib/services/membershipProofService.d.ts +90 -0
- package/src/lib/services/membershipProofService.d.ts.map +1 -0
- package/src/lib/services/membershipProofService.js +361 -0
- package/src/lib/services/membershipProofService.js.map +1 -0
- package/src/lib/services/quorumStateMachine.d.ts +336 -0
- package/src/lib/services/quorumStateMachine.d.ts.map +1 -0
- package/src/lib/services/quorumStateMachine.js +1396 -0
- package/src/lib/services/quorumStateMachine.js.map +1 -0
- package/src/lib/services/sealing.service.d.ts +80 -0
- package/src/lib/services/sealing.service.d.ts.map +1 -1
- package/src/lib/services/sealing.service.js +192 -0
- package/src/lib/services/sealing.service.js.map +1 -1
- package/src/lib/stores/energyAccountStore.d.ts +13 -11
- package/src/lib/stores/energyAccountStore.d.ts.map +1 -1
- package/src/lib/stores/energyAccountStore.js +18 -20
- package/src/lib/stores/energyAccountStore.js.map +1 -1
- /package/{BLOCK_COVERAGE_AUDIT.md → brightchain-lib/BLOCK_COVERAGE_AUDIT.md} +0 -0
- /package/{BROWSER_COMPAT.md → brightchain-lib/BROWSER_COMPAT.md} +0 -0
- /package/{DEPRECATIONS.md → brightchain-lib/DEPRECATIONS.md} +0 -0
- /package/{DEPRECATIONS_REMOVED.md → brightchain-lib/DEPRECATIONS_REMOVED.md} +0 -0
- /package/{MIGRATION.md → brightchain-lib/MIGRATION.md} +0 -0
- /package/{NAMING_AUDIT.md → brightchain-lib/NAMING_AUDIT.md} +0 -0
- /package/{NAMING_CONVENTIONS.md → brightchain-lib/NAMING_CONVENTIONS.md} +0 -0
- /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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"}
|