@brightchain/brightchain-lib 0.1.5 → 0.1.6
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/DEPRECATIONS.md +454 -0
- package/brightchain-lib/DEPRECATIONS_REMOVED.md +160 -0
- package/brightchain-lib/MIGRATION.md +801 -0
- package/brightchain-lib/NAMING_AUDIT.md +233 -0
- package/brightchain-lib/NAMING_CONVENTIONS.md +346 -0
- package/{README.md → brightchain-lib/README.md} +168 -0
- package/package.json +5 -4
- package/src/browser.d.ts +3 -2
- package/src/browser.d.ts.map +1 -1
- package/src/browser.js +5 -2
- package/src/browser.js.map +1 -1
- package/src/index.d.ts +2 -10
- package/src/index.d.ts.map +1 -1
- package/src/index.js +8 -17
- package/src/index.js.map +1 -1
- package/src/lib/access/checksum.d.ts +5 -5
- package/src/lib/access/checksum.d.ts.map +1 -1
- package/src/lib/access/checksum.js.map +1 -1
- package/src/lib/blockPaddingTransform.d.ts.map +1 -1
- package/src/lib/blockPaddingTransform.js +2 -1
- package/src/lib/blockPaddingTransform.js.map +1 -1
- package/src/lib/blocks/base.d.ts +6 -5
- package/src/lib/blocks/base.d.ts.map +1 -1
- package/src/lib/blocks/base.js +1 -2
- package/src/lib/blocks/base.js.map +1 -1
- package/src/lib/blocks/cblBase.d.ts +4 -3
- package/src/lib/blocks/cblBase.d.ts.map +1 -1
- package/src/lib/blocks/cblBase.js.map +1 -1
- package/src/lib/blocks/encrypted.d.ts +4 -3
- package/src/lib/blocks/encrypted.d.ts.map +1 -1
- package/src/lib/blocks/encrypted.js +2 -2
- package/src/lib/blocks/encrypted.js.map +1 -1
- package/src/lib/blocks/encryptedBlockCreator.d.ts +4 -3
- package/src/lib/blocks/encryptedBlockCreator.d.ts.map +1 -1
- package/src/lib/blocks/encryptedBlockCreator.js.map +1 -1
- package/src/lib/blocks/encryptedBlockFactory.d.ts +4 -3
- package/src/lib/blocks/encryptedBlockFactory.d.ts.map +1 -1
- package/src/lib/blocks/encryptedBlockFactory.js +2 -7
- package/src/lib/blocks/encryptedBlockFactory.js.map +1 -1
- package/src/lib/blocks/ephemeral.d.ts +4 -3
- package/src/lib/blocks/ephemeral.d.ts.map +1 -1
- package/src/lib/blocks/ephemeral.js +3 -4
- package/src/lib/blocks/ephemeral.js.map +1 -1
- package/src/lib/blocks/extendedCbl.d.ts +4 -3
- package/src/lib/blocks/extendedCbl.d.ts.map +1 -1
- package/src/lib/blocks/extendedCbl.js.map +1 -1
- package/src/lib/blocks/handle.d.ts +208 -12
- package/src/lib/blocks/handle.d.ts.map +1 -1
- package/src/lib/blocks/handle.js +175 -3
- package/src/lib/blocks/handle.js.map +1 -1
- package/src/lib/blocks/handleTuple.d.ts +36 -7
- package/src/lib/blocks/handleTuple.d.ts.map +1 -1
- package/src/lib/blocks/handleTuple.js +32 -3
- package/src/lib/blocks/handleTuple.js.map +1 -1
- package/src/lib/blocks/memoryTuple.d.ts +34 -7
- package/src/lib/blocks/memoryTuple.d.ts.map +1 -1
- package/src/lib/blocks/memoryTuple.js +29 -3
- package/src/lib/blocks/memoryTuple.js.map +1 -1
- package/src/lib/blocks/parity.d.ts +2 -2
- package/src/lib/blocks/parity.d.ts.map +1 -1
- package/src/lib/blocks/parity.js.map +1 -1
- package/src/lib/blocks/random.d.ts +3 -3
- package/src/lib/blocks/random.d.ts.map +1 -1
- package/src/lib/blocks/random.js.map +1 -1
- package/src/lib/blocks/rawData.d.ts +2 -2
- package/src/lib/blocks/rawData.d.ts.map +1 -1
- package/src/lib/blocks/rawData.js +2 -7
- package/src/lib/blocks/rawData.js.map +1 -1
- package/src/lib/blocks/whitened.d.ts +3 -3
- package/src/lib/blocks/whitened.d.ts.map +1 -1
- package/src/lib/blocks/whitened.js.map +1 -1
- package/src/lib/brightChain.d.ts +2 -2
- package/src/lib/brightChain.d.ts.map +1 -1
- package/src/lib/brightChain.js +6 -3
- package/src/lib/brightChain.js.map +1 -1
- package/src/lib/browserBrightChain.d.ts +2 -2
- package/src/lib/browserBrightChain.d.ts.map +1 -1
- package/src/lib/browserBrightChain.js +6 -3
- package/src/lib/browserBrightChain.js.map +1 -1
- package/src/lib/browserConfig.d.ts.map +1 -1
- package/src/lib/browserConfig.js +0 -1
- package/src/lib/browserConfig.js.map +1 -1
- package/src/lib/browserKeyring.d.ts.map +1 -1
- package/src/lib/browserKeyring.js +6 -4
- package/src/lib/browserKeyring.js.map +1 -1
- package/src/lib/browserStream.d.ts +2 -2
- package/src/lib/browserStream.d.ts.map +1 -1
- package/src/lib/browserStream.js +7 -6
- package/src/lib/browserStream.js.map +1 -1
- package/src/lib/bufferUtils.d.ts.map +1 -1
- package/src/lib/bufferUtils.js +3 -2
- package/src/lib/bufferUtils.js.map +1 -1
- package/src/lib/cblStream.d.ts +5 -4
- package/src/lib/cblStream.d.ts.map +1 -1
- package/src/lib/cblStream.js +2 -2
- package/src/lib/cblStream.js.map +1 -1
- package/src/lib/constants.d.ts +55 -2
- package/src/lib/constants.d.ts.map +1 -1
- package/src/lib/constants.js.map +1 -1
- package/src/lib/documents/member/baseMemberDocument.d.ts +7 -6
- package/src/lib/documents/member/baseMemberDocument.d.ts.map +1 -1
- package/src/lib/documents/member/baseMemberDocument.js.map +1 -1
- package/src/lib/documents/member/memberDocument.d.ts +81 -5
- package/src/lib/documents/member/memberDocument.d.ts.map +1 -1
- package/src/lib/documents/member/memberDocument.js +92 -2
- 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 +1 -1
- 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.map +1 -1
- package/src/lib/documents/memberDocument.d.ts +43 -3
- package/src/lib/documents/memberDocument.d.ts.map +1 -1
- package/src/lib/documents/memberDocument.js +43 -2
- package/src/lib/documents/memberDocument.js.map +1 -1
- package/src/lib/documents/quorumDocument.d.ts +4 -3
- package/src/lib/documents/quorumDocument.d.ts.map +1 -1
- package/src/lib/documents/quorumDocument.js +1 -2
- package/src/lib/documents/quorumDocument.js.map +1 -1
- package/src/lib/enumeration-translations/blockSize.d.ts.map +1 -1
- package/src/lib/enumeration-translations/blockSize.js +2 -2
- package/src/lib/enumeration-translations/blockSize.js.map +1 -1
- package/src/lib/enumeration-translations/blockType.d.ts.map +1 -1
- package/src/lib/enumeration-translations/blockType.js +3 -2
- package/src/lib/enumeration-translations/blockType.js.map +1 -1
- package/src/lib/enumeration-translations/memberType.d.ts.map +1 -1
- package/src/lib/enumeration-translations/memberType.js +3 -2
- package/src/lib/enumeration-translations/memberType.js.map +1 -1
- package/src/lib/enumeration-translations/quorumDataRecordAction.d.ts.map +1 -1
- package/src/lib/enumeration-translations/quorumDataRecordAction.js +2 -2
- package/src/lib/enumeration-translations/quorumDataRecordAction.js.map +1 -1
- package/src/lib/enumerations/availabilityState.d.ts +41 -0
- package/src/lib/enumerations/availabilityState.d.ts.map +1 -0
- package/src/lib/enumerations/availabilityState.js +51 -0
- package/src/lib/enumerations/availabilityState.js.map +1 -0
- package/src/lib/enumerations/durabilityLevel.d.ts +39 -0
- package/src/lib/enumerations/durabilityLevel.d.ts.map +1 -0
- package/src/lib/enumerations/durabilityLevel.js +55 -0
- package/src/lib/enumerations/durabilityLevel.js.map +1 -0
- package/src/lib/enumerations/index.d.ts +57 -54
- package/src/lib/enumerations/index.d.ts.map +1 -1
- package/src/lib/enumerations/index.js +61 -0
- package/src/lib/enumerations/index.js.map +1 -1
- package/src/lib/enumerations/messaging/index.d.ts +6 -0
- package/src/lib/enumerations/messaging/index.d.ts.map +1 -0
- package/src/lib/enumerations/messaging/index.js +9 -0
- package/src/lib/enumerations/messaging/index.js.map +1 -0
- package/src/lib/enumerations/messaging/messageDeliveryStatus.d.ts +18 -0
- package/src/lib/enumerations/messaging/messageDeliveryStatus.d.ts.map +1 -0
- package/src/lib/enumerations/messaging/messageDeliveryStatus.js +22 -0
- package/src/lib/enumerations/messaging/messageDeliveryStatus.js.map +1 -0
- package/src/lib/enumerations/messaging/messageEncryptionScheme.d.ts +16 -0
- package/src/lib/enumerations/messaging/messageEncryptionScheme.d.ts.map +1 -0
- package/src/lib/enumerations/messaging/messageEncryptionScheme.js +20 -0
- package/src/lib/enumerations/messaging/messageEncryptionScheme.js.map +1 -0
- package/src/lib/enumerations/messaging/messageErrorType.d.ts +31 -0
- package/src/lib/enumerations/messaging/messageErrorType.d.ts.map +1 -0
- package/src/lib/enumerations/messaging/messageErrorType.js +41 -0
- package/src/lib/enumerations/messaging/messageErrorType.js.map +1 -0
- package/src/lib/enumerations/messaging/messagePassingType.d.ts +20 -0
- package/src/lib/enumerations/messaging/messagePassingType.d.ts.map +1 -0
- package/src/lib/enumerations/messaging/messagePassingType.js +24 -0
- package/src/lib/enumerations/messaging/messagePassingType.js.map +1 -0
- package/src/lib/enumerations/messaging/messagePriority.d.ts +14 -0
- package/src/lib/enumerations/messaging/messagePriority.d.ts.map +1 -0
- package/src/lib/enumerations/messaging/messagePriority.js +18 -0
- package/src/lib/enumerations/messaging/messagePriority.js.map +1 -0
- package/src/lib/enumerations/messaging/routingStrategy.d.ts +12 -0
- package/src/lib/enumerations/messaging/routingStrategy.d.ts.map +1 -0
- package/src/lib/enumerations/messaging/routingStrategy.js +16 -0
- package/src/lib/enumerations/messaging/routingStrategy.js.map +1 -0
- package/src/lib/enumerations/quorumErrorType.d.ts +3 -1
- package/src/lib/enumerations/quorumErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/quorumErrorType.js +2 -0
- package/src/lib/enumerations/quorumErrorType.js.map +1 -1
- package/src/lib/enumerations/replicationStatus.d.ts +42 -0
- package/src/lib/enumerations/replicationStatus.d.ts.map +1 -0
- package/src/lib/enumerations/replicationStatus.js +51 -0
- package/src/lib/enumerations/replicationStatus.js.map +1 -0
- package/src/lib/enumerations/storeErrorType.d.ts +3 -1
- package/src/lib/enumerations/storeErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/storeErrorType.js +2 -0
- package/src/lib/enumerations/storeErrorType.js.map +1 -1
- package/src/lib/enumerations/stringNames.d.ts +4 -0
- package/src/lib/enumerations/stringNames.d.ts.map +1 -1
- package/src/lib/enumerations/stringNames.js +4 -0
- package/src/lib/enumerations/stringNames.js.map +1 -1
- package/src/lib/errors/block/blockAccess.d.ts +1 -2
- package/src/lib/errors/block/blockAccess.d.ts.map +1 -1
- package/src/lib/errors/block/blockAccess.js.map +1 -1
- package/src/lib/errors/block/blockCapacity.d.ts +1 -2
- package/src/lib/errors/block/blockCapacity.d.ts.map +1 -1
- package/src/lib/errors/block/blockCapacity.js.map +1 -1
- package/src/lib/errors/block/blockError.d.ts +1 -2
- package/src/lib/errors/block/blockError.d.ts.map +1 -1
- package/src/lib/errors/block/blockError.js.map +1 -1
- package/src/lib/errors/block/blockMetadata.d.ts +1 -2
- package/src/lib/errors/block/blockMetadata.d.ts.map +1 -1
- package/src/lib/errors/block/blockMetadata.js.map +1 -1
- package/src/lib/errors/block/blockValidation.d.ts +1 -2
- package/src/lib/errors/block/blockValidation.d.ts.map +1 -1
- package/src/lib/errors/block/blockValidation.js.map +1 -1
- package/src/lib/errors/block/cannotDecrypt.d.ts +1 -2
- package/src/lib/errors/block/cannotDecrypt.d.ts.map +1 -1
- package/src/lib/errors/block/cannotDecrypt.js.map +1 -1
- package/src/lib/errors/block/cannotEncrypt.d.ts +1 -2
- package/src/lib/errors/block/cannotEncrypt.d.ts.map +1 -1
- package/src/lib/errors/block/cannotEncrypt.js.map +1 -1
- package/src/lib/errors/blockServiceError.d.ts +1 -2
- package/src/lib/errors/blockServiceError.d.ts.map +1 -1
- package/src/lib/errors/blockServiceError.js.map +1 -1
- package/src/lib/errors/brightChainError.d.ts +77 -0
- package/src/lib/errors/brightChainError.d.ts.map +1 -0
- package/src/lib/errors/brightChainError.js +100 -0
- package/src/lib/errors/brightChainError.js.map +1 -0
- package/src/lib/errors/bufferError.d.ts +1 -2
- package/src/lib/errors/bufferError.d.ts.map +1 -1
- package/src/lib/errors/bufferError.js.map +1 -1
- package/src/lib/errors/cblError.d.ts +1 -2
- package/src/lib/errors/cblError.d.ts.map +1 -1
- package/src/lib/errors/cblError.js.map +1 -1
- package/src/lib/errors/checksumError.d.ts +122 -0
- package/src/lib/errors/checksumError.d.ts.map +1 -0
- package/src/lib/errors/checksumError.js +132 -0
- package/src/lib/errors/checksumError.js.map +1 -0
- package/src/lib/errors/checksumMismatch.d.ts +4 -5
- package/src/lib/errors/checksumMismatch.d.ts.map +1 -1
- package/src/lib/errors/checksumMismatch.js +2 -3
- package/src/lib/errors/checksumMismatch.js.map +1 -1
- package/src/lib/errors/document.d.ts +1 -2
- package/src/lib/errors/document.d.ts.map +1 -1
- package/src/lib/errors/document.js.map +1 -1
- package/src/lib/errors/eciesError.d.ts +1 -2
- package/src/lib/errors/eciesError.d.ts.map +1 -1
- package/src/lib/errors/eciesError.js.map +1 -1
- package/src/lib/errors/enhancedValidationError.d.ts +73 -0
- package/src/lib/errors/enhancedValidationError.d.ts.map +1 -0
- package/src/lib/errors/enhancedValidationError.js +82 -0
- package/src/lib/errors/enhancedValidationError.js.map +1 -0
- package/src/lib/errors/extendedCblError.d.ts +1 -2
- package/src/lib/errors/extendedCblError.d.ts.map +1 -1
- package/src/lib/errors/extendedCblError.js.map +1 -1
- package/src/lib/errors/factoryPatternViolationError.d.ts +91 -0
- package/src/lib/errors/factoryPatternViolationError.d.ts.map +1 -0
- package/src/lib/errors/factoryPatternViolationError.js +100 -0
- package/src/lib/errors/factoryPatternViolationError.js.map +1 -0
- package/src/lib/errors/failedToHydrate.d.ts +1 -2
- package/src/lib/errors/failedToHydrate.d.ts.map +1 -1
- package/src/lib/errors/failedToHydrate.js.map +1 -1
- package/src/lib/errors/failedToSerialize.d.ts +1 -2
- package/src/lib/errors/failedToSerialize.d.ts.map +1 -1
- package/src/lib/errors/failedToSerialize.js.map +1 -1
- package/src/lib/errors/fecError.d.ts +1 -2
- package/src/lib/errors/fecError.d.ts.map +1 -1
- 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.map +1 -1
- package/src/lib/errors/index.d.ts +200 -39
- package/src/lib/errors/index.d.ts.map +1 -1
- package/src/lib/errors/index.js +273 -0
- package/src/lib/errors/index.js.map +1 -1
- package/src/lib/errors/invalidBlockSize.d.ts +1 -2
- package/src/lib/errors/invalidBlockSize.d.ts.map +1 -1
- package/src/lib/errors/invalidBlockSize.js.map +1 -1
- package/src/lib/errors/invalidBlockSizeLength.d.ts +1 -2
- package/src/lib/errors/invalidBlockSizeLength.d.ts.map +1 -1
- package/src/lib/errors/invalidBlockSizeLength.js.map +1 -1
- package/src/lib/errors/invalidCredentials.d.ts +1 -2
- package/src/lib/errors/invalidCredentials.d.ts.map +1 -1
- package/src/lib/errors/invalidCredentials.js.map +1 -1
- package/src/lib/errors/invalidIDFormat.d.ts +1 -2
- package/src/lib/errors/invalidIDFormat.d.ts.map +1 -1
- package/src/lib/errors/invalidIDFormat.js.map +1 -1
- package/src/lib/errors/invalidSessionID.d.ts +1 -2
- package/src/lib/errors/invalidSessionID.d.ts.map +1 -1
- package/src/lib/errors/invalidSessionID.js.map +1 -1
- package/src/lib/errors/invalidTupleCount.d.ts +1 -2
- package/src/lib/errors/invalidTupleCount.d.ts.map +1 -1
- package/src/lib/errors/invalidTupleCount.js.map +1 -1
- package/src/lib/errors/isolatedKeyError.d.ts +1 -2
- package/src/lib/errors/isolatedKeyError.d.ts.map +1 -1
- package/src/lib/errors/isolatedKeyError.js.map +1 -1
- package/src/lib/errors/memberError.d.ts +1 -2
- package/src/lib/errors/memberError.d.ts.map +1 -1
- package/src/lib/errors/memberError.js +1 -1
- 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.map +1 -1
- package/src/lib/errors/messaging/index.d.ts +2 -0
- package/src/lib/errors/messaging/index.d.ts.map +1 -0
- package/src/lib/{models → errors/messaging}/index.js +1 -1
- package/src/lib/errors/messaging/index.js.map +1 -0
- package/src/lib/errors/messaging/messageError.d.ts +26 -0
- package/src/lib/errors/messaging/messageError.d.ts.map +1 -0
- package/src/lib/errors/messaging/messageError.js +32 -0
- package/src/lib/errors/messaging/messageError.js.map +1 -0
- package/src/lib/errors/metadataMismatch.d.ts +1 -2
- package/src/lib/errors/metadataMismatch.d.ts.map +1 -1
- package/src/lib/errors/metadataMismatch.js.map +1 -1
- package/src/lib/errors/multiEncryptedError.d.ts +1 -2
- package/src/lib/errors/multiEncryptedError.d.ts.map +1 -1
- package/src/lib/errors/multiEncryptedError.js.map +1 -1
- package/src/lib/errors/quorumError.d.ts +1 -2
- package/src/lib/errors/quorumError.d.ts.map +1 -1
- package/src/lib/errors/quorumError.js +2 -0
- package/src/lib/errors/quorumError.js.map +1 -1
- package/src/lib/errors/sealingError.d.ts +1 -2
- package/src/lib/errors/sealingError.d.ts.map +1 -1
- package/src/lib/errors/sealingError.js.map +1 -1
- package/src/lib/errors/secureStorage.d.ts +1 -2
- package/src/lib/errors/secureStorage.d.ts.map +1 -1
- package/src/lib/errors/secureStorage.js +1 -1
- package/src/lib/errors/secureStorage.js.map +1 -1
- package/src/lib/errors/storeError.d.ts +1 -2
- package/src/lib/errors/storeError.d.ts.map +1 -1
- package/src/lib/errors/storeError.js +2 -0
- package/src/lib/errors/storeError.js.map +1 -1
- package/src/lib/errors/streamError.d.ts +1 -2
- package/src/lib/errors/streamError.d.ts.map +1 -1
- package/src/lib/errors/streamError.js.map +1 -1
- package/src/lib/errors/symmetricError.d.ts +1 -2
- package/src/lib/errors/symmetricError.d.ts.map +1 -1
- 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.map +1 -1
- package/src/lib/errors/tupleError.d.ts +1 -2
- package/src/lib/errors/tupleError.d.ts.map +1 -1
- package/src/lib/errors/tupleError.js.map +1 -1
- package/src/lib/errors/typeGuards.d.ts +201 -0
- package/src/lib/errors/typeGuards.d.ts.map +1 -0
- package/src/lib/errors/typeGuards.js +219 -0
- package/src/lib/errors/typeGuards.js.map +1 -0
- package/src/lib/errors/typedError.d.ts +2 -3
- package/src/lib/errors/typedError.d.ts.map +1 -1
- package/src/lib/errors/typedError.js.map +1 -1
- package/src/lib/errors/userNotFound.d.ts +1 -2
- package/src/lib/errors/userNotFound.d.ts.map +1 -1
- package/src/lib/errors/userNotFound.js.map +1 -1
- package/src/lib/errors/whitenedError.d.ts +1 -2
- package/src/lib/errors/whitenedError.d.ts.map +1 -1
- package/src/lib/errors/whitenedError.js.map +1 -1
- package/src/lib/i18n/index.d.ts +28 -5
- package/src/lib/i18n/index.d.ts.map +1 -1
- package/src/lib/i18n/index.js +28 -7
- package/src/lib/i18n/index.js.map +1 -1
- package/src/lib/index.d.ts +131 -18
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +164 -19
- package/src/lib/index.js.map +1 -1
- package/src/lib/init.d.ts.map +1 -1
- package/src/lib/init.js +2 -1
- package/src/lib/init.js.map +1 -1
- package/src/lib/interfaces/active-context.d.ts +7 -4
- package/src/lib/interfaces/active-context.d.ts.map +1 -1
- package/src/lib/interfaces/availability/availabilityService.d.ts +319 -0
- package/src/lib/interfaces/availability/availabilityService.d.ts.map +1 -0
- package/src/lib/interfaces/availability/availabilityService.js +22 -0
- package/src/lib/interfaces/availability/availabilityService.js.map +1 -0
- package/src/lib/interfaces/availability/blockRegistry.d.ts +135 -0
- package/src/lib/interfaces/availability/blockRegistry.d.ts.map +1 -0
- package/src/lib/interfaces/availability/blockRegistry.js +11 -0
- package/src/lib/interfaces/availability/blockRegistry.js.map +1 -0
- package/src/lib/interfaces/availability/discoveryProtocol.d.ts +179 -0
- package/src/lib/interfaces/availability/discoveryProtocol.d.ts.map +1 -0
- package/src/lib/interfaces/availability/discoveryProtocol.js +23 -0
- package/src/lib/interfaces/availability/discoveryProtocol.js.map +1 -0
- package/src/lib/interfaces/availability/gossipService.d.ts +166 -0
- package/src/lib/interfaces/availability/gossipService.d.ts.map +1 -0
- package/src/lib/interfaces/availability/gossipService.js +22 -0
- package/src/lib/interfaces/availability/gossipService.js.map +1 -0
- package/src/lib/interfaces/availability/heartbeatMonitor.d.ts +179 -0
- package/src/lib/interfaces/availability/heartbeatMonitor.d.ts.map +1 -0
- package/src/lib/interfaces/availability/heartbeatMonitor.js +20 -0
- package/src/lib/interfaces/availability/heartbeatMonitor.js.map +1 -0
- package/src/lib/interfaces/availability/index.d.ts +8 -0
- package/src/lib/interfaces/availability/index.d.ts.map +1 -0
- package/src/lib/interfaces/availability/index.js +11 -0
- package/src/lib/interfaces/availability/index.js.map +1 -0
- package/src/lib/interfaces/availability/locationRecord.d.ts +110 -0
- package/src/lib/interfaces/availability/locationRecord.d.ts.map +1 -0
- package/src/lib/interfaces/availability/locationRecord.js +199 -0
- package/src/lib/interfaces/availability/locationRecord.js.map +1 -0
- package/src/lib/interfaces/availability/reconciliationService.d.ts +310 -0
- package/src/lib/interfaces/availability/reconciliationService.d.ts.map +1 -0
- package/src/lib/interfaces/availability/reconciliationService.js +23 -0
- package/src/lib/interfaces/availability/reconciliationService.js.map +1 -0
- package/src/lib/interfaces/backupCodeConsts.d.ts +26 -0
- package/src/lib/interfaces/backupCodeConsts.d.ts.map +1 -1
- package/src/lib/interfaces/basicObjectDto.d.ts +26 -0
- package/src/lib/interfaces/basicObjectDto.d.ts.map +1 -1
- package/src/lib/interfaces/blockCapacity.d.ts +71 -0
- package/src/lib/interfaces/blockCapacity.d.ts.map +1 -1
- package/src/lib/interfaces/blockEncryption.d.ts +3 -2
- package/src/lib/interfaces/blockEncryption.d.ts.map +1 -1
- package/src/lib/interfaces/blocks/base.d.ts +3 -2
- package/src/lib/interfaces/blocks/base.d.ts.map +1 -1
- package/src/lib/interfaces/blocks/cblBase.d.ts +3 -2
- package/src/lib/interfaces/blocks/cblBase.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/messageCblHeader.d.ts +13 -0
- package/src/lib/interfaces/blocks/headers/messageCblHeader.d.ts.map +1 -0
- package/src/lib/interfaces/blocks/headers/messageCblHeader.js +3 -0
- package/src/lib/interfaces/blocks/headers/messageCblHeader.js.map +1 -0
- package/src/lib/interfaces/cblIndexEntry.d.ts +32 -0
- package/src/lib/interfaces/cblIndexEntry.d.ts.map +1 -1
- package/src/lib/interfaces/clusterKeys.d.ts +18 -0
- package/src/lib/interfaces/clusterKeys.d.ts.map +1 -1
- package/src/lib/interfaces/constants.d.ts +244 -18
- package/src/lib/interfaces/constants.d.ts.map +1 -1
- package/src/lib/interfaces/dataAndSigningKeys.d.ts +18 -0
- package/src/lib/interfaces/dataAndSigningKeys.d.ts.map +1 -1
- package/src/lib/interfaces/encryptedBlockCreator.d.ts +3 -2
- package/src/lib/interfaces/encryptedBlockCreator.d.ts.map +1 -1
- package/src/lib/interfaces/energyTransaction.d.ts +3 -3
- package/src/lib/interfaces/energyTransaction.d.ts.map +1 -1
- package/src/lib/interfaces/handleableErrorOptions.d.ts +25 -0
- package/src/lib/interfaces/handleableErrorOptions.d.ts.map +1 -1
- package/src/lib/interfaces/index.d.ts +4 -1
- package/src/lib/interfaces/index.d.ts.map +1 -1
- package/src/lib/interfaces/index.js +3 -0
- package/src/lib/interfaces/index.js.map +1 -1
- package/src/lib/interfaces/keyringEntry.d.ts +31 -0
- package/src/lib/interfaces/keyringEntry.d.ts.map +1 -1
- package/src/lib/interfaces/languageContext.d.ts +15 -0
- package/src/lib/interfaces/languageContext.d.ts.map +1 -1
- package/src/lib/interfaces/member/memberData.d.ts +5 -4
- package/src/lib/interfaces/member/memberData.d.ts.map +1 -1
- package/src/lib/interfaces/messaging/index.d.ts +5 -0
- package/src/lib/interfaces/messaging/index.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/index.js +8 -0
- package/src/lib/interfaces/messaging/index.js.map +1 -0
- package/src/lib/interfaces/messaging/messageMetadata.d.ts +41 -0
- package/src/lib/interfaces/messaging/messageMetadata.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/messageMetadata.js +3 -0
- package/src/lib/interfaces/messaging/messageMetadata.js.map +1 -0
- package/src/lib/interfaces/messaging/messageMetadataStore.d.ts +83 -0
- package/src/lib/interfaces/messaging/messageMetadataStore.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/messageMetadataStore.js +3 -0
- package/src/lib/interfaces/messaging/messageMetadataStore.js.map +1 -0
- package/src/lib/interfaces/messaging/messageRouter.d.ts +48 -0
- package/src/lib/interfaces/messaging/messageRouter.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/messageRouter.js +3 -0
- package/src/lib/interfaces/messaging/messageRouter.js.map +1 -0
- package/src/lib/interfaces/messaging/messageSystemConfig.d.ts +16 -0
- package/src/lib/interfaces/messaging/messageSystemConfig.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/messageSystemConfig.js +33 -0
- package/src/lib/interfaces/messaging/messageSystemConfig.js.map +1 -0
- package/src/lib/interfaces/network/index.d.ts +1 -0
- package/src/lib/interfaces/network/index.d.ts.map +1 -1
- package/src/lib/interfaces/network/networkTransport.d.ts +19 -0
- package/src/lib/interfaces/network/networkTransport.d.ts.map +1 -0
- package/src/lib/interfaces/network/networkTransport.js +3 -0
- package/src/lib/interfaces/network/networkTransport.js.map +1 -0
- package/src/lib/interfaces/network/node.d.ts +5 -4
- package/src/lib/interfaces/network/node.d.ts.map +1 -1
- package/src/lib/interfaces/network/node.js.map +1 -1
- package/src/lib/interfaces/readOnlyBasicObjectDto.d.ts +22 -0
- package/src/lib/interfaces/readOnlyBasicObjectDto.d.ts.map +1 -1
- package/src/lib/interfaces/requestUser.d.ts +33 -0
- package/src/lib/interfaces/requestUser.d.ts.map +1 -1
- package/src/lib/interfaces/role.d.ts +26 -0
- package/src/lib/interfaces/role.d.ts.map +1 -1
- package/src/lib/interfaces/services/fecService.d.ts +116 -0
- package/src/lib/interfaces/services/fecService.d.ts.map +1 -0
- package/src/lib/interfaces/services/fecService.js +14 -0
- package/src/lib/interfaces/services/fecService.js.map +1 -0
- package/src/lib/interfaces/services/index.d.ts +3 -0
- package/src/lib/interfaces/services/index.d.ts.map +1 -0
- package/src/lib/interfaces/services/index.js +3 -0
- package/src/lib/interfaces/services/index.js.map +1 -0
- package/src/lib/interfaces/services/quorumService.d.ts +133 -0
- package/src/lib/interfaces/services/quorumService.d.ts.map +1 -0
- package/src/lib/interfaces/services/quorumService.js +3 -0
- package/src/lib/interfaces/services/quorumService.js.map +1 -0
- package/src/lib/interfaces/storage/blockMetadata.d.ts +124 -0
- package/src/lib/interfaces/storage/blockMetadata.d.ts.map +1 -0
- package/src/lib/interfaces/storage/blockMetadata.js +31 -0
- package/src/lib/interfaces/storage/blockMetadata.js.map +1 -0
- package/src/lib/interfaces/storage/blockMetadataStore.d.ts +60 -0
- package/src/lib/interfaces/storage/blockMetadataStore.d.ts.map +1 -0
- package/src/lib/interfaces/storage/blockMetadataStore.js +3 -0
- package/src/lib/interfaces/storage/blockMetadataStore.js.map +1 -0
- package/src/lib/interfaces/storage/blockStore.d.ts +105 -10
- package/src/lib/interfaces/storage/blockStore.d.ts.map +1 -1
- package/src/lib/interfaces/storage/cblStore.d.ts +36 -0
- package/src/lib/interfaces/storage/cblStore.d.ts.map +1 -0
- package/src/lib/interfaces/storage/cblStore.js +3 -0
- package/src/lib/interfaces/storage/cblStore.js.map +1 -0
- package/src/lib/interfaces/storage/index.d.ts +4 -0
- package/src/lib/interfaces/storage/index.d.ts.map +1 -1
- package/src/lib/interfaces/storage/index.js +3 -0
- package/src/lib/interfaces/storage/index.js.map +1 -1
- package/src/lib/interfaces/storage/universalBlockStore.d.ts +5 -5
- package/src/lib/interfaces/storage/universalBlockStore.d.ts.map +1 -1
- package/src/lib/interfaces/symmetricEncryptionResults.d.ts +18 -0
- package/src/lib/interfaces/symmetricEncryptionResults.d.ts.map +1 -1
- package/src/lib/interfaces/tuple.d.ts +10 -1
- package/src/lib/interfaces/tuple.d.ts.map +1 -1
- package/src/lib/interfaces/tupleConfig.d.ts +18 -0
- package/src/lib/interfaces/tupleConfig.d.ts.map +1 -1
- package/src/lib/primeTupleGeneratorStream.d.ts +1 -1
- package/src/lib/primeTupleGeneratorStream.d.ts.map +1 -1
- package/src/lib/primeTupleGeneratorStream.js +2 -5
- package/src/lib/primeTupleGeneratorStream.js.map +1 -1
- package/src/lib/quorumDataRecord.d.ts +4 -3
- 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/index.d.ts +1 -0
- package/src/lib/schemas/index.d.ts.map +1 -1
- package/src/lib/schemas/index.js +1 -0
- package/src/lib/schemas/index.js.map +1 -1
- package/src/lib/schemas/member/memberSchema.d.ts.map +1 -1
- package/src/lib/schemas/member/memberSchema.js.map +1 -1
- package/src/lib/schemas/messaging/index.d.ts +2 -0
- package/src/lib/schemas/messaging/index.d.ts.map +1 -0
- package/src/lib/schemas/messaging/index.js +5 -0
- package/src/lib/schemas/messaging/index.js.map +1 -0
- package/src/lib/schemas/messaging/messageMetadataSchema.d.ts +14 -0
- package/src/lib/schemas/messaging/messageMetadataSchema.d.ts.map +1 -0
- package/src/lib/schemas/messaging/messageMetadataSchema.js +90 -0
- package/src/lib/schemas/messaging/messageMetadataSchema.js.map +1 -0
- package/src/lib/schemas/network/networkDocumentSchema.d.ts.map +1 -1
- package/src/lib/schemas/network/networkDocumentSchema.js.map +1 -1
- package/src/lib/schemas/quorumDocument.d.ts.map +1 -1
- package/src/lib/schemas/quorumDocument.js +6 -6
- package/src/lib/schemas/quorumDocument.js.map +1 -1
- package/src/lib/services/blockCapacity.service.d.ts +36 -2
- package/src/lib/services/blockCapacity.service.d.ts.map +1 -1
- package/src/lib/services/blockCapacity.service.js +141 -77
- package/src/lib/services/blockCapacity.service.js.map +1 -1
- package/src/lib/services/blockService.d.ts +33 -0
- package/src/lib/services/blockService.d.ts.map +1 -1
- package/src/lib/services/blockService.js +127 -37
- package/src/lib/services/blockService.js.map +1 -1
- package/src/lib/services/cblService.d.ts +129 -18
- package/src/lib/services/cblService.d.ts.map +1 -1
- package/src/lib/services/cblService.js +295 -77
- package/src/lib/services/cblService.js.map +1 -1
- package/src/lib/services/checksum.service.d.ts +92 -23
- package/src/lib/services/checksum.service.d.ts.map +1 -1
- package/src/lib/services/checksum.service.js +89 -41
- package/src/lib/services/checksum.service.js.map +1 -1
- package/src/lib/services/fec.service.d.ts +43 -1
- package/src/lib/services/fec.service.d.ts.map +1 -1
- package/src/lib/services/fec.service.js +71 -2
- package/src/lib/services/fec.service.js.map +1 -1
- package/src/lib/services/index.d.ts +2 -0
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +2 -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 +14 -11
- 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 +5 -5
- package/src/lib/services/memberStore.js.map +1 -1
- package/src/lib/services/messaging/alertMonitor.d.ts +23 -0
- package/src/lib/services/messaging/alertMonitor.d.ts.map +1 -0
- package/src/lib/services/messaging/alertMonitor.js +39 -0
- package/src/lib/services/messaging/alertMonitor.js.map +1 -0
- package/src/lib/services/messaging/broadcastMessageRouter.d.ts +19 -0
- package/src/lib/services/messaging/broadcastMessageRouter.d.ts.map +1 -0
- package/src/lib/services/messaging/broadcastMessageRouter.js +33 -0
- package/src/lib/services/messaging/broadcastMessageRouter.js.map +1 -0
- package/src/lib/services/messaging/deliveryTimeoutService.d.ts +64 -0
- package/src/lib/services/messaging/deliveryTimeoutService.d.ts.map +1 -0
- package/src/lib/services/messaging/deliveryTimeoutService.js +125 -0
- package/src/lib/services/messaging/deliveryTimeoutService.js.map +1 -0
- package/src/lib/services/messaging/directMessageRouter.d.ts +25 -0
- package/src/lib/services/messaging/directMessageRouter.d.ts.map +1 -0
- package/src/lib/services/messaging/directMessageRouter.js +58 -0
- package/src/lib/services/messaging/directMessageRouter.js.map +1 -0
- package/src/lib/services/messaging/index.d.ts +9 -0
- package/src/lib/services/messaging/index.d.ts.map +1 -0
- package/src/lib/services/messaging/index.js +12 -0
- package/src/lib/services/messaging/index.js.map +1 -0
- package/src/lib/services/messaging/messageCBLService.d.ts +41 -0
- package/src/lib/services/messaging/messageCBLService.d.ts.map +1 -0
- package/src/lib/services/messaging/messageCBLService.js +187 -0
- package/src/lib/services/messaging/messageCBLService.js.map +1 -0
- package/src/lib/services/messaging/messageEncryptionService.d.ts +43 -0
- package/src/lib/services/messaging/messageEncryptionService.d.ts.map +1 -0
- package/src/lib/services/messaging/messageEncryptionService.js +89 -0
- package/src/lib/services/messaging/messageEncryptionService.js.map +1 -0
- package/src/lib/services/messaging/messageForwardingService.d.ts +40 -0
- package/src/lib/services/messaging/messageForwardingService.d.ts.map +1 -0
- package/src/lib/services/messaging/messageForwardingService.js +74 -0
- package/src/lib/services/messaging/messageForwardingService.js.map +1 -0
- package/src/lib/services/messaging/messageLogger.d.ts +26 -0
- package/src/lib/services/messaging/messageLogger.d.ts.map +1 -0
- package/src/lib/services/messaging/messageLogger.js +42 -0
- package/src/lib/services/messaging/messageLogger.js.map +1 -0
- package/src/lib/services/messaging/messageMetrics.d.ts +35 -0
- package/src/lib/services/messaging/messageMetrics.d.ts.map +1 -0
- package/src/lib/services/messaging/messageMetrics.js +68 -0
- package/src/lib/services/messaging/messageMetrics.js.map +1 -0
- package/src/lib/services/messaging/messageRouter.d.ts +24 -0
- package/src/lib/services/messaging/messageRouter.d.ts.map +1 -0
- package/src/lib/services/messaging/messageRouter.js +102 -0
- package/src/lib/services/messaging/messageRouter.js.map +1 -0
- package/src/lib/services/messaging/recipientKeyManager.d.ts +40 -0
- package/src/lib/services/messaging/recipientKeyManager.d.ts.map +1 -0
- package/src/lib/services/messaging/recipientKeyManager.js +83 -0
- package/src/lib/services/messaging/recipientKeyManager.js.map +1 -0
- package/src/lib/services/messaging/webSocketTransport.d.ts +34 -0
- package/src/lib/services/messaging/webSocketTransport.d.ts.map +1 -0
- package/src/lib/services/messaging/webSocketTransport.js +116 -0
- package/src/lib/services/messaging/webSocketTransport.js.map +1 -0
- package/src/lib/services/quorumService.d.ts +38 -0
- package/src/lib/services/quorumService.d.ts.map +1 -0
- package/src/lib/services/quorumService.js +176 -0
- package/src/lib/services/quorumService.js.map +1 -0
- package/src/lib/services/sealing.service.d.ts +6 -0
- package/src/lib/services/sealing.service.d.ts.map +1 -1
- package/src/lib/services/sealing.service.js +53 -7
- package/src/lib/services/sealing.service.js.map +1 -1
- package/src/lib/services/tuple.service.d.ts +40 -3
- package/src/lib/services/tuple.service.d.ts.map +1 -1
- package/src/lib/services/tuple.service.js +69 -33
- package/src/lib/services/tuple.service.js.map +1 -1
- package/src/lib/simpleBrightChain.d.ts.map +1 -1
- package/src/lib/simpleBrightChain.js +2 -1
- package/src/lib/simpleBrightChain.js.map +1 -1
- package/src/lib/stores/blockStoreAdapter.d.ts +21 -9
- package/src/lib/stores/blockStoreAdapter.d.ts.map +1 -1
- package/src/lib/stores/blockStoreAdapter.js +44 -7
- package/src/lib/stores/blockStoreAdapter.js.map +1 -1
- package/src/lib/stores/cblStore.d.ts +7 -6
- package/src/lib/stores/cblStore.d.ts.map +1 -1
- package/src/lib/stores/cblStore.js +3 -4
- package/src/lib/stores/cblStore.js.map +1 -1
- package/src/lib/stores/index.d.ts +3 -1
- package/src/lib/stores/index.d.ts.map +1 -1
- package/src/lib/stores/index.js +3 -1
- package/src/lib/stores/index.js.map +1 -1
- package/src/lib/stores/memoryBlockMetadataStore.d.ts +82 -0
- package/src/lib/stores/memoryBlockMetadataStore.d.ts.map +1 -0
- package/src/lib/stores/memoryBlockMetadataStore.js +165 -0
- package/src/lib/stores/memoryBlockMetadataStore.js.map +1 -0
- package/src/lib/stores/memoryBlockStore.d.ts +141 -15
- package/src/lib/stores/memoryBlockStore.d.ts.map +1 -1
- package/src/lib/stores/memoryBlockStore.js +439 -23
- package/src/lib/stores/memoryBlockStore.js.map +1 -1
- package/src/lib/stores/memoryCblStore.d.ts +25 -0
- package/src/lib/stores/memoryCblStore.d.ts.map +1 -0
- package/src/lib/stores/memoryCblStore.js +105 -0
- package/src/lib/stores/memoryCblStore.js.map +1 -0
- package/src/lib/stores/messaging/index.d.ts +2 -0
- package/src/lib/stores/messaging/index.d.ts.map +1 -0
- package/src/lib/stores/messaging/index.js +5 -0
- package/src/lib/stores/messaging/index.js.map +1 -0
- package/src/lib/stores/messaging/memoryMessageMetadataStore.d.ts +24 -0
- package/src/lib/stores/messaging/memoryMessageMetadataStore.d.ts.map +1 -0
- package/src/lib/stores/messaging/memoryMessageMetadataStore.js +123 -0
- package/src/lib/stores/messaging/memoryMessageMetadataStore.js.map +1 -0
- package/src/lib/strings/englishUs.d.ts.map +1 -1
- package/src/lib/strings/englishUs.js +4 -0
- package/src/lib/strings/englishUs.js.map +1 -1
- package/src/lib/systemKeyring.d.ts.map +1 -1
- package/src/lib/systemKeyring.js.map +1 -1
- package/src/lib/test/testMembers.js +3 -3
- package/src/lib/test/testMembers.js.map +1 -1
- package/src/lib/test/testUtils.d.ts +18 -0
- package/src/lib/test/testUtils.d.ts.map +1 -1
- package/src/lib/test/testUtils.js +23 -0
- package/src/lib/test/testUtils.js.map +1 -1
- package/src/lib/types/checksum.d.ts +215 -0
- package/src/lib/types/checksum.d.ts.map +1 -0
- package/src/lib/types/checksum.js +266 -0
- package/src/lib/types/checksum.js.map +1 -0
- package/src/lib/types/enumTranslation.d.ts +54 -0
- package/src/lib/types/enumTranslation.d.ts.map +1 -0
- package/src/lib/types/enumTranslation.js +34 -0
- package/src/lib/types/enumTranslation.js.map +1 -0
- package/src/lib/types/index.d.ts +46 -0
- package/src/lib/types/index.d.ts.map +1 -0
- package/src/lib/types/index.js +49 -0
- package/src/lib/types/index.js.map +1 -0
- package/src/lib/utils/checksumUtils.d.ts +105 -0
- package/src/lib/utils/checksumUtils.d.ts.map +1 -0
- package/src/lib/utils/checksumUtils.js +123 -0
- package/src/lib/utils/checksumUtils.js.map +1 -0
- package/src/lib/utils/index.d.ts +47 -0
- package/src/lib/utils/index.d.ts.map +1 -0
- package/src/lib/utils/index.js +56 -0
- package/src/lib/utils/index.js.map +1 -0
- package/src/lib/utils/validator.d.ts +216 -0
- package/src/lib/utils/validator.d.ts.map +1 -0
- package/src/lib/utils/validator.js +256 -0
- package/src/lib/utils/validator.js.map +1 -0
- package/src/lib/enumerations/stringLanguages.d.ts +0 -29
- package/src/lib/enumerations/stringLanguages.d.ts.map +0 -1
- package/src/lib/enumerations/stringLanguages.js +0 -24
- package/src/lib/enumerations/stringLanguages.js.map +0 -1
- package/src/lib/models/index.d.ts +0 -2
- package/src/lib/models/index.d.ts.map +0 -1
- package/src/lib/models/index.js.map +0 -1
- package/src/lib/models/user.d.ts +0 -2
- package/src/lib/models/user.d.ts.map +0 -1
- package/src/lib/models/user.js +0 -25
- package/src/lib/models/user.js.map +0 -1
- package/src/lib/types.d.ts +0 -11
- package/src/lib/types.d.ts.map +0 -1
- package/src/lib/types.js +0 -11
- package/src/lib/types.js.map +0 -1
package/src/lib/blocks/handle.js
CHANGED
|
@@ -1,20 +1,100 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BLOCK_HANDLE_SYMBOL = void 0;
|
|
3
4
|
exports.createBlockHandle = createBlockHandle;
|
|
4
5
|
exports.createBlockHandleFromStore = createBlockHandleFromStore;
|
|
6
|
+
exports.isBlockHandle = isBlockHandle;
|
|
5
7
|
const blockDataType_1 = require("../enumerations/blockDataType");
|
|
6
8
|
const blockType_1 = require("../enumerations/blockType");
|
|
9
|
+
const enhancedValidationError_1 = require("../errors/enhancedValidationError");
|
|
7
10
|
const service_provider_1 = require("../services/service.provider");
|
|
11
|
+
const checksum_1 = require("../types/checksum");
|
|
8
12
|
const rawData_1 = require("./rawData");
|
|
9
13
|
/**
|
|
10
|
-
*
|
|
14
|
+
* Symbol used to identify BlockHandle instances at runtime.
|
|
15
|
+
* This enables the isBlockHandle type guard to work correctly.
|
|
16
|
+
*/
|
|
17
|
+
exports.BLOCK_HANDLE_SYMBOL = Symbol.for('brightchain.BlockHandle');
|
|
18
|
+
/**
|
|
19
|
+
* Create a browser-compatible block handle from block data.
|
|
20
|
+
*
|
|
21
|
+
* This factory function creates a BlockHandle instance that wraps a block of type T.
|
|
22
|
+
* The handle provides lazy data loading, caching, and checksum calculation capabilities.
|
|
23
|
+
*
|
|
24
|
+
* @typeParam T - The block type to create a handle for. Must extend BaseBlock.
|
|
25
|
+
*
|
|
26
|
+
* @param blockConstructor - The constructor function for the block type T.
|
|
27
|
+
* Must accept (blockSize, data, dateCreated, checksum, blockType, blockDataType, canRead, canPersist, ...args)
|
|
28
|
+
* @param blockSize - The size category of the block (e.g., BlockSize.Small, BlockSize.Medium)
|
|
29
|
+
* @param data - The raw block data as a Uint8Array
|
|
30
|
+
* @param checksum - The checksum/identifier of the block
|
|
31
|
+
* @param canRead - Whether the block can be read (default: true)
|
|
32
|
+
* @param canPersist - Whether the block can be persisted (default: true)
|
|
33
|
+
* @param constructorArgs - Additional arguments to pass to the block constructor
|
|
34
|
+
*
|
|
35
|
+
* @returns A BlockHandle<T> instance wrapping the block
|
|
36
|
+
*
|
|
37
|
+
* @throws {EnhancedValidationError} If blockConstructor is not a valid constructor function
|
|
38
|
+
* @throws {EnhancedValidationError} If data is not a valid Uint8Array
|
|
39
|
+
* @throws {EnhancedValidationError} If checksum is not a valid Uint8Array
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* // Create a handle for a RawDataBlock
|
|
44
|
+
* const handle = createBlockHandle<RawDataBlock>(
|
|
45
|
+
* RawDataBlock,
|
|
46
|
+
* BlockSize.Small,
|
|
47
|
+
* new Uint8Array(1024),
|
|
48
|
+
* checksumService.calculateChecksum(data)
|
|
49
|
+
* );
|
|
50
|
+
*
|
|
51
|
+
* // Access the data
|
|
52
|
+
* console.log(handle.fullData.length);
|
|
53
|
+
*
|
|
54
|
+
* // Calculate checksum
|
|
55
|
+
* const checksum = handle.calculateChecksum();
|
|
56
|
+
*
|
|
57
|
+
* // Get underlying block
|
|
58
|
+
* const block = handle.block;
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* @see {@link BlockHandle} - The type returned by this function
|
|
62
|
+
* @see {@link isBlockHandle} - Type guard for runtime type checking
|
|
63
|
+
* @see {@link createBlockHandleFromStore} - Create handle from a block store
|
|
64
|
+
*
|
|
65
|
+
* @see Requirements 3.1, 3.3, 3.4, 5.1
|
|
11
66
|
*/
|
|
12
67
|
function createBlockHandle(
|
|
13
68
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
69
|
blockConstructor, blockSize, data, checksum, canRead = true, canPersist = true,
|
|
15
70
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
71
|
...constructorArgs) {
|
|
72
|
+
// Runtime validation
|
|
73
|
+
if (typeof blockConstructor !== 'function') {
|
|
74
|
+
throw new enhancedValidationError_1.EnhancedValidationError('blockConstructor', 'blockConstructor must be a valid constructor function', { context: 'createBlockHandle' });
|
|
75
|
+
}
|
|
76
|
+
if (blockSize === undefined || blockSize === null) {
|
|
77
|
+
throw new enhancedValidationError_1.EnhancedValidationError('blockSize', 'blockSize is required', {
|
|
78
|
+
context: 'createBlockHandle',
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
if (!(data instanceof Uint8Array)) {
|
|
82
|
+
throw new enhancedValidationError_1.EnhancedValidationError('data', 'data must be a Uint8Array', {
|
|
83
|
+
context: 'createBlockHandle',
|
|
84
|
+
receivedType: typeof data,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
if (!(checksum instanceof checksum_1.Checksum)) {
|
|
88
|
+
throw new enhancedValidationError_1.EnhancedValidationError('checksum', 'checksum must be a Checksum', { context: 'createBlockHandle', receivedType: typeof checksum });
|
|
89
|
+
}
|
|
17
90
|
const instance = new blockConstructor(blockSize, data, new Date(), checksum, blockType_1.BlockType.Handle, blockDataType_1.BlockDataType.RawData, canRead, canPersist, ...constructorArgs);
|
|
91
|
+
// Add the symbol property to identify this as a BlockHandle
|
|
92
|
+
Object.defineProperty(instance, exports.BLOCK_HANDLE_SYMBOL, {
|
|
93
|
+
value: true,
|
|
94
|
+
writable: false,
|
|
95
|
+
enumerable: false,
|
|
96
|
+
configurable: false,
|
|
97
|
+
});
|
|
18
98
|
instance._cachedData = data;
|
|
19
99
|
Object.defineProperty(instance, 'fullData', {
|
|
20
100
|
get: function () {
|
|
@@ -53,10 +133,102 @@ blockConstructor, blockSize, data, checksum, canRead = true, canPersist = true,
|
|
|
53
133
|
return instance;
|
|
54
134
|
}
|
|
55
135
|
/**
|
|
56
|
-
* Create a browser-compatible block handle from a block store
|
|
136
|
+
* Create a browser-compatible block handle from a block store.
|
|
137
|
+
*
|
|
138
|
+
* This factory function retrieves block data from a store and creates a BlockHandle instance.
|
|
139
|
+
* Useful when you have a checksum and need to load the block data asynchronously.
|
|
140
|
+
*
|
|
141
|
+
* @typeParam T - The block type to create a handle for. Must extend BaseBlock.
|
|
142
|
+
*
|
|
143
|
+
* @param blockConstructor - The constructor function for the block type T
|
|
144
|
+
* @param blockStore - The block store to retrieve data from. Must have a getData method.
|
|
145
|
+
* @param blockSize - The size category of the block
|
|
146
|
+
* @param checksum - The checksum/identifier of the block to retrieve
|
|
147
|
+
* @param canRead - Whether the block can be read (default: true)
|
|
148
|
+
* @param canPersist - Whether the block can be persisted (default: true)
|
|
149
|
+
* @param constructorArgs - Additional arguments to pass to the block constructor
|
|
150
|
+
*
|
|
151
|
+
* @returns A Promise resolving to a BlockHandle<T> instance
|
|
152
|
+
*
|
|
153
|
+
* @throws {EnhancedValidationError} If any validation fails (see createBlockHandle)
|
|
154
|
+
* @throws {Error} If the block cannot be retrieved from the store
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* // Create a handle from a block store
|
|
159
|
+
* const handle = await createBlockHandleFromStore<RawDataBlock>(
|
|
160
|
+
* RawDataBlock,
|
|
161
|
+
* myBlockStore,
|
|
162
|
+
* BlockSize.Small,
|
|
163
|
+
* blockChecksum
|
|
164
|
+
* );
|
|
165
|
+
*
|
|
166
|
+
* // Now you can use the handle
|
|
167
|
+
* console.log(handle.fullData.length);
|
|
168
|
+
* ```
|
|
169
|
+
*
|
|
170
|
+
* @see {@link createBlockHandle} - Create handle directly from data
|
|
171
|
+
* @see {@link BlockHandle} - The type returned by this function
|
|
172
|
+
*
|
|
173
|
+
* @see Requirements 3.1, 3.3, 3.4
|
|
57
174
|
*/
|
|
58
|
-
async function createBlockHandleFromStore(
|
|
175
|
+
async function createBlockHandleFromStore(
|
|
176
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
177
|
+
blockConstructor, blockStore, blockSize, checksum, canRead = true, canPersist = true,
|
|
178
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
179
|
+
...constructorArgs) {
|
|
59
180
|
const block = await blockStore.getData(checksum);
|
|
60
181
|
return createBlockHandle(blockConstructor, blockSize, block.data, checksum, canRead, canPersist, ...constructorArgs);
|
|
61
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Type guard to check if a value is a BlockHandle instance.
|
|
185
|
+
*
|
|
186
|
+
* This function performs runtime validation to determine if a value is a BlockHandle.
|
|
187
|
+
* It checks for the presence of the BLOCK_HANDLE_SYMBOL property and validates
|
|
188
|
+
* that the value has the expected BlockHandle interface.
|
|
189
|
+
*
|
|
190
|
+
* @param value - The value to check
|
|
191
|
+
* @returns true if the value is a BlockHandle instance, false otherwise
|
|
192
|
+
*
|
|
193
|
+
* @remarks
|
|
194
|
+
* - This type guard enables TypeScript type narrowing in conditional blocks
|
|
195
|
+
* - It checks for the symbol property added by createBlockHandle
|
|
196
|
+
* - It also validates the presence of key BlockHandle methods and properties
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```typescript
|
|
200
|
+
* function processBlock(block: BaseBlock | BlockHandle<BaseBlock>): void {
|
|
201
|
+
* if (isBlockHandle(block)) {
|
|
202
|
+
* // TypeScript knows block is BlockHandle<BaseBlock> here
|
|
203
|
+
* console.log(block.fullData.length);
|
|
204
|
+
* block.clearCache();
|
|
205
|
+
* } else {
|
|
206
|
+
* // TypeScript knows block is BaseBlock here
|
|
207
|
+
* console.log(block.blockSize);
|
|
208
|
+
* }
|
|
209
|
+
* }
|
|
210
|
+
* ```
|
|
211
|
+
*
|
|
212
|
+
* @see {@link BlockHandle} - The type this guard checks for
|
|
213
|
+
* @see {@link BLOCK_HANDLE_SYMBOL} - The symbol used for identification
|
|
214
|
+
*
|
|
215
|
+
* @see Requirements 14.2, 14.5, 14.6
|
|
216
|
+
*/
|
|
217
|
+
function isBlockHandle(value) {
|
|
218
|
+
if (value === null || value === undefined) {
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
// Check for the symbol property
|
|
222
|
+
if (typeof value === 'object' &&
|
|
223
|
+
exports.BLOCK_HANDLE_SYMBOL in value &&
|
|
224
|
+
value[exports.BLOCK_HANDLE_SYMBOL] === true) {
|
|
225
|
+
// Additional validation: check for expected properties and methods
|
|
226
|
+
const candidate = value;
|
|
227
|
+
return (typeof candidate['fullData'] !== 'undefined' &&
|
|
228
|
+
typeof candidate['calculateChecksum'] === 'function' &&
|
|
229
|
+
typeof candidate['clearCache'] === 'function' &&
|
|
230
|
+
typeof candidate['block'] !== 'undefined');
|
|
231
|
+
}
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
62
234
|
//# sourceMappingURL=handle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/handle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handle.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/handle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChecksumUint8Array } from '@digitaldefiance/ecies-lib';
|
|
2
1
|
import { IBaseBlockMetadata } from '../interfaces/blocks/metadata/blockMetadata';
|
|
2
|
+
import { Checksum } from '../types/checksum';
|
|
3
3
|
import { BaseBlock } from './base';
|
|
4
4
|
import { BlockHandle } from './handle';
|
|
5
5
|
import { RawDataBlock } from './rawData';
|
|
@@ -8,19 +8,48 @@ import { RawDataBlock } from './rawData';
|
|
|
8
8
|
*/
|
|
9
9
|
interface IBlockStore {
|
|
10
10
|
setData(block: RawDataBlock): Promise<void>;
|
|
11
|
-
get<T extends BaseBlock>(checksum:
|
|
11
|
+
get<T extends BaseBlock>(checksum: Checksum): BlockHandle<T>;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* A tuple of block handles that can be XORed together.
|
|
15
15
|
* Used for whitening and reconstruction operations.
|
|
16
|
+
*
|
|
17
|
+
* @typeParam T - The block type for handles in this tuple. Defaults to BaseBlock.
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
* - All handles in a tuple must have the same block size
|
|
21
|
+
* - The tuple size is fixed at TUPLE.SIZE (typically 3)
|
|
22
|
+
* - XOR operations produce a new RawDataBlock
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // Create a tuple of RawDataBlock handles
|
|
27
|
+
* const tuple = new BlockHandleTuple<RawDataBlock>(handles);
|
|
28
|
+
*
|
|
29
|
+
* // XOR all blocks and store the result
|
|
30
|
+
* const result = await tuple.xor(blockStore, metadata);
|
|
31
|
+
*
|
|
32
|
+
* // Verify all blocks in the tuple
|
|
33
|
+
* const isValid = await tuple.verify();
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @see {@link BlockHandle} - The handle type used in tuples
|
|
37
|
+
* @see Requirements 3.1, 3.2
|
|
16
38
|
*/
|
|
17
|
-
export declare class BlockHandleTuple {
|
|
39
|
+
export declare class BlockHandleTuple<T extends BaseBlock = BaseBlock> {
|
|
18
40
|
private readonly _handles;
|
|
19
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Create a new BlockHandleTuple.
|
|
43
|
+
*
|
|
44
|
+
* @param handles - Array of block handles. Must have exactly TUPLE.SIZE elements.
|
|
45
|
+
* @throws {HandleTupleError} If the number of handles is not TUPLE.SIZE
|
|
46
|
+
* @throws {HandleTupleError} If handles have different block sizes
|
|
47
|
+
*/
|
|
48
|
+
constructor(handles: BlockHandle<T>[]);
|
|
20
49
|
/**
|
|
21
50
|
* The handles in this tuple
|
|
22
51
|
*/
|
|
23
|
-
get handles(): BlockHandle<
|
|
52
|
+
get handles(): BlockHandle<T>[];
|
|
24
53
|
/**
|
|
25
54
|
* The block IDs as a concatenated buffer
|
|
26
55
|
*/
|
|
@@ -28,14 +57,14 @@ export declare class BlockHandleTuple {
|
|
|
28
57
|
/**
|
|
29
58
|
* The block IDs in this tuple
|
|
30
59
|
*/
|
|
31
|
-
get blockIds():
|
|
60
|
+
get blockIds(): Checksum[];
|
|
32
61
|
/**
|
|
33
62
|
* XOR all blocks in the tuple and store the result
|
|
34
63
|
* @param blockStore - The store to write the result to
|
|
35
64
|
* @param destBlockMetadata - Metadata for the resulting block
|
|
36
65
|
* @returns A handle to the resulting block
|
|
37
66
|
*/
|
|
38
|
-
xor(blockStore: IBlockStore, destBlockMetadata: IBaseBlockMetadata): Promise<BlockHandle<
|
|
67
|
+
xor(blockStore: IBlockStore, destBlockMetadata: IBaseBlockMetadata): Promise<BlockHandle<RawDataBlock>>;
|
|
39
68
|
/**
|
|
40
69
|
* Verify all blocks in the tuple
|
|
41
70
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTuple.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/handleTuple.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handleTuple.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/handleTuple.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAEjF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,UAAU,WAAW;IACnB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;CAC9D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAE5C;;;;;;OAMG;gBACS,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE;IAcrC;;OAEG;IACH,IAAW,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAErC;IAED;;OAEG;IACH,IAAW,cAAc,IAAI,UAAU,CAYtC;IAED;;OAEG;IACH,IAAW,QAAQ,IAAI,QAAQ,EAAE,CAEhC;IAED;;;;;OAKG;IACU,GAAG,CACd,UAAU,EAAE,WAAW,EACvB,iBAAiB,EAAE,kBAAkB,GACpC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IA0ErC;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAQxC"}
|
|
@@ -4,7 +4,6 @@ exports.BlockHandleTuple = void 0;
|
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
5
|
const blockDataType_1 = require("../enumerations/blockDataType");
|
|
6
6
|
const blockType_1 = require("../enumerations/blockType");
|
|
7
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
8
7
|
const handleTupleErrorType_1 = require("../enumerations/handleTupleErrorType");
|
|
9
8
|
const handleTupleError_1 = require("../errors/handleTupleError");
|
|
10
9
|
const service_provider_1 = require("../services/service.provider");
|
|
@@ -12,8 +11,37 @@ const rawData_1 = require("./rawData");
|
|
|
12
11
|
/**
|
|
13
12
|
* A tuple of block handles that can be XORed together.
|
|
14
13
|
* Used for whitening and reconstruction operations.
|
|
14
|
+
*
|
|
15
|
+
* @typeParam T - The block type for handles in this tuple. Defaults to BaseBlock.
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* - All handles in a tuple must have the same block size
|
|
19
|
+
* - The tuple size is fixed at TUPLE.SIZE (typically 3)
|
|
20
|
+
* - XOR operations produce a new RawDataBlock
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* // Create a tuple of RawDataBlock handles
|
|
25
|
+
* const tuple = new BlockHandleTuple<RawDataBlock>(handles);
|
|
26
|
+
*
|
|
27
|
+
* // XOR all blocks and store the result
|
|
28
|
+
* const result = await tuple.xor(blockStore, metadata);
|
|
29
|
+
*
|
|
30
|
+
* // Verify all blocks in the tuple
|
|
31
|
+
* const isValid = await tuple.verify();
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @see {@link BlockHandle} - The handle type used in tuples
|
|
35
|
+
* @see Requirements 3.1, 3.2
|
|
15
36
|
*/
|
|
16
37
|
class BlockHandleTuple {
|
|
38
|
+
/**
|
|
39
|
+
* Create a new BlockHandleTuple.
|
|
40
|
+
*
|
|
41
|
+
* @param handles - Array of block handles. Must have exactly TUPLE.SIZE elements.
|
|
42
|
+
* @throws {HandleTupleError} If the number of handles is not TUPLE.SIZE
|
|
43
|
+
* @throws {HandleTupleError} If handles have different block sizes
|
|
44
|
+
*/
|
|
17
45
|
constructor(handles) {
|
|
18
46
|
if (handles.length !== constants_1.TUPLE.SIZE) {
|
|
19
47
|
throw new handleTupleError_1.HandleTupleError(handleTupleErrorType_1.HandleTupleErrorType.InvalidTupleSize);
|
|
@@ -35,10 +63,11 @@ class BlockHandleTuple {
|
|
|
35
63
|
* The block IDs as a concatenated buffer
|
|
36
64
|
*/
|
|
37
65
|
get blockIdsBuffer() {
|
|
38
|
-
const
|
|
66
|
+
const blockIdArrays = this.blockIds.map((checksum) => checksum.toUint8Array());
|
|
67
|
+
const totalLength = blockIdArrays.reduce((sum, id) => sum + id.length, 0);
|
|
39
68
|
const result = new Uint8Array(totalLength);
|
|
40
69
|
let offset = 0;
|
|
41
|
-
for (const id of
|
|
70
|
+
for (const id of blockIdArrays) {
|
|
42
71
|
result.set(id, offset);
|
|
43
72
|
offset += id.length;
|
|
44
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTuple.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/handleTuple.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"handleTuple.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/handleTuple.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BlockSize } from '../enumerations/blockSize';
|
|
2
|
-
import { ChecksumUint8Array } from '@digitaldefiance/ecies-lib';
|
|
3
2
|
import { IBaseBlock } from '../interfaces/blocks/base';
|
|
3
|
+
import { Checksum } from '../types/checksum';
|
|
4
|
+
import { BaseBlock } from './base';
|
|
4
5
|
import { type BlockHandle } from './handle';
|
|
5
6
|
import { RawDataBlock } from './rawData';
|
|
6
7
|
/**
|
|
@@ -12,16 +13,38 @@ import { RawDataBlock } from './rawData';
|
|
|
12
13
|
* This class supports both:
|
|
13
14
|
* 1. In-memory blocks (IBaseBlock derivatives) for immediate operations
|
|
14
15
|
* 2. Disk-based blocks (BlockHandle) for persistent storage
|
|
16
|
+
*
|
|
17
|
+
* @typeParam T - The block type for blocks in this tuple. Defaults to BaseBlock.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // Create a tuple from RawDataBlocks
|
|
22
|
+
* const tuple = InMemoryBlockTuple.fromBlocks<RawDataBlock>(blocks);
|
|
23
|
+
*
|
|
24
|
+
* // XOR all blocks together
|
|
25
|
+
* const result = await tuple.xor();
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @see {@link BlockHandle} - Handle type for disk-based blocks
|
|
29
|
+
* @see {@link BlockHandleTuple} - Tuple specifically for BlockHandle instances
|
|
30
|
+
* @see Requirements 3.1, 3.2
|
|
15
31
|
*/
|
|
16
|
-
export declare class InMemoryBlockTuple {
|
|
32
|
+
export declare class InMemoryBlockTuple<T extends BaseBlock = BaseBlock> {
|
|
17
33
|
static readonly TupleSize: number;
|
|
18
34
|
private readonly _blocks;
|
|
19
35
|
private readonly _blockSize;
|
|
20
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Create a new InMemoryBlockTuple.
|
|
38
|
+
*
|
|
39
|
+
* @param blocks - Array of blocks or block handles. Must have exactly TUPLE.SIZE elements.
|
|
40
|
+
* @throws {MemoryTupleError} If the number of blocks is not TUPLE.SIZE
|
|
41
|
+
* @throws {MemoryTupleError} If blocks have different block sizes
|
|
42
|
+
*/
|
|
43
|
+
constructor(blocks: (IBaseBlock | BlockHandle<T>)[]);
|
|
21
44
|
/**
|
|
22
45
|
* Get the block IDs in this tuple
|
|
23
46
|
*/
|
|
24
|
-
get blockIds():
|
|
47
|
+
get blockIds(): Checksum[];
|
|
25
48
|
/**
|
|
26
49
|
* Get the block IDs as a concatenated buffer
|
|
27
50
|
*/
|
|
@@ -29,7 +52,7 @@ export declare class InMemoryBlockTuple {
|
|
|
29
52
|
/**
|
|
30
53
|
* Get the blocks in this tuple
|
|
31
54
|
*/
|
|
32
|
-
get blocks(): (IBaseBlock | BlockHandle<
|
|
55
|
+
get blocks(): (IBaseBlock | BlockHandle<T>)[];
|
|
33
56
|
/**
|
|
34
57
|
* Get the block size for this tuple
|
|
35
58
|
*/
|
|
@@ -55,11 +78,15 @@ export declare class InMemoryBlockTuple {
|
|
|
55
78
|
* Create a tuple from block IDs
|
|
56
79
|
* This creates disk-based blocks using BlockHandle
|
|
57
80
|
*/
|
|
58
|
-
static fromIds(blockIDs:
|
|
81
|
+
static fromIds(blockIDs: Checksum[], blockSize: BlockSize, getBlockPath: (id: Checksum) => string): Promise<InMemoryBlockTuple<BaseBlock>>;
|
|
59
82
|
/**
|
|
60
83
|
* Create a tuple from blocks
|
|
61
84
|
* This creates in-memory blocks
|
|
85
|
+
*
|
|
86
|
+
* @typeParam U - The block type for blocks in the tuple
|
|
87
|
+
* @param blocks - Array of blocks or block handles
|
|
88
|
+
* @returns A new InMemoryBlockTuple instance
|
|
62
89
|
*/
|
|
63
|
-
static fromBlocks(blocks: (IBaseBlock | BlockHandle<
|
|
90
|
+
static fromBlocks<U extends BaseBlock = BaseBlock>(blocks: (IBaseBlock | BlockHandle<U>)[]): InMemoryBlockTuple<U>;
|
|
64
91
|
}
|
|
65
92
|
//# sourceMappingURL=memoryTuple.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryTuple.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/memoryTuple.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"memoryTuple.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/memoryTuple.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAItD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,kBAAkB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC7D,gBAAuB,SAAS,SAAc;IAE9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IAEvC;;;;;;OAMG;gBACS,MAAM,EAAE,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;IAiBnD;;OAEG;IACH,IAAW,QAAQ,IAAI,QAAQ,EAAE,CAEhC;IAED;;OAEG;IACH,IAAW,cAAc,IAAI,UAAU,CAYtC;IAED;;OAEG;IACH,IAAW,MAAM,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAEnD;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,SAAS,CAEhC;IAED;;;;OAIG;mBACkB,kBAAkB;IAiBvC;;;;OAIG;mBACkB,YAAY;IASjC;;;OAGG;IACU,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;IA+CzC;;;OAGG;WACiB,OAAO,CACzB,QAAQ,EAAE,QAAQ,EAAE,EACpB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,GACrC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAwBzC;;;;;;;OAOG;WACW,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACtD,MAAM,EAAE,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,GACtC,kBAAkB,CAAC,CAAC,CAAC;CAUzB"}
|
|
@@ -16,8 +16,30 @@ const rawData_1 = require("./rawData");
|
|
|
16
16
|
* This class supports both:
|
|
17
17
|
* 1. In-memory blocks (IBaseBlock derivatives) for immediate operations
|
|
18
18
|
* 2. Disk-based blocks (BlockHandle) for persistent storage
|
|
19
|
+
*
|
|
20
|
+
* @typeParam T - The block type for blocks in this tuple. Defaults to BaseBlock.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* // Create a tuple from RawDataBlocks
|
|
25
|
+
* const tuple = InMemoryBlockTuple.fromBlocks<RawDataBlock>(blocks);
|
|
26
|
+
*
|
|
27
|
+
* // XOR all blocks together
|
|
28
|
+
* const result = await tuple.xor();
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @see {@link BlockHandle} - Handle type for disk-based blocks
|
|
32
|
+
* @see {@link BlockHandleTuple} - Tuple specifically for BlockHandle instances
|
|
33
|
+
* @see Requirements 3.1, 3.2
|
|
19
34
|
*/
|
|
20
35
|
class InMemoryBlockTuple {
|
|
36
|
+
/**
|
|
37
|
+
* Create a new InMemoryBlockTuple.
|
|
38
|
+
*
|
|
39
|
+
* @param blocks - Array of blocks or block handles. Must have exactly TUPLE.SIZE elements.
|
|
40
|
+
* @throws {MemoryTupleError} If the number of blocks is not TUPLE.SIZE
|
|
41
|
+
* @throws {MemoryTupleError} If blocks have different block sizes
|
|
42
|
+
*/
|
|
21
43
|
constructor(blocks) {
|
|
22
44
|
if (blocks.length !== constants_1.TUPLE.SIZE) {
|
|
23
45
|
throw new memoryTupleError_1.MemoryTupleError(memoryTupleErrorType_1.MemoryTupleErrorType.InvalidTupleSize, constants_1.TUPLE.SIZE);
|
|
@@ -39,12 +61,12 @@ class InMemoryBlockTuple {
|
|
|
39
61
|
* Get the block IDs as a concatenated buffer
|
|
40
62
|
*/
|
|
41
63
|
get blockIdsBuffer() {
|
|
42
|
-
const totalLength = this.blockIds.reduce((sum, id) => sum + id.length, 0);
|
|
64
|
+
const totalLength = this.blockIds.reduce((sum, id) => sum + id.toUint8Array().length, 0);
|
|
43
65
|
const result = new Uint8Array(totalLength);
|
|
44
66
|
let offset = 0;
|
|
45
67
|
for (const id of this.blockIds) {
|
|
46
|
-
result.set(id, offset);
|
|
47
|
-
offset += id.length;
|
|
68
|
+
result.set(id.toUint8Array(), offset);
|
|
69
|
+
offset += id.toUint8Array().length;
|
|
48
70
|
}
|
|
49
71
|
return result;
|
|
50
72
|
}
|
|
@@ -143,6 +165,10 @@ class InMemoryBlockTuple {
|
|
|
143
165
|
/**
|
|
144
166
|
* Create a tuple from blocks
|
|
145
167
|
* This creates in-memory blocks
|
|
168
|
+
*
|
|
169
|
+
* @typeParam U - The block type for blocks in the tuple
|
|
170
|
+
* @param blocks - Array of blocks or block handles
|
|
171
|
+
* @returns A new InMemoryBlockTuple instance
|
|
146
172
|
*/
|
|
147
173
|
static fromBlocks(blocks) {
|
|
148
174
|
if (blocks.length !== constants_1.TUPLE.SIZE) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryTuple.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/memoryTuple.ts"],"names":[],"mappings":";;;AACA,4CAAqC;AACrC,iEAA8D;AAE9D,yDAAsD;
|
|
1
|
+
{"version":3,"file":"memoryTuple.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/memoryTuple.ts"],"names":[],"mappings":";;;AACA,4CAAqC;AACrC,iEAA8D;AAE9D,yDAAsD;AACtD,+EAA4E;AAC5E,iEAA8D;AAK9D,uCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAa,kBAAkB;IAM7B;;;;;;OAMG;IACH,YAAY,MAAuC;QACjD,IAAI,MAAM,CAAC,MAAM,KAAK,iBAAK,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,mCAAgB,CACxB,2CAAoB,CAAC,gBAAgB,EACrC,iBAAK,CAAC,IAAI,CACX,CAAC;QACJ,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,mCAAgB,CAAC,2CAAoB,CAAC,iBAAiB,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,IAAW,cAAc;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CACtC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAC3C,CAAC,CACF,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACrC,QAAkB;QAElB,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QACzB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAAK,CAAC,YAAY,CAC/B,IAA2B;QAE3B,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,GAAG;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,mCAAgB,CAAC,2CAAoB,CAAC,aAAa,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAC1D,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CACrB,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;YAE9C,4BAA4B;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,YAAY,CACvD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CACrB,CAAC;gBAEF,IAAI,WAAW,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;oBACzC,MAAM,IAAI,mCAAgB,CAAC,2CAAoB,CAAC,iBAAiB,CAAC,CAAC;gBACrE,CAAC;gBAED,eAAe;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,mCAAmC;YACnC,OAAO,IAAI,sBAAY,CACrB,IAAI,CAAC,UAAU,EACf,MAAM,EACN,IAAI,IAAI,EAAE,EACV,SAAS,EAAE,qCAAqC;YAChD,qBAAS,CAAC,OAAO,EACjB,6BAAa,CAAC,OAAO,EACrB,IAAI,EAAE,UAAU;YAChB,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mCAAgB,EAAE,CAAC;gBACtC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,mCAAgB,CAAC,2CAAoB,CAAC,iBAAiB,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO,CACzB,QAAoB,EACpB,SAAoB,EACpB,YAAsC;QAEtC,IAAI,QAAQ,CAAC,MAAM,KAAK,iBAAK,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,mCAAgB,CACxB,2CAAoB,CAAC,gBAAgB,EACrC,iBAAK,CAAC,IAAI,CACX,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAY,EAAE,EAAE;YAC5B,wDAAwD;YACxD,OAAO,IAAK,oBAAuB,CACjC,YAAY,CAAC,EAAE,CAAC,EAChB,SAAS,EACT,EAAE,EACF,IAAI,EAAE,UAAU;YAChB,IAAI,CACL,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,UAAU,CACtB,MAAuC;QAEvC,IAAI,MAAM,CAAC,MAAM,KAAK,iBAAK,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,mCAAgB,CACxB,2CAAoB,CAAC,cAAc,EACnC,iBAAK,CAAC,IAAI,CACX,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,kBAAkB,CAAI,MAAM,CAAC,CAAC;IAC3C,CAAC;;AA9MH,gDA+MC;AA9MwB,4BAAS,GAAG,iBAAK,CAAC,IAAI,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChecksumUint8Array } from '@digitaldefiance/ecies-lib';
|
|
2
1
|
import { BlockSize } from '../enumerations/blockSize';
|
|
2
|
+
import { Checksum } from '../types/checksum';
|
|
3
3
|
import { RawDataBlock } from './rawData';
|
|
4
4
|
/**
|
|
5
5
|
* ParityBlock represents a block containing forward error correction (FEC) data.
|
|
@@ -7,6 +7,6 @@ import { RawDataBlock } from './rawData';
|
|
|
7
7
|
* The parity data is generated using FecService through ServiceProvider
|
|
8
8
|
*/
|
|
9
9
|
export declare class ParityBlock extends RawDataBlock {
|
|
10
|
-
constructor(blockSize: BlockSize, data: Uint8Array, dateCreated?: Date, checksum?:
|
|
10
|
+
constructor(blockSize: BlockSize, data: Uint8Array, dateCreated?: Date, checksum?: Checksum, canRead?: boolean, canPersist?: boolean);
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=parity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parity.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/parity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parity.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/parity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,YAAY;gBAEzC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,UAAU,EAChB,WAAW,CAAC,EAAE,IAAI,EAClB,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,UAAO,EACd,UAAU,UAAO;CAiBpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parity.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/parity.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"parity.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/parity.ts"],"names":[],"mappings":";;;AAAA,iEAA8D;AAE9D,yDAAsD;AAEtD,uCAAyC;AAEzC;;;;GAIG;AACH,MAAa,WAAY,SAAQ,sBAAY;IAC3C,YACE,SAAoB,EACpB,IAAgB,EAChB,WAAkB,EAClB,QAAmB,EACnB,OAAO,GAAG,IAAI,EACd,UAAU,GAAG,IAAI;QAEjB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,KAAK,CACH,SAAS,EACT,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,qBAAS,CAAC,OAAO,EACjB,6BAAa,CAAC,OAAO,EACrB,OAAO,EACP,UAAU,CACX,CAAC;IACJ,CAAC;CACF;AAxBD,kCAwBC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ChecksumUint8Array } from '@digitaldefiance/ecies-lib';
|
|
2
1
|
import { BlockDataType } from '../enumerations/blockDataType';
|
|
3
2
|
import { BlockSize } from '../enumerations/blockSize';
|
|
4
3
|
import { BlockType } from '../enumerations/blockType';
|
|
4
|
+
import { Checksum } from '../types/checksum';
|
|
5
5
|
import { BaseBlock } from './base';
|
|
6
6
|
import { RawDataBlock } from './rawData';
|
|
7
7
|
/**
|
|
@@ -10,7 +10,7 @@ import { RawDataBlock } from './rawData';
|
|
|
10
10
|
* where data blocks are XORed with random blocks to make them meaningless on their own.
|
|
11
11
|
*/
|
|
12
12
|
export declare class RandomBlock extends RawDataBlock {
|
|
13
|
-
constructor(blockSize: BlockSize, data: Uint8Array, dateCreated?: Date, checksum?:
|
|
13
|
+
constructor(blockSize: BlockSize, data: Uint8Array, dateCreated?: Date, checksum?: Checksum);
|
|
14
14
|
/**
|
|
15
15
|
* Create a new random block
|
|
16
16
|
*/
|
|
@@ -18,7 +18,7 @@ export declare class RandomBlock extends RawDataBlock {
|
|
|
18
18
|
/**
|
|
19
19
|
* Reconstitute a random block from existing data
|
|
20
20
|
*/
|
|
21
|
-
static reconstitute(blockSize: BlockSize, data: Uint8Array, dateCreated?: Date, checksum?:
|
|
21
|
+
static reconstitute(blockSize: BlockSize, data: Uint8Array, dateCreated?: Date, checksum?: Checksum): RandomBlock;
|
|
22
22
|
/**
|
|
23
23
|
* The type of the block
|
|
24
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/random.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/random.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,YAAY;gBAEzC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,UAAU,EAChB,WAAW,CAAC,EAAE,IAAI,EAClB,QAAQ,CAAC,EAAE,QAAQ;IAkBrB;;OAEG;WACW,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,WAAW;IAKxE;;OAEG;WACW,YAAY,CACxB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,UAAU,EAChB,WAAW,CAAC,EAAE,IAAI,EAClB,QAAQ,CAAC,EAAE,QAAQ,GAClB,WAAW;IAId;;OAEG;IACH,IAAoB,SAAS,IAAI,SAAS,CAEzC;IAED;;OAEG;IACH,IAAoB,aAAa,IAAI,aAAa,CAEjD;IAED;;OAEG;IACH,IAAoB,UAAU,IAAI,OAAO,CAExC;IAED;;OAEG;IACH,IAAoB,UAAU,IAAI,OAAO,CAExC;IAED;;OAEG;IACH,IAAoB,eAAe,IAAI,UAAU,CAGhD;IAED;;;;OAIG;mBACkB,kBAAkB;IAiBvC;;;;OAIG;mBACkB,YAAY;IASjC;;OAEG;IACU,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAgC5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/random.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"random.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/random.ts"],"names":[],"mappings":"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"}
|