@decaf-ts/for-fabric 0.5.7 → 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 -3797
- package/dist/for-fabric.cjs.map +1 -0
- package/dist/for-fabric.js +2 -3901
- 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 +1 -1
- 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 -595
- 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
package/lib/client/utils.cjs
DELETED
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.CoreUtils = void 0;
|
|
37
|
-
exports.getAkiAndSerialFromCert = getAkiAndSerialFromCert;
|
|
38
|
-
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
39
|
-
const logging_1 = require("@decaf-ts/logging");
|
|
40
|
-
const fabric_gateway_1 = require("@hyperledger/fabric-gateway");
|
|
41
|
-
const fabric_common_1 = require("fabric-common");
|
|
42
|
-
const core_1 = require("@decaf-ts/core");
|
|
43
|
-
const crypto_1 = __importStar(require("crypto"));
|
|
44
|
-
const x509_1 = require("@peculiar/x509");
|
|
45
|
-
/**
|
|
46
|
-
* @description Core utilities for interacting with files, crypto identities, and Fabric SDK helpers
|
|
47
|
-
* @summary Provides static helper methods to read credentials and keys from disk or raw content, construct Fabric gateway Identities and Signers, and perform common filesystem operations used by the Fabric client tooling.
|
|
48
|
-
* @class CoreUtils
|
|
49
|
-
* @example
|
|
50
|
-
* // Read an identity and signer from directories
|
|
51
|
-
* const identity = await CoreUtils.getIdentity('Org1MSP', '/msp/signcerts');
|
|
52
|
-
* const signer = await CoreUtils.getSigner('/msp/keystore');
|
|
53
|
-
* // Build a CA user
|
|
54
|
-
* const user = await CoreUtils.getCAUser('appUser', pemKey, pemCert, 'Org1MSP');
|
|
55
|
-
*/
|
|
56
|
-
class CoreUtils {
|
|
57
|
-
static { this.logger = new logging_1.MiniLogger(CoreUtils.name); }
|
|
58
|
-
constructor() { }
|
|
59
|
-
/**
|
|
60
|
-
* @description Resolve file content from a path or return provided raw content
|
|
61
|
-
* @summary If the input is a Uint8Array or PEM content, returns it as-is; otherwise uses a provided async fileReader to load the content from disk.
|
|
62
|
-
* @param {string|Uint8Array} contentOrPath - Either a raw content buffer/string or a filesystem path
|
|
63
|
-
* @param {function(string): Promise<string|Uint8Array|Buffer>} fileReader - Async function to read file content when a path is provided
|
|
64
|
-
* @return {Promise<string|Uint8Array|Buffer>} The content to be used downstream
|
|
65
|
-
*/
|
|
66
|
-
static async contentOfLoadFile(contentOrPath, fileReader) {
|
|
67
|
-
if (contentOrPath instanceof Uint8Array)
|
|
68
|
-
return contentOrPath;
|
|
69
|
-
if (contentOrPath.match(/-----BEGIN (CERTIFICATE|KEY|PRIVATE KEY)-----.+?-----END \1-----$/gms))
|
|
70
|
-
return contentOrPath;
|
|
71
|
-
return await fileReader(contentOrPath);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* @description Read file content from a path or return provided Buffer
|
|
75
|
-
* @summary Convenience wrapper that loads a file using fs.promises when a path string is provided; otherwise returns the given Buffer directly.
|
|
76
|
-
* @param {string|Buffer} contentOrPath - Path to a file on disk or an already-loaded Buffer
|
|
77
|
-
* @return {Promise<string|Uint8Array|Buffer>} The file content as a Buffer/string depending on reader
|
|
78
|
-
*/
|
|
79
|
-
static async readFile(contentOrPath) {
|
|
80
|
-
if (typeof contentOrPath !== "string")
|
|
81
|
-
return contentOrPath;
|
|
82
|
-
const fileReader = async (path) => {
|
|
83
|
-
const { promises } = await (0, core_1.normalizeImport)(Promise.resolve().then(() => __importStar(require("fs"))));
|
|
84
|
-
return await promises.readFile(path);
|
|
85
|
-
};
|
|
86
|
-
return await fileReader(contentOrPath);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* @description Create a Fabric CA User object with enrollment
|
|
90
|
-
* @summary Constructs a fabric-common User, sets a crypto suite, imports the provided private key, and sets enrollment with certificate and MSP ID.
|
|
91
|
-
* @param {string} userName - The user name for the CA user
|
|
92
|
-
* @param {string} privateKey - PEM-encoded private key
|
|
93
|
-
* @param {string} certificate - PEM-encoded X.509 certificate
|
|
94
|
-
* @param {string} mspId - Membership Service Provider identifier
|
|
95
|
-
* @return {Promise<User>} The enrolled Fabric User instance
|
|
96
|
-
*/
|
|
97
|
-
static async getCAUser(userName, privateKey, certificate, mspId, options) {
|
|
98
|
-
this.logger.debug((0, decorator_validation_1.stringFormat)("Creating CA {0} user {1} with certificate {2}", mspId, userName, certificate));
|
|
99
|
-
const user = new fabric_common_1.User(userName);
|
|
100
|
-
const config = options?.hsm
|
|
101
|
-
? {
|
|
102
|
-
software: false,
|
|
103
|
-
lib: options.hsm.library,
|
|
104
|
-
slot: options.hsm.slot,
|
|
105
|
-
label: options.hsm.tokenLabel,
|
|
106
|
-
pin: String(options.hsm.pin),
|
|
107
|
-
}
|
|
108
|
-
: undefined;
|
|
109
|
-
const cryptoSuite = this.getCryptoSuite(config);
|
|
110
|
-
user.setCryptoSuite(cryptoSuite);
|
|
111
|
-
const enrollmentKey = options?.hsm
|
|
112
|
-
? await this.getHSMEnrollmentKey(cryptoSuite, certificate, options.hsm)
|
|
113
|
-
: this.getSoftwareEnrollmentKey(cryptoSuite, privateKey);
|
|
114
|
-
await user.setEnrollment(enrollmentKey, certificate, mspId);
|
|
115
|
-
return user;
|
|
116
|
-
}
|
|
117
|
-
static getCryptoSuite(options) {
|
|
118
|
-
if (!options)
|
|
119
|
-
return fabric_common_1.User.newCryptoSuite();
|
|
120
|
-
if (CoreUtils.cryptoSuite)
|
|
121
|
-
return CoreUtils.cryptoSuite;
|
|
122
|
-
CoreUtils.cryptoSuite = fabric_common_1.User.newCryptoSuite(options);
|
|
123
|
-
return CoreUtils.cryptoSuite;
|
|
124
|
-
}
|
|
125
|
-
static getSoftwareEnrollmentKey(cryptoSuite, privateKey) {
|
|
126
|
-
if (!privateKey) {
|
|
127
|
-
throw new Error("Private key must be provided when HSM configuration is not supplied");
|
|
128
|
-
}
|
|
129
|
-
return cryptoSuite.createKeyFromRaw(privateKey);
|
|
130
|
-
}
|
|
131
|
-
static async getHSMEnrollmentKey(cryptoSuite, certificate, hsm) {
|
|
132
|
-
const ski = hsm.keyIdHex && hsm.keyIdHex.trim().length > 0
|
|
133
|
-
? Buffer.from(hsm.keyIdHex, "hex")
|
|
134
|
-
: await this.getCertificateSKI(certificate);
|
|
135
|
-
const key = await cryptoSuite.getKey(ski);
|
|
136
|
-
if (!key || (typeof key.isPrivate === "function" && !key.isPrivate())) {
|
|
137
|
-
throw new Error("Unable to resolve private key from HSM");
|
|
138
|
-
}
|
|
139
|
-
return key;
|
|
140
|
-
}
|
|
141
|
-
static async getCertificateSKI(certificate) {
|
|
142
|
-
const x509 = new crypto_1.X509Certificate(certificate);
|
|
143
|
-
const jwk = x509.publicKey.export({ format: "jwk" });
|
|
144
|
-
const prefix = Buffer.from([0x04]);
|
|
145
|
-
const x = Buffer.from(jwk.x || "", "base64url");
|
|
146
|
-
const y = Buffer.from(jwk.y || "", "base64url");
|
|
147
|
-
return crypto_1.default
|
|
148
|
-
.createHash("sha256")
|
|
149
|
-
.update(Buffer.concat([prefix, x, y]))
|
|
150
|
-
.digest();
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* @description Build a Fabric Gateway Identity from an MSP ID and certificate
|
|
154
|
-
* @summary Reads a certificate from a directory path or accepts raw content and returns an Identity object suitable for the Fabric Gateway.
|
|
155
|
-
* @param {string} mspId - Membership Service Provider ID
|
|
156
|
-
* @param {string} certDirectoryPath - Path to a directory containing the certificate file, or PEM content
|
|
157
|
-
* @return {Promise<Identity>} The identity containing mspId and certificate credentials
|
|
158
|
-
*/
|
|
159
|
-
static async getIdentity(mspId, certDirectoryPath) {
|
|
160
|
-
const identityFileReader = async (path) => {
|
|
161
|
-
const { promises } = await (0, core_1.normalizeImport)(Promise.resolve().then(() => __importStar(require("fs"))));
|
|
162
|
-
const certPath = await this.getFirstDirFileName(path);
|
|
163
|
-
const credentials = await promises.readFile(certPath);
|
|
164
|
-
return credentials;
|
|
165
|
-
};
|
|
166
|
-
const credentials = (await this.contentOfLoadFile(certDirectoryPath, identityFileReader));
|
|
167
|
-
return { mspId, credentials };
|
|
168
|
-
}
|
|
169
|
-
static async getFirstDirFileName(dirPath) {
|
|
170
|
-
const { promises } = await (0, core_1.normalizeImport)(Promise.resolve().then(() => __importStar(require("fs"))));
|
|
171
|
-
const { join } = await (0, core_1.normalizeImport)(Promise.resolve().then(() => __importStar(require("path"))));
|
|
172
|
-
const files = await promises.readdir(dirPath);
|
|
173
|
-
return join(dirPath, files[0]);
|
|
174
|
-
}
|
|
175
|
-
static async getFirstDirFileNameContent(dirPath) {
|
|
176
|
-
const { promises } = await (0, core_1.normalizeImport)(Promise.resolve().then(() => __importStar(require("fs"))));
|
|
177
|
-
const { join } = await (0, core_1.normalizeImport)(Promise.resolve().then(() => __importStar(require("path"))));
|
|
178
|
-
const files = await promises.readdir(dirPath);
|
|
179
|
-
return (await promises.readFile(join(dirPath, files[0]))).toString();
|
|
180
|
-
}
|
|
181
|
-
static async getFileContent(filePath) {
|
|
182
|
-
const { promises } = await (0, core_1.normalizeImport)(Promise.resolve().then(() => __importStar(require("fs"))));
|
|
183
|
-
return (await promises.readFile(filePath)).toString();
|
|
184
|
-
}
|
|
185
|
-
static async getSigner(keyDirectoryPath) {
|
|
186
|
-
const signerFileReader = async (path) => {
|
|
187
|
-
const { promises } = await (0, core_1.normalizeImport)(Promise.resolve().then(() => __importStar(require("fs"))));
|
|
188
|
-
const keyPath = await this.getFirstDirFileName(path);
|
|
189
|
-
return await promises.readFile(keyPath);
|
|
190
|
-
};
|
|
191
|
-
const privateKeyPem = (await this.contentOfLoadFile(keyDirectoryPath, signerFileReader));
|
|
192
|
-
const privateKey = await this.extractPrivateKey(privateKeyPem);
|
|
193
|
-
const keys = Object.getOwnPropertySymbols(privateKey);
|
|
194
|
-
const k = privateKey[keys[0]];
|
|
195
|
-
// --
|
|
196
|
-
return fabric_gateway_1.signers.newPrivateKeySigner(k);
|
|
197
|
-
}
|
|
198
|
-
static async extractPrivateKey(pem) {
|
|
199
|
-
const libName = "crypto";
|
|
200
|
-
let subtle;
|
|
201
|
-
if (globalThis.window &&
|
|
202
|
-
globalThis.window.Crypto) {
|
|
203
|
-
subtle = globalThis.Crypto.subtle;
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
const lib = (await (0, core_1.normalizeImport)(Promise.resolve(`${libName}`).then(s => __importStar(require(s)))));
|
|
207
|
-
subtle = lib.subtle || lib.webcrypto.subtle;
|
|
208
|
-
}
|
|
209
|
-
if (!subtle)
|
|
210
|
-
throw new Error("Could not load SubtleCrypto module");
|
|
211
|
-
function str2ab(str) {
|
|
212
|
-
const buf = new ArrayBuffer(str.length);
|
|
213
|
-
const bufView = new Uint8Array(buf);
|
|
214
|
-
for (let i = 0, strLen = str.length; i < strLen; i++) {
|
|
215
|
-
bufView[i] = str.charCodeAt(i);
|
|
216
|
-
}
|
|
217
|
-
return buf;
|
|
218
|
-
}
|
|
219
|
-
const str = pem
|
|
220
|
-
.toString("utf8")
|
|
221
|
-
.replace("-----BEGIN PRIVATE KEY-----", "")
|
|
222
|
-
.replaceAll("\n", "")
|
|
223
|
-
.replace("-----END PRIVATE KEY-----", "");
|
|
224
|
-
const decoded = Buffer.from(str, "base64").toString("binary");
|
|
225
|
-
const binaryDer = str2ab(decoded);
|
|
226
|
-
const key = await subtle.importKey("pkcs8", binaryDer, {
|
|
227
|
-
name: "ECDSA",
|
|
228
|
-
namedCurve: "P-256",
|
|
229
|
-
}, true, ["sign"]);
|
|
230
|
-
return key;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
exports.CoreUtils = CoreUtils;
|
|
234
|
-
/**
|
|
235
|
-
* Extracts the certificate Serial Number and the AKI (Authority Key Identifier)
|
|
236
|
-
* in the format Fabric CA expects (plain hex, no colons).
|
|
237
|
-
*/
|
|
238
|
-
function getAkiAndSerialFromCert(cert) {
|
|
239
|
-
const x509Certificate = new x509_1.X509Certificate(cert);
|
|
240
|
-
// Find the AKI (Authority Key Identifier) extension by its OID: 2.5.29.35
|
|
241
|
-
const akiExt = x509Certificate.extensions?.find((e) => e.type === "2.5.29.35");
|
|
242
|
-
if (!akiExt) {
|
|
243
|
-
throw new Error("Authority Key Identifier (AKI) extension not found in certificate.");
|
|
244
|
-
}
|
|
245
|
-
// akiExt.value is the extension content in DER bytes. Convert it to a hex string.
|
|
246
|
-
let aki = Buffer.from(new Uint8Array(akiExt.value))
|
|
247
|
-
.toString("hex")
|
|
248
|
-
.toUpperCase();
|
|
249
|
-
/**
|
|
250
|
-
* Common case:
|
|
251
|
-
* The DER-encoded AKI extension often starts with:
|
|
252
|
-
* 30 16 80 14 <20-byte keyIdentifier>
|
|
253
|
-
* In hex, that's "30168014" + 40 hex chars (20 bytes).
|
|
254
|
-
*
|
|
255
|
-
* Fabric CA expects ONLY the 20-byte keyIdentifier (40 hex chars),
|
|
256
|
-
* so we strip the "30168014" prefix when present.
|
|
257
|
-
*/
|
|
258
|
-
if (aki.startsWith("30168014") && aki.length >= 8 + 40)
|
|
259
|
-
aki = aki.slice(8, 8 + 40);
|
|
260
|
-
return { aki, serial: x509Certificate.serialNumber };
|
|
261
|
-
}
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStRQSwwREFrQ0M7QUFqVEQseUVBQThEO0FBQzlELCtDQUF1RDtBQUN2RCxnRUFBd0U7QUFDeEUsaURBQWtFO0FBRWxFLHlDQUFpRDtBQUNqRCxpREFBaUQ7QUFDakQseUNBQTZEO0FBRTdEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFhLFNBQVM7YUFDTCxXQUFNLEdBQVcsSUFBSSxvQkFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUkvRCxnQkFBdUIsQ0FBQztJQUV4Qjs7Ozs7O09BTUc7SUFDSyxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUNwQyxhQUFrQyxFQUNsQyxVQUFtRTtRQUVuRSxJQUFJLGFBQWEsWUFBWSxVQUFVO1lBQUUsT0FBTyxhQUFhLENBQUM7UUFDOUQsSUFDRSxhQUFhLENBQUMsS0FBSyxDQUNqQixzRUFBc0UsQ0FDdkU7WUFFRCxPQUFPLGFBQWEsQ0FBQztRQUN2QixPQUFPLE1BQU0sVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQThCO1FBQ2xELElBQUksT0FBTyxhQUFhLEtBQUssUUFBUTtZQUFFLE9BQU8sYUFBYSxDQUFDO1FBRTVELE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQUUsRUFBRTtZQUN4QyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFBLHNCQUFlLG9EQUFRLElBQUksSUFBRSxDQUFDO1lBQ3pELE9BQU8sTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQztRQUVGLE9BQU8sTUFBTSxVQUFV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QUFDLEdBQUcsRUFBRTtRQUNwRCxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBRTdCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RyaW5nRm9ybWF0IH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgTG9nZ2VyLCBNaW5pTG9nZ2VyIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyBJZGVudGl0eSwgU2lnbmVyLCBzaWduZXJzIH0gZnJvbSBcIkBoeXBlcmxlZGdlci9mYWJyaWMtZ2F0ZXdheVwiO1xuaW1wb3J0IHsgQ3J5cHRvU2V0dGluZywgSUNyeXB0b1N1aXRlLCBVc2VyIH0gZnJvbSBcImZhYnJpYy1jb21tb25cIjtcbmltcG9ydCB7IEhTTU9wdGlvbnMgfSBmcm9tIFwiLi4vc2hhcmVkL3R5cGVzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVJbXBvcnQgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCBjcnlwdG8sIHsgWDUwOUNlcnRpZmljYXRlIH0gZnJvbSBcImNyeXB0b1wiO1xuaW1wb3J0IHsgWDUwOUNlcnRpZmljYXRlIGFzIFg1MDlDZXJ0IH0gZnJvbSBcIkBwZWN1bGlhci94NTA5XCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvcmUgdXRpbGl0aWVzIGZvciBpbnRlcmFjdGluZyB3aXRoIGZpbGVzLCBjcnlwdG8gaWRlbnRpdGllcywgYW5kIEZhYnJpYyBTREsgaGVscGVyc1xuICogQHN1bW1hcnkgUHJvdmlkZXMgc3RhdGljIGhlbHBlciBtZXRob2RzIHRvIHJlYWQgY3JlZGVudGlhbHMgYW5kIGtleXMgZnJvbSBkaXNrIG9yIHJhdyBjb250ZW50LCBjb25zdHJ1Y3QgRmFicmljIGdhdGV3YXkgSWRlbnRpdGllcyBhbmQgU2lnbmVycywgYW5kIHBlcmZvcm0gY29tbW9uIGZpbGVzeXN0ZW0gb3BlcmF0aW9ucyB1c2VkIGJ5IHRoZSBGYWJyaWMgY2xpZW50IHRvb2xpbmcuXG4gKiBAY2xhc3MgQ29yZVV0aWxzXG4gKiBAZXhhbXBsZVxuICogLy8gUmVhZCBhbiBpZGVudGl0eSBhbmQgc2lnbmVyIGZyb20gZGlyZWN0b3JpZXNcbiAqIGNvbnN0IGlkZW50aXR5ID0gYXdhaXQgQ29yZVV0aWxzLmdldElkZW50aXR5KCdPcmcxTVNQJywgJy9tc3Avc2lnbmNlcnRzJyk7XG4gKiBjb25zdCBzaWduZXIgPSBhd2FpdCBDb3JlVXRpbHMuZ2V0U2lnbmVyKCcvbXNwL2tleXN0b3JlJyk7XG4gKiAvLyBCdWlsZCBhIENBIHVzZXJcbiAqIGNvbnN0IHVzZXIgPSBhd2FpdCBDb3JlVXRpbHMuZ2V0Q0FVc2VyKCdhcHBVc2VyJywgcGVtS2V5LCBwZW1DZXJ0LCAnT3JnMU1TUCcpO1xuICovXG5leHBvcnQgY2xhc3MgQ29yZVV0aWxzIHtcbiAgcHJpdmF0ZSBzdGF0aWMgbG9nZ2VyOiBMb2dnZXIgPSBuZXcgTWluaUxvZ2dlcihDb3JlVXRpbHMubmFtZSk7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3J5cHRvU3VpdGU6IElDcnlwdG9TdWl0ZTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlc29sdmUgZmlsZSBjb250ZW50IGZyb20gYSBwYXRoIG9yIHJldHVybiBwcm92aWRlZCByYXcgY29udGVudFxuICAgKiBAc3VtbWFyeSBJZiB0aGUgaW5wdXQgaXMgYSBVaW50OEFycmF5IG9yIFBFTSBjb250ZW50LCByZXR1cm5zIGl0IGFzLWlzOyBvdGhlcndpc2UgdXNlcyBhIHByb3ZpZGVkIGFzeW5jIGZpbGVSZWFkZXIgdG8gbG9hZCB0aGUgY29udGVudCBmcm9tIGRpc2suXG4gICAqIEBwYXJhbSB7c3RyaW5nfFVpbnQ4QXJyYXl9IGNvbnRlbnRPclBhdGggLSBFaXRoZXIgYSByYXcgY29udGVudCBidWZmZXIvc3RyaW5nIG9yIGEgZmlsZXN5c3RlbSBwYXRoXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nKTogUHJvbWlzZTxzdHJpbmd8VWludDhBcnJheXxCdWZmZXI+fSBmaWxlUmVhZGVyIC0gQXN5bmMgZnVuY3Rpb24gdG8gcmVhZCBmaWxlIGNvbnRlbnQgd2hlbiBhIHBhdGggaXMgcHJvdmlkZWRcbiAgICogQHJldHVybiB7UHJvbWlzZTxzdHJpbmd8VWludDhBcnJheXxCdWZmZXI+fSBUaGUgY29udGVudCB0byBiZSB1c2VkIGRvd25zdHJlYW1cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGFzeW5jIGNvbnRlbnRPZkxvYWRGaWxlKFxuICAgIGNvbnRlbnRPclBhdGg6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZmlsZVJlYWRlcjogKHBhdGg6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmcgfCBVaW50OEFycmF5IHwgQnVmZmVyPlxuICApIHtcbiAgICBpZiAoY29udGVudE9yUGF0aCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHJldHVybiBjb250ZW50T3JQYXRoO1xuICAgIGlmIChcbiAgICAgIGNvbnRlbnRPclBhdGgubWF0Y2goXG4gICAgICAgIC8tLS0tLUJFR0lOIChDRVJUSUZJQ0FURXxLRVl8UFJJVkFURSBLRVkpLS0tLS0uKz8tLS0tLUVORCBcXDEtLS0tLSQvZ21zXG4gICAgICApXG4gICAgKVxuICAgICAgcmV0dXJuIGNvbnRlbnRPclBhdGg7XG4gICAgcmV0dXJuIGF3YWl0IGZpbGVSZWFkZXIoY29udGVudE9yUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlYWQgZmlsZSBjb250ZW50IGZyb20gYSBwYXRoIG9yIHJldHVybiBwcm92aWRlZCBCdWZmZXJcbiAgICogQHN1bW1hcnkgQ29udmVuaWVuY2Ugd3JhcHBlciB0aGF0IGxvYWRzIGEgZmlsZSB1c2luZyBmcy5wcm9taXNlcyB3aGVuIGEgcGF0aCBzdHJpbmcgaXMgcHJvdmlkZWQ7IG90aGVyd2lzZSByZXR1cm5zIHRoZSBnaXZlbiBCdWZmZXIgZGlyZWN0bHkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfEJ1ZmZlcn0gY29udGVudE9yUGF0aCAtIFBhdGggdG8gYSBmaWxlIG9uIGRpc2sgb3IgYW4gYWxyZWFkeS1sb2FkZWQgQnVmZmVyXG4gICAqIEByZXR1cm4ge1Byb21pc2U8c3RyaW5nfFVpbnQ4QXJyYXl8QnVmZmVyPn0gVGhlIGZpbGUgY29udGVudCBhcyBhIEJ1ZmZlci9zdHJpbmcgZGVwZW5kaW5nIG9uIHJlYWRlclxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHJlYWRGaWxlKGNvbnRlbnRPclBhdGg6IHN0cmluZyB8IEJ1ZmZlcikge1xuICAgIGlmICh0eXBlb2YgY29udGVudE9yUGF0aCAhPT0gXCJzdHJpbmdcIikgcmV0dXJuIGNvbnRlbnRPclBhdGg7XG5cbiAgICBjb25zdCBmaWxlUmVhZGVyID0gYXN5bmMgKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgeyBwcm9taXNlcyB9ID0gYXdhaXQgbm9ybWFsaXplSW1wb3J0KGltcG9ydChcImZzXCIpKTtcbiAgICAgIHJldHVybiBhd2FpdCBwcm9taXNlcy5yZWFkRmlsZShwYXRoKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGF3YWl0IGZpbGVSZWFkZXIoY29udGVudE9yUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZSBhIEZhYnJpYyBDQSBVc2VyIG9iamVjdCB3aXRoIGVucm9sbG1lbnRcbiAgICogQHN1bW1hcnkgQ29uc3RydWN0cyBhIGZhYnJpYy1jb21tb24gVXNlciwgc2V0cyBhIGNyeXB0byBzdWl0ZSwgaW1wb3J0cyB0aGUgcHJvdmlkZWQgcHJpdmF0ZSBrZXksIGFuZCBzZXRzIGVucm9sbG1lbnQgd2l0aCBjZXJ0aWZpY2F0ZSBhbmQgTVNQIElELlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXNlck5hbWUgLSBUaGUgdXNlciBuYW1lIGZvciB0aGUgQ0EgdXNlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJpdmF0ZUtleSAtIFBFTS1lbmNvZGVkIHByaXZhdGUga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjZXJ0aWZpY2F0ZSAtIFBFTS1lbmNvZGVkIFguNTA5IGNlcnRpZmljYXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtc3BJZCAtIE1lbWJlcnNoaXAgU2VydmljZSBQcm92aWRlciBpZGVudGlmaWVyXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VXNlcj59IFRoZSBlbnJvbGxlZCBGYWJyaWMgVXNlciBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGdldENBVXNlcihcbiAgICB1c2VyTmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGVLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBjZXJ0aWZpY2F0ZTogc3RyaW5nLFxuICAgIG1zcElkOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHsgaHNtPzogSFNNT3B0aW9ucyB9XG4gICk6IFByb21pc2U8VXNlcj4ge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgc3RyaW5nRm9ybWF0KFxuICAgICAgICBcIkNyZWF0aW5nIENBIHswfSB1c2VyIHsxfSB3aXRoIGNlcnRpZmljYXRlIHsyfVwiLFxuICAgICAgICBtc3BJZCxcbiAgICAgICAgdXNlck5hbWUsXG4gICAgICAgIGNlcnRpZmljYXRlXG4gICAgICApXG4gICAgKTtcbiAgICBjb25zdCB1c2VyID0gbmV3IFVzZXIodXNlck5hbWUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IG9wdGlvbnM/LmhzbVxuICAgICAgPyB7XG4gICAgICAgICAgc29mdHdhcmU6IGZhbHNlLFxuICAgICAgICAgIGxpYjogb3B0aW9ucy5oc20ubGlicmFyeSxcbiAgICAgICAgICBzbG90OiBvcHRpb25zLmhzbS5zbG90LFxuICAgICAgICAgIGxhYmVsOiBvcHRpb25zLmhzbS50b2tlbkxhYmVsLFxuICAgICAgICAgIHBpbjogU3RyaW5nKG9wdGlvbnMuaHNtLnBpbiksXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGNyeXB0b1N1aXRlID0gdGhpcy5nZXRDcnlwdG9TdWl0ZShjb25maWcpO1xuXG4gICAgdXNlci5zZXRDcnlwdG9TdWl0ZShjcnlwdG9TdWl0ZSk7XG4gICAgY29uc3QgZW5yb2xsbWVudEtleSA9IG9wdGlvbnM/LmhzbVxuICAgICAgPyBhd2FpdCB0aGlzLmdldEhTTUVucm9sbG1lbnRLZXkoY3J5cHRvU3VpdGUsIGNlcnRpZmljYXRlLCBvcHRpb25zLmhzbSlcbiAgICAgIDogdGhpcy5nZXRTb2Z0d2FyZUVucm9sbG1lbnRLZXkoY3J5cHRvU3VpdGUsIHByaXZhdGVLZXkpO1xuICAgIGF3YWl0IHVzZXIuc2V0RW5yb2xsbWVudChlbnJvbGxtZW50S2V5LCBjZXJ0aWZpY2F0ZSwgbXNwSWQpO1xuICAgIHJldHVybiB1c2VyO1xuICB9XG5cbiAgc3RhdGljIGdldENyeXB0b1N1aXRlKG9wdGlvbnM/OiBDcnlwdG9TZXR0aW5nKTogSUNyeXB0b1N1aXRlIHtcbiAgICBpZiAoIW9wdGlvbnMpIHJldHVybiBVc2VyLm5ld0NyeXB0b1N1aXRlKCk7XG4gICAgaWYgKENvcmVVdGlscy5jcnlwdG9TdWl0ZSkgcmV0dXJuIENvcmVVdGlscy5jcnlwdG9TdWl0ZTtcblxuICAgIENvcmVVdGlscy5jcnlwdG9TdWl0ZSA9IFVzZXIubmV3Q3J5cHRvU3VpdGUob3B0aW9ucyk7XG4gICAgcmV0dXJuIENvcmVVdGlscy5jcnlwdG9TdWl0ZTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFNvZnR3YXJlRW5yb2xsbWVudEtleShcbiAgICBjcnlwdG9TdWl0ZTogYW55LFxuICAgIHByaXZhdGVLZXk/OiBzdHJpbmdcbiAgKSB7XG4gICAgaWYgKCFwcml2YXRlS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiUHJpdmF0ZSBrZXkgbXVzdCBiZSBwcm92aWRlZCB3aGVuIEhTTSBjb25maWd1cmF0aW9uIGlzIG5vdCBzdXBwbGllZFwiXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gY3J5cHRvU3VpdGUuY3JlYXRlS2V5RnJvbVJhdyhwcml2YXRlS2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFzeW5jIGdldEhTTUVucm9sbG1lbnRLZXkoXG4gICAgY3J5cHRvU3VpdGU6IGFueSxcbiAgICBjZXJ0aWZpY2F0ZTogc3RyaW5nLFxuICAgIGhzbTogSFNNT3B0aW9uc1xuICApIHtcbiAgICBjb25zdCBza2kgPVxuICAgICAgaHNtLmtleUlkSGV4ICYmIGhzbS5rZXlJZEhleC50cmltKCkubGVuZ3RoID4gMFxuICAgICAgICA/IEJ1ZmZlci5mcm9tKGhzbS5rZXlJZEhleCwgXCJoZXhcIilcbiAgICAgICAgOiBhd2FpdCB0aGlzLmdldENlcnRpZmljYXRlU0tJKGNlcnRpZmljYXRlKTtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCBjcnlwdG9TdWl0ZS5nZXRLZXkoc2tpKTtcbiAgICBpZiAoIWtleSB8fCAodHlwZW9mIGtleS5pc1ByaXZhdGUgPT09IFwiZnVuY3Rpb25cIiAmJiAha2V5LmlzUHJpdmF0ZSgpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIHJlc29sdmUgcHJpdmF0ZSBrZXkgZnJvbSBIU01cIik7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0Q2VydGlmaWNhdGVTS0koY2VydGlmaWNhdGU6IHN0cmluZyk6IFByb21pc2U8QnVmZmVyPiB7XG4gICAgY29uc3QgeDUwOSA9IG5ldyBYNTA5Q2VydGlmaWNhdGUoY2VydGlmaWNhdGUpO1xuICAgIGNvbnN0IGp3ayA9IHg1MDkucHVibGljS2V5LmV4cG9ydCh7IGZvcm1hdDogXCJqd2tcIiB9KTtcbiAgICBjb25zdCBwcmVmaXggPSBCdWZmZXIuZnJvbShbMHgwNF0pO1xuICAgIGNvbnN0IHggPSBCdWZmZXIuZnJvbShqd2sueCB8fCBcIlwiLCBcImJhc2U2NHVybFwiKTtcbiAgICBjb25zdCB5ID0gQnVmZmVyLmZyb20oandrLnkgfHwgXCJcIiwgXCJiYXNlNjR1cmxcIik7XG4gICAgcmV0dXJuIGNyeXB0b1xuICAgICAgLmNyZWF0ZUhhc2goXCJzaGEyNTZcIilcbiAgICAgIC51cGRhdGUoQnVmZmVyLmNvbmNhdChbcHJlZml4LCB4LCB5XSkpXG4gICAgICAuZGlnZXN0KCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJ1aWxkIGEgRmFicmljIEdhdGV3YXkgSWRlbnRpdHkgZnJvbSBhbiBNU1AgSUQgYW5kIGNlcnRpZmljYXRlXG4gICAqIEBzdW1tYXJ5IFJlYWRzIGEgY2VydGlmaWNhdGUgZnJvbSBhIGRpcmVjdG9yeSBwYXRoIG9yIGFjY2VwdHMgcmF3IGNvbnRlbnQgYW5kIHJldHVybnMgYW4gSWRlbnRpdHkgb2JqZWN0IHN1aXRhYmxlIGZvciB0aGUgRmFicmljIEdhdGV3YXkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtc3BJZCAtIE1lbWJlcnNoaXAgU2VydmljZSBQcm92aWRlciBJRFxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2VydERpcmVjdG9yeVBhdGggLSBQYXRoIHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGNlcnRpZmljYXRlIGZpbGUsIG9yIFBFTSBjb250ZW50XG4gICAqIEByZXR1cm4ge1Byb21pc2U8SWRlbnRpdHk+fSBUaGUgaWRlbnRpdHkgY29udGFpbmluZyBtc3BJZCBhbmQgY2VydGlmaWNhdGUgY3JlZGVudGlhbHNcbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRJZGVudGl0eShcbiAgICBtc3BJZDogc3RyaW5nLFxuICAgIGNlcnREaXJlY3RvcnlQYXRoOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxJZGVudGl0eT4ge1xuICAgIGNvbnN0IGlkZW50aXR5RmlsZVJlYWRlciA9IGFzeW5jIChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHsgcHJvbWlzZXMgfSA9IGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQoXCJmc1wiKSk7XG4gICAgICBjb25zdCBjZXJ0UGF0aCA9IGF3YWl0IHRoaXMuZ2V0Rmlyc3REaXJGaWxlTmFtZShwYXRoKTtcbiAgICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgcHJvbWlzZXMucmVhZEZpbGUoY2VydFBhdGgpO1xuICAgICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICAgIH07XG5cbiAgICBjb25zdCBjcmVkZW50aWFsczogVWludDhBcnJheSA9IChhd2FpdCB0aGlzLmNvbnRlbnRPZkxvYWRGaWxlKFxuICAgICAgY2VydERpcmVjdG9yeVBhdGgsXG4gICAgICBpZGVudGl0eUZpbGVSZWFkZXJcbiAgICApKSBhcyBVaW50OEFycmF5O1xuXG4gICAgcmV0dXJuIHsgbXNwSWQsIGNyZWRlbnRpYWxzIH07XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0Rmlyc3REaXJGaWxlTmFtZShkaXJQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgcHJvbWlzZXMgfSA9IGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQoXCJmc1wiKSk7XG4gICAgY29uc3QgeyBqb2luIH0gPSBhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KFwicGF0aFwiKSk7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCBwcm9taXNlcy5yZWFkZGlyKGRpclBhdGgpO1xuICAgIHJldHVybiBqb2luKGRpclBhdGgsIGZpbGVzWzBdKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBnZXRGaXJzdERpckZpbGVOYW1lQ29udGVudChkaXJQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgcHJvbWlzZXMgfSA9IGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQoXCJmc1wiKSk7XG4gICAgY29uc3QgeyBqb2luIH0gPSBhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KFwicGF0aFwiKSk7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCBwcm9taXNlcy5yZWFkZGlyKGRpclBhdGgpO1xuICAgIHJldHVybiAoYXdhaXQgcHJvbWlzZXMucmVhZEZpbGUoam9pbihkaXJQYXRoLCBmaWxlc1swXSkpKS50b1N0cmluZygpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldEZpbGVDb250ZW50KGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgcHJvbWlzZXMgfSA9IGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQoXCJmc1wiKSk7XG4gICAgcmV0dXJuIChhd2FpdCBwcm9taXNlcy5yZWFkRmlsZShmaWxlUGF0aCkpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0U2lnbmVyKGtleURpcmVjdG9yeVBhdGg6IHN0cmluZyk6IFByb21pc2U8U2lnbmVyPiB7XG4gICAgY29uc3Qgc2lnbmVyRmlsZVJlYWRlciA9IGFzeW5jIChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHsgcHJvbWlzZXMgfSA9IGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQoXCJmc1wiKSk7XG4gICAgICBjb25zdCBrZXlQYXRoID0gYXdhaXQgdGhpcy5nZXRGaXJzdERpckZpbGVOYW1lKHBhdGgpO1xuICAgICAgcmV0dXJuIGF3YWl0IHByb21pc2VzLnJlYWRGaWxlKGtleVBhdGgpO1xuICAgIH07XG5cbiAgICBjb25zdCBwcml2YXRlS2V5UGVtID0gKGF3YWl0IHRoaXMuY29udGVudE9mTG9hZEZpbGUoXG4gICAgICBrZXlEaXJlY3RvcnlQYXRoLFxuICAgICAgc2lnbmVyRmlsZVJlYWRlclxuICAgICkpIGFzIEJ1ZmZlcjtcbiAgICBjb25zdCBwcml2YXRlS2V5ID0gYXdhaXQgdGhpcy5leHRyYWN0UHJpdmF0ZUtleShwcml2YXRlS2V5UGVtKTtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhwcml2YXRlS2V5KTtcbiAgICBjb25zdCBrID0gKHByaXZhdGVLZXkgYXMgYW55KVtrZXlzWzBdXTtcbiAgICAvLyAtLVxuXG4gICAgcmV0dXJuIHNpZ25lcnMubmV3UHJpdmF0ZUtleVNpZ25lcihrIGFzIGFueSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhc3luYyBleHRyYWN0UHJpdmF0ZUtleShwZW06IEJ1ZmZlcikge1xuICAgIGNvbnN0IGxpYk5hbWUgPSBcImNyeXB0b1wiO1xuICAgIGxldCBzdWJ0bGU6IGFueTtcbiAgICBpZiAoXG4gICAgICAoZ2xvYmFsVGhpcyBhcyBhbnkpLndpbmRvdyAmJlxuICAgICAgKChnbG9iYWxUaGlzIGFzIGFueSkud2luZG93IGFzIHsgQ3J5cHRvOiBhbnkgfSkuQ3J5cHRvXG4gICAgKSB7XG4gICAgICBzdWJ0bGUgPSAoKGdsb2JhbFRoaXMgYXMgYW55KS5DcnlwdG8gYXMgYW55KS5zdWJ0bGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGxpYiA9IChhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KGxpYk5hbWUpKSkgYXMgYW55O1xuICAgICAgc3VidGxlID0gbGliLnN1YnRsZSB8fCBsaWIud2ViY3J5cHRvLnN1YnRsZTtcbiAgICB9XG5cbiAgICBpZiAoIXN1YnRsZSkgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGxvYWQgU3VidGxlQ3J5cHRvIG1vZHVsZVwiKTtcblxuICAgIGZ1bmN0aW9uIHN0cjJhYihzdHI6IHN0cmluZykge1xuICAgICAgY29uc3QgYnVmID0gbmV3IEFycmF5QnVmZmVyKHN0ci5sZW5ndGgpO1xuICAgICAgY29uc3QgYnVmVmlldyA9IG5ldyBVaW50OEFycmF5KGJ1Zik7XG4gICAgICBmb3IgKGxldCBpID0gMCwgc3RyTGVuID0gc3RyLmxlbmd0aDsgaSA8IHN0ckxlbjsgaSsrKSB7XG4gICAgICAgIGJ1ZlZpZXdbaV0gPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBidWY7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyID0gcGVtXG4gICAgICAudG9TdHJpbmcoXCJ1dGY4XCIpXG4gICAgICAucmVwbGFjZShcIi0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVwiLCBcIlwiKVxuICAgICAgLnJlcGxhY2VBbGwoXCJcXG5cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFwiLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVwiLCBcIlwiKTtcbiAgICBjb25zdCBkZWNvZGVkID0gQnVmZmVyLmZyb20oc3RyLCBcImJhc2U2NFwiKS50b1N0cmluZyhcImJpbmFyeVwiKTtcbiAgICBjb25zdCBiaW5hcnlEZXIgPSBzdHIyYWIoZGVjb2RlZCk7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgc3VidGxlLmltcG9ydEtleShcbiAgICAgIFwicGtjczhcIixcbiAgICAgIGJpbmFyeURlcixcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJFQ0RTQVwiLFxuICAgICAgICBuYW1lZEN1cnZlOiBcIlAtMjU2XCIsXG4gICAgICB9LFxuICAgICAgdHJ1ZSxcbiAgICAgIFtcInNpZ25cIl1cbiAgICApO1xuXG4gICAgcmV0dXJuIGtleTtcbiAgfVxufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBjZXJ0aWZpY2F0ZSBTZXJpYWwgTnVtYmVyIGFuZCB0aGUgQUtJIChBdXRob3JpdHkgS2V5IElkZW50aWZpZXIpXG4gKiBpbiB0aGUgZm9ybWF0IEZhYnJpYyBDQSBleHBlY3RzIChwbGFpbiBoZXgsIG5vIGNvbG9ucykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBa2lBbmRTZXJpYWxGcm9tQ2VydChjZXJ0OiBzdHJpbmcpOiB7XG4gIGFraTogc3RyaW5nO1xuICBzZXJpYWw6IHN0cmluZztcbn0ge1xuICBjb25zdCB4NTA5Q2VydGlmaWNhdGUgPSBuZXcgWDUwOUNlcnQoY2VydCk7XG5cbiAgLy8gRmluZCB0aGUgQUtJIChBdXRob3JpdHkgS2V5IElkZW50aWZpZXIpIGV4dGVuc2lvbiBieSBpdHMgT0lEOiAyLjUuMjkuMzVcbiAgY29uc3QgYWtpRXh0ID0geDUwOUNlcnRpZmljYXRlLmV4dGVuc2lvbnM/LmZpbmQoXG4gICAgKGUpID0+IGUudHlwZSA9PT0gXCIyLjUuMjkuMzVcIlxuICApO1xuICBpZiAoIWFraUV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiQXV0aG9yaXR5IEtleSBJZGVudGlmaWVyIChBS0kpIGV4dGVuc2lvbiBub3QgZm91bmQgaW4gY2VydGlmaWNhdGUuXCJcbiAgICApO1xuICB9XG5cbiAgLy8gYWtpRXh0LnZhbHVlIGlzIHRoZSBleHRlbnNpb24gY29udGVudCBpbiBERVIgYnl0ZXMuIENvbnZlcnQgaXQgdG8gYSBoZXggc3RyaW5nLlxuICBsZXQgYWtpID0gQnVmZmVyLmZyb20obmV3IFVpbnQ4QXJyYXkoYWtpRXh0LnZhbHVlKSlcbiAgICAudG9TdHJpbmcoXCJoZXhcIilcbiAgICAudG9VcHBlckNhc2UoKTtcblxuICAvKipcbiAgICogQ29tbW9uIGNhc2U6XG4gICAqIFRoZSBERVItZW5jb2RlZCBBS0kgZXh0ZW5zaW9uIG9mdGVuIHN0YXJ0cyB3aXRoOlxuICAgKiAgIDMwIDE2IDgwIDE0IDwyMC1ieXRlIGtleUlkZW50aWZpZXI+XG4gICAqIEluIGhleCwgdGhhdCdzIFwiMzAxNjgwMTRcIiArIDQwIGhleCBjaGFycyAoMjAgYnl0ZXMpLlxuICAgKlxuICAgKiBGYWJyaWMgQ0EgZXhwZWN0cyBPTkxZIHRoZSAyMC1ieXRlIGtleUlkZW50aWZpZXIgKDQwIGhleCBjaGFycyksXG4gICAqIHNvIHdlIHN0cmlwIHRoZSBcIjMwMTY4MDE0XCIgcHJlZml4IHdoZW4gcHJlc2VudC5cbiAgICovXG4gIGlmIChha2kuc3RhcnRzV2l0aChcIjMwMTY4MDE0XCIpICYmIGFraS5sZW5ndGggPj0gOCArIDQwKVxuICAgIGFraSA9IGFraS5zbGljZSg4LCA4ICsgNDApO1xuXG4gIHJldHVybiB7IGFraSwgc2VyaWFsOiB4NTA5Q2VydGlmaWNhdGUuc2VyaWFsTnVtYmVyIH07XG59XG4iXX0=
|
package/lib/contract/index.cjs
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.contracts = void 0;
|
|
4
|
-
const crud_contract_1 = require("./../contracts/crud/crud-contract.cjs");
|
|
5
|
-
console.log(crud_contract_1.FabricCrudContract.name);
|
|
6
|
-
const ProductContract_1 = require("./ProductContract.cjs");
|
|
7
|
-
const BatchContract_1 = require("./BatchContract.cjs");
|
|
8
|
-
const UserContract_1 = require("./UserContract.cjs");
|
|
9
|
-
const AddressContract_1 = require("./AddressContract.cjs");
|
|
10
|
-
const OtherProductSharedContract_1 = require("./OtherProductSharedContract.cjs");
|
|
11
|
-
const SegregatedPrivateDocumentContract_1 = require("./SegregatedPrivateDocumentContract.cjs");
|
|
12
|
-
const SegregatedSharedDocumentContract_1 = require("./SegregatedSharedDocumentContract.cjs");
|
|
13
|
-
const ProductStrengthContract_1 = require("./ProductStrengthContract.cjs");
|
|
14
|
-
const MarketContract_1 = require("./MarketContract.cjs");
|
|
15
|
-
const OtherProductStrengthContract_1 = require("./OtherProductStrengthContract.cjs");
|
|
16
|
-
const OtherMarketContract_1 = require("./OtherMarketContract.cjs");
|
|
17
|
-
const OtherProductImageContract_1 = require("./OtherProductImageContract.cjs");
|
|
18
|
-
const OtherAuditContract_1 = require("./OtherAuditContract.cjs");
|
|
19
|
-
const MigrationContract_1 = require("./../contracts/MigrationContract.cjs");
|
|
20
|
-
exports.contracts = [
|
|
21
|
-
ProductContract_1.ProductContract,
|
|
22
|
-
ProductStrengthContract_1.ProductStrengthContract,
|
|
23
|
-
OtherProductStrengthContract_1.OtherProductStrengthContract,
|
|
24
|
-
MarketContract_1.MarketContract,
|
|
25
|
-
OtherMarketContract_1.OtherMarketContract,
|
|
26
|
-
OtherProductImageContract_1.OtherProductImageContract,
|
|
27
|
-
BatchContract_1.BatchContract,
|
|
28
|
-
UserContract_1.UserContract,
|
|
29
|
-
OtherAuditContract_1.OtherAuditContract,
|
|
30
|
-
AddressContract_1.AddressContract,
|
|
31
|
-
OtherProductSharedContract_1.OtherProductSharedContract,
|
|
32
|
-
SegregatedPrivateDocumentContract_1.SegregatedPrivateDocumentContract,
|
|
33
|
-
SegregatedSharedDocumentContract_1.SegregatedSharedDocumentContract,
|
|
34
|
-
MigrationContract_1.MigrationContract,
|
|
35
|
-
];
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQXFFO0FBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFckMsMkRBQW9EO0FBQ3BELHVEQUFnRDtBQUNoRCxxREFBOEM7QUFDOUMsMkRBQW9EO0FBQ3BELGlGQUEwRTtBQUMxRSwrRkFBd0Y7QUFDeEYsNkZBQXNGO0FBQ3RGLDJFQUFvRTtBQUNwRSx5REFBa0Q7QUFDbEQscUZBQThFO0FBQzlFLG1FQUE0RDtBQUM1RCwrRUFBd0U7QUFDeEUsaUVBQTBEO0FBQzFELDRFQUFtRTtBQUV0RCxRQUFBLFNBQVMsR0FBd0I7SUFDNUMsaUNBQWU7SUFDZixpREFBdUI7SUFDdkIsMkRBQTRCO0lBQzVCLCtCQUFjO0lBQ2QseUNBQW1CO0lBQ25CLHFEQUF5QjtJQUN6Qiw2QkFBYTtJQUNiLDJCQUFZO0lBQ1osdUNBQWtCO0lBQ2xCLGlDQUFlO0lBQ2YsdURBQTBCO0lBQzFCLHFFQUFpQztJQUNqQyxtRUFBZ0M7SUFDaEMscUNBQWlCO0NBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYWJyaWNDcnVkQ29udHJhY3QgfSBmcm9tIFwiLi4vY29udHJhY3RzL2NydWQvY3J1ZC1jb250cmFjdFwiO1xuY29uc29sZS5sb2coRmFicmljQ3J1ZENvbnRyYWN0Lm5hbWUpO1xuaW1wb3J0IHsgdHlwZSBDb250cmFjdCB9IGZyb20gXCJmYWJyaWMtY29udHJhY3QtYXBpXCI7XG5pbXBvcnQgeyBQcm9kdWN0Q29udHJhY3QgfSBmcm9tIFwiLi9Qcm9kdWN0Q29udHJhY3RcIjtcbmltcG9ydCB7IEJhdGNoQ29udHJhY3QgfSBmcm9tIFwiLi9CYXRjaENvbnRyYWN0XCI7XG5pbXBvcnQgeyBVc2VyQ29udHJhY3QgfSBmcm9tIFwiLi9Vc2VyQ29udHJhY3RcIjtcbmltcG9ydCB7IEFkZHJlc3NDb250cmFjdCB9IGZyb20gXCIuL0FkZHJlc3NDb250cmFjdFwiO1xuaW1wb3J0IHsgT3RoZXJQcm9kdWN0U2hhcmVkQ29udHJhY3QgfSBmcm9tIFwiLi9PdGhlclByb2R1Y3RTaGFyZWRDb250cmFjdFwiO1xuaW1wb3J0IHsgU2VncmVnYXRlZFByaXZhdGVEb2N1bWVudENvbnRyYWN0IH0gZnJvbSBcIi4vU2VncmVnYXRlZFByaXZhdGVEb2N1bWVudENvbnRyYWN0XCI7XG5pbXBvcnQgeyBTZWdyZWdhdGVkU2hhcmVkRG9jdW1lbnRDb250cmFjdCB9IGZyb20gXCIuL1NlZ3JlZ2F0ZWRTaGFyZWREb2N1bWVudENvbnRyYWN0XCI7XG5pbXBvcnQgeyBQcm9kdWN0U3RyZW5ndGhDb250cmFjdCB9IGZyb20gXCIuL1Byb2R1Y3RTdHJlbmd0aENvbnRyYWN0XCI7XG5pbXBvcnQgeyBNYXJrZXRDb250cmFjdCB9IGZyb20gXCIuL01hcmtldENvbnRyYWN0XCI7XG5pbXBvcnQgeyBPdGhlclByb2R1Y3RTdHJlbmd0aENvbnRyYWN0IH0gZnJvbSBcIi4vT3RoZXJQcm9kdWN0U3RyZW5ndGhDb250cmFjdFwiO1xuaW1wb3J0IHsgT3RoZXJNYXJrZXRDb250cmFjdCB9IGZyb20gXCIuL090aGVyTWFya2V0Q29udHJhY3RcIjtcbmltcG9ydCB7IE90aGVyUHJvZHVjdEltYWdlQ29udHJhY3QgfSBmcm9tIFwiLi9PdGhlclByb2R1Y3RJbWFnZUNvbnRyYWN0XCI7XG5pbXBvcnQgeyBPdGhlckF1ZGl0Q29udHJhY3QgfSBmcm9tIFwiLi9PdGhlckF1ZGl0Q29udHJhY3RcIjtcbmltcG9ydCB7IE1pZ3JhdGlvbkNvbnRyYWN0IH0gZnJvbSBcIi4uL2NvbnRyYWN0cy9NaWdyYXRpb25Db250cmFjdFwiO1xuXG5leHBvcnQgY29uc3QgY29udHJhY3RzOiAodHlwZW9mIENvbnRyYWN0KVtdID0gW1xuICBQcm9kdWN0Q29udHJhY3QsXG4gIFByb2R1Y3RTdHJlbmd0aENvbnRyYWN0LFxuICBPdGhlclByb2R1Y3RTdHJlbmd0aENvbnRyYWN0LFxuICBNYXJrZXRDb250cmFjdCxcbiAgT3RoZXJNYXJrZXRDb250cmFjdCxcbiAgT3RoZXJQcm9kdWN0SW1hZ2VDb250cmFjdCxcbiAgQmF0Y2hDb250cmFjdCxcbiAgVXNlckNvbnRyYWN0LFxuICBPdGhlckF1ZGl0Q29udHJhY3QsXG4gIEFkZHJlc3NDb250cmFjdCxcbiAgT3RoZXJQcm9kdWN0U2hhcmVkQ29udHJhY3QsXG4gIFNlZ3JlZ2F0ZWRQcml2YXRlRG9jdW1lbnRDb250cmFjdCxcbiAgU2VncmVnYXRlZFNoYXJlZERvY3VtZW50Q29udHJhY3QsXG4gIE1pZ3JhdGlvbkNvbnRyYWN0LFxuXTtcbiJdfQ==
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ensureContractLogFieldRegistration = ensureContractLogFieldRegistration;
|
|
4
|
-
exports.enrichContractLoggingConfig = enrichContractLoggingConfig;
|
|
5
|
-
exports.extractUserFromIdentity = extractUserFromIdentity;
|
|
6
|
-
exports.trimCorrelationId = trimCorrelationId;
|
|
7
|
-
const logging_1 = require("@decaf-ts/logging");
|
|
8
|
-
let userFieldRegistered = false;
|
|
9
|
-
function ensureContractLogFieldRegistration() {
|
|
10
|
-
if (userFieldRegistered)
|
|
11
|
-
return;
|
|
12
|
-
userFieldRegistered = true;
|
|
13
|
-
logging_1.Logging.register({
|
|
14
|
-
key: "correlationId",
|
|
15
|
-
shouldInclude(payload) {
|
|
16
|
-
const value = payload?.correlationId ?? payload?.config?.correlationId;
|
|
17
|
-
return Boolean(value);
|
|
18
|
-
},
|
|
19
|
-
render(payload) {
|
|
20
|
-
const value = payload?.correlationId ?? payload?.config?.correlationId;
|
|
21
|
-
return value === undefined || value === null
|
|
22
|
-
? undefined
|
|
23
|
-
: `, correlationId: ${String(value)}`;
|
|
24
|
-
},
|
|
25
|
-
style(rendered, payload) {
|
|
26
|
-
return payload.applyTheme(rendered, "id");
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
logging_1.Logging.register({
|
|
30
|
-
key: "user",
|
|
31
|
-
shouldInclude(payload) {
|
|
32
|
-
const value = payload?.user ?? payload?.config?.user;
|
|
33
|
-
return Boolean(value);
|
|
34
|
-
},
|
|
35
|
-
render(payload) {
|
|
36
|
-
const value = payload?.user ?? payload?.config?.user;
|
|
37
|
-
return value === undefined || value === null
|
|
38
|
-
? undefined
|
|
39
|
-
: `, user: ${String(value)}`;
|
|
40
|
-
},
|
|
41
|
-
style(rendered, payload) {
|
|
42
|
-
return payload.applyTheme(rendered, "id");
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
function enrichContractLoggingConfig(conf, ctx) {
|
|
47
|
-
if (!ctx)
|
|
48
|
-
return conf;
|
|
49
|
-
const txId = ctx.stub?.getTxID?.();
|
|
50
|
-
const compactTxId = trimCorrelationId(txId);
|
|
51
|
-
const user = extractUserFromIdentity(ctx.clientIdentity?.getID?.());
|
|
52
|
-
const useDefaultFabricFormatting = !conf?.pattern;
|
|
53
|
-
return {
|
|
54
|
-
...(conf || {}),
|
|
55
|
-
correlationId: conf?.correlationId || compactTxId,
|
|
56
|
-
user: conf?.user || user,
|
|
57
|
-
pattern: conf?.pattern || "{message}{user}{correlationId} {stack}",
|
|
58
|
-
logLevel: useDefaultFabricFormatting ? false : conf?.logLevel,
|
|
59
|
-
timestamp: useDefaultFabricFormatting ? false : conf?.timestamp,
|
|
60
|
-
context: useDefaultFabricFormatting ? false : conf?.context,
|
|
61
|
-
separator: useDefaultFabricFormatting ? "" : conf?.separator,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
function extractUserFromIdentity(id) {
|
|
65
|
-
if (!id)
|
|
66
|
-
return undefined;
|
|
67
|
-
const emailMatch = id.match(/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/);
|
|
68
|
-
return emailMatch?.[0];
|
|
69
|
-
}
|
|
70
|
-
function trimCorrelationId(id) {
|
|
71
|
-
if (!id)
|
|
72
|
-
return undefined;
|
|
73
|
-
if (id.length <= 10)
|
|
74
|
-
return id;
|
|
75
|
-
return `${id.slice(0, 5)}-${id.slice(-5)}`;
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L2xvZ2dpbmctY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLGdGQW1DQztBQUVELGtFQW1CQztBQUVELDBEQU1DO0FBRUQsOENBSUM7QUEzRUQsK0NBQTJEO0FBRzNELElBQUksbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0FBRWhDLFNBQWdCLGtDQUFrQztJQUNoRCxJQUFJLG1CQUFtQjtRQUFFLE9BQU87SUFDaEMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQzNCLGlCQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2YsR0FBRyxFQUFFLGVBQWU7UUFDcEIsYUFBYSxDQUFDLE9BQVk7WUFDeEIsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLGFBQWEsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQztZQUN2RSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBQ0QsTUFBTSxDQUFDLE9BQVk7WUFDakIsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLGFBQWEsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQztZQUN2RSxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQzFDLENBQUMsQ0FBQyxTQUFTO2dCQUNYLENBQUMsQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUNELEtBQUssQ0FBQyxRQUFnQixFQUFFLE9BQVk7WUFDbEMsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDO0tBQ0ssQ0FBQyxDQUFDO0lBQ1YsaUJBQU8sQ0FBQyxRQUFRLENBQUM7UUFDZixHQUFHLEVBQUUsTUFBTTtRQUNYLGFBQWEsQ0FBQyxPQUFZO1lBQ3hCLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxJQUFJLElBQUksT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDckQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUNELE1BQU0sQ0FBQyxPQUFZO1lBQ2pCLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxJQUFJLElBQUksT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDckQsT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJO2dCQUMxQyxDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUMsV0FBVyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFFBQWdCLEVBQUUsT0FBWTtZQUNsQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVDLENBQUM7S0FDSyxDQUFDLENBQUM7QUFDWixDQUFDO0FBRUQsU0FBZ0IsMkJBQTJCLENBQ3pDLElBQXdDLEVBQ3hDLEdBQVM7SUFFVCxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3RCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztJQUNuQyxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxNQUFNLElBQUksR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRSxNQUFNLDBCQUEwQixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQztJQUNsRCxPQUFPO1FBQ0wsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDZixhQUFhLEVBQUUsSUFBSSxFQUFFLGFBQWEsSUFBSSxXQUFXO1FBQ2pELElBQUksRUFBRyxJQUFZLEVBQUUsSUFBSSxJQUFJLElBQUk7UUFDakMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLElBQUksd0NBQXdDO1FBQ2xFLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUTtRQUM3RCxTQUFTLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVM7UUFDL0QsT0FBTyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPO1FBQzNELFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUztLQUM3RCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLEVBQVc7SUFDakQsSUFBSSxDQUFDLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUMxQixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUN6QixnREFBZ0QsQ0FDakQsQ0FBQztJQUNGLE9BQU8sVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLEVBQVc7SUFDM0MsSUFBSSxDQUFDLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUMxQixJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUksRUFBRTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQy9CLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2luZywgTG9nZ2luZ0NvbmZpZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgQ29udGV4dCBhcyBDdHggfSBmcm9tIFwiZmFicmljLWNvbnRyYWN0LWFwaVwiO1xuXG5sZXQgdXNlckZpZWxkUmVnaXN0ZXJlZCA9IGZhbHNlO1xuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlQ29udHJhY3RMb2dGaWVsZFJlZ2lzdHJhdGlvbigpIHtcbiAgaWYgKHVzZXJGaWVsZFJlZ2lzdGVyZWQpIHJldHVybjtcbiAgdXNlckZpZWxkUmVnaXN0ZXJlZCA9IHRydWU7XG4gIExvZ2dpbmcucmVnaXN0ZXIoe1xuICAgIGtleTogXCJjb3JyZWxhdGlvbklkXCIsXG4gICAgc2hvdWxkSW5jbHVkZShwYXlsb2FkOiBhbnkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcGF5bG9hZD8uY29ycmVsYXRpb25JZCA/PyBwYXlsb2FkPy5jb25maWc/LmNvcnJlbGF0aW9uSWQ7XG4gICAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSk7XG4gICAgfSxcbiAgICByZW5kZXIocGF5bG9hZDogYW55KSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHBheWxvYWQ/LmNvcnJlbGF0aW9uSWQgPz8gcGF5bG9hZD8uY29uZmlnPy5jb3JyZWxhdGlvbklkO1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGxcbiAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgOiBgLCBjb3JyZWxhdGlvbklkOiAke1N0cmluZyh2YWx1ZSl9YDtcbiAgICB9LFxuICAgIHN0eWxlKHJlbmRlcmVkOiBzdHJpbmcsIHBheWxvYWQ6IGFueSkge1xuICAgICAgcmV0dXJuIHBheWxvYWQuYXBwbHlUaGVtZShyZW5kZXJlZCwgXCJpZFwiKTtcbiAgICB9LFxuICB9IGFzIGFueSk7XG4gIExvZ2dpbmcucmVnaXN0ZXIoe1xuICAgIGtleTogXCJ1c2VyXCIsXG4gICAgc2hvdWxkSW5jbHVkZShwYXlsb2FkOiBhbnkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcGF5bG9hZD8udXNlciA/PyBwYXlsb2FkPy5jb25maWc/LnVzZXI7XG4gICAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSk7XG4gICAgfSxcbiAgICByZW5kZXIocGF5bG9hZDogYW55KSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHBheWxvYWQ/LnVzZXIgPz8gcGF5bG9hZD8uY29uZmlnPy51c2VyO1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGxcbiAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgOiBgLCB1c2VyOiAke1N0cmluZyh2YWx1ZSl9YDtcbiAgICB9LFxuICAgIHN0eWxlKHJlbmRlcmVkOiBzdHJpbmcsIHBheWxvYWQ6IGFueSkge1xuICAgICAgcmV0dXJuIHBheWxvYWQuYXBwbHlUaGVtZShyZW5kZXJlZCwgXCJpZFwiKTtcbiAgICB9LFxuICB9IGFzIGFueSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnJpY2hDb250cmFjdExvZ2dpbmdDb25maWcoXG4gIGNvbmY6IFBhcnRpYWw8TG9nZ2luZ0NvbmZpZz4gfCB1bmRlZmluZWQsXG4gIGN0eD86IEN0eFxuKTogKFBhcnRpYWw8TG9nZ2luZ0NvbmZpZz4gJiB7IHVzZXI/OiBzdHJpbmcgfSkgfCB1bmRlZmluZWQge1xuICBpZiAoIWN0eCkgcmV0dXJuIGNvbmY7XG4gIGNvbnN0IHR4SWQgPSBjdHguc3R1Yj8uZ2V0VHhJRD8uKCk7XG4gIGNvbnN0IGNvbXBhY3RUeElkID0gdHJpbUNvcnJlbGF0aW9uSWQodHhJZCk7XG4gIGNvbnN0IHVzZXIgPSBleHRyYWN0VXNlckZyb21JZGVudGl0eShjdHguY2xpZW50SWRlbnRpdHk/LmdldElEPy4oKSk7XG4gIGNvbnN0IHVzZURlZmF1bHRGYWJyaWNGb3JtYXR0aW5nID0gIWNvbmY/LnBhdHRlcm47XG4gIHJldHVybiB7XG4gICAgLi4uKGNvbmYgfHwge30pLFxuICAgIGNvcnJlbGF0aW9uSWQ6IGNvbmY/LmNvcnJlbGF0aW9uSWQgfHwgY29tcGFjdFR4SWQsXG4gICAgdXNlcjogKGNvbmYgYXMgYW55KT8udXNlciB8fCB1c2VyLFxuICAgIHBhdHRlcm46IGNvbmY/LnBhdHRlcm4gfHwgXCJ7bWVzc2FnZX17dXNlcn17Y29ycmVsYXRpb25JZH0ge3N0YWNrfVwiLFxuICAgIGxvZ0xldmVsOiB1c2VEZWZhdWx0RmFicmljRm9ybWF0dGluZyA/IGZhbHNlIDogY29uZj8ubG9nTGV2ZWwsXG4gICAgdGltZXN0YW1wOiB1c2VEZWZhdWx0RmFicmljRm9ybWF0dGluZyA/IGZhbHNlIDogY29uZj8udGltZXN0YW1wLFxuICAgIGNvbnRleHQ6IHVzZURlZmF1bHRGYWJyaWNGb3JtYXR0aW5nID8gZmFsc2UgOiBjb25mPy5jb250ZXh0LFxuICAgIHNlcGFyYXRvcjogdXNlRGVmYXVsdEZhYnJpY0Zvcm1hdHRpbmcgPyBcIlwiIDogY29uZj8uc2VwYXJhdG9yLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFVzZXJGcm9tSWRlbnRpdHkoaWQ/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIWlkKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBlbWFpbE1hdGNoID0gaWQubWF0Y2goXG4gICAgL1tBLVphLXowLTkuXyUrLV0rQFtBLVphLXowLTkuLV0rXFwuW0EtWmEtel17Mix9L1xuICApO1xuICByZXR1cm4gZW1haWxNYXRjaD8uWzBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJpbUNvcnJlbGF0aW9uSWQoaWQ/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIWlkKSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAoaWQubGVuZ3RoIDw9IDEwKSByZXR1cm4gaWQ7XG4gIHJldHVybiBgJHtpZC5zbGljZSgwLCA1KX0tJHtpZC5zbGljZSgtNSl9YDtcbn1cbiJdfQ==
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.Audit = void 0;
|
|
13
|
-
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
14
|
-
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
15
|
-
const decoration_1 = require("@decaf-ts/decoration");
|
|
16
|
-
const core_1 = require("@decaf-ts/core");
|
|
17
|
-
const BaseModel_1 = require("./BaseModel.cjs");
|
|
18
|
-
const constants_1 = require("./constants.cjs");
|
|
19
|
-
const index_1 = require("./../../shared/index.cjs");
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
21
|
-
function uuidSeed(m, ...args) {
|
|
22
|
-
try {
|
|
23
|
-
return `${m.model}${m.action}${m.userId}${m.transaction}${JSON.stringify(m.diffs)}`;
|
|
24
|
-
}
|
|
25
|
-
catch (e) {
|
|
26
|
-
throw new db_decorators_1.InternalError(`Failed to generate deterministic uuid: ${e}`);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
let Audit = class Audit extends BaseModel_1.BaseModel {
|
|
30
|
-
constructor(model) {
|
|
31
|
-
super(model);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
exports.Audit = Audit;
|
|
35
|
-
__decorate([
|
|
36
|
-
(0, core_1.pk)(),
|
|
37
|
-
(0, core_1.uuid)(uuidSeed)
|
|
38
|
-
// @mirror("mirror-collection", "prg-a")
|
|
39
|
-
,
|
|
40
|
-
(0, decoration_1.description)("Unique identifier of the audit record."),
|
|
41
|
-
__metadata("design:type", String)
|
|
42
|
-
], Audit.prototype, "id", void 0);
|
|
43
|
-
__decorate([
|
|
44
|
-
(0, core_1.column)(),
|
|
45
|
-
(0, core_1.createdBy)(),
|
|
46
|
-
(0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
|
|
47
|
-
(0, decoration_1.description)("Identifier of the user who performed the action."),
|
|
48
|
-
__metadata("design:type", String)
|
|
49
|
-
], Audit.prototype, "userId", void 0);
|
|
50
|
-
__decorate([
|
|
51
|
-
(0, core_1.column)(),
|
|
52
|
-
(0, decorator_validation_1.required)(),
|
|
53
|
-
(0, db_decorators_1.readonly)(),
|
|
54
|
-
(0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
|
|
55
|
-
(0, decoration_1.description)("Group or role of the user who performed the action."),
|
|
56
|
-
__metadata("design:type", String)
|
|
57
|
-
], Audit.prototype, "userGroup", void 0);
|
|
58
|
-
__decorate([
|
|
59
|
-
(0, core_1.column)(),
|
|
60
|
-
(0, decorator_validation_1.required)(),
|
|
61
|
-
(0, db_decorators_1.readonly)(),
|
|
62
|
-
(0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
|
|
63
|
-
(0, decoration_1.description)("model/entity affected by the action"),
|
|
64
|
-
__metadata("design:type", String)
|
|
65
|
-
], Audit.prototype, "model", void 0);
|
|
66
|
-
__decorate([
|
|
67
|
-
(0, core_1.column)(),
|
|
68
|
-
(0, decorator_validation_1.required)(),
|
|
69
|
-
(0, db_decorators_1.readonly)(),
|
|
70
|
-
(0, index_1.transactionId)(),
|
|
71
|
-
(0, decoration_1.description)("the transaction the audit record was created in"),
|
|
72
|
-
__metadata("design:type", String)
|
|
73
|
-
], Audit.prototype, "transaction", void 0);
|
|
74
|
-
__decorate([
|
|
75
|
-
(0, core_1.column)(),
|
|
76
|
-
(0, decorator_validation_1.required)(),
|
|
77
|
-
(0, db_decorators_1.readonly)(),
|
|
78
|
-
(0, decorator_validation_1.type)(String),
|
|
79
|
-
(0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
|
|
80
|
-
(0, decoration_1.description)("Type of action performed by the user."),
|
|
81
|
-
__metadata("design:type", String)
|
|
82
|
-
], Audit.prototype, "action", void 0);
|
|
83
|
-
__decorate([
|
|
84
|
-
(0, core_1.column)(),
|
|
85
|
-
(0, db_decorators_1.readonly)(),
|
|
86
|
-
(0, decorator_validation_1.required)(),
|
|
87
|
-
(0, db_decorators_1.serialize)(),
|
|
88
|
-
(0, decorator_validation_1.type)(Object),
|
|
89
|
-
(0, decoration_1.description)("the diffs for the action."),
|
|
90
|
-
__metadata("design:type", Object)
|
|
91
|
-
], Audit.prototype, "diffs", void 0);
|
|
92
|
-
exports.Audit = Audit = __decorate([
|
|
93
|
-
(0, decoration_1.description)("Logs user activity for auditing purposes."),
|
|
94
|
-
(0, db_decorators_1.BlockOperations)([
|
|
95
|
-
// OperationKeys.CREATE,
|
|
96
|
-
db_decorators_1.OperationKeys.UPDATE,
|
|
97
|
-
db_decorators_1.OperationKeys.DELETE,
|
|
98
|
-
]),
|
|
99
|
-
(0, decoration_1.uses)(index_1.FabricFlavour)
|
|
100
|
-
// @sharedData(NamespaceCollection("decaf-namespace"))
|
|
101
|
-
,
|
|
102
|
-
(0, core_1.table)("audit"),
|
|
103
|
-
(0, decorator_validation_1.model)(),
|
|
104
|
-
__metadata("design:paramtypes", [Object])
|
|
105
|
-
], Audit);
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXVkaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3QvbW9kZWxzL0F1ZGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlFQUt3QztBQUN4QywyREFNaUM7QUFDakMscURBQXlEO0FBQ3pELHlDQVN3QjtBQUN4QiwrQ0FBd0M7QUFDeEMsK0NBQThDO0FBQzlDLG9EQUs0QjtBQUU1Qiw2REFBNkQ7QUFDN0QsU0FBUyxRQUFRLENBQUMsQ0FBUSxFQUFFLEdBQUcsSUFBeUI7SUFDdEQsSUFBSSxDQUFDO1FBQ0gsT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUN0RixDQUFDO0lBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksNkJBQWEsQ0FBQywwQ0FBMEMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0FBQ0gsQ0FBQztBQVlNLElBQU0sS0FBSyxHQUFYLE1BQU0sS0FBTSxTQUFRLHFCQUFTO0lBa0RsQyxZQUFZLEtBQXVCO1FBQ2pDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLENBQUM7Q0FDRixDQUFBO0FBckRZLHNCQUFLO0FBS2hCO0lBSkMsSUFBQSxTQUFFLEdBQUU7SUFDSixJQUFBLFdBQUksRUFBQyxRQUFRLENBQUM7SUFDZix3Q0FBd0M7O0lBQ3ZDLElBQUEsd0JBQVcsRUFBQyx3Q0FBd0MsQ0FBQzs7aUNBQzFDO0FBTVo7SUFKQyxJQUFBLGFBQU0sR0FBRTtJQUNSLElBQUEsZ0JBQVMsR0FBRTtJQUNYLElBQUEsWUFBSyxFQUFDLENBQUMscUJBQWMsQ0FBQyxHQUFHLEVBQUUscUJBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxJQUFBLHdCQUFXLEVBQUMsa0RBQWtELENBQUM7O3FDQUNoRDtBQU9oQjtJQUxDLElBQUEsYUFBTSxHQUFFO0lBQ1IsSUFBQSwrQkFBUSxHQUFFO0lBQ1YsSUFBQSx3QkFBUSxHQUFFO0lBQ1YsSUFBQSxZQUFLLEVBQUMsQ0FBQyxxQkFBYyxDQUFDLEdBQUcsRUFBRSxxQkFBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLElBQUEsd0JBQVcsRUFBQyxxREFBcUQsQ0FBQzs7d0NBQ2hEO0FBT25CO0lBTEMsSUFBQSxhQUFNLEdBQUU7SUFDUixJQUFBLCtCQUFRLEdBQUU7SUFDVixJQUFBLHdCQUFRLEdBQUU7SUFDVixJQUFBLFlBQUssRUFBQyxDQUFDLHFCQUFjLENBQUMsR0FBRyxFQUFFLHFCQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsSUFBQSx3QkFBVyxFQUFDLHFDQUFxQyxDQUFDOztvQ0FDcEM7QUFPZjtJQUxDLElBQUEsYUFBTSxHQUFFO0lBQ1IsSUFBQSwrQkFBUSxHQUFFO0lBQ1YsSUFBQSx3QkFBUSxHQUFFO0lBQ1YsSUFBQSxxQkFBYSxHQUFFO0lBQ2YsSUFBQSx3QkFBVyxFQUFDLGlEQUFpRCxDQUFDOzswQ0FDMUM7QUFRckI7SUFOQyxJQUFBLGFBQU0sR0FBRTtJQUNSLElBQUEsK0JBQVEsR0FBRTtJQUNWLElBQUEsd0JBQVEsR0FBRTtJQUNWLElBQUEsMkJBQUksRUFBQyxNQUFNLENBQUM7SUFDWixJQUFBLFlBQUssRUFBQyxDQUFDLHFCQUFjLENBQUMsR0FBRyxFQUFFLHFCQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsSUFBQSx3QkFBVyxFQUFDLHVDQUF1QyxDQUFDOztxQ0FDNUI7QUFRekI7SUFOQyxJQUFBLGFBQU0sR0FBRTtJQUNSLElBQUEsd0JBQVEsR0FBRTtJQUNWLElBQUEsK0JBQVEsR0FBRTtJQUNWLElBQUEseUJBQVMsR0FBRTtJQUNYLElBQUEsMkJBQUksRUFBQyxNQUFNLENBQUM7SUFDWixJQUFBLHdCQUFXLEVBQUMsMkJBQTJCLENBQUM7O29DQUNiO2dCQWhEakIsS0FBSztJQVZqQixJQUFBLHdCQUFXLEVBQUMsMkNBQTJDLENBQUM7SUFDeEQsSUFBQSwrQkFBZSxFQUFDO1FBQ2Ysd0JBQXdCO1FBQ3hCLDZCQUFhLENBQUMsTUFBTTtRQUNwQiw2QkFBYSxDQUFDLE1BQU07S0FDckIsQ0FBQztJQUNELElBQUEsaUJBQUksRUFBQyxxQkFBYSxDQUFDO0lBQ3BCLHNEQUFzRDs7SUFDckQsSUFBQSxZQUFLLEVBQUMsT0FBTyxDQUFDO0lBQ2QsSUFBQSw0QkFBSyxHQUFFOztHQUNLLEtBQUssQ0FxRGpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgbW9kZWwsXG4gIHR5cGUgTW9kZWxBcmcsXG4gIHJlcXVpcmVkLFxuICB0eXBlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQge1xuICBCbG9ja09wZXJhdGlvbnMsXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG4gIHJlYWRvbmx5LFxuICBzZXJpYWxpemUsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgZGVzY3JpcHRpb24sIHVzZXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7XG4gIHRhYmxlLFxuICBwayxcbiAgY3JlYXRlZEJ5LFxuICBjb2x1bW4sXG4gIE9yZGVyRGlyZWN0aW9uLFxuICBpbmRleCxcbiAgdXVpZCxcbiAgQ29udGV4dHVhbEFyZ3MsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQmFzZU1vZGVsIH0gZnJvbSBcIi4vQmFzZU1vZGVsXCI7XG5pbXBvcnQgeyBBdWRpdE9wZXJhdGlvbnMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIEZhYnJpY0ZsYXZvdXIsXG4gIE5hbWVzcGFjZUNvbGxlY3Rpb24sXG4gIHNoYXJlZERhdGEsXG4gIHRyYW5zYWN0aW9uSWQsXG59IGZyb20gXCIuLi8uLi9zaGFyZWQvaW5kZXhcIjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuZnVuY3Rpb24gdXVpZFNlZWQobTogQXVkaXQsIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT4pIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYCR7bS5tb2RlbH0ke20uYWN0aW9ufSR7bS51c2VySWR9JHttLnRyYW5zYWN0aW9ufSR7SlNPTi5zdHJpbmdpZnkobS5kaWZmcyl9YDtcbiAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gZ2VuZXJhdGUgZGV0ZXJtaW5pc3RpYyB1dWlkOiAke2V9YCk7XG4gIH1cbn1cblxuQGRlc2NyaXB0aW9uKFwiTG9ncyB1c2VyIGFjdGl2aXR5IGZvciBhdWRpdGluZyBwdXJwb3Nlcy5cIilcbkBCbG9ja09wZXJhdGlvbnMoW1xuICAvLyBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gIE9wZXJhdGlvbktleXMuREVMRVRFLFxuXSlcbkB1c2VzKEZhYnJpY0ZsYXZvdXIpXG4vLyBAc2hhcmVkRGF0YShOYW1lc3BhY2VDb2xsZWN0aW9uKFwiZGVjYWYtbmFtZXNwYWNlXCIpKVxuQHRhYmxlKFwiYXVkaXRcIilcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgQXVkaXQgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBAcGsoKVxuICBAdXVpZCh1dWlkU2VlZClcbiAgLy8gQG1pcnJvcihcIm1pcnJvci1jb2xsZWN0aW9uXCIsIFwicHJnLWFcIilcbiAgQGRlc2NyaXB0aW9uKFwiVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGF1ZGl0IHJlY29yZC5cIilcbiAgaWQhOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEBjcmVhdGVkQnkoKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgQGRlc2NyaXB0aW9uKFwiSWRlbnRpZmllciBvZiB0aGUgdXNlciB3aG8gcGVyZm9ybWVkIHRoZSBhY3Rpb24uXCIpXG4gIHVzZXJJZCE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgQHJlYWRvbmx5KClcbiAgQGluZGV4KFtPcmRlckRpcmVjdGlvbi5BU0MsIE9yZGVyRGlyZWN0aW9uLkRTQ10pXG4gIEBkZXNjcmlwdGlvbihcIkdyb3VwIG9yIHJvbGUgb2YgdGhlIHVzZXIgd2hvIHBlcmZvcm1lZCB0aGUgYWN0aW9uLlwiKVxuICB1c2VyR3JvdXAhOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIEByZWFkb25seSgpXG4gIEBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKVxuICBAZGVzY3JpcHRpb24oXCJtb2RlbC9lbnRpdHkgYWZmZWN0ZWQgYnkgdGhlIGFjdGlvblwiKVxuICBtb2RlbCE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgQHJlYWRvbmx5KClcbiAgQHRyYW5zYWN0aW9uSWQoKVxuICBAZGVzY3JpcHRpb24oXCJ0aGUgdHJhbnNhY3Rpb24gdGhlIGF1ZGl0IHJlY29yZCB3YXMgY3JlYXRlZCBpblwiKVxuICB0cmFuc2FjdGlvbiE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgQHJlYWRvbmx5KClcbiAgQHR5cGUoU3RyaW5nKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgQGRlc2NyaXB0aW9uKFwiVHlwZSBvZiBhY3Rpb24gcGVyZm9ybWVkIGJ5IHRoZSB1c2VyLlwiKVxuICBhY3Rpb24hOiBBdWRpdE9wZXJhdGlvbnM7XG5cbiAgQGNvbHVtbigpXG4gIEByZWFkb25seSgpXG4gIEByZXF1aXJlZCgpXG4gIEBzZXJpYWxpemUoKVxuICBAdHlwZShPYmplY3QpXG4gIEBkZXNjcmlwdGlvbihcInRoZSBkaWZmcyBmb3IgdGhlIGFjdGlvbi5cIilcbiAgZGlmZnMhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKG1vZGVsPzogTW9kZWxBcmc8QXVkaXQ+KSB7XG4gICAgc3VwZXIobW9kZWwpO1xuICB9XG59XG4iXX0=
|