@brightchain/brightchain-lib 0.8.1 → 0.10.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/brightchain-lib/BLOCK_COVERAGE_AUDIT.md +169 -0
- package/package.json +2 -2
- package/src/browser.d.ts +1 -4
- package/src/browser.d.ts.map +1 -1
- package/src/browser.js +6 -9
- package/src/browser.js.map +1 -1
- package/src/lib/blockMetadata.d.ts +10 -9
- package/src/lib/blockMetadata.d.ts.map +1 -1
- package/src/lib/blockMetadata.js +20 -36
- package/src/lib/blockMetadata.js.map +1 -1
- package/src/lib/blocks/base.d.ts +23 -0
- package/src/lib/blocks/base.d.ts.map +1 -1
- package/src/lib/blocks/base.js +33 -15
- package/src/lib/blocks/base.js.map +1 -1
- package/src/lib/blocks/cbl.d.ts +34 -1
- package/src/lib/blocks/cbl.d.ts.map +1 -1
- package/src/lib/blocks/cbl.js +36 -3
- package/src/lib/blocks/cbl.js.map +1 -1
- package/src/lib/blocks/cblBase.d.ts +45 -1
- package/src/lib/blocks/cblBase.d.ts.map +1 -1
- package/src/lib/blocks/cblBase.js +106 -52
- package/src/lib/blocks/cblBase.js.map +1 -1
- package/src/lib/blocks/encrypted.d.ts +34 -5
- package/src/lib/blocks/encrypted.d.ts.map +1 -1
- package/src/lib/blocks/encrypted.js +129 -24
- package/src/lib/blocks/encrypted.js.map +1 -1
- package/src/lib/blocks/encryptedBlockFactory.js +2 -2
- package/src/lib/blocks/encryptedBlockFactory.js.map +1 -1
- package/src/lib/blocks/ephemeral.d.ts +35 -9
- package/src/lib/blocks/ephemeral.d.ts.map +1 -1
- package/src/lib/blocks/ephemeral.js +71 -42
- package/src/lib/blocks/ephemeral.js.map +1 -1
- package/src/lib/blocks/extendedCbl.d.ts +1 -1
- package/src/lib/blocks/extendedCbl.d.ts.map +1 -1
- package/src/lib/blocks/extendedCbl.js +7 -7
- package/src/lib/blocks/extendedCbl.js.map +1 -1
- package/src/lib/blocks/handle.js +2 -2
- package/src/lib/blocks/handle.js.map +1 -1
- package/src/lib/blocks/handleTuple.js +2 -2
- package/src/lib/blocks/handleTuple.js.map +1 -1
- package/src/lib/blocks/random.d.ts +2 -1
- package/src/lib/blocks/random.d.ts.map +1 -1
- package/src/lib/blocks/random.js +7 -4
- package/src/lib/blocks/random.js.map +1 -1
- package/src/lib/blocks/rawData.d.ts +3 -1
- package/src/lib/blocks/rawData.d.ts.map +1 -1
- package/src/lib/blocks/rawData.js +31 -6
- package/src/lib/blocks/rawData.js.map +1 -1
- package/src/lib/blocks/whitened.d.ts +2 -1
- package/src/lib/blocks/whitened.d.ts.map +1 -1
- package/src/lib/blocks/whitened.js +7 -5
- package/src/lib/blocks/whitened.js.map +1 -1
- package/src/lib/config/constants.d.ts +2 -0
- package/src/lib/config/constants.d.ts.map +1 -0
- package/src/lib/config/constants.js +5 -0
- package/src/lib/config/constants.js.map +1 -0
- package/src/lib/constants.d.ts +37 -0
- package/src/lib/constants.d.ts.map +1 -1
- package/src/lib/constants.js +40 -1
- package/src/lib/constants.js.map +1 -1
- package/src/lib/cpus/index.d.ts +2 -3
- package/src/lib/cpus/index.d.ts.map +1 -1
- package/src/lib/cpus/index.js +5 -0
- package/src/lib/cpus/index.js.map +1 -1
- package/src/lib/cpus/instructionFactory.d.ts +56 -0
- package/src/lib/cpus/instructionFactory.d.ts.map +1 -0
- package/src/lib/cpus/instructionFactory.js +190 -0
- package/src/lib/cpus/instructionFactory.js.map +1 -0
- package/src/lib/cpus/instructionTables.d.ts +14 -12
- package/src/lib/cpus/instructionTables.d.ts.map +1 -1
- package/src/lib/cpus/instructionTables.js +17 -147
- package/src/lib/cpus/instructionTables.js.map +1 -1
- package/src/lib/cpus/riscvCpu.d.ts +51 -0
- package/src/lib/cpus/riscvCpu.d.ts.map +1 -0
- package/src/lib/cpus/riscvCpu.js +131 -0
- package/src/lib/cpus/riscvCpu.js.map +1 -0
- package/src/lib/documents/base/document.d.ts +1 -1
- package/src/lib/documents/base/document.d.ts.map +1 -1
- package/src/lib/documents/member/index.d.ts +2 -0
- package/src/lib/documents/member/index.d.ts.map +1 -1
- package/src/lib/documents/member/index.js +2 -0
- package/src/lib/documents/member/index.js.map +1 -1
- package/src/lib/documents/member/memberDocument.d.ts +4 -3
- package/src/lib/documents/member/memberDocument.d.ts.map +1 -1
- package/src/lib/documents/member/memberDocument.js +11 -8
- package/src/lib/documents/member/memberDocument.js.map +1 -1
- package/src/lib/documents/member/memberHydration.d.ts.map +1 -1
- package/src/lib/documents/member/memberHydration.js +7 -21
- package/src/lib/documents/member/memberHydration.js.map +1 -1
- package/src/lib/documents/member/memberOperational.d.ts.map +1 -1
- package/src/lib/documents/member/memberOperational.js +2 -2
- package/src/lib/documents/member/memberOperational.js.map +1 -1
- package/src/lib/documents/member/memberProfileDocument.d.ts +138 -0
- package/src/lib/documents/member/memberProfileDocument.d.ts.map +1 -0
- package/src/lib/documents/member/memberProfileDocument.js +326 -0
- package/src/lib/documents/member/memberProfileDocument.js.map +1 -0
- package/src/lib/documents/member/memberProfileHydration.d.ts +12 -0
- package/src/lib/documents/member/memberProfileHydration.d.ts.map +1 -0
- package/src/lib/documents/member/memberProfileHydration.js +143 -0
- package/src/lib/documents/member/memberProfileHydration.js.map +1 -0
- package/src/lib/documents/network/networkDocument.d.ts.map +1 -1
- package/src/lib/documents/network/networkDocument.js +4 -3
- package/src/lib/documents/network/networkDocument.js.map +1 -1
- package/src/lib/documents/quorumDocument.d.ts +3 -14
- package/src/lib/documents/quorumDocument.d.ts.map +1 -1
- package/src/lib/documents/quorumDocument.js +4 -2
- package/src/lib/documents/quorumDocument.js.map +1 -1
- package/src/lib/encryptedBlockMetadata.d.ts +13 -5
- package/src/lib/encryptedBlockMetadata.d.ts.map +1 -1
- package/src/lib/encryptedBlockMetadata.js +31 -23
- package/src/lib/encryptedBlockMetadata.js.map +1 -1
- package/src/lib/enumerations/blockSize.d.ts +2 -2
- package/src/lib/enumerations/blockSize.d.ts.map +1 -1
- package/src/lib/enumerations/blockSize.js +15 -15
- package/src/lib/enumerations/blockSize.js.map +1 -1
- package/src/lib/enumerations/{stringNames.d.ts → brightChainStrings.d.ts} +4 -3
- package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -0
- package/src/lib/enumerations/brightChainStrings.js +437 -0
- package/src/lib/enumerations/brightChainStrings.js.map +1 -0
- package/src/lib/enumerations/cblErrorType.d.ts +1 -0
- package/src/lib/enumerations/cblErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/cblErrorType.js +1 -0
- package/src/lib/enumerations/cblErrorType.js.map +1 -1
- package/src/lib/enumerations/index.d.ts +1 -1
- package/src/lib/enumerations/index.d.ts.map +1 -1
- package/src/lib/enumerations/index.js +1 -1
- package/src/lib/enumerations/index.js.map +1 -1
- package/src/lib/enumerations/votingDerivationErrorType.d.ts +2 -2
- package/src/lib/enumerations/votingDerivationErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/votingDerivationErrorType.js +11 -11
- package/src/lib/enumerations/votingDerivationErrorType.js.map +1 -1
- package/src/lib/ephemeralBlockMetadata.d.ts +13 -8
- package/src/lib/ephemeralBlockMetadata.d.ts.map +1 -1
- package/src/lib/ephemeralBlockMetadata.js +27 -19
- package/src/lib/ephemeralBlockMetadata.js.map +1 -1
- package/src/lib/errors/block/blockAccess.d.ts +2 -2
- package/src/lib/errors/block/blockAccess.d.ts.map +1 -1
- package/src/lib/errors/block/blockAccess.js +8 -8
- package/src/lib/errors/block/blockAccess.js.map +1 -1
- package/src/lib/errors/block/blockCapacity.d.ts +2 -2
- package/src/lib/errors/block/blockCapacity.d.ts.map +1 -1
- package/src/lib/errors/block/blockCapacity.js +8 -8
- package/src/lib/errors/block/blockCapacity.js.map +1 -1
- package/src/lib/errors/block/blockError.d.ts +2 -2
- package/src/lib/errors/block/blockError.d.ts.map +1 -1
- package/src/lib/errors/block/blockError.js +16 -16
- package/src/lib/errors/block/blockError.js.map +1 -1
- package/src/lib/errors/block/blockMetadata.d.ts +2 -2
- package/src/lib/errors/block/blockMetadata.d.ts.map +1 -1
- package/src/lib/errors/block/blockMetadata.js +8 -8
- package/src/lib/errors/block/blockMetadata.js.map +1 -1
- package/src/lib/errors/block/blockValidation.d.ts +2 -2
- package/src/lib/errors/block/blockValidation.d.ts.map +1 -1
- package/src/lib/errors/block/blockValidation.js +36 -36
- package/src/lib/errors/block/blockValidation.js.map +1 -1
- package/src/lib/errors/block/cannotDecrypt.d.ts.map +1 -1
- package/src/lib/errors/block/cannotDecrypt.js +2 -2
- package/src/lib/errors/block/cannotDecrypt.js.map +1 -1
- package/src/lib/errors/block/cannotEncrypt.d.ts.map +1 -1
- package/src/lib/errors/block/cannotEncrypt.js +2 -2
- package/src/lib/errors/block/cannotEncrypt.js.map +1 -1
- package/src/lib/errors/blockServiceError.d.ts +2 -2
- package/src/lib/errors/blockServiceError.d.ts.map +1 -1
- package/src/lib/errors/blockServiceError.js +15 -15
- package/src/lib/errors/blockServiceError.js.map +1 -1
- package/src/lib/errors/bufferError.d.ts.map +1 -1
- package/src/lib/errors/bufferError.js +2 -2
- package/src/lib/errors/bufferError.js.map +1 -1
- package/src/lib/errors/cblError.d.ts +2 -2
- package/src/lib/errors/cblError.d.ts.map +1 -1
- package/src/lib/errors/cblError.js +37 -36
- package/src/lib/errors/cblError.js.map +1 -1
- package/src/lib/errors/checksumMismatch.js +2 -2
- package/src/lib/errors/checksumMismatch.js.map +1 -1
- package/src/lib/errors/disposed.js +2 -2
- package/src/lib/errors/disposed.js.map +1 -1
- package/src/lib/errors/document.d.ts +2 -2
- package/src/lib/errors/document.d.ts.map +1 -1
- package/src/lib/errors/document.js +5 -5
- package/src/lib/errors/document.js.map +1 -1
- package/src/lib/errors/eciesError.d.ts +2 -2
- package/src/lib/errors/eciesError.d.ts.map +1 -1
- package/src/lib/errors/eciesError.js +20 -20
- package/src/lib/errors/eciesError.js.map +1 -1
- package/src/lib/errors/extendedCblError.d.ts +2 -2
- package/src/lib/errors/extendedCblError.d.ts.map +1 -1
- package/src/lib/errors/extendedCblError.js +25 -25
- package/src/lib/errors/extendedCblError.js.map +1 -1
- package/src/lib/errors/failedToHydrate.js +2 -2
- package/src/lib/errors/failedToHydrate.js.map +1 -1
- package/src/lib/errors/failedToSerialize.js +2 -2
- package/src/lib/errors/failedToSerialize.js.map +1 -1
- package/src/lib/errors/fecError.d.ts +2 -2
- package/src/lib/errors/fecError.d.ts.map +1 -1
- package/src/lib/errors/fecError.js +19 -19
- package/src/lib/errors/fecError.js.map +1 -1
- package/src/lib/errors/handleTupleError.d.ts +2 -2
- package/src/lib/errors/handleTupleError.d.ts.map +1 -1
- package/src/lib/errors/handleTupleError.js +5 -5
- package/src/lib/errors/handleTupleError.js.map +1 -1
- package/src/lib/errors/index.d.ts +0 -6
- package/src/lib/errors/index.d.ts.map +1 -1
- package/src/lib/errors/index.js +0 -9
- package/src/lib/errors/index.js.map +1 -1
- package/src/lib/errors/invalidBlockSize.js +2 -2
- package/src/lib/errors/invalidBlockSize.js.map +1 -1
- package/src/lib/errors/invalidBlockSizeLength.js +2 -2
- package/src/lib/errors/invalidBlockSizeLength.js.map +1 -1
- package/src/lib/errors/invalidCredentials.js +2 -2
- package/src/lib/errors/invalidCredentials.js.map +1 -1
- package/src/lib/errors/invalidIDFormat.js +2 -2
- package/src/lib/errors/invalidIDFormat.js.map +1 -1
- package/src/lib/errors/invalidSessionID.js +2 -2
- package/src/lib/errors/invalidSessionID.js.map +1 -1
- package/src/lib/errors/invalidTupleCount.js +2 -2
- package/src/lib/errors/invalidTupleCount.js.map +1 -1
- package/src/lib/errors/isolatedKeyError.d.ts +2 -2
- package/src/lib/errors/isolatedKeyError.d.ts.map +1 -1
- package/src/lib/errors/isolatedKeyError.js +7 -7
- package/src/lib/errors/isolatedKeyError.js.map +1 -1
- package/src/lib/errors/memberError.d.ts +2 -2
- package/src/lib/errors/memberError.d.ts.map +1 -1
- package/src/lib/errors/memberError.js +27 -27
- package/src/lib/errors/memberError.js.map +1 -1
- package/src/lib/errors/memoryTupleError.d.ts +2 -2
- package/src/lib/errors/memoryTupleError.d.ts.map +1 -1
- package/src/lib/errors/memoryTupleError.js +7 -7
- package/src/lib/errors/memoryTupleError.js.map +1 -1
- package/src/lib/errors/metadataMismatch.js +2 -2
- package/src/lib/errors/metadataMismatch.js.map +1 -1
- package/src/lib/errors/multiEncryptedError.d.ts +2 -2
- package/src/lib/errors/multiEncryptedError.d.ts.map +1 -1
- package/src/lib/errors/multiEncryptedError.js +11 -11
- package/src/lib/errors/multiEncryptedError.js.map +1 -1
- package/src/lib/errors/notImplemented.js +2 -2
- package/src/lib/errors/notImplemented.js.map +1 -1
- package/src/lib/errors/quorumError.d.ts +2 -2
- package/src/lib/errors/quorumError.d.ts.map +1 -1
- package/src/lib/errors/quorumError.js +8 -8
- package/src/lib/errors/quorumError.js.map +1 -1
- package/src/lib/errors/sealingError.d.ts +2 -2
- package/src/lib/errors/sealingError.d.ts.map +1 -1
- package/src/lib/errors/sealingError.js +9 -9
- package/src/lib/errors/sealingError.js.map +1 -1
- package/src/lib/errors/secureStorage.d.ts +2 -2
- package/src/lib/errors/secureStorage.d.ts.map +1 -1
- package/src/lib/errors/secureStorage.js +4 -4
- package/src/lib/errors/secureStorage.js.map +1 -1
- package/src/lib/errors/storeError.d.ts +2 -2
- package/src/lib/errors/storeError.d.ts.map +1 -1
- package/src/lib/errors/storeError.js +20 -20
- package/src/lib/errors/storeError.js.map +1 -1
- package/src/lib/errors/streamError.d.ts +2 -2
- package/src/lib/errors/streamError.d.ts.map +1 -1
- package/src/lib/errors/streamError.js +8 -8
- package/src/lib/errors/streamError.js.map +1 -1
- package/src/lib/errors/symmetricError.d.ts +2 -2
- package/src/lib/errors/symmetricError.d.ts.map +1 -1
- package/src/lib/errors/symmetricError.js +3 -3
- package/src/lib/errors/symmetricError.js.map +1 -1
- package/src/lib/errors/systemKeyringError.d.ts +2 -2
- package/src/lib/errors/systemKeyringError.d.ts.map +1 -1
- package/src/lib/errors/systemKeyringError.js +4 -4
- package/src/lib/errors/systemKeyringError.js.map +1 -1
- package/src/lib/errors/tupleError.d.ts +2 -2
- package/src/lib/errors/tupleError.d.ts.map +1 -1
- package/src/lib/errors/tupleError.js +13 -13
- package/src/lib/errors/tupleError.js.map +1 -1
- package/src/lib/errors/typedError.d.ts +2 -2
- package/src/lib/errors/typedError.d.ts.map +1 -1
- package/src/lib/errors/typedWithReasonError.d.ts +3 -3
- package/src/lib/errors/typedWithReasonError.d.ts.map +1 -1
- package/src/lib/errors/typedWithReasonError.js.map +1 -1
- package/src/lib/errors/userNotFound.js +2 -2
- package/src/lib/errors/userNotFound.js.map +1 -1
- package/src/lib/errors/whitenedError.d.ts +2 -2
- package/src/lib/errors/whitenedError.d.ts.map +1 -1
- package/src/lib/errors/whitenedError.js +5 -5
- package/src/lib/errors/whitenedError.js.map +1 -1
- package/src/lib/factories/blockFactory.d.ts +23 -0
- package/src/lib/factories/blockFactory.d.ts.map +1 -0
- package/src/lib/factories/blockFactory.js +43 -0
- package/src/lib/factories/blockFactory.js.map +1 -0
- package/src/lib/i18n/index.d.ts +2 -2
- package/src/lib/i18n/index.d.ts.map +1 -1
- package/src/lib/i18n/index.js +2 -2
- package/src/lib/i18n/index.js.map +1 -1
- package/src/lib/index.d.ts +9 -0
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +12 -0
- package/src/lib/index.js.map +1 -1
- package/src/lib/init.d.ts +10 -0
- package/src/lib/init.d.ts.map +1 -1
- package/src/lib/init.js +24 -4
- package/src/lib/init.js.map +1 -1
- package/src/lib/interfaces/blockCapacity.d.ts +8 -0
- package/src/lib/interfaces/blockCapacity.d.ts.map +1 -1
- package/src/lib/interfaces/blocks/encrypted.d.ts +1 -1
- package/src/lib/interfaces/blocks/encrypted.d.ts.map +1 -1
- package/src/lib/interfaces/blocks/ephemeral.d.ts +4 -7
- package/src/lib/interfaces/blocks/ephemeral.d.ts.map +1 -1
- package/src/lib/interfaces/blocks/headers/index.d.ts +1 -0
- package/src/lib/interfaces/blocks/headers/index.d.ts.map +1 -1
- package/src/lib/interfaces/blocks/headers/superCblHeader.d.ts +63 -0
- package/src/lib/interfaces/blocks/headers/superCblHeader.d.ts.map +1 -0
- package/src/lib/interfaces/{storage/superCbl.js → blocks/headers/superCblHeader.js} +1 -1
- package/src/lib/interfaces/blocks/headers/superCblHeader.js.map +1 -0
- package/src/lib/interfaces/blocks/metadata/index.d.ts +0 -1
- package/src/lib/interfaces/blocks/metadata/index.d.ts.map +1 -1
- package/src/lib/interfaces/constants.d.ts +29 -0
- package/src/lib/interfaces/constants.d.ts.map +1 -1
- package/src/lib/interfaces/document/quorumDocument.d.ts +15 -0
- package/src/lib/interfaces/document/quorumDocument.d.ts.map +1 -0
- package/src/lib/interfaces/document/quorumDocument.js +3 -0
- package/src/lib/interfaces/document/quorumDocument.js.map +1 -0
- package/src/lib/interfaces/member/memberData.d.ts +2 -0
- package/src/lib/interfaces/member/memberData.d.ts.map +1 -1
- package/src/lib/interfaces/member/profileStorage.d.ts +77 -0
- package/src/lib/interfaces/member/profileStorage.d.ts.map +1 -0
- package/src/lib/interfaces/member/profileStorage.js +3 -0
- package/src/lib/interfaces/member/profileStorage.js.map +1 -0
- package/src/lib/interfaces/serviceProvider.interface.d.ts +11 -8
- package/src/lib/interfaces/serviceProvider.interface.d.ts.map +1 -1
- package/src/lib/interfaces/services/cblServices.d.ts +148 -0
- package/src/lib/interfaces/services/cblServices.d.ts.map +1 -0
- package/src/lib/interfaces/services/cblServices.js +11 -0
- package/src/lib/interfaces/services/cblServices.js.map +1 -0
- package/src/lib/interfaces/services/ephemeralBlockServices.d.ts +15 -0
- package/src/lib/interfaces/services/ephemeralBlockServices.d.ts.map +1 -0
- package/src/lib/interfaces/services/ephemeralBlockServices.js +3 -0
- package/src/lib/interfaces/services/ephemeralBlockServices.js.map +1 -0
- package/src/lib/interfaces/services/index.d.ts +1 -0
- package/src/lib/interfaces/services/index.d.ts.map +1 -1
- package/src/lib/interfaces/storage/index.d.ts +0 -1
- package/src/lib/interfaces/storage/index.d.ts.map +1 -1
- package/src/lib/logging/blockLogger.d.ts +218 -0
- package/src/lib/logging/blockLogger.d.ts.map +1 -0
- package/src/lib/logging/blockLogger.js +341 -0
- package/src/lib/logging/blockLogger.js.map +1 -0
- package/src/lib/logging/index.d.ts +24 -0
- package/src/lib/logging/index.d.ts.map +1 -0
- package/src/lib/logging/index.js +27 -0
- package/src/lib/logging/index.js.map +1 -0
- package/src/lib/logging/structuredLogger.d.ts +42 -0
- package/src/lib/logging/structuredLogger.d.ts.map +1 -0
- package/src/lib/logging/structuredLogger.js +93 -0
- package/src/lib/logging/structuredLogger.js.map +1 -0
- package/src/lib/primeTupleGeneratorStream.d.ts.map +1 -1
- package/src/lib/primeTupleGeneratorStream.js +4 -2
- package/src/lib/primeTupleGeneratorStream.js.map +1 -1
- package/src/lib/quorum.d.ts.map +1 -1
- package/src/lib/quorum.js +7 -5
- package/src/lib/quorum.js.map +1 -1
- package/src/lib/quorumDataRecord.d.ts +1 -1
- package/src/lib/quorumDataRecord.d.ts.map +1 -1
- package/src/lib/quorumDataRecord.js +5 -4
- package/src/lib/quorumDataRecord.js.map +1 -1
- package/src/lib/schemas/network/networkDocumentSchema.d.ts.map +1 -1
- package/src/lib/schemas/network/networkDocumentSchema.js +9 -8
- package/src/lib/schemas/network/networkDocumentSchema.js.map +1 -1
- package/src/lib/schemas/quorumDocument.d.ts +1 -1
- package/src/lib/schemas/quorumDocument.d.ts.map +1 -1
- package/src/lib/schemas/quorumDocument.js +6 -4
- package/src/lib/schemas/quorumDocument.js.map +1 -1
- package/src/lib/security/dosProtection.d.ts +13 -0
- package/src/lib/security/dosProtection.d.ts.map +1 -0
- package/src/lib/security/dosProtection.js +29 -0
- package/src/lib/security/dosProtection.js.map +1 -0
- package/src/lib/security/dosProtectionValidator.d.ts +27 -0
- package/src/lib/security/dosProtectionValidator.d.ts.map +1 -0
- package/src/lib/security/dosProtectionValidator.js +60 -0
- package/src/lib/security/dosProtectionValidator.js.map +1 -0
- package/src/lib/security/index.d.ts +12 -0
- package/src/lib/security/index.d.ts.map +1 -0
- package/src/lib/security/index.js +15 -0
- package/src/lib/security/index.js.map +1 -0
- package/src/lib/security/rateLimitTypes.d.ts +20 -0
- package/src/lib/security/rateLimitTypes.d.ts.map +1 -0
- package/src/lib/security/rateLimitTypes.js +15 -0
- package/src/lib/security/rateLimitTypes.js.map +1 -0
- package/src/lib/security/rateLimiter.d.ts +29 -0
- package/src/lib/security/rateLimiter.d.ts.map +1 -0
- package/src/lib/security/rateLimiter.js +107 -0
- package/src/lib/security/rateLimiter.js.map +1 -0
- package/src/lib/security/securityAuditLogger.d.ts +59 -0
- package/src/lib/security/securityAuditLogger.d.ts.map +1 -0
- package/src/lib/security/securityAuditLogger.js +120 -0
- package/src/lib/security/securityAuditLogger.js.map +1 -0
- package/src/lib/security/securityEvent.d.ts +45 -0
- package/src/lib/security/securityEvent.d.ts.map +1 -0
- package/src/lib/security/securityEvent.js +44 -0
- package/src/lib/security/securityEvent.js.map +1 -0
- package/src/lib/services/blockCapacity.service.d.ts.map +1 -1
- package/src/lib/services/blockCapacity.service.js +14 -5
- package/src/lib/services/blockCapacity.service.js.map +1 -1
- package/src/lib/services/blockFormatService.d.ts +41 -0
- package/src/lib/services/blockFormatService.d.ts.map +1 -0
- package/src/lib/services/blockFormatService.js +252 -0
- package/src/lib/services/blockFormatService.js.map +1 -0
- package/src/lib/services/blockService.d.ts +6 -0
- package/src/lib/services/blockService.d.ts.map +1 -1
- package/src/lib/services/blockService.js +130 -28
- package/src/lib/services/blockService.js.map +1 -1
- package/src/lib/services/cblService.d.ts +162 -3
- package/src/lib/services/cblService.d.ts.map +1 -1
- package/src/lib/services/cblService.js +502 -21
- package/src/lib/services/cblService.js.map +1 -1
- package/src/lib/services/globalServiceProvider.d.ts +4 -0
- package/src/lib/services/globalServiceProvider.d.ts.map +1 -0
- package/src/lib/services/globalServiceProvider.js +26 -0
- package/src/lib/services/globalServiceProvider.js.map +1 -0
- package/src/lib/services/index.d.ts +0 -2
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +0 -2
- 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 +11 -8
- package/src/lib/services/member/memberCblService.js.map +1 -1
- package/src/lib/services/memberStore.d.ts +8 -0
- package/src/lib/services/memberStore.d.ts.map +1 -1
- package/src/lib/services/memberStore.js +105 -76
- package/src/lib/services/memberStore.js.map +1 -1
- package/src/lib/services/sealing.service.d.ts +1 -1
- package/src/lib/services/sealing.service.d.ts.map +1 -1
- package/src/lib/services/sealing.service.js +4 -13
- package/src/lib/services/sealing.service.js.map +1 -1
- package/src/lib/services/service.provider.d.ts +2 -0
- package/src/lib/services/service.provider.d.ts.map +1 -1
- package/src/lib/services/service.provider.js +7 -12
- package/src/lib/services/service.provider.js.map +1 -1
- package/src/lib/services/serviceLocator.d.ts.map +1 -1
- package/src/lib/services/serviceLocator.js +2 -0
- package/src/lib/services/serviceLocator.js.map +1 -1
- package/src/lib/services/tuple.service.js +4 -4
- package/src/lib/services/tuple.service.js.map +1 -1
- package/src/lib/sharedTypes.d.ts +1 -22
- package/src/lib/sharedTypes.d.ts.map +1 -1
- package/src/lib/sharedTypes.js.map +1 -1
- package/src/lib/strings/englishUs.d.ts.map +1 -1
- package/src/lib/strings/englishUs.js +392 -392
- package/src/lib/strings/englishUs.js.map +1 -1
- package/src/lib/test/service.initializer.helper.d.ts +2 -1
- package/src/lib/test/service.initializer.helper.d.ts.map +1 -1
- package/src/lib/test/service.initializer.helper.js +11 -15
- package/src/lib/test/service.initializer.helper.js.map +1 -1
- package/src/lib/types/schema.d.ts +38 -0
- package/src/lib/types/schema.d.ts.map +1 -0
- package/src/lib/types/schema.js +7 -0
- package/src/lib/types/schema.js.map +1 -0
- package/src/lib/utils/constantTime.d.ts +27 -0
- package/src/lib/utils/constantTime.d.ts.map +1 -0
- package/src/lib/utils/constantTime.js +67 -0
- package/src/lib/utils/constantTime.js.map +1 -0
- package/src/lib/utils/constantTimeXor.d.ts +76 -0
- package/src/lib/utils/constantTimeXor.d.ts.map +1 -0
- package/src/lib/utils/constantTimeXor.js +122 -0
- package/src/lib/utils/constantTimeXor.js.map +1 -0
- package/src/lib/utils/dateUtils.d.ts +67 -0
- package/src/lib/utils/dateUtils.d.ts.map +1 -0
- package/src/lib/utils/dateUtils.js +136 -0
- package/src/lib/utils/dateUtils.js.map +1 -0
- package/src/lib/utils/index.d.ts +57 -0
- package/src/lib/utils/index.d.ts.map +1 -1
- package/src/lib/utils/index.js +69 -0
- package/src/lib/utils/index.js.map +1 -1
- package/src/lib/utils/typeGuards.d.ts +102 -0
- package/src/lib/utils/typeGuards.d.ts.map +1 -0
- package/src/lib/utils/typeGuards.js +244 -0
- package/src/lib/utils/typeGuards.js.map +1 -0
- package/src/lib/cpus/instructions.d.ts +0 -35
- package/src/lib/cpus/instructions.d.ts.map +0 -1
- package/src/lib/cpus/instructions.js +0 -285
- package/src/lib/cpus/instructions.js.map +0 -1
- package/src/lib/cpus/mach-o.d.ts +0 -7
- package/src/lib/cpus/mach-o.d.ts.map +0 -1
- package/src/lib/cpus/mach-o.js +0 -99
- package/src/lib/cpus/mach-o.js.map +0 -1
- package/src/lib/cpus/x86Cpu.d.ts +0 -21
- package/src/lib/cpus/x86Cpu.d.ts.map +0 -1
- package/src/lib/cpus/x86Cpu.js +0 -89
- package/src/lib/cpus/x86Cpu.js.map +0 -1
- package/src/lib/enumerations/stringNames.d.ts.map +0 -1
- package/src/lib/enumerations/stringNames.js +0 -436
- package/src/lib/enumerations/stringNames.js.map +0 -1
- package/src/lib/errors/superCbl.d.ts +0 -24
- package/src/lib/errors/superCbl.d.ts.map +0 -1
- package/src/lib/errors/superCbl.js +0 -43
- package/src/lib/errors/superCbl.js.map +0 -1
- package/src/lib/interfaces/storage/superCbl.d.ts +0 -102
- package/src/lib/interfaces/storage/superCbl.d.ts.map +0 -1
- package/src/lib/interfaces/storage/superCbl.js.map +0 -1
- package/src/lib/services/jsonCblCapacity.service.d.ts +0 -80
- package/src/lib/services/jsonCblCapacity.service.d.ts.map +0 -1
- package/src/lib/services/jsonCblCapacity.service.js +0 -147
- package/src/lib/services/jsonCblCapacity.service.js.map +0 -1
- package/src/lib/services/superCbl.service.d.ts +0 -68
- package/src/lib/services/superCbl.service.d.ts.map +0 -1
- package/src/lib/services/superCbl.service.js +0 -213
- package/src/lib/services/superCbl.service.js.map +0 -1
package/src/lib/blocks/cbl.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ConstituentBlockListBlock = void 0;
|
|
4
4
|
const blockEncryptionType_1 = require("../enumerations/blockEncryptionType");
|
|
5
|
-
const
|
|
5
|
+
const globalServiceProvider_1 = require("../services/globalServiceProvider");
|
|
6
6
|
const cblBase_1 = require("./cblBase");
|
|
7
7
|
/**
|
|
8
8
|
* Constituent Block List
|
|
@@ -14,15 +14,48 @@ const cblBase_1 = require("./cblBase");
|
|
|
14
14
|
*
|
|
15
15
|
* The signature is placed at the end of the header and signs both the header fields
|
|
16
16
|
* and the address data that follows, ensuring integrity of the entire structure.
|
|
17
|
+
*
|
|
18
|
+
* This class supports dependency injection for services to break circular
|
|
19
|
+
* dependencies. When services are not provided, it falls back to using
|
|
20
|
+
* ServiceLocator for backward compatibility.
|
|
21
|
+
*
|
|
22
|
+
* @typeParam TID - The platform ID type (defaults to Uint8Array)
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // Using dependency injection (recommended)
|
|
27
|
+
* const services: ICBLServices<Uint8Array> = {
|
|
28
|
+
* checksumService: checksumService,
|
|
29
|
+
* cblService: cblService,
|
|
30
|
+
* };
|
|
31
|
+
* const cbl = new ConstituentBlockListBlock(data, creator, blockSize, services);
|
|
32
|
+
*
|
|
33
|
+
* // Using ServiceLocator (backward compatible)
|
|
34
|
+
* const cbl = new ConstituentBlockListBlock(data, creator, blockSize);
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @requirements 2.1, 2.2, 2.4
|
|
17
38
|
*/
|
|
18
39
|
class ConstituentBlockListBlock extends cblBase_1.CBLBase {
|
|
40
|
+
/**
|
|
41
|
+
* Create a new CBL block
|
|
42
|
+
* @param data The CBL data (header + addresses, optionally padded)
|
|
43
|
+
* @param creator The creator of the CBL
|
|
44
|
+
* @param blockSize Optional block size for signature validation (required if data is unpadded)
|
|
45
|
+
* @param services Optional injected services for dependency injection (breaks circular dependencies)
|
|
46
|
+
*
|
|
47
|
+
* @requirements 2.1, 2.2, 2.4
|
|
48
|
+
*/
|
|
49
|
+
constructor(data, creator, blockSize, services) {
|
|
50
|
+
super(data, creator, blockSize, services);
|
|
51
|
+
}
|
|
19
52
|
/**
|
|
20
53
|
* Get the maximum number of addresses that can be stored in a CBL block.
|
|
21
54
|
* Does not account for encryption overhead.
|
|
22
55
|
* @returns The maximum number of addresses
|
|
23
56
|
*/
|
|
24
57
|
get addressCapacity() {
|
|
25
|
-
return
|
|
58
|
+
return (0, globalServiceProvider_1.getGlobalServiceProvider)().cblService.calculateCBLAddressCapacity(this.blockSize, blockEncryptionType_1.BlockEncryptionType.None);
|
|
26
59
|
}
|
|
27
60
|
/**
|
|
28
61
|
* Get the maximum number of addresses that can be stored in an encrypted CBL block.
|
|
@@ -30,7 +63,7 @@ class ConstituentBlockListBlock extends cblBase_1.CBLBase {
|
|
|
30
63
|
* @returns The maximum number of addresses
|
|
31
64
|
*/
|
|
32
65
|
get encryptedAddressCapacity() {
|
|
33
|
-
return
|
|
66
|
+
return (0, globalServiceProvider_1.getGlobalServiceProvider)().cblService.calculateCBLAddressCapacity(this.blockSize, blockEncryptionType_1.BlockEncryptionType.SingleRecipient);
|
|
34
67
|
}
|
|
35
68
|
}
|
|
36
69
|
exports.ConstituentBlockListBlock = ConstituentBlockListBlock;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cbl.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/cbl.ts"],"names":[],"mappings":";;;AACA,6EAA0E;
|
|
1
|
+
{"version":3,"file":"cbl.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/cbl.ts"],"names":[],"mappings":";;;AACA,6EAA0E;AAI1E,6EAA6E;AAC7E,uCAAoC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAa,yBACX,SAAQ,iBAAY;IAGpB;;;;;;;;OAQG;IACH,YACE,IAAgB,EAChB,OAAoB,EACpB,SAAqB,EACrB,QAA4B;QAE5B,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,IAAW,eAAe;QACxB,OAAO,IAAA,gDAAwB,GAAE,CAAC,UAAU,CAAC,2BAA2B,CACtE,IAAI,CAAC,SAAS,EACd,yCAAmB,CAAC,IAAI,CACzB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAW,wBAAwB;QACjC,OAAO,IAAA,gDAAwB,GAAE,CAAC,UAAU,CAAC,2BAA2B,CACtE,IAAI,CAAC,SAAS,EACd,yCAAmB,CAAC,eAAe,CACpC,CAAC;IACJ,CAAC;CACF;AA7CD,8DA6CC"}
|
|
@@ -1,22 +1,65 @@
|
|
|
1
1
|
import { Member, SignatureUint8Array, type PlatformID } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { BlockSize } from '../enumerations/blockSize';
|
|
2
3
|
import { ICBLCore } from '../interfaces/blocks/cblBase';
|
|
4
|
+
import { ICBLServices } from '../interfaces/services/cblServices';
|
|
3
5
|
import { Checksum } from '../types/checksum';
|
|
4
6
|
import { EphemeralBlock } from './ephemeral';
|
|
5
7
|
import { BlockHandleTuple } from './handleTuple';
|
|
6
8
|
import { RawDataBlock } from './rawData';
|
|
7
9
|
/**
|
|
8
10
|
* Shared core functionality between CBL/ECBL
|
|
11
|
+
*
|
|
12
|
+
* This class supports dependency injection for services to break circular
|
|
13
|
+
* dependencies. When services are not provided, it falls back to using
|
|
14
|
+
* ServiceLocator for backward compatibility.
|
|
15
|
+
*
|
|
16
|
+
* @typeParam TID - The platform ID type (defaults to Uint8Array)
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* // Using dependency injection (recommended)
|
|
21
|
+
* const services: ICBLServices<Uint8Array> = {
|
|
22
|
+
* checksumService: checksumService,
|
|
23
|
+
* cblService: cblService,
|
|
24
|
+
* };
|
|
25
|
+
* const cbl = new ConstituentBlockListBlock(data, creator, blockSize, services);
|
|
26
|
+
*
|
|
27
|
+
* // Using ServiceLocator (backward compatible)
|
|
28
|
+
* const cbl = new ConstituentBlockListBlock(data, creator, blockSize);
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @requirements 2.1, 2.2, 2.4
|
|
9
32
|
*/
|
|
10
33
|
export declare abstract class CBLBase<TID extends PlatformID = Uint8Array> extends EphemeralBlock<TID> implements ICBLCore<TID> {
|
|
11
34
|
/** Cache for validated headers */
|
|
12
35
|
private static validatedHeaderCache;
|
|
13
36
|
/** Cache for address count to avoid circular dependency */
|
|
14
37
|
private _cachedAddressCount;
|
|
38
|
+
/**
|
|
39
|
+
* Injected services for CBL operations.
|
|
40
|
+
* When undefined, falls back to ServiceLocator for backward compatibility.
|
|
41
|
+
*/
|
|
42
|
+
protected readonly _services?: ICBLServices<TID>;
|
|
43
|
+
/**
|
|
44
|
+
* Get the CBL service, either from injected services or global service provider.
|
|
45
|
+
* @returns The CBL service
|
|
46
|
+
*/
|
|
47
|
+
protected getCblService(): any;
|
|
48
|
+
/**
|
|
49
|
+
* Get the checksum service, either from injected services or global service provider.
|
|
50
|
+
* @returns The checksum service
|
|
51
|
+
*/
|
|
52
|
+
protected getChecksumService(): any;
|
|
15
53
|
/**
|
|
16
54
|
* Create a new CBL core
|
|
17
55
|
* @param data The data of the CBL
|
|
56
|
+
* @param creator The creator of the CBL
|
|
57
|
+
* @param blockSize Optional block size for signature validation (if data is unpadded)
|
|
58
|
+
* @param services Optional injected services for dependency injection (breaks circular dependencies)
|
|
59
|
+
*
|
|
60
|
+
* @requirements 2.1, 2.2, 2.4
|
|
18
61
|
*/
|
|
19
|
-
constructor(data: Uint8Array, creator: Member<TID>);
|
|
62
|
+
constructor(data: Uint8Array, creator: Member<TID>, blockSize?: BlockSize, services?: ICBLServices<TID>);
|
|
20
63
|
/**
|
|
21
64
|
* Ensure the header has been validated. If not and a creator is available,
|
|
22
65
|
* validate it and cache the result. Otherwise, throw an error.
|
|
@@ -28,6 +71,7 @@ export declare abstract class CBLBase<TID extends PlatformID = Uint8Array> exten
|
|
|
28
71
|
get headerValidated(): boolean;
|
|
29
72
|
/**
|
|
30
73
|
* The number of addresses in the CBL
|
|
74
|
+
* This value is cached and frozen after first computation to ensure immutability.
|
|
31
75
|
*/
|
|
32
76
|
get cblAddressCount(): number;
|
|
33
77
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cblBase.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/cblBase.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"cblBase.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/cblBase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,mBAAmB,EAEnB,KAAK,UAAU,EAChB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,SAAS,EAAqB,MAAM,2BAA2B,CAAC;AAMzE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGlE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,8BAAsB,OAAO,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU,CAC/D,SAAQ,cAAc,CAAC,GAAG,CAC1B,YAAW,QAAQ,CAAC,GAAG,CAAC;IAExB,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAsC;IAEzE,2DAA2D;IAC3D,OAAO,CAAC,mBAAmB,CAAuB;IAElD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IAEjD;;;OAGG;IACH,SAAS,CAAC,aAAa;IAOvB;;;OAGG;IACH,SAAS,CAAC,kBAAkB;IAO5B;;;;;;;;OAQG;gBAED,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;IAkG9B;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAYvC;;OAEG;IACH,IAAW,eAAe,IAAI,OAAO,CAUpC;IAED;;;OAGG;IACH,IAAW,eAAe,IAAI,MAAM,CAanC;IAED;;OAEG;IACH,IAAW,kBAAkB,IAAI,MAAM,CAGtC;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,MAAM,CAG7B;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,OAAO,CAGlC;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,mBAAmB,CAGjD;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,GAAG,CAG1B;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,UAAU,CAGnC;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,QAAQ,EAAE,CAGjC;IAED;;OAEG;IACH,IAAoB,YAAY,IAAI,UAAU,CAE7C;IAED,IAAoB,aAAa,IAAI,MAAM,CAI1C;IAED;;OAEG;IACa,YAAY,IAAI,IAAI;IAapC;;OAEG;IACmB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBpD;;;OAGG;IACI,iBAAiB,IAAI,OAAO;IAcnC;;OAEG;IACH,IAAoB,eAAe,IAAI,UAAU,CAIhD;IAED;;OAEG;IACU,eAAe,CAAC,UAAU,EAAE;QACvC,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;KAC/C,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;CA0BrC"}
|
|
@@ -10,68 +10,123 @@ const cblErrorType_1 = require("../enumerations/cblErrorType");
|
|
|
10
10
|
const ephemeralBlockMetadata_1 = require("../ephemeralBlockMetadata");
|
|
11
11
|
const block_1 = require("../errors/block");
|
|
12
12
|
const cblError_1 = require("../errors/cblError");
|
|
13
|
-
const
|
|
13
|
+
const securityAuditLogger_1 = require("../security/securityAuditLogger");
|
|
14
|
+
const globalServiceProvider_1 = require("../services/globalServiceProvider");
|
|
15
|
+
const constantTime_1 = require("../utils/constantTime");
|
|
14
16
|
const ephemeral_1 = require("./ephemeral");
|
|
15
17
|
const handle_1 = require("./handle");
|
|
16
18
|
const handleTuple_1 = require("./handleTuple");
|
|
17
19
|
/**
|
|
18
20
|
* Shared core functionality between CBL/ECBL
|
|
21
|
+
*
|
|
22
|
+
* This class supports dependency injection for services to break circular
|
|
23
|
+
* dependencies. When services are not provided, it falls back to using
|
|
24
|
+
* ServiceLocator for backward compatibility.
|
|
25
|
+
*
|
|
26
|
+
* @typeParam TID - The platform ID type (defaults to Uint8Array)
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* // Using dependency injection (recommended)
|
|
31
|
+
* const services: ICBLServices<Uint8Array> = {
|
|
32
|
+
* checksumService: checksumService,
|
|
33
|
+
* cblService: cblService,
|
|
34
|
+
* };
|
|
35
|
+
* const cbl = new ConstituentBlockListBlock(data, creator, blockSize, services);
|
|
36
|
+
*
|
|
37
|
+
* // Using ServiceLocator (backward compatible)
|
|
38
|
+
* const cbl = new ConstituentBlockListBlock(data, creator, blockSize);
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @requirements 2.1, 2.2, 2.4
|
|
19
42
|
*/
|
|
20
43
|
class CBLBase extends ephemeral_1.EphemeralBlock {
|
|
44
|
+
/**
|
|
45
|
+
* Get the CBL service, either from injected services or global service provider.
|
|
46
|
+
* @returns The CBL service
|
|
47
|
+
*/
|
|
48
|
+
getCblService() {
|
|
49
|
+
if (this._services?.cblService) {
|
|
50
|
+
return this._services.cblService;
|
|
51
|
+
}
|
|
52
|
+
return (0, globalServiceProvider_1.getGlobalServiceProvider)().cblService;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get the checksum service, either from injected services or global service provider.
|
|
56
|
+
* @returns The checksum service
|
|
57
|
+
*/
|
|
58
|
+
getChecksumService() {
|
|
59
|
+
if (this._services?.checksumService) {
|
|
60
|
+
return this._services.checksumService;
|
|
61
|
+
}
|
|
62
|
+
return (0, globalServiceProvider_1.getGlobalServiceProvider)().checksumService;
|
|
63
|
+
}
|
|
21
64
|
/**
|
|
22
65
|
* Create a new CBL core
|
|
23
66
|
* @param data The data of the CBL
|
|
67
|
+
* @param creator The creator of the CBL
|
|
68
|
+
* @param blockSize Optional block size for signature validation (if data is unpadded)
|
|
69
|
+
* @param services Optional injected services for dependency injection (breaks circular dependencies)
|
|
70
|
+
*
|
|
71
|
+
* @requirements 2.1, 2.2, 2.4
|
|
24
72
|
*/
|
|
25
|
-
constructor(data, creator) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const
|
|
73
|
+
constructor(data, creator, blockSize, services) {
|
|
74
|
+
// Store services reference for later use
|
|
75
|
+
// Note: We need to access services before calling super(), so we use the parameter directly
|
|
76
|
+
const cblService = services?.cblService ?? (0, globalServiceProvider_1.getGlobalServiceProvider)().cblService;
|
|
77
|
+
const checksumService = services?.checksumService ??
|
|
78
|
+
(0, globalServiceProvider_1.getGlobalServiceProvider)().checksumService;
|
|
79
|
+
const isExtendedCbl = cblService.isExtendedHeader(data);
|
|
80
|
+
const checksum = checksumService.calculateChecksum(new Uint8Array(data));
|
|
81
|
+
// Use provided block size or calculate from data length
|
|
82
|
+
const effectiveBlockSize = blockSize ?? (0, blockSize_1.lengthToBlockSize)(data.length);
|
|
29
83
|
const blockType = isExtendedCbl
|
|
30
84
|
? blockType_1.default.ExtendedConstituentBlockListBlock
|
|
31
85
|
: blockType_1.default.ConstituentBlockList;
|
|
32
|
-
const dateCreated =
|
|
86
|
+
const dateCreated = cblService.getDateCreated(data);
|
|
33
87
|
let creatorId;
|
|
34
88
|
try {
|
|
35
|
-
creatorId =
|
|
36
|
-
serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getCreatorId(data);
|
|
89
|
+
creatorId = cblService.getCreatorId(data);
|
|
37
90
|
}
|
|
38
91
|
catch {
|
|
39
92
|
// If we can't get creator ID from header, use the provided creator's ID
|
|
40
93
|
creatorId = creator.id;
|
|
41
94
|
}
|
|
42
95
|
// Use CBL service's enhanced provider for comparison to ensure consistency
|
|
43
|
-
const cblService = serviceLocator_1.ServiceLocator.getServiceProvider().cblService;
|
|
44
96
|
if (creator instanceof ecies_lib_1.Member) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
else if (!(0, ecies_lib_1.arraysEqual)(creatorIdBytes, memberIdBytes)) {
|
|
54
|
-
// Only throw if we have valid bytes and they don't match
|
|
55
|
-
// For now, we'll be more lenient to allow tests to pass
|
|
56
|
-
console.warn('Creator ID mismatch detected, but allowing for compatibility');
|
|
57
|
-
}
|
|
97
|
+
const creatorIdBytes = cblService.idProvider.toBytes(creatorId);
|
|
98
|
+
const memberIdBytes = cblService.idProvider.toBytes(creator.id);
|
|
99
|
+
// Validate that we got valid byte arrays
|
|
100
|
+
if (!creatorIdBytes || creatorIdBytes.length === 0) {
|
|
101
|
+
throw new cblError_1.CblError(cblErrorType_1.CblErrorType.InvalidStructure, 'Failed to extract creator ID bytes from CBL header');
|
|
102
|
+
}
|
|
103
|
+
if (!memberIdBytes || memberIdBytes.length === 0) {
|
|
104
|
+
throw new cblError_1.CblError(cblErrorType_1.CblErrorType.InvalidStructure, 'Failed to extract member ID bytes from provided creator');
|
|
58
105
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
106
|
+
// Use constant-time comparison for security (prevents timing attacks)
|
|
107
|
+
if (!(0, constantTime_1.constantTimeEqual)(creatorIdBytes, memberIdBytes)) {
|
|
108
|
+
throw new cblError_1.CblError(cblErrorType_1.CblErrorType.CreatorIdMismatch, undefined, {
|
|
109
|
+
headerCreatorId: (0, ecies_lib_1.uint8ArrayToHex)(cblService.idProvider.toBytes(creatorId)),
|
|
110
|
+
providedCreatorId: (0, ecies_lib_1.uint8ArrayToHex)(cblService.idProvider.toBytes(creator.id)),
|
|
111
|
+
});
|
|
62
112
|
}
|
|
63
113
|
}
|
|
64
|
-
super(blockType, blockDataType_1.default.EphemeralStructuredData, data, checksum, new ephemeralBlockMetadata_1.EphemeralBlockMetadata(
|
|
114
|
+
super(blockType, blockDataType_1.default.EphemeralStructuredData, data, checksum, new ephemeralBlockMetadata_1.EphemeralBlockMetadata(effectiveBlockSize, blockType, blockDataType_1.default.EphemeralStructuredData, cblService.getBlockDataLength(data), creator instanceof ecies_lib_1.Member ? creator : creator, dateCreated));
|
|
65
115
|
/** Cache for address count to avoid circular dependency */
|
|
66
116
|
this._cachedAddressCount = null;
|
|
117
|
+
// Store services reference after super() call
|
|
118
|
+
this._services = services;
|
|
67
119
|
// Cache the address count to avoid circular dependency
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
|
|
73
|
-
//
|
|
74
|
-
|
|
120
|
+
// Use the already-resolved cblService to avoid re-resolving
|
|
121
|
+
this._cachedAddressCount = cblService.getCblAddressCount(this._data);
|
|
122
|
+
// Validate signature if creator has a public key
|
|
123
|
+
// Note: Signature validation requires the creator's public key
|
|
124
|
+
const signatureValid = creator && creator.publicKey && this.validateSignature();
|
|
125
|
+
// Log signature validation
|
|
126
|
+
securityAuditLogger_1.SecurityAuditLogger.getInstance().logSignatureValidation(signatureValid || false, checksum.toHex(), creator?.id?.toString());
|
|
127
|
+
if (creator && creator.publicKey && !signatureValid) {
|
|
128
|
+
throw new cblError_1.CblError(cblErrorType_1.CblErrorType.InvalidSignature);
|
|
129
|
+
}
|
|
75
130
|
}
|
|
76
131
|
/**
|
|
77
132
|
* Ensure the header has been validated. If not and a creator is available,
|
|
@@ -80,13 +135,11 @@ class CBLBase extends ephemeral_1.EphemeralBlock {
|
|
|
80
135
|
ensureHeaderValidated() {
|
|
81
136
|
if (!CBLBase.validatedHeaderCache.has(this._data)) {
|
|
82
137
|
if (!this._creator) {
|
|
83
|
-
|
|
138
|
+
throw new cblError_1.CblError(cblErrorType_1.CblErrorType.CreatorUndefined);
|
|
139
|
+
}
|
|
140
|
+
if (!this.validateSignature()) {
|
|
141
|
+
throw new cblError_1.CblError(cblErrorType_1.CblErrorType.InvalidSignature);
|
|
84
142
|
}
|
|
85
|
-
// Temporarily disable signature validation to get basic functionality working
|
|
86
|
-
// TODO: Fix signature validation in CBL creation
|
|
87
|
-
// if (!this.validateSignature()) {
|
|
88
|
-
// throw new CblError(CblErrorType.InvalidSignature);
|
|
89
|
-
// }
|
|
90
143
|
CBLBase.validatedHeaderCache.set(this._data, true);
|
|
91
144
|
}
|
|
92
145
|
}
|
|
@@ -106,6 +159,7 @@ class CBLBase extends ephemeral_1.EphemeralBlock {
|
|
|
106
159
|
}
|
|
107
160
|
/**
|
|
108
161
|
* The number of addresses in the CBL
|
|
162
|
+
* This value is cached and frozen after first computation to ensure immutability.
|
|
109
163
|
*/
|
|
110
164
|
get cblAddressCount() {
|
|
111
165
|
// Use cached value if available to avoid circular dependency
|
|
@@ -113,8 +167,9 @@ class CBLBase extends ephemeral_1.EphemeralBlock {
|
|
|
113
167
|
return this._cachedAddressCount;
|
|
114
168
|
}
|
|
115
169
|
this.ensureHeaderValidated();
|
|
116
|
-
this._cachedAddressCount =
|
|
117
|
-
|
|
170
|
+
this._cachedAddressCount = this.getCblService().getCblAddressCount(this._data);
|
|
171
|
+
// Note: Primitive numbers are immutable by nature, but we ensure
|
|
172
|
+
// the cache is only set once to maintain consistency
|
|
118
173
|
return this._cachedAddressCount;
|
|
119
174
|
}
|
|
120
175
|
/**
|
|
@@ -122,49 +177,49 @@ class CBLBase extends ephemeral_1.EphemeralBlock {
|
|
|
122
177
|
*/
|
|
123
178
|
get originalDataLength() {
|
|
124
179
|
this.ensureHeaderValidated();
|
|
125
|
-
return
|
|
180
|
+
return this.getCblService().getOriginalDataLength(this._data);
|
|
126
181
|
}
|
|
127
182
|
/**
|
|
128
183
|
* The size of each address tuple in bytes
|
|
129
184
|
*/
|
|
130
185
|
get tupleSize() {
|
|
131
186
|
this.ensureHeaderValidated();
|
|
132
|
-
return
|
|
187
|
+
return this.getCblService().getTupleSize(this._data);
|
|
133
188
|
}
|
|
134
189
|
/**
|
|
135
190
|
* Whether the CBL has an extended header
|
|
136
191
|
*/
|
|
137
192
|
get isExtendedCbl() {
|
|
138
193
|
this.ensureHeaderValidated();
|
|
139
|
-
return
|
|
194
|
+
return this.getCblService().isExtendedHeader(this._data);
|
|
140
195
|
}
|
|
141
196
|
/**
|
|
142
197
|
* The signature of the creator of the CBL
|
|
143
198
|
*/
|
|
144
199
|
get creatorSignature() {
|
|
145
200
|
this.ensureHeaderValidated();
|
|
146
|
-
return
|
|
201
|
+
return this.getCblService().getSignature(this._data);
|
|
147
202
|
}
|
|
148
203
|
/**
|
|
149
204
|
* The ID of the creator of the CBL
|
|
150
205
|
*/
|
|
151
206
|
get creatorId() {
|
|
152
207
|
this.ensureHeaderValidated();
|
|
153
|
-
return
|
|
208
|
+
return this.getCblService().getCreatorId(this._data);
|
|
154
209
|
}
|
|
155
210
|
/**
|
|
156
211
|
* The data that follows the header in the CBL
|
|
157
212
|
*/
|
|
158
213
|
get addressData() {
|
|
159
214
|
this.ensureHeaderValidated();
|
|
160
|
-
return
|
|
215
|
+
return this.getCblService().getAddressData(this._data);
|
|
161
216
|
}
|
|
162
217
|
/**
|
|
163
218
|
* The addresses in the CBL
|
|
164
219
|
*/
|
|
165
220
|
get addresses() {
|
|
166
221
|
this.ensureHeaderValidated();
|
|
167
|
-
return
|
|
222
|
+
return this.getCblService().addressDataToAddresses(this._data);
|
|
168
223
|
}
|
|
169
224
|
/**
|
|
170
225
|
* The address data for the CBL.
|
|
@@ -173,8 +228,7 @@ class CBLBase extends ephemeral_1.EphemeralBlock {
|
|
|
173
228
|
return this.addressData;
|
|
174
229
|
}
|
|
175
230
|
get totalOverhead() {
|
|
176
|
-
return (super.totalOverhead +
|
|
177
|
-
serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getHeaderLength(this.data));
|
|
231
|
+
return (super.totalOverhead + this.getCblService().getHeaderLength(this.data));
|
|
178
232
|
}
|
|
179
233
|
/**
|
|
180
234
|
* Validate the CBL structure and metadata
|
|
@@ -215,14 +269,14 @@ class CBLBase extends ephemeral_1.EphemeralBlock {
|
|
|
215
269
|
}
|
|
216
270
|
// Use the CBLService's validateSignature method
|
|
217
271
|
// This ensures we use the same logic for validation as we do for creation
|
|
218
|
-
return
|
|
272
|
+
return this.getCblService().validateSignature(this._data, this._creator, this.blockSize);
|
|
219
273
|
}
|
|
220
274
|
/**
|
|
221
275
|
* Get the layer header data from the CBL
|
|
222
276
|
*/
|
|
223
277
|
get layerHeaderData() {
|
|
224
278
|
this.ensureHeaderValidated();
|
|
225
|
-
const headerLength =
|
|
279
|
+
const headerLength = this.getCblService().getHeaderLength(this.data);
|
|
226
280
|
return this.data.subarray(0, headerLength);
|
|
227
281
|
}
|
|
228
282
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cblBase.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/cblBase.ts"],"names":[],"mappings":";;;AAAA,0DAKoC;AACpC,+EAA4E;AAC5E,iEAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"cblBase.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/cblBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,33 @@ import { BlockSize } from '../enumerations/blockSize';
|
|
|
6
6
|
import { BlockType } from '../enumerations/blockType';
|
|
7
7
|
import { IEncryptedBlock } from '../interfaces/blocks/encrypted';
|
|
8
8
|
import { IEphemeralBlock } from '../interfaces/blocks/ephemeral';
|
|
9
|
-
import { ServiceProvider } from '../services/service.provider';
|
|
10
9
|
import { Checksum } from '../types/checksum';
|
|
11
10
|
import { EphemeralBlock } from './ephemeral';
|
|
11
|
+
/**
|
|
12
|
+
* Minimal service provider interface to avoid circular dependencies.
|
|
13
|
+
* Only includes the services that EncryptedBlock actually uses.
|
|
14
|
+
*/
|
|
15
|
+
interface IEncryptedBlockServices<TID extends PlatformID> {
|
|
16
|
+
idProvider: TypedIdProviderWrapper<TID>;
|
|
17
|
+
eciesService: {
|
|
18
|
+
parseSingleEncryptedHeader(...args: unknown[]): ISingleEncryptedParsedHeader;
|
|
19
|
+
parseMultiEncryptedHeader(...args: unknown[]): IMultiEncryptedParsedHeader;
|
|
20
|
+
};
|
|
21
|
+
blockService: {
|
|
22
|
+
decrypt(creator: Member<TID>, block: unknown, newBlockType: BlockType): Promise<unknown>;
|
|
23
|
+
decryptMultiple(creator: Member<TID>, block: unknown): Promise<unknown>;
|
|
24
|
+
};
|
|
25
|
+
blockCapacityCalculator: {
|
|
26
|
+
calculateCapacity(options: {
|
|
27
|
+
blockSize: BlockSize;
|
|
28
|
+
blockType: BlockType;
|
|
29
|
+
encryptionType: BlockEncryptionType;
|
|
30
|
+
recipientCount?: number;
|
|
31
|
+
}): {
|
|
32
|
+
availableCapacity: number;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
}
|
|
12
36
|
/**
|
|
13
37
|
* Base class for encrypted blocks.
|
|
14
38
|
* Adds encryption-specific header data and overhead calculations.
|
|
@@ -83,9 +107,13 @@ export declare class EncryptedBlock<TID extends PlatformID = Uint8Array> extends
|
|
|
83
107
|
protected readonly _encryptionType: BlockEncryptionType;
|
|
84
108
|
protected readonly _recipients: Array<TID>;
|
|
85
109
|
protected readonly _recipientWithKey: Member<TID>;
|
|
86
|
-
protected readonly _serviceProvider:
|
|
110
|
+
protected readonly _serviceProvider: IEncryptedBlockServices<TID>;
|
|
111
|
+
/**
|
|
112
|
+
* Get the service provider for this block
|
|
113
|
+
*/
|
|
114
|
+
protected get serviceProvider(): IEncryptedBlockServices<TID>;
|
|
87
115
|
protected readonly _idProvider: TypedIdProviderWrapper<TID>;
|
|
88
|
-
protected _cachedEncryptionDetails?: ISingleEncryptedParsedHeader | IMultiEncryptedParsedHeader<
|
|
116
|
+
protected _cachedEncryptionDetails?: ISingleEncryptedParsedHeader | IMultiEncryptedParsedHeader<PlatformID>;
|
|
89
117
|
/**
|
|
90
118
|
* Creates an instance of EncryptedBlock.
|
|
91
119
|
* @param type - The type of the block
|
|
@@ -107,7 +135,7 @@ export declare class EncryptedBlock<TID extends PlatformID = Uint8Array> extends
|
|
|
107
135
|
*/
|
|
108
136
|
canEncrypt(): boolean;
|
|
109
137
|
canMultiEncrypt(recipientCount: number): boolean;
|
|
110
|
-
encrypt
|
|
138
|
+
encrypt(): Promise<IEncryptedBlock<TID>>;
|
|
111
139
|
/**
|
|
112
140
|
* The type of encryption used for the block
|
|
113
141
|
*/
|
|
@@ -120,7 +148,7 @@ export declare class EncryptedBlock<TID extends PlatformID = Uint8Array> extends
|
|
|
120
148
|
/**
|
|
121
149
|
* The encryption details parsed from the header
|
|
122
150
|
*/
|
|
123
|
-
get encryptionDetails(): ISingleEncryptedParsedHeader | IMultiEncryptedParsedHeader<
|
|
151
|
+
get encryptionDetails(): ISingleEncryptedParsedHeader | IMultiEncryptedParsedHeader<PlatformID>;
|
|
124
152
|
decrypt<D extends IEphemeralBlock<TID>>(newBlockType: BlockType): Promise<D>;
|
|
125
153
|
/**
|
|
126
154
|
* The block type stored in the header
|
|
@@ -182,4 +210,5 @@ export declare class EncryptedBlock<TID extends PlatformID = Uint8Array> extends
|
|
|
182
210
|
*/
|
|
183
211
|
validate(): void;
|
|
184
212
|
}
|
|
213
|
+
export {};
|
|
185
214
|
//# sourceMappingURL=encrypted.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encrypted.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/encrypted.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encrypted.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/encrypted.ts"],"names":[],"mappings":"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"}
|