@decaf-ts/for-fabric 0.0.2

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 (205) hide show
  1. package/LICENSE.md +22 -0
  2. package/README.md +647 -0
  3. package/dist/for-fabric.cjs +6223 -0
  4. package/dist/for-fabric.esm.cjs +6180 -0
  5. package/lib/client/FabricClientAdapter.cjs +760 -0
  6. package/lib/client/FabricClientAdapter.d.ts +381 -0
  7. package/lib/client/FabricClientDispatch.cjs +186 -0
  8. package/lib/client/FabricClientDispatch.d.ts +125 -0
  9. package/lib/client/FabricClientRepository.cjs +131 -0
  10. package/lib/client/FabricClientRepository.d.ts +100 -0
  11. package/lib/client/erc20/erc20ClientRepository.cjs +343 -0
  12. package/lib/client/erc20/erc20ClientRepository.d.ts +254 -0
  13. package/lib/client/fabric-fs.cjs +234 -0
  14. package/lib/client/fabric-fs.d.ts +92 -0
  15. package/lib/client/index.cjs +30 -0
  16. package/lib/client/index.d.ts +13 -0
  17. package/lib/client/logging.cjs +102 -0
  18. package/lib/client/logging.d.ts +60 -0
  19. package/lib/client/services/LoggedService.cjs +47 -0
  20. package/lib/client/services/LoggedService.d.ts +42 -0
  21. package/lib/client/services/constants.cjs +3 -0
  22. package/lib/client/services/constants.d.ts +15 -0
  23. package/lib/client/services/enrollementService.cjs +344 -0
  24. package/lib/client/services/enrollementService.d.ts +176 -0
  25. package/lib/client/services/index.cjs +18 -0
  26. package/lib/client/services/index.d.ts +1 -0
  27. package/lib/contracts/ContractAdapter.cjs +730 -0
  28. package/lib/contracts/ContractAdapter.d.ts +296 -0
  29. package/lib/contracts/ContractContext.cjs +85 -0
  30. package/lib/contracts/ContractContext.d.ts +64 -0
  31. package/lib/contracts/ContractPrivateDataAdapter.cjs +281 -0
  32. package/lib/contracts/ContractPrivateDataAdapter.d.ts +74 -0
  33. package/lib/contracts/FabricConstruction.cjs +441 -0
  34. package/lib/contracts/FabricConstruction.d.ts +304 -0
  35. package/lib/contracts/FabricContractRepository.cjs +306 -0
  36. package/lib/contracts/FabricContractRepository.d.ts +162 -0
  37. package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +85 -0
  38. package/lib/contracts/FabricContractRepositoryObservableHandler.d.ts +62 -0
  39. package/lib/contracts/FabricContractSequence.cjs +139 -0
  40. package/lib/contracts/FabricContractSequence.d.ts +61 -0
  41. package/lib/contracts/FabricContractStatement.cjs +119 -0
  42. package/lib/contracts/FabricContractStatement.d.ts +34 -0
  43. package/lib/contracts/PrivateSequence.cjs +36 -0
  44. package/lib/contracts/PrivateSequence.d.ts +15 -0
  45. package/lib/contracts/crud/crud-contract.cjs +257 -0
  46. package/lib/contracts/crud/crud-contract.d.ts +168 -0
  47. package/lib/contracts/crud/index.cjs +19 -0
  48. package/lib/contracts/crud/index.d.ts +2 -0
  49. package/lib/contracts/crud/serialized-crud-contract.cjs +172 -0
  50. package/lib/contracts/crud/serialized-crud-contract.d.ts +37 -0
  51. package/lib/contracts/erc20/erc20contract.cjs +569 -0
  52. package/lib/contracts/erc20/erc20contract.d.ts +151 -0
  53. package/lib/contracts/erc20/index.cjs +21 -0
  54. package/lib/contracts/erc20/index.d.ts +2 -0
  55. package/lib/contracts/erc20/models.cjs +209 -0
  56. package/lib/contracts/erc20/models.d.ts +114 -0
  57. package/lib/contracts/index.cjs +32 -0
  58. package/lib/contracts/index.d.ts +15 -0
  59. package/lib/contracts/logging.cjs +96 -0
  60. package/lib/contracts/logging.d.ts +49 -0
  61. package/lib/contracts/private-data.cjs +121 -0
  62. package/lib/contracts/private-data.d.ts +16 -0
  63. package/lib/contracts/types.cjs +3 -0
  64. package/lib/contracts/types.d.ts +26 -0
  65. package/lib/esm/client/FabricClientAdapter.d.ts +381 -0
  66. package/lib/esm/client/FabricClientAdapter.js +723 -0
  67. package/lib/esm/client/FabricClientDispatch.d.ts +125 -0
  68. package/lib/esm/client/FabricClientDispatch.js +182 -0
  69. package/lib/esm/client/FabricClientRepository.d.ts +100 -0
  70. package/lib/esm/client/FabricClientRepository.js +127 -0
  71. package/lib/esm/client/erc20/erc20ClientRepository.d.ts +254 -0
  72. package/lib/esm/client/erc20/erc20ClientRepository.js +339 -0
  73. package/lib/esm/client/fabric-fs.d.ts +92 -0
  74. package/lib/esm/client/fabric-fs.js +191 -0
  75. package/lib/esm/client/index.d.ts +13 -0
  76. package/lib/esm/client/index.js +14 -0
  77. package/lib/esm/client/logging.d.ts +60 -0
  78. package/lib/esm/client/logging.js +98 -0
  79. package/lib/esm/client/services/LoggedService.d.ts +42 -0
  80. package/lib/esm/client/services/LoggedService.js +43 -0
  81. package/lib/esm/client/services/constants.d.ts +15 -0
  82. package/lib/esm/client/services/constants.js +2 -0
  83. package/lib/esm/client/services/enrollementService.d.ts +176 -0
  84. package/lib/esm/client/services/enrollementService.js +337 -0
  85. package/lib/esm/client/services/index.d.ts +1 -0
  86. package/lib/esm/client/services/index.js +2 -0
  87. package/lib/esm/contracts/ContractAdapter.d.ts +296 -0
  88. package/lib/esm/contracts/ContractAdapter.js +724 -0
  89. package/lib/esm/contracts/ContractContext.d.ts +64 -0
  90. package/lib/esm/contracts/ContractContext.js +81 -0
  91. package/lib/esm/contracts/ContractPrivateDataAdapter.d.ts +74 -0
  92. package/lib/esm/contracts/ContractPrivateDataAdapter.js +277 -0
  93. package/lib/esm/contracts/FabricConstruction.d.ts +304 -0
  94. package/lib/esm/contracts/FabricConstruction.js +433 -0
  95. package/lib/esm/contracts/FabricContractRepository.d.ts +162 -0
  96. package/lib/esm/contracts/FabricContractRepository.js +302 -0
  97. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.d.ts +62 -0
  98. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +81 -0
  99. package/lib/esm/contracts/FabricContractSequence.d.ts +61 -0
  100. package/lib/esm/contracts/FabricContractSequence.js +135 -0
  101. package/lib/esm/contracts/FabricContractStatement.d.ts +34 -0
  102. package/lib/esm/contracts/FabricContractStatement.js +115 -0
  103. package/lib/esm/contracts/PrivateSequence.d.ts +15 -0
  104. package/lib/esm/contracts/PrivateSequence.js +33 -0
  105. package/lib/esm/contracts/crud/crud-contract.d.ts +168 -0
  106. package/lib/esm/contracts/crud/crud-contract.js +253 -0
  107. package/lib/esm/contracts/crud/index.d.ts +2 -0
  108. package/lib/esm/contracts/crud/index.js +3 -0
  109. package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +37 -0
  110. package/lib/esm/contracts/crud/serialized-crud-contract.js +168 -0
  111. package/lib/esm/contracts/erc20/erc20contract.d.ts +151 -0
  112. package/lib/esm/contracts/erc20/erc20contract.js +565 -0
  113. package/lib/esm/contracts/erc20/index.d.ts +2 -0
  114. package/lib/esm/contracts/erc20/index.js +4 -0
  115. package/lib/esm/contracts/erc20/models.d.ts +114 -0
  116. package/lib/esm/contracts/erc20/models.js +206 -0
  117. package/lib/esm/contracts/index.d.ts +15 -0
  118. package/lib/esm/contracts/index.js +16 -0
  119. package/lib/esm/contracts/logging.d.ts +49 -0
  120. package/lib/esm/contracts/logging.js +92 -0
  121. package/lib/esm/contracts/private-data.d.ts +16 -0
  122. package/lib/esm/contracts/private-data.js +113 -0
  123. package/lib/esm/contracts/types.d.ts +26 -0
  124. package/lib/esm/contracts/types.js +2 -0
  125. package/lib/esm/index.d.ts +8 -0
  126. package/lib/esm/index.js +9 -0
  127. package/lib/esm/shared/ClientSerializer.d.ts +52 -0
  128. package/lib/esm/shared/ClientSerializer.js +80 -0
  129. package/lib/esm/shared/DeterministicSerializer.d.ts +40 -0
  130. package/lib/esm/shared/DeterministicSerializer.js +50 -0
  131. package/lib/esm/shared/SimpleDeterministicSerializer.d.ts +7 -0
  132. package/lib/esm/shared/SimpleDeterministicSerializer.js +42 -0
  133. package/lib/esm/shared/constants.d.ts +39 -0
  134. package/lib/esm/shared/constants.js +42 -0
  135. package/lib/esm/shared/crypto.d.ts +107 -0
  136. package/lib/esm/shared/crypto.js +331 -0
  137. package/lib/esm/shared/decorators.d.ts +24 -0
  138. package/lib/esm/shared/decorators.js +98 -0
  139. package/lib/esm/shared/erc20/erc20-constants.d.ts +25 -0
  140. package/lib/esm/shared/erc20/erc20-constants.js +27 -0
  141. package/lib/esm/shared/errors.d.ts +116 -0
  142. package/lib/esm/shared/errors.js +132 -0
  143. package/lib/esm/shared/events.d.ts +39 -0
  144. package/lib/esm/shared/events.js +47 -0
  145. package/lib/esm/shared/fabric-types.d.ts +33 -0
  146. package/lib/esm/shared/fabric-types.js +2 -0
  147. package/lib/esm/shared/index.d.ts +13 -0
  148. package/lib/esm/shared/index.js +14 -0
  149. package/lib/esm/shared/interfaces/Checkable.d.ts +21 -0
  150. package/lib/esm/shared/interfaces/Checkable.js +2 -0
  151. package/lib/esm/shared/math.d.ts +34 -0
  152. package/lib/esm/shared/math.js +61 -0
  153. package/lib/esm/shared/model/Identity.d.ts +42 -0
  154. package/lib/esm/shared/model/Identity.js +78 -0
  155. package/lib/esm/shared/model/IdentityCredentials.d.ts +41 -0
  156. package/lib/esm/shared/model/IdentityCredentials.js +74 -0
  157. package/lib/esm/shared/model/index.d.ts +1 -0
  158. package/lib/esm/shared/model/index.js +2 -0
  159. package/lib/esm/shared/model/utils.d.ts +60 -0
  160. package/lib/esm/shared/model/utils.js +108 -0
  161. package/lib/esm/shared/types.d.ts +79 -0
  162. package/lib/esm/shared/types.js +2 -0
  163. package/lib/esm/shared/utils.d.ts +55 -0
  164. package/lib/esm/shared/utils.js +148 -0
  165. package/lib/index.cjs +25 -0
  166. package/lib/index.d.ts +8 -0
  167. package/lib/shared/ClientSerializer.cjs +84 -0
  168. package/lib/shared/ClientSerializer.d.ts +52 -0
  169. package/lib/shared/DeterministicSerializer.cjs +54 -0
  170. package/lib/shared/DeterministicSerializer.d.ts +40 -0
  171. package/lib/shared/SimpleDeterministicSerializer.cjs +46 -0
  172. package/lib/shared/SimpleDeterministicSerializer.d.ts +7 -0
  173. package/lib/shared/constants.cjs +45 -0
  174. package/lib/shared/constants.d.ts +39 -0
  175. package/lib/shared/crypto.cjs +369 -0
  176. package/lib/shared/crypto.d.ts +107 -0
  177. package/lib/shared/decorators.cjs +105 -0
  178. package/lib/shared/decorators.d.ts +24 -0
  179. package/lib/shared/erc20/erc20-constants.cjs +30 -0
  180. package/lib/shared/erc20/erc20-constants.d.ts +25 -0
  181. package/lib/shared/errors.cjs +142 -0
  182. package/lib/shared/errors.d.ts +116 -0
  183. package/lib/shared/events.cjs +51 -0
  184. package/lib/shared/events.d.ts +39 -0
  185. package/lib/shared/fabric-types.cjs +4 -0
  186. package/lib/shared/fabric-types.d.ts +33 -0
  187. package/lib/shared/index.cjs +30 -0
  188. package/lib/shared/index.d.ts +13 -0
  189. package/lib/shared/interfaces/Checkable.cjs +3 -0
  190. package/lib/shared/interfaces/Checkable.d.ts +21 -0
  191. package/lib/shared/math.cjs +66 -0
  192. package/lib/shared/math.d.ts +34 -0
  193. package/lib/shared/model/Identity.cjs +81 -0
  194. package/lib/shared/model/Identity.d.ts +42 -0
  195. package/lib/shared/model/IdentityCredentials.cjs +77 -0
  196. package/lib/shared/model/IdentityCredentials.d.ts +41 -0
  197. package/lib/shared/model/index.cjs +18 -0
  198. package/lib/shared/model/index.d.ts +1 -0
  199. package/lib/shared/model/utils.cjs +114 -0
  200. package/lib/shared/model/utils.d.ts +60 -0
  201. package/lib/shared/types.cjs +3 -0
  202. package/lib/shared/types.d.ts +79 -0
  203. package/lib/shared/utils.cjs +185 -0
  204. package/lib/shared/utils.d.ts +55 -0
  205. package/package.json +166 -0
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContractLogger = void 0;
4
+ const logging_1 = require("@decaf-ts/logging");
5
+ /**
6
+ * @description Logger implementation for Fabric chaincode contracts
7
+ * @summary Adapts the standard logging interface to work with Fabric's chaincode context
8
+ *
9
+ * @param {string} context - The logging context name
10
+ * @param {Partial<LoggingConfig> | undefined} conf - Optional logging configuration
11
+ * @param {Ctx} ctx - The Fabric chaincode context
12
+ *
13
+ * @class ContractLogger
14
+ * @extends {MiniLogger}
15
+ * @example
16
+ * ```typescript
17
+ * // In a Fabric chaincode contract
18
+ * import { ContractLogger } from '@decaf-ts/for-fabric';
19
+ *
20
+ * export class MyContract extends Contract {
21
+ * @Transaction()
22
+ * async myFunction(ctx: Context): Promise<void> {
23
+ * const logger = new ContractLogger('MyContract', { level: 'info' }, ctx);
24
+ *
25
+ * logger.info('Processing transaction');
26
+ * logger.debug('Transaction details:', { ... });
27
+ *
28
+ * // Do something
29
+ *
30
+ * logger.info('Transaction complete');
31
+ * }
32
+ * }
33
+ * ```
34
+ */
35
+ class ContractLogger extends logging_1.MiniLogger {
36
+ constructor(context, conf, ctx) {
37
+ super(context, conf);
38
+ if (!ctx) {
39
+ this.logger = new logging_1.MiniLogger(context, conf);
40
+ }
41
+ else {
42
+ this.logger = ctx.logger;
43
+ }
44
+ }
45
+ /**
46
+ * @description Logs a message at the specified level
47
+ * @summary Overrides the base log method to use the Fabric context's logger
48
+ * @param {LogLevel} level - The log level
49
+ * @param {StringLike | Error} msg - The message to log
50
+ * @param {Error} [stack] - Optional stack trace for errors
51
+ * @return {void}
52
+ */
53
+ log(level, msg, stack) {
54
+ if (logging_1.NumericLogLevels[this.config("level")] <
55
+ logging_1.NumericLogLevels[level])
56
+ return;
57
+ let method;
58
+ switch (level) {
59
+ case logging_1.LogLevel.info:
60
+ method = this.logger.info;
61
+ break;
62
+ case logging_1.LogLevel.verbose:
63
+ method = this.logger.verbose;
64
+ break;
65
+ case logging_1.LogLevel.debug:
66
+ method = this.logger.debug;
67
+ break;
68
+ case logging_1.LogLevel.error:
69
+ method = this.logger.error;
70
+ break;
71
+ case logging_1.LogLevel.silly:
72
+ method = this.logger.silly;
73
+ break;
74
+ default:
75
+ throw new Error("Invalid log level");
76
+ }
77
+ method.call(this.logger, this.createLog(level, msg, stack));
78
+ }
79
+ }
80
+ exports.ContractLogger = ContractLogger;
81
+ /**
82
+ * @description Factory function for creating ContractLogger instances
83
+ * @summary Creates a new ContractLogger with the given context, config, and Fabric context
84
+ * @param {string} object - The logging context name
85
+ * @param {Partial<LoggingConfig> | undefined} config - Optional logging configuration
86
+ * @param {Ctx} ctx - The Fabric chaincode context
87
+ * @return {ContractLogger} A new ContractLogger instance
88
+ * @function factory
89
+ * @memberOf module:fabric.contracts
90
+ */
91
+ const factory = (object, config, ctx) => {
92
+ return new ContractLogger(object, config || {}, ctx);
93
+ };
94
+ // Set the factory as the default logger factory
95
+ logging_1.Logging.setFactory(factory);
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvbG9nZ2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FRMkI7QUFLM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsb0JBQVU7SUFNNUMsWUFDRSxPQUFlLEVBQ2YsSUFBd0MsRUFDeEMsR0FBMkI7UUFFM0IsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksb0JBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ2dCLEdBQUcsQ0FDcEIsS0FBZSxFQUNmLEdBQXVCLEVBQ3ZCLEtBQWE7UUFFYixJQUNFLDBCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFhLENBQUM7WUFDbEQsMEJBQWdCLENBQUMsS0FBSyxDQUFDO1lBRXZCLE9BQU87UUFFVCxJQUFJLE1BQU0sQ0FBQztRQUNYLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDZCxLQUFLLGtCQUFRLENBQUMsSUFBSTtnQkFDaEIsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUMxQixNQUFNO1lBQ1IsS0FBSyxrQkFBUSxDQUFDLE9BQU87Z0JBQ25CLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztnQkFDN0IsTUFBTTtZQUNSLEtBQUssa0JBQVEsQ0FBQyxLQUFLO2dCQUNqQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzNCLE1BQU07WUFDUixLQUFLLGtCQUFRLENBQUMsS0FBSztnQkFDakIsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUMzQixNQUFNO1lBQ1IsS0FBSyxrQkFBUSxDQUFDLEtBQUs7Z0JBQ2pCLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDM0IsTUFBTTtZQUNSO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRjtBQTVERCx3Q0E0REM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sR0FBa0IsQ0FDN0IsTUFBYyxFQUNkLE1BQTBDLEVBQzFDLEdBQVEsRUFDUixFQUFFO0lBQ0YsT0FBTyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFVLENBQUMsQ0FBQztBQUM5RCxDQUFDLENBQUM7QUFFRixnREFBZ0Q7QUFDaEQsaUJBQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBMb2dnZXJGYWN0b3J5LFxuICBMb2dnaW5nLFxuICBMb2dnZXIsXG4gIExvZ0xldmVsLFxuICBNaW5pTG9nZ2VyLFxuICBOdW1lcmljTG9nTGV2ZWxzLFxuICBTdHJpbmdMaWtlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IExvZ2dpbmdDb25maWcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IENvbnRleHQgYXMgQ3R4IH0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0Q29udGV4dCB9IGZyb20gXCIuL0NvbnRyYWN0Q29udGV4dFwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBMb2dnZXIgaW1wbGVtZW50YXRpb24gZm9yIEZhYnJpYyBjaGFpbmNvZGUgY29udHJhY3RzXG4gKiBAc3VtbWFyeSBBZGFwdHMgdGhlIHN0YW5kYXJkIGxvZ2dpbmcgaW50ZXJmYWNlIHRvIHdvcmsgd2l0aCBGYWJyaWMncyBjaGFpbmNvZGUgY29udGV4dFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZXh0IC0gVGhlIGxvZ2dpbmcgY29udGV4dCBuYW1lXG4gKiBAcGFyYW0ge1BhcnRpYWw8TG9nZ2luZ0NvbmZpZz4gfCB1bmRlZmluZWR9IGNvbmYgLSBPcHRpb25hbCBsb2dnaW5nIGNvbmZpZ3VyYXRpb25cbiAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gKlxuICogQGNsYXNzIENvbnRyYWN0TG9nZ2VyXG4gKiBAZXh0ZW5kcyB7TWluaUxvZ2dlcn1cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBhIEZhYnJpYyBjaGFpbmNvZGUgY29udHJhY3RcbiAqIGltcG9ydCB7IENvbnRyYWN0TG9nZ2VyIH0gZnJvbSAnQGRlY2FmLXRzL2Zvci1mYWJyaWMnO1xuICpcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3Qge1xuICogICBAVHJhbnNhY3Rpb24oKVxuICogICBhc3luYyBteUZ1bmN0aW9uKGN0eDogQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICogICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBDb250cmFjdExvZ2dlcignTXlDb250cmFjdCcsIHsgbGV2ZWw6ICdpbmZvJyB9LCBjdHgpO1xuICpcbiAqICAgICBsb2dnZXIuaW5mbygnUHJvY2Vzc2luZyB0cmFuc2FjdGlvbicpO1xuICogICAgIGxvZ2dlci5kZWJ1ZygnVHJhbnNhY3Rpb24gZGV0YWlsczonLCB7IC4uLiB9KTtcbiAqXG4gKiAgICAgLy8gRG8gc29tZXRoaW5nXG4gKlxuICogICAgIGxvZ2dlci5pbmZvKCdUcmFuc2FjdGlvbiBjb21wbGV0ZScpO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRyYWN0TG9nZ2VyIGV4dGVuZHMgTWluaUxvZ2dlciB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHVuZGVybHlpbmcgRmFicmljIGxvZ2dlciBpbnN0YW5jZVxuICAgKi9cbiAgcHJvdGVjdGVkIGxvZ2dlcjogTG9nZ2VyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbnRleHQ6IHN0cmluZyxcbiAgICBjb25mOiBQYXJ0aWFsPExvZ2dpbmdDb25maWc+IHwgdW5kZWZpbmVkLFxuICAgIGN0eD86IEZhYnJpY0NvbnRyYWN0Q29udGV4dFxuICApIHtcbiAgICBzdXBlcihjb250ZXh0LCBjb25mKTtcbiAgICBpZiAoIWN0eCkge1xuICAgICAgdGhpcy5sb2dnZXIgPSBuZXcgTWluaUxvZ2dlcihjb250ZXh0LCBjb25mKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIgPSBjdHgubG9nZ2VyO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTG9ncyBhIG1lc3NhZ2UgYXQgdGhlIHNwZWNpZmllZCBsZXZlbFxuICAgKiBAc3VtbWFyeSBPdmVycmlkZXMgdGhlIGJhc2UgbG9nIG1ldGhvZCB0byB1c2UgdGhlIEZhYnJpYyBjb250ZXh0J3MgbG9nZ2VyXG4gICAqIEBwYXJhbSB7TG9nTGV2ZWx9IGxldmVsIC0gVGhlIGxvZyBsZXZlbFxuICAgKiBAcGFyYW0ge1N0cmluZ0xpa2UgfCBFcnJvcn0gbXNnIC0gVGhlIG1lc3NhZ2UgdG8gbG9nXG4gICAqIEBwYXJhbSB7RXJyb3J9IFtzdGFja10gLSBPcHRpb25hbCBzdGFjayB0cmFjZSBmb3IgZXJyb3JzXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbG9nKFxuICAgIGxldmVsOiBMb2dMZXZlbCxcbiAgICBtc2c6IFN0cmluZ0xpa2UgfCBFcnJvcixcbiAgICBzdGFjaz86IEVycm9yXG4gICkge1xuICAgIGlmIChcbiAgICAgIE51bWVyaWNMb2dMZXZlbHNbdGhpcy5jb25maWcoXCJsZXZlbFwiKSBhcyBMb2dMZXZlbF0gPFxuICAgICAgTnVtZXJpY0xvZ0xldmVsc1tsZXZlbF1cbiAgICApXG4gICAgICByZXR1cm47XG5cbiAgICBsZXQgbWV0aG9kO1xuICAgIHN3aXRjaCAobGV2ZWwpIHtcbiAgICAgIGNhc2UgTG9nTGV2ZWwuaW5mbzpcbiAgICAgICAgbWV0aG9kID0gdGhpcy5sb2dnZXIuaW5mbztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExvZ0xldmVsLnZlcmJvc2U6XG4gICAgICAgIG1ldGhvZCA9IHRoaXMubG9nZ2VyLnZlcmJvc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMb2dMZXZlbC5kZWJ1ZzpcbiAgICAgICAgbWV0aG9kID0gdGhpcy5sb2dnZXIuZGVidWc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMb2dMZXZlbC5lcnJvcjpcbiAgICAgICAgbWV0aG9kID0gdGhpcy5sb2dnZXIuZXJyb3I7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMb2dMZXZlbC5zaWxseTpcbiAgICAgICAgbWV0aG9kID0gdGhpcy5sb2dnZXIuc2lsbHk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBsb2cgbGV2ZWxcIik7XG4gICAgfVxuICAgIG1ldGhvZC5jYWxsKHRoaXMubG9nZ2VyLCB0aGlzLmNyZWF0ZUxvZyhsZXZlbCwgbXNnLCBzdGFjaykpO1xuICB9XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEZhY3RvcnkgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIENvbnRyYWN0TG9nZ2VyIGluc3RhbmNlc1xuICogQHN1bW1hcnkgQ3JlYXRlcyBhIG5ldyBDb250cmFjdExvZ2dlciB3aXRoIHRoZSBnaXZlbiBjb250ZXh0LCBjb25maWcsIGFuZCBGYWJyaWMgY29udGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IG9iamVjdCAtIFRoZSBsb2dnaW5nIGNvbnRleHQgbmFtZVxuICogQHBhcmFtIHtQYXJ0aWFsPExvZ2dpbmdDb25maWc+IHwgdW5kZWZpbmVkfSBjb25maWcgLSBPcHRpb25hbCBsb2dnaW5nIGNvbmZpZ3VyYXRpb25cbiAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gKiBAcmV0dXJuIHtDb250cmFjdExvZ2dlcn0gQSBuZXcgQ29udHJhY3RMb2dnZXIgaW5zdGFuY2VcbiAqIEBmdW5jdGlvbiBmYWN0b3J5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZhYnJpYy5jb250cmFjdHNcbiAqL1xuY29uc3QgZmFjdG9yeTogTG9nZ2VyRmFjdG9yeSA9IChcbiAgb2JqZWN0OiBzdHJpbmcsXG4gIGNvbmZpZzogUGFydGlhbDxMb2dnaW5nQ29uZmlnPiB8IHVuZGVmaW5lZCxcbiAgY3R4OiBDdHhcbikgPT4ge1xuICByZXR1cm4gbmV3IENvbnRyYWN0TG9nZ2VyKG9iamVjdCwgY29uZmlnIHx8IHt9LCBjdHggYXMgYW55KTtcbn07XG5cbi8vIFNldCB0aGUgZmFjdG9yeSBhcyB0aGUgZGVmYXVsdCBsb2dnZXIgZmFjdG9yeVxuTG9nZ2luZy5zZXRGYWN0b3J5KGZhY3RvcnkpO1xuIl19
@@ -0,0 +1,49 @@
1
+ import { Logger, LogLevel, MiniLogger, StringLike } from "@decaf-ts/logging";
2
+ import { LoggingConfig } from "@decaf-ts/logging";
3
+ import { FabricContractContext } from "./ContractContext";
4
+ /**
5
+ * @description Logger implementation for Fabric chaincode contracts
6
+ * @summary Adapts the standard logging interface to work with Fabric's chaincode context
7
+ *
8
+ * @param {string} context - The logging context name
9
+ * @param {Partial<LoggingConfig> | undefined} conf - Optional logging configuration
10
+ * @param {Ctx} ctx - The Fabric chaincode context
11
+ *
12
+ * @class ContractLogger
13
+ * @extends {MiniLogger}
14
+ * @example
15
+ * ```typescript
16
+ * // In a Fabric chaincode contract
17
+ * import { ContractLogger } from '@decaf-ts/for-fabric';
18
+ *
19
+ * export class MyContract extends Contract {
20
+ * @Transaction()
21
+ * async myFunction(ctx: Context): Promise<void> {
22
+ * const logger = new ContractLogger('MyContract', { level: 'info' }, ctx);
23
+ *
24
+ * logger.info('Processing transaction');
25
+ * logger.debug('Transaction details:', { ... });
26
+ *
27
+ * // Do something
28
+ *
29
+ * logger.info('Transaction complete');
30
+ * }
31
+ * }
32
+ * ```
33
+ */
34
+ export declare class ContractLogger extends MiniLogger {
35
+ /**
36
+ * @description The underlying Fabric logger instance
37
+ */
38
+ protected logger: Logger;
39
+ constructor(context: string, conf: Partial<LoggingConfig> | undefined, ctx?: FabricContractContext);
40
+ /**
41
+ * @description Logs a message at the specified level
42
+ * @summary Overrides the base log method to use the Fabric context's logger
43
+ * @param {LogLevel} level - The log level
44
+ * @param {StringLike | Error} msg - The message to log
45
+ * @param {Error} [stack] - Optional stack trace for errors
46
+ * @return {void}
47
+ */
48
+ protected log(level: LogLevel, msg: StringLike | Error, stack?: Error): void;
49
+ }
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MISSING_PRIVATE_DATA_ERROR_MESSAGE = exports.MISSING_PRIVATE_DATA_REGEX = void 0;
4
+ exports.processModel = processModel;
5
+ exports.hasPrivateData = hasPrivateData;
6
+ exports.getClassPrivateDataMetadata = getClassPrivateDataMetadata;
7
+ exports.isModelPrivate = isModelPrivate;
8
+ exports.modelToPrivate = modelToPrivate;
9
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
10
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
11
+ const core_1 = require("@decaf-ts/core");
12
+ const decorators_1 = require("./../shared/decorators.cjs");
13
+ const constants_1 = require("./../shared/constants.cjs");
14
+ exports.MISSING_PRIVATE_DATA_REGEX = /private\s+data\s+matching\s+public\s+hash\s+version\s+is\s+not\s+available/i;
15
+ exports.MISSING_PRIVATE_DATA_ERROR_MESSAGE = "private data matching public hash version is not available ...";
16
+ function processModel(adapter, model) {
17
+ const transient = (0, db_decorators_1.modelToTransient)(model);
18
+ const privateData = modelToPrivate(model);
19
+ const transformModel = (model) => {
20
+ return Object.entries(model).reduce((accum, [key, val]) => {
21
+ if (typeof val === "undefined")
22
+ return accum;
23
+ const mappedProp = core_1.Repository.column(model, key);
24
+ if (adapter.isReserved(mappedProp))
25
+ throw new db_decorators_1.InternalError(`Property name ${mappedProp} is reserved`);
26
+ accum[mappedProp] = val;
27
+ return accum;
28
+ }, {});
29
+ };
30
+ if (privateData.private) {
31
+ const collections = Object.keys(privateData.private);
32
+ for (const collection of collections) {
33
+ privateData.private[collection] = transformModel(privateData.private[collection]);
34
+ }
35
+ }
36
+ return {
37
+ model: transient.model,
38
+ transient: transient.transient,
39
+ privateData: privateData.private,
40
+ result: transformModel(transient.model),
41
+ };
42
+ }
43
+ function hasPrivateData(model) {
44
+ const metadata = getClassPrivateDataMetadata(model);
45
+ if (!metadata)
46
+ return false;
47
+ return true;
48
+ }
49
+ function getClassPrivateDataMetadata(model) {
50
+ let metadata = Reflect.getMetadata((0, decorators_1.getFabricModelKey)(constants_1.FabricModelKeys.PRIVATE), model);
51
+ metadata =
52
+ metadata ||
53
+ Reflect.getMetadata((0, decorators_1.getFabricModelKey)(constants_1.FabricModelKeys.PRIVATE), model.constructor);
54
+ return metadata;
55
+ }
56
+ function isModelPrivate(model) {
57
+ const metadata = getClassPrivateDataMetadata(model);
58
+ if (!metadata || metadata.isPrivate === undefined)
59
+ return false;
60
+ return metadata.isPrivate;
61
+ }
62
+ function modelToPrivate(model) {
63
+ if (!hasPrivateData(model))
64
+ return { model: model };
65
+ const decs = (0, db_decorators_1.getAllPropertyDecoratorsRecursive)(model, undefined, (0, decorators_1.getFabricModelKey)(constants_1.FabricModelKeys.PRIVATE));
66
+ const isPrivate = isModelPrivate(model);
67
+ const modelCollections = getClassPrivateDataMetadata(model);
68
+ let result = {
69
+ model: model,
70
+ private: undefined,
71
+ };
72
+ if (isPrivate) {
73
+ result = Object.keys(model).reduce((accum, k) => {
74
+ const collections = modelCollections.collections;
75
+ accum.private = accum.private || {};
76
+ for (const collection of collections) {
77
+ try {
78
+ accum.private[collection] = accum.private[collection] || {};
79
+ accum.private[collection][k] = model[k];
80
+ }
81
+ catch (e) {
82
+ throw new db_decorators_1.SerializationError(`Failed to serialize private property ${k}: ${e}`);
83
+ }
84
+ }
85
+ return accum;
86
+ }, { model: {} });
87
+ }
88
+ else {
89
+ result = Object.entries(decs).reduce((accum, [k, val]) => {
90
+ const privateData = val.find((el) => el.key === "");
91
+ if (privateData) {
92
+ const collections = privateData.props.collections;
93
+ accum.private = accum.private || {};
94
+ for (const collection of collections) {
95
+ try {
96
+ accum.private[collection] = accum.private[collection] || {};
97
+ accum.private[collection][k] = model[k];
98
+ }
99
+ catch (e) {
100
+ throw new db_decorators_1.SerializationError(`Failed to serialize private property ${k}: ${e}`);
101
+ }
102
+ }
103
+ }
104
+ else {
105
+ accum.model = accum.model || {};
106
+ accum.model[k] = model[k];
107
+ }
108
+ return accum;
109
+ }, {});
110
+ }
111
+ result.model = result.model || {};
112
+ result.model = decorator_validation_1.Model.build(result.model, model.constructor.name);
113
+ if (result.private) {
114
+ const collections = Object.keys(result.private);
115
+ for (const collection of collections) {
116
+ result.private[collection] = decorator_validation_1.Model.build(result.private[collection], model.constructor.name);
117
+ }
118
+ }
119
+ return result;
120
+ }
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZS1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy9wcml2YXRlLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUJBLG9DQWtDQztBQUVELHdDQUlDO0FBRUQsa0VBZ0JDO0FBRUQsd0NBSUM7QUFFRCx3Q0E4RkM7QUFqTEQsMkRBS2lDO0FBQ2pDLHlFQUF1RDtBQUN2RCx5Q0FBNEM7QUFDNUMsMkRBQXlEO0FBQ3pELHlEQUFzRDtBQUV6QyxRQUFBLDBCQUEwQixHQUNyQyw2RUFBNkUsQ0FBQztBQUVuRSxRQUFBLGtDQUFrQyxHQUM3QyxnRUFBZ0UsQ0FBQztBQUVuRSxTQUFnQixZQUFZLENBQWtCLE9BQVksRUFBRSxLQUFRO0lBQ2xFLE1BQU0sU0FBUyxHQUFHLElBQUEsZ0NBQWdCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7UUFDcEMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FDakMsQ0FBQyxLQUEwQixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxPQUFPLEdBQUcsS0FBSyxXQUFXO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQzdDLE1BQU0sVUFBVSxHQUFHLGlCQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNqRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO2dCQUNoQyxNQUFNLElBQUksNkJBQWEsQ0FBQyxpQkFBaUIsVUFBVSxjQUFjLENBQUMsQ0FBQztZQUNyRSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ3hCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxF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QkFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO3dCQUNwQixNQUFNLElBQUksa0NBQWtCLENBQzFCLHdDQUF3QyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ2xELENBQUM7b0JBQ0osQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ2hDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUksS0FBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLEVBQ0QsRUFBbUUsQ0FDcEUsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBRWxDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsNEJBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpFLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWhELEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7WUFDckMsTUFBTSxDQUFDLE9BQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyw0QkFBSyxDQUFDLEtBQUssQ0FDdkMsTUFBTSxDQUFDLE9BQVEsQ0FBQyxVQUFVLENBQUMsRUFDM0IsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3ZCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBcUUsQ0FBQztBQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0QWxsUHJvcGVydHlEZWNvcmF0b3JzUmVjdXJzaXZlLFxuICBJbnRlcm5hbEVycm9yLFxuICBtb2RlbFRvVHJhbnNpZW50LFxuICBTZXJpYWxpemF0aW9uRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBnZXRGYWJyaWNNb2RlbEtleSB9IGZyb20gXCIuLi9zaGFyZWQvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRmFicmljTW9kZWxLZXlzIH0gZnJvbSBcIi4uL3NoYXJlZC9jb25zdGFudHNcIjtcblxuZXhwb3J0IGNvbnN0IE1JU1NJTkdfUFJJVkFURV9EQVRBX1JFR0VYID1cbiAgL3ByaXZhdGVcXHMrZGF0YVxccyttYXRjaGluZ1xccytwdWJsaWNcXHMraGFzaFxccyt2ZXJzaW9uXFxzK2lzXFxzK25vdFxccythdmFpbGFibGUvaTtcblxuZXhwb3J0IGNvbnN0IE1JU1NJTkdfUFJJVkFURV9EQVRBX0VSUk9SX01FU1NBR0UgPVxuICBcInByaXZhdGUgZGF0YSBtYXRjaGluZyBwdWJsaWMgaGFzaCB2ZXJzaW9uIGlzIG5vdCBhdmFpbGFibGUgLi4uXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzTW9kZWw8TSBleHRlbmRzIE1vZGVsPihhZGFwdGVyOiBhbnksIG1vZGVsOiBNKSB7XG4gIGNvbnN0IHRyYW5zaWVudCA9IG1vZGVsVG9UcmFuc2llbnQobW9kZWwpO1xuICBjb25zdCBwcml2YXRlRGF0YSA9IG1vZGVsVG9Qcml2YXRlKG1vZGVsKTtcblxuICBjb25zdCB0cmFuc2Zvcm1Nb2RlbCA9IChtb2RlbDogYW55KSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG1vZGVsKS5yZWR1Y2UoXG4gICAgICAoYWNjdW06IFJlY29yZDxzdHJpbmcsIGFueT4sIFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBhY2N1bTtcbiAgICAgICAgY29uc3QgbWFwcGVkUHJvcCA9IFJlcG9zaXRvcnkuY29sdW1uKG1vZGVsLCBrZXkpO1xuICAgICAgICBpZiAoYWRhcHRlci5pc1Jlc2VydmVkKG1hcHBlZFByb3ApKVxuICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBQcm9wZXJ0eSBuYW1lICR7bWFwcGVkUHJvcH0gaXMgcmVzZXJ2ZWRgKTtcbiAgICAgICAgYWNjdW1bbWFwcGVkUHJvcF0gPSB2YWw7XG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sXG4gICAgICB7fVxuICAgICk7XG4gIH07XG5cbiAgaWYgKHByaXZhdGVEYXRhLnByaXZhdGUpIHtcbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IE9iamVjdC5rZXlzKHByaXZhdGVEYXRhLnByaXZhdGUpO1xuXG4gICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zKSB7XG4gICAgICBwcml2YXRlRGF0YS5wcml2YXRlIVtjb2xsZWN0aW9uXSA9IHRyYW5zZm9ybU1vZGVsKFxuICAgICAgICBwcml2YXRlRGF0YS5wcml2YXRlIVtjb2xsZWN0aW9uXVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1vZGVsOiB0cmFuc2llbnQubW9kZWwsXG4gICAgdHJhbnNpZW50OiB0cmFuc2llbnQudHJhbnNpZW50LFxuICAgIHByaXZhdGVEYXRhOiBwcml2YXRlRGF0YS5wcml2YXRlLFxuICAgIHJlc3VsdDogdHJhbnNmb3JtTW9kZWwodHJhbnNpZW50Lm1vZGVsKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1ByaXZhdGVEYXRhPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IE0pIHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRDbGFzc1ByaXZhdGVEYXRhTWV0YWRhdGEobW9kZWwpO1xuICBpZiAoIW1ldGFkYXRhKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NQcml2YXRlRGF0YU1ldGFkYXRhPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBNXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgbGV0IG1ldGFkYXRhID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcbiAgICBnZXRGYWJyaWNNb2RlbEtleShGYWJyaWNNb2RlbEtleXMuUFJJVkFURSksXG4gICAgbW9kZWxcbiAgKTtcblxuICBtZXRhZGF0YSA9XG4gICAgbWV0YWRhdGEgfHxcbiAgICBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgICAgZ2V0RmFicmljTW9kZWxLZXkoRmFicmljTW9kZWxLZXlzLlBSSVZBVEUpLFxuICAgICAgbW9kZWwuY29uc3RydWN0b3JcbiAgICApO1xuXG4gIHJldHVybiBtZXRhZGF0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTW9kZWxQcml2YXRlPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IE0pOiBib29sZWFuIHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRDbGFzc1ByaXZhdGVEYXRhTWV0YWRhdGEobW9kZWwpO1xuICBpZiAoIW1ldGFkYXRhIHx8IG1ldGFkYXRhLmlzUHJpdmF0ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBtZXRhZGF0YS5pc1ByaXZhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbFRvUHJpdmF0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogTVxuKTogeyBtb2RlbDogTTsgcHJpdmF0ZT86IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+IH0ge1xuICBpZiAoIWhhc1ByaXZhdGVEYXRhKG1vZGVsKSkgcmV0dXJuIHsgbW9kZWw6IG1vZGVsIH07XG4gIGNvbnN0IGRlY3M6IFJlY29yZDxzdHJpbmcsIGFueVtdPiA9IGdldEFsbFByb3BlcnR5RGVjb3JhdG9yc1JlY3Vyc2l2ZShcbiAgICBtb2RlbCxcbiAgICB1bmRlZmluZWQsXG4gICAgZ2V0RmFicmljTW9kZWxLZXkoRmFicmljTW9kZWxLZXlzLlBSSVZBVEUpXG4gICkgYXMgUmVjb3JkPHN0cmluZywgYW55W10+O1xuXG4gIGNvbnN0IGlzUHJpdmF0ZSA9IGlzTW9kZWxQcml2YXRlKG1vZGVsKTtcbiAgY29uc3QgbW9kZWxDb2xsZWN0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiA9XG4gICAgZ2V0Q2xhc3NQcml2YXRlRGF0YU1ldGFkYXRhKG1vZGVsKTtcblxuICBsZXQgcmVzdWx0OiB7IG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+OyBwcml2YXRlPzogUmVjb3JkPHN0cmluZywgYW55PiB9ID0ge1xuICAgIG1vZGVsOiBtb2RlbCBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHByaXZhdGU6IHVuZGVmaW5lZCxcbiAgfTtcblxuICBpZiAoaXNQcml2YXRlKSB7XG4gICAgcmVzdWx0ID0gT2JqZWN0LmtleXMobW9kZWwpLnJlZHVjZShcbiAgICAgIChcbiAgICAgICAgYWNjdW06IHsgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT47IHByaXZhdGU/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0sXG4gICAgICAgIGtcbiAgICAgICkgPT4ge1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9ucyA9IG1vZGVsQ29sbGVjdGlvbnMuY29sbGVjdGlvbnM7XG4gICAgICAgIGFjY3VtLnByaXZhdGUgPSBhY2N1bS5wcml2YXRlIHx8IHt9O1xuXG4gICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBvZiBjb2xsZWN0aW9ucykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhY2N1bS5wcml2YXRlW2NvbGxlY3Rpb25dID0gYWNjdW0ucHJpdmF0ZVtjb2xsZWN0aW9uXSB8fCB7fTtcbiAgICAgICAgICAgIGFjY3VtLnByaXZhdGVbY29sbGVjdGlvbl1ba10gPSBtb2RlbFtrIGFzIGtleW9mIE1dO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoXG4gICAgICAgICAgICAgIGBGYWlsZWQgdG8gc2VyaWFsaXplIHByaXZhdGUgcHJvcGVydHkgJHtrfTogJHtlfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSxcbiAgICAgIHsgbW9kZWw6IHt9IH0gYXMge1xuICAgICAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAgICAgcHJpdmF0ZT86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICB9XG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSBPYmplY3QuZW50cmllcyhkZWNzKS5yZWR1Y2UoXG4gICAgICAoXG4gICAgICAgIGFjY3VtOiB7IG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+OyBwcml2YXRlPzogUmVjb3JkPHN0cmluZywgYW55PiB9LFxuICAgICAgICBbaywgdmFsXVxuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IHByaXZhdGVEYXRhID0gdmFsLmZpbmQoKGVsKSA9PiBlbC5rZXkgPT09IFwiXCIpO1xuXG4gICAgICAgIGlmIChwcml2YXRlRGF0YSkge1xuICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gcHJpdmF0ZURhdGEucHJvcHMuY29sbGVjdGlvbnM7XG5cbiAgICAgICAgICBhY2N1bS5wcml2YXRlID0gYWNjdW0ucHJpdmF0ZSB8fCB7fTtcblxuICAgICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBvZiBjb2xsZWN0aW9ucykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgYWNjdW0ucHJpdmF0ZVtjb2xsZWN0aW9uXSA9IGFjY3VtLnByaXZhdGVbY29sbGVjdGlvbl0gfHwge307XG4gICAgICAgICAgICAgIGFjY3VtLnByaXZhdGVbY29sbGVjdGlvbl1ba10gPSBtb2RlbFtrIGFzIGtleW9mIE1dO1xuICAgICAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gc2VyaWFsaXplIHByaXZhdGUgcHJvcGVydHkgJHtrfTogJHtlfWBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjdW0ubW9kZWwgPSBhY2N1bS5tb2RlbCB8fCB7fTtcbiAgICAgICAgICBhY2N1bS5tb2RlbFtrXSA9IChtb2RlbCBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtrXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LFxuICAgICAge30gYXMgeyBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PjsgcHJpdmF0ZT86IFJlY29yZDxzdHJpbmcsIGFueT4gfVxuICAgICk7XG4gIH1cblxuICByZXN1bHQubW9kZWwgPSByZXN1bHQubW9kZWwgfHwge307XG5cbiAgcmVzdWx0Lm1vZGVsID0gTW9kZWwuYnVpbGQocmVzdWx0Lm1vZGVsLCBtb2RlbC5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBpZiAocmVzdWx0LnByaXZhdGUpIHtcbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IE9iamVjdC5rZXlzKHJlc3VsdC5wcml2YXRlKTtcblxuICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBvZiBjb2xsZWN0aW9ucykge1xuICAgICAgcmVzdWx0LnByaXZhdGUhW2NvbGxlY3Rpb25dID0gTW9kZWwuYnVpbGQoXG4gICAgICAgIHJlc3VsdC5wcml2YXRlIVtjb2xsZWN0aW9uXSxcbiAgICAgICAgbW9kZWwuY29uc3RydWN0b3IubmFtZVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdCBhcyB7IG1vZGVsOiBNOyBwcml2YXRlPzogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj4gfTtcbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { Model } from "@decaf-ts/decorator-validation";
2
+ export declare const MISSING_PRIVATE_DATA_REGEX: RegExp;
3
+ export declare const MISSING_PRIVATE_DATA_ERROR_MESSAGE = "private data matching public hash version is not available ...";
4
+ export declare function processModel<M extends Model>(adapter: any, model: M): {
5
+ model: M;
6
+ transient: Record<string, any> | undefined;
7
+ privateData: Record<string, Record<string, any>> | undefined;
8
+ result: Record<string, any>;
9
+ };
10
+ export declare function hasPrivateData<M extends Model>(model: M): boolean;
11
+ export declare function getClassPrivateDataMetadata<M extends Model>(model: M): Record<string, any>;
12
+ export declare function isModelPrivate<M extends Model>(model: M): boolean;
13
+ export declare function modelToPrivate<M extends Model>(model: M): {
14
+ model: M;
15
+ private?: Record<string, Record<string, any>>;
16
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXBvc2l0b3J5RmxhZ3MgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENoYWluY29kZVN0dWIsIENsaWVudElkZW50aXR5IH0gZnJvbSBcImZhYnJpYy1zaGltLWFwaVwiO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEZsYWdzIGZvciBGYWJyaWMgY2hhaW5jb2RlIGNvbnRyYWN0IG9wZXJhdGlvbnNcbiAqIEBzdW1tYXJ5IEV4dGVuZHMgcmVwb3NpdG9yeSBmbGFncyB3aXRoIEZhYnJpYy1zcGVjaWZpYyBjb250ZXh0IGVsZW1lbnRzIGF2YWlsYWJsZSBkdXJpbmcgRmFicmljIGNoYWluY29kZSBleGVjdXRpb24sIHN1Y2ggYXMgdGhlIENoYWluY29kZVN0dWIsIENsaWVudElkZW50aXR5IGFuZCBhIHJlcXVlc3Qtc2NvcGVkIExvZ2dlci5cbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAcGFyYW0ge1JlcG9zaXRvcnlGbGFnc30gW2Jhc2VdIC0gQmFzZSByZXBvc2l0b3J5IGZsYWdzIHRoYXQgdGhlc2UgRmFicmljLXNwZWNpZmljIGZsYWdzIGV4dGVuZFxuICogQHJldHVybiB7dm9pZH1cbiAqIEBpbnRlcmZhY2UgRmFicmljQ29udHJhY3RGbGFnc1xuICogQG1lbWJlck9mIG1vZHVsZTpmYWJyaWMuY29udHJhY3RzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmFicmljQ29udHJhY3RGbGFncyBleHRlbmRzIFJlcG9zaXRvcnlGbGFncyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2hhaW5jb2RlIHN0dWIgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIGxlZGdlclxuICAgKi9cbiAgc3R1YjogQ2hhaW5jb2RlU3R1YjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENsaWVudCBpZGVudGl0eSBmb3IgdGhlIHRyYW5zYWN0aW9uIHN1Ym1pdHRlclxuICAgKi9cbiAgY2xpZW50SWRlbnRpdHk6IENsaWVudElkZW50aXR5O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTG9nZ2VyIGluc3RhbmNlIGZvciB0aGUgY29udHJhY3RcbiAgICovXG4gIGxvZ2dlcjogTG9nZ2VyO1xufVxuIl19
@@ -0,0 +1,26 @@
1
+ import { RepositoryFlags } from "@decaf-ts/db-decorators";
2
+ import { ChaincodeStub, ClientIdentity } from "fabric-shim-api";
3
+ import { Logger } from "@decaf-ts/logging";
4
+ /**
5
+ * @description Flags for Fabric chaincode contract operations
6
+ * @summary Extends repository flags with Fabric-specific context elements available during Fabric chaincode execution, such as the ChaincodeStub, ClientIdentity and a request-scoped Logger.
7
+ * @template T
8
+ * @param {RepositoryFlags} [base] - Base repository flags that these Fabric-specific flags extend
9
+ * @return {void}
10
+ * @interface FabricContractFlags
11
+ * @memberOf module:fabric.contracts
12
+ */
13
+ export interface FabricContractFlags extends RepositoryFlags {
14
+ /**
15
+ * @description Chaincode stub for interacting with the ledger
16
+ */
17
+ stub: ChaincodeStub;
18
+ /**
19
+ * @description Client identity for the transaction submitter
20
+ */
21
+ clientIdentity: ClientIdentity;
22
+ /**
23
+ * @description Logger instance for the contract
24
+ */
25
+ logger: Logger;
26
+ }