@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,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Configuration Validation
|
|
4
|
+
*
|
|
5
|
+
* Provides validation functions for availability system configurations.
|
|
6
|
+
* Ensures all configuration values are valid and returns descriptive error messages.
|
|
7
|
+
*
|
|
8
|
+
* @see Requirements 13.1, 13.2, 13.3, 13.4, 13.5, 13.6
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.ConfigValidationError = void 0;
|
|
12
|
+
exports.validateDiscoveryConfig = validateDiscoveryConfig;
|
|
13
|
+
exports.validateGossipConfig = validateGossipConfig;
|
|
14
|
+
exports.validateHeartbeatConfig = validateHeartbeatConfig;
|
|
15
|
+
exports.createValidatedDiscoveryConfig = createValidatedDiscoveryConfig;
|
|
16
|
+
exports.createValidatedGossipConfig = createValidatedGossipConfig;
|
|
17
|
+
exports.createValidatedHeartbeatConfig = createValidatedHeartbeatConfig;
|
|
18
|
+
const brightchain_lib_1 = require("@brightchain/brightchain-lib");
|
|
19
|
+
/**
|
|
20
|
+
* Configuration validation error.
|
|
21
|
+
* Contains a descriptive error message about what is invalid.
|
|
22
|
+
*/
|
|
23
|
+
class ConfigValidationError extends Error {
|
|
24
|
+
constructor(message) {
|
|
25
|
+
super(message);
|
|
26
|
+
this.name = 'ConfigValidationError';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.ConfigValidationError = ConfigValidationError;
|
|
30
|
+
/**
|
|
31
|
+
* Validate DiscoveryConfig.
|
|
32
|
+
* Ensures all values are positive and within reasonable ranges.
|
|
33
|
+
*
|
|
34
|
+
* @param config - The discovery configuration to validate
|
|
35
|
+
* @throws {ConfigValidationError} If configuration is invalid
|
|
36
|
+
* @see Requirements 13.1, 13.2, 13.3, 13.6
|
|
37
|
+
*/
|
|
38
|
+
function validateDiscoveryConfig(config) {
|
|
39
|
+
// Validate queryTimeoutMs
|
|
40
|
+
if (config.queryTimeoutMs !== undefined) {
|
|
41
|
+
if (!Number.isFinite(config.queryTimeoutMs)) {
|
|
42
|
+
throw new ConfigValidationError('queryTimeoutMs must be a finite number');
|
|
43
|
+
}
|
|
44
|
+
if (config.queryTimeoutMs <= 0) {
|
|
45
|
+
throw new ConfigValidationError('queryTimeoutMs must be positive');
|
|
46
|
+
}
|
|
47
|
+
if (config.queryTimeoutMs > 300000) {
|
|
48
|
+
// 5 minutes max
|
|
49
|
+
throw new ConfigValidationError('queryTimeoutMs must not exceed 300000ms (5 minutes)');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Validate maxConcurrentQueries
|
|
53
|
+
if (config.maxConcurrentQueries !== undefined) {
|
|
54
|
+
if (!Number.isInteger(config.maxConcurrentQueries)) {
|
|
55
|
+
throw new ConfigValidationError('maxConcurrentQueries must be an integer');
|
|
56
|
+
}
|
|
57
|
+
if (config.maxConcurrentQueries < 1) {
|
|
58
|
+
throw new ConfigValidationError('maxConcurrentQueries must be at least 1');
|
|
59
|
+
}
|
|
60
|
+
if (config.maxConcurrentQueries > 1000) {
|
|
61
|
+
throw new ConfigValidationError('maxConcurrentQueries must not exceed 1000');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Validate cacheTtlMs
|
|
65
|
+
if (config.cacheTtlMs !== undefined) {
|
|
66
|
+
if (!Number.isFinite(config.cacheTtlMs)) {
|
|
67
|
+
throw new ConfigValidationError('cacheTtlMs must be a finite number');
|
|
68
|
+
}
|
|
69
|
+
if (config.cacheTtlMs < 0) {
|
|
70
|
+
throw new ConfigValidationError('cacheTtlMs must be non-negative');
|
|
71
|
+
}
|
|
72
|
+
if (config.cacheTtlMs > 86400000) {
|
|
73
|
+
// 24 hours max
|
|
74
|
+
throw new ConfigValidationError('cacheTtlMs must not exceed 86400000ms (24 hours)');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Validate bloomFilterFalsePositiveRate
|
|
78
|
+
if (config.bloomFilterFalsePositiveRate !== undefined) {
|
|
79
|
+
if (!Number.isFinite(config.bloomFilterFalsePositiveRate)) {
|
|
80
|
+
throw new ConfigValidationError('bloomFilterFalsePositiveRate must be a finite number');
|
|
81
|
+
}
|
|
82
|
+
if (config.bloomFilterFalsePositiveRate <= 0 ||
|
|
83
|
+
config.bloomFilterFalsePositiveRate >= 1) {
|
|
84
|
+
throw new ConfigValidationError('bloomFilterFalsePositiveRate must be between 0 and 1 (exclusive)');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Validate bloomFilterHashCount
|
|
88
|
+
if (config.bloomFilterHashCount !== undefined) {
|
|
89
|
+
if (!Number.isInteger(config.bloomFilterHashCount)) {
|
|
90
|
+
throw new ConfigValidationError('bloomFilterHashCount must be an integer');
|
|
91
|
+
}
|
|
92
|
+
if (config.bloomFilterHashCount < 1) {
|
|
93
|
+
throw new ConfigValidationError('bloomFilterHashCount must be at least 1');
|
|
94
|
+
}
|
|
95
|
+
if (config.bloomFilterHashCount > 20) {
|
|
96
|
+
throw new ConfigValidationError('bloomFilterHashCount must not exceed 20');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Validate GossipConfig.
|
|
102
|
+
* Ensures all values are positive and within reasonable ranges.
|
|
103
|
+
*
|
|
104
|
+
* @param config - The gossip configuration to validate
|
|
105
|
+
* @throws {ConfigValidationError} If configuration is invalid
|
|
106
|
+
* @see Requirements 13.4, 13.6
|
|
107
|
+
*/
|
|
108
|
+
function validateGossipConfig(config) {
|
|
109
|
+
// Validate fanout
|
|
110
|
+
if (config.fanout !== undefined) {
|
|
111
|
+
if (!Number.isInteger(config.fanout)) {
|
|
112
|
+
throw new ConfigValidationError('fanout must be an integer');
|
|
113
|
+
}
|
|
114
|
+
if (config.fanout < 1) {
|
|
115
|
+
throw new ConfigValidationError('fanout must be at least 1');
|
|
116
|
+
}
|
|
117
|
+
if (config.fanout > 100) {
|
|
118
|
+
throw new ConfigValidationError('fanout must not exceed 100');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Validate defaultTtl
|
|
122
|
+
if (config.defaultTtl !== undefined) {
|
|
123
|
+
if (!Number.isInteger(config.defaultTtl)) {
|
|
124
|
+
throw new ConfigValidationError('defaultTtl must be an integer');
|
|
125
|
+
}
|
|
126
|
+
if (config.defaultTtl < 0) {
|
|
127
|
+
throw new ConfigValidationError('defaultTtl must be non-negative');
|
|
128
|
+
}
|
|
129
|
+
if (config.defaultTtl > 10) {
|
|
130
|
+
throw new ConfigValidationError('defaultTtl must not exceed 10');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// Validate batchIntervalMs
|
|
134
|
+
if (config.batchIntervalMs !== undefined) {
|
|
135
|
+
if (!Number.isFinite(config.batchIntervalMs)) {
|
|
136
|
+
throw new ConfigValidationError('batchIntervalMs must be a finite number');
|
|
137
|
+
}
|
|
138
|
+
if (config.batchIntervalMs < 0) {
|
|
139
|
+
throw new ConfigValidationError('batchIntervalMs must be non-negative');
|
|
140
|
+
}
|
|
141
|
+
if (config.batchIntervalMs > 60000) {
|
|
142
|
+
// 1 minute max
|
|
143
|
+
throw new ConfigValidationError('batchIntervalMs must not exceed 60000ms (1 minute)');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Validate maxBatchSize
|
|
147
|
+
if (config.maxBatchSize !== undefined) {
|
|
148
|
+
if (!Number.isInteger(config.maxBatchSize)) {
|
|
149
|
+
throw new ConfigValidationError('maxBatchSize must be an integer');
|
|
150
|
+
}
|
|
151
|
+
if (config.maxBatchSize < 1) {
|
|
152
|
+
throw new ConfigValidationError('maxBatchSize must be at least 1');
|
|
153
|
+
}
|
|
154
|
+
if (config.maxBatchSize > 10000) {
|
|
155
|
+
throw new ConfigValidationError('maxBatchSize must not exceed 10000');
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Validate HeartbeatConfig.
|
|
161
|
+
* Ensures all values are positive and within reasonable ranges.
|
|
162
|
+
* Also validates that timeoutMs < intervalMs for proper operation.
|
|
163
|
+
*
|
|
164
|
+
* @param config - The heartbeat configuration to validate
|
|
165
|
+
* @throws {ConfigValidationError} If configuration is invalid
|
|
166
|
+
* @see Requirements 13.5, 13.6
|
|
167
|
+
*/
|
|
168
|
+
function validateHeartbeatConfig(config) {
|
|
169
|
+
// Validate intervalMs
|
|
170
|
+
if (config.intervalMs !== undefined) {
|
|
171
|
+
if (!Number.isFinite(config.intervalMs)) {
|
|
172
|
+
throw new ConfigValidationError('intervalMs must be a finite number');
|
|
173
|
+
}
|
|
174
|
+
if (config.intervalMs <= 0) {
|
|
175
|
+
throw new ConfigValidationError('intervalMs must be positive');
|
|
176
|
+
}
|
|
177
|
+
if (config.intervalMs > 300000) {
|
|
178
|
+
// 5 minutes max
|
|
179
|
+
throw new ConfigValidationError('intervalMs must not exceed 300000ms (5 minutes)');
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// Validate timeoutMs
|
|
183
|
+
if (config.timeoutMs !== undefined) {
|
|
184
|
+
if (!Number.isFinite(config.timeoutMs)) {
|
|
185
|
+
throw new ConfigValidationError('timeoutMs must be a finite number');
|
|
186
|
+
}
|
|
187
|
+
if (config.timeoutMs <= 0) {
|
|
188
|
+
throw new ConfigValidationError('timeoutMs must be positive');
|
|
189
|
+
}
|
|
190
|
+
if (config.timeoutMs > 60000) {
|
|
191
|
+
// 1 minute max
|
|
192
|
+
throw new ConfigValidationError('timeoutMs must not exceed 60000ms (1 minute)');
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// Validate missedThreshold
|
|
196
|
+
if (config.missedThreshold !== undefined) {
|
|
197
|
+
if (!Number.isInteger(config.missedThreshold)) {
|
|
198
|
+
throw new ConfigValidationError('missedThreshold must be an integer');
|
|
199
|
+
}
|
|
200
|
+
if (config.missedThreshold < 1) {
|
|
201
|
+
throw new ConfigValidationError('missedThreshold must be at least 1');
|
|
202
|
+
}
|
|
203
|
+
if (config.missedThreshold > 100) {
|
|
204
|
+
throw new ConfigValidationError('missedThreshold must not exceed 100');
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// Cross-field validation: timeoutMs should be less than intervalMs
|
|
208
|
+
if (config.timeoutMs !== undefined &&
|
|
209
|
+
config.intervalMs !== undefined &&
|
|
210
|
+
config.timeoutMs >= config.intervalMs) {
|
|
211
|
+
throw new ConfigValidationError('timeoutMs must be less than intervalMs for proper heartbeat operation');
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Create a validated DiscoveryConfig by merging partial config with defaults.
|
|
216
|
+
* Validates the merged configuration before returning.
|
|
217
|
+
*
|
|
218
|
+
* @param config - Partial configuration to merge with defaults
|
|
219
|
+
* @returns Complete validated configuration
|
|
220
|
+
* @throws {ConfigValidationError} If configuration is invalid
|
|
221
|
+
*/
|
|
222
|
+
function createValidatedDiscoveryConfig(config = {}) {
|
|
223
|
+
validateDiscoveryConfig(config);
|
|
224
|
+
return {
|
|
225
|
+
...brightchain_lib_1.DEFAULT_DISCOVERY_CONFIG,
|
|
226
|
+
...config,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Create a validated GossipConfig by merging partial config with defaults.
|
|
231
|
+
* Validates the merged configuration before returning.
|
|
232
|
+
*
|
|
233
|
+
* @param config - Partial configuration to merge with defaults
|
|
234
|
+
* @returns Complete validated configuration
|
|
235
|
+
* @throws {ConfigValidationError} If configuration is invalid
|
|
236
|
+
*/
|
|
237
|
+
function createValidatedGossipConfig(config = {}) {
|
|
238
|
+
validateGossipConfig(config);
|
|
239
|
+
return {
|
|
240
|
+
...brightchain_lib_1.DEFAULT_GOSSIP_CONFIG,
|
|
241
|
+
...config,
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Create a validated HeartbeatConfig by merging partial config with defaults.
|
|
246
|
+
* Validates the merged configuration before returning.
|
|
247
|
+
*
|
|
248
|
+
* @param config - Partial configuration to merge with defaults
|
|
249
|
+
* @returns Complete validated configuration
|
|
250
|
+
* @throws {ConfigValidationError} If configuration is invalid
|
|
251
|
+
*/
|
|
252
|
+
function createValidatedHeartbeatConfig(config = {}) {
|
|
253
|
+
const merged = {
|
|
254
|
+
...brightchain_lib_1.DEFAULT_HEARTBEAT_CONFIG,
|
|
255
|
+
...config,
|
|
256
|
+
};
|
|
257
|
+
// Validate the merged config to catch cross-field issues
|
|
258
|
+
validateHeartbeatConfig(merged);
|
|
259
|
+
return merged;
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=configValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configValidation.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/configValidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Discovery Protocol Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements block discovery across the network using Bloom filter pre-checks,
|
|
5
|
+
* concurrent query limiting, result caching, and latency-based node preference.
|
|
6
|
+
*
|
|
7
|
+
* @see Requirements 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8
|
|
8
|
+
*/
|
|
9
|
+
import { BloomFilter, DiscoveryConfig, DiscoveryResult, IDiscoveryProtocol, ILocationRecord, PeerQueryResult } from '@brightchain/brightchain-lib';
|
|
10
|
+
export { DEFAULT_DISCOVERY_CONFIG } from '@brightchain/brightchain-lib';
|
|
11
|
+
/**
|
|
12
|
+
* Interface for peer network operations.
|
|
13
|
+
* Abstracts network communication for discovery queries.
|
|
14
|
+
*/
|
|
15
|
+
export interface IPeerNetworkProvider {
|
|
16
|
+
/**
|
|
17
|
+
* Get all connected peer IDs.
|
|
18
|
+
*/
|
|
19
|
+
getConnectedPeerIds(): string[];
|
|
20
|
+
/**
|
|
21
|
+
* Get the Bloom filter from a peer.
|
|
22
|
+
*
|
|
23
|
+
* @param peerId - The peer to get the Bloom filter from
|
|
24
|
+
* @returns Promise resolving to the peer's Bloom filter
|
|
25
|
+
*/
|
|
26
|
+
getPeerBloomFilter(peerId: string): Promise<BloomFilter>;
|
|
27
|
+
/**
|
|
28
|
+
* Query a peer for a specific block.
|
|
29
|
+
*
|
|
30
|
+
* @param peerId - The peer to query
|
|
31
|
+
* @param blockId - The block ID to query for
|
|
32
|
+
* @param timeoutMs - Query timeout in milliseconds
|
|
33
|
+
* @returns Promise resolving to whether the peer has the block
|
|
34
|
+
*/
|
|
35
|
+
queryPeerForBlock(peerId: string, blockId: string, timeoutMs: number): Promise<boolean>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Discovery Protocol Implementation
|
|
39
|
+
*
|
|
40
|
+
* Handles finding blocks across the network using:
|
|
41
|
+
* - Bloom filter pre-checks to avoid unnecessary queries
|
|
42
|
+
* - Concurrent query limiting to manage resources
|
|
43
|
+
* - Result caching with TTL to reduce network traffic
|
|
44
|
+
* - Latency-based node preference for optimal retrieval
|
|
45
|
+
*
|
|
46
|
+
* @see Requirements 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8
|
|
47
|
+
*/
|
|
48
|
+
export declare class DiscoveryProtocol implements IDiscoveryProtocol {
|
|
49
|
+
private readonly networkProvider;
|
|
50
|
+
private readonly config;
|
|
51
|
+
/**
|
|
52
|
+
* Cache of discovery results with TTL management.
|
|
53
|
+
*/
|
|
54
|
+
private readonly cache;
|
|
55
|
+
/**
|
|
56
|
+
* Cache of peer Bloom filters.
|
|
57
|
+
*/
|
|
58
|
+
private readonly bloomFilterCache;
|
|
59
|
+
/**
|
|
60
|
+
* Create a new DiscoveryProtocol.
|
|
61
|
+
*
|
|
62
|
+
* @param networkProvider - Provider for peer network operations
|
|
63
|
+
* @param config - Discovery configuration (uses defaults if not provided)
|
|
64
|
+
*/
|
|
65
|
+
constructor(networkProvider: IPeerNetworkProvider, config?: DiscoveryConfig);
|
|
66
|
+
/**
|
|
67
|
+
* Discover locations for a block across the network.
|
|
68
|
+
*
|
|
69
|
+
* @param blockId - The block ID to discover
|
|
70
|
+
* @returns Promise resolving to discovery result with locations
|
|
71
|
+
* @see Requirements 5.1, 5.2, 5.3, 5.4, 5.5
|
|
72
|
+
*/
|
|
73
|
+
discoverBlock(blockId: string): Promise<DiscoveryResult>;
|
|
74
|
+
/**
|
|
75
|
+
* Query a specific peer for a block.
|
|
76
|
+
*
|
|
77
|
+
* @param peerId - The peer to query
|
|
78
|
+
* @param blockId - The block ID to query for
|
|
79
|
+
* @returns Promise resolving to the query result
|
|
80
|
+
* @see Requirements 5.3
|
|
81
|
+
*/
|
|
82
|
+
queryPeer(peerId: string, blockId: string): Promise<PeerQueryResult>;
|
|
83
|
+
/**
|
|
84
|
+
* Get cached discovery results for a block.
|
|
85
|
+
*
|
|
86
|
+
* @param blockId - The block ID to get cached locations for
|
|
87
|
+
* @returns Cached location records or null if not cached or expired
|
|
88
|
+
* @see Requirements 5.8
|
|
89
|
+
*/
|
|
90
|
+
getCachedLocations(blockId: string): ILocationRecord[] | null;
|
|
91
|
+
/**
|
|
92
|
+
* Clear the discovery cache for a specific block.
|
|
93
|
+
*
|
|
94
|
+
* @param blockId - The block ID to clear from cache
|
|
95
|
+
*/
|
|
96
|
+
clearCache(blockId: string): void;
|
|
97
|
+
/**
|
|
98
|
+
* Clear the entire discovery cache.
|
|
99
|
+
*/
|
|
100
|
+
clearAllCache(): void;
|
|
101
|
+
/**
|
|
102
|
+
* Get the Bloom filter from a peer.
|
|
103
|
+
*
|
|
104
|
+
* @param peerId - The peer to get the Bloom filter from
|
|
105
|
+
* @returns Promise resolving to the peer's Bloom filter
|
|
106
|
+
* @see Requirements 4.2, 5.2
|
|
107
|
+
*/
|
|
108
|
+
getPeerBloomFilter(peerId: string): Promise<BloomFilter>;
|
|
109
|
+
/**
|
|
110
|
+
* Get the current configuration.
|
|
111
|
+
*
|
|
112
|
+
* @returns The discovery configuration
|
|
113
|
+
*/
|
|
114
|
+
getConfig(): DiscoveryConfig;
|
|
115
|
+
/**
|
|
116
|
+
* Clear the Bloom filter cache for a specific peer.
|
|
117
|
+
*
|
|
118
|
+
* @param peerId - The peer to clear from cache
|
|
119
|
+
*/
|
|
120
|
+
clearBloomFilterCache(peerId: string): void;
|
|
121
|
+
/**
|
|
122
|
+
* Clear all Bloom filter caches.
|
|
123
|
+
*/
|
|
124
|
+
clearAllBloomFilterCache(): void;
|
|
125
|
+
/**
|
|
126
|
+
* Filter peers using their Bloom filters.
|
|
127
|
+
* Only returns peers whose Bloom filters indicate they might have the block.
|
|
128
|
+
*
|
|
129
|
+
* @param peerIds - Peers to filter
|
|
130
|
+
* @param blockId - Block ID to check
|
|
131
|
+
* @returns Peers that might have the block
|
|
132
|
+
* @see Requirements 4.3, 4.4, 4.5, 5.2
|
|
133
|
+
*/
|
|
134
|
+
private filterPeersWithBloomFilters;
|
|
135
|
+
/**
|
|
136
|
+
* Query peers with concurrency limiting.
|
|
137
|
+
*
|
|
138
|
+
* @param peerIds - Peers to query
|
|
139
|
+
* @param blockId - Block ID to query for
|
|
140
|
+
* @returns Query results from all peers
|
|
141
|
+
* @see Requirements 5.3, 13.2
|
|
142
|
+
*/
|
|
143
|
+
private queryPeersWithConcurrencyLimit;
|
|
144
|
+
/**
|
|
145
|
+
* Build location records from query results.
|
|
146
|
+
*
|
|
147
|
+
* @param queryResults - Results from peer queries
|
|
148
|
+
* @returns Location records for peers that have the block
|
|
149
|
+
* @see Requirements 5.4
|
|
150
|
+
*/
|
|
151
|
+
private buildLocationRecords;
|
|
152
|
+
/**
|
|
153
|
+
* Cache discovery results.
|
|
154
|
+
*
|
|
155
|
+
* @param blockId - Block ID to cache
|
|
156
|
+
* @param locations - Location records to cache
|
|
157
|
+
*/
|
|
158
|
+
private cacheResults;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=discoveryProtocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discoveryProtocol.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/discoveryProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAqBxE;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzD;;;;;;;OAOG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAkBxD,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAlBzB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAE5D;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuC;IAExE;;;;;OAKG;gBAEgB,eAAe,EAAE,oBAAoB,EACrC,MAAM,GAAE,eAAwC;IAGnE;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA2D9D;;;;;;;OAOG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyB1E;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,IAAI;IAgB7D;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;;;;;OAMG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgB9D;;;;OAIG;IACH,SAAS,IAAI,eAAe;IAI5B;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACH,wBAAwB,IAAI,IAAI;IAIhC;;;;;;;;OAQG;YACW,2BAA2B;IAgCzC;;;;;;;OAOG;YACW,8BAA8B;IAgC5C;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CAMrB"}
|