@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,25 @@
1
+ /**
2
+ * Enum representing the events emitted by an ERC20 contract.
3
+ *
4
+ * @remarks
5
+ * This enum is used to identify the specific events that can be emitted by an ERC20 contract.
6
+ * The events are named according to the EIP-20 standard.
7
+ */
8
+ export declare enum ERC20Events {
9
+ /**
10
+ * Emitted when a `transfer` function is called successfully.
11
+ *
12
+ * @param from - The address of the sender.
13
+ * @param to - The address of the recipient.
14
+ * @param value - The amount of tokens transferred.
15
+ */
16
+ TRANSFER = " Transfer",
17
+ /**
18
+ * Emitted when an `approve` function is called successfully.
19
+ *
20
+ * @param owner - The address of the token owner.
21
+ * @param spender - The address of the approved spender.
22
+ * @param value - The amount of tokens approved for the spender.
23
+ */
24
+ APPROVAL = "Approval"
25
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Enum representing the events emitted by an ERC20 contract.
3
+ *
4
+ * @remarks
5
+ * This enum is used to identify the specific events that can be emitted by an ERC20 contract.
6
+ * The events are named according to the EIP-20 standard.
7
+ */
8
+ export var ERC20Events;
9
+ (function (ERC20Events) {
10
+ /**
11
+ * Emitted when a `transfer` function is called successfully.
12
+ *
13
+ * @param from - The address of the sender.
14
+ * @param to - The address of the recipient.
15
+ * @param value - The amount of tokens transferred.
16
+ */
17
+ ERC20Events["TRANSFER"] = " Transfer";
18
+ /**
19
+ * Emitted when an `approve` function is called successfully.
20
+ *
21
+ * @param owner - The address of the token owner.
22
+ * @param spender - The address of the approved spender.
23
+ * @param value - The amount of tokens approved for the spender.
24
+ */
25
+ ERC20Events["APPROVAL"] = "Approval";
26
+ })(ERC20Events || (ERC20Events = {}));
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJjMjAtY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9lcmMyMC9lcmMyMC1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFOLElBQVksV0FrQlg7QUFsQkQsV0FBWSxXQUFXO0lBQ3JCOzs7Ozs7T0FNRztJQUNILHFDQUFzQixDQUFBO0lBRXRCOzs7Ozs7T0FNRztJQUNILG9DQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFsQlcsV0FBVyxLQUFYLFdBQVcsUUFrQnRCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgZXZlbnRzIGVtaXR0ZWQgYnkgYW4gRVJDMjAgY29udHJhY3QuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgZW51bSBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBldmVudHMgdGhhdCBjYW4gYmUgZW1pdHRlZCBieSBhbiBFUkMyMCBjb250cmFjdC5cbiAqIFRoZSBldmVudHMgYXJlIG5hbWVkIGFjY29yZGluZyB0byB0aGUgRUlQLTIwIHN0YW5kYXJkLlxuICovXG5leHBvcnQgZW51bSBFUkMyMEV2ZW50cyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSBgdHJhbnNmZXJgIGZ1bmN0aW9uIGlzIGNhbGxlZCBzdWNjZXNzZnVsbHkuXG4gICAqXG4gICAqIEBwYXJhbSBmcm9tIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHNlbmRlci5cbiAgICogQHBhcmFtIHRvIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHJlY2lwaWVudC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdHJhbnNmZXJyZWQuXG4gICAqL1xuICBUUkFOU0ZFUiA9IFwiIFRyYW5zZmVyXCIsXG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhbiBgYXBwcm92ZWAgZnVuY3Rpb24gaXMgY2FsbGVkIHN1Y2Nlc3NmdWxseS5cbiAgICpcbiAgICogQHBhcmFtIG93bmVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHRva2VuIG93bmVyLlxuICAgKiBAcGFyYW0gc3BlbmRlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBhcHByb3ZlZCBzcGVuZGVyLlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgYW1vdW50IG9mIHRva2VucyBhcHByb3ZlZCBmb3IgdGhlIHNwZW5kZXIuXG4gICAqL1xuICBBUFBST1ZBTCA9IFwiQXBwcm92YWxcIixcbn1cbiJdfQ==
@@ -0,0 +1,116 @@
1
+ import { BaseError, InternalError } from "@decaf-ts/db-decorators";
2
+ import { AuthorizationError } from "@decaf-ts/core";
3
+ /**
4
+ * @summary Represents an overflow error in arithmetic operations in Smart Contracts
5
+ *
6
+ * @param {string} msg the error message
7
+ *
8
+ * @class OverflowError
9
+ * @extends InternalError
10
+ *
11
+ * @category Errors
12
+ */
13
+ export declare class OverflowError extends InternalError {
14
+ constructor(msg: string | Error);
15
+ }
16
+ /**
17
+ * @summary Represents a failure in balance to perform a transaction in Smart Contracts
18
+ *
19
+ * @param {string} msg the error message
20
+ *
21
+ * @class BalanceError
22
+ * @extends InternalError
23
+ *
24
+ * @category Errors
25
+ */
26
+ export declare class BalanceError extends InternalError {
27
+ constructor(msg: string | Error);
28
+ }
29
+ /**
30
+ * @summary Represents a failure in balance to perform a transaction in Smart Contracts
31
+ *
32
+ * @param {string} msg the error message
33
+ *
34
+ * @class BalanceError
35
+ * @extends InternalError
36
+ *
37
+ * @category Errors
38
+ */
39
+ export declare class AllowanceError extends InternalError {
40
+ constructor(msg: string | Error);
41
+ }
42
+ /**
43
+ * @summary Represents a failure registrating new entities
44
+ *
45
+ * @param {string} msg the error message
46
+ *
47
+ * @class RegistrationError
48
+ *
49
+ * @categort Errors
50
+ */
51
+ export declare class RegistrationError extends AuthorizationError {
52
+ constructor(msg: string | Error);
53
+ }
54
+ /**
55
+ * @description Error thrown when an unsupported operation is attempted
56
+ * @summary This error is thrown when an operation is requested that is not supported by the current
57
+ * persistence adapter or configuration. It extends the BaseError class and sets a 500 status code.
58
+ * @param {string|Error} msg - The error message or an Error object to wrap
59
+ * @class UnsupportedError
60
+ * @example
61
+ * ```typescript
62
+ * // Throwing an UnsupportedError
63
+ * if (!adapter.supportsTransactions()) {
64
+ * throw new UnsupportedError('Transactions are not supported by this adapter');
65
+ * }
66
+ *
67
+ * // Catching an UnsupportedError
68
+ * try {
69
+ * await adapter.beginTransaction();
70
+ * } catch (error) {
71
+ * if (error instanceof UnsupportedError) {
72
+ * console.error('Operation not supported:', error.message);
73
+ * }
74
+ * }
75
+ * ```
76
+ *
77
+ * @category Errors
78
+ */
79
+ export declare class MissingContextError extends InternalError {
80
+ constructor(msg: string | Error);
81
+ }
82
+ export declare class UnauthorizedPrivateDataAccess extends BaseError {
83
+ constructor(msg?: string | Error);
84
+ }
85
+ /**
86
+ * Represents an error that occurs when a required initialization step is not performed.
87
+ *
88
+ * @class NotInitializedError
89
+ * @extends BaseError
90
+ *
91
+ * @category Errors
92
+ *
93
+ * @param {string | Error} msg - The error message or an Error object to wrap.
94
+ *
95
+ * @throws {NotInitializedError} - Throws an error when a required initialization step is not performed.
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * // Initialize the application
100
+ * if (!isInitialized) {
101
+ * throw new NotInitializedError('Application is not initialized');
102
+ * }
103
+ *
104
+ * // Catching an NotInitializedError
105
+ * try {
106
+ * // Perform operations that require initialization
107
+ * } catch (error) {
108
+ * if (error instanceof NotInitializedError) {
109
+ * console.error('Initialization error:', error.message);
110
+ * }
111
+ * }
112
+ * ```
113
+ */
114
+ export declare class NotInitializedError extends BaseError {
115
+ constructor(msg: string | Error);
116
+ }
@@ -0,0 +1,132 @@
1
+ import { BaseError, InternalError } from "@decaf-ts/db-decorators";
2
+ import { AuthorizationError } from "@decaf-ts/core";
3
+ import { MISSING_PRIVATE_DATA_ERROR_MESSAGE } from "./../contracts/private-data.js";
4
+ /**
5
+ * @summary Represents an overflow error in arithmetic operations in Smart Contracts
6
+ *
7
+ * @param {string} msg the error message
8
+ *
9
+ * @class OverflowError
10
+ * @extends InternalError
11
+ *
12
+ * @category Errors
13
+ */
14
+ export class OverflowError extends InternalError {
15
+ constructor(msg) {
16
+ super(msg, OverflowError.name);
17
+ }
18
+ }
19
+ /**
20
+ * @summary Represents a failure in balance to perform a transaction in Smart Contracts
21
+ *
22
+ * @param {string} msg the error message
23
+ *
24
+ * @class BalanceError
25
+ * @extends InternalError
26
+ *
27
+ * @category Errors
28
+ */
29
+ export class BalanceError extends InternalError {
30
+ constructor(msg) {
31
+ super(msg, BalanceError.name);
32
+ }
33
+ }
34
+ /**
35
+ * @summary Represents a failure in balance to perform a transaction in Smart Contracts
36
+ *
37
+ * @param {string} msg the error message
38
+ *
39
+ * @class BalanceError
40
+ * @extends InternalError
41
+ *
42
+ * @category Errors
43
+ */
44
+ export class AllowanceError extends InternalError {
45
+ constructor(msg) {
46
+ super(msg, AllowanceError.name);
47
+ }
48
+ }
49
+ /**
50
+ * @summary Represents a failure registrating new entities
51
+ *
52
+ * @param {string} msg the error message
53
+ *
54
+ * @class RegistrationError
55
+ *
56
+ * @categort Errors
57
+ */
58
+ export class RegistrationError extends AuthorizationError {
59
+ constructor(msg) {
60
+ super(msg, RegistrationError.name);
61
+ }
62
+ }
63
+ /**
64
+ * @description Error thrown when an unsupported operation is attempted
65
+ * @summary This error is thrown when an operation is requested that is not supported by the current
66
+ * persistence adapter or configuration. It extends the BaseError class and sets a 500 status code.
67
+ * @param {string|Error} msg - The error message or an Error object to wrap
68
+ * @class UnsupportedError
69
+ * @example
70
+ * ```typescript
71
+ * // Throwing an UnsupportedError
72
+ * if (!adapter.supportsTransactions()) {
73
+ * throw new UnsupportedError('Transactions are not supported by this adapter');
74
+ * }
75
+ *
76
+ * // Catching an UnsupportedError
77
+ * try {
78
+ * await adapter.beginTransaction();
79
+ * } catch (error) {
80
+ * if (error instanceof UnsupportedError) {
81
+ * console.error('Operation not supported:', error.message);
82
+ * }
83
+ * }
84
+ * ```
85
+ *
86
+ * @category Errors
87
+ */
88
+ export class MissingContextError extends InternalError {
89
+ constructor(msg) {
90
+ super(msg, MissingContextError.name, 500);
91
+ }
92
+ }
93
+ export class UnauthorizedPrivateDataAccess extends BaseError {
94
+ constructor(msg = MISSING_PRIVATE_DATA_ERROR_MESSAGE) {
95
+ super(UnauthorizedPrivateDataAccess.name, msg, 403);
96
+ }
97
+ }
98
+ /**
99
+ * Represents an error that occurs when a required initialization step is not performed.
100
+ *
101
+ * @class NotInitializedError
102
+ * @extends BaseError
103
+ *
104
+ * @category Errors
105
+ *
106
+ * @param {string | Error} msg - The error message or an Error object to wrap.
107
+ *
108
+ * @throws {NotInitializedError} - Throws an error when a required initialization step is not performed.
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * // Initialize the application
113
+ * if (!isInitialized) {
114
+ * throw new NotInitializedError('Application is not initialized');
115
+ * }
116
+ *
117
+ * // Catching an NotInitializedError
118
+ * try {
119
+ * // Perform operations that require initialization
120
+ * } catch (error) {
121
+ * if (error instanceof NotInitializedError) {
122
+ * console.error('Initialization error:', error.message);
123
+ * }
124
+ * }
125
+ * ```
126
+ */
127
+ export class NotInitializedError extends BaseError {
128
+ constructor(msg) {
129
+ super(NotInitializedError.name, msg, 409);
130
+ }
131
+ }
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsdUNBQWtDO0FBQy9FOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxhQUFjLFNBQVEsYUFBYTtJQUM5QyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxZQUFhLFNBQVEsYUFBYTtJQUM3QyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsYUFBYTtJQUMvQyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGtCQUFrQjtJQUN2RCxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBQ3BELFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLFNBQVM7SUFDMUQsWUFBWSxNQUFzQixrQ0FBa0M7UUFDbEUsS0FBSyxDQUFDLDZCQUE2QixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFDSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBUztJQUNoRCxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFcnJvciwgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNSVNTSU5HX1BSSVZBVEVfREFUQV9FUlJPUl9NRVNTQUdFIH0gZnJvbSBcIi4uL2NvbnRyYWN0cy9wcml2YXRlLWRhdGFcIjtcbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhbiBvdmVyZmxvdyBlcnJvciBpbiBhcml0aG1ldGljIG9wZXJhdGlvbnMgaW4gU21hcnQgQ29udHJhY3RzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBPdmVyZmxvd0Vycm9yXG4gKiBAZXh0ZW5kcyBJbnRlcm5hbEVycm9yXG4gKlxuICogQGNhdGVnb3J5IEVycm9yc1xuICovXG5leHBvcnQgY2xhc3MgT3ZlcmZsb3dFcnJvciBleHRlbmRzIEludGVybmFsRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBPdmVyZmxvd0Vycm9yLm5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIGZhaWx1cmUgaW4gYmFsYW5jZSB0byBwZXJmb3JtIGEgdHJhbnNhY3Rpb24gaW4gU21hcnQgQ29udHJhY3RzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBCYWxhbmNlRXJyb3JcbiAqIEBleHRlbmRzIEludGVybmFsRXJyb3JcbiAqXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBCYWxhbmNlRXJyb3IgZXh0ZW5kcyBJbnRlcm5hbEVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKG1zZywgQmFsYW5jZUVycm9yLm5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIGZhaWx1cmUgaW4gYmFsYW5jZSB0byBwZXJmb3JtIGEgdHJhbnNhY3Rpb24gaW4gU21hcnQgQ29udHJhY3RzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBCYWxhbmNlRXJyb3JcbiAqIEBleHRlbmRzIEludGVybmFsRXJyb3JcbiAqXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBBbGxvd2FuY2VFcnJvciBleHRlbmRzIEludGVybmFsRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBBbGxvd2FuY2VFcnJvci5uYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSBmYWlsdXJlIHJlZ2lzdHJhdGluZyBuZXcgZW50aXRpZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnIHRoZSBlcnJvciBtZXNzYWdlXG4gKlxuICogQGNsYXNzIFJlZ2lzdHJhdGlvbkVycm9yXG4gKlxuICogQGNhdGVnb3J0IEVycm9yc1xuICovXG5leHBvcnQgY2xhc3MgUmVnaXN0cmF0aW9uRXJyb3IgZXh0ZW5kcyBBdXRob3JpemF0aW9uRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBSZWdpc3RyYXRpb25FcnJvci5uYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFcnJvciB0aHJvd24gd2hlbiBhbiB1bnN1cHBvcnRlZCBvcGVyYXRpb24gaXMgYXR0ZW1wdGVkXG4gKiBAc3VtbWFyeSBUaGlzIGVycm9yIGlzIHRocm93biB3aGVuIGFuIG9wZXJhdGlvbiBpcyByZXF1ZXN0ZWQgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50XG4gKiBwZXJzaXN0ZW5jZSBhZGFwdGVyIG9yIGNvbmZpZ3VyYXRpb24uIEl0IGV4dGVuZHMgdGhlIEJhc2VFcnJvciBjbGFzcyBhbmQgc2V0cyBhIDUwMCBzdGF0dXMgY29kZS5cbiAqIEBwYXJhbSB7c3RyaW5nfEVycm9yfSBtc2cgLSBUaGUgZXJyb3IgbWVzc2FnZSBvciBhbiBFcnJvciBvYmplY3QgdG8gd3JhcFxuICogQGNsYXNzIFVuc3VwcG9ydGVkRXJyb3JcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBUaHJvd2luZyBhbiBVbnN1cHBvcnRlZEVycm9yXG4gKiBpZiAoIWFkYXB0ZXIuc3VwcG9ydHNUcmFuc2FjdGlvbnMoKSkge1xuICogICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcignVHJhbnNhY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYWRhcHRlcicpO1xuICogfVxuICpcbiAqIC8vIENhdGNoaW5nIGFuIFVuc3VwcG9ydGVkRXJyb3JcbiAqIHRyeSB7XG4gKiAgIGF3YWl0IGFkYXB0ZXIuYmVnaW5UcmFuc2FjdGlvbigpO1xuICogfSBjYXRjaCAoZXJyb3IpIHtcbiAqICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVW5zdXBwb3J0ZWRFcnJvcikge1xuICogICAgIGNvbnNvbGUuZXJyb3IoJ09wZXJhdGlvbiBub3Qgc3VwcG9ydGVkOicsIGVycm9yLm1lc3NhZ2UpO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBNaXNzaW5nQ29udGV4dEVycm9yIGV4dGVuZHMgSW50ZXJuYWxFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihtc2csIE1pc3NpbmdDb250ZXh0RXJyb3IubmFtZSwgNTAwKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVW5hdXRob3JpemVkUHJpdmF0ZURhdGFBY2Nlc3MgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yID0gTUlTU0lOR19QUklWQVRFX0RBVEFfRVJST1JfTUVTU0FHRSkge1xuICAgIHN1cGVyKFVuYXV0aG9yaXplZFByaXZhdGVEYXRhQWNjZXNzLm5hbWUsIG1zZywgNDAzKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gZXJyb3IgdGhhdCBvY2N1cnMgd2hlbiBhIHJlcXVpcmVkIGluaXRpYWxpemF0aW9uIHN0ZXAgaXMgbm90IHBlcmZvcm1lZC5cbiAqXG4gKiBAY2xhc3MgTm90SW5pdGlhbGl6ZWRFcnJvclxuICogQGV4dGVuZHMgQmFzZUVycm9yXG4gKlxuICogQGNhdGVnb3J5IEVycm9yc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgRXJyb3J9IG1zZyAtIFRoZSBlcnJvciBtZXNzYWdlIG9yIGFuIEVycm9yIG9iamVjdCB0byB3cmFwLlxuICpcbiAqIEB0aHJvd3Mge05vdEluaXRpYWxpemVkRXJyb3J9IC0gVGhyb3dzIGFuIGVycm9yIHdoZW4gYSByZXF1aXJlZCBpbml0aWFsaXphdGlvbiBzdGVwIGlzIG5vdCBwZXJmb3JtZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluaXRpYWxpemUgdGhlIGFwcGxpY2F0aW9uXG4gKiBpZiAoIWlzSW5pdGlhbGl6ZWQpIHtcbiAqICAgdGhyb3cgbmV3IE5vdEluaXRpYWxpemVkRXJyb3IoJ0FwcGxpY2F0aW9uIGlzIG5vdCBpbml0aWFsaXplZCcpO1xuICogfVxuICpcbiAqIC8vIENhdGNoaW5nIGFuIE5vdEluaXRpYWxpemVkRXJyb3JcbiAqIHRyeSB7XG4gKiAgIC8vIFBlcmZvcm0gb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgaW5pdGlhbGl6YXRpb25cbiAqIH0gY2F0Y2ggKGVycm9yKSB7XG4gKiAgIGlmIChlcnJvciBpbnN0YW5jZW9mIE5vdEluaXRpYWxpemVkRXJyb3IpIHtcbiAqICAgICBjb25zb2xlLmVycm9yKCdJbml0aWFsaXphdGlvbiBlcnJvcjonLCBlcnJvci5tZXNzYWdlKTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RJbml0aWFsaXplZEVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKE5vdEluaXRpYWxpemVkRXJyb3IubmFtZSwgbXNnLCA0MDkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
2
+ /**
3
+ * @description Generates a Fabric event name from components
4
+ * @summary Creates a standardized event name by joining table, event, and optional owner with underscores
5
+ * @param {string} table - The table/collection name
6
+ * @param {OperationKeys | BulkCrudOperationKeys | string} event - The event type
7
+ * @param {string} [owner] - Optional owner identifier
8
+ * @return {string} The generated event name in format "table_event" or "table_event_owner"
9
+ * @function generateFabricEventName
10
+ * @memberOf module:for-fabric.shared
11
+ */
12
+ export declare function generateFabricEventName(table: string, event: OperationKeys | BulkCrudOperationKeys | string, owner?: string): string;
13
+ /**
14
+ * @description Parses a Fabric event name into its components
15
+ * @summary Splits an event name by underscores and extracts table, event, and optional owner
16
+ * @param {string} name - The event name to parse
17
+ * @return {{table: string, event: OperationKeys | BulkCrudOperationKeys | string, owner: string}} The parsed components as a structured object
18
+ * @throws {InternalError} If the event name format is invalid
19
+ * @function parseEventName
20
+ * @mermaid
21
+ * sequenceDiagram
22
+ * participant Caller
23
+ * participant Parser as parseEventName
24
+ * Caller->>Parser: parseEventName(name)
25
+ * Parser->>Parser: split name by "_"
26
+ * alt parts length invalid
27
+ * Parser-->>Caller: throw InternalError
28
+ * else
29
+ * Parser-->>Caller: { table, event, owner? }
30
+ * end
31
+ * @memberOf module:for-fabric.shared
32
+ */
33
+ export declare function parseEventName(name: string): {
34
+ table: string;
35
+ event: OperationKeys | BulkCrudOperationKeys | string;
36
+ owner?: string;
37
+ } | {
38
+ event: string;
39
+ };
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @description Generates a Fabric event name from components
3
+ * @summary Creates a standardized event name by joining table, event, and optional owner with underscores
4
+ * @param {string} table - The table/collection name
5
+ * @param {OperationKeys | BulkCrudOperationKeys | string} event - The event type
6
+ * @param {string} [owner] - Optional owner identifier
7
+ * @return {string} The generated event name in format "table_event" or "table_event_owner"
8
+ * @function generateFabricEventName
9
+ * @memberOf module:for-fabric.shared
10
+ */
11
+ export function generateFabricEventName(table, event, owner) {
12
+ const params = [table, event];
13
+ if (owner)
14
+ params.push(owner);
15
+ return params.join("_");
16
+ }
17
+ /**
18
+ * @description Parses a Fabric event name into its components
19
+ * @summary Splits an event name by underscores and extracts table, event, and optional owner
20
+ * @param {string} name - The event name to parse
21
+ * @return {{table: string, event: OperationKeys | BulkCrudOperationKeys | string, owner: string}} The parsed components as a structured object
22
+ * @throws {InternalError} If the event name format is invalid
23
+ * @function parseEventName
24
+ * @mermaid
25
+ * sequenceDiagram
26
+ * participant Caller
27
+ * participant Parser as parseEventName
28
+ * Caller->>Parser: parseEventName(name)
29
+ * Parser->>Parser: split name by "_"
30
+ * alt parts length invalid
31
+ * Parser-->>Caller: throw InternalError
32
+ * else
33
+ * Parser-->>Caller: { table, event, owner? }
34
+ * end
35
+ * @memberOf module:for-fabric.shared
36
+ */
37
+ export function parseEventName(name) {
38
+ const parts = name.split("_");
39
+ if (parts.length < 2 || parts.length > 3)
40
+ return { event: name };
41
+ return {
42
+ table: parts[0],
43
+ event: parts[1],
44
+ owner: parts[2],
45
+ };
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0E7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxLQUFhLEVBQ2IsS0FBcUQsRUFDckQsS0FBYztJQUVkLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlCLElBQUksS0FBSztRQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBWTtJQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNqRSxPQUFPO1FBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDZixLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNmLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBS2hCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQnVsa0NydWRPcGVyYXRpb25LZXlzLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZXMgYSBGYWJyaWMgZXZlbnQgbmFtZSBmcm9tIGNvbXBvbmVudHNcbiAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBzdGFuZGFyZGl6ZWQgZXZlbnQgbmFtZSBieSBqb2luaW5nIHRhYmxlLCBldmVudCwgYW5kIG9wdGlvbmFsIG93bmVyIHdpdGggdW5kZXJzY29yZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZSAtIFRoZSB0YWJsZS9jb2xsZWN0aW9uIG5hbWVcbiAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZ30gZXZlbnQgLSBUaGUgZXZlbnQgdHlwZVxuICogQHBhcmFtIHtzdHJpbmd9IFtvd25lcl0gLSBPcHRpb25hbCBvd25lciBpZGVudGlmaWVyXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBnZW5lcmF0ZWQgZXZlbnQgbmFtZSBpbiBmb3JtYXQgXCJ0YWJsZV9ldmVudFwiIG9yIFwidGFibGVfZXZlbnRfb3duZXJcIlxuICogQGZ1bmN0aW9uIGdlbmVyYXRlRmFicmljRXZlbnROYW1lXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1mYWJyaWMuc2hhcmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUZhYnJpY0V2ZW50TmFtZShcbiAgdGFibGU6IHN0cmluZyxcbiAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcsXG4gIG93bmVyPzogc3RyaW5nXG4pIHtcbiAgY29uc3QgcGFyYW1zID0gW3RhYmxlLCBldmVudF07XG4gIGlmIChvd25lcikgcGFyYW1zLnB1c2gob3duZXIpO1xuICByZXR1cm4gcGFyYW1zLmpvaW4oXCJfXCIpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBQYXJzZXMgYSBGYWJyaWMgZXZlbnQgbmFtZSBpbnRvIGl0cyBjb21wb25lbnRzXG4gKiBAc3VtbWFyeSBTcGxpdHMgYW4gZXZlbnQgbmFtZSBieSB1bmRlcnNjb3JlcyBhbmQgZXh0cmFjdHMgdGFibGUsIGV2ZW50LCBhbmQgb3B0aW9uYWwgb3duZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIGV2ZW50IG5hbWUgdG8gcGFyc2VcbiAqIEByZXR1cm4ge3t0YWJsZTogc3RyaW5nLCBldmVudDogT3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZywgb3duZXI6IHN0cmluZ319IFRoZSBwYXJzZWQgY29tcG9uZW50cyBhcyBhIHN0cnVjdHVyZWQgb2JqZWN0XG4gKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBJZiB0aGUgZXZlbnQgbmFtZSBmb3JtYXQgaXMgaW52YWxpZFxuICogQGZ1bmN0aW9uIHBhcnNlRXZlbnROYW1lXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBQYXJzZXIgYXMgcGFyc2VFdmVudE5hbWVcbiAqICAgQ2FsbGVyLT4+UGFyc2VyOiBwYXJzZUV2ZW50TmFtZShuYW1lKVxuICogICBQYXJzZXItPj5QYXJzZXI6IHNwbGl0IG5hbWUgYnkgXCJfXCJcbiAqICAgYWx0IHBhcnRzIGxlbmd0aCBpbnZhbGlkXG4gKiAgICAgUGFyc2VyLS0+PkNhbGxlcjogdGhyb3cgSW50ZXJuYWxFcnJvclxuICogICBlbHNlXG4gKiAgICAgUGFyc2VyLS0+PkNhbGxlcjogeyB0YWJsZSwgZXZlbnQsIG93bmVyPyB9XG4gKiAgIGVuZFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLnNoYXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VFdmVudE5hbWUobmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHBhcnRzID0gbmFtZS5zcGxpdChcIl9cIik7XG4gIGlmIChwYXJ0cy5sZW5ndGggPCAyIHx8IHBhcnRzLmxlbmd0aCA+IDMpIHJldHVybiB7IGV2ZW50OiBuYW1lIH07XG4gIHJldHVybiB7XG4gICAgdGFibGU6IHBhcnRzWzBdLFxuICAgIGV2ZW50OiBwYXJ0c1sxXSxcbiAgICBvd25lcjogcGFydHNbMl0sXG4gIH0gYXMge1xuICAgIHRhYmxlOiBzdHJpbmc7XG4gICAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmc7XG4gICAgb3duZXI/OiBzdHJpbmc7XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import "reflect-metadata";
2
+ export type GetCertificatesRequest = {
3
+ id?: string;
4
+ aki?: string;
5
+ serial?: string;
6
+ revoked_start?: string;
7
+ revoked_end?: string;
8
+ expired_start?: string;
9
+ expired_end?: string;
10
+ notrevoked?: boolean;
11
+ notexpired?: boolean;
12
+ ca?: string;
13
+ };
14
+ export type CertificateResponse = {
15
+ caname: string;
16
+ certs: {
17
+ PEM: string;
18
+ }[];
19
+ };
20
+ export type FabricIdentity = {
21
+ id: string;
22
+ type: string;
23
+ affiliation: string;
24
+ attrs: {
25
+ name: string;
26
+ value: string;
27
+ }[];
28
+ max_enrollments: number;
29
+ };
30
+ export type IdentityResponse = {
31
+ caname: string;
32
+ identities: FabricIdentity[];
33
+ };
@@ -0,0 +1,2 @@
1
+ import "reflect-metadata";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmljLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9mYWJyaWMtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcblxuZXhwb3J0IHR5cGUgR2V0Q2VydGlmaWNhdGVzUmVxdWVzdCA9IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGFraT86IHN0cmluZztcbiAgc2VyaWFsPzogc3RyaW5nO1xuICByZXZva2VkX3N0YXJ0Pzogc3RyaW5nO1xuICByZXZva2VkX2VuZD86IHN0cmluZztcbiAgZXhwaXJlZF9zdGFydD86IHN0cmluZztcbiAgZXhwaXJlZF9lbmQ/OiBzdHJpbmc7XG4gIG5vdHJldm9rZWQ/OiBib29sZWFuO1xuICBub3RleHBpcmVkPzogYm9vbGVhbjtcbiAgY2E/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBDZXJ0aWZpY2F0ZVJlc3BvbnNlID0ge1xuICBjYW5hbWU6IHN0cmluZztcbiAgY2VydHM6IHsgUEVNOiBzdHJpbmcgfVtdO1xufTtcblxuZXhwb3J0IHR5cGUgRmFicmljSWRlbnRpdHkgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgYWZmaWxpYXRpb246IHN0cmluZztcbiAgYXR0cnM6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXTtcbiAgbWF4X2Vucm9sbG1lbnRzOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBJZGVudGl0eVJlc3BvbnNlID0ge1xuICBjYW5hbWU6IHN0cmluZztcbiAgaWRlbnRpdGllczogRmFicmljSWRlbnRpdHlbXTtcbn07XG4iXX0=
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @description Hyperledger Fabric Shared Module for Decaf-ts
3
+ * @summary This module provides common logic to the client and contract sides of Hyperledger Fabric
4
+ * @namespace shared
5
+ * @memberOf module:for-fabric
6
+ */
7
+ export * from "./events";
8
+ export * from "./utils";
9
+ export * from "./types";
10
+ export * from "../client/services";
11
+ export * from "./model";
12
+ export * from "./decorators";
13
+ export * from "./constants";
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @description Hyperledger Fabric Shared Module for Decaf-ts
3
+ * @summary This module provides common logic to the client and contract sides of Hyperledger Fabric
4
+ * @namespace shared
5
+ * @memberOf module:for-fabric
6
+ */
7
+ export * from "./events.js";
8
+ export * from "./utils.js";
9
+ export * from "./types.js";
10
+ export * from "./../client/services/index.js";
11
+ export * from "./model/index.js";
12
+ export * from "./decorators.js";
13
+ export * from "./constants.js";
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsNEJBQXlCO0FBQ3pCLDJCQUF3QjtBQUN4QiwyQkFBd0I7QUFDeEIsOENBQW1DO0FBQ25DLGlDQUF3QjtBQUN4QixnQ0FBNkI7QUFDN0IsK0JBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gSHlwZXJsZWRnZXIgRmFicmljIFNoYXJlZCBNb2R1bGUgZm9yIERlY2FmLXRzXG4gKiBAc3VtbWFyeSBUaGlzIG1vZHVsZSBwcm92aWRlcyBjb21tb24gbG9naWMgdG8gdGhlIGNsaWVudCBhbmQgY29udHJhY3Qgc2lkZXMgb2YgSHlwZXJsZWRnZXIgRmFicmljXG4gKiBAbmFtZXNwYWNlIHNoYXJlZFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vZXZlbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuLi9jbGllbnQvc2VydmljZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { Context } from "fabric-contract-api";
2
+ /**
3
+ * @description Interface for health-check capable contracts/services
4
+ * @summary Provides a standard healthcheck method signature to probe liveness/readiness of Fabric contracts or services using a Fabric context
5
+ * @param {Context} ctx - Fabric transaction context used for performing the health check
6
+ * @return {Promise<string|boolean>} A message describing health or a boolean status
7
+ * @interface Checkable
8
+ * @memberOf module:for-fabric.shared
9
+ */
10
+ export interface Checkable {
11
+ /**
12
+ * @description Perform a health check using the Fabric transaction context
13
+ * @summary Allows implementers to report readiness/liveness information that can be a textual message or a boolean status
14
+ * @param {Context} ctx - Fabric transaction context reference used during the check
15
+ * @return {Promise<string|boolean>} A string message describing health or a boolean indicating healthy/unhealthy
16
+ */
17
+ healthcheck(ctx: Context): Promise<string | healthcheck>;
18
+ }
19
+ export type healthcheck = {
20
+ healthcheck: boolean;
21
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2thYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9pbnRlcmZhY2VzL0NoZWNrYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJmYWJyaWMtY29udHJhY3QtYXBpXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgaGVhbHRoLWNoZWNrIGNhcGFibGUgY29udHJhY3RzL3NlcnZpY2VzXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBhIHN0YW5kYXJkIGhlYWx0aGNoZWNrIG1ldGhvZCBzaWduYXR1cmUgdG8gcHJvYmUgbGl2ZW5lc3MvcmVhZGluZXNzIG9mIEZhYnJpYyBjb250cmFjdHMgb3Igc2VydmljZXMgdXNpbmcgYSBGYWJyaWMgY29udGV4dFxuICogQHBhcmFtIHtDb250ZXh0fSBjdHggLSBGYWJyaWMgdHJhbnNhY3Rpb24gY29udGV4dCB1c2VkIGZvciBwZXJmb3JtaW5nIHRoZSBoZWFsdGggY2hlY2tcbiAqIEByZXR1cm4ge1Byb21pc2U8c3RyaW5nfGJvb2xlYW4+fSBBIG1lc3NhZ2UgZGVzY3JpYmluZyBoZWFsdGggb3IgYSBib29sZWFuIHN0YXR1c1xuICogQGludGVyZmFjZSBDaGVja2FibGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja2FibGUge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBlcmZvcm0gYSBoZWFsdGggY2hlY2sgdXNpbmcgdGhlIEZhYnJpYyB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEBzdW1tYXJ5IEFsbG93cyBpbXBsZW1lbnRlcnMgdG8gcmVwb3J0IHJlYWRpbmVzcy9saXZlbmVzcyBpbmZvcm1hdGlvbiB0aGF0IGNhbiBiZSBhIHRleHR1YWwgbWVzc2FnZSBvciBhIGJvb2xlYW4gc3RhdHVzXG4gICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IC0gRmFicmljIHRyYW5zYWN0aW9uIGNvbnRleHQgcmVmZXJlbmNlIHVzZWQgZHVyaW5nIHRoZSBjaGVja1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHN0cmluZ3xib29sZWFuPn0gQSBzdHJpbmcgbWVzc2FnZSBkZXNjcmliaW5nIGhlYWx0aCBvciBhIGJvb2xlYW4gaW5kaWNhdGluZyBoZWFsdGh5L3VuaGVhbHRoeVxuICAgKi9cbiAgaGVhbHRoY2hlY2soY3R4OiBDb250ZXh0KTogUHJvbWlzZTxzdHJpbmcgfCBoZWFsdGhjaGVjaz47XG59XG5cbmV4cG9ydCB0eXBlIGhlYWx0aGNoZWNrID0geyBoZWFsdGhjaGVjazogYm9vbGVhbiB9O1xuIl19
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @description Overflow-safe addition operation
3
+ * @summary Adds two numbers and verifies no overflow by reverse-checking the operands
4
+ * @param {number} a - First operand
5
+ * @param {number} b - Second operand
6
+ * @return {number} The sum of a and b
7
+ * @function add
8
+ * @throws {OverflowError} on addition overflow
9
+ * @memberOf module:for-fabric.shared
10
+ */
11
+ export declare function add(a: number, b: number): number;
12
+ /**
13
+ * @description Overflow-safe subtraction operation
14
+ * @summary Subtracts b from a and validates no overflow by reverse-checking the operands
15
+ * @param {number} a - Minuend
16
+ * @param {number} b - Subtrahend
17
+ * @return {number} The difference a - b
18
+ * @function sub
19
+ * @throws {OverflowError} on subtaction overflow
20
+ * @memberOf module:for-fabric.shared
21
+ */
22
+ export declare function sub(a: number, b: number): number;
23
+ /**
24
+ * @summary Safe Integer Parse
25
+ *
26
+ * @param {string} string
27
+ *
28
+ * @function safeParseInt
29
+ *
30
+ * @throws {ValidationError} if parseInt returns NaN
31
+ *
32
+ * @memberOf module:for-fabric.shared
33
+ */
34
+ export declare function safeParseInt(string: string): number;
@@ -0,0 +1,61 @@
1
+ import { stringFormat } from "@decaf-ts/decorator-validation";
2
+ import { OverflowError } from "./errors.js";
3
+ import { ValidationError } from "@decaf-ts/db-decorators";
4
+ /**
5
+ * @description Overflow-safe addition operation
6
+ * @summary Adds two numbers and verifies no overflow by reverse-checking the operands
7
+ * @param {number} a - First operand
8
+ * @param {number} b - Second operand
9
+ * @return {number} The sum of a and b
10
+ * @function add
11
+ * @throws {OverflowError} on addition overflow
12
+ * @memberOf module:for-fabric.shared
13
+ */
14
+ export function add(a, b) {
15
+ const c = a + b;
16
+ if (a !== c - b || b !== c - a) {
17
+ throw new OverflowError(`Addition overflow: ${a} + ${b}`);
18
+ }
19
+ return c;
20
+ }
21
+ /**
22
+ * @description Overflow-safe subtraction operation
23
+ * @summary Subtracts b from a and validates no overflow by reverse-checking the operands
24
+ * @param {number} a - Minuend
25
+ * @param {number} b - Subtrahend
26
+ * @return {number} The difference a - b
27
+ * @function sub
28
+ * @throws {OverflowError} on subtaction overflow
29
+ * @memberOf module:for-fabric.shared
30
+ */
31
+ export function sub(a, b) {
32
+ const c = a - b;
33
+ if (a !== c + b || b !== a - c) {
34
+ throw new OverflowError(`Subtraction overflow: ${a} - ${b}`);
35
+ }
36
+ return c;
37
+ }
38
+ /**
39
+ * @summary Safe Integer Parse
40
+ *
41
+ * @param {string} string
42
+ *
43
+ * @function safeParseInt
44
+ *
45
+ * @throws {ValidationError} if parseInt returns NaN
46
+ *
47
+ * @memberOf module:for-fabric.shared
48
+ */
49
+ export function safeParseInt(string) {
50
+ // Regular expression to check if string only have digits
51
+ const digitRegex = /^\d+$/;
52
+ if (!digitRegex.test(string)) {
53
+ throw new ValidationError(stringFormat("Failed to parse: {0}", "string contains digits"));
54
+ }
55
+ const parsedint = parseInt(string);
56
+ if (isNaN(parsedint)) {
57
+ throw new ValidationError(stringFormat("Failed to parse: {0}", "string is not a parsable integer"));
58
+ }
59
+ return parsedint;
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaGFyZWQvbWF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBaUI7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWM7SUFDekMseURBQXlEO0lBQ3pELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQztJQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxlQUFlLENBQ3ZCLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUMvRCxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxlQUFlLENBQ3ZCLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxrQ0FBa0MsQ0FBQyxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHJpbmdGb3JtYXQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBPdmVyZmxvd0Vycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT3ZlcmZsb3ctc2FmZSBhZGRpdGlvbiBvcGVyYXRpb25cbiAqIEBzdW1tYXJ5IEFkZHMgdHdvIG51bWJlcnMgYW5kIHZlcmlmaWVzIG5vIG92ZXJmbG93IGJ5IHJldmVyc2UtY2hlY2tpbmcgdGhlIG9wZXJhbmRzXG4gKiBAcGFyYW0ge251bWJlcn0gYSAtIEZpcnN0IG9wZXJhbmRcbiAqIEBwYXJhbSB7bnVtYmVyfSBiIC0gU2Vjb25kIG9wZXJhbmRcbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIHN1bSBvZiBhIGFuZCBiXG4gKiBAZnVuY3Rpb24gYWRkXG4gKiBAdGhyb3dzIHtPdmVyZmxvd0Vycm9yfSBvbiBhZGRpdGlvbiBvdmVyZmxvd1xuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLnNoYXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkKGE6IG51bWJlciwgYjogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3QgYyA9IGEgKyBiO1xuICBpZiAoYSAhPT0gYyAtIGIgfHwgYiAhPT0gYyAtIGEpIHtcbiAgICB0aHJvdyBuZXcgT3ZlcmZsb3dFcnJvcihgQWRkaXRpb24gb3ZlcmZsb3c6ICR7YX0gKyAke2J9YCk7XG4gIH1cbiAgcmV0dXJuIGM7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE92ZXJmbG93LXNhZmUgc3VidHJhY3Rpb24gb3BlcmF0aW9uXG4gKiBAc3VtbWFyeSBTdWJ0cmFjdHMgYiBmcm9tIGEgYW5kIHZhbGlkYXRlcyBubyBvdmVyZmxvdyBieSByZXZlcnNlLWNoZWNraW5nIHRoZSBvcGVyYW5kc1xuICogQHBhcmFtIHtudW1iZXJ9IGEgLSBNaW51ZW5kXG4gKiBAcGFyYW0ge251bWJlcn0gYiAtIFN1YnRyYWhlbmRcbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIGRpZmZlcmVuY2UgYSAtIGJcbiAqIEBmdW5jdGlvbiBzdWJcbiAqIEB0aHJvd3Mge092ZXJmbG93RXJyb3J9IG9uIHN1YnRhY3Rpb24gb3ZlcmZsb3dcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1YihhOiBudW1iZXIsIGI6IG51bWJlcik6IG51bWJlciB7XG4gIGNvbnN0IGMgPSBhIC0gYjtcbiAgaWYgKGEgIT09IGMgKyBiIHx8IGIgIT09IGEgLSBjKSB7XG4gICAgdGhyb3cgbmV3IE92ZXJmbG93RXJyb3IoYFN1YnRyYWN0aW9uIG92ZXJmbG93OiAke2F9IC0gJHtifWApO1xuICB9XG4gIHJldHVybiBjO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFNhZmUgSW50ZWdlciBQYXJzZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqXG4gKiBAZnVuY3Rpb24gc2FmZVBhcnNlSW50XG4gKlxuICogQHRocm93cyB7VmFsaWRhdGlvbkVycm9yfSBpZiBwYXJzZUludCByZXR1cm5zIE5hTlxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhZmVQYXJzZUludChzdHJpbmc6IHN0cmluZyk6IG51bWJlciB7XG4gIC8vIFJlZ3VsYXIgZXhwcmVzc2lvbiB0byBjaGVjayBpZiBzdHJpbmcgb25seSBoYXZlIGRpZ2l0c1xuICBjb25zdCBkaWdpdFJlZ2V4ID0gL15cXGQrJC87XG4gIGlmICghZGlnaXRSZWdleC50ZXN0KHN0cmluZykpIHtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgc3RyaW5nRm9ybWF0KFwiRmFpbGVkIHRvIHBhcnNlOiB7MH1cIiwgXCJzdHJpbmcgY29udGFpbnMgZGlnaXRzXCIpXG4gICAgKTtcbiAgfVxuICBjb25zdCBwYXJzZWRpbnQgPSBwYXJzZUludChzdHJpbmcpO1xuICBpZiAoaXNOYU4ocGFyc2VkaW50KSkge1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICBzdHJpbmdGb3JtYXQoXCJGYWlsZWQgdG8gcGFyc2U6IHswfVwiLCBcInN0cmluZyBpcyBub3QgYSBwYXJzYWJsZSBpbnRlZ2VyXCIpXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcGFyc2VkaW50O1xufVxuIl19
@@ -0,0 +1,42 @@
1
+ import { BaseModel } from "@decaf-ts/core";
2
+ import { type ModelArg } from "@decaf-ts/decorator-validation";
3
+ import { IdentityCredentials } from "./IdentityCredentials";
4
+ import { IdentityType } from "../constants";
5
+ /**
6
+ * @description Identity model representing a Fabric wallet entry
7
+ * @summary Encapsulates an identity stored in a Fabric wallet, including its MSP identifier, credential linkage, and type information. Built on BaseModel for integration with Decaf validation and persistence.
8
+ * @param {ModelArg<Identity>} [arg] - Optional initialization object used to populate model fields
9
+ * @class Identity
10
+ * @example
11
+ * // Create a new identity referencing existing credentials
12
+ * const id = new Identity({ id: "user1", mspId: "Org1MSP", type: IdentityType.X509 });
13
+ * @mermaid
14
+ * sequenceDiagram
15
+ * participant App
16
+ * participant Model as Identity
17
+ * App->>Model: new Identity({ id, mspId, type })
18
+ * Model-->>App: instance
19
+ */
20
+ export declare class Identity extends BaseModel {
21
+ /**
22
+ * @description Unique identifier of the identity in the wallet
23
+ * @summary Primary key used to reference this identity record
24
+ */
25
+ id?: string;
26
+ /**
27
+ * @description Link to the identity credentials stored separately
28
+ * @summary One-to-one relationship to the credentials entity; cascades on update and delete
29
+ */
30
+ credentials?: IdentityCredentials;
31
+ /**
32
+ * @description Membership Service Provider identifier
33
+ * @summary The MSP ID corresponding to the organization that issued this identity
34
+ */
35
+ mspId?: string;
36
+ /**
37
+ * @description Type of identity
38
+ * @summary Indicates the identity encoding/format; defaults to X.509
39
+ */
40
+ type?: IdentityType;
41
+ constructor(arg: ModelArg<Identity>);
42
+ }