@brightchain/brightchain-api-lib 0.0.1
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-api-lib/README.md +101 -0
- package/package.json +53 -0
- package/src/index.d.ts +88 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +101 -0
- package/src/index.js.map +1 -0
- package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.d.ts +71 -0
- package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.d.ts.map +1 -0
- package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.js +119 -0
- package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.js.map +1 -0
- package/src/lib/__tests__/fixtures/mocked-model.d.ts +90 -0
- package/src/lib/__tests__/fixtures/mocked-model.d.ts.map +1 -0
- package/src/lib/__tests__/fixtures/mocked-model.js +101 -0
- package/src/lib/__tests__/fixtures/mocked-model.js.map +1 -0
- package/src/lib/__tests__/helpers/application.mock.d.ts +5 -0
- package/src/lib/__tests__/helpers/application.mock.d.ts.map +1 -0
- package/src/lib/__tests__/helpers/application.mock.js +52 -0
- package/src/lib/__tests__/helpers/application.mock.js.map +1 -0
- package/src/lib/__tests__/helpers/model-mocks.mock.d.ts +43 -0
- package/src/lib/__tests__/helpers/model-mocks.mock.d.ts.map +1 -0
- package/src/lib/__tests__/helpers/model-mocks.mock.js +67 -0
- package/src/lib/__tests__/helpers/model-mocks.mock.js.map +1 -0
- package/src/lib/appConstants.d.ts +87 -0
- package/src/lib/appConstants.d.ts.map +1 -0
- package/src/lib/appConstants.js +25 -0
- package/src/lib/appConstants.js.map +1 -0
- package/src/lib/application-base.d.ts +39 -0
- package/src/lib/application-base.d.ts.map +1 -0
- package/src/lib/application-base.js +84 -0
- package/src/lib/application-base.js.map +1 -0
- package/src/lib/application.d.ts +14 -0
- package/src/lib/application.d.ts.map +1 -0
- package/src/lib/application.js +105 -0
- package/src/lib/application.js.map +1 -0
- package/src/lib/availability/availabilityMetrics.d.ts +241 -0
- package/src/lib/availability/availabilityMetrics.d.ts.map +1 -0
- package/src/lib/availability/availabilityMetrics.js +425 -0
- package/src/lib/availability/availabilityMetrics.js.map +1 -0
- package/src/lib/availability/availabilityService.d.ts +250 -0
- package/src/lib/availability/availabilityService.d.ts.map +1 -0
- package/src/lib/availability/availabilityService.js +593 -0
- package/src/lib/availability/availabilityService.js.map +1 -0
- package/src/lib/availability/blockRegistry.d.ts +141 -0
- package/src/lib/availability/blockRegistry.d.ts.map +1 -0
- package/src/lib/availability/blockRegistry.js +257 -0
- package/src/lib/availability/blockRegistry.js.map +1 -0
- package/src/lib/availability/configValidation.d.ts +72 -0
- package/src/lib/availability/configValidation.d.ts.map +1 -0
- package/src/lib/availability/configValidation.js +261 -0
- package/src/lib/availability/configValidation.js.map +1 -0
- package/src/lib/availability/discoveryProtocol.d.ts +160 -0
- package/src/lib/availability/discoveryProtocol.d.ts.map +1 -0
- package/src/lib/availability/discoveryProtocol.js +304 -0
- package/src/lib/availability/discoveryProtocol.js.map +1 -0
- package/src/lib/availability/gossipService.d.ts +158 -0
- package/src/lib/availability/gossipService.d.ts.map +1 -0
- package/src/lib/availability/gossipService.js +271 -0
- package/src/lib/availability/gossipService.js.map +1 -0
- package/src/lib/availability/heartbeatMonitor.d.ts +204 -0
- package/src/lib/availability/heartbeatMonitor.d.ts.map +1 -0
- package/src/lib/availability/heartbeatMonitor.js +375 -0
- package/src/lib/availability/heartbeatMonitor.js.map +1 -0
- package/src/lib/availability/index.d.ts +15 -0
- package/src/lib/availability/index.d.ts.map +1 -0
- package/src/lib/availability/index.js +18 -0
- package/src/lib/availability/index.js.map +1 -0
- package/src/lib/availability/reconciliationService.d.ts +237 -0
- package/src/lib/availability/reconciliationService.d.ts.map +1 -0
- package/src/lib/availability/reconciliationService.js +513 -0
- package/src/lib/availability/reconciliationService.js.map +1 -0
- package/src/lib/blocks/handle.d.ts +45 -0
- package/src/lib/blocks/handle.d.ts.map +1 -0
- package/src/lib/blocks/handle.js +221 -0
- package/src/lib/blocks/handle.js.map +1 -0
- package/src/lib/constants.d.ts +50 -0
- package/src/lib/constants.d.ts.map +1 -0
- package/src/lib/constants.js +58 -0
- package/src/lib/constants.js.map +1 -0
- package/src/lib/controllers/base.d.ts +50 -0
- package/src/lib/controllers/base.d.ts.map +1 -0
- package/src/lib/controllers/base.js +235 -0
- package/src/lib/controllers/base.js.map +1 -0
- package/src/lib/controllers/user.d.ts +9 -0
- package/src/lib/controllers/user.d.ts.map +1 -0
- package/src/lib/controllers/user.js +21 -0
- package/src/lib/controllers/user.js.map +1 -0
- package/src/lib/datastore/block-document-store-factory.d.ts +19 -0
- package/src/lib/datastore/block-document-store-factory.d.ts.map +1 -0
- package/src/lib/datastore/block-document-store-factory.js +29 -0
- package/src/lib/datastore/block-document-store-factory.js.map +1 -0
- package/src/lib/datastore/block-document-store.d.ts +185 -0
- package/src/lib/datastore/block-document-store.d.ts.map +1 -0
- package/src/lib/datastore/block-document-store.js +590 -0
- package/src/lib/datastore/block-document-store.js.map +1 -0
- package/src/lib/datastore/document-model-adapter.d.ts +48 -0
- package/src/lib/datastore/document-model-adapter.d.ts.map +1 -0
- package/src/lib/datastore/document-model-adapter.js +178 -0
- package/src/lib/datastore/document-model-adapter.js.map +1 -0
- package/src/lib/datastore/document-store.d.ts +64 -0
- package/src/lib/datastore/document-store.d.ts.map +1 -0
- package/src/lib/datastore/document-store.js +3 -0
- package/src/lib/datastore/document-store.js.map +1 -0
- package/src/lib/datastore/memory-document-store.d.ts +6 -0
- package/src/lib/datastore/memory-document-store.d.ts.map +1 -0
- package/src/lib/datastore/memory-document-store.js +196 -0
- package/src/lib/datastore/memory-document-store.js.map +1 -0
- package/src/lib/documents/base.d.ts +5 -0
- package/src/lib/documents/base.d.ts.map +1 -0
- package/src/lib/documents/base.js +3 -0
- package/src/lib/documents/base.js.map +1 -0
- package/src/lib/documents/email-token.d.ts +8 -0
- package/src/lib/documents/email-token.d.ts.map +1 -0
- package/src/lib/documents/email-token.js +3 -0
- package/src/lib/documents/email-token.js.map +1 -0
- package/src/lib/documents/index.d.ts +7 -0
- package/src/lib/documents/index.d.ts.map +1 -0
- package/src/lib/documents/index.js +3 -0
- package/src/lib/documents/index.js.map +1 -0
- package/src/lib/documents/mnemonic.d.ts +8 -0
- package/src/lib/documents/mnemonic.d.ts.map +1 -0
- package/src/lib/documents/mnemonic.js +3 -0
- package/src/lib/documents/mnemonic.js.map +1 -0
- package/src/lib/documents/role.d.ts +8 -0
- package/src/lib/documents/role.d.ts.map +1 -0
- package/src/lib/documents/role.js +3 -0
- package/src/lib/documents/role.js.map +1 -0
- package/src/lib/documents/used-direct-login-token.d.ts +5 -0
- package/src/lib/documents/used-direct-login-token.d.ts.map +1 -0
- package/src/lib/documents/used-direct-login-token.js +3 -0
- package/src/lib/documents/used-direct-login-token.js.map +1 -0
- package/src/lib/documents/user-role.d.ts +8 -0
- package/src/lib/documents/user-role.d.ts.map +1 -0
- package/src/lib/documents/user-role.js +3 -0
- package/src/lib/documents/user-role.js.map +1 -0
- package/src/lib/documents/user.d.ts +13 -0
- package/src/lib/documents/user.d.ts.map +1 -0
- package/src/lib/documents/user.js +3 -0
- package/src/lib/documents/user.js.map +1 -0
- package/src/lib/enumerations/model-name.d.ts +30 -0
- package/src/lib/enumerations/model-name.d.ts.map +1 -0
- package/src/lib/enumerations/model-name.js +34 -0
- package/src/lib/enumerations/model-name.js.map +1 -0
- package/src/lib/enumerations/schema-collection.d.ts +30 -0
- package/src/lib/enumerations/schema-collection.d.ts.map +1 -0
- package/src/lib/enumerations/schema-collection.js +34 -0
- package/src/lib/enumerations/schema-collection.js.map +1 -0
- package/src/lib/enumerations/symmetric-error-type.d.ts +5 -0
- package/src/lib/enumerations/symmetric-error-type.d.ts.map +1 -0
- package/src/lib/enumerations/symmetric-error-type.js +9 -0
- package/src/lib/enumerations/symmetric-error-type.js.map +1 -0
- package/src/lib/environment.d.ts +23 -0
- package/src/lib/environment.d.ts.map +1 -0
- package/src/lib/environment.js +75 -0
- package/src/lib/environment.js.map +1 -0
- package/src/lib/errors/admin-role-not-found.d.ts +6 -0
- package/src/lib/errors/admin-role-not-found.d.ts.map +1 -0
- package/src/lib/errors/admin-role-not-found.js +14 -0
- package/src/lib/errors/admin-role-not-found.js.map +1 -0
- package/src/lib/errors/email-already-verified.d.ts +5 -0
- package/src/lib/errors/email-already-verified.d.ts.map +1 -0
- package/src/lib/errors/email-already-verified.js +11 -0
- package/src/lib/errors/email-already-verified.js.map +1 -0
- package/src/lib/errors/email-token-failed-to-send.d.ts +7 -0
- package/src/lib/errors/email-token-failed-to-send.d.ts.map +1 -0
- package/src/lib/errors/email-token-failed-to-send.js +14 -0
- package/src/lib/errors/email-token-failed-to-send.js.map +1 -0
- package/src/lib/errors/express-validation.d.ts +7 -0
- package/src/lib/errors/express-validation.d.ts.map +1 -0
- package/src/lib/errors/express-validation.js +14 -0
- package/src/lib/errors/express-validation.js.map +1 -0
- package/src/lib/errors/invalid-backup-code-version.d.ts +5 -0
- package/src/lib/errors/invalid-backup-code-version.d.ts.map +1 -0
- package/src/lib/errors/invalid-backup-code-version.js +12 -0
- package/src/lib/errors/invalid-backup-code-version.js.map +1 -0
- package/src/lib/errors/invalid-challenge-response.d.ts +5 -0
- package/src/lib/errors/invalid-challenge-response.d.ts.map +1 -0
- package/src/lib/errors/invalid-challenge-response.js +14 -0
- package/src/lib/errors/invalid-challenge-response.js.map +1 -0
- package/src/lib/errors/invalid-expired-token.d.ts +5 -0
- package/src/lib/errors/invalid-expired-token.d.ts.map +1 -0
- package/src/lib/errors/invalid-expired-token.js +13 -0
- package/src/lib/errors/invalid-expired-token.js.map +1 -0
- package/src/lib/errors/invalid-jwt-token.d.ts +5 -0
- package/src/lib/errors/invalid-jwt-token.d.ts.map +1 -0
- package/src/lib/errors/invalid-jwt-token.js +12 -0
- package/src/lib/errors/invalid-jwt-token.js.map +1 -0
- package/src/lib/errors/last-admin-error.d.ts +7 -0
- package/src/lib/errors/last-admin-error.d.ts.map +1 -0
- package/src/lib/errors/last-admin-error.js +16 -0
- package/src/lib/errors/last-admin-error.js.map +1 -0
- package/src/lib/errors/login-challenge-expired.d.ts +5 -0
- package/src/lib/errors/login-challenge-expired.d.ts.map +1 -0
- package/src/lib/errors/login-challenge-expired.js +14 -0
- package/src/lib/errors/login-challenge-expired.js.map +1 -0
- package/src/lib/errors/member-role-not-found.d.ts +7 -0
- package/src/lib/errors/member-role-not-found.d.ts.map +1 -0
- package/src/lib/errors/member-role-not-found.js +14 -0
- package/src/lib/errors/member-role-not-found.js.map +1 -0
- package/src/lib/errors/missing-validated-data.d.ts +8 -0
- package/src/lib/errors/missing-validated-data.d.ts.map +1 -0
- package/src/lib/errors/missing-validated-data.js +32 -0
- package/src/lib/errors/missing-validated-data.js.map +1 -0
- package/src/lib/errors/mnemonic-or-password-required.d.ts +5 -0
- package/src/lib/errors/mnemonic-or-password-required.d.ts.map +1 -0
- package/src/lib/errors/mnemonic-or-password-required.js +14 -0
- package/src/lib/errors/mnemonic-or-password-required.js.map +1 -0
- package/src/lib/errors/restricted.d.ts +5 -0
- package/src/lib/errors/restricted.d.ts.map +1 -0
- package/src/lib/errors/restricted.js +15 -0
- package/src/lib/errors/restricted.js.map +1 -0
- package/src/lib/errors/symmetric.d.ts +9 -0
- package/src/lib/errors/symmetric.d.ts.map +1 -0
- package/src/lib/errors/symmetric.js +24 -0
- package/src/lib/errors/symmetric.js.map +1 -0
- package/src/lib/errors/token-expired.d.ts +5 -0
- package/src/lib/errors/token-expired.d.ts.map +1 -0
- package/src/lib/errors/token-expired.js +12 -0
- package/src/lib/errors/token-expired.js.map +1 -0
- package/src/lib/errors/token-not-found.d.ts +8 -0
- package/src/lib/errors/token-not-found.d.ts.map +1 -0
- package/src/lib/errors/token-not-found.js +19 -0
- package/src/lib/errors/token-not-found.js.map +1 -0
- package/src/lib/errors/translatable-error-local.d.ts +7 -0
- package/src/lib/errors/translatable-error-local.d.ts.map +1 -0
- package/src/lib/errors/translatable-error-local.js +17 -0
- package/src/lib/errors/translatable-error-local.js.map +1 -0
- package/src/lib/errors/typed-error-local.d.ts +10 -0
- package/src/lib/errors/typed-error-local.d.ts.map +1 -0
- package/src/lib/errors/typed-error-local.js +24 -0
- package/src/lib/errors/typed-error-local.js.map +1 -0
- package/src/lib/factories/blockStoreFactory.d.ts +14 -0
- package/src/lib/factories/blockStoreFactory.d.ts.map +1 -0
- package/src/lib/factories/blockStoreFactory.js +18 -0
- package/src/lib/factories/blockStoreFactory.js.map +1 -0
- package/src/lib/interfaces/api-constants.d.ts +51 -0
- package/src/lib/interfaces/api-constants.d.ts.map +1 -0
- package/src/lib/interfaces/api-constants.js +13 -0
- package/src/lib/interfaces/api-constants.js.map +1 -0
- package/src/lib/interfaces/api-express-validation-error-response.d.ts +7 -0
- package/src/lib/interfaces/api-express-validation-error-response.d.ts.map +1 -0
- package/src/lib/interfaces/api-express-validation-error-response.js +3 -0
- package/src/lib/interfaces/api-express-validation-error-response.js.map +1 -0
- package/src/lib/interfaces/api-mongo-validation-error-response.d.ts +6 -0
- package/src/lib/interfaces/api-mongo-validation-error-response.d.ts.map +1 -0
- package/src/lib/interfaces/api-mongo-validation-error-response.js +3 -0
- package/src/lib/interfaces/api-mongo-validation-error-response.js.map +1 -0
- package/src/lib/interfaces/application.d.ts +10 -0
- package/src/lib/interfaces/application.d.ts.map +1 -0
- package/src/lib/interfaces/application.js +3 -0
- package/src/lib/interfaces/application.js.map +1 -0
- package/src/lib/interfaces/authenticated-cipher.d.ts +10 -0
- package/src/lib/interfaces/authenticated-cipher.d.ts.map +1 -0
- package/src/lib/interfaces/authenticated-cipher.js +3 -0
- package/src/lib/interfaces/authenticated-cipher.js.map +1 -0
- package/src/lib/interfaces/authenticated-decipher.d.ts +9 -0
- package/src/lib/interfaces/authenticated-decipher.d.ts.map +1 -0
- package/src/lib/interfaces/authenticated-decipher.js +3 -0
- package/src/lib/interfaces/authenticated-decipher.js.map +1 -0
- package/src/lib/interfaces/backend-objects/email-token.d.ts +4 -0
- package/src/lib/interfaces/backend-objects/email-token.d.ts.map +1 -0
- package/src/lib/interfaces/backend-objects/email-token.js +3 -0
- package/src/lib/interfaces/backend-objects/email-token.js.map +1 -0
- package/src/lib/interfaces/backend-objects/request-user.d.ts +5 -0
- package/src/lib/interfaces/backend-objects/request-user.d.ts.map +1 -0
- package/src/lib/interfaces/backend-objects/request-user.js +3 -0
- package/src/lib/interfaces/backend-objects/request-user.js.map +1 -0
- package/src/lib/interfaces/backend-objects/role.d.ts +4 -0
- package/src/lib/interfaces/backend-objects/role.d.ts.map +1 -0
- package/src/lib/interfaces/backend-objects/role.js +3 -0
- package/src/lib/interfaces/backend-objects/role.js.map +1 -0
- package/src/lib/interfaces/backend-objects/user.d.ts +5 -0
- package/src/lib/interfaces/backend-objects/user.d.ts.map +1 -0
- package/src/lib/interfaces/backend-objects/user.js +3 -0
- package/src/lib/interfaces/backend-objects/user.js.map +1 -0
- package/src/lib/interfaces/bases/mnemonic.d.ts +4 -0
- package/src/lib/interfaces/bases/mnemonic.d.ts.map +1 -0
- package/src/lib/interfaces/bases/mnemonic.js +3 -0
- package/src/lib/interfaces/bases/mnemonic.js.map +1 -0
- package/src/lib/interfaces/bases/role.d.ts +4 -0
- package/src/lib/interfaces/bases/role.d.ts.map +1 -0
- package/src/lib/interfaces/bases/role.js +3 -0
- package/src/lib/interfaces/bases/role.js.map +1 -0
- package/src/lib/interfaces/bases/user-role.d.ts +4 -0
- package/src/lib/interfaces/bases/user-role.d.ts.map +1 -0
- package/src/lib/interfaces/bases/user-role.js +3 -0
- package/src/lib/interfaces/bases/user-role.js.map +1 -0
- package/src/lib/interfaces/bases/user.d.ts +5 -0
- package/src/lib/interfaces/bases/user.d.ts.map +1 -0
- package/src/lib/interfaces/bases/user.js +3 -0
- package/src/lib/interfaces/bases/user.js.map +1 -0
- package/src/lib/interfaces/checksum-config.d.ts +5 -0
- package/src/lib/interfaces/checksum-config.d.ts.map +1 -0
- package/src/lib/interfaces/checksum-config.js +3 -0
- package/src/lib/interfaces/checksum-config.js.map +1 -0
- package/src/lib/interfaces/discriminator-collections.d.ts +5 -0
- package/src/lib/interfaces/discriminator-collections.d.ts.map +1 -0
- package/src/lib/interfaces/discriminator-collections.js +3 -0
- package/src/lib/interfaces/discriminator-collections.js.map +1 -0
- package/src/lib/interfaces/ecies-consts.d.ts +88 -0
- package/src/lib/interfaces/ecies-consts.d.ts.map +1 -0
- package/src/lib/interfaces/ecies-consts.js +3 -0
- package/src/lib/interfaces/ecies-consts.js.map +1 -0
- package/src/lib/interfaces/environment-aws.d.ts +7 -0
- package/src/lib/interfaces/environment-aws.d.ts.map +1 -0
- package/src/lib/interfaces/environment-aws.js +3 -0
- package/src/lib/interfaces/environment-aws.js.map +1 -0
- package/src/lib/interfaces/environment-mongo.d.ts +76 -0
- package/src/lib/interfaces/environment-mongo.d.ts.map +1 -0
- package/src/lib/interfaces/environment-mongo.js +3 -0
- package/src/lib/interfaces/environment-mongo.js.map +1 -0
- package/src/lib/interfaces/environment.d.ts +28 -0
- package/src/lib/interfaces/environment.d.ts.map +1 -0
- package/src/lib/interfaces/environment.js +3 -0
- package/src/lib/interfaces/environment.js.map +1 -0
- package/src/lib/interfaces/jwt-sign-response.d.ts +12 -0
- package/src/lib/interfaces/jwt-sign-response.d.ts.map +1 -0
- package/src/lib/interfaces/jwt-sign-response.js +3 -0
- package/src/lib/interfaces/jwt-sign-response.js.map +1 -0
- package/src/lib/interfaces/member/member-with-mnemonic.d.ts +6 -0
- package/src/lib/interfaces/member/member-with-mnemonic.d.ts.map +1 -0
- package/src/lib/interfaces/member/member-with-mnemonic.js +3 -0
- package/src/lib/interfaces/member/member-with-mnemonic.js.map +1 -0
- package/src/lib/interfaces/member/operational.d.ts +36 -0
- package/src/lib/interfaces/member/operational.d.ts.map +1 -0
- package/src/lib/interfaces/member/operational.js +3 -0
- package/src/lib/interfaces/member/operational.js.map +1 -0
- package/src/lib/interfaces/mongo-errors.d.ts +9 -0
- package/src/lib/interfaces/mongo-errors.d.ts.map +1 -0
- package/src/lib/interfaces/mongo-errors.js +3 -0
- package/src/lib/interfaces/mongo-errors.js.map +1 -0
- package/src/lib/interfaces/multi-encrypted-message.d.ts +8 -0
- package/src/lib/interfaces/multi-encrypted-message.d.ts.map +1 -0
- package/src/lib/interfaces/multi-encrypted-message.js +3 -0
- package/src/lib/interfaces/multi-encrypted-message.js.map +1 -0
- package/src/lib/interfaces/multi-encrypted-parsed-header.d.ts +24 -0
- package/src/lib/interfaces/multi-encrypted-parsed-header.d.ts.map +1 -0
- package/src/lib/interfaces/multi-encrypted-parsed-header.js +3 -0
- package/src/lib/interfaces/multi-encrypted-parsed-header.js.map +1 -0
- package/src/lib/interfaces/pbkdf2-result.d.ts +6 -0
- package/src/lib/interfaces/pbkdf2-result.d.ts.map +1 -0
- package/src/lib/interfaces/pbkdf2-result.js +3 -0
- package/src/lib/interfaces/pbkdf2-result.js.map +1 -0
- package/src/lib/interfaces/request-user.d.ts +51 -0
- package/src/lib/interfaces/request-user.d.ts.map +1 -0
- package/src/lib/interfaces/request-user.js +3 -0
- package/src/lib/interfaces/request-user.js.map +1 -0
- package/src/lib/interfaces/responses/api-backup-codes-response.d.ts +11 -0
- package/src/lib/interfaces/responses/api-backup-codes-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-backup-codes-response.js +3 -0
- package/src/lib/interfaces/responses/api-backup-codes-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-challenge-response.d.ts +11 -0
- package/src/lib/interfaces/responses/api-challenge-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-challenge-response.js +3 -0
- package/src/lib/interfaces/responses/api-challenge-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-code-count-response.d.ts +11 -0
- package/src/lib/interfaces/responses/api-code-count-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-code-count-response.js +3 -0
- package/src/lib/interfaces/responses/api-code-count-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-login-response.d.ts +20 -0
- package/src/lib/interfaces/responses/api-login-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-login-response.js +3 -0
- package/src/lib/interfaces/responses/api-login-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-mnemonic-response.d.ts +11 -0
- package/src/lib/interfaces/responses/api-mnemonic-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-mnemonic-response.js +3 -0
- package/src/lib/interfaces/responses/api-mnemonic-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-registration-response.d.ts +16 -0
- package/src/lib/interfaces/responses/api-registration-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-registration-response.js +3 -0
- package/src/lib/interfaces/responses/api-registration-response.js.map +1 -0
- package/src/lib/interfaces/responses/api-request-user-response.d.ts +12 -0
- package/src/lib/interfaces/responses/api-request-user-response.d.ts.map +1 -0
- package/src/lib/interfaces/responses/api-request-user-response.js +3 -0
- package/src/lib/interfaces/responses/api-request-user-response.js.map +1 -0
- package/src/lib/interfaces/responses/index.d.ts +9 -0
- package/src/lib/interfaces/responses/index.d.ts.map +1 -0
- package/src/lib/interfaces/responses/index.js +11 -0
- package/src/lib/interfaces/responses/index.js.map +1 -0
- package/src/lib/interfaces/schema.d.ts +28 -0
- package/src/lib/interfaces/schema.d.ts.map +1 -0
- package/src/lib/interfaces/schema.js +3 -0
- package/src/lib/interfaces/schema.js.map +1 -0
- package/src/lib/interfaces/server-init-result.d.ts +34 -0
- package/src/lib/interfaces/server-init-result.d.ts.map +1 -0
- package/src/lib/interfaces/server-init-result.js +3 -0
- package/src/lib/interfaces/server-init-result.js.map +1 -0
- package/src/lib/interfaces/single-encrypted-parsed-header.d.ts +35 -0
- package/src/lib/interfaces/single-encrypted-parsed-header.d.ts.map +1 -0
- package/src/lib/interfaces/single-encrypted-parsed-header.js +3 -0
- package/src/lib/interfaces/single-encrypted-parsed-header.js.map +1 -0
- package/src/lib/interfaces/status-code-response.d.ts +7 -0
- package/src/lib/interfaces/status-code-response.d.ts.map +1 -0
- package/src/lib/interfaces/status-code-response.js +3 -0
- package/src/lib/interfaces/status-code-response.js.map +1 -0
- package/src/lib/interfaces/symmetric-encryption-results.d.ts +5 -0
- package/src/lib/interfaces/symmetric-encryption-results.d.ts.map +1 -0
- package/src/lib/interfaces/symmetric-encryption-results.js +3 -0
- package/src/lib/interfaces/symmetric-encryption-results.js.map +1 -0
- package/src/lib/interfaces/token-user.d.ts +9 -0
- package/src/lib/interfaces/token-user.d.ts.map +1 -0
- package/src/lib/interfaces/token-user.js +3 -0
- package/src/lib/interfaces/token-user.js.map +1 -0
- package/src/lib/interfaces/wallet-seed.d.ts +7 -0
- package/src/lib/interfaces/wallet-seed.d.ts.map +1 -0
- package/src/lib/interfaces/wallet-seed.js +3 -0
- package/src/lib/interfaces/wallet-seed.js.map +1 -0
- package/src/lib/middlewares/cleanup-crypto.d.ts +7 -0
- package/src/lib/middlewares/cleanup-crypto.d.ts.map +1 -0
- package/src/lib/middlewares/cleanup-crypto.js +32 -0
- package/src/lib/middlewares/cleanup-crypto.js.map +1 -0
- package/src/lib/middlewares/index.d.ts +3 -0
- package/src/lib/middlewares/index.d.ts.map +1 -0
- package/src/lib/middlewares/index.js +10 -0
- package/src/lib/middlewares/index.js.map +1 -0
- package/src/lib/middlewares.d.ts +19 -0
- package/src/lib/middlewares.d.ts.map +1 -0
- package/src/lib/middlewares.js +95 -0
- package/src/lib/middlewares.js.map +1 -0
- package/src/lib/models/email-token.d.ts +47 -0
- package/src/lib/models/email-token.d.ts.map +1 -0
- package/src/lib/models/email-token.js +11 -0
- package/src/lib/models/email-token.js.map +1 -0
- package/src/lib/models/mnemonic.d.ts +26 -0
- package/src/lib/models/mnemonic.d.ts.map +1 -0
- package/src/lib/models/mnemonic.js +11 -0
- package/src/lib/models/mnemonic.js.map +1 -0
- package/src/lib/models/role.d.ts +23 -0
- package/src/lib/models/role.d.ts.map +1 -0
- package/src/lib/models/role.js +8 -0
- package/src/lib/models/role.js.map +1 -0
- package/src/lib/models/used-direct-login-token.d.ts +29 -0
- package/src/lib/models/used-direct-login-token.d.ts.map +1 -0
- package/src/lib/models/used-direct-login-token.js +11 -0
- package/src/lib/models/used-direct-login-token.js.map +1 -0
- package/src/lib/models/user-role.d.ts +59 -0
- package/src/lib/models/user-role.d.ts.map +1 -0
- package/src/lib/models/user-role.js +11 -0
- package/src/lib/models/user-role.js.map +1 -0
- package/src/lib/models/user.d.ts +132 -0
- package/src/lib/models/user.d.ts.map +1 -0
- package/src/lib/models/user.js +8 -0
- package/src/lib/models/user.js.map +1 -0
- package/src/lib/routers/api.d.ts +21 -0
- package/src/lib/routers/api.d.ts.map +1 -0
- package/src/lib/routers/api.js +41 -0
- package/src/lib/routers/api.js.map +1 -0
- package/src/lib/routers/app.d.ts +22 -0
- package/src/lib/routers/app.d.ts.map +1 -0
- package/src/lib/routers/app.js +131 -0
- package/src/lib/routers/app.js.map +1 -0
- package/src/lib/routers/base.d.ts +8 -0
- package/src/lib/routers/base.d.ts.map +1 -0
- package/src/lib/routers/base.js +12 -0
- package/src/lib/routers/base.js.map +1 -0
- package/src/lib/routers/messageRouter.d.ts +4 -0
- package/src/lib/routers/messageRouter.d.ts.map +1 -0
- package/src/lib/routers/messageRouter.js +81 -0
- package/src/lib/routers/messageRouter.js.map +1 -0
- package/src/lib/schemas/email-token.d.ts +44 -0
- package/src/lib/schemas/email-token.d.ts.map +1 -0
- package/src/lib/schemas/email-token.js +29 -0
- package/src/lib/schemas/email-token.js.map +1 -0
- package/src/lib/schemas/mnemonic.d.ts +22 -0
- package/src/lib/schemas/mnemonic.d.ts.map +1 -0
- package/src/lib/schemas/mnemonic.js +21 -0
- package/src/lib/schemas/mnemonic.js.map +1 -0
- package/src/lib/schemas/role.d.ts +21 -0
- package/src/lib/schemas/role.d.ts.map +1 -0
- package/src/lib/schemas/role.js +36 -0
- package/src/lib/schemas/role.js.map +1 -0
- package/src/lib/schemas/schema.d.ts +3 -0
- package/src/lib/schemas/schema.d.ts.map +1 -0
- package/src/lib/schemas/schema.js +74 -0
- package/src/lib/schemas/schema.js.map +1 -0
- package/src/lib/schemas/used-direct-login-token.d.ts +25 -0
- package/src/lib/schemas/used-direct-login-token.d.ts.map +1 -0
- package/src/lib/schemas/used-direct-login-token.js +14 -0
- package/src/lib/schemas/used-direct-login-token.js.map +1 -0
- package/src/lib/schemas/user-role.d.ts +55 -0
- package/src/lib/schemas/user-role.d.ts.map +1 -0
- package/src/lib/schemas/user-role.js +22 -0
- package/src/lib/schemas/user-role.js.map +1 -0
- package/src/lib/schemas/user.d.ts +129 -0
- package/src/lib/schemas/user.d.ts.map +1 -0
- package/src/lib/schemas/user.js +84 -0
- package/src/lib/schemas/user.js.map +1 -0
- package/src/lib/services/diskQuorumService.d.ts +55 -0
- package/src/lib/services/diskQuorumService.d.ts.map +1 -0
- package/src/lib/services/diskQuorumService.js +247 -0
- package/src/lib/services/diskQuorumService.js.map +1 -0
- package/src/lib/services/email.d.ts +27 -0
- package/src/lib/services/email.d.ts.map +1 -0
- package/src/lib/services/email.js +81 -0
- package/src/lib/services/email.js.map +1 -0
- package/src/lib/services/eventNotificationSystem.d.ts +46 -0
- package/src/lib/services/eventNotificationSystem.d.ts.map +1 -0
- package/src/lib/services/eventNotificationSystem.js +83 -0
- package/src/lib/services/eventNotificationSystem.js.map +1 -0
- package/src/lib/services/fec.d.ts +87 -0
- package/src/lib/services/fec.d.ts.map +1 -0
- package/src/lib/services/fec.js +256 -0
- package/src/lib/services/fec.js.map +1 -0
- package/src/lib/services/fecServiceFactory.d.ts +89 -0
- package/src/lib/services/fecServiceFactory.d.ts.map +1 -0
- package/src/lib/services/fecServiceFactory.js +154 -0
- package/src/lib/services/fecServiceFactory.js.map +1 -0
- package/src/lib/services/fecUsageExample.d.ts +33 -0
- package/src/lib/services/fecUsageExample.d.ts.map +1 -0
- package/src/lib/services/fecUsageExample.js +79 -0
- package/src/lib/services/fecUsageExample.js.map +1 -0
- package/src/lib/services/keyWrapping.d.ts +61 -0
- package/src/lib/services/keyWrapping.d.ts.map +1 -0
- package/src/lib/services/keyWrapping.js +297 -0
- package/src/lib/services/keyWrapping.js.map +1 -0
- package/src/lib/services/messageEventsWebSocketHandler.d.ts +15 -0
- package/src/lib/services/messageEventsWebSocketHandler.d.ts.map +1 -0
- package/src/lib/services/messageEventsWebSocketHandler.js +59 -0
- package/src/lib/services/messageEventsWebSocketHandler.js.map +1 -0
- package/src/lib/services/messagePassingService.d.ts +31 -0
- package/src/lib/services/messagePassingService.d.ts.map +1 -0
- package/src/lib/services/messagePassingService.js +88 -0
- package/src/lib/services/messagePassingService.js.map +1 -0
- package/src/lib/services/nativeRsFecService.d.ts +79 -0
- package/src/lib/services/nativeRsFecService.d.ts.map +1 -0
- package/src/lib/services/nativeRsFecService.js +295 -0
- package/src/lib/services/nativeRsFecService.js.map +1 -0
- package/src/lib/services/pbkdf2.d.ts +6 -0
- package/src/lib/services/pbkdf2.d.ts.map +1 -0
- package/src/lib/services/pbkdf2.js +31 -0
- package/src/lib/services/pbkdf2.js.map +1 -0
- package/src/lib/services/user.d.ts +10 -0
- package/src/lib/services/user.d.ts.map +1 -0
- package/src/lib/services/user.js +11 -0
- package/src/lib/services/user.js.map +1 -0
- package/src/lib/services/webSocketMessageServer.d.ts +53 -0
- package/src/lib/services/webSocketMessageServer.d.ts.map +1 -0
- package/src/lib/services/webSocketMessageServer.js +159 -0
- package/src/lib/services/webSocketMessageServer.js.map +1 -0
- package/src/lib/shared-types.d.ts +82 -0
- package/src/lib/shared-types.d.ts.map +1 -0
- package/src/lib/shared-types.js +6 -0
- package/src/lib/shared-types.js.map +1 -0
- package/src/lib/stores/availabilityAwareBlockStore.d.ts +287 -0
- package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -0
- package/src/lib/stores/availabilityAwareBlockStore.js +458 -0
- package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -0
- package/src/lib/stores/diskBlockAsyncStore.d.ts +212 -0
- package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -0
- package/src/lib/stores/diskBlockAsyncStore.js +803 -0
- package/src/lib/stores/diskBlockAsyncStore.js.map +1 -0
- package/src/lib/stores/diskBlockMetadataStore.d.ts +125 -0
- package/src/lib/stores/diskBlockMetadataStore.d.ts.map +1 -0
- package/src/lib/stores/diskBlockMetadataStore.js +347 -0
- package/src/lib/stores/diskBlockMetadataStore.js.map +1 -0
- package/src/lib/stores/diskBlockStore.d.ts +41 -0
- package/src/lib/stores/diskBlockStore.d.ts.map +1 -0
- package/src/lib/stores/diskBlockStore.js +87 -0
- package/src/lib/stores/diskBlockStore.js.map +1 -0
- package/src/lib/stores/diskBlockSyncStore.d.ts +12 -0
- package/src/lib/stores/diskBlockSyncStore.d.ts.map +1 -0
- package/src/lib/stores/diskBlockSyncStore.js +55 -0
- package/src/lib/stores/diskBlockSyncStore.js.map +1 -0
- package/src/lib/stores/diskCblStore.d.ts +30 -0
- package/src/lib/stores/diskCblStore.d.ts.map +1 -0
- package/src/lib/stores/diskCblStore.js +139 -0
- package/src/lib/stores/diskCblStore.js.map +1 -0
- package/src/lib/stores/diskMessageMetadataStore.d.ts +17 -0
- package/src/lib/stores/diskMessageMetadataStore.d.ts.map +1 -0
- package/src/lib/stores/diskMessageMetadataStore.js +214 -0
- package/src/lib/stores/diskMessageMetadataStore.js.map +1 -0
- package/src/lib/transforms/checksumTransform.d.ts +8 -0
- package/src/lib/transforms/checksumTransform.d.ts.map +1 -0
- package/src/lib/transforms/checksumTransform.js +22 -0
- package/src/lib/transforms/checksumTransform.js.map +1 -0
- package/src/lib/transforms/memoryWritableStream.d.ts +8 -0
- package/src/lib/transforms/memoryWritableStream.d.ts.map +1 -0
- package/src/lib/transforms/memoryWritableStream.js +20 -0
- package/src/lib/transforms/memoryWritableStream.js.map +1 -0
- package/src/lib/transforms/xorMultipleTransform.d.ts +12 -0
- package/src/lib/transforms/xorMultipleTransform.d.ts.map +1 -0
- package/src/lib/transforms/xorMultipleTransform.js +52 -0
- package/src/lib/transforms/xorMultipleTransform.js.map +1 -0
- package/src/lib/utils/type-converters.d.ts +10 -0
- package/src/lib/utils/type-converters.d.ts.map +1 -0
- package/src/lib/utils/type-converters.js +42 -0
- package/src/lib/utils/type-converters.js.map +1 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Block Registry Implementation
|
|
3
|
+
*
|
|
4
|
+
* Provides a fast local index of blocks stored on the node.
|
|
5
|
+
* Supports O(1) lookups, Bloom filter export, and manifest generation.
|
|
6
|
+
*
|
|
7
|
+
* @see Requirements 3.1, 3.2, 3.3, 3.4, 3.5, 4.1, 4.7
|
|
8
|
+
*/
|
|
9
|
+
import { BlockManifest, BloomFilter, IBlockRegistry } from '@brightchain/brightchain-lib';
|
|
10
|
+
/**
|
|
11
|
+
* Default configuration for the Bloom filter.
|
|
12
|
+
*/
|
|
13
|
+
export interface BloomFilterConfig {
|
|
14
|
+
/**
|
|
15
|
+
* Target false positive rate (default: 0.01 = 1%)
|
|
16
|
+
*/
|
|
17
|
+
falsePositiveRate: number;
|
|
18
|
+
/**
|
|
19
|
+
* Expected number of items (used for initial sizing)
|
|
20
|
+
*/
|
|
21
|
+
expectedItems: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Default Bloom filter configuration.
|
|
25
|
+
*/
|
|
26
|
+
export declare const DEFAULT_BLOOM_FILTER_CONFIG: BloomFilterConfig;
|
|
27
|
+
/**
|
|
28
|
+
* Block Registry Implementation
|
|
29
|
+
*
|
|
30
|
+
* Maintains a fast in-memory Set-based index of all locally stored block IDs.
|
|
31
|
+
* Provides O(1) lookups, Bloom filter export for efficient network queries,
|
|
32
|
+
* and manifest export for full synchronization.
|
|
33
|
+
*
|
|
34
|
+
* @see Requirements 3.1, 3.2, 3.3, 3.4, 3.5, 4.1, 4.7
|
|
35
|
+
*/
|
|
36
|
+
export declare class BlockRegistry implements IBlockRegistry {
|
|
37
|
+
/**
|
|
38
|
+
* In-memory Set of local block IDs for O(1) lookups.
|
|
39
|
+
*/
|
|
40
|
+
private readonly localBlocks;
|
|
41
|
+
/**
|
|
42
|
+
* Cached Bloom filter (regenerated when blocks change).
|
|
43
|
+
*/
|
|
44
|
+
private cachedBloomFilter;
|
|
45
|
+
/**
|
|
46
|
+
* Flag indicating if the Bloom filter needs regeneration.
|
|
47
|
+
*/
|
|
48
|
+
private bloomFilterDirty;
|
|
49
|
+
/**
|
|
50
|
+
* Node ID for manifest generation.
|
|
51
|
+
*/
|
|
52
|
+
private readonly nodeId;
|
|
53
|
+
/**
|
|
54
|
+
* Store path for rebuilding from disk.
|
|
55
|
+
*/
|
|
56
|
+
private readonly storePath;
|
|
57
|
+
/**
|
|
58
|
+
* Block size string for directory structure.
|
|
59
|
+
*/
|
|
60
|
+
private readonly blockSizeString;
|
|
61
|
+
/**
|
|
62
|
+
* Bloom filter configuration.
|
|
63
|
+
*/
|
|
64
|
+
private readonly bloomConfig;
|
|
65
|
+
/**
|
|
66
|
+
* Create a new BlockRegistry.
|
|
67
|
+
*
|
|
68
|
+
* @param nodeId - The unique identifier of the local node
|
|
69
|
+
* @param storePath - The base path for block storage
|
|
70
|
+
* @param blockSizeString - The block size string (e.g., 'small', 'medium')
|
|
71
|
+
* @param bloomConfig - Optional Bloom filter configuration
|
|
72
|
+
*/
|
|
73
|
+
constructor(nodeId: string, storePath: string, blockSizeString: string, bloomConfig?: BloomFilterConfig);
|
|
74
|
+
/**
|
|
75
|
+
* Check if a block exists locally (O(1) lookup).
|
|
76
|
+
*
|
|
77
|
+
* @param blockId - The block ID to check
|
|
78
|
+
* @returns true if the block exists locally
|
|
79
|
+
*/
|
|
80
|
+
hasLocal(blockId: string): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Add a block to the local registry.
|
|
83
|
+
*
|
|
84
|
+
* @param blockId - The block ID to add
|
|
85
|
+
*/
|
|
86
|
+
addLocal(blockId: string): void;
|
|
87
|
+
/**
|
|
88
|
+
* Remove a block from the local registry.
|
|
89
|
+
*
|
|
90
|
+
* @param blockId - The block ID to remove
|
|
91
|
+
*/
|
|
92
|
+
removeLocal(blockId: string): void;
|
|
93
|
+
/**
|
|
94
|
+
* Get count of local blocks.
|
|
95
|
+
*
|
|
96
|
+
* @returns The number of blocks in the local registry
|
|
97
|
+
*/
|
|
98
|
+
getLocalCount(): number;
|
|
99
|
+
/**
|
|
100
|
+
* Get all local block IDs (for full sync).
|
|
101
|
+
*
|
|
102
|
+
* @returns Array of all block IDs in the local registry
|
|
103
|
+
*/
|
|
104
|
+
getLocalBlockIds(): string[];
|
|
105
|
+
/**
|
|
106
|
+
* Export a Bloom filter representation of the registry.
|
|
107
|
+
*
|
|
108
|
+
* @returns A Bloom filter representing all local block IDs
|
|
109
|
+
*/
|
|
110
|
+
exportBloomFilter(): BloomFilter;
|
|
111
|
+
/**
|
|
112
|
+
* Regenerate the Bloom filter from the current block set.
|
|
113
|
+
*/
|
|
114
|
+
private regenerateBloomFilter;
|
|
115
|
+
/**
|
|
116
|
+
* Export a complete manifest of all local blocks.
|
|
117
|
+
*
|
|
118
|
+
* @returns A manifest containing all local block IDs
|
|
119
|
+
*/
|
|
120
|
+
exportManifest(): BlockManifest;
|
|
121
|
+
/**
|
|
122
|
+
* Compute a checksum for the manifest.
|
|
123
|
+
* The checksum changes if and only if the block set changes.
|
|
124
|
+
*
|
|
125
|
+
* @param blockIds - Sorted array of block IDs
|
|
126
|
+
* @returns SHA-256 checksum of the block IDs
|
|
127
|
+
*/
|
|
128
|
+
private computeManifestChecksum;
|
|
129
|
+
/**
|
|
130
|
+
* Rebuild the registry from disk storage.
|
|
131
|
+
* Scans the block storage directory to find all stored blocks.
|
|
132
|
+
*
|
|
133
|
+
* @returns Promise that resolves when rebuild is complete
|
|
134
|
+
*/
|
|
135
|
+
rebuild(): Promise<void>;
|
|
136
|
+
/**
|
|
137
|
+
* Clear the registry (for testing purposes).
|
|
138
|
+
*/
|
|
139
|
+
clear(): void;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=blockRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockRegistry.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/blockRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,aAAa,EACb,WAAW,EACX,cAAc,EACf,MAAM,8BAA8B,CAAC;AAOtC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,iBAGzC,CAAC;AAgDF;;;;;;;;GAQG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IAEtD;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAAmC;IAE5D;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAAQ;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAEhD;;;;;;;OAOG;gBAED,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,WAAW,GAAE,iBAA+C;IAQ9D;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIlC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO/B;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOlC;;;;OAIG;IACH,aAAa,IAAI,MAAM;IAIvB;;;;OAIG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;;;OAIG;IACH,iBAAiB,IAAI,WAAW;IAOhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;;;OAIG;IACH,cAAc,IAAI,aAAa;IAY/B;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqD9B;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Block Registry Implementation
|
|
4
|
+
*
|
|
5
|
+
* Provides a fast local index of blocks stored on the node.
|
|
6
|
+
* Supports O(1) lookups, Bloom filter export, and manifest generation.
|
|
7
|
+
*
|
|
8
|
+
* @see Requirements 3.1, 3.2, 3.3, 3.4, 3.5, 4.1, 4.7
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.BlockRegistry = exports.DEFAULT_BLOOM_FILTER_CONFIG = void 0;
|
|
12
|
+
const bloom_filters_1 = require("bloom-filters");
|
|
13
|
+
const crypto_1 = require("crypto");
|
|
14
|
+
const fs_1 = require("fs");
|
|
15
|
+
const promises_1 = require("fs/promises");
|
|
16
|
+
const path_1 = require("path");
|
|
17
|
+
/**
|
|
18
|
+
* Default Bloom filter configuration.
|
|
19
|
+
*/
|
|
20
|
+
exports.DEFAULT_BLOOM_FILTER_CONFIG = {
|
|
21
|
+
falsePositiveRate: 0.01,
|
|
22
|
+
expectedItems: 10000,
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Wrapper class that implements the BloomFilter interface.
|
|
26
|
+
* Wraps the bloom-filters library implementation.
|
|
27
|
+
*/
|
|
28
|
+
class BloomFilterWrapper {
|
|
29
|
+
constructor(filter, itemCount) {
|
|
30
|
+
this.filter = filter;
|
|
31
|
+
this.hashCount = filter['_nbHashes'];
|
|
32
|
+
this.bitCount = filter.size;
|
|
33
|
+
this.itemCount = itemCount;
|
|
34
|
+
// Serialize the filter data to base64
|
|
35
|
+
this.data = this.serializeFilter();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Serialize the Bloom filter to a base64 string.
|
|
39
|
+
*/
|
|
40
|
+
serializeFilter() {
|
|
41
|
+
// Export the filter to JSON and encode as base64
|
|
42
|
+
const exported = this.filter.saveAsJSON();
|
|
43
|
+
return Buffer.from(JSON.stringify(exported)).toString('base64');
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Check if an item might exist in the filter.
|
|
47
|
+
*/
|
|
48
|
+
mightContain(blockId) {
|
|
49
|
+
return this.filter.has(blockId);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a BloomFilterWrapper from serialized data.
|
|
53
|
+
*/
|
|
54
|
+
static fromSerialized(data) {
|
|
55
|
+
const json = JSON.parse(Buffer.from(data, 'base64').toString('utf-8'));
|
|
56
|
+
const filter = bloom_filters_1.BloomFilter.fromJSON(json);
|
|
57
|
+
return new BloomFilterWrapper(filter, json._itemCount || 0);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Block Registry Implementation
|
|
62
|
+
*
|
|
63
|
+
* Maintains a fast in-memory Set-based index of all locally stored block IDs.
|
|
64
|
+
* Provides O(1) lookups, Bloom filter export for efficient network queries,
|
|
65
|
+
* and manifest export for full synchronization.
|
|
66
|
+
*
|
|
67
|
+
* @see Requirements 3.1, 3.2, 3.3, 3.4, 3.5, 4.1, 4.7
|
|
68
|
+
*/
|
|
69
|
+
class BlockRegistry {
|
|
70
|
+
/**
|
|
71
|
+
* Create a new BlockRegistry.
|
|
72
|
+
*
|
|
73
|
+
* @param nodeId - The unique identifier of the local node
|
|
74
|
+
* @param storePath - The base path for block storage
|
|
75
|
+
* @param blockSizeString - The block size string (e.g., 'small', 'medium')
|
|
76
|
+
* @param bloomConfig - Optional Bloom filter configuration
|
|
77
|
+
*/
|
|
78
|
+
constructor(nodeId, storePath, blockSizeString, bloomConfig = exports.DEFAULT_BLOOM_FILTER_CONFIG) {
|
|
79
|
+
/**
|
|
80
|
+
* In-memory Set of local block IDs for O(1) lookups.
|
|
81
|
+
*/
|
|
82
|
+
this.localBlocks = new Set();
|
|
83
|
+
/**
|
|
84
|
+
* Cached Bloom filter (regenerated when blocks change).
|
|
85
|
+
*/
|
|
86
|
+
this.cachedBloomFilter = null;
|
|
87
|
+
/**
|
|
88
|
+
* Flag indicating if the Bloom filter needs regeneration.
|
|
89
|
+
*/
|
|
90
|
+
this.bloomFilterDirty = true;
|
|
91
|
+
this.nodeId = nodeId;
|
|
92
|
+
this.storePath = storePath;
|
|
93
|
+
this.blockSizeString = blockSizeString;
|
|
94
|
+
this.bloomConfig = bloomConfig;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Check if a block exists locally (O(1) lookup).
|
|
98
|
+
*
|
|
99
|
+
* @param blockId - The block ID to check
|
|
100
|
+
* @returns true if the block exists locally
|
|
101
|
+
*/
|
|
102
|
+
hasLocal(blockId) {
|
|
103
|
+
return this.localBlocks.has(blockId);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Add a block to the local registry.
|
|
107
|
+
*
|
|
108
|
+
* @param blockId - The block ID to add
|
|
109
|
+
*/
|
|
110
|
+
addLocal(blockId) {
|
|
111
|
+
if (!this.localBlocks.has(blockId)) {
|
|
112
|
+
this.localBlocks.add(blockId);
|
|
113
|
+
this.bloomFilterDirty = true;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Remove a block from the local registry.
|
|
118
|
+
*
|
|
119
|
+
* @param blockId - The block ID to remove
|
|
120
|
+
*/
|
|
121
|
+
removeLocal(blockId) {
|
|
122
|
+
if (this.localBlocks.has(blockId)) {
|
|
123
|
+
this.localBlocks.delete(blockId);
|
|
124
|
+
this.bloomFilterDirty = true;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get count of local blocks.
|
|
129
|
+
*
|
|
130
|
+
* @returns The number of blocks in the local registry
|
|
131
|
+
*/
|
|
132
|
+
getLocalCount() {
|
|
133
|
+
return this.localBlocks.size;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get all local block IDs (for full sync).
|
|
137
|
+
*
|
|
138
|
+
* @returns Array of all block IDs in the local registry
|
|
139
|
+
*/
|
|
140
|
+
getLocalBlockIds() {
|
|
141
|
+
return Array.from(this.localBlocks);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Export a Bloom filter representation of the registry.
|
|
145
|
+
*
|
|
146
|
+
* @returns A Bloom filter representing all local block IDs
|
|
147
|
+
*/
|
|
148
|
+
exportBloomFilter() {
|
|
149
|
+
if (this.bloomFilterDirty || !this.cachedBloomFilter) {
|
|
150
|
+
this.regenerateBloomFilter();
|
|
151
|
+
}
|
|
152
|
+
return this.cachedBloomFilter;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Regenerate the Bloom filter from the current block set.
|
|
156
|
+
*/
|
|
157
|
+
regenerateBloomFilter() {
|
|
158
|
+
const itemCount = Math.max(this.localBlocks.size, this.bloomConfig.expectedItems);
|
|
159
|
+
const filter = bloom_filters_1.BloomFilter.create(itemCount, this.bloomConfig.falsePositiveRate);
|
|
160
|
+
for (const blockId of this.localBlocks) {
|
|
161
|
+
filter.add(blockId);
|
|
162
|
+
}
|
|
163
|
+
this.cachedBloomFilter = new BloomFilterWrapper(filter, this.localBlocks.size);
|
|
164
|
+
this.bloomFilterDirty = false;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Export a complete manifest of all local blocks.
|
|
168
|
+
*
|
|
169
|
+
* @returns A manifest containing all local block IDs
|
|
170
|
+
*/
|
|
171
|
+
exportManifest() {
|
|
172
|
+
const blockIds = this.getLocalBlockIds().sort();
|
|
173
|
+
const checksum = this.computeManifestChecksum(blockIds);
|
|
174
|
+
return {
|
|
175
|
+
nodeId: this.nodeId,
|
|
176
|
+
blockIds,
|
|
177
|
+
generatedAt: new Date(),
|
|
178
|
+
checksum,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Compute a checksum for the manifest.
|
|
183
|
+
* The checksum changes if and only if the block set changes.
|
|
184
|
+
*
|
|
185
|
+
* @param blockIds - Sorted array of block IDs
|
|
186
|
+
* @returns SHA-256 checksum of the block IDs
|
|
187
|
+
*/
|
|
188
|
+
computeManifestChecksum(blockIds) {
|
|
189
|
+
const hash = (0, crypto_1.createHash)('sha256');
|
|
190
|
+
// Include the count to detect additions/removals
|
|
191
|
+
hash.update(blockIds.length.toString());
|
|
192
|
+
// Hash all block IDs in sorted order
|
|
193
|
+
for (const blockId of blockIds) {
|
|
194
|
+
hash.update(blockId);
|
|
195
|
+
}
|
|
196
|
+
return hash.digest('hex');
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Rebuild the registry from disk storage.
|
|
200
|
+
* Scans the block storage directory to find all stored blocks.
|
|
201
|
+
*
|
|
202
|
+
* @returns Promise that resolves when rebuild is complete
|
|
203
|
+
*/
|
|
204
|
+
async rebuild() {
|
|
205
|
+
// Clear existing registry
|
|
206
|
+
this.localBlocks.clear();
|
|
207
|
+
this.bloomFilterDirty = true;
|
|
208
|
+
const basePath = (0, path_1.join)(this.storePath, this.blockSizeString);
|
|
209
|
+
if (!(0, fs_1.existsSync)(basePath)) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
try {
|
|
213
|
+
// Scan first level directories (first character of checksum)
|
|
214
|
+
const firstLevelDirs = await (0, promises_1.readdir)(basePath);
|
|
215
|
+
for (const firstDir of firstLevelDirs) {
|
|
216
|
+
const firstLevelPath = (0, path_1.join)(basePath, firstDir);
|
|
217
|
+
const firstStats = await (0, promises_1.stat)(firstLevelPath);
|
|
218
|
+
if (!firstStats.isDirectory()) {
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
// Scan second level directories (second character of checksum)
|
|
222
|
+
const secondLevelDirs = await (0, promises_1.readdir)(firstLevelPath);
|
|
223
|
+
for (const secondDir of secondLevelDirs) {
|
|
224
|
+
const secondLevelPath = (0, path_1.join)(firstLevelPath, secondDir);
|
|
225
|
+
const secondStats = await (0, promises_1.stat)(secondLevelPath);
|
|
226
|
+
if (!secondStats.isDirectory()) {
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
// Scan block files (exclude metadata and parity files)
|
|
230
|
+
const files = await (0, promises_1.readdir)(secondLevelPath);
|
|
231
|
+
for (const file of files) {
|
|
232
|
+
// Skip metadata files (.m.json) and parity files (.p0, .p1, etc.)
|
|
233
|
+
if (file.endsWith('.m.json') || file.includes('.p')) {
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
// The filename is the block ID (hex string)
|
|
237
|
+
this.localBlocks.add(file);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
// If we can't read the directory structure, just return with empty registry
|
|
244
|
+
// This handles cases where the store is empty or corrupted
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Clear the registry (for testing purposes).
|
|
249
|
+
*/
|
|
250
|
+
clear() {
|
|
251
|
+
this.localBlocks.clear();
|
|
252
|
+
this.cachedBloomFilter = null;
|
|
253
|
+
this.bloomFilterDirty = true;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
exports.BlockRegistry = BlockRegistry;
|
|
257
|
+
//# sourceMappingURL=blockRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockRegistry.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/blockRegistry.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAOH,iDAA+D;AAC/D,mCAAoC;AACpC,2BAAgC;AAChC,0CAA4C;AAC5C,+BAA4B;AAiB5B;;GAEG;AACU,QAAA,2BAA2B,GAAsB;IAC5D,iBAAiB,EAAE,IAAI;IACvB,aAAa,EAAE,KAAK;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,kBAAkB;IAOtB,YAAY,MAAuB,EAAE,SAAiB;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAW,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,sCAAsC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,iDAAiD;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAe;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,IAAY;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,2BAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,IAAI,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAa,aAAa;IAoCxB;;;;;;;OAOG;IACH,YACE,MAAc,EACd,SAAiB,EACjB,eAAuB,EACvB,cAAiC,mCAA2B;QA/C9D;;WAEG;QACc,gBAAW,GAAgB,IAAI,GAAG,EAAE,CAAC;QAEtD;;WAEG;QACK,sBAAiB,GAA8B,IAAI,CAAC;QAE5D;;WAEG;QACK,qBAAgB,GAAG,IAAI,CAAC;QAoC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,OAAe;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,OAAe;QACzB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC,iBAAkB,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,IAAI,CAAC,WAAW,CAAC,aAAa,CAC/B,CAAC;QACF,MAAM,MAAM,GAAG,2BAAe,CAAC,MAAM,CACnC,SAAS,EACT,IAAI,CAAC,WAAW,CAAC,iBAAiB,CACnC,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,kBAAkB,CAC7C,MAAM,EACN,IAAI,CAAC,WAAW,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,cAAc;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAExD,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ;YACR,WAAW,EAAE,IAAI,IAAI,EAAE;YACvB,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,uBAAuB,CAAC,QAAkB;QAChD,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC;QAClC,iDAAiD;QACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxC,qCAAqC;QACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO;QACX,0BAA0B;QAC1B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAE5D,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,6DAA6D;YAC7D,MAAM,cAAc,GAAG,MAAM,IAAA,kBAAO,EAAC,QAAQ,CAAC,CAAC;YAE/C,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;gBACtC,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAChD,MAAM,UAAU,GAAG,MAAM,IAAA,eAAI,EAAC,cAAc,CAAC,CAAC;gBAE9C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC9B,SAAS;gBACX,CAAC;gBAED,+DAA+D;gBAC/D,MAAM,eAAe,GAAG,MAAM,IAAA,kBAAO,EAAC,cAAc,CAAC,CAAC;gBAEtD,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;oBACxC,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;oBACxD,MAAM,WAAW,GAAG,MAAM,IAAA,eAAI,EAAC,eAAe,CAAC,CAAC;oBAEhD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;wBAC/B,SAAS;oBACX,CAAC;oBAED,uDAAuD;oBACvD,MAAM,KAAK,GAAG,MAAM,IAAA,kBAAO,EAAC,eAAe,CAAC,CAAC;oBAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,kEAAkE;wBAClE,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;4BACpD,SAAS;wBACX,CAAC;wBAED,4CAA4C;wBAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4EAA4E;YAC5E,2DAA2D;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC/B,CAAC;CACF;AAtPD,sCAsPC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Configuration Validation
|
|
3
|
+
*
|
|
4
|
+
* Provides validation functions for availability system configurations.
|
|
5
|
+
* Ensures all configuration values are valid and returns descriptive error messages.
|
|
6
|
+
*
|
|
7
|
+
* @see Requirements 13.1, 13.2, 13.3, 13.4, 13.5, 13.6
|
|
8
|
+
*/
|
|
9
|
+
import { DiscoveryConfig, GossipConfig, HeartbeatConfig } from '@brightchain/brightchain-lib';
|
|
10
|
+
/**
|
|
11
|
+
* Configuration validation error.
|
|
12
|
+
* Contains a descriptive error message about what is invalid.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ConfigValidationError extends Error {
|
|
15
|
+
constructor(message: string);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Validate DiscoveryConfig.
|
|
19
|
+
* Ensures all values are positive and within reasonable ranges.
|
|
20
|
+
*
|
|
21
|
+
* @param config - The discovery configuration to validate
|
|
22
|
+
* @throws {ConfigValidationError} If configuration is invalid
|
|
23
|
+
* @see Requirements 13.1, 13.2, 13.3, 13.6
|
|
24
|
+
*/
|
|
25
|
+
export declare function validateDiscoveryConfig(config: Partial<DiscoveryConfig>): void;
|
|
26
|
+
/**
|
|
27
|
+
* Validate GossipConfig.
|
|
28
|
+
* Ensures all values are positive and within reasonable ranges.
|
|
29
|
+
*
|
|
30
|
+
* @param config - The gossip configuration to validate
|
|
31
|
+
* @throws {ConfigValidationError} If configuration is invalid
|
|
32
|
+
* @see Requirements 13.4, 13.6
|
|
33
|
+
*/
|
|
34
|
+
export declare function validateGossipConfig(config: Partial<GossipConfig>): void;
|
|
35
|
+
/**
|
|
36
|
+
* Validate HeartbeatConfig.
|
|
37
|
+
* Ensures all values are positive and within reasonable ranges.
|
|
38
|
+
* Also validates that timeoutMs < intervalMs for proper operation.
|
|
39
|
+
*
|
|
40
|
+
* @param config - The heartbeat configuration to validate
|
|
41
|
+
* @throws {ConfigValidationError} If configuration is invalid
|
|
42
|
+
* @see Requirements 13.5, 13.6
|
|
43
|
+
*/
|
|
44
|
+
export declare function validateHeartbeatConfig(config: Partial<HeartbeatConfig>): void;
|
|
45
|
+
/**
|
|
46
|
+
* Create a validated DiscoveryConfig by merging partial config with defaults.
|
|
47
|
+
* Validates the merged configuration before returning.
|
|
48
|
+
*
|
|
49
|
+
* @param config - Partial configuration to merge with defaults
|
|
50
|
+
* @returns Complete validated configuration
|
|
51
|
+
* @throws {ConfigValidationError} If configuration is invalid
|
|
52
|
+
*/
|
|
53
|
+
export declare function createValidatedDiscoveryConfig(config?: Partial<DiscoveryConfig>): DiscoveryConfig;
|
|
54
|
+
/**
|
|
55
|
+
* Create a validated GossipConfig by merging partial config with defaults.
|
|
56
|
+
* Validates the merged configuration before returning.
|
|
57
|
+
*
|
|
58
|
+
* @param config - Partial configuration to merge with defaults
|
|
59
|
+
* @returns Complete validated configuration
|
|
60
|
+
* @throws {ConfigValidationError} If configuration is invalid
|
|
61
|
+
*/
|
|
62
|
+
export declare function createValidatedGossipConfig(config?: Partial<GossipConfig>): GossipConfig;
|
|
63
|
+
/**
|
|
64
|
+
* Create a validated HeartbeatConfig by merging partial config with defaults.
|
|
65
|
+
* Validates the merged configuration before returning.
|
|
66
|
+
*
|
|
67
|
+
* @param config - Partial configuration to merge with defaults
|
|
68
|
+
* @returns Complete validated configuration
|
|
69
|
+
* @throws {ConfigValidationError} If configuration is invalid
|
|
70
|
+
*/
|
|
71
|
+
export declare function createValidatedHeartbeatConfig(config?: Partial<HeartbeatConfig>): HeartbeatConfig;
|
|
72
|
+
//# sourceMappingURL=configValidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configValidation.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/configValidation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAIL,eAAe,EACf,YAAY,EACZ,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAC/B,IAAI,CAuFN;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAyDxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAC/B,IAAI,CAwDN;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,eAAe,CAMjB;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GACjC,YAAY,CAMd;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,eAAe,CAQjB"}
|