@decaf-ts/for-fabric 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/lib/cjs/bin/cli.cjs +3 -2
  2. package/lib/cjs/bin/cli.cjs.map +1 -0
  3. package/lib/cjs/cli-module.cjs +26 -25
  4. package/lib/cjs/cli-module.cjs.map +1 -0
  5. package/lib/cjs/cli-utils.cjs +5 -5
  6. package/lib/cjs/cli-utils.cjs.map +1 -0
  7. package/lib/cjs/client/FabricClientAdapter.cjs +46 -40
  8. package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
  9. package/lib/cjs/client/FabricClientDispatch.cjs +8 -7
  10. package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
  11. package/lib/cjs/client/FabricClientPaginator.cjs +1 -0
  12. package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
  13. package/lib/cjs/client/FabricClientRepository.cjs +4 -3
  14. package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
  15. package/lib/cjs/client/FabricClientStatement.cjs +1 -0
  16. package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
  17. package/lib/cjs/client/collections/generation.cjs +3 -2
  18. package/lib/cjs/client/collections/generation.cjs.map +1 -0
  19. package/lib/cjs/client/collections/index.cjs +1 -0
  20. package/lib/cjs/client/collections/index.cjs.map +1 -0
  21. package/lib/cjs/client/constants.cjs +1 -0
  22. package/lib/cjs/client/constants.cjs.map +1 -0
  23. package/lib/cjs/client/crypto.cjs +12 -13
  24. package/lib/cjs/client/crypto.cjs.map +1 -0
  25. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +7 -6
  26. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
  27. package/lib/cjs/client/erc20/index.cjs +1 -0
  28. package/lib/cjs/client/erc20/index.cjs.map +1 -0
  29. package/lib/cjs/client/fabric-fs.cjs +1 -0
  30. package/lib/cjs/client/fabric-fs.cjs.map +1 -0
  31. package/lib/cjs/client/fabric-hsm.cjs +3 -2
  32. package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
  33. package/lib/cjs/client/ids/id-extraction.cjs +1 -0
  34. package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
  35. package/lib/cjs/client/ids/index.cjs +1 -0
  36. package/lib/cjs/client/ids/index.cjs.map +1 -0
  37. package/lib/cjs/client/index.cjs +10 -9
  38. package/lib/cjs/client/index.cjs.map +1 -0
  39. package/lib/cjs/client/indexes/generation.cjs +1 -0
  40. package/lib/cjs/client/indexes/generation.cjs.map +1 -0
  41. package/lib/cjs/client/indexes/index.cjs +1 -0
  42. package/lib/cjs/client/indexes/index.cjs.map +1 -0
  43. package/lib/cjs/client/logging.cjs +1 -0
  44. package/lib/cjs/client/logging.cjs.map +1 -0
  45. package/lib/cjs/client/services/FabricEnrollmentService.cjs +17 -32
  46. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
  47. package/lib/cjs/client/services/FabricIdentityService.cjs +15 -14
  48. package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
  49. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +11 -5
  50. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
  51. package/lib/cjs/client/services/constants.cjs +2 -9
  52. package/lib/cjs/client/services/constants.cjs.map +1 -0
  53. package/lib/cjs/client/services/index.cjs +1 -0
  54. package/lib/cjs/client/services/index.cjs.map +1 -0
  55. package/lib/cjs/client/types.cjs +1 -0
  56. package/lib/cjs/client/types.cjs.map +1 -0
  57. package/lib/cjs/client/utils.cjs +1 -0
  58. package/lib/cjs/client/utils.cjs.map +1 -0
  59. package/lib/cjs/contract/Address.cjs +14 -8
  60. package/lib/cjs/contract/Address.cjs.map +1 -0
  61. package/lib/cjs/contract/AddressContract.cjs +15 -9
  62. package/lib/cjs/contract/AddressContract.cjs.map +1 -0
  63. package/lib/cjs/contract/AuditContract.cjs +15 -9
  64. package/lib/cjs/contract/AuditContract.cjs.map +1 -0
  65. package/lib/cjs/contract/BatchContract.cjs +15 -9
  66. package/lib/cjs/contract/BatchContract.cjs.map +1 -0
  67. package/lib/cjs/contract/MarketContract.cjs +15 -9
  68. package/lib/cjs/contract/MarketContract.cjs.map +1 -0
  69. package/lib/cjs/contract/OtherAuditContract.cjs +15 -9
  70. package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
  71. package/lib/cjs/contract/OtherBatchContract.cjs +15 -9
  72. package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
  73. package/lib/cjs/contract/OtherMarketContract.cjs +15 -9
  74. package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
  75. package/lib/cjs/contract/OtherProductContract.cjs +15 -9
  76. package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
  77. package/lib/cjs/contract/OtherProductImageContract.cjs +15 -9
  78. package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
  79. package/lib/cjs/contract/OtherProductSharedContract.cjs +15 -9
  80. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
  81. package/lib/cjs/contract/OtherProductStrengthContract.cjs +15 -9
  82. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
  83. package/lib/cjs/contract/Product.cjs +15 -9
  84. package/lib/cjs/contract/Product.cjs.map +1 -0
  85. package/lib/cjs/contract/ProductContract.cjs +15 -9
  86. package/lib/cjs/contract/ProductContract.cjs.map +1 -0
  87. package/lib/cjs/contract/ProductStrengthContract.cjs +15 -9
  88. package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
  89. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +15 -9
  90. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
  91. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +15 -9
  92. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
  93. package/lib/cjs/contract/User.cjs +13 -7
  94. package/lib/cjs/contract/User.cjs.map +1 -0
  95. package/lib/cjs/contract/UserContract.cjs +15 -9
  96. package/lib/cjs/contract/UserContract.cjs.map +1 -0
  97. package/lib/cjs/contract/index.cjs +31 -30
  98. package/lib/cjs/contract/index.cjs.map +1 -0
  99. package/lib/cjs/contract/logging-context.cjs +1 -0
  100. package/lib/cjs/contract/logging-context.cjs.map +1 -0
  101. package/lib/cjs/contract/models/Audit.cjs +17 -11
  102. package/lib/cjs/contract/models/Audit.cjs.map +1 -0
  103. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +15 -9
  104. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
  105. package/lib/cjs/contract/models/BaseModel.cjs +13 -7
  106. package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
  107. package/lib/cjs/contract/models/Batch.cjs +24 -18
  108. package/lib/cjs/contract/models/Batch.cjs.map +1 -0
  109. package/lib/cjs/contract/models/GtinOwner.cjs +18 -12
  110. package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
  111. package/lib/cjs/contract/models/History.cjs +15 -9
  112. package/lib/cjs/contract/models/History.cjs.map +1 -0
  113. package/lib/cjs/contract/models/Leaflet.cjs +25 -19
  114. package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
  115. package/lib/cjs/contract/models/LeafletFile.cjs +19 -13
  116. package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
  117. package/lib/cjs/contract/models/Market.cjs +19 -13
  118. package/lib/cjs/contract/models/Market.cjs.map +1 -0
  119. package/lib/cjs/contract/models/OtherAudit.cjs +20 -14
  120. package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
  121. package/lib/cjs/contract/models/OtherBatchShared.cjs +27 -21
  122. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
  123. package/lib/cjs/contract/models/OtherLeaflet.cjs +27 -21
  124. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
  125. package/lib/cjs/contract/models/OtherLeafletFile.cjs +18 -12
  126. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
  127. package/lib/cjs/contract/models/OtherMarket.cjs +21 -15
  128. package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
  129. package/lib/cjs/contract/models/OtherProduct.cjs +24 -18
  130. package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
  131. package/lib/cjs/contract/models/OtherProductImage.cjs +22 -16
  132. package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
  133. package/lib/cjs/contract/models/OtherProductShared.cjs +32 -26
  134. package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
  135. package/lib/cjs/contract/models/OtherProductStrength.cjs +21 -15
  136. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
  137. package/lib/cjs/contract/models/Product.cjs +24 -18
  138. package/lib/cjs/contract/models/Product.cjs.map +1 -0
  139. package/lib/cjs/contract/models/ProductStrength.cjs +19 -13
  140. package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
  141. package/lib/cjs/contract/models/SegregatedDocument.cjs +23 -17
  142. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
  143. package/lib/cjs/contract/models/constants.cjs +3 -4
  144. package/lib/cjs/contract/models/constants.cjs.map +1 -0
  145. package/lib/cjs/contract/models/decorators-private.cjs +11 -10
  146. package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
  147. package/lib/cjs/contract/models/decorators.cjs +13 -12
  148. package/lib/cjs/contract/models/decorators.cjs.map +1 -0
  149. package/lib/cjs/contract/models/gtin.cjs +13 -7
  150. package/lib/cjs/contract/models/gtin.cjs.map +1 -0
  151. package/lib/cjs/contract/models/history-dec.cjs +11 -10
  152. package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
  153. package/lib/cjs/contracts/ContractAdapter.cjs +27 -26
  154. package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
  155. package/lib/cjs/contracts/ContractContext.cjs +1 -0
  156. package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
  157. package/lib/cjs/contracts/FabricContractDispatch.cjs +1 -0
  158. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
  159. package/lib/cjs/contracts/FabricContractPaginator.cjs +5 -4
  160. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
  161. package/lib/cjs/contracts/FabricContractRepository.cjs +8 -7
  162. package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
  163. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +3 -2
  164. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
  165. package/lib/cjs/contracts/FabricContractSequence.cjs +1 -0
  166. package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
  167. package/lib/cjs/contracts/FabricContractStatement.cjs +5 -4
  168. package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
  169. package/lib/cjs/contracts/MigrationContract.cjs +20 -14
  170. package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
  171. package/lib/cjs/contracts/PrivateSequence.cjs +11 -5
  172. package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
  173. package/lib/cjs/contracts/auth/decorators.cjs +3 -2
  174. package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
  175. package/lib/cjs/contracts/auth/index.cjs +1 -0
  176. package/lib/cjs/contracts/auth/index.cjs.map +1 -0
  177. package/lib/cjs/contracts/crud/crud-contract.cjs +12 -11
  178. package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
  179. package/lib/cjs/contracts/crud/index.cjs +1 -0
  180. package/lib/cjs/contracts/crud/index.cjs.map +1 -0
  181. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +13 -7
  182. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
  183. package/lib/cjs/contracts/erc20/erc20contract.cjs +53 -47
  184. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
  185. package/lib/cjs/contracts/erc20/index.cjs +3 -2
  186. package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
  187. package/lib/cjs/contracts/erc20/models.cjs +11 -5
  188. package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
  189. package/lib/cjs/contracts/index.cjs +1 -0
  190. package/lib/cjs/contracts/index.cjs.map +1 -0
  191. package/lib/cjs/contracts/logging.cjs +4 -3
  192. package/lib/cjs/contracts/logging.cjs.map +1 -0
  193. package/lib/cjs/contracts/overrides.cjs +3 -2
  194. package/lib/cjs/contracts/overrides.cjs.map +1 -0
  195. package/lib/cjs/contracts/types.cjs +1 -0
  196. package/lib/cjs/contracts/types.cjs.map +1 -0
  197. package/lib/cjs/contracts/uuid.cjs +1 -0
  198. package/lib/cjs/contracts/uuid.cjs.map +1 -0
  199. package/lib/cjs/index.cjs +6 -5
  200. package/lib/cjs/index.cjs.map +1 -0
  201. package/lib/cjs/shared/ClientSerializer.cjs +1 -0
  202. package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
  203. package/lib/cjs/shared/DeterministicSerializer.cjs +1 -0
  204. package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
  205. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +3 -2
  206. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
  207. package/lib/cjs/shared/constants.cjs +3 -18
  208. package/lib/cjs/shared/constants.cjs.map +1 -0
  209. package/lib/cjs/shared/decorators.cjs +14 -13
  210. package/lib/cjs/shared/decorators.cjs.map +1 -0
  211. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -9
  212. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
  213. package/lib/cjs/shared/erc20/index.cjs +1 -0
  214. package/lib/cjs/shared/erc20/index.cjs.map +1 -0
  215. package/lib/cjs/shared/errors.cjs +1 -0
  216. package/lib/cjs/shared/errors.cjs.map +1 -0
  217. package/lib/cjs/shared/events.cjs +1 -0
  218. package/lib/cjs/shared/events.cjs.map +1 -0
  219. package/lib/cjs/shared/fabric-types.cjs +1 -0
  220. package/lib/cjs/shared/fabric-types.cjs.map +1 -0
  221. package/lib/cjs/shared/index.cjs +1 -0
  222. package/lib/cjs/shared/index.cjs.map +1 -0
  223. package/lib/cjs/shared/interfaces/Checkable.cjs +1 -0
  224. package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
  225. package/lib/cjs/shared/interfaces/index.cjs +1 -0
  226. package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
  227. package/lib/cjs/shared/math.cjs +4 -3
  228. package/lib/cjs/shared/math.cjs.map +1 -0
  229. package/lib/cjs/shared/model/FabricBaseModel.cjs +13 -7
  230. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
  231. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +15 -9
  232. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
  233. package/lib/cjs/shared/model/Identity.cjs +16 -10
  234. package/lib/cjs/shared/model/Identity.cjs.map +1 -0
  235. package/lib/cjs/shared/model/IdentityCredentials.cjs +11 -5
  236. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
  237. package/lib/cjs/shared/model/index.cjs +1 -0
  238. package/lib/cjs/shared/model/index.cjs.map +1 -0
  239. package/lib/cjs/shared/overrides/Model.cjs +1 -0
  240. package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
  241. package/lib/cjs/shared/overrides/index.cjs +1 -0
  242. package/lib/cjs/shared/overrides/index.cjs.map +1 -0
  243. package/lib/cjs/shared/overrides/overrides.cjs +11 -10
  244. package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
  245. package/lib/cjs/shared/types.cjs +1 -0
  246. package/lib/cjs/shared/types.cjs.map +1 -0
  247. package/lib/cjs/version.cjs +2 -1
  248. package/lib/cjs/version.cjs.map +1 -0
  249. package/lib/esm/version.js +1 -1
  250. package/lib/types/bin/cli.d.cts +1 -0
  251. package/lib/types/bin/cli.d.mts +1 -0
  252. package/lib/types/cli-module.d.cts +3 -0
  253. package/lib/types/cli-module.d.mts +3 -0
  254. package/lib/types/cli-utils.d.cts +21 -0
  255. package/lib/types/cli-utils.d.mts +21 -0
  256. package/lib/types/client/FabricClientAdapter.d.cts +404 -0
  257. package/lib/types/client/FabricClientAdapter.d.mts +404 -0
  258. package/lib/types/client/FabricClientDispatch.d.cts +133 -0
  259. package/lib/types/client/FabricClientDispatch.d.mts +133 -0
  260. package/lib/types/client/FabricClientPaginator.d.cts +12 -0
  261. package/lib/types/client/FabricClientPaginator.d.mts +12 -0
  262. package/lib/types/client/FabricClientRepository.d.cts +71 -0
  263. package/lib/types/client/FabricClientRepository.d.mts +71 -0
  264. package/lib/types/client/FabricClientStatement.d.cts +64 -0
  265. package/lib/types/client/FabricClientStatement.d.mts +64 -0
  266. package/lib/types/client/collections/generation.d.cts +46 -0
  267. package/lib/types/client/collections/generation.d.mts +46 -0
  268. package/lib/types/client/collections/index.d.cts +1 -0
  269. package/lib/types/client/collections/index.d.mts +1 -0
  270. package/lib/types/client/constants.d.cts +2 -0
  271. package/lib/types/client/constants.d.mts +2 -0
  272. package/lib/types/client/crypto.d.cts +107 -0
  273. package/lib/types/client/crypto.d.mts +107 -0
  274. package/lib/types/client/erc20/FabricERC20ClientRepository.d.cts +254 -0
  275. package/lib/types/client/erc20/FabricERC20ClientRepository.d.mts +254 -0
  276. package/lib/types/client/erc20/index.d.cts +1 -0
  277. package/lib/types/client/erc20/index.d.mts +1 -0
  278. package/lib/types/client/fabric-fs.d.cts +92 -0
  279. package/lib/types/client/fabric-fs.d.mts +92 -0
  280. package/lib/types/client/fabric-hsm.d.cts +24 -0
  281. package/lib/types/client/fabric-hsm.d.mts +24 -0
  282. package/lib/types/client/ids/id-extraction.d.cts +4 -0
  283. package/lib/types/client/ids/id-extraction.d.mts +4 -0
  284. package/lib/types/client/ids/index.d.cts +1 -0
  285. package/lib/types/client/ids/index.d.mts +1 -0
  286. package/lib/types/client/index.d.cts +23 -0
  287. package/lib/types/client/index.d.mts +23 -0
  288. package/lib/types/client/indexes/generation.d.cts +10 -0
  289. package/lib/types/client/indexes/generation.d.mts +10 -0
  290. package/lib/types/client/indexes/index.d.cts +1 -0
  291. package/lib/types/client/indexes/index.d.mts +1 -0
  292. package/lib/types/client/logging.d.cts +60 -0
  293. package/lib/types/client/logging.d.mts +60 -0
  294. package/lib/types/client/services/FabricEnrollmentService.d.cts +176 -0
  295. package/lib/types/client/services/FabricEnrollmentService.d.mts +176 -0
  296. package/lib/types/client/services/FabricIdentityService.d.cts +98 -0
  297. package/lib/types/client/services/FabricIdentityService.d.mts +98 -0
  298. package/lib/types/client/services/RegistrationRequestBuilder.d.cts +19 -0
  299. package/lib/types/client/services/RegistrationRequestBuilder.d.mts +19 -0
  300. package/lib/types/client/services/constants.d.cts +15 -0
  301. package/lib/types/client/services/constants.d.mts +15 -0
  302. package/lib/types/client/services/index.d.cts +4 -0
  303. package/lib/types/client/services/index.d.mts +4 -0
  304. package/lib/types/client/types.d.cts +20 -0
  305. package/lib/types/client/types.d.mts +20 -0
  306. package/lib/types/client/utils.d.cts +71 -0
  307. package/lib/types/client/utils.d.mts +71 -0
  308. package/lib/types/contract/Address.d.cts +13 -0
  309. package/lib/types/contract/Address.d.mts +13 -0
  310. package/lib/types/contract/AddressContract.d.cts +5 -0
  311. package/lib/types/contract/AddressContract.d.mts +5 -0
  312. package/lib/types/contract/AuditContract.d.cts +5 -0
  313. package/lib/types/contract/AuditContract.d.mts +5 -0
  314. package/lib/types/contract/BatchContract.d.cts +5 -0
  315. package/lib/types/contract/BatchContract.d.mts +5 -0
  316. package/lib/types/contract/MarketContract.d.cts +5 -0
  317. package/lib/types/contract/MarketContract.d.mts +5 -0
  318. package/lib/types/contract/OtherAuditContract.d.cts +5 -0
  319. package/lib/types/contract/OtherAuditContract.d.mts +5 -0
  320. package/lib/types/contract/OtherBatchContract.d.cts +5 -0
  321. package/lib/types/contract/OtherBatchContract.d.mts +5 -0
  322. package/lib/types/contract/OtherMarketContract.d.cts +5 -0
  323. package/lib/types/contract/OtherMarketContract.d.mts +5 -0
  324. package/lib/types/contract/OtherProductContract.d.cts +5 -0
  325. package/lib/types/contract/OtherProductContract.d.mts +5 -0
  326. package/lib/types/contract/OtherProductImageContract.d.cts +5 -0
  327. package/lib/types/contract/OtherProductImageContract.d.mts +5 -0
  328. package/lib/types/contract/OtherProductSharedContract.d.cts +5 -0
  329. package/lib/types/contract/OtherProductSharedContract.d.mts +5 -0
  330. package/lib/types/contract/OtherProductStrengthContract.d.cts +5 -0
  331. package/lib/types/contract/OtherProductStrengthContract.d.mts +5 -0
  332. package/lib/types/contract/Product.d.cts +7 -0
  333. package/lib/types/contract/Product.d.mts +7 -0
  334. package/lib/types/contract/ProductContract.d.cts +5 -0
  335. package/lib/types/contract/ProductContract.d.mts +5 -0
  336. package/lib/types/contract/ProductStrengthContract.d.cts +5 -0
  337. package/lib/types/contract/ProductStrengthContract.d.mts +5 -0
  338. package/lib/types/contract/SegregatedPrivateDocumentContract.d.cts +5 -0
  339. package/lib/types/contract/SegregatedPrivateDocumentContract.d.mts +5 -0
  340. package/lib/types/contract/SegregatedSharedDocumentContract.d.cts +5 -0
  341. package/lib/types/contract/SegregatedSharedDocumentContract.d.mts +5 -0
  342. package/lib/types/contract/User.d.cts +7 -0
  343. package/lib/types/contract/User.d.mts +7 -0
  344. package/lib/types/contract/UserContract.d.cts +5 -0
  345. package/lib/types/contract/UserContract.d.mts +5 -0
  346. package/lib/types/contract/index.d.cts +2 -0
  347. package/lib/types/contract/index.d.mts +2 -0
  348. package/lib/types/contract/logging-context.d.cts +8 -0
  349. package/lib/types/contract/logging-context.d.mts +8 -0
  350. package/lib/types/contract/models/Audit.d.cts +13 -0
  351. package/lib/types/contract/models/Audit.d.mts +13 -0
  352. package/lib/types/contract/models/BaseIdentifiedModel.d.cts +7 -0
  353. package/lib/types/contract/models/BaseIdentifiedModel.d.mts +7 -0
  354. package/lib/types/contract/models/BaseModel.d.cts +7 -0
  355. package/lib/types/contract/models/BaseModel.d.mts +7 -0
  356. package/lib/types/contract/models/Batch.d.cts +18 -0
  357. package/lib/types/contract/models/Batch.d.mts +18 -0
  358. package/lib/types/contract/models/GtinOwner.d.cts +8 -0
  359. package/lib/types/contract/models/GtinOwner.d.mts +8 -0
  360. package/lib/types/contract/models/History.d.cts +9 -0
  361. package/lib/types/contract/models/History.d.mts +9 -0
  362. package/lib/types/contract/models/Leaflet.d.cts +12 -0
  363. package/lib/types/contract/models/Leaflet.d.mts +12 -0
  364. package/lib/types/contract/models/LeafletFile.d.cts +9 -0
  365. package/lib/types/contract/models/LeafletFile.d.mts +9 -0
  366. package/lib/types/contract/models/Market.d.cts +12 -0
  367. package/lib/types/contract/models/Market.d.mts +12 -0
  368. package/lib/types/contract/models/OtherAudit.d.cts +15 -0
  369. package/lib/types/contract/models/OtherAudit.d.mts +15 -0
  370. package/lib/types/contract/models/OtherBatchShared.d.cts +18 -0
  371. package/lib/types/contract/models/OtherBatchShared.d.mts +18 -0
  372. package/lib/types/contract/models/OtherLeaflet.d.cts +16 -0
  373. package/lib/types/contract/models/OtherLeaflet.d.mts +16 -0
  374. package/lib/types/contract/models/OtherLeafletFile.d.cts +10 -0
  375. package/lib/types/contract/models/OtherLeafletFile.d.mts +10 -0
  376. package/lib/types/contract/models/OtherMarket.d.cts +13 -0
  377. package/lib/types/contract/models/OtherMarket.d.mts +13 -0
  378. package/lib/types/contract/models/OtherProduct.d.cts +12 -0
  379. package/lib/types/contract/models/OtherProduct.d.mts +12 -0
  380. package/lib/types/contract/models/OtherProductImage.d.cts +9 -0
  381. package/lib/types/contract/models/OtherProductImage.d.mts +9 -0
  382. package/lib/types/contract/models/OtherProductShared.d.cts +18 -0
  383. package/lib/types/contract/models/OtherProductShared.d.mts +18 -0
  384. package/lib/types/contract/models/OtherProductStrength.d.cts +12 -0
  385. package/lib/types/contract/models/OtherProductStrength.d.mts +12 -0
  386. package/lib/types/contract/models/Product.d.cts +15 -0
  387. package/lib/types/contract/models/Product.d.mts +15 -0
  388. package/lib/types/contract/models/ProductStrength.d.cts +11 -0
  389. package/lib/types/contract/models/ProductStrength.d.mts +11 -0
  390. package/lib/types/contract/models/SegregatedDocument.d.cts +18 -0
  391. package/lib/types/contract/models/SegregatedDocument.d.mts +18 -0
  392. package/lib/types/contract/models/constants.d.cts +24 -0
  393. package/lib/types/contract/models/constants.d.mts +24 -0
  394. package/lib/types/contract/models/decorators-private.d.cts +16 -0
  395. package/lib/types/contract/models/decorators-private.d.mts +16 -0
  396. package/lib/types/contract/models/decorators.d.cts +28 -0
  397. package/lib/types/contract/models/decorators.d.mts +28 -0
  398. package/lib/types/contract/models/gtin.d.cts +8 -0
  399. package/lib/types/contract/models/gtin.d.mts +8 -0
  400. package/lib/types/contract/models/history-dec.d.cts +6 -0
  401. package/lib/types/contract/models/history-dec.d.mts +6 -0
  402. package/lib/types/contracts/ContractAdapter.d.cts +287 -0
  403. package/lib/types/contracts/ContractAdapter.d.mts +287 -0
  404. package/lib/types/contracts/ContractContext.d.cts +89 -0
  405. package/lib/types/contracts/ContractContext.d.mts +89 -0
  406. package/lib/types/contracts/FabricContractDispatch.d.cts +7 -0
  407. package/lib/types/contracts/FabricContractDispatch.d.mts +7 -0
  408. package/lib/types/contracts/FabricContractPaginator.d.cts +105 -0
  409. package/lib/types/contracts/FabricContractPaginator.d.mts +105 -0
  410. package/lib/types/contracts/FabricContractRepository.d.cts +119 -0
  411. package/lib/types/contracts/FabricContractRepository.d.mts +119 -0
  412. package/lib/types/contracts/FabricContractRepositoryObservableHandler.d.cts +62 -0
  413. package/lib/types/contracts/FabricContractRepositoryObservableHandler.d.mts +62 -0
  414. package/lib/types/contracts/FabricContractSequence.d.cts +87 -0
  415. package/lib/types/contracts/FabricContractSequence.d.mts +87 -0
  416. package/lib/types/contracts/FabricContractStatement.d.cts +36 -0
  417. package/lib/types/contracts/FabricContractStatement.d.mts +36 -0
  418. package/lib/types/contracts/MigrationContract.d.cts +22 -0
  419. package/lib/types/contracts/MigrationContract.d.mts +22 -0
  420. package/lib/types/contracts/PrivateSequence.d.cts +15 -0
  421. package/lib/types/contracts/PrivateSequence.d.mts +15 -0
  422. package/lib/types/contracts/auth/decorators.d.cts +6 -0
  423. package/lib/types/contracts/auth/decorators.d.mts +6 -0
  424. package/lib/types/contracts/auth/index.d.cts +1 -0
  425. package/lib/types/contracts/auth/index.d.mts +1 -0
  426. package/lib/types/contracts/crud/crud-contract.d.cts +199 -0
  427. package/lib/types/contracts/crud/crud-contract.d.mts +199 -0
  428. package/lib/types/contracts/crud/index.d.cts +2 -0
  429. package/lib/types/contracts/crud/index.d.mts +2 -0
  430. package/lib/types/contracts/crud/serialized-crud-contract.d.cts +42 -0
  431. package/lib/types/contracts/crud/serialized-crud-contract.d.mts +42 -0
  432. package/lib/types/contracts/erc20/erc20contract.d.cts +152 -0
  433. package/lib/types/contracts/erc20/erc20contract.d.mts +152 -0
  434. package/lib/types/contracts/erc20/index.d.cts +2 -0
  435. package/lib/types/contracts/erc20/index.d.mts +2 -0
  436. package/lib/types/contracts/erc20/models.d.cts +114 -0
  437. package/lib/types/contracts/erc20/models.d.mts +114 -0
  438. package/lib/types/contracts/index.d.cts +20 -0
  439. package/lib/types/contracts/index.d.mts +20 -0
  440. package/lib/types/contracts/logging.d.cts +54 -0
  441. package/lib/types/contracts/logging.d.mts +54 -0
  442. package/lib/types/contracts/overrides.d.cts +1 -0
  443. package/lib/types/contracts/overrides.d.mts +1 -0
  444. package/lib/types/contracts/types.d.cts +38 -0
  445. package/lib/types/contracts/types.d.mts +38 -0
  446. package/lib/types/contracts/uuid.d.cts +2 -0
  447. package/lib/types/contracts/uuid.d.mts +2 -0
  448. package/lib/types/index.d.cts +8 -0
  449. package/lib/types/index.d.mts +8 -0
  450. package/lib/types/shared/ClientSerializer.d.cts +52 -0
  451. package/lib/types/shared/ClientSerializer.d.mts +52 -0
  452. package/lib/types/shared/DeterministicSerializer.d.cts +47 -0
  453. package/lib/types/shared/DeterministicSerializer.d.mts +47 -0
  454. package/lib/types/shared/SimpleDeterministicSerializer.d.cts +7 -0
  455. package/lib/types/shared/SimpleDeterministicSerializer.d.mts +7 -0
  456. package/lib/types/shared/constants.d.cts +35 -0
  457. package/lib/types/shared/constants.d.mts +35 -0
  458. package/lib/types/shared/decorators.d.cts +81 -0
  459. package/lib/types/shared/decorators.d.mts +81 -0
  460. package/lib/types/shared/erc20/erc20-constants.d.cts +25 -0
  461. package/lib/types/shared/erc20/erc20-constants.d.mts +25 -0
  462. package/lib/types/shared/erc20/index.d.cts +1 -0
  463. package/lib/types/shared/erc20/index.d.mts +1 -0
  464. package/lib/types/shared/errors.d.cts +140 -0
  465. package/lib/types/shared/errors.d.mts +140 -0
  466. package/lib/types/shared/events.d.cts +37 -0
  467. package/lib/types/shared/events.d.mts +37 -0
  468. package/lib/types/shared/fabric-types.d.cts +32 -0
  469. package/lib/types/shared/fabric-types.d.mts +32 -0
  470. package/lib/types/shared/index.d.cts +21 -0
  471. package/lib/types/shared/index.d.mts +21 -0
  472. package/lib/types/shared/interfaces/Checkable.d.cts +23 -0
  473. package/lib/types/shared/interfaces/Checkable.d.mts +23 -0
  474. package/lib/types/shared/interfaces/index.d.cts +1 -0
  475. package/lib/types/shared/interfaces/index.d.mts +1 -0
  476. package/lib/types/shared/math.d.cts +34 -0
  477. package/lib/types/shared/math.d.mts +34 -0
  478. package/lib/types/shared/model/FabricBaseModel.d.cts +7 -0
  479. package/lib/types/shared/model/FabricBaseModel.d.mts +7 -0
  480. package/lib/types/shared/model/FabricIdentifiedBaseModel.d.cts +7 -0
  481. package/lib/types/shared/model/FabricIdentifiedBaseModel.d.mts +7 -0
  482. package/lib/types/shared/model/Identity.d.cts +42 -0
  483. package/lib/types/shared/model/Identity.d.mts +42 -0
  484. package/lib/types/shared/model/IdentityCredentials.d.cts +41 -0
  485. package/lib/types/shared/model/IdentityCredentials.d.mts +41 -0
  486. package/lib/types/shared/model/index.d.cts +4 -0
  487. package/lib/types/shared/model/index.d.mts +4 -0
  488. package/lib/types/shared/overrides/Model.d.cts +22 -0
  489. package/lib/types/shared/overrides/Model.d.mts +22 -0
  490. package/lib/types/shared/overrides/index.d.cts +2 -0
  491. package/lib/types/shared/overrides/index.d.mts +2 -0
  492. package/lib/types/shared/overrides/overrides.d.cts +1 -0
  493. package/lib/types/shared/overrides/overrides.d.mts +1 -0
  494. package/lib/types/shared/types.d.cts +125 -0
  495. package/lib/types/shared/types.d.mts +125 -0
  496. package/lib/types/version.d.cts +2 -0
  497. package/lib/types/version.d.mts +2 -0
  498. package/lib/types/version.d.ts +1 -1
  499. package/package.json +10 -10
  500. package/lib/cjs/bin/cli.js.map +0 -1
  501. package/lib/cjs/cli-module.js.map +0 -1
  502. package/lib/cjs/cli-utils.js.map +0 -1
  503. package/lib/cjs/client/FabricClientAdapter.js.map +0 -1
  504. package/lib/cjs/client/FabricClientDispatch.js.map +0 -1
  505. package/lib/cjs/client/FabricClientPaginator.js.map +0 -1
  506. package/lib/cjs/client/FabricClientRepository.js.map +0 -1
  507. package/lib/cjs/client/FabricClientStatement.js.map +0 -1
  508. package/lib/cjs/client/collections/generation.js.map +0 -1
  509. package/lib/cjs/client/collections/index.js.map +0 -1
  510. package/lib/cjs/client/constants.js.map +0 -1
  511. package/lib/cjs/client/crypto.js.map +0 -1
  512. package/lib/cjs/client/erc20/FabricERC20ClientRepository.js.map +0 -1
  513. package/lib/cjs/client/erc20/index.js.map +0 -1
  514. package/lib/cjs/client/fabric-fs.js.map +0 -1
  515. package/lib/cjs/client/fabric-hsm.js.map +0 -1
  516. package/lib/cjs/client/ids/id-extraction.js.map +0 -1
  517. package/lib/cjs/client/ids/index.js.map +0 -1
  518. package/lib/cjs/client/index.js.map +0 -1
  519. package/lib/cjs/client/indexes/generation.js.map +0 -1
  520. package/lib/cjs/client/indexes/index.js.map +0 -1
  521. package/lib/cjs/client/logging.js.map +0 -1
  522. package/lib/cjs/client/services/FabricEnrollmentService.js.map +0 -1
  523. package/lib/cjs/client/services/FabricIdentityService.js.map +0 -1
  524. package/lib/cjs/client/services/RegistrationRequestBuilder.js.map +0 -1
  525. package/lib/cjs/client/services/constants.js.map +0 -1
  526. package/lib/cjs/client/services/index.js.map +0 -1
  527. package/lib/cjs/client/types.js.map +0 -1
  528. package/lib/cjs/client/utils.js.map +0 -1
  529. package/lib/cjs/contract/Address.js.map +0 -1
  530. package/lib/cjs/contract/AddressContract.js.map +0 -1
  531. package/lib/cjs/contract/AuditContract.js.map +0 -1
  532. package/lib/cjs/contract/BatchContract.js.map +0 -1
  533. package/lib/cjs/contract/MarketContract.js.map +0 -1
  534. package/lib/cjs/contract/OtherAuditContract.js.map +0 -1
  535. package/lib/cjs/contract/OtherBatchContract.js.map +0 -1
  536. package/lib/cjs/contract/OtherMarketContract.js.map +0 -1
  537. package/lib/cjs/contract/OtherProductContract.js.map +0 -1
  538. package/lib/cjs/contract/OtherProductImageContract.js.map +0 -1
  539. package/lib/cjs/contract/OtherProductSharedContract.js.map +0 -1
  540. package/lib/cjs/contract/OtherProductStrengthContract.js.map +0 -1
  541. package/lib/cjs/contract/Product.js.map +0 -1
  542. package/lib/cjs/contract/ProductContract.js.map +0 -1
  543. package/lib/cjs/contract/ProductStrengthContract.js.map +0 -1
  544. package/lib/cjs/contract/SegregatedPrivateDocumentContract.js.map +0 -1
  545. package/lib/cjs/contract/SegregatedSharedDocumentContract.js.map +0 -1
  546. package/lib/cjs/contract/User.js.map +0 -1
  547. package/lib/cjs/contract/UserContract.js.map +0 -1
  548. package/lib/cjs/contract/index.js.map +0 -1
  549. package/lib/cjs/contract/logging-context.js.map +0 -1
  550. package/lib/cjs/contract/models/Audit.js.map +0 -1
  551. package/lib/cjs/contract/models/BaseIdentifiedModel.js.map +0 -1
  552. package/lib/cjs/contract/models/BaseModel.js.map +0 -1
  553. package/lib/cjs/contract/models/Batch.js.map +0 -1
  554. package/lib/cjs/contract/models/GtinOwner.js.map +0 -1
  555. package/lib/cjs/contract/models/History.js.map +0 -1
  556. package/lib/cjs/contract/models/Leaflet.js.map +0 -1
  557. package/lib/cjs/contract/models/LeafletFile.js.map +0 -1
  558. package/lib/cjs/contract/models/Market.js.map +0 -1
  559. package/lib/cjs/contract/models/OtherAudit.js.map +0 -1
  560. package/lib/cjs/contract/models/OtherBatchShared.js.map +0 -1
  561. package/lib/cjs/contract/models/OtherLeaflet.js.map +0 -1
  562. package/lib/cjs/contract/models/OtherLeafletFile.js.map +0 -1
  563. package/lib/cjs/contract/models/OtherMarket.js.map +0 -1
  564. package/lib/cjs/contract/models/OtherProduct.js.map +0 -1
  565. package/lib/cjs/contract/models/OtherProductImage.js.map +0 -1
  566. package/lib/cjs/contract/models/OtherProductShared.js.map +0 -1
  567. package/lib/cjs/contract/models/OtherProductStrength.js.map +0 -1
  568. package/lib/cjs/contract/models/Product.js.map +0 -1
  569. package/lib/cjs/contract/models/ProductStrength.js.map +0 -1
  570. package/lib/cjs/contract/models/SegregatedDocument.js.map +0 -1
  571. package/lib/cjs/contract/models/constants.js.map +0 -1
  572. package/lib/cjs/contract/models/decorators-private.js.map +0 -1
  573. package/lib/cjs/contract/models/decorators.js.map +0 -1
  574. package/lib/cjs/contract/models/gtin.js.map +0 -1
  575. package/lib/cjs/contract/models/history-dec.js.map +0 -1
  576. package/lib/cjs/contracts/ContractAdapter.js.map +0 -1
  577. package/lib/cjs/contracts/ContractContext.js.map +0 -1
  578. package/lib/cjs/contracts/FabricContractDispatch.js.map +0 -1
  579. package/lib/cjs/contracts/FabricContractPaginator.js.map +0 -1
  580. package/lib/cjs/contracts/FabricContractRepository.js.map +0 -1
  581. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
  582. package/lib/cjs/contracts/FabricContractSequence.js.map +0 -1
  583. package/lib/cjs/contracts/FabricContractStatement.js.map +0 -1
  584. package/lib/cjs/contracts/MigrationContract.js.map +0 -1
  585. package/lib/cjs/contracts/PrivateSequence.js.map +0 -1
  586. package/lib/cjs/contracts/auth/decorators.js.map +0 -1
  587. package/lib/cjs/contracts/auth/index.js.map +0 -1
  588. package/lib/cjs/contracts/crud/crud-contract.js.map +0 -1
  589. package/lib/cjs/contracts/crud/index.js.map +0 -1
  590. package/lib/cjs/contracts/crud/serialized-crud-contract.js.map +0 -1
  591. package/lib/cjs/contracts/erc20/erc20contract.js.map +0 -1
  592. package/lib/cjs/contracts/erc20/index.js.map +0 -1
  593. package/lib/cjs/contracts/erc20/models.js.map +0 -1
  594. package/lib/cjs/contracts/index.js.map +0 -1
  595. package/lib/cjs/contracts/logging.js.map +0 -1
  596. package/lib/cjs/contracts/overrides.js.map +0 -1
  597. package/lib/cjs/contracts/types.js.map +0 -1
  598. package/lib/cjs/contracts/uuid.js.map +0 -1
  599. package/lib/cjs/index.js.map +0 -1
  600. package/lib/cjs/shared/ClientSerializer.js.map +0 -1
  601. package/lib/cjs/shared/DeterministicSerializer.js.map +0 -1
  602. package/lib/cjs/shared/SimpleDeterministicSerializer.js.map +0 -1
  603. package/lib/cjs/shared/constants.js.map +0 -1
  604. package/lib/cjs/shared/decorators.js.map +0 -1
  605. package/lib/cjs/shared/erc20/erc20-constants.js.map +0 -1
  606. package/lib/cjs/shared/erc20/index.js.map +0 -1
  607. package/lib/cjs/shared/errors.js.map +0 -1
  608. package/lib/cjs/shared/events.js.map +0 -1
  609. package/lib/cjs/shared/fabric-types.js.map +0 -1
  610. package/lib/cjs/shared/index.js.map +0 -1
  611. package/lib/cjs/shared/interfaces/Checkable.js.map +0 -1
  612. package/lib/cjs/shared/interfaces/index.js.map +0 -1
  613. package/lib/cjs/shared/math.js.map +0 -1
  614. package/lib/cjs/shared/model/FabricBaseModel.js.map +0 -1
  615. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
  616. package/lib/cjs/shared/model/Identity.js.map +0 -1
  617. package/lib/cjs/shared/model/IdentityCredentials.js.map +0 -1
  618. package/lib/cjs/shared/model/index.js.map +0 -1
  619. package/lib/cjs/shared/overrides/Model.js.map +0 -1
  620. package/lib/cjs/shared/overrides/index.js.map +0 -1
  621. package/lib/cjs/shared/overrides/overrides.js.map +0 -1
  622. package/lib/cjs/shared/types.js.map +0 -1
  623. package/lib/cjs/version.js.map +0 -1
@@ -0,0 +1,404 @@
1
+ import "../shared/overrides";
2
+ import { type MangoQuery, type ViewResponse } from "@decaf-ts/for-couchdb";
3
+ import { Client } from "@grpc/grpc-js";
4
+ import { Model, type ModelConstructor, type Serializer } from "@decaf-ts/decorator-validation";
5
+ import { type PeerConfig, type SegregatedModel } from "../shared/types.js";
6
+ import { Gateway, Network, Contract as Contrakt, GatewayError } from "@hyperledger/fabric-gateway";
7
+ import { BaseError, OperationKeys, type PrimaryKeyType } from "@decaf-ts/db-decorators";
8
+ import { Context, Adapter, type AdapterFlags, Repository, Statement, type PreparedStatement, Paginator, MaybeContextualArg, ContextualArgs, type PreparedModel, AllOperationKeys } from "@decaf-ts/core";
9
+ import { FabricClientDispatch } from "./FabricClientDispatch.js";
10
+ import { type Constructor } from "@decaf-ts/decoration";
11
+ import { FabricClientFlags } from "./types.js";
12
+ /**
13
+ * @description Adapter for interacting with Hyperledger Fabric networks
14
+ * @summary The FabricAdapter extends CouchDBAdapter to provide a seamless interface for interacting with Hyperledger Fabric networks.
15
+ * It handles connection management, transaction submission, and CRUD operations against Fabric chaincode.
16
+ * @template PeerConfig - Configuration type for connecting to a Fabric peer
17
+ * @template FabricFlags - Flags specific to Fabric operations
18
+ * @template Context<FabricFlags> - Context type containing Fabric-specific flags
19
+ * @param config - Configuration for connecting to a Fabric peer
20
+ * @param alias - Optional alias for the adapter instance
21
+ * @class FabricClientAdapter
22
+ * @example
23
+ * ```typescript
24
+ * // Create a new FabricAdapter instance
25
+ * const config: PeerConfig = {
26
+ * mspId: 'Org1MSP',
27
+ * peerEndpoint: 'localhost:7051',
28
+ * channelName: 'mychannel',
29
+ * chaincodeName: 'mycc',
30
+ * contractName: 'mycontract',
31
+ * tlsCertPath: '/path/to/tls/cert',
32
+ * certDirectoryPath: '/path/to/cert/dir',
33
+ * keyDirectoryPath: '/path/to/key/dir'
34
+ * };
35
+ *
36
+ * const adapter = new FabricAdapter(config, 'org1-adapter');
37
+ *
38
+ * // Use the adapter to interact with the Fabric network
39
+ * const result = await adapter.read('users', 'user1', mySerializer);
40
+ * ```
41
+ * @mermaid
42
+ * sequenceDiagram
43
+ * participant Client
44
+ * participant FabricAdapter
45
+ * participant Gateway
46
+ * participant Network
47
+ * participant Contract
48
+ * participant Chaincode
49
+ *
50
+ * Client->>FabricAdapter: create(tableName, id, model, transient, serializer)
51
+ * FabricAdapter->>FabricAdapter: submitTransaction(OperationKeys.CREATE, [serializedModel], transient)
52
+ * FabricAdapter->>Gateway: connect()
53
+ * Gateway->>Network: getNetwork(channelName)
54
+ * Network->>Contract: getContract(chaincodeName, contractName)
55
+ * FabricAdapter->>Contract: submit(api, proposalOptions)
56
+ * Contract->>Chaincode: invoke
57
+ * Chaincode-->>Contract: response
58
+ * Contract-->>FabricAdapter: result
59
+ * FabricAdapter->>FabricAdapter: decode(result)
60
+ * FabricAdapter->>FabricAdapter: serializer.deserialize(decodedResult)
61
+ * FabricAdapter-->>Client: deserializedResult
62
+ */
63
+ export declare class FabricClientAdapter extends Adapter<PeerConfig, Client, MangoQuery, Context<FabricClientFlags>> {
64
+ /**
65
+ * @description Static text decoder for converting Uint8Array to string
66
+ */
67
+ private static decoder;
68
+ private static serializer;
69
+ protected static log: import("@decaf-ts/logging").Logger;
70
+ protected readonly serializer: Serializer<any>;
71
+ /**
72
+ * @description Creates a new FabricAdapter instance
73
+ * @summary Initializes a new adapter for interacting with a Hyperledger Fabric network
74
+ * @param {PeerConfig} config - Configuration for connecting to a Fabric peer
75
+ * @param {string} [alias] - Optional alias for the adapter instance
76
+ */
77
+ constructor(config: PeerConfig, alias?: string);
78
+ Statement<M extends Model>(overrides?: Partial<AdapterFlags>): Statement<M, FabricClientAdapter, any, MangoQuery>;
79
+ Paginator<M extends Model>(query: PreparedStatement<any> | MangoQuery, size: number, clazz: Constructor<M>): Paginator<M, any, MangoQuery>;
80
+ protected flags<M extends Model>(operation: OperationKeys | string, model: Constructor<M> | Constructor<M>[] | undefined, flags: Partial<FabricClientFlags>, ...args: any[]): Promise<FabricClientFlags>;
81
+ context<M extends Model>(operation: ((...args: any[]) => any) | AllOperationKeys, overrides: Partial<FabricClientFlags>, model: Constructor<M> | Constructor<M>[], ...args: MaybeContextualArg<Context<any>>): Promise<Context<FabricClientFlags>>;
82
+ /**
83
+ * @description Decodes a Uint8Array to a string
84
+ * @summary Converts binary data received from Fabric to a string using UTF-8 encoding
85
+ * @param {Uint8Array} data - The binary data to decode
86
+ * @return {string} The decoded string
87
+ */
88
+ decode(data: Uint8Array): string;
89
+ repository<R extends Repository<any, Adapter<PeerConfig, Client, MangoQuery, Context<FabricClientFlags>>>>(): Constructor<R>;
90
+ protected createPrefix<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ...args: MaybeContextualArg<Context<FabricClientFlags>>): [Constructor<M>, PrimaryKeyType, Record<string, any>, ...any[], Context];
91
+ /**
92
+ * @description Prepares multiple records for creation
93
+ * @summary Adds necessary CouchDB fields to multiple records before creation
94
+ * @param {string} tableName - The name of the table
95
+ * @param {string[]|number[]} ids - The IDs of the records
96
+ * @param models - The models to prepare
97
+ * @return A tuple containing the tableName, ids, and prepared records
98
+ * @throws {InternalError} If ids and models arrays have different lengths
99
+ */
100
+ protected createAllPrefix<M extends Model>(clazz: Constructor<M>, ids: string[] | number[], models: Record<string, any>[], ...args: MaybeContextualArg<Context<FabricClientFlags>>): any[];
101
+ protected updateAllPrefix<M extends Model>(clazz: Constructor<M>, ids: PrimaryKeyType[], models: Record<string, any>[], ...args: MaybeContextualArg<Context<FabricClientFlags>>): any[];
102
+ /**
103
+ * @description Creates multiple records in a single transaction
104
+ * @summary Submits a transaction to create multiple records in the Fabric ledger
105
+ * @param {string} tableName - The name of the table/collection
106
+ * @param {string[] | number[]} ids - Array of record identifiers
107
+ * @param {Array<Record<string, any>>} models - Array of record data
108
+ * @param {Record<string, any>} transient - Transient data for the transaction
109
+ * @return {Promise<Array<Record<string, any>>>} Promise resolving to the created records
110
+ */
111
+ createAll<M extends Model>(clazz: Constructor<M>, ids: PrimaryKeyType[], models: Record<string, any>[], ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<Record<string, any>[]>;
112
+ /**
113
+ * @description Reads multiple records in a single transaction
114
+ * @summary Submits a transaction to read multiple records from the Fabric ledger
115
+ * @param {string} tableName - The name of the table/collection
116
+ * @param {string[] | number[]} ids - Array of record identifiers to read
117
+ * @return {Promise<Array<Record<string, any>>>} Promise resolving to the retrieved records
118
+ */
119
+ readAll<M extends Model>(clazz: Constructor<M>, ids: PrimaryKeyType[], ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<Record<string, any>[]>;
120
+ /**
121
+ * @description Updates multiple records in a single transaction
122
+ * @summary Submits a transaction to update multiple records in the Fabric ledger
123
+ * @param {string} tableName - The name of the table/collection
124
+ * @param {string[] | number[]} ids - Array of record identifiers
125
+ * @param {Array<Record<string, any>>} models - Array of updated record data
126
+ * @param {Record<string, any>} transient - Transient data for the transaction
127
+ * @return {Promise<Array<Record<string, any>>>} Promise resolving to the updated records
128
+ */
129
+ updateAll<M extends Model>(clazz: Constructor<M>, ids: PrimaryKeyType[], models: Record<string, any>[], ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<Record<string, any>[]>;
130
+ /**
131
+ * @description Deletes multiple records in a single transaction
132
+ * @summary Submits a transaction to delete multiple records from the Fabric ledger
133
+ * @param {string} tableName - The name of the table/collection
134
+ * @param {Array<string | number | bigint>} ids - Array of record identifiers to delete
135
+ * @param {Serializer<any>} serializer - Serializer for the model data
136
+ * @return {Promise<Array<Record<string, any>>>} Promise resolving to the deleted records
137
+ */
138
+ deleteAll<M extends Model>(clazz: Constructor<M>, ids: PrimaryKeyType[], ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<Record<string, any>[]>;
139
+ /**
140
+ * @description Prepares a model for persistence
141
+ * @summary Converts a model instance into a format suitable for database storage,
142
+ * handling column mapping and separating transient properties
143
+ * @template M - The model type
144
+ * @param {M} model - The model instance to prepare
145
+ * @param pk - The primary key property name
146
+ * @return The prepared data
147
+ */
148
+ prepare<M extends Model>(model: M, ...args: ContextualArgs<Context<FabricClientFlags>>): SegregatedModel<M> & PreparedModel;
149
+ revert<M extends Model>(obj: Record<string, any>, clazz: Constructor<M>, id: PrimaryKeyType, transient?: Record<string, any>, ...args: ContextualArgs<Context<FabricClientFlags>>): M;
150
+ private shouldRebuildWithTransient;
151
+ private resolveOperation;
152
+ private shouldRefreshAfterWrite;
153
+ private getEndorsingOrganizations;
154
+ private shouldForceGatewayHydration;
155
+ /**
156
+ * @description Creates a single record
157
+ * @summary Submits a transaction to create a record in the Fabric ledger
158
+ * @param {string} tableName - The name of the table/collection
159
+ * @param {string | number} id - The record identifier
160
+ * @param {Record<string, any>} model - The record data
161
+ * @param {Record<string, any>} transient - Transient data for the transaction
162
+ * @return {Promise<Record<string, any>>} Promise resolving to the created record
163
+ */
164
+ create<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, transient?: Record<string, any>, ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<Record<string, any>>;
165
+ healthcheck<M extends Model>(clazz: Constructor<M>, ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<Record<string, any>>;
166
+ /**
167
+ * @description Reads a single record
168
+ * @summary Evaluates a transaction to read a record from the Fabric ledger
169
+ * @param {string} tableName - The name of the table/collection
170
+ * @param {string | number} id - The record identifier
171
+ * @return {Promise<Record<string, any>>} Promise resolving to the retrieved record
172
+ */
173
+ read<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<Record<string, any>>;
174
+ updatePrefix<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ...args: MaybeContextualArg<Context<FabricClientFlags>>): any[];
175
+ /**
176
+ * @description Updates a single record
177
+ * @summary Submits a transaction to update a record in the Fabric ledger
178
+ * @param {string} tableName - The name of the table/collection
179
+ * @param {string | number} id - The record identifier
180
+ * @param {Record<string, any>} model - The updated record data
181
+ * @param {Record<string, any>} transient - Transient data for the transaction
182
+ * @return {Promise<Record<string, any>>} Promise resolving to the updated record
183
+ */
184
+ update<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, transient?: Record<string, any>, ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<Record<string, any>>;
185
+ /**
186
+ * @description Deletes a single record
187
+ * @summary Submits a transaction to delete a record from the Fabric ledger
188
+ * @param {string} tableName - The name of the table/collection
189
+ * @param {string | number} id - The record identifier to delete
190
+ * @return {Promise<Record<string, any>>} Promise resolving to the deleted record
191
+ */
192
+ delete<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<Record<string, any>>;
193
+ /**
194
+ * @description Executes a raw query against the Fabric ledger
195
+ * @summary Evaluates a transaction to perform a query using Mango Query syntax
196
+ * @template V - The return type
197
+ * @param {MangoQuery} rawInput - The Mango Query to execute
198
+ * @param {boolean} process - Whether to process the result
199
+ * @return {Promise<V>} Promise resolving to the query result
200
+ * @mermaid
201
+ * sequenceDiagram
202
+ * participant Client
203
+ * participant FabricAdapter
204
+ * participant Contract
205
+ * participant Chaincode
206
+ *
207
+ * Client->>FabricAdapter: raw(rawInput, process)
208
+ * FabricAdapter->>FabricAdapter: JSON.stringify(rawInput)
209
+ * FabricAdapter->>FabricAdapter: evaluateTransaction("query", [input])
210
+ * FabricAdapter->>Contract: evaluate("query", proposalOptions)
211
+ * Contract->>Chaincode: invoke
212
+ * Chaincode-->>Contract: response
213
+ * Contract-->>FabricAdapter: result
214
+ * FabricAdapter->>FabricAdapter: JSON.parse(decode(result))
215
+ * FabricAdapter->>FabricAdapter: Process result based on type
216
+ * FabricAdapter-->>Client: processed result
217
+ */
218
+ raw<V, D extends boolean>(rawInput: MangoQuery, docsOnly: D | undefined, clazz: ModelConstructor<any>, ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<V>;
219
+ /**
220
+ * @description Executes a CouchDB view query against the Fabric chaincode
221
+ * @summary Evaluates a transaction to query a design document view
222
+ * @template R - The view response type
223
+ * @param {string} ddoc - Design document name
224
+ * @param {string} viewName - View name
225
+ * @param {Record<string, any>} options - View query options
226
+ * @param {...ContextualArgs<Context<FabricClientFlags>>} args - Optional contextual arguments
227
+ * @return {Promise<ViewResponse<R>>} The view response
228
+ */
229
+ view<R>(ddoc: string, viewName: string, options: Record<string, any>, ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<ViewResponse<R>>;
230
+ /**
231
+ * @description Gets or creates a gRPC client for the Fabric peer
232
+ * @summary Returns a cached client or creates a new one if none exists
233
+ * @return {Promise<Client>} Promise resolving to the gRPC client
234
+ */
235
+ getClient(): Client;
236
+ /**
237
+ * @description Gets a Gateway instance for the Fabric network
238
+ * @summary Creates a new Gateway instance using the current client
239
+ * @return {Promise<Gateway>} Promise resolving to the Gateway instance
240
+ */
241
+ protected Gateway(ctx: Context<FabricClientFlags>): Promise<Gateway>;
242
+ private getContractName;
243
+ /**
244
+ * @description Gets a Contract instance for the Fabric chaincode
245
+ * @summary Creates a new Contract instance using the current Gateway
246
+ * @return {Promise<Contrakt>} Promise resolving to the Contract instance
247
+ */
248
+ protected Contract(ctx: Context<FabricClientFlags>, contractName?: string): Promise<Contrakt>;
249
+ /**
250
+ * @description Executes a transaction on the Fabric network
251
+ * @summary Submits or evaluates a transaction on the Fabric chaincode
252
+ * @param {string} api - The chaincode function to call
253
+ * @param {boolean} submit - Whether to submit (true) or evaluate (false) the transaction
254
+ * @param {any[]} [args] - Arguments to pass to the chaincode function
255
+ * @param {Record<string, string>} [transientData] - Transient data for the transaction
256
+ * @param {Array<string>} [endorsingOrganizations] - Organizations that must endorse the transaction
257
+ * @return {Promise<Uint8Array>} Promise resolving to the transaction result
258
+ * @mermaid
259
+ * sequenceDiagram
260
+ * participant FabricAdapter
261
+ * participant Gateway
262
+ * participant Contract
263
+ * participant Chaincode
264
+ *
265
+ * FabricAdapter->>Gateway: connect()
266
+ * FabricAdapter->>Contract: getContract()
267
+ * alt submit transaction
268
+ * FabricAdapter->>Contract: submit(api, proposalOptions)
269
+ * else evaluate transaction
270
+ * FabricAdapter->>Contract: evaluate(api, proposalOptions)
271
+ * end
272
+ * Contract->>Chaincode: invoke
273
+ * Chaincode-->>Contract: response
274
+ * Contract-->>FabricAdapter: result
275
+ * FabricAdapter->>Gateway: close()
276
+ */
277
+ protected transaction(ctx: Context<FabricClientFlags>, api: string, submit?: boolean, args?: any[], transientData?: Record<string, string>, endorsingOrganizations?: string[], className?: string): Promise<Uint8Array>;
278
+ private shouldUseLegacyGateway;
279
+ private prepareLegacyArgs;
280
+ private buildLegacyTransient;
281
+ private resolveLegacyMspCount;
282
+ private pickLegacyCandidates;
283
+ private buildLegacyPeerConfigs;
284
+ private submitLegacyWithExplicitEndorsers;
285
+ private normalizeLegacyPeers;
286
+ private resolveLegacyIdentityMaterial;
287
+ private buildLegacyConnectionProfile;
288
+ private shouldTreatPeersAsLocalhost;
289
+ private isLocalEndpoint;
290
+ private extractHost;
291
+ private ensureGrpcUrl;
292
+ private readPemInput;
293
+ /**
294
+ * @description Parses an error into a BaseError
295
+ * @summary Converts any error into a standardized BaseError
296
+ * @param {Error | string} err - The error to parse
297
+ * @param {string} [reason] - Optional reason for the error
298
+ * @return {BaseError} The parsed error
299
+ */
300
+ parseError<E extends BaseError>(err: Error | string): E;
301
+ /**
302
+ * @description Submits a transaction to the Fabric network
303
+ * @summary Executes a transaction that modifies the ledger state
304
+ * @param {string} api - The chaincode function to call
305
+ * @param {any[]} [args] - Arguments to pass to the chaincode function
306
+ * @param {Record<string, string>} [transientData] - Transient data for the transaction
307
+ * @param {Array<string>} [endorsingOrganizations] - Organizations that must endorse the transaction
308
+ * @return {Promise<Uint8Array>} Promise resolving to the transaction result
309
+ */
310
+ submitTransaction(ctx: Context<FabricClientFlags>, api: string, args?: any[], transientData?: Record<string, string>, endorsingOrganizations?: Array<string>, className?: string): Promise<Uint8Array>;
311
+ /**
312
+ * @description Evaluates a transaction on the Fabric network
313
+ * @summary Executes a transaction that does not modify the ledger state
314
+ * @param {string} api - The chaincode function to call
315
+ * @param {any[]} [args] - Arguments to pass to the chaincode function
316
+ * @param {Record<string, string>} [transientData] - Transient data for the transaction
317
+ * @param {Array<string>} [endorsingOrganizations] - Organizations that must endorse the transaction
318
+ * @return {Promise<Uint8Array>} Promise resolving to the transaction result
319
+ */
320
+ evaluateTransaction(ctx: Context<FabricClientFlags>, api: string, args?: any[], transientData?: Record<string, string>, endorsingOrganizations?: Array<string>, className?: string): Promise<Uint8Array>;
321
+ migrate(reference: string, ...args: MaybeContextualArg<Context<FabricClientFlags>>): Promise<Uint8Array>;
322
+ /**
323
+ * @description Shuts down the connection to the Fabric network
324
+ * @summary Closes the active dispatch (which in turn closes any gateway
325
+ * event subscription) via the base class, then closes the gRPC client.
326
+ * Works correctly regardless of whether `syntheticEvents` is enabled.
327
+ * @return {Promise<void>} Promise that resolves when all connections are closed
328
+ */
329
+ shutdown(...args: MaybeContextualArg<Context<FabricClientFlags>>): Promise<void>;
330
+ /**
331
+ * @description Gets a Contract instance from a Gateway
332
+ * @summary Retrieves a chaincode contract from the specified network
333
+ * @param {Gateway} gateway - The Gateway instance
334
+ * @param {PeerConfig} config - The peer configuration
335
+ * @return {Contrakt} The Contract instance
336
+ */
337
+ static getContract(gateway: Gateway, config: PeerConfig, contractName?: string): Contrakt;
338
+ /**
339
+ * @description Gets a Network instance from a Gateway
340
+ * @summary Connects to a specific channel on the Fabric network
341
+ * @param {Gateway} gateway - The Gateway instance
342
+ * @param {string} channelName - The name of the channel to connect to
343
+ * @return {Network} The Network instance
344
+ */
345
+ static getNetwork(gateway: Gateway, channelName: string): Network;
346
+ /**
347
+ * @description Gets a Gateway instance for connecting to the Fabric network
348
+ * @summary Creates a Gateway using the provided configuration and client
349
+ * @param {PeerConfig} config - The peer configuration
350
+ * @param {Client} [client] - Optional gRPC client, will be created if not provided
351
+ * @return {Promise<Gateway>} Promise resolving to the Gateway instance
352
+ */
353
+ static getGateway(ctx: Context<FabricClientFlags>, config: PeerConfig, client?: Client): Promise<Gateway>;
354
+ /**
355
+ * @description Creates a gRPC client for connecting to a Fabric peer
356
+ * @summary Initializes a client with TLS credentials for secure communication
357
+ * @param {PeerConfig} config - The peer configuration
358
+ * @return {Client} Promise resolving to the gRPC client
359
+ */
360
+ static getClient(config: PeerConfig): Client;
361
+ /**
362
+ * @description Establishes a connection to the Fabric network
363
+ * @summary Creates a Gateway connection with identity and signer
364
+ * @param {Client} client - The gRPC client
365
+ * @param {PeerConfig} config - The peer configuration
366
+ * @return {Promise<Gateway>} Promise resolving to the connected Gateway
367
+ * @mermaid
368
+ * sequenceDiagram
369
+ * participant Caller
370
+ * participant FabricAdapter
371
+ * participant Identity
372
+ * participant Signer
373
+ * participant Gateway
374
+ *
375
+ * Caller->>FabricAdapter: getConnection(client, config)
376
+ * FabricAdapter->>Identity: getIdentity(mspId, certDirectoryPath)
377
+ * Identity-->>FabricAdapter: identity
378
+ * FabricAdapter->>Signer: getSigner(keyDirectoryPath)
379
+ * Signer-->>FabricAdapter: signer
380
+ * FabricAdapter->>FabricAdapter: Create ConnectOptions
381
+ * FabricAdapter->>Gateway: connect(options)
382
+ * Gateway-->>FabricAdapter: gateway
383
+ * FabricAdapter-->>Caller: gateway
384
+ */
385
+ static getConnection(client: Client, config: PeerConfig, ctx: Context<FabricClientFlags>): Promise<Gateway>;
386
+ /**
387
+ * @description Creates a new Dispatch instance for the Fabric client.
388
+ * @summary This function is responsible for creating a new FabricClientDispatch instance that can be used to interact with the Fabric network.
389
+ * @returns {Dispatch} A new Dispatch instance configured for the Fabric client.
390
+ * @remarks The Dispatch instance is used to encapsulate the logic for interacting with the Fabric network, such as submitting transactions or querying data.
391
+ * @example
392
+ * const fabricDispatch = fabricClientAdapter.Dispatch();
393
+ * fabricDispatch.submitTransaction('createProduct', { name: 'Product A', price: 100 });
394
+ */
395
+ Dispatch(): FabricClientDispatch;
396
+ /**
397
+ * @description Parses an error into a BaseError
398
+ * @summary Converts any error into a standardized BaseError using the parent class implementation
399
+ * @param {Error | string} err - The error to parse
400
+ * @param {string} [reason] - Optional reason for the error
401
+ * @return {BaseError} The parsed error
402
+ */
403
+ protected static parseError<E extends BaseError>(err: Error | string | GatewayError): E;
404
+ }
@@ -0,0 +1,133 @@
1
+ import { Adapter, ContextualArgs, Dispatch, EventIds, Context } from "@decaf-ts/core";
2
+ import { Client } from "@grpc/grpc-js";
3
+ import { FabricClientAdapter } from "./FabricClientAdapter.cjs";
4
+ import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
5
+ import { Constructor } from "@decaf-ts/decoration";
6
+ import { FabricClientFlags } from "./types.cjs";
7
+ /**
8
+ * @description Event dispatcher for Hyperledger Fabric chaincode events
9
+ * @summary Listens for and processes events emitted by Fabric chaincode, dispatching them to registered observers
10
+ * @template PeerConfig - Configuration type for connecting to a Fabric peer
11
+ * @param client - gRPC client for connecting to the Fabric network
12
+ * @class FabricClientDispatch
13
+ * @example
14
+ * ```typescript
15
+ * // Create a new FabricDispatch instance
16
+ * const client = await FabricAdapter.getClient(peerConfig);
17
+ * const dispatch = new FabricDispatch(client);
18
+ *
19
+ * // Configure the dispatch with peer configuration
20
+ * dispatch.configure(peerConfig);
21
+ *
22
+ * // Register an observer for a specific table and event
23
+ * dispatch.observe('users', 'create', (id) => {
24
+ * console.log(`User created: ${id}`);
25
+ * });
26
+ *
27
+ * // Start listening for events
28
+ * await dispatch.start();
29
+ * ```
30
+ * @mermaid
31
+ * sequenceDiagram
32
+ * participant Client
33
+ * participant FabricDispatch
34
+ * participant Gateway
35
+ * participant Network
36
+ * participant Chaincode
37
+ *
38
+ * Client->>FabricDispatch: new FabricDispatch(client)
39
+ * Client->>FabricDispatch: configure(peerConfig)
40
+ * Client->>FabricDispatch: observe(table, event, callback)
41
+ * Client->>FabricDispatch: start()
42
+ * FabricDispatch->>FabricDispatch: initialize()
43
+ * FabricDispatch->>Gateway: getGateway(config, client)
44
+ * Gateway->>Network: getNetwork(channel)
45
+ * Network->>Network: getChaincodeEvents(chaincodeName)
46
+ * FabricDispatch->>FabricDispatch: handleEvents()
47
+ * loop For each event
48
+ * Chaincode-->>FabricDispatch: ChaincodeEvent
49
+ * FabricDispatch->>FabricDispatch: parseEventName(eventName)
50
+ * FabricDispatch->>FabricDispatch: parsePayload(payload)
51
+ * FabricDispatch->>FabricDispatch: updateObservers(table, event, id)
52
+ * FabricDispatch-->>Client: callback(id)
53
+ * end
54
+ */
55
+ export declare class FabricClientDispatch extends Dispatch<FabricClientAdapter> {
56
+ protected client: Client;
57
+ /**
58
+ * @description Event listening stack for chaincode events
59
+ */
60
+ private listeningStack?;
61
+ /**
62
+ * @description Text decoder for converting event payloads from bytes to strings
63
+ */
64
+ private decoder;
65
+ /**
66
+ * @description Creates a new FabricDispatch instance
67
+ * @summary Initializes a dispatcher for Fabric chaincode events
68
+ * @param {Client} client - gRPC client for connecting to the Fabric network
69
+ */
70
+ constructor(client: Client);
71
+ /**
72
+ * @description Closes the event listening connection
73
+ * @summary Stops listening for chaincode events and releases resources
74
+ * @return {Promise<void>} Promise that resolves when the connection is closed
75
+ */
76
+ close(...ctxArgs: ContextualArgs<Context<FabricClientFlags>>): Promise<void>;
77
+ /**
78
+ * @description Parses event payload from binary format
79
+ * @summary Converts a Uint8Array containing JSON to an object with an id property
80
+ * @param {Uint8Array} jsonBytes - The binary payload from the chaincode event
81
+ * @return {{ id: string }} The parsed payload containing the record ID
82
+ */
83
+ private parsePayload;
84
+ /**
85
+ * @description Starts observing an adapter
86
+ * @summary Connects this dispatch to an adapter to monitor its operations
87
+ * @param {Adapter<any, any, any, any>} observer - The adapter to observe
88
+ * @return {void}
89
+ */
90
+ observe(observer: Adapter<any, any, any, any>): () => void;
91
+ /**
92
+ * @description Updates observers about a database event
93
+ * @summary Notifies observers about a change in the database
94
+ * @param {string} table - The name of the table where the change occurred
95
+ * @param {OperationKeys|BulkCrudOperationKeys|string} event - The type of operation that occurred
96
+ * @param {any} payload - The event payload
97
+ * @return {Promise<void>} A promise that resolves when all observers have been notified
98
+ */
99
+ updateObservers(model: Constructor<any> | string, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds, ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<void>;
100
+ /**
101
+ * @description Processes incoming chaincode events
102
+ * @summary Listens for events from the chaincode and dispatches them to registered observers
103
+ * @return {Promise<void>} Promise that resolves when event handling stops
104
+ * @mermaid
105
+ * sequenceDiagram
106
+ * participant FabricDispatch
107
+ * participant EventStack
108
+ * participant EventParser
109
+ * participant Observers
110
+ *
111
+ * FabricDispatch->>FabricDispatch: handleEvents()
112
+ * FabricDispatch->>EventStack: for await (const evt of listeningStack)
113
+ * EventStack-->>FabricDispatch: ChaincodeEvent
114
+ * FabricDispatch->>EventParser: parseEventName(evt.eventName)
115
+ * EventParser-->>FabricDispatch: { table, event, owner }
116
+ * FabricDispatch->>FabricDispatch: Check if event is for this MSP
117
+ * FabricDispatch->>FabricDispatch: parsePayload(evt.payload)
118
+ * FabricDispatch->>Observers: updateObservers(table, event, payload.id)
119
+ * Observers-->>FabricDispatch: Callbacks executed
120
+ */
121
+ protected handleEvents(ctxArg?: Context<FabricClientFlags>): Promise<void>;
122
+ /**
123
+ * @description Initializes the event listener
124
+ * @summary Sets up event dispatching for the observed adapter. When
125
+ * `syntheticEvents` is true (the default) no gateway connection is opened;
126
+ * instead every CRUD operation is wrapped with a Proxy that fires
127
+ * `updateObservers` for **all** models. When `syntheticEvents` is false the
128
+ * existing gateway-based chaincode-event subscription is established and the
129
+ * local Proxy fallback is limited to fully-segregated (transient) models only.
130
+ * @return {Promise<void>} Promise that resolves when initialization is complete
131
+ */
132
+ protected initialize(): Promise<void>;
133
+ }
@@ -0,0 +1,133 @@
1
+ import { Adapter, ContextualArgs, Dispatch, EventIds, Context } from "@decaf-ts/core";
2
+ import { Client } from "@grpc/grpc-js";
3
+ import { FabricClientAdapter } from "./FabricClientAdapter.js";
4
+ import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
5
+ import { Constructor } from "@decaf-ts/decoration";
6
+ import { FabricClientFlags } from "./types.js";
7
+ /**
8
+ * @description Event dispatcher for Hyperledger Fabric chaincode events
9
+ * @summary Listens for and processes events emitted by Fabric chaincode, dispatching them to registered observers
10
+ * @template PeerConfig - Configuration type for connecting to a Fabric peer
11
+ * @param client - gRPC client for connecting to the Fabric network
12
+ * @class FabricClientDispatch
13
+ * @example
14
+ * ```typescript
15
+ * // Create a new FabricDispatch instance
16
+ * const client = await FabricAdapter.getClient(peerConfig);
17
+ * const dispatch = new FabricDispatch(client);
18
+ *
19
+ * // Configure the dispatch with peer configuration
20
+ * dispatch.configure(peerConfig);
21
+ *
22
+ * // Register an observer for a specific table and event
23
+ * dispatch.observe('users', 'create', (id) => {
24
+ * console.log(`User created: ${id}`);
25
+ * });
26
+ *
27
+ * // Start listening for events
28
+ * await dispatch.start();
29
+ * ```
30
+ * @mermaid
31
+ * sequenceDiagram
32
+ * participant Client
33
+ * participant FabricDispatch
34
+ * participant Gateway
35
+ * participant Network
36
+ * participant Chaincode
37
+ *
38
+ * Client->>FabricDispatch: new FabricDispatch(client)
39
+ * Client->>FabricDispatch: configure(peerConfig)
40
+ * Client->>FabricDispatch: observe(table, event, callback)
41
+ * Client->>FabricDispatch: start()
42
+ * FabricDispatch->>FabricDispatch: initialize()
43
+ * FabricDispatch->>Gateway: getGateway(config, client)
44
+ * Gateway->>Network: getNetwork(channel)
45
+ * Network->>Network: getChaincodeEvents(chaincodeName)
46
+ * FabricDispatch->>FabricDispatch: handleEvents()
47
+ * loop For each event
48
+ * Chaincode-->>FabricDispatch: ChaincodeEvent
49
+ * FabricDispatch->>FabricDispatch: parseEventName(eventName)
50
+ * FabricDispatch->>FabricDispatch: parsePayload(payload)
51
+ * FabricDispatch->>FabricDispatch: updateObservers(table, event, id)
52
+ * FabricDispatch-->>Client: callback(id)
53
+ * end
54
+ */
55
+ export declare class FabricClientDispatch extends Dispatch<FabricClientAdapter> {
56
+ protected client: Client;
57
+ /**
58
+ * @description Event listening stack for chaincode events
59
+ */
60
+ private listeningStack?;
61
+ /**
62
+ * @description Text decoder for converting event payloads from bytes to strings
63
+ */
64
+ private decoder;
65
+ /**
66
+ * @description Creates a new FabricDispatch instance
67
+ * @summary Initializes a dispatcher for Fabric chaincode events
68
+ * @param {Client} client - gRPC client for connecting to the Fabric network
69
+ */
70
+ constructor(client: Client);
71
+ /**
72
+ * @description Closes the event listening connection
73
+ * @summary Stops listening for chaincode events and releases resources
74
+ * @return {Promise<void>} Promise that resolves when the connection is closed
75
+ */
76
+ close(...ctxArgs: ContextualArgs<Context<FabricClientFlags>>): Promise<void>;
77
+ /**
78
+ * @description Parses event payload from binary format
79
+ * @summary Converts a Uint8Array containing JSON to an object with an id property
80
+ * @param {Uint8Array} jsonBytes - The binary payload from the chaincode event
81
+ * @return {{ id: string }} The parsed payload containing the record ID
82
+ */
83
+ private parsePayload;
84
+ /**
85
+ * @description Starts observing an adapter
86
+ * @summary Connects this dispatch to an adapter to monitor its operations
87
+ * @param {Adapter<any, any, any, any>} observer - The adapter to observe
88
+ * @return {void}
89
+ */
90
+ observe(observer: Adapter<any, any, any, any>): () => void;
91
+ /**
92
+ * @description Updates observers about a database event
93
+ * @summary Notifies observers about a change in the database
94
+ * @param {string} table - The name of the table where the change occurred
95
+ * @param {OperationKeys|BulkCrudOperationKeys|string} event - The type of operation that occurred
96
+ * @param {any} payload - The event payload
97
+ * @return {Promise<void>} A promise that resolves when all observers have been notified
98
+ */
99
+ updateObservers(model: Constructor<any> | string, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds, ...args: ContextualArgs<Context<FabricClientFlags>>): Promise<void>;
100
+ /**
101
+ * @description Processes incoming chaincode events
102
+ * @summary Listens for events from the chaincode and dispatches them to registered observers
103
+ * @return {Promise<void>} Promise that resolves when event handling stops
104
+ * @mermaid
105
+ * sequenceDiagram
106
+ * participant FabricDispatch
107
+ * participant EventStack
108
+ * participant EventParser
109
+ * participant Observers
110
+ *
111
+ * FabricDispatch->>FabricDispatch: handleEvents()
112
+ * FabricDispatch->>EventStack: for await (const evt of listeningStack)
113
+ * EventStack-->>FabricDispatch: ChaincodeEvent
114
+ * FabricDispatch->>EventParser: parseEventName(evt.eventName)
115
+ * EventParser-->>FabricDispatch: { table, event, owner }
116
+ * FabricDispatch->>FabricDispatch: Check if event is for this MSP
117
+ * FabricDispatch->>FabricDispatch: parsePayload(evt.payload)
118
+ * FabricDispatch->>Observers: updateObservers(table, event, payload.id)
119
+ * Observers-->>FabricDispatch: Callbacks executed
120
+ */
121
+ protected handleEvents(ctxArg?: Context<FabricClientFlags>): Promise<void>;
122
+ /**
123
+ * @description Initializes the event listener
124
+ * @summary Sets up event dispatching for the observed adapter. When
125
+ * `syntheticEvents` is true (the default) no gateway connection is opened;
126
+ * instead every CRUD operation is wrapped with a Proxy that fires
127
+ * `updateObservers` for **all** models. When `syntheticEvents` is false the
128
+ * existing gateway-based chaincode-event subscription is established and the
129
+ * local Proxy fallback is limited to fully-segregated (transient) models only.
130
+ * @return {Promise<void>} Promise that resolves when initialization is complete
131
+ */
132
+ protected initialize(): Promise<void>;
133
+ }