@decaf-ts/for-fabric 0.9.0 → 0.11.0
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/lib/cjs/bin/cli.cjs +3 -2
- package/lib/cjs/bin/cli.cjs.map +1 -0
- package/lib/cjs/cli-module.cjs +26 -25
- package/lib/cjs/cli-module.cjs.map +1 -0
- package/lib/cjs/cli-utils.cjs +5 -5
- package/lib/cjs/cli-utils.cjs.map +1 -0
- package/lib/cjs/client/FabricClientAdapter.cjs +46 -40
- package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
- package/lib/cjs/client/FabricClientDispatch.cjs +8 -7
- package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
- package/lib/cjs/client/FabricClientPaginator.cjs +1 -0
- package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
- package/lib/cjs/client/FabricClientRepository.cjs +4 -3
- package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
- package/lib/cjs/client/FabricClientStatement.cjs +1 -0
- package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
- package/lib/cjs/client/collections/generation.cjs +3 -2
- package/lib/cjs/client/collections/generation.cjs.map +1 -0
- package/lib/cjs/client/collections/index.cjs +1 -0
- package/lib/cjs/client/collections/index.cjs.map +1 -0
- package/lib/cjs/client/constants.cjs +1 -0
- package/lib/cjs/client/constants.cjs.map +1 -0
- package/lib/cjs/client/crypto.cjs +12 -13
- package/lib/cjs/client/crypto.cjs.map +1 -0
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +7 -6
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
- package/lib/cjs/client/erc20/index.cjs +1 -0
- package/lib/cjs/client/erc20/index.cjs.map +1 -0
- package/lib/cjs/client/fabric-fs.cjs +1 -0
- package/lib/cjs/client/fabric-fs.cjs.map +1 -0
- package/lib/cjs/client/fabric-hsm.cjs +3 -2
- package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
- package/lib/cjs/client/ids/id-extraction.cjs +1 -0
- package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
- package/lib/cjs/client/ids/index.cjs +1 -0
- package/lib/cjs/client/ids/index.cjs.map +1 -0
- package/lib/cjs/client/index.cjs +10 -9
- package/lib/cjs/client/index.cjs.map +1 -0
- package/lib/cjs/client/indexes/generation.cjs +1 -0
- package/lib/cjs/client/indexes/generation.cjs.map +1 -0
- package/lib/cjs/client/indexes/index.cjs +1 -0
- package/lib/cjs/client/indexes/index.cjs.map +1 -0
- package/lib/cjs/client/logging.cjs +1 -0
- package/lib/cjs/client/logging.cjs.map +1 -0
- package/lib/cjs/client/services/FabricEnrollmentService.cjs +17 -32
- package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
- package/lib/cjs/client/services/FabricIdentityService.cjs +15 -14
- package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +11 -5
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
- package/lib/cjs/client/services/constants.cjs +2 -9
- package/lib/cjs/client/services/constants.cjs.map +1 -0
- package/lib/cjs/client/services/index.cjs +1 -0
- package/lib/cjs/client/services/index.cjs.map +1 -0
- package/lib/cjs/client/types.cjs +1 -0
- package/lib/cjs/client/types.cjs.map +1 -0
- package/lib/cjs/client/utils.cjs +1 -0
- package/lib/cjs/client/utils.cjs.map +1 -0
- package/lib/cjs/contract/Address.cjs +14 -8
- package/lib/cjs/contract/Address.cjs.map +1 -0
- package/lib/cjs/contract/AddressContract.cjs +15 -9
- package/lib/cjs/contract/AddressContract.cjs.map +1 -0
- package/lib/cjs/contract/AuditContract.cjs +15 -9
- package/lib/cjs/contract/AuditContract.cjs.map +1 -0
- package/lib/cjs/contract/BatchContract.cjs +15 -9
- package/lib/cjs/contract/BatchContract.cjs.map +1 -0
- package/lib/cjs/contract/MarketContract.cjs +15 -9
- package/lib/cjs/contract/MarketContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherAuditContract.cjs +15 -9
- package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherBatchContract.cjs +15 -9
- package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherMarketContract.cjs +15 -9
- package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductContract.cjs +15 -9
- package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductImageContract.cjs +15 -9
- package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductSharedContract.cjs +15 -9
- package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductStrengthContract.cjs +15 -9
- package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
- package/lib/cjs/contract/Product.cjs +15 -9
- package/lib/cjs/contract/Product.cjs.map +1 -0
- package/lib/cjs/contract/ProductContract.cjs +15 -9
- package/lib/cjs/contract/ProductContract.cjs.map +1 -0
- package/lib/cjs/contract/ProductStrengthContract.cjs +15 -9
- package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +15 -9
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +15 -9
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
- package/lib/cjs/contract/User.cjs +13 -7
- package/lib/cjs/contract/User.cjs.map +1 -0
- package/lib/cjs/contract/UserContract.cjs +15 -9
- package/lib/cjs/contract/UserContract.cjs.map +1 -0
- package/lib/cjs/contract/index.cjs +31 -30
- package/lib/cjs/contract/index.cjs.map +1 -0
- package/lib/cjs/contract/logging-context.cjs +1 -0
- package/lib/cjs/contract/logging-context.cjs.map +1 -0
- package/lib/cjs/contract/models/Audit.cjs +17 -11
- package/lib/cjs/contract/models/Audit.cjs.map +1 -0
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +15 -9
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
- package/lib/cjs/contract/models/BaseModel.cjs +13 -7
- package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
- package/lib/cjs/contract/models/Batch.cjs +24 -18
- package/lib/cjs/contract/models/Batch.cjs.map +1 -0
- package/lib/cjs/contract/models/GtinOwner.cjs +18 -12
- package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
- package/lib/cjs/contract/models/History.cjs +15 -9
- package/lib/cjs/contract/models/History.cjs.map +1 -0
- package/lib/cjs/contract/models/Leaflet.cjs +25 -19
- package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
- package/lib/cjs/contract/models/LeafletFile.cjs +19 -13
- package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/models/Market.cjs +19 -13
- package/lib/cjs/contract/models/Market.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherAudit.cjs +20 -14
- package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherBatchShared.cjs +27 -21
- package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherLeaflet.cjs +27 -21
- package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherLeafletFile.cjs +18 -12
- package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherMarket.cjs +21 -15
- package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProduct.cjs +24 -18
- package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductImage.cjs +22 -16
- package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductShared.cjs +32 -26
- package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductStrength.cjs +21 -15
- package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
- package/lib/cjs/contract/models/Product.cjs +24 -18
- package/lib/cjs/contract/models/Product.cjs.map +1 -0
- package/lib/cjs/contract/models/ProductStrength.cjs +19 -13
- package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
- package/lib/cjs/contract/models/SegregatedDocument.cjs +23 -17
- package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
- package/lib/cjs/contract/models/constants.cjs +3 -4
- package/lib/cjs/contract/models/constants.cjs.map +1 -0
- package/lib/cjs/contract/models/decorators-private.cjs +11 -10
- package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
- package/lib/cjs/contract/models/decorators.cjs +13 -12
- package/lib/cjs/contract/models/decorators.cjs.map +1 -0
- package/lib/cjs/contract/models/gtin.cjs +13 -7
- package/lib/cjs/contract/models/gtin.cjs.map +1 -0
- package/lib/cjs/contract/models/history-dec.cjs +11 -10
- package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
- package/lib/cjs/contracts/ContractAdapter.cjs +27 -26
- package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
- package/lib/cjs/contracts/ContractContext.cjs +1 -0
- package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractDispatch.cjs +1 -0
- package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractPaginator.cjs +5 -4
- package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractRepository.cjs +8 -7
- package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +3 -2
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractSequence.cjs +1 -0
- package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractStatement.cjs +5 -4
- package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
- package/lib/cjs/contracts/MigrationContract.cjs +20 -14
- package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
- package/lib/cjs/contracts/PrivateSequence.cjs +11 -5
- package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
- package/lib/cjs/contracts/auth/decorators.cjs +3 -2
- package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
- package/lib/cjs/contracts/auth/index.cjs +1 -0
- package/lib/cjs/contracts/auth/index.cjs.map +1 -0
- package/lib/cjs/contracts/crud/crud-contract.cjs +12 -11
- package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
- package/lib/cjs/contracts/crud/index.cjs +1 -0
- package/lib/cjs/contracts/crud/index.cjs.map +1 -0
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +13 -7
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/erc20contract.cjs +53 -47
- package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/index.cjs +3 -2
- package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/models.cjs +11 -5
- package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
- package/lib/cjs/contracts/index.cjs +1 -0
- package/lib/cjs/contracts/index.cjs.map +1 -0
- package/lib/cjs/contracts/logging.cjs +4 -3
- package/lib/cjs/contracts/logging.cjs.map +1 -0
- package/lib/cjs/contracts/overrides.cjs +3 -2
- package/lib/cjs/contracts/overrides.cjs.map +1 -0
- package/lib/cjs/contracts/types.cjs +1 -0
- package/lib/cjs/contracts/types.cjs.map +1 -0
- package/lib/cjs/contracts/uuid.cjs +1 -0
- package/lib/cjs/contracts/uuid.cjs.map +1 -0
- package/lib/cjs/index.cjs +6 -5
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/shared/ClientSerializer.cjs +1 -0
- package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
- package/lib/cjs/shared/DeterministicSerializer.cjs +1 -0
- package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +3 -2
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
- package/lib/cjs/shared/constants.cjs +3 -18
- package/lib/cjs/shared/constants.cjs.map +1 -0
- package/lib/cjs/shared/decorators.cjs +14 -13
- package/lib/cjs/shared/decorators.cjs.map +1 -0
- package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -9
- package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
- package/lib/cjs/shared/erc20/index.cjs +1 -0
- package/lib/cjs/shared/erc20/index.cjs.map +1 -0
- package/lib/cjs/shared/errors.cjs +1 -0
- package/lib/cjs/shared/errors.cjs.map +1 -0
- package/lib/cjs/shared/events.cjs +1 -0
- package/lib/cjs/shared/events.cjs.map +1 -0
- package/lib/cjs/shared/fabric-types.cjs +1 -0
- package/lib/cjs/shared/fabric-types.cjs.map +1 -0
- package/lib/cjs/shared/index.cjs +1 -0
- package/lib/cjs/shared/index.cjs.map +1 -0
- package/lib/cjs/shared/interfaces/Checkable.cjs +1 -0
- package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
- package/lib/cjs/shared/interfaces/index.cjs +1 -0
- package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
- package/lib/cjs/shared/math.cjs +4 -3
- package/lib/cjs/shared/math.cjs.map +1 -0
- package/lib/cjs/shared/model/FabricBaseModel.cjs +13 -7
- package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +15 -9
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
- package/lib/cjs/shared/model/Identity.cjs +16 -10
- package/lib/cjs/shared/model/Identity.cjs.map +1 -0
- package/lib/cjs/shared/model/IdentityCredentials.cjs +11 -5
- package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
- package/lib/cjs/shared/model/index.cjs +1 -0
- package/lib/cjs/shared/model/index.cjs.map +1 -0
- package/lib/cjs/shared/overrides/Model.cjs +1 -0
- package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
- package/lib/cjs/shared/overrides/index.cjs +1 -0
- package/lib/cjs/shared/overrides/index.cjs.map +1 -0
- package/lib/cjs/shared/overrides/overrides.cjs +11 -10
- package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
- package/lib/cjs/shared/types.cjs +1 -0
- package/lib/cjs/shared/types.cjs.map +1 -0
- package/lib/cjs/version.cjs +2 -1
- package/lib/cjs/version.cjs.map +1 -0
- package/lib/esm/version.js +1 -1
- package/lib/types/bin/cli.d.cts +1 -0
- package/lib/types/bin/cli.d.mts +1 -0
- package/lib/types/cli-module.d.cts +3 -0
- package/lib/types/cli-module.d.mts +3 -0
- package/lib/types/cli-utils.d.cts +21 -0
- package/lib/types/cli-utils.d.mts +21 -0
- package/lib/types/client/FabricClientAdapter.d.cts +404 -0
- package/lib/types/client/FabricClientAdapter.d.mts +404 -0
- package/lib/types/client/FabricClientDispatch.d.cts +133 -0
- package/lib/types/client/FabricClientDispatch.d.mts +133 -0
- package/lib/types/client/FabricClientPaginator.d.cts +12 -0
- package/lib/types/client/FabricClientPaginator.d.mts +12 -0
- package/lib/types/client/FabricClientRepository.d.cts +71 -0
- package/lib/types/client/FabricClientRepository.d.mts +71 -0
- package/lib/types/client/FabricClientStatement.d.cts +64 -0
- package/lib/types/client/FabricClientStatement.d.mts +64 -0
- package/lib/types/client/collections/generation.d.cts +46 -0
- package/lib/types/client/collections/generation.d.mts +46 -0
- package/lib/types/client/collections/index.d.cts +1 -0
- package/lib/types/client/collections/index.d.mts +1 -0
- package/lib/types/client/constants.d.cts +2 -0
- package/lib/types/client/constants.d.mts +2 -0
- package/lib/types/client/crypto.d.cts +107 -0
- package/lib/types/client/crypto.d.mts +107 -0
- package/lib/types/client/erc20/FabricERC20ClientRepository.d.cts +254 -0
- package/lib/types/client/erc20/FabricERC20ClientRepository.d.mts +254 -0
- package/lib/types/client/erc20/index.d.cts +1 -0
- package/lib/types/client/erc20/index.d.mts +1 -0
- package/lib/types/client/fabric-fs.d.cts +92 -0
- package/lib/types/client/fabric-fs.d.mts +92 -0
- package/lib/types/client/fabric-hsm.d.cts +24 -0
- package/lib/types/client/fabric-hsm.d.mts +24 -0
- package/lib/types/client/ids/id-extraction.d.cts +4 -0
- package/lib/types/client/ids/id-extraction.d.mts +4 -0
- package/lib/types/client/ids/index.d.cts +1 -0
- package/lib/types/client/ids/index.d.mts +1 -0
- package/lib/types/client/index.d.cts +23 -0
- package/lib/types/client/index.d.mts +23 -0
- package/lib/types/client/indexes/generation.d.cts +10 -0
- package/lib/types/client/indexes/generation.d.mts +10 -0
- package/lib/types/client/indexes/index.d.cts +1 -0
- package/lib/types/client/indexes/index.d.mts +1 -0
- package/lib/types/client/logging.d.cts +60 -0
- package/lib/types/client/logging.d.mts +60 -0
- package/lib/types/client/services/FabricEnrollmentService.d.cts +176 -0
- package/lib/types/client/services/FabricEnrollmentService.d.mts +176 -0
- package/lib/types/client/services/FabricIdentityService.d.cts +98 -0
- package/lib/types/client/services/FabricIdentityService.d.mts +98 -0
- package/lib/types/client/services/RegistrationRequestBuilder.d.cts +19 -0
- package/lib/types/client/services/RegistrationRequestBuilder.d.mts +19 -0
- package/lib/types/client/services/constants.d.cts +15 -0
- package/lib/types/client/services/constants.d.mts +15 -0
- package/lib/types/client/services/index.d.cts +4 -0
- package/lib/types/client/services/index.d.mts +4 -0
- package/lib/types/client/types.d.cts +20 -0
- package/lib/types/client/types.d.mts +20 -0
- package/lib/types/client/utils.d.cts +71 -0
- package/lib/types/client/utils.d.mts +71 -0
- package/lib/types/contract/Address.d.cts +13 -0
- package/lib/types/contract/Address.d.mts +13 -0
- package/lib/types/contract/AddressContract.d.cts +5 -0
- package/lib/types/contract/AddressContract.d.mts +5 -0
- package/lib/types/contract/AuditContract.d.cts +5 -0
- package/lib/types/contract/AuditContract.d.mts +5 -0
- package/lib/types/contract/BatchContract.d.cts +5 -0
- package/lib/types/contract/BatchContract.d.mts +5 -0
- package/lib/types/contract/MarketContract.d.cts +5 -0
- package/lib/types/contract/MarketContract.d.mts +5 -0
- package/lib/types/contract/OtherAuditContract.d.cts +5 -0
- package/lib/types/contract/OtherAuditContract.d.mts +5 -0
- package/lib/types/contract/OtherBatchContract.d.cts +5 -0
- package/lib/types/contract/OtherBatchContract.d.mts +5 -0
- package/lib/types/contract/OtherMarketContract.d.cts +5 -0
- package/lib/types/contract/OtherMarketContract.d.mts +5 -0
- package/lib/types/contract/OtherProductContract.d.cts +5 -0
- package/lib/types/contract/OtherProductContract.d.mts +5 -0
- package/lib/types/contract/OtherProductImageContract.d.cts +5 -0
- package/lib/types/contract/OtherProductImageContract.d.mts +5 -0
- package/lib/types/contract/OtherProductSharedContract.d.cts +5 -0
- package/lib/types/contract/OtherProductSharedContract.d.mts +5 -0
- package/lib/types/contract/OtherProductStrengthContract.d.cts +5 -0
- package/lib/types/contract/OtherProductStrengthContract.d.mts +5 -0
- package/lib/types/contract/Product.d.cts +7 -0
- package/lib/types/contract/Product.d.mts +7 -0
- package/lib/types/contract/ProductContract.d.cts +5 -0
- package/lib/types/contract/ProductContract.d.mts +5 -0
- package/lib/types/contract/ProductStrengthContract.d.cts +5 -0
- package/lib/types/contract/ProductStrengthContract.d.mts +5 -0
- package/lib/types/contract/SegregatedPrivateDocumentContract.d.cts +5 -0
- package/lib/types/contract/SegregatedPrivateDocumentContract.d.mts +5 -0
- package/lib/types/contract/SegregatedSharedDocumentContract.d.cts +5 -0
- package/lib/types/contract/SegregatedSharedDocumentContract.d.mts +5 -0
- package/lib/types/contract/User.d.cts +7 -0
- package/lib/types/contract/User.d.mts +7 -0
- package/lib/types/contract/UserContract.d.cts +5 -0
- package/lib/types/contract/UserContract.d.mts +5 -0
- package/lib/types/contract/index.d.cts +2 -0
- package/lib/types/contract/index.d.mts +2 -0
- package/lib/types/contract/logging-context.d.cts +8 -0
- package/lib/types/contract/logging-context.d.mts +8 -0
- package/lib/types/contract/models/Audit.d.cts +13 -0
- package/lib/types/contract/models/Audit.d.mts +13 -0
- package/lib/types/contract/models/BaseIdentifiedModel.d.cts +7 -0
- package/lib/types/contract/models/BaseIdentifiedModel.d.mts +7 -0
- package/lib/types/contract/models/BaseModel.d.cts +7 -0
- package/lib/types/contract/models/BaseModel.d.mts +7 -0
- package/lib/types/contract/models/Batch.d.cts +18 -0
- package/lib/types/contract/models/Batch.d.mts +18 -0
- package/lib/types/contract/models/GtinOwner.d.cts +8 -0
- package/lib/types/contract/models/GtinOwner.d.mts +8 -0
- package/lib/types/contract/models/History.d.cts +9 -0
- package/lib/types/contract/models/History.d.mts +9 -0
- package/lib/types/contract/models/Leaflet.d.cts +12 -0
- package/lib/types/contract/models/Leaflet.d.mts +12 -0
- package/lib/types/contract/models/LeafletFile.d.cts +9 -0
- package/lib/types/contract/models/LeafletFile.d.mts +9 -0
- package/lib/types/contract/models/Market.d.cts +12 -0
- package/lib/types/contract/models/Market.d.mts +12 -0
- package/lib/types/contract/models/OtherAudit.d.cts +15 -0
- package/lib/types/contract/models/OtherAudit.d.mts +15 -0
- package/lib/types/contract/models/OtherBatchShared.d.cts +18 -0
- package/lib/types/contract/models/OtherBatchShared.d.mts +18 -0
- package/lib/types/contract/models/OtherLeaflet.d.cts +16 -0
- package/lib/types/contract/models/OtherLeaflet.d.mts +16 -0
- package/lib/types/contract/models/OtherLeafletFile.d.cts +10 -0
- package/lib/types/contract/models/OtherLeafletFile.d.mts +10 -0
- package/lib/types/contract/models/OtherMarket.d.cts +13 -0
- package/lib/types/contract/models/OtherMarket.d.mts +13 -0
- package/lib/types/contract/models/OtherProduct.d.cts +12 -0
- package/lib/types/contract/models/OtherProduct.d.mts +12 -0
- package/lib/types/contract/models/OtherProductImage.d.cts +9 -0
- package/lib/types/contract/models/OtherProductImage.d.mts +9 -0
- package/lib/types/contract/models/OtherProductShared.d.cts +18 -0
- package/lib/types/contract/models/OtherProductShared.d.mts +18 -0
- package/lib/types/contract/models/OtherProductStrength.d.cts +12 -0
- package/lib/types/contract/models/OtherProductStrength.d.mts +12 -0
- package/lib/types/contract/models/Product.d.cts +15 -0
- package/lib/types/contract/models/Product.d.mts +15 -0
- package/lib/types/contract/models/ProductStrength.d.cts +11 -0
- package/lib/types/contract/models/ProductStrength.d.mts +11 -0
- package/lib/types/contract/models/SegregatedDocument.d.cts +18 -0
- package/lib/types/contract/models/SegregatedDocument.d.mts +18 -0
- package/lib/types/contract/models/constants.d.cts +24 -0
- package/lib/types/contract/models/constants.d.mts +24 -0
- package/lib/types/contract/models/decorators-private.d.cts +16 -0
- package/lib/types/contract/models/decorators-private.d.mts +16 -0
- package/lib/types/contract/models/decorators.d.cts +28 -0
- package/lib/types/contract/models/decorators.d.mts +28 -0
- package/lib/types/contract/models/gtin.d.cts +8 -0
- package/lib/types/contract/models/gtin.d.mts +8 -0
- package/lib/types/contract/models/history-dec.d.cts +6 -0
- package/lib/types/contract/models/history-dec.d.mts +6 -0
- package/lib/types/contracts/ContractAdapter.d.cts +287 -0
- package/lib/types/contracts/ContractAdapter.d.mts +287 -0
- package/lib/types/contracts/ContractContext.d.cts +89 -0
- package/lib/types/contracts/ContractContext.d.mts +89 -0
- package/lib/types/contracts/FabricContractDispatch.d.cts +7 -0
- package/lib/types/contracts/FabricContractDispatch.d.mts +7 -0
- package/lib/types/contracts/FabricContractPaginator.d.cts +105 -0
- package/lib/types/contracts/FabricContractPaginator.d.mts +105 -0
- package/lib/types/contracts/FabricContractRepository.d.cts +119 -0
- package/lib/types/contracts/FabricContractRepository.d.mts +119 -0
- package/lib/types/contracts/FabricContractRepositoryObservableHandler.d.cts +62 -0
- package/lib/types/contracts/FabricContractRepositoryObservableHandler.d.mts +62 -0
- package/lib/types/contracts/FabricContractSequence.d.cts +87 -0
- package/lib/types/contracts/FabricContractSequence.d.mts +87 -0
- package/lib/types/contracts/FabricContractStatement.d.cts +36 -0
- package/lib/types/contracts/FabricContractStatement.d.mts +36 -0
- package/lib/types/contracts/MigrationContract.d.cts +22 -0
- package/lib/types/contracts/MigrationContract.d.mts +22 -0
- package/lib/types/contracts/PrivateSequence.d.cts +15 -0
- package/lib/types/contracts/PrivateSequence.d.mts +15 -0
- package/lib/types/contracts/auth/decorators.d.cts +6 -0
- package/lib/types/contracts/auth/decorators.d.mts +6 -0
- package/lib/types/contracts/auth/index.d.cts +1 -0
- package/lib/types/contracts/auth/index.d.mts +1 -0
- package/lib/types/contracts/crud/crud-contract.d.cts +199 -0
- package/lib/types/contracts/crud/crud-contract.d.mts +199 -0
- package/lib/types/contracts/crud/index.d.cts +2 -0
- package/lib/types/contracts/crud/index.d.mts +2 -0
- package/lib/types/contracts/crud/serialized-crud-contract.d.cts +42 -0
- package/lib/types/contracts/crud/serialized-crud-contract.d.mts +42 -0
- package/lib/types/contracts/erc20/erc20contract.d.cts +152 -0
- package/lib/types/contracts/erc20/erc20contract.d.mts +152 -0
- package/lib/types/contracts/erc20/index.d.cts +2 -0
- package/lib/types/contracts/erc20/index.d.mts +2 -0
- package/lib/types/contracts/erc20/models.d.cts +114 -0
- package/lib/types/contracts/erc20/models.d.mts +114 -0
- package/lib/types/contracts/index.d.cts +20 -0
- package/lib/types/contracts/index.d.mts +20 -0
- package/lib/types/contracts/logging.d.cts +54 -0
- package/lib/types/contracts/logging.d.mts +54 -0
- package/lib/types/contracts/overrides.d.cts +1 -0
- package/lib/types/contracts/overrides.d.mts +1 -0
- package/lib/types/contracts/types.d.cts +38 -0
- package/lib/types/contracts/types.d.mts +38 -0
- package/lib/types/contracts/uuid.d.cts +2 -0
- package/lib/types/contracts/uuid.d.mts +2 -0
- package/lib/types/index.d.cts +8 -0
- package/lib/types/index.d.mts +8 -0
- package/lib/types/shared/ClientSerializer.d.cts +52 -0
- package/lib/types/shared/ClientSerializer.d.mts +52 -0
- package/lib/types/shared/DeterministicSerializer.d.cts +47 -0
- package/lib/types/shared/DeterministicSerializer.d.mts +47 -0
- package/lib/types/shared/SimpleDeterministicSerializer.d.cts +7 -0
- package/lib/types/shared/SimpleDeterministicSerializer.d.mts +7 -0
- package/lib/types/shared/constants.d.cts +35 -0
- package/lib/types/shared/constants.d.mts +35 -0
- package/lib/types/shared/decorators.d.cts +81 -0
- package/lib/types/shared/decorators.d.mts +81 -0
- package/lib/types/shared/erc20/erc20-constants.d.cts +25 -0
- package/lib/types/shared/erc20/erc20-constants.d.mts +25 -0
- package/lib/types/shared/erc20/index.d.cts +1 -0
- package/lib/types/shared/erc20/index.d.mts +1 -0
- package/lib/types/shared/errors.d.cts +140 -0
- package/lib/types/shared/errors.d.mts +140 -0
- package/lib/types/shared/events.d.cts +37 -0
- package/lib/types/shared/events.d.mts +37 -0
- package/lib/types/shared/fabric-types.d.cts +32 -0
- package/lib/types/shared/fabric-types.d.mts +32 -0
- package/lib/types/shared/index.d.cts +21 -0
- package/lib/types/shared/index.d.mts +21 -0
- package/lib/types/shared/interfaces/Checkable.d.cts +23 -0
- package/lib/types/shared/interfaces/Checkable.d.mts +23 -0
- package/lib/types/shared/interfaces/index.d.cts +1 -0
- package/lib/types/shared/interfaces/index.d.mts +1 -0
- package/lib/types/shared/math.d.cts +34 -0
- package/lib/types/shared/math.d.mts +34 -0
- package/lib/types/shared/model/FabricBaseModel.d.cts +7 -0
- package/lib/types/shared/model/FabricBaseModel.d.mts +7 -0
- package/lib/types/shared/model/FabricIdentifiedBaseModel.d.cts +7 -0
- package/lib/types/shared/model/FabricIdentifiedBaseModel.d.mts +7 -0
- package/lib/types/shared/model/Identity.d.cts +42 -0
- package/lib/types/shared/model/Identity.d.mts +42 -0
- package/lib/types/shared/model/IdentityCredentials.d.cts +41 -0
- package/lib/types/shared/model/IdentityCredentials.d.mts +41 -0
- package/lib/types/shared/model/index.d.cts +4 -0
- package/lib/types/shared/model/index.d.mts +4 -0
- package/lib/types/shared/overrides/Model.d.cts +22 -0
- package/lib/types/shared/overrides/Model.d.mts +22 -0
- package/lib/types/shared/overrides/index.d.cts +2 -0
- package/lib/types/shared/overrides/index.d.mts +2 -0
- package/lib/types/shared/overrides/overrides.d.cts +1 -0
- package/lib/types/shared/overrides/overrides.d.mts +1 -0
- package/lib/types/shared/types.d.cts +125 -0
- package/lib/types/shared/types.d.mts +125 -0
- package/lib/types/version.d.cts +2 -0
- package/lib/types/version.d.mts +2 -0
- package/lib/types/version.d.ts +1 -1
- package/package.json +10 -10
- package/lib/cjs/bin/cli.js.map +0 -1
- package/lib/cjs/cli-module.js.map +0 -1
- package/lib/cjs/cli-utils.js.map +0 -1
- package/lib/cjs/client/FabricClientAdapter.js.map +0 -1
- package/lib/cjs/client/FabricClientDispatch.js.map +0 -1
- package/lib/cjs/client/FabricClientPaginator.js.map +0 -1
- package/lib/cjs/client/FabricClientRepository.js.map +0 -1
- package/lib/cjs/client/FabricClientStatement.js.map +0 -1
- package/lib/cjs/client/collections/generation.js.map +0 -1
- package/lib/cjs/client/collections/index.js.map +0 -1
- package/lib/cjs/client/constants.js.map +0 -1
- package/lib/cjs/client/crypto.js.map +0 -1
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.js.map +0 -1
- package/lib/cjs/client/erc20/index.js.map +0 -1
- package/lib/cjs/client/fabric-fs.js.map +0 -1
- package/lib/cjs/client/fabric-hsm.js.map +0 -1
- package/lib/cjs/client/ids/id-extraction.js.map +0 -1
- package/lib/cjs/client/ids/index.js.map +0 -1
- package/lib/cjs/client/index.js.map +0 -1
- package/lib/cjs/client/indexes/generation.js.map +0 -1
- package/lib/cjs/client/indexes/index.js.map +0 -1
- package/lib/cjs/client/logging.js.map +0 -1
- package/lib/cjs/client/services/FabricEnrollmentService.js.map +0 -1
- package/lib/cjs/client/services/FabricIdentityService.js.map +0 -1
- package/lib/cjs/client/services/RegistrationRequestBuilder.js.map +0 -1
- package/lib/cjs/client/services/constants.js.map +0 -1
- package/lib/cjs/client/services/index.js.map +0 -1
- package/lib/cjs/client/types.js.map +0 -1
- package/lib/cjs/client/utils.js.map +0 -1
- package/lib/cjs/contract/Address.js.map +0 -1
- package/lib/cjs/contract/AddressContract.js.map +0 -1
- package/lib/cjs/contract/AuditContract.js.map +0 -1
- package/lib/cjs/contract/BatchContract.js.map +0 -1
- package/lib/cjs/contract/MarketContract.js.map +0 -1
- package/lib/cjs/contract/OtherAuditContract.js.map +0 -1
- package/lib/cjs/contract/OtherBatchContract.js.map +0 -1
- package/lib/cjs/contract/OtherMarketContract.js.map +0 -1
- package/lib/cjs/contract/OtherProductContract.js.map +0 -1
- package/lib/cjs/contract/OtherProductImageContract.js.map +0 -1
- package/lib/cjs/contract/OtherProductSharedContract.js.map +0 -1
- package/lib/cjs/contract/OtherProductStrengthContract.js.map +0 -1
- package/lib/cjs/contract/Product.js.map +0 -1
- package/lib/cjs/contract/ProductContract.js.map +0 -1
- package/lib/cjs/contract/ProductStrengthContract.js.map +0 -1
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.js.map +0 -1
- package/lib/cjs/contract/SegregatedSharedDocumentContract.js.map +0 -1
- package/lib/cjs/contract/User.js.map +0 -1
- package/lib/cjs/contract/UserContract.js.map +0 -1
- package/lib/cjs/contract/index.js.map +0 -1
- package/lib/cjs/contract/logging-context.js.map +0 -1
- package/lib/cjs/contract/models/Audit.js.map +0 -1
- package/lib/cjs/contract/models/BaseIdentifiedModel.js.map +0 -1
- package/lib/cjs/contract/models/BaseModel.js.map +0 -1
- package/lib/cjs/contract/models/Batch.js.map +0 -1
- package/lib/cjs/contract/models/GtinOwner.js.map +0 -1
- package/lib/cjs/contract/models/History.js.map +0 -1
- package/lib/cjs/contract/models/Leaflet.js.map +0 -1
- package/lib/cjs/contract/models/LeafletFile.js.map +0 -1
- package/lib/cjs/contract/models/Market.js.map +0 -1
- package/lib/cjs/contract/models/OtherAudit.js.map +0 -1
- package/lib/cjs/contract/models/OtherBatchShared.js.map +0 -1
- package/lib/cjs/contract/models/OtherLeaflet.js.map +0 -1
- package/lib/cjs/contract/models/OtherLeafletFile.js.map +0 -1
- package/lib/cjs/contract/models/OtherMarket.js.map +0 -1
- package/lib/cjs/contract/models/OtherProduct.js.map +0 -1
- package/lib/cjs/contract/models/OtherProductImage.js.map +0 -1
- package/lib/cjs/contract/models/OtherProductShared.js.map +0 -1
- package/lib/cjs/contract/models/OtherProductStrength.js.map +0 -1
- package/lib/cjs/contract/models/Product.js.map +0 -1
- package/lib/cjs/contract/models/ProductStrength.js.map +0 -1
- package/lib/cjs/contract/models/SegregatedDocument.js.map +0 -1
- package/lib/cjs/contract/models/constants.js.map +0 -1
- package/lib/cjs/contract/models/decorators-private.js.map +0 -1
- package/lib/cjs/contract/models/decorators.js.map +0 -1
- package/lib/cjs/contract/models/gtin.js.map +0 -1
- package/lib/cjs/contract/models/history-dec.js.map +0 -1
- package/lib/cjs/contracts/ContractAdapter.js.map +0 -1
- package/lib/cjs/contracts/ContractContext.js.map +0 -1
- package/lib/cjs/contracts/FabricContractDispatch.js.map +0 -1
- package/lib/cjs/contracts/FabricContractPaginator.js.map +0 -1
- package/lib/cjs/contracts/FabricContractRepository.js.map +0 -1
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
- package/lib/cjs/contracts/FabricContractSequence.js.map +0 -1
- package/lib/cjs/contracts/FabricContractStatement.js.map +0 -1
- package/lib/cjs/contracts/MigrationContract.js.map +0 -1
- package/lib/cjs/contracts/PrivateSequence.js.map +0 -1
- package/lib/cjs/contracts/auth/decorators.js.map +0 -1
- package/lib/cjs/contracts/auth/index.js.map +0 -1
- package/lib/cjs/contracts/crud/crud-contract.js.map +0 -1
- package/lib/cjs/contracts/crud/index.js.map +0 -1
- package/lib/cjs/contracts/crud/serialized-crud-contract.js.map +0 -1
- package/lib/cjs/contracts/erc20/erc20contract.js.map +0 -1
- package/lib/cjs/contracts/erc20/index.js.map +0 -1
- package/lib/cjs/contracts/erc20/models.js.map +0 -1
- package/lib/cjs/contracts/index.js.map +0 -1
- package/lib/cjs/contracts/logging.js.map +0 -1
- package/lib/cjs/contracts/overrides.js.map +0 -1
- package/lib/cjs/contracts/types.js.map +0 -1
- package/lib/cjs/contracts/uuid.js.map +0 -1
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/shared/ClientSerializer.js.map +0 -1
- package/lib/cjs/shared/DeterministicSerializer.js.map +0 -1
- package/lib/cjs/shared/SimpleDeterministicSerializer.js.map +0 -1
- package/lib/cjs/shared/constants.js.map +0 -1
- package/lib/cjs/shared/decorators.js.map +0 -1
- package/lib/cjs/shared/erc20/erc20-constants.js.map +0 -1
- package/lib/cjs/shared/erc20/index.js.map +0 -1
- package/lib/cjs/shared/errors.js.map +0 -1
- package/lib/cjs/shared/events.js.map +0 -1
- package/lib/cjs/shared/fabric-types.js.map +0 -1
- package/lib/cjs/shared/index.js.map +0 -1
- package/lib/cjs/shared/interfaces/Checkable.js.map +0 -1
- package/lib/cjs/shared/interfaces/index.js.map +0 -1
- package/lib/cjs/shared/math.js.map +0 -1
- package/lib/cjs/shared/model/FabricBaseModel.js.map +0 -1
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
- package/lib/cjs/shared/model/Identity.js.map +0 -1
- package/lib/cjs/shared/model/IdentityCredentials.js.map +0 -1
- package/lib/cjs/shared/model/index.js.map +0 -1
- package/lib/cjs/shared/overrides/Model.js.map +0 -1
- package/lib/cjs/shared/overrides/index.js.map +0 -1
- package/lib/cjs/shared/overrides/overrides.js.map +0 -1
- package/lib/cjs/shared/types.js.map +0 -1
- package/lib/cjs/version.js.map +0 -1
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Context } from "@decaf-ts/core";
|
|
2
|
+
import { FabricContractFlags } from "./types.cjs";
|
|
3
|
+
import { ChaincodeStub, ClientIdentity } from "fabric-shim-api";
|
|
4
|
+
/**
|
|
5
|
+
* @description Context class for Fabric chaincode operations
|
|
6
|
+
* @summary Provides access to Fabric-specific context elements like stub, identity, and logger to be used by repositories and adapters during contract execution.
|
|
7
|
+
* @template F - Flags specific to Fabric contract operations
|
|
8
|
+
* @param {object} [args] - Optional initialization arguments passed to the base Context
|
|
9
|
+
* @return {void}
|
|
10
|
+
* @class FabricContractContext
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // In a Fabric chaincode contract method
|
|
14
|
+
* const context = new FabricContractContext();
|
|
15
|
+
* // Optionally set values via the base Context API
|
|
16
|
+
* context.set('stub', ctx.stub);
|
|
17
|
+
* context.set('clientIdentity', ctx.clientIdentity);
|
|
18
|
+
* context.set('logger', contractLogger);
|
|
19
|
+
*
|
|
20
|
+
* // Access context properties
|
|
21
|
+
* const timestamp = context.timestamp;
|
|
22
|
+
* const creator = context.identity.getID();
|
|
23
|
+
* ```
|
|
24
|
+
* @mermaid
|
|
25
|
+
* sequenceDiagram
|
|
26
|
+
* participant Contract
|
|
27
|
+
* participant Context
|
|
28
|
+
* participant Ledger
|
|
29
|
+
* Contract->>Context: new FabricContractContext()
|
|
30
|
+
* Contract->>Context: set('stub'|'clientIdentity'|'logger', ...)
|
|
31
|
+
* Context-->>Contract: timestamp, identity, logger
|
|
32
|
+
* Contract->>Ledger: Interact via stub
|
|
33
|
+
*/
|
|
34
|
+
export declare class FabricContractContext extends Context<FabricContractFlags> {
|
|
35
|
+
/**
|
|
36
|
+
* @description Creates a new FabricContractContext instance
|
|
37
|
+
* @summary Initializes the context with Fabric-specific flags
|
|
38
|
+
*/
|
|
39
|
+
constructor(ctx?: FabricContractContext);
|
|
40
|
+
/**
|
|
41
|
+
* @description Gets the chaincode stub
|
|
42
|
+
* @summary Returns the ChaincodeStub instance for interacting with the ledger
|
|
43
|
+
* @return {ChaincodeStub} The chaincode stub
|
|
44
|
+
*/
|
|
45
|
+
get stub(): ChaincodeStub;
|
|
46
|
+
/**
|
|
47
|
+
* @description Gets the transaction timestamp
|
|
48
|
+
* @summary Overrides the base timestamp getter to use the stub's timestamp
|
|
49
|
+
* @return {Date} The transaction timestamp
|
|
50
|
+
*/
|
|
51
|
+
get timestamp(): Date;
|
|
52
|
+
/**
|
|
53
|
+
* @description Gets the client identity
|
|
54
|
+
* @summary Returns the ClientIdentity instance for the transaction submitter
|
|
55
|
+
* @return {ClientIdentity} The client identity
|
|
56
|
+
*/
|
|
57
|
+
get identity(): ClientIdentity;
|
|
58
|
+
/**
|
|
59
|
+
* @description Stores segregation metadata per sequence name
|
|
60
|
+
* @summary Needed because the Sequence creates its own context (via logCtx),
|
|
61
|
+
* losing flags set by extractSegregatedCollections on the handler context.
|
|
62
|
+
* The adapter persists across operations, making it a reliable store.
|
|
63
|
+
*/
|
|
64
|
+
setSequenceSegregation(seqName: string, fullySegregated: boolean, collections: string[]): void;
|
|
65
|
+
getSequenceSegregation(seqName: string): {
|
|
66
|
+
fullySegregated: boolean;
|
|
67
|
+
collections: string[];
|
|
68
|
+
} | undefined;
|
|
69
|
+
markFullySegregated(): void;
|
|
70
|
+
get isFullySegregated(): boolean;
|
|
71
|
+
writeTo(col: string, entry: string[]): void;
|
|
72
|
+
getSegregatedWrites(): Record<string, string[]> | undefined;
|
|
73
|
+
put(key: string, value: any): void;
|
|
74
|
+
readFrom(cols: string | string[]): void;
|
|
75
|
+
consumeReadCollections(): string[];
|
|
76
|
+
/**
|
|
77
|
+
* @description Gets the collections registered for writing
|
|
78
|
+
* @summary Returns collection names from segregateWrite, used by sequences to know where to replicate.
|
|
79
|
+
* @return {string[]} Array of collection names, empty if none registered
|
|
80
|
+
*/
|
|
81
|
+
getWriteCollections(): string[];
|
|
82
|
+
/**
|
|
83
|
+
* @description Gets the collections registered for reading
|
|
84
|
+
* @summary Returns collection names from segregateRead.
|
|
85
|
+
* @return {string[]} Array of collection names, empty if none registered
|
|
86
|
+
*/
|
|
87
|
+
getReadCollections(): string[];
|
|
88
|
+
toString(): string;
|
|
89
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Context } from "@decaf-ts/core";
|
|
2
|
+
import { FabricContractFlags } from "./types.js";
|
|
3
|
+
import { ChaincodeStub, ClientIdentity } from "fabric-shim-api";
|
|
4
|
+
/**
|
|
5
|
+
* @description Context class for Fabric chaincode operations
|
|
6
|
+
* @summary Provides access to Fabric-specific context elements like stub, identity, and logger to be used by repositories and adapters during contract execution.
|
|
7
|
+
* @template F - Flags specific to Fabric contract operations
|
|
8
|
+
* @param {object} [args] - Optional initialization arguments passed to the base Context
|
|
9
|
+
* @return {void}
|
|
10
|
+
* @class FabricContractContext
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // In a Fabric chaincode contract method
|
|
14
|
+
* const context = new FabricContractContext();
|
|
15
|
+
* // Optionally set values via the base Context API
|
|
16
|
+
* context.set('stub', ctx.stub);
|
|
17
|
+
* context.set('clientIdentity', ctx.clientIdentity);
|
|
18
|
+
* context.set('logger', contractLogger);
|
|
19
|
+
*
|
|
20
|
+
* // Access context properties
|
|
21
|
+
* const timestamp = context.timestamp;
|
|
22
|
+
* const creator = context.identity.getID();
|
|
23
|
+
* ```
|
|
24
|
+
* @mermaid
|
|
25
|
+
* sequenceDiagram
|
|
26
|
+
* participant Contract
|
|
27
|
+
* participant Context
|
|
28
|
+
* participant Ledger
|
|
29
|
+
* Contract->>Context: new FabricContractContext()
|
|
30
|
+
* Contract->>Context: set('stub'|'clientIdentity'|'logger', ...)
|
|
31
|
+
* Context-->>Contract: timestamp, identity, logger
|
|
32
|
+
* Contract->>Ledger: Interact via stub
|
|
33
|
+
*/
|
|
34
|
+
export declare class FabricContractContext extends Context<FabricContractFlags> {
|
|
35
|
+
/**
|
|
36
|
+
* @description Creates a new FabricContractContext instance
|
|
37
|
+
* @summary Initializes the context with Fabric-specific flags
|
|
38
|
+
*/
|
|
39
|
+
constructor(ctx?: FabricContractContext);
|
|
40
|
+
/**
|
|
41
|
+
* @description Gets the chaincode stub
|
|
42
|
+
* @summary Returns the ChaincodeStub instance for interacting with the ledger
|
|
43
|
+
* @return {ChaincodeStub} The chaincode stub
|
|
44
|
+
*/
|
|
45
|
+
get stub(): ChaincodeStub;
|
|
46
|
+
/**
|
|
47
|
+
* @description Gets the transaction timestamp
|
|
48
|
+
* @summary Overrides the base timestamp getter to use the stub's timestamp
|
|
49
|
+
* @return {Date} The transaction timestamp
|
|
50
|
+
*/
|
|
51
|
+
get timestamp(): Date;
|
|
52
|
+
/**
|
|
53
|
+
* @description Gets the client identity
|
|
54
|
+
* @summary Returns the ClientIdentity instance for the transaction submitter
|
|
55
|
+
* @return {ClientIdentity} The client identity
|
|
56
|
+
*/
|
|
57
|
+
get identity(): ClientIdentity;
|
|
58
|
+
/**
|
|
59
|
+
* @description Stores segregation metadata per sequence name
|
|
60
|
+
* @summary Needed because the Sequence creates its own context (via logCtx),
|
|
61
|
+
* losing flags set by extractSegregatedCollections on the handler context.
|
|
62
|
+
* The adapter persists across operations, making it a reliable store.
|
|
63
|
+
*/
|
|
64
|
+
setSequenceSegregation(seqName: string, fullySegregated: boolean, collections: string[]): void;
|
|
65
|
+
getSequenceSegregation(seqName: string): {
|
|
66
|
+
fullySegregated: boolean;
|
|
67
|
+
collections: string[];
|
|
68
|
+
} | undefined;
|
|
69
|
+
markFullySegregated(): void;
|
|
70
|
+
get isFullySegregated(): boolean;
|
|
71
|
+
writeTo(col: string, entry: string[]): void;
|
|
72
|
+
getSegregatedWrites(): Record<string, string[]> | undefined;
|
|
73
|
+
put(key: string, value: any): void;
|
|
74
|
+
readFrom(cols: string | string[]): void;
|
|
75
|
+
consumeReadCollections(): string[];
|
|
76
|
+
/**
|
|
77
|
+
* @description Gets the collections registered for writing
|
|
78
|
+
* @summary Returns collection names from segregateWrite, used by sequences to know where to replicate.
|
|
79
|
+
* @return {string[]} Array of collection names, empty if none registered
|
|
80
|
+
*/
|
|
81
|
+
getWriteCollections(): string[];
|
|
82
|
+
/**
|
|
83
|
+
* @description Gets the collections registered for reading
|
|
84
|
+
* @summary Returns collection names from segregateRead.
|
|
85
|
+
* @return {string[]} Array of collection names, empty if none registered
|
|
86
|
+
*/
|
|
87
|
+
getReadCollections(): string[];
|
|
88
|
+
toString(): string;
|
|
89
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Dispatch, MaybeContextualArg } from "@decaf-ts/core";
|
|
2
|
+
import { type FabricContractAdapter } from "./ContractAdapter.cjs";
|
|
3
|
+
import { FabricContractContext } from "./ContractContext.cjs";
|
|
4
|
+
export declare class FabricContractDispatch extends Dispatch<FabricContractAdapter> {
|
|
5
|
+
constructor();
|
|
6
|
+
protected initialize(...args: MaybeContextualArg<FabricContractContext>): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Dispatch, MaybeContextualArg } from "@decaf-ts/core";
|
|
2
|
+
import { type FabricContractAdapter } from "./ContractAdapter.js";
|
|
3
|
+
import { FabricContractContext } from "./ContractContext.js";
|
|
4
|
+
export declare class FabricContractDispatch extends Dispatch<FabricContractAdapter> {
|
|
5
|
+
constructor();
|
|
6
|
+
protected initialize(...args: MaybeContextualArg<FabricContractContext>): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { MaybeContextualArg } from "@decaf-ts/core";
|
|
2
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
4
|
+
import { FabricContractAdapter } from "./ContractAdapter.cjs";
|
|
5
|
+
import { CouchDBPaginator, MangoQuery } from "@decaf-ts/for-couchdb";
|
|
6
|
+
/**
|
|
7
|
+
* @description Paginator for CouchDB query results
|
|
8
|
+
* @summary Implements pagination for CouchDB queries using bookmarks for efficient navigation through result sets
|
|
9
|
+
* @template M - The model type that extends Model
|
|
10
|
+
* @template R - The result type
|
|
11
|
+
* @param {FabricCo<any, any, any>} adapter - The CouchDB adapter
|
|
12
|
+
* @param {MangoQuery} query - The Mango query to paginate
|
|
13
|
+
* @param {number} size - The page size
|
|
14
|
+
* @param {Constructor<M>} clazz - The model constructor
|
|
15
|
+
* @class CouchDBPaginator
|
|
16
|
+
* @example
|
|
17
|
+
* // Example of using CouchDBPaginator
|
|
18
|
+
* const adapter = new MyCouchDBAdapter(scope);
|
|
19
|
+
* const query = { selector: { type: "user" } };
|
|
20
|
+
* const paginator = new CouchDBPaginator(adapter, query, 10, User);
|
|
21
|
+
*
|
|
22
|
+
* // Get the first page
|
|
23
|
+
* const page1 = await paginator.page(1);
|
|
24
|
+
*
|
|
25
|
+
* // Get the next page
|
|
26
|
+
* const page2 = await paginator.page(2);
|
|
27
|
+
*/
|
|
28
|
+
export declare class FabricContractPaginator<M extends Model> extends CouchDBPaginator<M> {
|
|
29
|
+
/**
|
|
30
|
+
* @description Creates a new CouchDBPaginator instance
|
|
31
|
+
* @summary Initializes a paginator for CouchDB query results
|
|
32
|
+
* @param {CouchDBAdapter<any, any, any, any>} adapter - The CouchDB adapter
|
|
33
|
+
* @param {MangoQuery} query - The Mango query to paginate
|
|
34
|
+
* @param {number} size - The page size
|
|
35
|
+
* @param {Constructor<M>} clazz - The model constructor
|
|
36
|
+
*/
|
|
37
|
+
constructor(adapter: FabricContractAdapter, query: MangoQuery, size: number, clazz: Constructor<M>);
|
|
38
|
+
/**
|
|
39
|
+
* @description Prepares a query for pagination
|
|
40
|
+
* @summary Modifies the raw query to include pagination parameters
|
|
41
|
+
* @param {MangoQuery} rawStatement - The original Mango query
|
|
42
|
+
* @return {MangoQuery} The prepared query with pagination parameters
|
|
43
|
+
*/
|
|
44
|
+
protected prepare(rawStatement: MangoQuery): MangoQuery;
|
|
45
|
+
/**
|
|
46
|
+
* @description Retrieves a specific page of results
|
|
47
|
+
* @summary Executes the query with pagination and processes the results
|
|
48
|
+
* @param {number} [page=1] - The page number to retrieve
|
|
49
|
+
* @return {Promise<R[]>} A promise that resolves to an array of results
|
|
50
|
+
* @throws {PagingError} If trying to access a page other than the first without a bookmark, or if no class is defined
|
|
51
|
+
* @mermaid
|
|
52
|
+
* sequenceDiagram
|
|
53
|
+
* participant Client
|
|
54
|
+
* participant CouchDBPaginator
|
|
55
|
+
* participant Adapter
|
|
56
|
+
* participant CouchDB
|
|
57
|
+
*
|
|
58
|
+
* Client->>CouchDBPaginator: page(pageNumber)
|
|
59
|
+
* Note over CouchDBPaginator: Clone statement
|
|
60
|
+
* CouchDBPaginator->>CouchDBPaginator: validatePage(page)
|
|
61
|
+
*
|
|
62
|
+
* alt page !== 1
|
|
63
|
+
* CouchDBPaginator->>CouchDBPaginator: Check bookmark
|
|
64
|
+
* alt No bookmark
|
|
65
|
+
* CouchDBPaginator-->>Client: Throw PagingError
|
|
66
|
+
* else Has bookmark
|
|
67
|
+
* CouchDBPaginator->>CouchDBPaginator: Add bookmark to statement
|
|
68
|
+
* end
|
|
69
|
+
* end
|
|
70
|
+
*
|
|
71
|
+
* CouchDBPaginator->>Adapter: raw(statement, false)
|
|
72
|
+
* Adapter->>CouchDB: Execute query
|
|
73
|
+
* CouchDB-->>Adapter: Return results
|
|
74
|
+
* Adapter-->>CouchDBPaginator: Return MangoResponse
|
|
75
|
+
*
|
|
76
|
+
* Note over CouchDBPaginator: Process results
|
|
77
|
+
*
|
|
78
|
+
* alt Has warning
|
|
79
|
+
* CouchDBPaginator->>CouchDBPaginator: Log warning
|
|
80
|
+
* end
|
|
81
|
+
*
|
|
82
|
+
* CouchDBPaginator->>CouchDBPaginator: Check for clazz
|
|
83
|
+
*
|
|
84
|
+
* alt No clazz
|
|
85
|
+
* CouchDBPaginator-->>Client: Throw PagingError
|
|
86
|
+
* else Has clazz
|
|
87
|
+
* CouchDBPaginator->>CouchDBPaginator: Find primary key
|
|
88
|
+
*
|
|
89
|
+
* alt Has fields in statement
|
|
90
|
+
* CouchDBPaginator->>CouchDBPaginator: Use docs directly
|
|
91
|
+
* else No fields
|
|
92
|
+
* CouchDBPaginator->>CouchDBPaginator: Process each document
|
|
93
|
+
* loop For each document
|
|
94
|
+
* CouchDBPaginator->>CouchDBPaginator: Extract original ID
|
|
95
|
+
* CouchDBPaginator->>Adapter: revert(doc, clazz, pkDef.id, parsedId)
|
|
96
|
+
* end
|
|
97
|
+
* end
|
|
98
|
+
*
|
|
99
|
+
* CouchDBPaginator->>CouchDBPaginator: Store bookmark
|
|
100
|
+
* CouchDBPaginator->>CouchDBPaginator: Update currentPage
|
|
101
|
+
* CouchDBPaginator-->>Client: Return results
|
|
102
|
+
* end
|
|
103
|
+
*/
|
|
104
|
+
page(page?: number, bookmark?: any, ...args: MaybeContextualArg<any>): Promise<M[]>;
|
|
105
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { MaybeContextualArg } from "@decaf-ts/core";
|
|
2
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
4
|
+
import { FabricContractAdapter } from "./ContractAdapter.js";
|
|
5
|
+
import { CouchDBPaginator, MangoQuery } from "@decaf-ts/for-couchdb";
|
|
6
|
+
/**
|
|
7
|
+
* @description Paginator for CouchDB query results
|
|
8
|
+
* @summary Implements pagination for CouchDB queries using bookmarks for efficient navigation through result sets
|
|
9
|
+
* @template M - The model type that extends Model
|
|
10
|
+
* @template R - The result type
|
|
11
|
+
* @param {FabricCo<any, any, any>} adapter - The CouchDB adapter
|
|
12
|
+
* @param {MangoQuery} query - The Mango query to paginate
|
|
13
|
+
* @param {number} size - The page size
|
|
14
|
+
* @param {Constructor<M>} clazz - The model constructor
|
|
15
|
+
* @class CouchDBPaginator
|
|
16
|
+
* @example
|
|
17
|
+
* // Example of using CouchDBPaginator
|
|
18
|
+
* const adapter = new MyCouchDBAdapter(scope);
|
|
19
|
+
* const query = { selector: { type: "user" } };
|
|
20
|
+
* const paginator = new CouchDBPaginator(adapter, query, 10, User);
|
|
21
|
+
*
|
|
22
|
+
* // Get the first page
|
|
23
|
+
* const page1 = await paginator.page(1);
|
|
24
|
+
*
|
|
25
|
+
* // Get the next page
|
|
26
|
+
* const page2 = await paginator.page(2);
|
|
27
|
+
*/
|
|
28
|
+
export declare class FabricContractPaginator<M extends Model> extends CouchDBPaginator<M> {
|
|
29
|
+
/**
|
|
30
|
+
* @description Creates a new CouchDBPaginator instance
|
|
31
|
+
* @summary Initializes a paginator for CouchDB query results
|
|
32
|
+
* @param {CouchDBAdapter<any, any, any, any>} adapter - The CouchDB adapter
|
|
33
|
+
* @param {MangoQuery} query - The Mango query to paginate
|
|
34
|
+
* @param {number} size - The page size
|
|
35
|
+
* @param {Constructor<M>} clazz - The model constructor
|
|
36
|
+
*/
|
|
37
|
+
constructor(adapter: FabricContractAdapter, query: MangoQuery, size: number, clazz: Constructor<M>);
|
|
38
|
+
/**
|
|
39
|
+
* @description Prepares a query for pagination
|
|
40
|
+
* @summary Modifies the raw query to include pagination parameters
|
|
41
|
+
* @param {MangoQuery} rawStatement - The original Mango query
|
|
42
|
+
* @return {MangoQuery} The prepared query with pagination parameters
|
|
43
|
+
*/
|
|
44
|
+
protected prepare(rawStatement: MangoQuery): MangoQuery;
|
|
45
|
+
/**
|
|
46
|
+
* @description Retrieves a specific page of results
|
|
47
|
+
* @summary Executes the query with pagination and processes the results
|
|
48
|
+
* @param {number} [page=1] - The page number to retrieve
|
|
49
|
+
* @return {Promise<R[]>} A promise that resolves to an array of results
|
|
50
|
+
* @throws {PagingError} If trying to access a page other than the first without a bookmark, or if no class is defined
|
|
51
|
+
* @mermaid
|
|
52
|
+
* sequenceDiagram
|
|
53
|
+
* participant Client
|
|
54
|
+
* participant CouchDBPaginator
|
|
55
|
+
* participant Adapter
|
|
56
|
+
* participant CouchDB
|
|
57
|
+
*
|
|
58
|
+
* Client->>CouchDBPaginator: page(pageNumber)
|
|
59
|
+
* Note over CouchDBPaginator: Clone statement
|
|
60
|
+
* CouchDBPaginator->>CouchDBPaginator: validatePage(page)
|
|
61
|
+
*
|
|
62
|
+
* alt page !== 1
|
|
63
|
+
* CouchDBPaginator->>CouchDBPaginator: Check bookmark
|
|
64
|
+
* alt No bookmark
|
|
65
|
+
* CouchDBPaginator-->>Client: Throw PagingError
|
|
66
|
+
* else Has bookmark
|
|
67
|
+
* CouchDBPaginator->>CouchDBPaginator: Add bookmark to statement
|
|
68
|
+
* end
|
|
69
|
+
* end
|
|
70
|
+
*
|
|
71
|
+
* CouchDBPaginator->>Adapter: raw(statement, false)
|
|
72
|
+
* Adapter->>CouchDB: Execute query
|
|
73
|
+
* CouchDB-->>Adapter: Return results
|
|
74
|
+
* Adapter-->>CouchDBPaginator: Return MangoResponse
|
|
75
|
+
*
|
|
76
|
+
* Note over CouchDBPaginator: Process results
|
|
77
|
+
*
|
|
78
|
+
* alt Has warning
|
|
79
|
+
* CouchDBPaginator->>CouchDBPaginator: Log warning
|
|
80
|
+
* end
|
|
81
|
+
*
|
|
82
|
+
* CouchDBPaginator->>CouchDBPaginator: Check for clazz
|
|
83
|
+
*
|
|
84
|
+
* alt No clazz
|
|
85
|
+
* CouchDBPaginator-->>Client: Throw PagingError
|
|
86
|
+
* else Has clazz
|
|
87
|
+
* CouchDBPaginator->>CouchDBPaginator: Find primary key
|
|
88
|
+
*
|
|
89
|
+
* alt Has fields in statement
|
|
90
|
+
* CouchDBPaginator->>CouchDBPaginator: Use docs directly
|
|
91
|
+
* else No fields
|
|
92
|
+
* CouchDBPaginator->>CouchDBPaginator: Process each document
|
|
93
|
+
* loop For each document
|
|
94
|
+
* CouchDBPaginator->>CouchDBPaginator: Extract original ID
|
|
95
|
+
* CouchDBPaginator->>Adapter: revert(doc, clazz, pkDef.id, parsedId)
|
|
96
|
+
* end
|
|
97
|
+
* end
|
|
98
|
+
*
|
|
99
|
+
* CouchDBPaginator->>CouchDBPaginator: Store bookmark
|
|
100
|
+
* CouchDBPaginator->>CouchDBPaginator: Update currentPage
|
|
101
|
+
* CouchDBPaginator-->>Client: Return results
|
|
102
|
+
* end
|
|
103
|
+
*/
|
|
104
|
+
page(page?: number, bookmark?: any, ...args: MaybeContextualArg<any>): Promise<M[]>;
|
|
105
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import "./overrides";
|
|
2
|
+
import { Repository, ObserverHandler, EventIds, ContextualArgs, MaybeContextualArg, OrderDirection, SerializedPage, DirectionLimitOffset, MethodOrOperation, ContextualizedArgs } from "@decaf-ts/core";
|
|
3
|
+
import { FabricContractContext } from "./ContractContext.cjs";
|
|
4
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
5
|
+
import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
|
|
6
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
7
|
+
import { FabricContractAdapter } from "./ContractAdapter.cjs";
|
|
8
|
+
import { FabricContractFlags } from "./types.cjs";
|
|
9
|
+
/**
|
|
10
|
+
* @description Repository for Hyperledger Fabric chaincode models
|
|
11
|
+
* @summary Provides CRUD operations for models within Fabric chaincode contracts
|
|
12
|
+
* @template M - Type extending Model
|
|
13
|
+
* @template MangoQuery - Query type for CouchDB-like queries
|
|
14
|
+
* @template FabricContractAdapter - Adapter type for Fabric contract operations
|
|
15
|
+
* @template FabricContractFlags - Flags specific to Fabric contract operations
|
|
16
|
+
* @template FabricContractContext - Context type for Fabric contract operations
|
|
17
|
+
*
|
|
18
|
+
* @param {FabricContractAdapter} [adapter] - The adapter for interacting with the state database
|
|
19
|
+
* @param {Constructor<M>} [clazz] - The model constructor
|
|
20
|
+
* @param {Array<OperationKeys | BulkCrudOperationKeys | string>} [trackedEvents] - Events to track for observer notifications
|
|
21
|
+
*
|
|
22
|
+
* @class FabricContractRepository
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* // In a Fabric chaincode contract class
|
|
26
|
+
* import { FabricContractRepository, FabricContractAdapter } from '@decaf-ts/for-fabric';
|
|
27
|
+
*
|
|
28
|
+
* @table('assets')
|
|
29
|
+
* class Asset extends Model {
|
|
30
|
+
* @id()
|
|
31
|
+
* id: string;
|
|
32
|
+
*
|
|
33
|
+
* @property()
|
|
34
|
+
* data: string;
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* export class MyContract extends Contract {
|
|
38
|
+
* private adapter = new FabricContractAdapter();
|
|
39
|
+
* private repository: FabricContractRepository<Asset>;
|
|
40
|
+
*
|
|
41
|
+
* constructor() {
|
|
42
|
+
* super('MyContract');
|
|
43
|
+
* this.repository = new FabricContractRepository<Asset>(this.adapter, Asset);
|
|
44
|
+
* }
|
|
45
|
+
*
|
|
46
|
+
* @Transaction()
|
|
47
|
+
* async createAsset(ctx: Context, id: string, data: string): Promise<void> {
|
|
48
|
+
* const asset = new Asset();
|
|
49
|
+
* asset.id = id;
|
|
50
|
+
* asset.data = data;
|
|
51
|
+
*
|
|
52
|
+
* await this.repository.create(asset, { stub: ctx.stub });
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
56
|
+
* @mermaid
|
|
57
|
+
* sequenceDiagram
|
|
58
|
+
* participant Contract
|
|
59
|
+
* participant Repository
|
|
60
|
+
* participant Adapter
|
|
61
|
+
* participant StateDB
|
|
62
|
+
*
|
|
63
|
+
* Contract->>Repository: create(model, ctx)
|
|
64
|
+
* Repository->>Adapter: prepare(model, pk)
|
|
65
|
+
* Repository->>Adapter: create(tableName, id, record, transient, ctx)
|
|
66
|
+
* Adapter->>StateDB: putState(id, serializedData)
|
|
67
|
+
* StateDB-->>Adapter: Success
|
|
68
|
+
* Adapter-->>Repository: record
|
|
69
|
+
* Repository->>Adapter: revert(record, class, pk, id, transient)
|
|
70
|
+
* Adapter-->>Repository: model
|
|
71
|
+
* Repository-->>Contract: model
|
|
72
|
+
*/
|
|
73
|
+
export declare class FabricContractRepository<M extends Model> extends Repository<M, FabricContractAdapter> {
|
|
74
|
+
protected omittedEvents?: (OperationKeys | BulkCrudOperationKeys | string)[] | undefined;
|
|
75
|
+
protected _overrides: Partial<(import("@decaf-ts/db-decorators").ContextFlags<any> & Pick<import("@decaf-ts/db-decorators").RepositoryFlags<any>, "operation" | "correlationId" | "ignoreDevSafeGuards" | "parentContext" | "childContexts"> & {
|
|
76
|
+
pending?: Record<string, string[]>;
|
|
77
|
+
transactionLock?: import("@decaf-ts/core").ContextLock;
|
|
78
|
+
}) | import("@decaf-ts/core").AdapterFlags> & {
|
|
79
|
+
ignoreValidation: boolean;
|
|
80
|
+
ignoreHandlers: boolean;
|
|
81
|
+
allowRawStatements: boolean;
|
|
82
|
+
forcePrepareSimpleQueries: boolean;
|
|
83
|
+
forcePrepareComplexQueries: boolean;
|
|
84
|
+
rebuildWithTransient: boolean;
|
|
85
|
+
};
|
|
86
|
+
constructor(adapter?: FabricContractAdapter, clazz?: Constructor<M>, omittedEvents?: (OperationKeys | BulkCrudOperationKeys | string)[] | undefined);
|
|
87
|
+
create(model: M, ...args: MaybeContextualArg<FabricContractContext>): Promise<M>;
|
|
88
|
+
createAll(models: M[], ...args: MaybeContextualArg<FabricContractContext>): Promise<M[]>;
|
|
89
|
+
update(model: M, ...args: MaybeContextualArg<FabricContractContext>): Promise<M>;
|
|
90
|
+
updateAll(models: M[], ...args: MaybeContextualArg<FabricContractContext>): Promise<M[]>;
|
|
91
|
+
listBy(key: keyof M, order: OrderDirection, ...args: MaybeContextualArg<FabricContractContext>): Promise<M[]>;
|
|
92
|
+
paginateBy(key: keyof M, order: OrderDirection, ref?: Omit<DirectionLimitOffset, "direction">, ...args: MaybeContextualArg<FabricContractContext>): Promise<SerializedPage<M>>;
|
|
93
|
+
statement(name: string, ...args: MaybeContextualArg<FabricContractContext>): Promise<any>;
|
|
94
|
+
/**
|
|
95
|
+
* @description Gets the observer handler for this repository
|
|
96
|
+
* @summary Returns a FabricContractRepositoryObservableHandler instance
|
|
97
|
+
* @return {ObserverHandler} The observer handler
|
|
98
|
+
*/
|
|
99
|
+
ObserverHandler(): ObserverHandler;
|
|
100
|
+
/**
|
|
101
|
+
* @description Updates observers based on tracked events
|
|
102
|
+
* @summary Filters events based on trackedEvents and delegates to the parent method
|
|
103
|
+
* @param {string} table - The table/collection name
|
|
104
|
+
* @param {OperationKeys | BulkCrudOperationKeys | string} event - The event type
|
|
105
|
+
* @param {EventIds} id - The event identifier
|
|
106
|
+
* @param {FabricContractContext} ctx - The Fabric contract context
|
|
107
|
+
* @param {...any[]} args - Additional arguments
|
|
108
|
+
* @return {Promise<void>} Promise that resolves when observers are updated
|
|
109
|
+
*/
|
|
110
|
+
updateObservers(table: Constructor<M> | string, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds, ...args: ContextualArgs<FabricContractContext>): Promise<void>;
|
|
111
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD): ContextualizedArgs<FabricContractContext, ARGS, METHOD extends string ? true : false>;
|
|
112
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD, allowCreate: false): ContextualizedArgs<FabricContractContext, ARGS, METHOD extends string ? true : false>;
|
|
113
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD, allowCreate: true): Promise<ContextualizedArgs<FabricContractContext, ARGS, METHOD extends string ? true : false>>;
|
|
114
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD, allowCreate: true, overrides?: Partial<FabricContractFlags>): Promise<ContextualizedArgs<FabricContractContext, ARGS, METHOD extends string ? true : false>>;
|
|
115
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD, allowCreate: false, overrides?: Partial<FabricContractFlags>): ContextualizedArgs<FabricContractContext, ARGS, METHOD extends string ? true : false>;
|
|
116
|
+
private cleanContextualizedArgs;
|
|
117
|
+
private applyCleanContext;
|
|
118
|
+
private cleanContext;
|
|
119
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import "./overrides";
|
|
2
|
+
import { Repository, ObserverHandler, EventIds, ContextualArgs, MaybeContextualArg, OrderDirection, SerializedPage, DirectionLimitOffset, MethodOrOperation, ContextualizedArgs } from "@decaf-ts/core";
|
|
3
|
+
import { FabricContractContext } from "./ContractContext.js";
|
|
4
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
5
|
+
import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
|
|
6
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
7
|
+
import { FabricContractAdapter } from "./ContractAdapter.js";
|
|
8
|
+
import { FabricContractFlags } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* @description Repository for Hyperledger Fabric chaincode models
|
|
11
|
+
* @summary Provides CRUD operations for models within Fabric chaincode contracts
|
|
12
|
+
* @template M - Type extending Model
|
|
13
|
+
* @template MangoQuery - Query type for CouchDB-like queries
|
|
14
|
+
* @template FabricContractAdapter - Adapter type for Fabric contract operations
|
|
15
|
+
* @template FabricContractFlags - Flags specific to Fabric contract operations
|
|
16
|
+
* @template FabricContractContext - Context type for Fabric contract operations
|
|
17
|
+
*
|
|
18
|
+
* @param {FabricContractAdapter} [adapter] - The adapter for interacting with the state database
|
|
19
|
+
* @param {Constructor<M>} [clazz] - The model constructor
|
|
20
|
+
* @param {Array<OperationKeys | BulkCrudOperationKeys | string>} [trackedEvents] - Events to track for observer notifications
|
|
21
|
+
*
|
|
22
|
+
* @class FabricContractRepository
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* // In a Fabric chaincode contract class
|
|
26
|
+
* import { FabricContractRepository, FabricContractAdapter } from '@decaf-ts/for-fabric';
|
|
27
|
+
*
|
|
28
|
+
* @table('assets')
|
|
29
|
+
* class Asset extends Model {
|
|
30
|
+
* @id()
|
|
31
|
+
* id: string;
|
|
32
|
+
*
|
|
33
|
+
* @property()
|
|
34
|
+
* data: string;
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* export class MyContract extends Contract {
|
|
38
|
+
* private adapter = new FabricContractAdapter();
|
|
39
|
+
* private repository: FabricContractRepository<Asset>;
|
|
40
|
+
*
|
|
41
|
+
* constructor() {
|
|
42
|
+
* super('MyContract');
|
|
43
|
+
* this.repository = new FabricContractRepository<Asset>(this.adapter, Asset);
|
|
44
|
+
* }
|
|
45
|
+
*
|
|
46
|
+
* @Transaction()
|
|
47
|
+
* async createAsset(ctx: Context, id: string, data: string): Promise<void> {
|
|
48
|
+
* const asset = new Asset();
|
|
49
|
+
* asset.id = id;
|
|
50
|
+
* asset.data = data;
|
|
51
|
+
*
|
|
52
|
+
* await this.repository.create(asset, { stub: ctx.stub });
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
56
|
+
* @mermaid
|
|
57
|
+
* sequenceDiagram
|
|
58
|
+
* participant Contract
|
|
59
|
+
* participant Repository
|
|
60
|
+
* participant Adapter
|
|
61
|
+
* participant StateDB
|
|
62
|
+
*
|
|
63
|
+
* Contract->>Repository: create(model, ctx)
|
|
64
|
+
* Repository->>Adapter: prepare(model, pk)
|
|
65
|
+
* Repository->>Adapter: create(tableName, id, record, transient, ctx)
|
|
66
|
+
* Adapter->>StateDB: putState(id, serializedData)
|
|
67
|
+
* StateDB-->>Adapter: Success
|
|
68
|
+
* Adapter-->>Repository: record
|
|
69
|
+
* Repository->>Adapter: revert(record, class, pk, id, transient)
|
|
70
|
+
* Adapter-->>Repository: model
|
|
71
|
+
* Repository-->>Contract: model
|
|
72
|
+
*/
|
|
73
|
+
export declare class FabricContractRepository<M extends Model> extends Repository<M, FabricContractAdapter> {
|
|
74
|
+
protected omittedEvents?: (OperationKeys | BulkCrudOperationKeys | string)[] | undefined;
|
|
75
|
+
protected _overrides: Partial<(import("@decaf-ts/db-decorators").ContextFlags<any> & Pick<import("@decaf-ts/db-decorators").RepositoryFlags<any>, "operation" | "correlationId" | "ignoreDevSafeGuards" | "parentContext" | "childContexts"> & {
|
|
76
|
+
pending?: Record<string, string[]>;
|
|
77
|
+
transactionLock?: import("@decaf-ts/core").ContextLock;
|
|
78
|
+
}) | import("@decaf-ts/core").AdapterFlags> & {
|
|
79
|
+
ignoreValidation: boolean;
|
|
80
|
+
ignoreHandlers: boolean;
|
|
81
|
+
allowRawStatements: boolean;
|
|
82
|
+
forcePrepareSimpleQueries: boolean;
|
|
83
|
+
forcePrepareComplexQueries: boolean;
|
|
84
|
+
rebuildWithTransient: boolean;
|
|
85
|
+
};
|
|
86
|
+
constructor(adapter?: FabricContractAdapter, clazz?: Constructor<M>, omittedEvents?: (OperationKeys | BulkCrudOperationKeys | string)[] | undefined);
|
|
87
|
+
create(model: M, ...args: MaybeContextualArg<FabricContractContext>): Promise<M>;
|
|
88
|
+
createAll(models: M[], ...args: MaybeContextualArg<FabricContractContext>): Promise<M[]>;
|
|
89
|
+
update(model: M, ...args: MaybeContextualArg<FabricContractContext>): Promise<M>;
|
|
90
|
+
updateAll(models: M[], ...args: MaybeContextualArg<FabricContractContext>): Promise<M[]>;
|
|
91
|
+
listBy(key: keyof M, order: OrderDirection, ...args: MaybeContextualArg<FabricContractContext>): Promise<M[]>;
|
|
92
|
+
paginateBy(key: keyof M, order: OrderDirection, ref?: Omit<DirectionLimitOffset, "direction">, ...args: MaybeContextualArg<FabricContractContext>): Promise<SerializedPage<M>>;
|
|
93
|
+
statement(name: string, ...args: MaybeContextualArg<FabricContractContext>): Promise<any>;
|
|
94
|
+
/**
|
|
95
|
+
* @description Gets the observer handler for this repository
|
|
96
|
+
* @summary Returns a FabricContractRepositoryObservableHandler instance
|
|
97
|
+
* @return {ObserverHandler} The observer handler
|
|
98
|
+
*/
|
|
99
|
+
ObserverHandler(): ObserverHandler;
|
|
100
|
+
/**
|
|
101
|
+
* @description Updates observers based on tracked events
|
|
102
|
+
* @summary Filters events based on trackedEvents and delegates to the parent method
|
|
103
|
+
* @param {string} table - The table/collection name
|
|
104
|
+
* @param {OperationKeys | BulkCrudOperationKeys | string} event - The event type
|
|
105
|
+
* @param {EventIds} id - The event identifier
|
|
106
|
+
* @param {FabricContractContext} ctx - The Fabric contract context
|
|
107
|
+
* @param {...any[]} args - Additional arguments
|
|
108
|
+
* @return {Promise<void>} Promise that resolves when observers are updated
|
|
109
|
+
*/
|
|
110
|
+
updateObservers(table: Constructor<M> | string, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds, ...args: ContextualArgs<FabricContractContext>): Promise<void>;
|
|
111
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD): ContextualizedArgs<FabricContractContext, ARGS, METHOD extends string ? true : false>;
|
|
112
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD, allowCreate: false): ContextualizedArgs<FabricContractContext, ARGS, METHOD extends string ? true : false>;
|
|
113
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD, allowCreate: true): Promise<ContextualizedArgs<FabricContractContext, ARGS, METHOD extends string ? true : false>>;
|
|
114
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD, allowCreate: true, overrides?: Partial<FabricContractFlags>): Promise<ContextualizedArgs<FabricContractContext, ARGS, METHOD extends string ? true : false>>;
|
|
115
|
+
protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<FabricContractContext, ARGS>, operation: METHOD, allowCreate: false, overrides?: Partial<FabricContractFlags>): ContextualizedArgs<FabricContractContext, ARGS, METHOD extends string ? true : false>;
|
|
116
|
+
private cleanContextualizedArgs;
|
|
117
|
+
private applyCleanContext;
|
|
118
|
+
private cleanContext;
|
|
119
|
+
}
|