@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,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file FecServiceFactory - Factory for selecting the best available FEC service
|
|
3
|
+
* @description Provides a factory method to select the optimal FEC service implementation
|
|
4
|
+
* based on the current environment and available hardware acceleration.
|
|
5
|
+
*
|
|
6
|
+
* @requirements 1.8
|
|
7
|
+
*/
|
|
8
|
+
import { IFecService } from '@brightchain/brightchain-lib';
|
|
9
|
+
/**
|
|
10
|
+
* Factory for creating FEC service instances.
|
|
11
|
+
*
|
|
12
|
+
* This factory selects the best available FEC implementation based on:
|
|
13
|
+
* 1. Hardware availability (Apple Silicon for native acceleration)
|
|
14
|
+
* 2. Platform support (WASM for cross-platform)
|
|
15
|
+
*
|
|
16
|
+
* Priority order:
|
|
17
|
+
* 1. NativeRsFecService - Hardware-accelerated (Apple Silicon)
|
|
18
|
+
* 2. WasmFecService - Cross-platform WASM implementation
|
|
19
|
+
*/
|
|
20
|
+
export declare class FecServiceFactory {
|
|
21
|
+
private static cachedService;
|
|
22
|
+
private static cacheChecked;
|
|
23
|
+
/**
|
|
24
|
+
* Get the best available FEC service for the current environment.
|
|
25
|
+
*
|
|
26
|
+
* This method checks available implementations in priority order:
|
|
27
|
+
* 1. NativeRsFecService (Apple Silicon hardware acceleration)
|
|
28
|
+
* 2. WasmFecService (cross-platform WASM)
|
|
29
|
+
*
|
|
30
|
+
* The result is cached for subsequent calls.
|
|
31
|
+
*
|
|
32
|
+
* @returns Promise resolving to the best available IFecService implementation
|
|
33
|
+
* @throws Error if no FEC service is available
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const fecService = await FecServiceFactory.getBestAvailable();
|
|
38
|
+
* const parity = await fecService.createParityData(blockData, 2);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
static getBestAvailable(): Promise<IFecService>;
|
|
42
|
+
/**
|
|
43
|
+
* Get a specific FEC service implementation by type.
|
|
44
|
+
*
|
|
45
|
+
* @param type - The type of FEC service to get ('native' or 'wasm')
|
|
46
|
+
* @returns Promise resolving to the requested IFecService implementation
|
|
47
|
+
* @throws Error if the requested service is not available
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* // Force WASM implementation
|
|
52
|
+
* const wasmService = await FecServiceFactory.getByType('wasm');
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
static getByType(type: 'native' | 'wasm'): Promise<IFecService>;
|
|
56
|
+
/**
|
|
57
|
+
* Check which FEC services are available in the current environment.
|
|
58
|
+
*
|
|
59
|
+
* @returns Promise resolving to an object indicating availability of each service
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* const availability = await FecServiceFactory.checkAvailability();
|
|
64
|
+
* console.log('Native available:', availability.native);
|
|
65
|
+
* console.log('WASM available:', availability.wasm);
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
static checkAvailability(): Promise<{
|
|
69
|
+
native: boolean;
|
|
70
|
+
wasm: boolean;
|
|
71
|
+
}>;
|
|
72
|
+
/**
|
|
73
|
+
* Clear the cached FEC service instance.
|
|
74
|
+
*
|
|
75
|
+
* This is useful for testing or when the environment changes.
|
|
76
|
+
*/
|
|
77
|
+
static clearCache(): void;
|
|
78
|
+
/**
|
|
79
|
+
* Create a new instance of the best available FEC service without caching.
|
|
80
|
+
*
|
|
81
|
+
* This is useful when you need a fresh instance or want to avoid
|
|
82
|
+
* sharing state between different parts of the application.
|
|
83
|
+
*
|
|
84
|
+
* @returns Promise resolving to a new IFecService instance
|
|
85
|
+
* @throws Error if no FEC service is available
|
|
86
|
+
*/
|
|
87
|
+
static createNew(): Promise<IFecService>;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=fecServiceFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fecServiceFactory.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/fecServiceFactory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAI3D;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,aAAa,CAA4B;IACxD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAS;IAEpC;;;;;;;;;;;;;;;;;OAiBG;WACU,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC;IA4BrD;;;;;;;;;;;;OAYG;WACU,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAoBrE;;;;;;;;;;;OAWG;WACU,iBAAiB,IAAI,OAAO,CAAC;QACxC,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IAeF;;;;OAIG;IACH,MAAM,CAAC,UAAU,IAAI,IAAI;IAKzB;;;;;;;;OAQG;WACU,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC;CAiB/C"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file FecServiceFactory - Factory for selecting the best available FEC service
|
|
4
|
+
* @description Provides a factory method to select the optimal FEC service implementation
|
|
5
|
+
* based on the current environment and available hardware acceleration.
|
|
6
|
+
*
|
|
7
|
+
* @requirements 1.8
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.FecServiceFactory = void 0;
|
|
11
|
+
const fec_1 = require("./fec");
|
|
12
|
+
const nativeRsFecService_1 = require("./nativeRsFecService");
|
|
13
|
+
/**
|
|
14
|
+
* Factory for creating FEC service instances.
|
|
15
|
+
*
|
|
16
|
+
* This factory selects the best available FEC implementation based on:
|
|
17
|
+
* 1. Hardware availability (Apple Silicon for native acceleration)
|
|
18
|
+
* 2. Platform support (WASM for cross-platform)
|
|
19
|
+
*
|
|
20
|
+
* Priority order:
|
|
21
|
+
* 1. NativeRsFecService - Hardware-accelerated (Apple Silicon)
|
|
22
|
+
* 2. WasmFecService - Cross-platform WASM implementation
|
|
23
|
+
*/
|
|
24
|
+
class FecServiceFactory {
|
|
25
|
+
/**
|
|
26
|
+
* Get the best available FEC service for the current environment.
|
|
27
|
+
*
|
|
28
|
+
* This method checks available implementations in priority order:
|
|
29
|
+
* 1. NativeRsFecService (Apple Silicon hardware acceleration)
|
|
30
|
+
* 2. WasmFecService (cross-platform WASM)
|
|
31
|
+
*
|
|
32
|
+
* The result is cached for subsequent calls.
|
|
33
|
+
*
|
|
34
|
+
* @returns Promise resolving to the best available IFecService implementation
|
|
35
|
+
* @throws Error if no FEC service is available
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const fecService = await FecServiceFactory.getBestAvailable();
|
|
40
|
+
* const parity = await fecService.createParityData(blockData, 2);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
static async getBestAvailable() {
|
|
44
|
+
// Return cached service if available
|
|
45
|
+
if (this.cacheChecked && this.cachedService) {
|
|
46
|
+
return this.cachedService;
|
|
47
|
+
}
|
|
48
|
+
// Try native implementation first (highest priority)
|
|
49
|
+
const nativeService = new nativeRsFecService_1.NativeRsFecService();
|
|
50
|
+
if (await nativeService.isAvailable()) {
|
|
51
|
+
this.cachedService = nativeService;
|
|
52
|
+
this.cacheChecked = true;
|
|
53
|
+
return nativeService;
|
|
54
|
+
}
|
|
55
|
+
// Fall back to WASM implementation
|
|
56
|
+
const wasmService = new fec_1.WasmFecService();
|
|
57
|
+
if (await wasmService.isAvailable()) {
|
|
58
|
+
this.cachedService = wasmService;
|
|
59
|
+
this.cacheChecked = true;
|
|
60
|
+
return wasmService;
|
|
61
|
+
}
|
|
62
|
+
// If no service is available, throw an error
|
|
63
|
+
throw new Error('No FEC service available. Ensure either native bindings or WASM module is installed.');
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get a specific FEC service implementation by type.
|
|
67
|
+
*
|
|
68
|
+
* @param type - The type of FEC service to get ('native' or 'wasm')
|
|
69
|
+
* @returns Promise resolving to the requested IFecService implementation
|
|
70
|
+
* @throws Error if the requested service is not available
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* // Force WASM implementation
|
|
75
|
+
* const wasmService = await FecServiceFactory.getByType('wasm');
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
static async getByType(type) {
|
|
79
|
+
if (type === 'native') {
|
|
80
|
+
const nativeService = new nativeRsFecService_1.NativeRsFecService();
|
|
81
|
+
if (await nativeService.isAvailable()) {
|
|
82
|
+
return nativeService;
|
|
83
|
+
}
|
|
84
|
+
throw new Error('Native FEC service is not available on this platform.');
|
|
85
|
+
}
|
|
86
|
+
if (type === 'wasm') {
|
|
87
|
+
const wasmService = new fec_1.WasmFecService();
|
|
88
|
+
if (await wasmService.isAvailable()) {
|
|
89
|
+
return wasmService;
|
|
90
|
+
}
|
|
91
|
+
throw new Error('WASM FEC service is not available.');
|
|
92
|
+
}
|
|
93
|
+
throw new Error(`Unknown FEC service type: ${type}`);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Check which FEC services are available in the current environment.
|
|
97
|
+
*
|
|
98
|
+
* @returns Promise resolving to an object indicating availability of each service
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const availability = await FecServiceFactory.checkAvailability();
|
|
103
|
+
* console.log('Native available:', availability.native);
|
|
104
|
+
* console.log('WASM available:', availability.wasm);
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
static async checkAvailability() {
|
|
108
|
+
const nativeService = new nativeRsFecService_1.NativeRsFecService();
|
|
109
|
+
const wasmService = new fec_1.WasmFecService();
|
|
110
|
+
const [nativeAvailable, wasmAvailable] = await Promise.all([
|
|
111
|
+
nativeService.isAvailable(),
|
|
112
|
+
wasmService.isAvailable(),
|
|
113
|
+
]);
|
|
114
|
+
return {
|
|
115
|
+
native: nativeAvailable,
|
|
116
|
+
wasm: wasmAvailable,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Clear the cached FEC service instance.
|
|
121
|
+
*
|
|
122
|
+
* This is useful for testing or when the environment changes.
|
|
123
|
+
*/
|
|
124
|
+
static clearCache() {
|
|
125
|
+
this.cachedService = null;
|
|
126
|
+
this.cacheChecked = false;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Create a new instance of the best available FEC service without caching.
|
|
130
|
+
*
|
|
131
|
+
* This is useful when you need a fresh instance or want to avoid
|
|
132
|
+
* sharing state between different parts of the application.
|
|
133
|
+
*
|
|
134
|
+
* @returns Promise resolving to a new IFecService instance
|
|
135
|
+
* @throws Error if no FEC service is available
|
|
136
|
+
*/
|
|
137
|
+
static async createNew() {
|
|
138
|
+
// Try native implementation first
|
|
139
|
+
const nativeService = new nativeRsFecService_1.NativeRsFecService();
|
|
140
|
+
if (await nativeService.isAvailable()) {
|
|
141
|
+
return nativeService;
|
|
142
|
+
}
|
|
143
|
+
// Fall back to WASM implementation
|
|
144
|
+
const wasmService = new fec_1.WasmFecService();
|
|
145
|
+
if (await wasmService.isAvailable()) {
|
|
146
|
+
return wasmService;
|
|
147
|
+
}
|
|
148
|
+
throw new Error('No FEC service available. Ensure either native bindings or WASM module is installed.');
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.FecServiceFactory = FecServiceFactory;
|
|
152
|
+
FecServiceFactory.cachedService = null;
|
|
153
|
+
FecServiceFactory.cacheChecked = false;
|
|
154
|
+
//# sourceMappingURL=fecServiceFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fecServiceFactory.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/fecServiceFactory.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAGH,+BAAuC;AACvC,6DAA0D;AAE1D;;;;;;;;;;GAUG;AACH,MAAa,iBAAiB;IAI5B;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB;QAC3B,qCAAqC;QACrC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QAED,qDAAqD;QACrD,MAAM,aAAa,GAAG,IAAI,uCAAkB,EAAE,CAAC;QAC/C,IAAI,MAAM,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,mCAAmC;QACnC,MAAM,WAAW,GAAG,IAAI,oBAAc,EAAE,CAAC;QACzC,IAAI,MAAM,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,6CAA6C;QAC7C,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAuB;QAC5C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,IAAI,uCAAkB,EAAE,CAAC;YAC/C,IAAI,MAAM,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtC,OAAO,aAAa,CAAC;YACvB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,IAAI,oBAAc,EAAE,CAAC;YACzC,IAAI,MAAM,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;gBACpC,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAK,CAAC,iBAAiB;QAI5B,MAAM,aAAa,GAAG,IAAI,uCAAkB,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,oBAAc,EAAE,CAAC;QAEzC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACzD,aAAa,CAAC,WAAW,EAAE;YAC3B,WAAW,CAAC,WAAW,EAAE;SAC1B,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,aAAa;SACpB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS;QACpB,kCAAkC;QAClC,MAAM,aAAa,GAAG,IAAI,uCAAkB,EAAE,CAAC;QAC/C,IAAI,MAAM,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,mCAAmC;QACnC,MAAM,WAAW,GAAG,IAAI,oBAAc,EAAE,CAAC;QACzC,IAAI,MAAM,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YACpC,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;IACJ,CAAC;;AApJH,8CAqJC;AApJgB,+BAAa,GAAuB,IAAI,CAAC;AACzC,8BAAY,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ParityData } from '@brightchain/brightchain-lib';
|
|
2
|
+
/**
|
|
3
|
+
* Example usage of the adapted FEC service for filesystem/S3 objects
|
|
4
|
+
*/
|
|
5
|
+
export declare class FecUsageExample {
|
|
6
|
+
private fecService;
|
|
7
|
+
/**
|
|
8
|
+
* Example: Create parity data for a file and store it separately
|
|
9
|
+
*/
|
|
10
|
+
createFileWithParity(fileData: Buffer, parityCount?: number): Promise<{
|
|
11
|
+
originalData: Buffer<ArrayBufferLike>;
|
|
12
|
+
parityData: ParityData[];
|
|
13
|
+
originalSize: number;
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Example: Recover a corrupted file using parity data
|
|
17
|
+
*/
|
|
18
|
+
recoverCorruptedFile(parityData: ParityData[], originalSize: number): Promise<Uint8Array<ArrayBufferLike> | Buffer<ArrayBufferLike>>;
|
|
19
|
+
/**
|
|
20
|
+
* Example: Verify file integrity using parity data
|
|
21
|
+
*/
|
|
22
|
+
verifyFile(fileData: Buffer, parityData: ParityData[]): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Complete example workflow
|
|
25
|
+
*/
|
|
26
|
+
demonstrateWorkflow(): Promise<{
|
|
27
|
+
originalFile: Buffer<ArrayBuffer>;
|
|
28
|
+
recoveredFile: Uint8Array<ArrayBufferLike> | Buffer<ArrayBufferLike>;
|
|
29
|
+
parityData: ParityData[];
|
|
30
|
+
recoverySuccessful: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=fecUsageExample.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fecUsageExample.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/fecUsageExample.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAwB;IAE1C;;OAEG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,MAAU;;;;;IAmBpE;;OAEG;IACG,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,MAAM;IAgBzE;;OAEG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,EAAE,GACvB,OAAO,CAAC,OAAO,CAAC;IAInB;;OAEG;IACG,mBAAmB;;;;;;CAwC1B"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FecUsageExample = void 0;
|
|
4
|
+
const fec_1 = require("./fec");
|
|
5
|
+
/**
|
|
6
|
+
* Example usage of the adapted FEC service for filesystem/S3 objects
|
|
7
|
+
*/
|
|
8
|
+
class FecUsageExample {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.fecService = new fec_1.WasmFecService();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Example: Create parity data for a file and store it separately
|
|
14
|
+
*/
|
|
15
|
+
async createFileWithParity(fileData, parityCount = 2) {
|
|
16
|
+
// Create parity data
|
|
17
|
+
const parityData = await this.fecService.createParityData(fileData, parityCount);
|
|
18
|
+
// In a real implementation, you would:
|
|
19
|
+
// 1. Store the original file (e.g., to S3 as "file.dat")
|
|
20
|
+
// 2. Store each parity data separately (e.g., "file.dat.parity.0", "file.dat.parity.1")
|
|
21
|
+
// 3. Store metadata about the original file size
|
|
22
|
+
return {
|
|
23
|
+
originalData: fileData,
|
|
24
|
+
parityData,
|
|
25
|
+
originalSize: fileData.length,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Example: Recover a corrupted file using parity data
|
|
30
|
+
*/
|
|
31
|
+
async recoverCorruptedFile(parityData, originalSize) {
|
|
32
|
+
// Attempt recovery (pass null for corrupted data)
|
|
33
|
+
const result = await this.fecService.recoverFileData(null, // corrupted data
|
|
34
|
+
parityData, originalSize);
|
|
35
|
+
if (result.recovered) {
|
|
36
|
+
console.log('File successfully recovered!');
|
|
37
|
+
return result.data;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
throw new Error('File recovery failed');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Example: Verify file integrity using parity data
|
|
45
|
+
*/
|
|
46
|
+
async verifyFile(fileData, parityData) {
|
|
47
|
+
return await this.fecService.verifyFileIntegrity(fileData, parityData);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Complete example workflow
|
|
51
|
+
*/
|
|
52
|
+
async demonstrateWorkflow() {
|
|
53
|
+
// Original file data
|
|
54
|
+
const originalFile = Buffer.from('This is important file data that needs protection!');
|
|
55
|
+
// Step 1: Create parity data
|
|
56
|
+
console.log('Creating parity data...');
|
|
57
|
+
const { parityData, originalSize } = await this.createFileWithParity(originalFile, 2);
|
|
58
|
+
// Step 2: Verify integrity
|
|
59
|
+
console.log('Verifying file integrity...');
|
|
60
|
+
const isValid = await this.verifyFile(originalFile, parityData);
|
|
61
|
+
console.log('File integrity check:', isValid ? 'PASSED' : 'FAILED');
|
|
62
|
+
// Step 3: Simulate file corruption and recovery
|
|
63
|
+
console.log('Simulating file corruption and recovery...');
|
|
64
|
+
const recoveredFile = await this.recoverCorruptedFile(parityData, originalSize);
|
|
65
|
+
// Step 4: Verify recovery
|
|
66
|
+
const recoverySuccessful = originalFile.equals(Buffer.isBuffer(recoveredFile)
|
|
67
|
+
? recoveredFile
|
|
68
|
+
: Buffer.from(recoveredFile));
|
|
69
|
+
console.log('Recovery successful:', recoverySuccessful ? 'YES' : 'NO');
|
|
70
|
+
return {
|
|
71
|
+
originalFile,
|
|
72
|
+
recoveredFile,
|
|
73
|
+
parityData,
|
|
74
|
+
recoverySuccessful,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.FecUsageExample = FecUsageExample;
|
|
79
|
+
//# sourceMappingURL=fecUsageExample.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fecUsageExample.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/fecUsageExample.ts"],"names":[],"mappings":";;;AACA,+BAAuC;AAEvC;;GAEG;AACH,MAAa,eAAe;IAA5B;QACU,eAAU,GAAG,IAAI,oBAAc,EAAE,CAAC;IAgG5C,CAAC;IA9FC;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,QAAgB,EAAE,cAAsB,CAAC;QAClE,qBAAqB;QACrB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CACvD,QAAQ,EACR,WAAW,CACZ,CAAC;QAEF,uCAAuC;QACvC,yDAAyD;QACzD,wFAAwF;QACxF,iDAAiD;QAEjD,OAAO;YACL,YAAY,EAAE,QAAQ;YACtB,UAAU;YACV,YAAY,EAAE,QAAQ,CAAC,MAAM;SAC9B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,UAAwB,EAAE,YAAoB;QACvE,kDAAkD;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAClD,IAAI,EAAE,iBAAiB;QACvB,UAAU,EACV,YAAY,CACb,CAAC;QAEF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,QAAgB,EAChB,UAAwB;QAExB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB;QACvB,qBAAqB;QACrB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAC9B,oDAAoD,CACrD,CAAC;QAEF,6BAA6B;QAC7B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAClE,YAAY,EACZ,CAAC,CACF,CAAC;QAEF,2BAA2B;QAC3B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEpE,gDAAgD;QAChD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACnD,UAAU,EACV,YAAY,CACb,CAAC;QAEF,0BAA0B;QAC1B,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAC5C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5B,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAC/B,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEvE,OAAO;YACL,YAAY;YACZ,aAAa;YACb,UAAU;YACV,kBAAkB;SACnB,CAAC;IACJ,CAAC;CACF;AAjGD,0CAiGC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { SecureString } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { SecureBuffer } from '@digitaldefiance/node-ecies-lib';
|
|
3
|
+
export interface WrappedKey {
|
|
4
|
+
salt: string;
|
|
5
|
+
iv: string;
|
|
6
|
+
authTag: string;
|
|
7
|
+
encryptedMasterKey: string;
|
|
8
|
+
iterations: number;
|
|
9
|
+
}
|
|
10
|
+
export interface PasswordWrappedSecret {
|
|
11
|
+
salt: string;
|
|
12
|
+
iv: string;
|
|
13
|
+
authTag: string;
|
|
14
|
+
ciphertext: string;
|
|
15
|
+
iterations: number;
|
|
16
|
+
}
|
|
17
|
+
export declare class KeyWrappingService {
|
|
18
|
+
private static inFlightUnwraps;
|
|
19
|
+
/**
|
|
20
|
+
* Generates a new master key and wraps it with the user's password
|
|
21
|
+
*/
|
|
22
|
+
wrapNewMasterKey(password: SecureString): {
|
|
23
|
+
masterKey: SecureBuffer;
|
|
24
|
+
wrappedKey: WrappedKey;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Wraps an existing master key with a password-derived key
|
|
28
|
+
*/
|
|
29
|
+
wrapMasterKey(masterKey: SecureBuffer, password: SecureString): WrappedKey;
|
|
30
|
+
/**
|
|
31
|
+
* Unwraps a master key using the user's password
|
|
32
|
+
*/
|
|
33
|
+
unwrapMasterKey(wrappedKey: WrappedKey, password: SecureString): SecureBuffer;
|
|
34
|
+
/**
|
|
35
|
+
* Async version of unwrapMasterKey that uses libuv threadpool via crypto.pbkdf2
|
|
36
|
+
* to avoid blocking the event loop during password verification.
|
|
37
|
+
*/
|
|
38
|
+
unwrapMasterKeyAsync(wrappedKey: WrappedKey, password: SecureString | string): Promise<SecureBuffer>;
|
|
39
|
+
/**
|
|
40
|
+
* Deduplicated async unwrap that coalesces concurrent identical PBKDF2 operations.
|
|
41
|
+
* Keyed by salt + iterations + a short hash of the password. Entry is removed after resolve/reject.
|
|
42
|
+
*/
|
|
43
|
+
unwrapMasterKeyAsyncDedup(wrappedKey: WrappedKey, password: string): Promise<SecureBuffer>;
|
|
44
|
+
/**
|
|
45
|
+
* Changes password by re-wrapping the master key
|
|
46
|
+
*/
|
|
47
|
+
changePassword(wrappedKey: WrappedKey, oldPassword: SecureString, newPassword: SecureString): WrappedKey;
|
|
48
|
+
/**
|
|
49
|
+
* Wraps arbitrary secret bytes with a password-derived key (AES-256-GCM)
|
|
50
|
+
*/
|
|
51
|
+
wrapSecret(secret: SecureBuffer, password: SecureString): PasswordWrappedSecret;
|
|
52
|
+
/**
|
|
53
|
+
* Unwraps a password-wrapped secret (sync)
|
|
54
|
+
*/
|
|
55
|
+
unwrapSecret(wrapped: PasswordWrappedSecret, password: SecureString): SecureBuffer;
|
|
56
|
+
/**
|
|
57
|
+
* Unwraps a password-wrapped secret (async PBKDF2)
|
|
58
|
+
*/
|
|
59
|
+
unwrapSecretAsync(wrapped: PasswordWrappedSecret, password: SecureString | string): Promise<SecureBuffer>;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=keyWrapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyWrapping.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/keyWrapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAY/D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,kBAAkB;IAG7B,OAAO,CAAC,MAAM,CAAC,eAAe,CAA2C;IAEzE;;OAEG;IACI,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG;QAC/C,SAAS,EAAE,YAAY,CAAC;QACxB,UAAU,EAAE,UAAU,CAAC;KACxB;IAQD;;OAEG;IACI,aAAa,CAClB,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,YAAY,GACrB,UAAU;IA0Cb;;OAEG;IACI,eAAe,CACpB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,GACrB,YAAY;IAwCf;;;OAGG;IACU,oBAAoB,CAC/B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,GAAG,MAAM,GAC9B,OAAO,CAAC,YAAY,CAAC;IA+DxB;;;OAGG;IACU,yBAAyB,CACpC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC;IAmCxB;;OAEG;IACI,cAAc,CACnB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,YAAY,EACzB,WAAW,EAAE,YAAY,GACxB,UAAU;IAYb;;OAEG;IACI,UAAU,CACf,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,YAAY,GACrB,qBAAqB;IAwCxB;;OAEG;IACI,YAAY,CACjB,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,YAAY,GACrB,YAAY;IAqCf;;OAEG;IACU,iBAAiB,CAC5B,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,YAAY,GAAG,MAAM,GAC9B,OAAO,CAAC,YAAY,CAAC;CA8DzB"}
|