@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 @@
|
|
|
1
|
+
{"version":3,"file":"diskBlockAsyncStore.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskBlockAsyncStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { BlockSize, IBlockMetadata, IBlockMetadataStore, ReplicationStatus } from '@brightchain/brightchain-lib';
|
|
2
|
+
/**
|
|
3
|
+
* Disk-based implementation of IBlockMetadataStore.
|
|
4
|
+
*
|
|
5
|
+
* This implementation stores block metadata as JSON files alongside block data files.
|
|
6
|
+
* Metadata files use the `.m.json` extension and follow the same directory structure
|
|
7
|
+
* as block files: {storePath}/{blockSize}/{first2}/{next2}/{blockId}.m.json
|
|
8
|
+
*
|
|
9
|
+
* Features:
|
|
10
|
+
* - Persistent storage of block metadata
|
|
11
|
+
* - Atomic writes using temporary files
|
|
12
|
+
* - Version-aware serialization for future schema migrations
|
|
13
|
+
* - Efficient directory scanning for queries
|
|
14
|
+
*
|
|
15
|
+
* @see IBlockMetadataStore for the interface definition
|
|
16
|
+
* @see MemoryBlockMetadataStore for an in-memory implementation
|
|
17
|
+
*/
|
|
18
|
+
export declare class DiskBlockMetadataStore implements IBlockMetadataStore {
|
|
19
|
+
private readonly storePath;
|
|
20
|
+
private readonly blockSize;
|
|
21
|
+
/**
|
|
22
|
+
* Create a new DiskBlockMetadataStore.
|
|
23
|
+
* @param storePath - The base path for storing metadata files
|
|
24
|
+
* @param blockSize - The block size for this store (determines directory structure)
|
|
25
|
+
*/
|
|
26
|
+
constructor(storePath: string, blockSize: BlockSize);
|
|
27
|
+
/**
|
|
28
|
+
* Get the directory path for a block's metadata.
|
|
29
|
+
* Directory structure: storePath/blockSize/checksumChar1/checksumChar2/
|
|
30
|
+
* @param blockId - The block ID (hex string)
|
|
31
|
+
* @returns The directory path
|
|
32
|
+
*/
|
|
33
|
+
private metadataDir;
|
|
34
|
+
/**
|
|
35
|
+
* Get the file path for a block's metadata.
|
|
36
|
+
* File structure: storePath/blockSize/checksumChar1/checksumChar2/blockId.m.json
|
|
37
|
+
* @param blockId - The block ID (hex string)
|
|
38
|
+
* @returns The metadata file path
|
|
39
|
+
*/
|
|
40
|
+
private metadataPath;
|
|
41
|
+
/**
|
|
42
|
+
* Ensure the directory structure exists for a metadata file.
|
|
43
|
+
* @param blockId - The block ID (hex string)
|
|
44
|
+
*/
|
|
45
|
+
private ensureMetadataDir;
|
|
46
|
+
/**
|
|
47
|
+
* Serialize metadata to the file format.
|
|
48
|
+
* @param metadata - The metadata to serialize
|
|
49
|
+
* @returns The serialized metadata object
|
|
50
|
+
*/
|
|
51
|
+
private serializeMetadata;
|
|
52
|
+
/**
|
|
53
|
+
* Deserialize metadata from the file format.
|
|
54
|
+
* @param file - The serialized metadata object
|
|
55
|
+
* @returns The deserialized metadata
|
|
56
|
+
*/
|
|
57
|
+
private deserializeMetadata;
|
|
58
|
+
/**
|
|
59
|
+
* Create and store metadata for a new block.
|
|
60
|
+
* @param metadata - The complete metadata record to store
|
|
61
|
+
* @throws StoreError if metadata for this blockId already exists
|
|
62
|
+
*/
|
|
63
|
+
create(metadata: IBlockMetadata): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Get metadata for a block by its ID.
|
|
66
|
+
* @param blockId - The unique identifier of the block
|
|
67
|
+
* @returns The block's metadata, or null if not found
|
|
68
|
+
*/
|
|
69
|
+
get(blockId: string): Promise<IBlockMetadata | null>;
|
|
70
|
+
/**
|
|
71
|
+
* Update metadata for an existing block.
|
|
72
|
+
* @param blockId - The unique identifier of the block
|
|
73
|
+
* @param updates - Partial metadata updates to apply
|
|
74
|
+
* @throws StoreError if no metadata exists for this blockId
|
|
75
|
+
*/
|
|
76
|
+
update(blockId: string, updates: Partial<IBlockMetadata>): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Delete metadata for a block.
|
|
79
|
+
* @param blockId - The unique identifier of the block
|
|
80
|
+
* @throws StoreError if no metadata exists for this blockId
|
|
81
|
+
*/
|
|
82
|
+
delete(blockId: string): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Find all blocks that have expired (expiresAt is in the past).
|
|
85
|
+
* This method scans all metadata files in the store.
|
|
86
|
+
* @returns Array of metadata for expired blocks
|
|
87
|
+
*/
|
|
88
|
+
findExpired(): Promise<IBlockMetadata[]>;
|
|
89
|
+
/**
|
|
90
|
+
* Find all blocks with a specific replication status.
|
|
91
|
+
* This method scans all metadata files in the store.
|
|
92
|
+
* @param status - The replication status to filter by
|
|
93
|
+
* @returns Array of metadata for blocks with the specified status
|
|
94
|
+
*/
|
|
95
|
+
findByReplicationStatus(status: ReplicationStatus): Promise<IBlockMetadata[]>;
|
|
96
|
+
/**
|
|
97
|
+
* Record an access to a block, updating accessCount and lastAccessedAt.
|
|
98
|
+
* @param blockId - The unique identifier of the block
|
|
99
|
+
* @throws StoreError if no metadata exists for this blockId
|
|
100
|
+
*/
|
|
101
|
+
recordAccess(blockId: string): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Scan all metadata files in the store and call the callback for each.
|
|
104
|
+
* This is used for queries that need to examine all metadata.
|
|
105
|
+
* @param callback - Function to call for each metadata record
|
|
106
|
+
*/
|
|
107
|
+
private scanAllMetadata;
|
|
108
|
+
/**
|
|
109
|
+
* Check if metadata exists for a block.
|
|
110
|
+
* @param blockId - The unique identifier of the block
|
|
111
|
+
* @returns True if metadata exists
|
|
112
|
+
*/
|
|
113
|
+
has(blockId: string): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Get the store path.
|
|
116
|
+
* @returns The base path for storing metadata files
|
|
117
|
+
*/
|
|
118
|
+
getStorePath(): string;
|
|
119
|
+
/**
|
|
120
|
+
* Get the block size.
|
|
121
|
+
* @returns The block size for this store
|
|
122
|
+
*/
|
|
123
|
+
getBlockSize(): BlockSize;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=diskBlockMetadataStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diskBlockMetadataStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskBlockMetadataStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EAGlB,MAAM,8BAA8B,CAAC;AAqCtC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC;;;;OAIG;gBACS,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;IAcnD;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IASnB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IASpB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;;;OAIG;IACU,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B5D;;;;OAIG;IACU,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAmBjE;;;;;OAKG;IACU,MAAM,CACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC;IAgChB;;;;OAIG;IACU,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnD;;;;OAIG;IACU,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAarD;;;;;OAKG;IACU,uBAAuB,CAClC,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,cAAc,EAAE,CAAC;IAY5B;;;;OAIG;IACU,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAczD;;;;OAIG;YACW,eAAe;IA4D7B;;;;OAIG;IACI,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKpC;;;OAGG;IACI,YAAY,IAAI,MAAM;IAI7B;;;OAGG;IACI,YAAY,IAAI,SAAS;CAGjC"}
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DiskBlockMetadataStore = void 0;
|
|
4
|
+
const brightchain_lib_1 = require("@brightchain/brightchain-lib");
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const promises_1 = require("fs/promises");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
/**
|
|
9
|
+
* Version number for the metadata file format.
|
|
10
|
+
* Increment this when making breaking changes to the schema.
|
|
11
|
+
*/
|
|
12
|
+
const METADATA_FILE_VERSION = 1;
|
|
13
|
+
/**
|
|
14
|
+
* File extension for metadata files.
|
|
15
|
+
* Metadata files are stored alongside block data files.
|
|
16
|
+
*/
|
|
17
|
+
const METADATA_FILE_EXTENSION = '.m.json';
|
|
18
|
+
/**
|
|
19
|
+
* Disk-based implementation of IBlockMetadataStore.
|
|
20
|
+
*
|
|
21
|
+
* This implementation stores block metadata as JSON files alongside block data files.
|
|
22
|
+
* Metadata files use the `.m.json` extension and follow the same directory structure
|
|
23
|
+
* as block files: {storePath}/{blockSize}/{first2}/{next2}/{blockId}.m.json
|
|
24
|
+
*
|
|
25
|
+
* Features:
|
|
26
|
+
* - Persistent storage of block metadata
|
|
27
|
+
* - Atomic writes using temporary files
|
|
28
|
+
* - Version-aware serialization for future schema migrations
|
|
29
|
+
* - Efficient directory scanning for queries
|
|
30
|
+
*
|
|
31
|
+
* @see IBlockMetadataStore for the interface definition
|
|
32
|
+
* @see MemoryBlockMetadataStore for an in-memory implementation
|
|
33
|
+
*/
|
|
34
|
+
class DiskBlockMetadataStore {
|
|
35
|
+
/**
|
|
36
|
+
* Create a new DiskBlockMetadataStore.
|
|
37
|
+
* @param storePath - The base path for storing metadata files
|
|
38
|
+
* @param blockSize - The block size for this store (determines directory structure)
|
|
39
|
+
*/
|
|
40
|
+
constructor(storePath, blockSize) {
|
|
41
|
+
if (!storePath) {
|
|
42
|
+
throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.StorePathRequired);
|
|
43
|
+
}
|
|
44
|
+
this.storePath = storePath;
|
|
45
|
+
this.blockSize = blockSize;
|
|
46
|
+
// Ensure store path exists
|
|
47
|
+
if (!(0, fs_1.existsSync)(storePath)) {
|
|
48
|
+
(0, fs_1.mkdirSync)(storePath, { recursive: true });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get the directory path for a block's metadata.
|
|
53
|
+
* Directory structure: storePath/blockSize/checksumChar1/checksumChar2/
|
|
54
|
+
* @param blockId - The block ID (hex string)
|
|
55
|
+
* @returns The directory path
|
|
56
|
+
*/
|
|
57
|
+
metadataDir(blockId) {
|
|
58
|
+
if (!blockId || blockId.length < 2) {
|
|
59
|
+
throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.InvalidBlockIdTooShort);
|
|
60
|
+
}
|
|
61
|
+
const blockSizeString = (0, brightchain_lib_1.blockSizeToSizeString)(this.blockSize);
|
|
62
|
+
return (0, path_1.join)(this.storePath, blockSizeString, blockId[0], blockId[1]);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get the file path for a block's metadata.
|
|
66
|
+
* File structure: storePath/blockSize/checksumChar1/checksumChar2/blockId.m.json
|
|
67
|
+
* @param blockId - The block ID (hex string)
|
|
68
|
+
* @returns The metadata file path
|
|
69
|
+
*/
|
|
70
|
+
metadataPath(blockId) {
|
|
71
|
+
if (!blockId || blockId.length < 2) {
|
|
72
|
+
throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.InvalidBlockIdTooShort);
|
|
73
|
+
}
|
|
74
|
+
const dir = this.metadataDir(blockId);
|
|
75
|
+
return (0, path_1.join)(dir, blockId + METADATA_FILE_EXTENSION);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Ensure the directory structure exists for a metadata file.
|
|
79
|
+
* @param blockId - The block ID (hex string)
|
|
80
|
+
*/
|
|
81
|
+
ensureMetadataDir(blockId) {
|
|
82
|
+
const dir = this.metadataDir(blockId);
|
|
83
|
+
if (!(0, fs_1.existsSync)(dir)) {
|
|
84
|
+
(0, fs_1.mkdirSync)(dir, { recursive: true });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Serialize metadata to the file format.
|
|
89
|
+
* @param metadata - The metadata to serialize
|
|
90
|
+
* @returns The serialized metadata object
|
|
91
|
+
*/
|
|
92
|
+
serializeMetadata(metadata) {
|
|
93
|
+
return {
|
|
94
|
+
version: METADATA_FILE_VERSION,
|
|
95
|
+
blockId: metadata.blockId,
|
|
96
|
+
createdAt: metadata.createdAt.toISOString(),
|
|
97
|
+
expiresAt: metadata.expiresAt ? metadata.expiresAt.toISOString() : null,
|
|
98
|
+
durabilityLevel: metadata.durabilityLevel,
|
|
99
|
+
parityBlockIds: [...metadata.parityBlockIds],
|
|
100
|
+
accessCount: metadata.accessCount,
|
|
101
|
+
lastAccessedAt: metadata.lastAccessedAt.toISOString(),
|
|
102
|
+
replicationStatus: metadata.replicationStatus,
|
|
103
|
+
targetReplicationFactor: metadata.targetReplicationFactor,
|
|
104
|
+
replicaNodeIds: [...metadata.replicaNodeIds],
|
|
105
|
+
size: metadata.size,
|
|
106
|
+
checksum: metadata.checksum,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Deserialize metadata from the file format.
|
|
111
|
+
* @param file - The serialized metadata object
|
|
112
|
+
* @returns The deserialized metadata
|
|
113
|
+
*/
|
|
114
|
+
deserializeMetadata(file) {
|
|
115
|
+
return {
|
|
116
|
+
blockId: file.blockId,
|
|
117
|
+
createdAt: new Date(file.createdAt),
|
|
118
|
+
expiresAt: file.expiresAt ? new Date(file.expiresAt) : null,
|
|
119
|
+
durabilityLevel: file.durabilityLevel,
|
|
120
|
+
parityBlockIds: [...file.parityBlockIds],
|
|
121
|
+
accessCount: file.accessCount,
|
|
122
|
+
lastAccessedAt: new Date(file.lastAccessedAt),
|
|
123
|
+
replicationStatus: file.replicationStatus,
|
|
124
|
+
targetReplicationFactor: file.targetReplicationFactor,
|
|
125
|
+
replicaNodeIds: [...file.replicaNodeIds],
|
|
126
|
+
size: file.size,
|
|
127
|
+
checksum: file.checksum,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Create and store metadata for a new block.
|
|
132
|
+
* @param metadata - The complete metadata record to store
|
|
133
|
+
* @throws StoreError if metadata for this blockId already exists
|
|
134
|
+
*/
|
|
135
|
+
async create(metadata) {
|
|
136
|
+
const filePath = this.metadataPath(metadata.blockId);
|
|
137
|
+
if ((0, fs_1.existsSync)(filePath)) {
|
|
138
|
+
throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockAlreadyExists, undefined, {
|
|
139
|
+
KEY: metadata.blockId,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
this.ensureMetadataDir(metadata.blockId);
|
|
143
|
+
const serialized = this.serializeMetadata(metadata);
|
|
144
|
+
const json = JSON.stringify(serialized, null, 2);
|
|
145
|
+
try {
|
|
146
|
+
await (0, promises_1.writeFile)(filePath, json, 'utf-8');
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockDirectoryCreationFailed, undefined, {
|
|
150
|
+
ERROR: error instanceof Error ? error.message : String(error),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Get metadata for a block by its ID.
|
|
156
|
+
* @param blockId - The unique identifier of the block
|
|
157
|
+
* @returns The block's metadata, or null if not found
|
|
158
|
+
*/
|
|
159
|
+
async get(blockId) {
|
|
160
|
+
const filePath = this.metadataPath(blockId);
|
|
161
|
+
if (!(0, fs_1.existsSync)(filePath)) {
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
try {
|
|
165
|
+
const json = await (0, promises_1.readFile)(filePath, 'utf-8');
|
|
166
|
+
const file = JSON.parse(json);
|
|
167
|
+
return this.deserializeMetadata(file);
|
|
168
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
169
|
+
}
|
|
170
|
+
catch (_error) {
|
|
171
|
+
// If the file is corrupted or unreadable, return null
|
|
172
|
+
// The caller can decide how to handle this
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Update metadata for an existing block.
|
|
178
|
+
* @param blockId - The unique identifier of the block
|
|
179
|
+
* @param updates - Partial metadata updates to apply
|
|
180
|
+
* @throws StoreError if no metadata exists for this blockId
|
|
181
|
+
*/
|
|
182
|
+
async update(blockId, updates) {
|
|
183
|
+
const existing = await this.get(blockId);
|
|
184
|
+
if (!existing) {
|
|
185
|
+
throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.KeyNotFound, undefined, {
|
|
186
|
+
KEY: blockId,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
// Apply updates while preserving the blockId
|
|
190
|
+
const updated = {
|
|
191
|
+
...existing,
|
|
192
|
+
...updates,
|
|
193
|
+
blockId: existing.blockId, // Prevent blockId from being changed
|
|
194
|
+
};
|
|
195
|
+
const filePath = this.metadataPath(blockId);
|
|
196
|
+
const serialized = this.serializeMetadata(updated);
|
|
197
|
+
const json = JSON.stringify(serialized, null, 2);
|
|
198
|
+
try {
|
|
199
|
+
await (0, promises_1.writeFile)(filePath, json, 'utf-8');
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockDirectoryCreationFailed, undefined, {
|
|
203
|
+
ERROR: error instanceof Error ? error.message : String(error),
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Delete metadata for a block.
|
|
209
|
+
* @param blockId - The unique identifier of the block
|
|
210
|
+
* @throws StoreError if no metadata exists for this blockId
|
|
211
|
+
*/
|
|
212
|
+
async delete(blockId) {
|
|
213
|
+
const filePath = this.metadataPath(blockId);
|
|
214
|
+
if (!(0, fs_1.existsSync)(filePath)) {
|
|
215
|
+
throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.KeyNotFound, undefined, {
|
|
216
|
+
KEY: blockId,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
try {
|
|
220
|
+
await (0, promises_1.unlink)(filePath);
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockDeletionFailed, undefined, {
|
|
224
|
+
ERROR: error instanceof Error ? error.message : String(error),
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Find all blocks that have expired (expiresAt is in the past).
|
|
230
|
+
* This method scans all metadata files in the store.
|
|
231
|
+
* @returns Array of metadata for expired blocks
|
|
232
|
+
*/
|
|
233
|
+
async findExpired() {
|
|
234
|
+
const now = new Date();
|
|
235
|
+
const expired = [];
|
|
236
|
+
await this.scanAllMetadata(async (metadata) => {
|
|
237
|
+
if (metadata.expiresAt !== null && metadata.expiresAt < now) {
|
|
238
|
+
expired.push(metadata);
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
return expired;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Find all blocks with a specific replication status.
|
|
245
|
+
* This method scans all metadata files in the store.
|
|
246
|
+
* @param status - The replication status to filter by
|
|
247
|
+
* @returns Array of metadata for blocks with the specified status
|
|
248
|
+
*/
|
|
249
|
+
async findByReplicationStatus(status) {
|
|
250
|
+
const matching = [];
|
|
251
|
+
await this.scanAllMetadata(async (metadata) => {
|
|
252
|
+
if (metadata.replicationStatus === status) {
|
|
253
|
+
matching.push(metadata);
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
return matching;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Record an access to a block, updating accessCount and lastAccessedAt.
|
|
260
|
+
* @param blockId - The unique identifier of the block
|
|
261
|
+
* @throws StoreError if no metadata exists for this blockId
|
|
262
|
+
*/
|
|
263
|
+
async recordAccess(blockId) {
|
|
264
|
+
const existing = await this.get(blockId);
|
|
265
|
+
if (!existing) {
|
|
266
|
+
throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.KeyNotFound, undefined, {
|
|
267
|
+
KEY: blockId,
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
await this.update(blockId, {
|
|
271
|
+
accessCount: existing.accessCount + 1,
|
|
272
|
+
lastAccessedAt: new Date(),
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Scan all metadata files in the store and call the callback for each.
|
|
277
|
+
* This is used for queries that need to examine all metadata.
|
|
278
|
+
* @param callback - Function to call for each metadata record
|
|
279
|
+
*/
|
|
280
|
+
async scanAllMetadata(callback) {
|
|
281
|
+
const blockSizeString = (0, brightchain_lib_1.blockSizeToSizeString)(this.blockSize);
|
|
282
|
+
const basePath = (0, path_1.join)(this.storePath, blockSizeString);
|
|
283
|
+
if (!(0, fs_1.existsSync)(basePath)) {
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
try {
|
|
287
|
+
// Scan first level directories (first character of checksum)
|
|
288
|
+
const firstLevelDirs = await (0, promises_1.readdir)(basePath);
|
|
289
|
+
for (const firstDir of firstLevelDirs) {
|
|
290
|
+
const firstLevelPath = (0, path_1.join)(basePath, firstDir);
|
|
291
|
+
const firstStats = await (0, promises_1.stat)(firstLevelPath);
|
|
292
|
+
if (!firstStats.isDirectory()) {
|
|
293
|
+
continue;
|
|
294
|
+
}
|
|
295
|
+
// Scan second level directories (second character of checksum)
|
|
296
|
+
const secondLevelDirs = await (0, promises_1.readdir)(firstLevelPath);
|
|
297
|
+
for (const secondDir of secondLevelDirs) {
|
|
298
|
+
const secondLevelPath = (0, path_1.join)(firstLevelPath, secondDir);
|
|
299
|
+
const secondStats = await (0, promises_1.stat)(secondLevelPath);
|
|
300
|
+
if (!secondStats.isDirectory()) {
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
303
|
+
// Scan metadata files
|
|
304
|
+
const files = await (0, promises_1.readdir)(secondLevelPath);
|
|
305
|
+
const metadataFiles = files.filter((f) => f.endsWith(METADATA_FILE_EXTENSION));
|
|
306
|
+
for (const metadataFile of metadataFiles) {
|
|
307
|
+
const blockId = metadataFile.slice(0, -METADATA_FILE_EXTENSION.length);
|
|
308
|
+
const metadata = await this.get(blockId);
|
|
309
|
+
if (metadata) {
|
|
310
|
+
await callback(metadata);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
catch {
|
|
317
|
+
// If we can't read the directory structure, just return
|
|
318
|
+
// This handles cases where the store is empty or corrupted
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
// === Utility Methods ===
|
|
322
|
+
/**
|
|
323
|
+
* Check if metadata exists for a block.
|
|
324
|
+
* @param blockId - The unique identifier of the block
|
|
325
|
+
* @returns True if metadata exists
|
|
326
|
+
*/
|
|
327
|
+
has(blockId) {
|
|
328
|
+
const filePath = this.metadataPath(blockId);
|
|
329
|
+
return (0, fs_1.existsSync)(filePath);
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Get the store path.
|
|
333
|
+
* @returns The base path for storing metadata files
|
|
334
|
+
*/
|
|
335
|
+
getStorePath() {
|
|
336
|
+
return this.storePath;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Get the block size.
|
|
340
|
+
* @returns The block size for this store
|
|
341
|
+
*/
|
|
342
|
+
getBlockSize() {
|
|
343
|
+
return this.blockSize;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
exports.DiskBlockMetadataStore = DiskBlockMetadataStore;
|
|
347
|
+
//# sourceMappingURL=diskBlockMetadataStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diskBlockMetadataStore.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskBlockMetadataStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BlockSize, Checksum } from '@brightchain/brightchain-lib';
|
|
2
|
+
/**
|
|
3
|
+
* DiskBlockStore provides base functionality for storing blocks on disk.
|
|
4
|
+
* It handles block paths, metadata paths, and directory structure.
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class DiskBlockStore {
|
|
7
|
+
protected readonly _storePath: string;
|
|
8
|
+
protected readonly _blockSize: BlockSize;
|
|
9
|
+
protected constructor(config: {
|
|
10
|
+
storePath: string;
|
|
11
|
+
blockSize: BlockSize;
|
|
12
|
+
});
|
|
13
|
+
/**
|
|
14
|
+
* Get the directory path for a block
|
|
15
|
+
* Directory structure: storePath/blockSize/checksumChar1/checksumChar2/
|
|
16
|
+
*/
|
|
17
|
+
protected blockDir(blockId: Checksum): string;
|
|
18
|
+
/**
|
|
19
|
+
* Get the file path for a block
|
|
20
|
+
* File structure: storePath/blockSize/checksumChar1/checksumChar2/fullChecksum
|
|
21
|
+
*/
|
|
22
|
+
protected blockPath(blockId: Checksum): string;
|
|
23
|
+
/**
|
|
24
|
+
* Get the metadata file path for a block
|
|
25
|
+
* Metadata files are stored alongside block files with a .m.json extension
|
|
26
|
+
*/
|
|
27
|
+
protected metadataPath(blockId: Checksum): string;
|
|
28
|
+
/**
|
|
29
|
+
* Ensure the directory structure exists for a block
|
|
30
|
+
*/
|
|
31
|
+
protected ensureBlockPath(blockId: Checksum): void;
|
|
32
|
+
/**
|
|
33
|
+
* Get the block size
|
|
34
|
+
*/
|
|
35
|
+
get blockSize(): BlockSize;
|
|
36
|
+
/**
|
|
37
|
+
* Get the store path
|
|
38
|
+
*/
|
|
39
|
+
get storePath(): string;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=diskBlockStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diskBlockStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskBlockStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,QAAQ,EAGT,MAAM,8BAA8B,CAAC;AAItC;;;GAGG;AACH,8BAAsB,cAAc;IAClC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAEzC,SAAS,aAAa,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,CAAA;KAAE;IAkBzE;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM;IAe7C;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM;IAgB9C;;;OAGG;IACH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM;IAIjD;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAiBlD;;OAEG;IACH,IAAW,SAAS,IAAI,SAAS,CAEhC;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,MAAM,CAE7B;CACF"}
|