@decaf-ts/for-fabric 0.5.6 → 0.7.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/dist/for-fabric.cjs +2 -3796
- package/dist/for-fabric.cjs.map +1 -0
- package/dist/for-fabric.js +2 -3900
- package/dist/for-fabric.js.map +1 -0
- package/lib/cjs/bin/cli.cjs +9 -0
- package/lib/cjs/bin/cli.js.map +1 -0
- package/lib/cjs/cli-module.cjs +479 -0
- package/lib/cjs/cli-module.js.map +1 -0
- package/lib/cjs/cli-utils.cjs +309 -0
- package/lib/cjs/cli-utils.js.map +1 -0
- package/lib/cjs/client/FabricClientAdapter.cjs +1362 -0
- package/lib/cjs/client/FabricClientAdapter.js.map +1 -0
- package/lib/cjs/client/FabricClientDispatch.cjs +290 -0
- package/lib/cjs/client/FabricClientDispatch.js.map +1 -0
- package/lib/cjs/client/FabricClientPaginator.cjs +21 -0
- package/lib/cjs/client/FabricClientPaginator.js.map +1 -0
- package/lib/cjs/client/FabricClientRepository.cjs +259 -0
- package/lib/cjs/client/FabricClientRepository.js.map +1 -0
- package/lib/cjs/client/FabricClientStatement.cjs +451 -0
- package/lib/cjs/client/FabricClientStatement.js.map +1 -0
- package/lib/cjs/client/collections/generation.cjs +113 -0
- package/lib/cjs/client/collections/generation.js.map +1 -0
- package/lib/{client/indexes → cjs/client/collections}/index.cjs +1 -1
- package/lib/cjs/client/collections/index.js.map +1 -0
- package/lib/cjs/client/constants.cjs +16 -0
- package/lib/cjs/client/constants.js.map +1 -0
- package/lib/cjs/client/crypto.cjs +368 -0
- package/lib/cjs/client/crypto.js.map +1 -0
- package/lib/{esm/client/erc20/FabricERC20ClientRepository.d.ts → cjs/client/erc20/FabricERC20ClientRepository.cjs} +139 -30
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.js.map +1 -0
- package/lib/{client → cjs/client}/erc20/index.cjs +1 -1
- package/lib/cjs/client/erc20/index.js.map +1 -0
- package/lib/cjs/client/fabric-fs.cjs +234 -0
- package/lib/cjs/client/fabric-fs.js.map +1 -0
- package/lib/cjs/client/fabric-hsm.cjs +165 -0
- package/lib/cjs/client/fabric-hsm.js.map +1 -0
- package/lib/cjs/client/ids/id-extraction.cjs +30 -0
- package/lib/cjs/client/ids/id-extraction.js.map +1 -0
- package/lib/{client → cjs/client}/ids/index.cjs +1 -1
- package/lib/cjs/client/ids/index.js.map +1 -0
- package/lib/{client → cjs/client}/index.cjs +1 -1
- package/lib/cjs/client/index.js.map +1 -0
- package/lib/cjs/client/indexes/generation.cjs +95 -0
- package/lib/cjs/client/indexes/generation.js.map +1 -0
- package/lib/{client/collections → cjs/client/indexes}/index.cjs +1 -1
- package/lib/cjs/client/indexes/index.js.map +1 -0
- package/lib/{esm/client/logging.d.ts → cjs/client/logging.cjs} +51 -9
- package/lib/cjs/client/logging.js.map +1 -0
- package/lib/cjs/client/services/FabricEnrollmentService.cjs +363 -0
- package/lib/cjs/client/services/FabricEnrollmentService.js.map +1 -0
- package/lib/cjs/client/services/FabricIdentityService.cjs +324 -0
- package/lib/cjs/client/services/FabricIdentityService.js.map +1 -0
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +91 -0
- package/lib/cjs/client/services/RegistrationRequestBuilder.js.map +1 -0
- package/lib/{esm/client/services/constants.d.ts → cjs/client/services/constants.cjs} +10 -5
- package/lib/cjs/client/services/constants.js.map +1 -0
- package/lib/cjs/client/services/index.cjs +21 -0
- package/lib/cjs/client/services/index.js.map +1 -0
- package/lib/cjs/client/types.cjs +3 -0
- package/lib/cjs/client/types.js.map +1 -0
- package/lib/cjs/client/utils.cjs +262 -0
- package/lib/cjs/client/utils.js.map +1 -0
- package/lib/{contract → cjs/contract}/Address.cjs +1 -1
- package/lib/cjs/contract/Address.js.map +1 -0
- package/lib/{contract → cjs/contract}/AddressContract.cjs +1 -1
- package/lib/cjs/contract/AddressContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/AuditContract.cjs +1 -1
- package/lib/cjs/contract/AuditContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/BatchContract.cjs +1 -1
- package/lib/cjs/contract/BatchContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/MarketContract.cjs +1 -1
- package/lib/cjs/contract/MarketContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/OtherAuditContract.cjs +1 -1
- package/lib/cjs/contract/OtherAuditContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/OtherBatchContract.cjs +1 -1
- package/lib/cjs/contract/OtherBatchContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/OtherMarketContract.cjs +1 -1
- package/lib/cjs/contract/OtherMarketContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/OtherProductContract.cjs +1 -1
- package/lib/cjs/contract/OtherProductContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/OtherProductImageContract.cjs +1 -1
- package/lib/cjs/contract/OtherProductImageContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/OtherProductSharedContract.cjs +1 -1
- package/lib/cjs/contract/OtherProductSharedContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/OtherProductStrengthContract.cjs +1 -1
- package/lib/cjs/contract/OtherProductStrengthContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/Product.cjs +1 -1
- package/lib/cjs/contract/Product.js.map +1 -0
- package/lib/{contract → cjs/contract}/ProductContract.cjs +1 -1
- package/lib/cjs/contract/ProductContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/ProductStrengthContract.cjs +1 -1
- package/lib/cjs/contract/ProductStrengthContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/SegregatedPrivateDocumentContract.cjs +1 -1
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/SegregatedSharedDocumentContract.cjs +1 -1
- package/lib/cjs/contract/SegregatedSharedDocumentContract.js.map +1 -0
- package/lib/{contract → cjs/contract}/User.cjs +1 -1
- package/lib/cjs/contract/User.js.map +1 -0
- package/lib/{contract → cjs/contract}/UserContract.cjs +1 -1
- package/lib/cjs/contract/UserContract.js.map +1 -0
- package/lib/cjs/contract/index.cjs +36 -0
- package/lib/cjs/contract/index.js.map +1 -0
- package/lib/cjs/contract/logging-context.cjs +77 -0
- package/lib/cjs/contract/logging-context.js.map +1 -0
- package/lib/cjs/contract/models/Audit.cjs +106 -0
- package/lib/cjs/contract/models/Audit.js.map +1 -0
- package/lib/{contract → cjs/contract}/models/BaseIdentifiedModel.cjs +1 -1
- package/lib/cjs/contract/models/BaseIdentifiedModel.js.map +1 -0
- package/lib/{contract → cjs/contract}/models/BaseModel.cjs +1 -1
- package/lib/cjs/contract/models/BaseModel.js.map +1 -0
- package/lib/cjs/contract/models/Batch.cjs +174 -0
- package/lib/cjs/contract/models/Batch.js.map +1 -0
- package/lib/cjs/contract/models/GtinOwner.cjs +59 -0
- package/lib/cjs/contract/models/GtinOwner.js.map +1 -0
- package/lib/cjs/contract/models/History.cjs +75 -0
- package/lib/cjs/contract/models/History.js.map +1 -0
- package/lib/cjs/contract/models/Leaflet.cjs +95 -0
- package/lib/cjs/contract/models/Leaflet.js.map +1 -0
- package/lib/cjs/contract/models/LeafletFile.cjs +58 -0
- package/lib/cjs/contract/models/LeafletFile.js.map +1 -0
- package/lib/cjs/contract/models/Market.cjs +75 -0
- package/lib/cjs/contract/models/Market.js.map +1 -0
- package/lib/cjs/contract/models/OtherAudit.cjs +118 -0
- package/lib/cjs/contract/models/OtherAudit.js.map +1 -0
- package/lib/cjs/contract/models/OtherBatchShared.cjs +127 -0
- package/lib/cjs/contract/models/OtherBatchShared.js.map +1 -0
- package/lib/cjs/contract/models/OtherLeaflet.cjs +115 -0
- package/lib/cjs/contract/models/OtherLeaflet.js.map +1 -0
- package/lib/cjs/contract/models/OtherLeafletFile.cjs +65 -0
- package/lib/cjs/contract/models/OtherLeafletFile.js.map +1 -0
- package/lib/cjs/contract/models/OtherMarket.cjs +84 -0
- package/lib/cjs/contract/models/OtherMarket.js.map +1 -0
- package/lib/cjs/contract/models/OtherProduct.cjs +77 -0
- package/lib/cjs/contract/models/OtherProduct.js.map +1 -0
- package/lib/cjs/contract/models/OtherProductImage.cjs +59 -0
- package/lib/cjs/contract/models/OtherProductImage.js.map +1 -0
- package/lib/cjs/contract/models/OtherProductShared.cjs +99 -0
- package/lib/cjs/contract/models/OtherProductShared.js.map +1 -0
- package/lib/cjs/contract/models/OtherProductStrength.cjs +87 -0
- package/lib/cjs/contract/models/OtherProductStrength.js.map +1 -0
- package/lib/cjs/contract/models/Product.cjs +78 -0
- package/lib/cjs/contract/models/Product.js.map +1 -0
- package/lib/cjs/contract/models/ProductStrength.cjs +78 -0
- package/lib/cjs/contract/models/ProductStrength.js.map +1 -0
- package/lib/{contract → cjs/contract}/models/SegregatedDocument.cjs +1 -1
- package/lib/cjs/contract/models/SegregatedDocument.js.map +1 -0
- package/lib/cjs/contract/models/constants.cjs +30 -0
- package/lib/cjs/contract/models/constants.js.map +1 -0
- package/lib/cjs/contract/models/decorators-private.cjs +158 -0
- package/lib/cjs/contract/models/decorators-private.js.map +1 -0
- package/lib/cjs/contract/models/decorators.cjs +182 -0
- package/lib/cjs/contract/models/decorators.js.map +1 -0
- package/lib/cjs/contract/models/gtin.cjs +88 -0
- package/lib/cjs/contract/models/gtin.js.map +1 -0
- package/lib/cjs/contract/models/history-dec.cjs +83 -0
- package/lib/cjs/contract/models/history-dec.js.map +1 -0
- package/lib/cjs/contracts/ContractAdapter.cjs +1193 -0
- package/lib/cjs/contracts/ContractAdapter.js.map +1 -0
- package/lib/cjs/contracts/ContractContext.cjs +157 -0
- package/lib/cjs/contracts/ContractContext.js.map +1 -0
- package/lib/cjs/contracts/FabricContractDispatch.cjs +79 -0
- package/lib/cjs/contracts/FabricContractDispatch.js.map +1 -0
- package/lib/{esm/contracts/FabricContractPaginator.d.ts → cjs/contracts/FabricContractPaginator.cjs} +77 -9
- package/lib/cjs/contracts/FabricContractPaginator.js.map +1 -0
- package/lib/cjs/contracts/FabricContractRepository.cjs +322 -0
- package/lib/cjs/contracts/FabricContractRepository.js.map +1 -0
- package/lib/{esm/contracts/FabricContractRepositoryObservableHandler.d.ts → cjs/contracts/FabricContractRepositoryObservableHandler.cjs} +42 -8
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
- package/lib/cjs/contracts/FabricContractSequence.cjs +338 -0
- package/lib/cjs/contracts/FabricContractSequence.js.map +1 -0
- package/lib/cjs/contracts/FabricContractStatement.cjs +180 -0
- package/lib/cjs/contracts/FabricContractStatement.js.map +1 -0
- package/lib/cjs/contracts/MigrationContract.cjs +147 -0
- package/lib/cjs/contracts/MigrationContract.js.map +1 -0
- package/lib/{contracts → cjs/contracts}/PrivateSequence.cjs +1 -1
- package/lib/cjs/contracts/PrivateSequence.js.map +1 -0
- package/lib/cjs/contracts/auth/decorators.cjs +84 -0
- package/lib/cjs/contracts/auth/decorators.js.map +1 -0
- package/lib/{contracts → cjs/contracts}/auth/index.cjs +1 -1
- package/lib/cjs/contracts/auth/index.js.map +1 -0
- package/lib/cjs/contracts/crud/crud-contract.cjs +416 -0
- package/lib/cjs/contracts/crud/crud-contract.js.map +1 -0
- package/lib/{contracts → cjs/contracts}/crud/index.cjs +1 -1
- package/lib/cjs/contracts/crud/index.js.map +1 -0
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +284 -0
- package/lib/cjs/contracts/crud/serialized-crud-contract.js.map +1 -0
- package/lib/cjs/contracts/erc20/erc20contract.cjs +581 -0
- package/lib/cjs/contracts/erc20/erc20contract.js.map +1 -0
- package/lib/cjs/contracts/erc20/index.cjs +21 -0
- package/lib/cjs/contracts/erc20/index.js.map +1 -0
- package/lib/cjs/contracts/erc20/models.cjs +209 -0
- package/lib/cjs/contracts/erc20/models.js.map +1 -0
- package/lib/{contracts → cjs/contracts}/index.cjs +1 -1
- package/lib/cjs/contracts/index.js.map +1 -0
- package/lib/cjs/contracts/logging.cjs +118 -0
- package/lib/cjs/contracts/logging.js.map +1 -0
- package/lib/cjs/contracts/overrides.cjs +8 -0
- package/lib/cjs/contracts/overrides.js.map +1 -0
- package/lib/cjs/contracts/types.cjs +3 -0
- package/lib/cjs/contracts/types.js.map +1 -0
- package/lib/cjs/contracts/uuid.cjs +75 -0
- package/lib/cjs/contracts/uuid.js.map +1 -0
- package/lib/{index.cjs → cjs/index.cjs} +1 -1
- package/lib/cjs/index.js.map +1 -0
- package/lib/{shared/ClientSerializer.d.ts → cjs/shared/ClientSerializer.cjs} +35 -6
- package/lib/cjs/shared/ClientSerializer.js.map +1 -0
- package/lib/cjs/shared/DeterministicSerializer.cjs +106 -0
- package/lib/cjs/shared/DeterministicSerializer.js.map +1 -0
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +69 -0
- package/lib/cjs/shared/SimpleDeterministicSerializer.js.map +1 -0
- package/lib/{shared/constants.d.ts → cjs/shared/constants.cjs} +18 -12
- package/lib/cjs/shared/constants.js.map +1 -0
- package/lib/cjs/shared/decorators.cjs +595 -0
- package/lib/cjs/shared/decorators.js.map +1 -0
- package/lib/{shared/erc20/erc20-constants.d.ts → cjs/shared/erc20/erc20-constants.cjs} +9 -4
- package/lib/cjs/shared/erc20/erc20-constants.js.map +1 -0
- package/lib/{shared → cjs/shared}/erc20/index.cjs +1 -1
- package/lib/cjs/shared/erc20/index.js.map +1 -0
- package/lib/cjs/shared/errors.cjs +190 -0
- package/lib/cjs/shared/errors.js.map +1 -0
- package/lib/{shared/events.d.ts → cjs/shared/events.cjs} +21 -7
- package/lib/cjs/shared/events.js.map +1 -0
- package/lib/cjs/shared/fabric-types.cjs +3 -0
- package/lib/cjs/shared/fabric-types.js.map +1 -0
- package/lib/{shared → cjs/shared}/index.cjs +1 -1
- package/lib/cjs/shared/index.js.map +1 -0
- package/lib/cjs/shared/interfaces/Checkable.cjs +3 -0
- package/lib/cjs/shared/interfaces/Checkable.js.map +1 -0
- package/lib/{shared → cjs/shared}/interfaces/index.cjs +1 -1
- package/lib/cjs/shared/interfaces/index.js.map +1 -0
- package/lib/cjs/shared/math.cjs +66 -0
- package/lib/cjs/shared/math.js.map +1 -0
- package/lib/{shared → cjs/shared}/model/FabricBaseModel.cjs +1 -1
- package/lib/cjs/shared/model/FabricBaseModel.js.map +1 -0
- package/lib/{shared → cjs/shared}/model/FabricIdentifiedBaseModel.cjs +1 -1
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
- package/lib/cjs/shared/model/Identity.cjs +71 -0
- package/lib/cjs/shared/model/Identity.js.map +1 -0
- package/lib/cjs/shared/model/IdentityCredentials.cjs +66 -0
- package/lib/cjs/shared/model/IdentityCredentials.js.map +1 -0
- package/lib/cjs/shared/model/index.cjs +21 -0
- package/lib/cjs/shared/model/index.js.map +1 -0
- package/lib/cjs/shared/overrides/Model.cjs +4 -0
- package/lib/cjs/shared/overrides/Model.js.map +1 -0
- package/lib/{shared → cjs/shared}/overrides/index.cjs +1 -1
- package/lib/cjs/shared/overrides/index.js.map +1 -0
- package/lib/cjs/shared/overrides/overrides.cjs +93 -0
- package/lib/cjs/shared/overrides/overrides.js.map +1 -0
- package/lib/cjs/shared/types.cjs +3 -0
- package/lib/cjs/shared/types.js.map +1 -0
- package/lib/cjs/version.cjs +8 -0
- package/lib/cjs/version.js.map +1 -0
- package/lib/esm/bin/cli.js +1 -1
- package/lib/esm/bin/cli.js.map +1 -0
- package/lib/esm/cli-module.js +1 -1
- package/lib/esm/cli-module.js.map +1 -0
- package/lib/esm/cli-utils.js +1 -1
- package/lib/esm/cli-utils.js.map +1 -0
- package/lib/esm/client/FabricClientAdapter.js +1 -1
- package/lib/esm/client/FabricClientAdapter.js.map +1 -0
- package/lib/esm/client/FabricClientDispatch.js +1 -1
- package/lib/esm/client/FabricClientDispatch.js.map +1 -0
- package/lib/esm/client/FabricClientPaginator.js +1 -1
- package/lib/esm/client/FabricClientPaginator.js.map +1 -0
- package/lib/esm/client/FabricClientRepository.js +1 -1
- package/lib/esm/client/FabricClientRepository.js.map +1 -0
- package/lib/esm/client/FabricClientStatement.js +1 -1
- package/lib/esm/client/FabricClientStatement.js.map +1 -0
- package/lib/esm/client/collections/generation.js +1 -1
- package/lib/esm/client/collections/generation.js.map +1 -0
- package/lib/esm/client/collections/index.js +1 -1
- package/lib/esm/client/collections/index.js.map +1 -0
- package/lib/esm/client/constants.js +1 -1
- package/lib/esm/client/constants.js.map +1 -0
- package/lib/esm/client/crypto.js +1 -1
- package/lib/esm/client/crypto.js.map +1 -0
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
- package/lib/esm/client/erc20/index.js +1 -1
- package/lib/esm/client/erc20/index.js.map +1 -0
- package/lib/esm/client/fabric-fs.js +1 -1
- package/lib/esm/client/fabric-fs.js.map +1 -0
- package/lib/esm/client/fabric-hsm.js +1 -1
- package/lib/esm/client/fabric-hsm.js.map +1 -0
- package/lib/esm/client/ids/id-extraction.js +1 -1
- package/lib/esm/client/ids/id-extraction.js.map +1 -0
- package/lib/esm/client/ids/index.js +1 -1
- package/lib/esm/client/ids/index.js.map +1 -0
- package/lib/esm/client/index.js +1 -1
- package/lib/esm/client/index.js.map +1 -0
- package/lib/esm/client/indexes/generation.js +1 -1
- package/lib/esm/client/indexes/generation.js.map +1 -0
- package/lib/esm/client/indexes/index.js +1 -1
- package/lib/esm/client/indexes/index.js.map +1 -0
- package/lib/esm/client/logging.js +1 -1
- package/lib/esm/client/logging.js.map +1 -0
- package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
- package/lib/esm/client/services/FabricIdentityService.js +1 -1
- package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
- package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
- package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
- package/lib/esm/client/services/constants.js +1 -1
- package/lib/esm/client/services/constants.js.map +1 -0
- package/lib/esm/client/services/index.js +1 -1
- package/lib/esm/client/services/index.js.map +1 -0
- package/lib/esm/client/types.js +1 -1
- package/lib/esm/client/types.js.map +1 -0
- package/lib/esm/client/utils.js +1 -1
- package/lib/esm/client/utils.js.map +1 -0
- package/lib/esm/contract/Address.js +1 -1
- package/lib/esm/contract/Address.js.map +1 -0
- package/lib/esm/contract/AddressContract.js +1 -1
- package/lib/esm/contract/AddressContract.js.map +1 -0
- package/lib/esm/contract/AuditContract.js +1 -1
- package/lib/esm/contract/AuditContract.js.map +1 -0
- package/lib/esm/contract/BatchContract.js +1 -1
- package/lib/esm/contract/BatchContract.js.map +1 -0
- package/lib/esm/contract/MarketContract.js +1 -1
- package/lib/esm/contract/MarketContract.js.map +1 -0
- package/lib/esm/contract/OtherAuditContract.js +1 -1
- package/lib/esm/contract/OtherAuditContract.js.map +1 -0
- package/lib/esm/contract/OtherBatchContract.js +1 -1
- package/lib/esm/contract/OtherBatchContract.js.map +1 -0
- package/lib/esm/contract/OtherMarketContract.js +1 -1
- package/lib/esm/contract/OtherMarketContract.js.map +1 -0
- package/lib/esm/contract/OtherProductContract.js +1 -1
- package/lib/esm/contract/OtherProductContract.js.map +1 -0
- package/lib/esm/contract/OtherProductImageContract.js +1 -1
- package/lib/esm/contract/OtherProductImageContract.js.map +1 -0
- package/lib/esm/contract/OtherProductSharedContract.js +1 -1
- package/lib/esm/contract/OtherProductSharedContract.js.map +1 -0
- package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
- package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
- package/lib/esm/contract/Product.js +1 -1
- package/lib/esm/contract/Product.js.map +1 -0
- package/lib/esm/contract/ProductContract.js +1 -1
- package/lib/esm/contract/ProductContract.js.map +1 -0
- package/lib/esm/contract/ProductStrengthContract.js +1 -1
- package/lib/esm/contract/ProductStrengthContract.js.map +1 -0
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
- package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
- package/lib/esm/contract/User.js +1 -1
- package/lib/esm/contract/User.js.map +1 -0
- package/lib/esm/contract/UserContract.js +1 -1
- package/lib/esm/contract/UserContract.js.map +1 -0
- package/lib/esm/contract/index.js +1 -1
- package/lib/esm/contract/index.js.map +1 -0
- package/lib/esm/contract/logging-context.js +1 -1
- package/lib/esm/contract/logging-context.js.map +1 -0
- package/lib/esm/contract/models/Audit.js +1 -1
- package/lib/esm/contract/models/Audit.js.map +1 -0
- package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
- package/lib/esm/contract/models/BaseModel.js +1 -1
- package/lib/esm/contract/models/BaseModel.js.map +1 -0
- package/lib/esm/contract/models/Batch.js +1 -1
- package/lib/esm/contract/models/Batch.js.map +1 -0
- package/lib/esm/contract/models/GtinOwner.js +1 -1
- package/lib/esm/contract/models/GtinOwner.js.map +1 -0
- package/lib/esm/contract/models/History.js +1 -1
- package/lib/esm/contract/models/History.js.map +1 -0
- package/lib/esm/contract/models/Leaflet.js +1 -1
- package/lib/esm/contract/models/Leaflet.js.map +1 -0
- package/lib/esm/contract/models/LeafletFile.js +1 -1
- package/lib/esm/contract/models/LeafletFile.js.map +1 -0
- package/lib/esm/contract/models/Market.js +1 -1
- package/lib/esm/contract/models/Market.js.map +1 -0
- package/lib/esm/contract/models/OtherAudit.js +1 -1
- package/lib/esm/contract/models/OtherAudit.js.map +1 -0
- package/lib/esm/contract/models/OtherBatchShared.js +1 -1
- package/lib/esm/contract/models/OtherBatchShared.js.map +1 -0
- package/lib/esm/contract/models/OtherLeaflet.js +1 -1
- package/lib/esm/contract/models/OtherLeaflet.js.map +1 -0
- package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
- package/lib/esm/contract/models/OtherLeafletFile.js.map +1 -0
- package/lib/esm/contract/models/OtherMarket.js +1 -1
- package/lib/esm/contract/models/OtherMarket.js.map +1 -0
- package/lib/esm/contract/models/OtherProduct.js +1 -1
- package/lib/esm/contract/models/OtherProduct.js.map +1 -0
- package/lib/esm/contract/models/OtherProductImage.js +1 -1
- package/lib/esm/contract/models/OtherProductImage.js.map +1 -0
- package/lib/esm/contract/models/OtherProductShared.js +1 -1
- package/lib/esm/contract/models/OtherProductShared.js.map +1 -0
- package/lib/esm/contract/models/OtherProductStrength.js +1 -1
- package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
- package/lib/esm/contract/models/Product.js +1 -1
- package/lib/esm/contract/models/Product.js.map +1 -0
- package/lib/esm/contract/models/ProductStrength.js +1 -1
- package/lib/esm/contract/models/ProductStrength.js.map +1 -0
- package/lib/esm/contract/models/SegregatedDocument.js +1 -1
- package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
- package/lib/esm/contract/models/constants.js +1 -1
- package/lib/esm/contract/models/constants.js.map +1 -0
- package/lib/esm/contract/models/decorators-private.js +1 -1
- package/lib/esm/contract/models/decorators-private.js.map +1 -0
- package/lib/esm/contract/models/decorators.js +1 -1
- package/lib/esm/contract/models/decorators.js.map +1 -0
- package/lib/esm/contract/models/gtin.js +1 -1
- package/lib/esm/contract/models/gtin.js.map +1 -0
- package/lib/esm/contract/models/history-dec.js +1 -1
- package/lib/esm/contract/models/history-dec.js.map +1 -0
- package/lib/esm/contracts/ContractAdapter.js +1 -1
- package/lib/esm/contracts/ContractAdapter.js.map +1 -0
- package/lib/esm/contracts/ContractContext.js +1 -1
- package/lib/esm/contracts/ContractContext.js.map +1 -0
- package/lib/esm/contracts/FabricContractDispatch.js +1 -1
- package/lib/esm/contracts/FabricContractDispatch.js.map +1 -0
- package/lib/esm/contracts/FabricContractPaginator.js +1 -1
- package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
- package/lib/esm/contracts/FabricContractRepository.js +1 -1
- package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
- package/lib/esm/contracts/FabricContractSequence.js +1 -1
- package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
- package/lib/esm/contracts/FabricContractStatement.js +1 -1
- package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
- package/lib/esm/contracts/MigrationContract.js +1 -1
- package/lib/esm/contracts/MigrationContract.js.map +1 -0
- package/lib/esm/contracts/PrivateSequence.js +1 -1
- package/lib/esm/contracts/PrivateSequence.js.map +1 -0
- package/lib/esm/contracts/auth/decorators.js +1 -1
- package/lib/esm/contracts/auth/decorators.js.map +1 -0
- package/lib/esm/contracts/auth/index.js +1 -1
- package/lib/esm/contracts/auth/index.js.map +1 -0
- package/lib/esm/contracts/crud/crud-contract.js +1 -1
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
- package/lib/esm/contracts/crud/index.js +1 -1
- package/lib/esm/contracts/crud/index.js.map +1 -0
- package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
- package/lib/esm/contracts/erc20/erc20contract.js +1 -1
- package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
- package/lib/esm/contracts/erc20/index.js +1 -1
- package/lib/esm/contracts/erc20/index.js.map +1 -0
- package/lib/esm/contracts/erc20/models.js +1 -1
- package/lib/esm/contracts/erc20/models.js.map +1 -0
- package/lib/esm/contracts/index.js +1 -1
- package/lib/esm/contracts/index.js.map +1 -0
- package/lib/esm/contracts/logging.js +1 -1
- package/lib/esm/contracts/logging.js.map +1 -0
- package/lib/esm/contracts/overrides.js +1 -1
- package/lib/esm/contracts/overrides.js.map +1 -0
- package/lib/esm/contracts/types.js +1 -1
- package/lib/esm/contracts/types.js.map +1 -0
- package/lib/esm/contracts/uuid.js +1 -1
- package/lib/esm/contracts/uuid.js.map +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/shared/ClientSerializer.js +1 -1
- package/lib/esm/shared/ClientSerializer.js.map +1 -0
- package/lib/esm/shared/DeterministicSerializer.js +1 -1
- package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
- package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
- package/lib/esm/shared/constants.js +1 -1
- package/lib/esm/shared/constants.js.map +1 -0
- package/lib/esm/shared/decorators.js +5 -3
- package/lib/esm/shared/decorators.js.map +1 -0
- package/lib/esm/shared/erc20/erc20-constants.js +1 -1
- package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
- package/lib/esm/shared/erc20/index.js +1 -1
- package/lib/esm/shared/erc20/index.js.map +1 -0
- package/lib/esm/shared/errors.js +1 -1
- package/lib/esm/shared/errors.js.map +1 -0
- package/lib/esm/shared/events.js +1 -1
- package/lib/esm/shared/events.js.map +1 -0
- package/lib/esm/shared/fabric-types.js +1 -1
- package/lib/esm/shared/fabric-types.js.map +1 -0
- package/lib/esm/shared/index.js +1 -1
- package/lib/esm/shared/index.js.map +1 -0
- package/lib/esm/shared/interfaces/Checkable.js +1 -1
- package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
- package/lib/esm/shared/interfaces/index.js +1 -1
- package/lib/esm/shared/interfaces/index.js.map +1 -0
- package/lib/esm/shared/math.js +1 -1
- package/lib/esm/shared/math.js.map +1 -0
- package/lib/esm/shared/model/FabricBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
- package/lib/esm/shared/model/Identity.js +1 -1
- package/lib/esm/shared/model/Identity.js.map +1 -0
- package/lib/esm/shared/model/IdentityCredentials.js +1 -1
- package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
- package/lib/esm/shared/model/index.js +1 -1
- package/lib/esm/shared/model/index.js.map +1 -0
- package/lib/esm/shared/overrides/Model.js +1 -1
- package/lib/esm/shared/overrides/Model.js.map +1 -0
- package/lib/esm/shared/overrides/index.js +1 -1
- package/lib/esm/shared/overrides/index.js.map +1 -0
- package/lib/esm/shared/overrides/overrides.js +1 -1
- package/lib/esm/shared/overrides/overrides.js.map +1 -0
- package/lib/esm/shared/types.js +1 -1
- package/lib/esm/shared/types.js.map +1 -0
- package/lib/esm/version.js +2 -2
- package/lib/esm/version.js.map +1 -0
- package/lib/{esm → types}/version.d.ts +1 -1
- package/package.json +22 -18
- package/lib/bin/cli.cjs +0 -9
- package/lib/cli-module.cjs +0 -479
- package/lib/cli-utils.cjs +0 -309
- package/lib/client/FabricClientAdapter.cjs +0 -1362
- package/lib/client/FabricClientDispatch.cjs +0 -290
- package/lib/client/FabricClientPaginator.cjs +0 -21
- package/lib/client/FabricClientRepository.cjs +0 -259
- package/lib/client/FabricClientStatement.cjs +0 -451
- package/lib/client/collections/generation.cjs +0 -113
- package/lib/client/constants.cjs +0 -16
- package/lib/client/crypto.cjs +0 -368
- package/lib/client/erc20/FabricERC20ClientRepository.cjs +0 -363
- package/lib/client/fabric-fs.cjs +0 -234
- package/lib/client/fabric-hsm.cjs +0 -165
- package/lib/client/ids/id-extraction.cjs +0 -30
- package/lib/client/indexes/generation.cjs +0 -95
- package/lib/client/logging.cjs +0 -102
- package/lib/client/services/FabricEnrollmentService.cjs +0 -363
- package/lib/client/services/FabricIdentityService.cjs +0 -324
- package/lib/client/services/RegistrationRequestBuilder.cjs +0 -91
- package/lib/client/services/constants.cjs +0 -20
- package/lib/client/services/index.cjs +0 -21
- package/lib/client/types.cjs +0 -3
- package/lib/client/utils.cjs +0 -262
- package/lib/contract/index.cjs +0 -36
- package/lib/contract/logging-context.cjs +0 -77
- package/lib/contract/models/Audit.cjs +0 -106
- package/lib/contract/models/Batch.cjs +0 -174
- package/lib/contract/models/GtinOwner.cjs +0 -59
- package/lib/contract/models/History.cjs +0 -75
- package/lib/contract/models/Leaflet.cjs +0 -95
- package/lib/contract/models/LeafletFile.cjs +0 -58
- package/lib/contract/models/Market.cjs +0 -75
- package/lib/contract/models/OtherAudit.cjs +0 -118
- package/lib/contract/models/OtherBatchShared.cjs +0 -127
- package/lib/contract/models/OtherLeaflet.cjs +0 -115
- package/lib/contract/models/OtherLeafletFile.cjs +0 -65
- package/lib/contract/models/OtherMarket.cjs +0 -84
- package/lib/contract/models/OtherProduct.cjs +0 -77
- package/lib/contract/models/OtherProductImage.cjs +0 -59
- package/lib/contract/models/OtherProductShared.cjs +0 -99
- package/lib/contract/models/OtherProductStrength.cjs +0 -87
- package/lib/contract/models/Product.cjs +0 -78
- package/lib/contract/models/ProductStrength.cjs +0 -78
- package/lib/contract/models/constants.cjs +0 -30
- package/lib/contract/models/decorators-private.cjs +0 -158
- package/lib/contract/models/decorators.cjs +0 -182
- package/lib/contract/models/gtin.cjs +0 -88
- package/lib/contract/models/history-dec.cjs +0 -83
- package/lib/contracts/ContractAdapter.cjs +0 -1193
- package/lib/contracts/ContractContext.cjs +0 -157
- package/lib/contracts/FabricContractDispatch.cjs +0 -79
- package/lib/contracts/FabricContractPaginator.cjs +0 -173
- package/lib/contracts/FabricContractRepository.cjs +0 -322
- package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +0 -96
- package/lib/contracts/FabricContractSequence.cjs +0 -338
- package/lib/contracts/FabricContractStatement.cjs +0 -180
- package/lib/contracts/MigrationContract.cjs +0 -147
- package/lib/contracts/auth/decorators.cjs +0 -84
- package/lib/contracts/crud/crud-contract.cjs +0 -416
- package/lib/contracts/crud/serialized-crud-contract.cjs +0 -284
- package/lib/contracts/erc20/erc20contract.cjs +0 -581
- package/lib/contracts/erc20/index.cjs +0 -21
- package/lib/contracts/erc20/models.cjs +0 -209
- package/lib/contracts/logging.cjs +0 -118
- package/lib/contracts/overrides.cjs +0 -8
- package/lib/contracts/types.cjs +0 -3
- package/lib/contracts/uuid.cjs +0 -75
- package/lib/esm/bin/cli.d.ts +0 -1
- package/lib/esm/cli-module.d.ts +0 -3
- package/lib/esm/cli-utils.d.ts +0 -21
- package/lib/esm/client/FabricClientAdapter.d.ts +0 -404
- package/lib/esm/client/FabricClientDispatch.d.ts +0 -133
- package/lib/esm/client/FabricClientPaginator.d.ts +0 -12
- package/lib/esm/client/FabricClientRepository.d.ts +0 -71
- package/lib/esm/client/FabricClientStatement.d.ts +0 -64
- package/lib/esm/client/collections/generation.d.ts +0 -46
- package/lib/esm/client/collections/index.d.ts +0 -1
- package/lib/esm/client/constants.d.ts +0 -2
- package/lib/esm/client/crypto.d.ts +0 -107
- package/lib/esm/client/erc20/index.d.ts +0 -1
- package/lib/esm/client/fabric-fs.d.ts +0 -92
- package/lib/esm/client/fabric-hsm.d.ts +0 -24
- package/lib/esm/client/ids/id-extraction.d.ts +0 -4
- package/lib/esm/client/ids/index.d.ts +0 -1
- package/lib/esm/client/index.d.ts +0 -23
- package/lib/esm/client/indexes/generation.d.ts +0 -10
- package/lib/esm/client/indexes/index.d.ts +0 -1
- package/lib/esm/client/services/FabricEnrollmentService.d.ts +0 -176
- package/lib/esm/client/services/FabricIdentityService.d.ts +0 -98
- package/lib/esm/client/services/RegistrationRequestBuilder.d.ts +0 -19
- package/lib/esm/client/services/index.d.ts +0 -4
- package/lib/esm/client/types.d.ts +0 -20
- package/lib/esm/client/utils.d.ts +0 -71
- package/lib/esm/contract/Address.d.ts +0 -13
- package/lib/esm/contract/AddressContract.d.ts +0 -5
- package/lib/esm/contract/AuditContract.d.ts +0 -5
- package/lib/esm/contract/BatchContract.d.ts +0 -5
- package/lib/esm/contract/MarketContract.d.ts +0 -5
- package/lib/esm/contract/OtherAuditContract.d.ts +0 -5
- package/lib/esm/contract/OtherBatchContract.d.ts +0 -5
- package/lib/esm/contract/OtherMarketContract.d.ts +0 -5
- package/lib/esm/contract/OtherProductContract.d.ts +0 -5
- package/lib/esm/contract/OtherProductImageContract.d.ts +0 -5
- package/lib/esm/contract/OtherProductSharedContract.d.ts +0 -5
- package/lib/esm/contract/OtherProductStrengthContract.d.ts +0 -5
- package/lib/esm/contract/Product.d.ts +0 -7
- package/lib/esm/contract/ProductContract.d.ts +0 -5
- package/lib/esm/contract/ProductStrengthContract.d.ts +0 -5
- package/lib/esm/contract/SegregatedPrivateDocumentContract.d.ts +0 -5
- package/lib/esm/contract/SegregatedSharedDocumentContract.d.ts +0 -5
- package/lib/esm/contract/User.d.ts +0 -7
- package/lib/esm/contract/UserContract.d.ts +0 -5
- package/lib/esm/contract/index.d.ts +0 -2
- package/lib/esm/contract/logging-context.d.ts +0 -8
- package/lib/esm/contract/models/Audit.d.ts +0 -13
- package/lib/esm/contract/models/BaseIdentifiedModel.d.ts +0 -7
- package/lib/esm/contract/models/BaseModel.d.ts +0 -7
- package/lib/esm/contract/models/Batch.d.ts +0 -18
- package/lib/esm/contract/models/GtinOwner.d.ts +0 -8
- package/lib/esm/contract/models/History.d.ts +0 -9
- package/lib/esm/contract/models/Leaflet.d.ts +0 -12
- package/lib/esm/contract/models/LeafletFile.d.ts +0 -9
- package/lib/esm/contract/models/Market.d.ts +0 -12
- package/lib/esm/contract/models/OtherAudit.d.ts +0 -15
- package/lib/esm/contract/models/OtherBatchShared.d.ts +0 -18
- package/lib/esm/contract/models/OtherLeaflet.d.ts +0 -16
- package/lib/esm/contract/models/OtherLeafletFile.d.ts +0 -10
- package/lib/esm/contract/models/OtherMarket.d.ts +0 -13
- package/lib/esm/contract/models/OtherProduct.d.ts +0 -12
- package/lib/esm/contract/models/OtherProductImage.d.ts +0 -9
- package/lib/esm/contract/models/OtherProductShared.d.ts +0 -18
- package/lib/esm/contract/models/OtherProductStrength.d.ts +0 -12
- package/lib/esm/contract/models/Product.d.ts +0 -15
- package/lib/esm/contract/models/ProductStrength.d.ts +0 -11
- package/lib/esm/contract/models/SegregatedDocument.d.ts +0 -18
- package/lib/esm/contract/models/constants.d.ts +0 -24
- package/lib/esm/contract/models/decorators-private.d.ts +0 -16
- package/lib/esm/contract/models/decorators.d.ts +0 -28
- package/lib/esm/contract/models/gtin.d.ts +0 -8
- package/lib/esm/contract/models/history-dec.d.ts +0 -6
- package/lib/esm/contracts/ContractAdapter.d.ts +0 -287
- package/lib/esm/contracts/ContractContext.d.ts +0 -89
- package/lib/esm/contracts/FabricContractDispatch.d.ts +0 -7
- package/lib/esm/contracts/FabricContractRepository.d.ts +0 -119
- package/lib/esm/contracts/FabricContractSequence.d.ts +0 -87
- package/lib/esm/contracts/FabricContractStatement.d.ts +0 -36
- package/lib/esm/contracts/MigrationContract.d.ts +0 -22
- package/lib/esm/contracts/PrivateSequence.d.ts +0 -15
- package/lib/esm/contracts/auth/decorators.d.ts +0 -6
- package/lib/esm/contracts/auth/index.d.ts +0 -1
- package/lib/esm/contracts/crud/crud-contract.d.ts +0 -199
- package/lib/esm/contracts/crud/index.d.ts +0 -2
- package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +0 -42
- package/lib/esm/contracts/erc20/erc20contract.d.ts +0 -152
- package/lib/esm/contracts/erc20/index.d.ts +0 -2
- package/lib/esm/contracts/erc20/models.d.ts +0 -114
- package/lib/esm/contracts/index.d.ts +0 -19
- package/lib/esm/contracts/logging.d.ts +0 -54
- package/lib/esm/contracts/types.d.ts +0 -38
- package/lib/esm/contracts/uuid.d.ts +0 -2
- package/lib/esm/shared/overrides/overrides.d.ts +0 -1
- package/lib/index.d.ts +0 -8
- package/lib/shared/ClientSerializer.cjs +0 -81
- package/lib/shared/DeterministicSerializer.cjs +0 -106
- package/lib/shared/DeterministicSerializer.d.ts +0 -47
- package/lib/shared/SimpleDeterministicSerializer.cjs +0 -69
- package/lib/shared/SimpleDeterministicSerializer.d.ts +0 -7
- package/lib/shared/constants.cjs +0 -41
- package/lib/shared/decorators.cjs +0 -593
- package/lib/shared/decorators.d.ts +0 -81
- package/lib/shared/erc20/erc20-constants.cjs +0 -30
- package/lib/shared/erc20/index.d.ts +0 -1
- package/lib/shared/errors.cjs +0 -190
- package/lib/shared/errors.d.ts +0 -140
- package/lib/shared/events.cjs +0 -51
- package/lib/shared/fabric-types.cjs +0 -3
- package/lib/shared/fabric-types.d.ts +0 -32
- package/lib/shared/index.d.ts +0 -20
- package/lib/shared/interfaces/Checkable.cjs +0 -3
- package/lib/shared/interfaces/Checkable.d.ts +0 -23
- package/lib/shared/interfaces/index.d.ts +0 -1
- package/lib/shared/math.cjs +0 -66
- package/lib/shared/math.d.ts +0 -34
- package/lib/shared/model/FabricBaseModel.d.ts +0 -7
- package/lib/shared/model/FabricIdentifiedBaseModel.d.ts +0 -7
- package/lib/shared/model/Identity.cjs +0 -71
- package/lib/shared/model/Identity.d.ts +0 -42
- package/lib/shared/model/IdentityCredentials.cjs +0 -66
- package/lib/shared/model/IdentityCredentials.d.ts +0 -41
- package/lib/shared/model/index.cjs +0 -21
- package/lib/shared/model/index.d.ts +0 -4
- package/lib/shared/overrides/Model.cjs +0 -4
- package/lib/shared/overrides/Model.d.ts +0 -22
- package/lib/shared/overrides/index.d.ts +0 -2
- package/lib/shared/overrides/overrides.cjs +0 -93
- package/lib/shared/overrides/overrides.d.ts +0 -1
- package/lib/shared/types.cjs +0 -3
- package/lib/shared/types.d.ts +0 -125
- package/lib/version.cjs +0 -8
- package/lib/version.d.ts +0 -2
- /package/lib/{bin → types/bin}/cli.d.ts +0 -0
- /package/lib/{cli-module.d.ts → types/cli-module.d.ts} +0 -0
- /package/lib/{cli-utils.d.ts → types/cli-utils.d.ts} +0 -0
- /package/lib/{client → types/client}/FabricClientAdapter.d.ts +0 -0
- /package/lib/{client → types/client}/FabricClientDispatch.d.ts +0 -0
- /package/lib/{client → types/client}/FabricClientPaginator.d.ts +0 -0
- /package/lib/{client → types/client}/FabricClientRepository.d.ts +0 -0
- /package/lib/{client → types/client}/FabricClientStatement.d.ts +0 -0
- /package/lib/{client → types/client}/collections/generation.d.ts +0 -0
- /package/lib/{client → types/client}/collections/index.d.ts +0 -0
- /package/lib/{client → types/client}/constants.d.ts +0 -0
- /package/lib/{client → types/client}/crypto.d.ts +0 -0
- /package/lib/{client → types/client}/erc20/FabricERC20ClientRepository.d.ts +0 -0
- /package/lib/{client → types/client}/erc20/index.d.ts +0 -0
- /package/lib/{client → types/client}/fabric-fs.d.ts +0 -0
- /package/lib/{client → types/client}/fabric-hsm.d.ts +0 -0
- /package/lib/{client → types/client}/ids/id-extraction.d.ts +0 -0
- /package/lib/{client → types/client}/ids/index.d.ts +0 -0
- /package/lib/{client → types/client}/index.d.ts +0 -0
- /package/lib/{client → types/client}/indexes/generation.d.ts +0 -0
- /package/lib/{client → types/client}/indexes/index.d.ts +0 -0
- /package/lib/{client → types/client}/logging.d.ts +0 -0
- /package/lib/{client → types/client}/services/FabricEnrollmentService.d.ts +0 -0
- /package/lib/{client → types/client}/services/FabricIdentityService.d.ts +0 -0
- /package/lib/{client → types/client}/services/RegistrationRequestBuilder.d.ts +0 -0
- /package/lib/{client → types/client}/services/constants.d.ts +0 -0
- /package/lib/{client → types/client}/services/index.d.ts +0 -0
- /package/lib/{client → types/client}/types.d.ts +0 -0
- /package/lib/{client → types/client}/utils.d.ts +0 -0
- /package/lib/{contract → types/contract}/Address.d.ts +0 -0
- /package/lib/{contract → types/contract}/AddressContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/AuditContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/BatchContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/MarketContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/OtherAuditContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/OtherBatchContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/OtherMarketContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/OtherProductContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/OtherProductImageContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/OtherProductSharedContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/OtherProductStrengthContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/Product.d.ts +0 -0
- /package/lib/{contract → types/contract}/ProductContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/ProductStrengthContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/SegregatedPrivateDocumentContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/SegregatedSharedDocumentContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/User.d.ts +0 -0
- /package/lib/{contract → types/contract}/UserContract.d.ts +0 -0
- /package/lib/{contract → types/contract}/index.d.ts +0 -0
- /package/lib/{contract → types/contract}/logging-context.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/Audit.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/BaseIdentifiedModel.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/BaseModel.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/Batch.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/GtinOwner.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/History.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/Leaflet.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/LeafletFile.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/Market.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/OtherAudit.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/OtherBatchShared.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/OtherLeaflet.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/OtherLeafletFile.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/OtherMarket.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/OtherProduct.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/OtherProductImage.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/OtherProductShared.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/OtherProductStrength.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/Product.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/ProductStrength.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/SegregatedDocument.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/constants.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/decorators-private.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/decorators.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/gtin.d.ts +0 -0
- /package/lib/{contract → types/contract}/models/history-dec.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/ContractAdapter.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/ContractContext.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/FabricContractDispatch.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/FabricContractPaginator.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/FabricContractRepository.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/FabricContractRepositoryObservableHandler.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/FabricContractSequence.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/FabricContractStatement.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/MigrationContract.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/PrivateSequence.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/auth/decorators.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/auth/index.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/crud/crud-contract.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/crud/index.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/crud/serialized-crud-contract.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/erc20/erc20contract.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/erc20/index.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/erc20/models.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/index.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/logging.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/overrides.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/types.d.ts +0 -0
- /package/lib/{contracts → types/contracts}/uuid.d.ts +0 -0
- /package/lib/{esm → types}/index.d.ts +0 -0
- /package/lib/{esm → types}/shared/ClientSerializer.d.ts +0 -0
- /package/lib/{esm → types}/shared/DeterministicSerializer.d.ts +0 -0
- /package/lib/{esm → types}/shared/SimpleDeterministicSerializer.d.ts +0 -0
- /package/lib/{esm → types}/shared/constants.d.ts +0 -0
- /package/lib/{esm → types}/shared/decorators.d.ts +0 -0
- /package/lib/{esm → types}/shared/erc20/erc20-constants.d.ts +0 -0
- /package/lib/{esm → types}/shared/erc20/index.d.ts +0 -0
- /package/lib/{esm → types}/shared/errors.d.ts +0 -0
- /package/lib/{esm → types}/shared/events.d.ts +0 -0
- /package/lib/{esm → types}/shared/fabric-types.d.ts +0 -0
- /package/lib/{esm → types}/shared/index.d.ts +0 -0
- /package/lib/{esm → types}/shared/interfaces/Checkable.d.ts +0 -0
- /package/lib/{esm → types}/shared/interfaces/index.d.ts +0 -0
- /package/lib/{esm → types}/shared/math.d.ts +0 -0
- /package/lib/{esm → types}/shared/model/FabricBaseModel.d.ts +0 -0
- /package/lib/{esm → types}/shared/model/FabricIdentifiedBaseModel.d.ts +0 -0
- /package/lib/{esm → types}/shared/model/Identity.d.ts +0 -0
- /package/lib/{esm → types}/shared/model/IdentityCredentials.d.ts +0 -0
- /package/lib/{esm → types}/shared/model/index.d.ts +0 -0
- /package/lib/{esm → types}/shared/overrides/Model.d.ts +0 -0
- /package/lib/{esm → types}/shared/overrides/index.d.ts +0 -0
- /package/lib/{esm/contracts → types/shared/overrides}/overrides.d.ts +0 -0
- /package/lib/{esm → types}/shared/types.d.ts +0 -0
|
@@ -0,0 +1,595 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SEGREGATED_COLLECTION_EXTRACTION_PRIORITY = exports.ImplicitPrivateCollection = exports.ModelCollection = void 0;
|
|
4
|
+
exports.extractMspId = extractMspId;
|
|
5
|
+
exports.Owner = Owner;
|
|
6
|
+
exports.ownedByOnCreate = ownedByOnCreate;
|
|
7
|
+
exports.ownedBy = ownedBy;
|
|
8
|
+
exports.transactionIdOnCreate = transactionIdOnCreate;
|
|
9
|
+
exports.transactionId = transactionId;
|
|
10
|
+
exports.evalMirrorMetadata = evalMirrorMetadata;
|
|
11
|
+
exports.createMirrorHandler = createMirrorHandler;
|
|
12
|
+
exports.updateMirrorHandler = updateMirrorHandler;
|
|
13
|
+
exports.deleteMirrorHandler = deleteMirrorHandler;
|
|
14
|
+
exports.mirrorWriteGuard = mirrorWriteGuard;
|
|
15
|
+
exports.readMirrorHandler = readMirrorHandler;
|
|
16
|
+
exports.mirror = mirror;
|
|
17
|
+
exports.NamespaceCollection = NamespaceCollection;
|
|
18
|
+
exports.applySegregationFlags = applySegregationFlags;
|
|
19
|
+
exports.applyMirrorFlags = applyMirrorFlags;
|
|
20
|
+
exports.extractSegregatedCollections = extractSegregatedCollections;
|
|
21
|
+
exports.segregatedDataOnCreate = segregatedDataOnCreate;
|
|
22
|
+
exports.segregatedDataOnRead = segregatedDataOnRead;
|
|
23
|
+
exports.segregatedDataOnUpdate = segregatedDataOnUpdate;
|
|
24
|
+
exports.segregatedDataOnDelete = segregatedDataOnDelete;
|
|
25
|
+
exports.privateData = privateData;
|
|
26
|
+
exports.sharedData = sharedData;
|
|
27
|
+
const core_1 = require("@decaf-ts/core");
|
|
28
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
29
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
30
|
+
const constants_1 = require("./constants.cjs");
|
|
31
|
+
const decoration_1 = require("@decaf-ts/decoration");
|
|
32
|
+
const logging_1 = require("@decaf-ts/logging");
|
|
33
|
+
require("./overrides/index.cjs");
|
|
34
|
+
/**
|
|
35
|
+
* @description Extracts the MSP ID from either a string or ClientIdentity object
|
|
36
|
+
* @param identity - The identity value which can be a string MSP ID or ClientIdentity object
|
|
37
|
+
* @returns The MSP ID as a string, or undefined if not available
|
|
38
|
+
*/
|
|
39
|
+
function extractMspId(identity) {
|
|
40
|
+
if (!identity)
|
|
41
|
+
return undefined;
|
|
42
|
+
if (typeof identity === "string")
|
|
43
|
+
return identity;
|
|
44
|
+
return identity.getMSPID();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Decorator for marking methods that require ownership authorization.
|
|
48
|
+
* Checks the owner of the token before allowing the method to be executed.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* class TokenContract extends Contract {
|
|
53
|
+
* @Owner()
|
|
54
|
+
* async Mint(ctx: Context, amount: number) {
|
|
55
|
+
* // Mint token logic
|
|
56
|
+
* }
|
|
57
|
+
* }
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @returns {MethodDecorator} A method decorator that checks ownership authorization.
|
|
61
|
+
*/
|
|
62
|
+
function Owner() {
|
|
63
|
+
return function (target, propertyKey, descriptor) {
|
|
64
|
+
const originalMethod = descriptor.value;
|
|
65
|
+
descriptor.value = async function (...args) {
|
|
66
|
+
const ctx = args[0];
|
|
67
|
+
const acountId = ctx.clientIdentity.getID();
|
|
68
|
+
const select = await this["tokenRepository"].select();
|
|
69
|
+
const tokens = await select.execute(ctx);
|
|
70
|
+
if (tokens.length == 0) {
|
|
71
|
+
throw new db_decorators_1.NotFoundError("No tokens avaialble");
|
|
72
|
+
}
|
|
73
|
+
if (tokens.length > 1) {
|
|
74
|
+
throw new db_decorators_1.NotFoundError(`To many token available : ${tokens.length}`);
|
|
75
|
+
}
|
|
76
|
+
if (tokens[0].owner != acountId) {
|
|
77
|
+
throw new core_1.AuthorizationError(`User not authorized to run ${propertyKey} on the token`);
|
|
78
|
+
}
|
|
79
|
+
return await originalMethod.apply(this, args);
|
|
80
|
+
};
|
|
81
|
+
return descriptor;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
async function ownedByOnCreate(context, data, key, model) {
|
|
85
|
+
const { stub } = context;
|
|
86
|
+
const allowGenerationOverride = context.getOrUndefined("allowGenerationOverride") || false;
|
|
87
|
+
const creator = await stub.getCreator();
|
|
88
|
+
let owner = creator.mspid;
|
|
89
|
+
context.logger.info(`Expected mspid to be ${model[key]} | ${owner}. \n Using allowGenerationOverride: ${allowGenerationOverride}`);
|
|
90
|
+
if (allowGenerationOverride)
|
|
91
|
+
owner = model[key] ? model[key] : owner;
|
|
92
|
+
const setOwnedByKeyValue = function (target, propertyKey, value) {
|
|
93
|
+
Object.defineProperty(target, propertyKey, {
|
|
94
|
+
enumerable: true,
|
|
95
|
+
writable: false,
|
|
96
|
+
configurable: true,
|
|
97
|
+
value: value,
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
setOwnedByKeyValue(model, key, owner);
|
|
101
|
+
}
|
|
102
|
+
function ownedBy() {
|
|
103
|
+
function ownedBy() {
|
|
104
|
+
return function (obj, attribute) {
|
|
105
|
+
return (0, decoration_1.apply)((0, decorator_validation_1.required)(), (0, db_decorators_1.generated)(), (0, db_decorators_1.readonly)(), (0, db_decorators_1.onCreate)(ownedByOnCreate), (0, decoration_1.propMetadata)(decoration_1.Metadata.key(constants_1.FabricModelKeys.FABRIC, constants_1.FabricModelKeys.OWNED_BY), attribute))(obj, attribute);
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return decoration_1.Decoration.for(constants_1.FabricModelKeys.OWNED_BY)
|
|
109
|
+
.define({
|
|
110
|
+
decorator: ownedBy,
|
|
111
|
+
args: [],
|
|
112
|
+
})
|
|
113
|
+
.apply();
|
|
114
|
+
}
|
|
115
|
+
async function transactionIdOnCreate(context, data, key, model) {
|
|
116
|
+
const { stub } = context;
|
|
117
|
+
model[key] = stub.getTxID();
|
|
118
|
+
}
|
|
119
|
+
function transactionId() {
|
|
120
|
+
function transactionId() {
|
|
121
|
+
return function (obj, attribute) {
|
|
122
|
+
return (0, decoration_1.apply)((0, decorator_validation_1.required)(), (0, db_decorators_1.readonly)(), (0, db_decorators_1.onCreate)(transactionIdOnCreate), (0, db_decorators_1.onUpdate)(transactionIdOnCreate), (0, decoration_1.propMetadata)(decoration_1.Metadata.key(constants_1.FabricModelKeys.FABRIC, attribute, constants_1.FabricModelKeys.TRANSACTION_ID), attribute))(obj, attribute);
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
return decoration_1.Decoration.for(constants_1.FabricModelKeys.TRANSACTION_ID)
|
|
126
|
+
.define({
|
|
127
|
+
decorator: transactionId,
|
|
128
|
+
args: [],
|
|
129
|
+
})
|
|
130
|
+
.apply();
|
|
131
|
+
}
|
|
132
|
+
async function evalMirrorMetadata(model, resolver, ctx) {
|
|
133
|
+
let collection = resolver;
|
|
134
|
+
if (typeof collection !== "string") {
|
|
135
|
+
try {
|
|
136
|
+
const owner = decorator_validation_1.Model.ownerOf(model) || ctx.get("stub").getCreator().toString();
|
|
137
|
+
if (resolver && typeof resolver === "function")
|
|
138
|
+
collection = await resolver(model, owner, ctx);
|
|
139
|
+
}
|
|
140
|
+
catch (e) {
|
|
141
|
+
throw new db_decorators_1.InternalError(`Failed to resolve collection mirror name: ${e}`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (!collection || typeof collection !== "string")
|
|
145
|
+
throw new db_decorators_1.InternalError(`No collection found model ${model.constructor.name}`);
|
|
146
|
+
return collection;
|
|
147
|
+
}
|
|
148
|
+
async function createMirrorHandler(context, data, key, model) {
|
|
149
|
+
const collection = await evalMirrorMetadata(model, data.resolver, context);
|
|
150
|
+
const fabricCtx = context;
|
|
151
|
+
const sourceModel = model;
|
|
152
|
+
// Put mirror flags directly on context so adapter.prepare() and adapter.create() can see them
|
|
153
|
+
fabricCtx.put("mirror", true);
|
|
154
|
+
fabricCtx.put("mirrorCollection", collection);
|
|
155
|
+
try {
|
|
156
|
+
const repo = this.override(Object.assign({}, this._overrides, {
|
|
157
|
+
mirror: true,
|
|
158
|
+
mirrorCollection: collection,
|
|
159
|
+
ignoreValidation: true,
|
|
160
|
+
ignoreHandlers: true,
|
|
161
|
+
}));
|
|
162
|
+
const mirror = await repo.create(sourceModel, context);
|
|
163
|
+
context.logger.info(`Mirror for ${decorator_validation_1.Model.tableName(this.class)} created with ${decorator_validation_1.Model.pk(model)}: ${mirror[decorator_validation_1.Model.pk(model)]}`);
|
|
164
|
+
}
|
|
165
|
+
finally {
|
|
166
|
+
// Clean up mirror flags from context
|
|
167
|
+
fabricCtx.put("mirror", undefined);
|
|
168
|
+
fabricCtx.put("mirrorCollection", undefined);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
async function updateMirrorHandler(context, data, key, model) {
|
|
172
|
+
const collection = await evalMirrorMetadata(model, data.resolver, context);
|
|
173
|
+
const fabricCtx = context;
|
|
174
|
+
const sourceModel = model;
|
|
175
|
+
fabricCtx.put("mirror", true);
|
|
176
|
+
fabricCtx.put("mirrorCollection", collection);
|
|
177
|
+
try {
|
|
178
|
+
const repo = this.override(Object.assign({}, this._overrides, {
|
|
179
|
+
mirror: true,
|
|
180
|
+
mirrorCollection: collection,
|
|
181
|
+
ignoreValidation: true,
|
|
182
|
+
ignoreHandlers: true,
|
|
183
|
+
applyUpdateValidation: false,
|
|
184
|
+
mergeForUpdate: false,
|
|
185
|
+
}));
|
|
186
|
+
await repo.update(sourceModel, context);
|
|
187
|
+
context.logger.info(`Mirror for ${decorator_validation_1.Model.tableName(this.class)} updated: ${model[decorator_validation_1.Model.pk(model)]}`);
|
|
188
|
+
}
|
|
189
|
+
finally {
|
|
190
|
+
fabricCtx.put("mirror", undefined);
|
|
191
|
+
fabricCtx.put("mirrorCollection", undefined);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
async function deleteMirrorHandler(context, data, key, model) {
|
|
195
|
+
const collection = await evalMirrorMetadata(model, data.resolver, context);
|
|
196
|
+
const fabricCtx = context;
|
|
197
|
+
fabricCtx.put("mirror", true);
|
|
198
|
+
fabricCtx.put("mirrorCollection", collection);
|
|
199
|
+
fabricCtx.put("segregated", collection);
|
|
200
|
+
try {
|
|
201
|
+
const pkProp = decorator_validation_1.Model.pk(model);
|
|
202
|
+
const id = model[pkProp];
|
|
203
|
+
const repo = this.override(Object.assign({}, this._overrides, {
|
|
204
|
+
segregated: collection,
|
|
205
|
+
mirror: true,
|
|
206
|
+
ignoreValidation: true,
|
|
207
|
+
ignoreHandlers: true,
|
|
208
|
+
}));
|
|
209
|
+
try {
|
|
210
|
+
await repo.delete(id, context);
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
// May already be deleted by adapter.deleteSegregatedCollections
|
|
214
|
+
}
|
|
215
|
+
context.logger.info(`Mirror for ${decorator_validation_1.Model.tableName(this.class)} deleted: ${String(id)}`);
|
|
216
|
+
}
|
|
217
|
+
finally {
|
|
218
|
+
fabricCtx.put("mirror", undefined);
|
|
219
|
+
fabricCtx.put("mirrorCollection", undefined);
|
|
220
|
+
fabricCtx.put("segregated", undefined);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
async function mirrorWriteGuard(context, data,
|
|
224
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
225
|
+
key,
|
|
226
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
227
|
+
model) {
|
|
228
|
+
const msp = extractMspId(context.get("identity"));
|
|
229
|
+
if (!msp)
|
|
230
|
+
return;
|
|
231
|
+
if (msp === data.mspId || (data.condition && data.condition(msp))) {
|
|
232
|
+
throw new core_1.AuthorizationError(`Organization ${msp} is not authorized to modify mirrored data`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
async function readMirrorHandler(context, data, key, model) {
|
|
236
|
+
const msp = extractMspId(context.get("identity"));
|
|
237
|
+
if (!msp)
|
|
238
|
+
return;
|
|
239
|
+
const collection = await evalMirrorMetadata(model, data.resolver, context);
|
|
240
|
+
const fabricCtx = context;
|
|
241
|
+
const matches = msp === data.mspId || (data.condition && data.condition(msp));
|
|
242
|
+
if (matches) {
|
|
243
|
+
context.logger.info(`Mirror read: MSP ${msp} matches, routing reads to mirror collection ${collection}`);
|
|
244
|
+
// Route reads exclusively through the mirror collection
|
|
245
|
+
fabricCtx.put("mirror", true);
|
|
246
|
+
fabricCtx.put("mirrorCollection", collection);
|
|
247
|
+
fabricCtx.put("fullySegregated", true);
|
|
248
|
+
fabricCtx.readFrom(collection);
|
|
249
|
+
}
|
|
250
|
+
// When MSP does NOT match, normal read flow — all data is in public state
|
|
251
|
+
}
|
|
252
|
+
function mirror(collection, mspIdOrCondition, condition) {
|
|
253
|
+
const isConditionOnly = typeof mspIdOrCondition !== "string" && Boolean(mspIdOrCondition);
|
|
254
|
+
const mspId = isConditionOnly
|
|
255
|
+
? undefined
|
|
256
|
+
: mspIdOrCondition;
|
|
257
|
+
const cond = isConditionOnly
|
|
258
|
+
? mspIdOrCondition
|
|
259
|
+
: condition;
|
|
260
|
+
function mirror(resolver, mspId, condition) {
|
|
261
|
+
const meta = {
|
|
262
|
+
condition: condition,
|
|
263
|
+
mspId: mspId,
|
|
264
|
+
resolver: resolver,
|
|
265
|
+
};
|
|
266
|
+
return (0, decoration_1.apply)((0, decoration_1.metadata)(decoration_1.Metadata.key(constants_1.FabricModelKeys.FABRIC, constants_1.FabricModelKeys.MIRROR), meta),
|
|
267
|
+
// Read handler runs early (priority 30) to set up context before any reads
|
|
268
|
+
(0, db_decorators_1.onRead)(readMirrorHandler, meta, { priority: 30 }),
|
|
269
|
+
// Write guards — reject matching MSPs before any processing
|
|
270
|
+
(0, db_decorators_1.onCreate)(mirrorWriteGuard, meta, { priority: 20 }), (0, db_decorators_1.onUpdate)(mirrorWriteGuard, meta, { priority: 20 }), (0, db_decorators_1.onDelete)(mirrorWriteGuard, meta, { priority: 20 }),
|
|
271
|
+
// Mirror sync handlers — write full model after other handlers (priority 100)
|
|
272
|
+
(0, db_decorators_1.onCreate)(createMirrorHandler, meta, { priority: 100 }), (0, db_decorators_1.onUpdate)(updateMirrorHandler, meta, { priority: 100 }), (0, db_decorators_1.onDelete)(deleteMirrorHandler, meta, { priority: 100 }));
|
|
273
|
+
}
|
|
274
|
+
return decoration_1.Decoration.for(constants_1.FabricModelKeys.MIRROR)
|
|
275
|
+
.define({
|
|
276
|
+
decorator: mirror,
|
|
277
|
+
args: [collection, mspId, cond],
|
|
278
|
+
})
|
|
279
|
+
.apply();
|
|
280
|
+
}
|
|
281
|
+
const ModelCollection = (model, mspId) => {
|
|
282
|
+
const orgName = mspId || (typeof model !== "function" ? decorator_validation_1.Model.ownerOf(model) : undefined);
|
|
283
|
+
const constr = typeof model === "function" ? model : model.constructor;
|
|
284
|
+
if (!orgName)
|
|
285
|
+
throw new db_decorators_1.InternalError(`Model ${constr.name} is not owned by any organization. did you use @ownedBy() (or provide the name)?`);
|
|
286
|
+
return `${(0, logging_1.toPascalCase)(constr.name)}${orgName ? (0, logging_1.toPascalCase)(orgName) : ""}`;
|
|
287
|
+
};
|
|
288
|
+
exports.ModelCollection = ModelCollection;
|
|
289
|
+
function NamespaceCollection(namespace) {
|
|
290
|
+
return (model, mspId) => {
|
|
291
|
+
const orgName = mspId || (typeof model !== "function" ? decorator_validation_1.Model.ownerOf(model) : undefined);
|
|
292
|
+
const constr = typeof model === "function" ? model : model.constructor;
|
|
293
|
+
if (!orgName)
|
|
294
|
+
throw new db_decorators_1.InternalError(`Model ${constr.name} is not owned by any organization. did you use @ownedBy() (or provide the name)?`);
|
|
295
|
+
return `${namespace}${orgName ? (0, logging_1.toPascalCase)(orgName) : ""}`;
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
const ImplicitPrivateCollection = (model, mspId) => {
|
|
299
|
+
const orgName = mspId || (typeof model !== "function" ? decorator_validation_1.Model.ownerOf(model) : undefined);
|
|
300
|
+
if (!orgName)
|
|
301
|
+
throw new db_decorators_1.InternalError(`Model ${model.constructor.name} is not owned by any organization. did you use @ownedBy() (or provide the name)?`);
|
|
302
|
+
return `__${(0, logging_1.toPascalCase)(orgName)}PrivateCollection`;
|
|
303
|
+
};
|
|
304
|
+
exports.ImplicitPrivateCollection = ImplicitPrivateCollection;
|
|
305
|
+
/**
|
|
306
|
+
* @description Priority for early collection extraction (before pk generation at priority 60)
|
|
307
|
+
* @summary This priority ensures collections are registered in context before any sequence
|
|
308
|
+
* operations occur, allowing sequences to be replicated to private/shared collections.
|
|
309
|
+
*/
|
|
310
|
+
exports.SEGREGATED_COLLECTION_EXTRACTION_PRIORITY = 35;
|
|
311
|
+
function applySegregationFlags(clazz, collections, ctx) {
|
|
312
|
+
// Register collections early using readFrom - this allows sequence code
|
|
313
|
+
// to know which collections to replicate to during pk generation
|
|
314
|
+
if (collections.length > 0) {
|
|
315
|
+
ctx.readFrom(collections);
|
|
316
|
+
}
|
|
317
|
+
// Check if model is fully segregated (all non-pk properties are private/shared/transient).
|
|
318
|
+
// Use Model.segregate() which is the canonical way to determine what's transient,
|
|
319
|
+
// rather than reading DBKeys.TRANSIENT metadata which may not accumulate correctly
|
|
320
|
+
// when class-level @privateData applies decorators iteratively.
|
|
321
|
+
if (!ctx.isFullySegregated && collections.length) {
|
|
322
|
+
if (!hasPublicProperties(clazz.constructor)) {
|
|
323
|
+
ctx.markFullySegregated();
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
async function applyMirrorFlags(clazz, msp, ctx) {
|
|
328
|
+
if (!msp)
|
|
329
|
+
return;
|
|
330
|
+
const mirrorMeta = decorator_validation_1.Model.mirroredAt(clazz);
|
|
331
|
+
if (!mirrorMeta)
|
|
332
|
+
return;
|
|
333
|
+
const matches = msp === mirrorMeta.mspId ||
|
|
334
|
+
(mirrorMeta.condition && mirrorMeta.condition(msp));
|
|
335
|
+
if (!matches)
|
|
336
|
+
return;
|
|
337
|
+
const collection = await evalMirrorMetadata(new clazz(), mirrorMeta.resolver, ctx);
|
|
338
|
+
// Mirror MSP matches — route reads exclusively through the mirror
|
|
339
|
+
// collection. Clear any previously registered collections so queries
|
|
340
|
+
// go ONLY to the mirror, not to the regular private/shared ones.
|
|
341
|
+
ctx.put("segregateRead", undefined);
|
|
342
|
+
ctx.put("segregateReadStack", undefined);
|
|
343
|
+
ctx.put("fullySegregated", true);
|
|
344
|
+
ctx.put("mirror", true);
|
|
345
|
+
ctx.put("mirrorCollection", collection);
|
|
346
|
+
ctx.readFrom(collection);
|
|
347
|
+
}
|
|
348
|
+
function hasPublicProperties(clazz) {
|
|
349
|
+
const attributes = decoration_1.Metadata.getAttributes(clazz) || [];
|
|
350
|
+
const pk = decorator_validation_1.Model.pk(clazz);
|
|
351
|
+
const transientMeta = decoration_1.Metadata.get(clazz, db_decorators_1.DBKeys.TRANSIENT) || {};
|
|
352
|
+
const privateMeta = decoration_1.Metadata.get(clazz, decoration_1.Metadata.key(constants_1.FabricModelKeys.PRIVATE)) || {};
|
|
353
|
+
const sharedMeta = decoration_1.Metadata.get(clazz, decoration_1.Metadata.key(constants_1.FabricModelKeys.SHARED)) || {};
|
|
354
|
+
return attributes.some((attr) => {
|
|
355
|
+
if (attr === pk)
|
|
356
|
+
return false;
|
|
357
|
+
if (attr in transientMeta)
|
|
358
|
+
return false;
|
|
359
|
+
if (attr in privateMeta)
|
|
360
|
+
return false;
|
|
361
|
+
if (attr in sharedMeta)
|
|
362
|
+
return false;
|
|
363
|
+
return true;
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* @description Early handler to extract and register collections in context
|
|
368
|
+
* @summary Runs with priority < 40 to extract collection names before pk generation (priority 60).
|
|
369
|
+
* This allows FabricContractSequence to know which collections to replicate to.
|
|
370
|
+
* @template M - Type that extends Model
|
|
371
|
+
* @param {ContextOf<Repository<M, any>>} context - The execution context
|
|
372
|
+
* @param {SegregatedDataMetadata | SegregatedDataMetadata[]} data - The segregated data metadata
|
|
373
|
+
* @param {string | string[]} keys - The property key(s) being segregated
|
|
374
|
+
* @param {M} model - The model instance
|
|
375
|
+
* @return {Promise<void>}
|
|
376
|
+
*/
|
|
377
|
+
async function extractSegregatedCollections(context, data, keys, model) {
|
|
378
|
+
const dataArray = (Array.isArray(data) ? data : [data]);
|
|
379
|
+
const m = context.getOrUndefined("allowGenerationOverride") || false
|
|
380
|
+
? context.getOrUndefined("ownerOverride")
|
|
381
|
+
: undefined;
|
|
382
|
+
const msp = m || decorator_validation_1.Model.ownerOf(model) || extractMspId(context.get("identity"));
|
|
383
|
+
if (!msp) {
|
|
384
|
+
// Can't extract collections without MSP, will be caught by later handlers
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
const collections = [];
|
|
388
|
+
for (const metadata of dataArray) {
|
|
389
|
+
const collectionResolver = metadata.collections;
|
|
390
|
+
const collection = typeof collectionResolver === "string"
|
|
391
|
+
? collectionResolver
|
|
392
|
+
: collectionResolver(model, msp, context);
|
|
393
|
+
if (collection && !collections.includes(collection)) {
|
|
394
|
+
collections.push(collection);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
applySegregationFlags(model, collections, context);
|
|
398
|
+
// Store segregation metadata per-sequence so FabricContractSequence can decide
|
|
399
|
+
// where to store/replicate sequence records (public vs private/shared).
|
|
400
|
+
//
|
|
401
|
+
// - `@pk()` sequences use the shared name `${table}_pk` (no id component).
|
|
402
|
+
// - `@sequence()` / persistent `@version(true)` sequences are per-model-instance:
|
|
403
|
+
// `${table}_${id}_${property}`.
|
|
404
|
+
const keyArray = (Array.isArray(keys) ? keys : [keys]);
|
|
405
|
+
const pkKey = decorator_validation_1.Model.pk(model.constructor);
|
|
406
|
+
const pkSeqName = decorator_validation_1.Model.sequenceName(model, "pk");
|
|
407
|
+
const idValue = model[pkKey];
|
|
408
|
+
const canBuildPerInstance = typeof idValue !== "undefined" && idValue !== null;
|
|
409
|
+
// Always union collections for the pk sequence when the model uses segregated data.
|
|
410
|
+
context.setSequenceSegregation(pkSeqName, context.isFullySegregated, collections);
|
|
411
|
+
// For per-property sequences, only register when we can compute an id-scoped name.
|
|
412
|
+
// This keeps sequences constrained to the collections the attribute exists in.
|
|
413
|
+
if (canBuildPerInstance) {
|
|
414
|
+
for (const k of keyArray) {
|
|
415
|
+
const propSeqName = decorator_validation_1.Model.sequenceName(model, String(idValue), String(k));
|
|
416
|
+
context.setSequenceSegregation(propSeqName, context.isFullySegregated, collections);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
async function segregatedDataOnCreate(context, data, keys, model) {
|
|
421
|
+
const dataArray = (Array.isArray(data) ? data : [data]);
|
|
422
|
+
const keyArray = (Array.isArray(keys) ? keys : [keys]);
|
|
423
|
+
if (keyArray.length !== dataArray.length)
|
|
424
|
+
throw new db_decorators_1.InternalError(`Segregated data keys and metadata length mismatch`);
|
|
425
|
+
const msp = decorator_validation_1.Model.ownerOf(model) ||
|
|
426
|
+
extractMspId(context.get("identity"));
|
|
427
|
+
if (!msp)
|
|
428
|
+
throw new db_decorators_1.ValidationError(`There's no assigned organization for model ${model.constructor.name}`);
|
|
429
|
+
const collectionResolver = dataArray[0].collections;
|
|
430
|
+
const collection = typeof collectionResolver === "string"
|
|
431
|
+
? collectionResolver
|
|
432
|
+
: collectionResolver(model, msp, context);
|
|
433
|
+
// Validate all keys resolve to the same collection
|
|
434
|
+
keyArray.forEach((_k, i) => {
|
|
435
|
+
const c = typeof dataArray[i].collections === "string"
|
|
436
|
+
? dataArray[i].collections
|
|
437
|
+
: dataArray[i].collections(model, msp, context);
|
|
438
|
+
if (c !== collection)
|
|
439
|
+
throw new core_1.UnsupportedError(`Segregated data collection mismatch: ${c} vs ${collection}`);
|
|
440
|
+
});
|
|
441
|
+
const keyStrings = keyArray.map((key) => String(key));
|
|
442
|
+
// Store the segregated model — prepare() will filter to collection-specific fields
|
|
443
|
+
context.writeTo(collection, keyStrings);
|
|
444
|
+
}
|
|
445
|
+
async function segregatedDataOnRead(context, data, keys, model) {
|
|
446
|
+
const dataArray = (Array.isArray(data) ? data : [data]);
|
|
447
|
+
const keyArray = (Array.isArray(keys) ? keys : [keys]);
|
|
448
|
+
if (keyArray.length !== dataArray.length)
|
|
449
|
+
throw new db_decorators_1.InternalError(`Segregated data keys and metadata length mismatch`);
|
|
450
|
+
const m = context.getOrUndefined("allowGenerationOverride") || false
|
|
451
|
+
? context.getOrUndefined("ownerOverride")
|
|
452
|
+
: undefined;
|
|
453
|
+
const msp = m || decorator_validation_1.Model.ownerOf(model) || extractMspId(context.get("identity"));
|
|
454
|
+
if (!msp)
|
|
455
|
+
throw new db_decorators_1.ValidationError(`There's no assigned organization for model ${model.constructor.name}`);
|
|
456
|
+
const collectionResolver = dataArray[0].collections;
|
|
457
|
+
const collection = typeof collectionResolver === "string"
|
|
458
|
+
? collectionResolver
|
|
459
|
+
: await collectionResolver(model, msp, context);
|
|
460
|
+
context.readFrom(collection);
|
|
461
|
+
}
|
|
462
|
+
async function segregatedDataOnUpdate(context, data, key, model,
|
|
463
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
464
|
+
oldModel) {
|
|
465
|
+
const dataArray = (Array.isArray(data) ? data : [data]);
|
|
466
|
+
const keyArray = (Array.isArray(key) ? key : [key]);
|
|
467
|
+
if (keyArray.length !== dataArray.length)
|
|
468
|
+
throw new db_decorators_1.InternalError(`Segregated data keys and metadata length mismatch`);
|
|
469
|
+
const msp = decorator_validation_1.Model.ownerOf(model) ||
|
|
470
|
+
extractMspId(context.get("identity"));
|
|
471
|
+
if (!msp)
|
|
472
|
+
throw new db_decorators_1.ValidationError(`There's no assigned organization for model ${model.constructor.name}`);
|
|
473
|
+
const collectionResolver = dataArray[0].collections;
|
|
474
|
+
const collection = typeof collectionResolver === "string"
|
|
475
|
+
? collectionResolver
|
|
476
|
+
: collectionResolver(model, msp, context);
|
|
477
|
+
keyArray.forEach((k, i) => {
|
|
478
|
+
const c = typeof dataArray[i].collections === "string"
|
|
479
|
+
? dataArray[i].collections
|
|
480
|
+
: dataArray[i].collections(model, msp, context);
|
|
481
|
+
if (c !== collection)
|
|
482
|
+
throw new core_1.UnsupportedError(`Segregated data collection mismatch: ${c} vs ${collection}`);
|
|
483
|
+
});
|
|
484
|
+
const keyStrings = keyArray.map((key) => String(key));
|
|
485
|
+
// Store the original model — prepare() will filter to collection-specific fields
|
|
486
|
+
context.writeTo(collection, keyStrings);
|
|
487
|
+
}
|
|
488
|
+
async function segregatedDataOnDelete(context, data, key, model) {
|
|
489
|
+
const dataArray = (Array.isArray(data) ? data : [data]);
|
|
490
|
+
const keyArray = (Array.isArray(key) ? key : [key]);
|
|
491
|
+
if (keyArray.length !== dataArray.length)
|
|
492
|
+
throw new db_decorators_1.InternalError(`Segregated data keys and metadata length mismatch`);
|
|
493
|
+
const m = context.getOrUndefined("allowGenerationOverride") || false
|
|
494
|
+
? context.getOrUndefined("ownerOverride")
|
|
495
|
+
: undefined;
|
|
496
|
+
const msp = m ||
|
|
497
|
+
decorator_validation_1.Model.ownerOf(model) ||
|
|
498
|
+
extractMspId(context.get("identity"));
|
|
499
|
+
if (!msp)
|
|
500
|
+
throw new db_decorators_1.ValidationError(`There's no assigned organization for model ${model.constructor.name}`);
|
|
501
|
+
const collectionResolver = dataArray[0].collections;
|
|
502
|
+
const collection = typeof collectionResolver === "string"
|
|
503
|
+
? collectionResolver
|
|
504
|
+
: collectionResolver(model, msp, context);
|
|
505
|
+
context.readFrom(collection);
|
|
506
|
+
}
|
|
507
|
+
function segregated(collection, type, filter) {
|
|
508
|
+
return function innerSegregated(target, propertyKey) {
|
|
509
|
+
function segregatedDec(target, propertyKey) {
|
|
510
|
+
const key = decoration_1.Metadata.key(type, propertyKey);
|
|
511
|
+
const constr = target.constructor;
|
|
512
|
+
const meta = decoration_1.Metadata.get(constr, key) || {};
|
|
513
|
+
const collections = new Set(meta.collections || []);
|
|
514
|
+
collections.add(collection);
|
|
515
|
+
meta.collections = [...collections];
|
|
516
|
+
decoration_1.Metadata.set(constr, key, meta);
|
|
517
|
+
const constrMeta = decoration_1.Metadata.get(constr, type) || {};
|
|
518
|
+
const constrCollections = new Set(constrMeta.collections || []);
|
|
519
|
+
constrCollections.add(collection);
|
|
520
|
+
constrMeta.collections = [...constrCollections];
|
|
521
|
+
decoration_1.Metadata.set(constr, type, constrMeta);
|
|
522
|
+
const transientMeta = decoration_1.Metadata.get(constr, db_decorators_1.DBKeys.TRANSIENT) || {};
|
|
523
|
+
const updatedTransientMeta = {
|
|
524
|
+
...transientMeta,
|
|
525
|
+
[propertyKey]: {},
|
|
526
|
+
};
|
|
527
|
+
decoration_1.Metadata.set(constr, db_decorators_1.DBKeys.TRANSIENT, updatedTransientMeta);
|
|
528
|
+
}
|
|
529
|
+
const decs = [];
|
|
530
|
+
if (!propertyKey) {
|
|
531
|
+
// decorated at the class level
|
|
532
|
+
const properties = decoration_1.Metadata.getAttributes(target);
|
|
533
|
+
properties?.forEach((p) => {
|
|
534
|
+
if (!filter || filter(p)) {
|
|
535
|
+
segregated(collection, type)(target.prototype, p);
|
|
536
|
+
}
|
|
537
|
+
});
|
|
538
|
+
return target;
|
|
539
|
+
}
|
|
540
|
+
else {
|
|
541
|
+
const groupName = typeof collection === "string" ? collection : collection.toString();
|
|
542
|
+
// Use different group names for extraction vs data handlers to prevent merging
|
|
543
|
+
const extractGroupName = `${groupName}:extract`;
|
|
544
|
+
const dataGroupName = `${groupName}:data`;
|
|
545
|
+
const earlyExtractionMeta = { collections: collection };
|
|
546
|
+
const earlyExtractionGroupSort = {
|
|
547
|
+
priority: exports.SEGREGATED_COLLECTION_EXTRACTION_PRIORITY,
|
|
548
|
+
group: extractGroupName,
|
|
549
|
+
};
|
|
550
|
+
decs.push((0, decoration_1.prop)(), (0, db_decorators_1.transient)(), segregatedDec,
|
|
551
|
+
// Early extraction handlers - run BEFORE pk generation (priority 60)
|
|
552
|
+
// This ensures collections are registered in context for sequence replication
|
|
553
|
+
// We register for each operation explicitly to ensure proper handler lookup
|
|
554
|
+
(0, db_decorators_1.on)(db_decorators_1.DBOperations.ALL, extractSegregatedCollections, earlyExtractionMeta, earlyExtractionGroupSort),
|
|
555
|
+
// Main handlers for segregated data operations (priority 95)
|
|
556
|
+
(0, db_decorators_1.onCreate)(segregatedDataOnCreate, { collections: collection }, {
|
|
557
|
+
priority: 95,
|
|
558
|
+
group: dataGroupName,
|
|
559
|
+
}), (0, db_decorators_1.onRead)(segregatedDataOnRead, { collections: collection }, {
|
|
560
|
+
priority: 95,
|
|
561
|
+
group: dataGroupName,
|
|
562
|
+
}), (0, db_decorators_1.onUpdate)(segregatedDataOnUpdate, { collections: collection }, {
|
|
563
|
+
priority: 95,
|
|
564
|
+
group: dataGroupName,
|
|
565
|
+
}), (0, db_decorators_1.onDelete)(segregatedDataOnDelete, { collections: collection }, {
|
|
566
|
+
priority: 95,
|
|
567
|
+
group: dataGroupName,
|
|
568
|
+
}));
|
|
569
|
+
}
|
|
570
|
+
return (0, decoration_1.apply)(...decs)(target, propertyKey);
|
|
571
|
+
};
|
|
572
|
+
}
|
|
573
|
+
function privateData(collection = exports.ImplicitPrivateCollection) {
|
|
574
|
+
function privateData(collection) {
|
|
575
|
+
return segregated(collection, constants_1.FabricModelKeys.PRIVATE);
|
|
576
|
+
}
|
|
577
|
+
return decoration_1.Decoration.for(constants_1.FabricModelKeys.PRIVATE)
|
|
578
|
+
.define({
|
|
579
|
+
decorator: privateData,
|
|
580
|
+
args: [collection],
|
|
581
|
+
})
|
|
582
|
+
.apply();
|
|
583
|
+
}
|
|
584
|
+
function sharedData(collection) {
|
|
585
|
+
function sharedData(collection) {
|
|
586
|
+
return segregated(collection, constants_1.FabricModelKeys.SHARED);
|
|
587
|
+
}
|
|
588
|
+
return decoration_1.Decoration.for(constants_1.FabricModelKeys.SHARED)
|
|
589
|
+
.define({
|
|
590
|
+
decorator: sharedData,
|
|
591
|
+
args: [collection],
|
|
592
|
+
})
|
|
593
|
+
.apply();
|
|
594
|
+
}
|
|
595
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/shared/decorators.ts"],"names":[],"mappings":"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"}
|