@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,2 @@
1
+ export * from "../FabricContractStatement";
2
+ export declare const contracts: any[];
@@ -0,0 +1,4 @@
1
+ import { FabricERC20Contract } from "./erc20contract.js";
2
+ export * from "./../FabricContractStatement.js";
3
+ export const contracts = [FabricERC20Contract];
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJhY3RzL2VyYzIwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwyQkFBd0I7QUFFdEQsZ0RBQTJDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBVSxDQUFDLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYWJyaWNFUkMyMENvbnRyYWN0IH0gZnJvbSBcIi4vZXJjMjBjb250cmFjdFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi4vRmFicmljQ29udHJhY3RTdGF0ZW1lbnRcIjtcblxuZXhwb3J0IGNvbnN0IGNvbnRyYWN0czogYW55W10gPSBbRmFicmljRVJDMjBDb250cmFjdF07XG4iXX0=
@@ -0,0 +1,114 @@
1
+ import { BaseModel } from "@decaf-ts/core";
2
+ import { type ModelArg } from "@decaf-ts/decorator-validation";
3
+ /**
4
+ * @description ERC20 token metadata model
5
+ * @summary Represents an ERC20 token definition within the Fabric ERC20 sample, including name, symbol, decimals, and the owning identity. Used to define the unique token managed by the contract.
6
+ * @param {ModelArg<ERC20Token>} [m] - Optional partial data or another instance to initialize the model
7
+ * @return {void}
8
+ * @class ERC20Token
9
+ * @example
10
+ * const token = new ERC20Token({ name: "MyToken", symbol: "MTK", decimals: 18, owner: "x509::..." });
11
+ * // Persist through a repository: await repo.create(token, ctx)
12
+ * @mermaid
13
+ * sequenceDiagram
14
+ * participant App
15
+ * participant Repo
16
+ * participant Adapter
17
+ * App->>Repo: create(new ERC20Token({...}), ctx)
18
+ * Repo->>Adapter: create(table, id=name, record, flags)
19
+ * Adapter-->>Repo: stored
20
+ * Repo-->>App: model
21
+ */
22
+ export declare class ERC20Token extends BaseModel {
23
+ /**
24
+ * @description Token unique name
25
+ * @summary Serves as the primary key for the ERC20 token definition; typically a human-readable identifier
26
+ */
27
+ name: string;
28
+ /**
29
+ * @description Owning identity of the token
30
+ * @summary X.509 subject or MSP identity string that denotes who owns/controls the token definition
31
+ */
32
+ owner: string;
33
+ /**
34
+ * @description Token symbol
35
+ * @summary Short ticker-like symbol used to represent the token (e.g., MTK)
36
+ */
37
+ symbol: string;
38
+ /**
39
+ * @description Decimal precision for token amounts
40
+ * @summary Number of digits after the decimal separator used when formatting token balances
41
+ */
42
+ decimals: number;
43
+ constructor(m?: ModelArg<ERC20Wallet>);
44
+ }
45
+ /**
46
+ * @description ERC20 wallet model
47
+ * @summary Represents a holder account for an ERC20 token within the Fabric network, tracking balance and token association.
48
+ * @param {ModelArg<ERC20Wallet>} [m] - Optional partial data or another instance to initialize the model
49
+ * @return {void}
50
+ * @class ERC20Wallet
51
+ * @example
52
+ * const wallet = new ERC20Wallet({ id: "acct1", token: "MyToken", balance: 1000 });
53
+ * // Update balance via repository: await repo.update(wallet, ctx)
54
+ * @mermaid
55
+ * sequenceDiagram
56
+ * participant App
57
+ * participant Repo
58
+ * App->>Repo: read("acct1", ctx)
59
+ * Repo-->>App: ERC20Wallet
60
+ */
61
+ export declare class ERC20Wallet extends BaseModel {
62
+ /**
63
+ * @description Wallet unique identifier
64
+ * @summary Primary key for the wallet; commonly references an account or identity
65
+ */
66
+ id: string;
67
+ /**
68
+ * @description Associated token name
69
+ * @summary References the ERC20Token this wallet holds; maintained as a relationship for cascading updates/deletes
70
+ */
71
+ token: string;
72
+ /**
73
+ * @description Token balance for this wallet
74
+ * @summary Current amount of the associated token held by this wallet
75
+ */
76
+ balance: number;
77
+ /**
78
+ * @description Captive flag or identifier
79
+ * @summary Optional field used by some flows to mark non-transferable funds or managed custody
80
+ */
81
+ captive: string;
82
+ constructor(m?: ModelArg<ERC20Wallet>);
83
+ }
84
+ /**
85
+ * @description ERC20 allowance model
86
+ * @summary Captures an approval relationship where an owner allows a spender to transfer up to a certain value from the owner's wallet.
87
+ * @param {ModelArg<Allowance>} [m] - Optional partial data or another instance to initialize the model
88
+ * @return {void}
89
+ * @class Allowance
90
+ * @example
91
+ * const allowance = new Allowance({ owner: "acct1", spender: "acct2", value: 50 });
92
+ * @mermaid
93
+ * sequenceDiagram
94
+ * participant App
95
+ * App->>App: new Allowance({ owner, spender, value })
96
+ */
97
+ export declare class Allowance extends BaseModel {
98
+ /**
99
+ * @description Owner wallet identifier
100
+ * @summary Wallet that authorizes the allowance
101
+ */
102
+ owner: string;
103
+ /**
104
+ * @description Spender wallet identifier
105
+ * @summary Wallet allowed to spend up to the approved value from the owner
106
+ */
107
+ spender: string;
108
+ /**
109
+ * @description Approved value
110
+ * @summary Maximum token amount the spender may transfer on behalf of the owner
111
+ */
112
+ value: number;
113
+ constructor(m?: ModelArg<Allowance>);
114
+ }
@@ -0,0 +1,206 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { BaseModel, column, pk, table } from "@decaf-ts/core";
11
+ import { model, required } from "@decaf-ts/decorator-validation";
12
+ /**
13
+ * @description ERC20 token metadata model
14
+ * @summary Represents an ERC20 token definition within the Fabric ERC20 sample, including name, symbol, decimals, and the owning identity. Used to define the unique token managed by the contract.
15
+ * @param {ModelArg<ERC20Token>} [m] - Optional partial data or another instance to initialize the model
16
+ * @return {void}
17
+ * @class ERC20Token
18
+ * @example
19
+ * const token = new ERC20Token({ name: "MyToken", symbol: "MTK", decimals: 18, owner: "x509::..." });
20
+ * // Persist through a repository: await repo.create(token, ctx)
21
+ * @mermaid
22
+ * sequenceDiagram
23
+ * participant App
24
+ * participant Repo
25
+ * participant Adapter
26
+ * App->>Repo: create(new ERC20Token({...}), ctx)
27
+ * Repo->>Adapter: create(table, id=name, record, flags)
28
+ * Adapter-->>Repo: stored
29
+ * Repo-->>App: model
30
+ */
31
+ let ERC20Token = class ERC20Token extends BaseModel {
32
+ constructor(m) {
33
+ super(m);
34
+ }
35
+ };
36
+ __decorate([
37
+ pk({ type: "String" })
38
+ /**
39
+ * @description Token unique name
40
+ * @summary Serves as the primary key for the ERC20 token definition; typically a human-readable identifier
41
+ */
42
+ ,
43
+ __metadata("design:type", String)
44
+ ], ERC20Token.prototype, "name", void 0);
45
+ __decorate([
46
+ column(),
47
+ required()
48
+ /**
49
+ * @description Owning identity of the token
50
+ * @summary X.509 subject or MSP identity string that denotes who owns/controls the token definition
51
+ */
52
+ ,
53
+ __metadata("design:type", String)
54
+ ], ERC20Token.prototype, "owner", void 0);
55
+ __decorate([
56
+ column(),
57
+ required()
58
+ /**
59
+ * @description Token symbol
60
+ * @summary Short ticker-like symbol used to represent the token (e.g., MTK)
61
+ */
62
+ ,
63
+ __metadata("design:type", String)
64
+ ], ERC20Token.prototype, "symbol", void 0);
65
+ __decorate([
66
+ column(),
67
+ required()
68
+ /**
69
+ * @description Decimal precision for token amounts
70
+ * @summary Number of digits after the decimal separator used when formatting token balances
71
+ */
72
+ ,
73
+ __metadata("design:type", Number)
74
+ ], ERC20Token.prototype, "decimals", void 0);
75
+ ERC20Token = __decorate([
76
+ table("erc20_tokens"),
77
+ model(),
78
+ __metadata("design:paramtypes", [Object])
79
+ ], ERC20Token);
80
+ export { ERC20Token };
81
+ /**
82
+ * @description ERC20 wallet model
83
+ * @summary Represents a holder account for an ERC20 token within the Fabric network, tracking balance and token association.
84
+ * @param {ModelArg<ERC20Wallet>} [m] - Optional partial data or another instance to initialize the model
85
+ * @return {void}
86
+ * @class ERC20Wallet
87
+ * @example
88
+ * const wallet = new ERC20Wallet({ id: "acct1", token: "MyToken", balance: 1000 });
89
+ * // Update balance via repository: await repo.update(wallet, ctx)
90
+ * @mermaid
91
+ * sequenceDiagram
92
+ * participant App
93
+ * participant Repo
94
+ * App->>Repo: read("acct1", ctx)
95
+ * Repo-->>App: ERC20Wallet
96
+ */
97
+ let ERC20Wallet = class ERC20Wallet extends BaseModel {
98
+ constructor(m) {
99
+ super(m);
100
+ }
101
+ };
102
+ __decorate([
103
+ pk({ type: "String" })
104
+ /**
105
+ * @description Wallet unique identifier
106
+ * @summary Primary key for the wallet; commonly references an account or identity
107
+ */
108
+ ,
109
+ __metadata("design:type", String)
110
+ ], ERC20Wallet.prototype, "id", void 0);
111
+ __decorate([
112
+ column(),
113
+ required()
114
+ /**
115
+ * @description Associated token name
116
+ * @summary References the ERC20Token this wallet holds; maintained as a relationship for cascading updates/deletes
117
+ */
118
+ ,
119
+ __metadata("design:type", String)
120
+ ], ERC20Wallet.prototype, "token", void 0);
121
+ __decorate([
122
+ column(),
123
+ required()
124
+ /**
125
+ * @description Token balance for this wallet
126
+ * @summary Current amount of the associated token held by this wallet
127
+ */
128
+ ,
129
+ __metadata("design:type", Number)
130
+ ], ERC20Wallet.prototype, "balance", void 0);
131
+ __decorate([
132
+ column()
133
+ /**
134
+ * @description Captive flag or identifier
135
+ * @summary Optional field used by some flows to mark non-transferable funds or managed custody
136
+ */
137
+ ,
138
+ __metadata("design:type", String)
139
+ ], ERC20Wallet.prototype, "captive", void 0);
140
+ ERC20Wallet = __decorate([
141
+ table("erc20_wallets"),
142
+ model(),
143
+ __metadata("design:paramtypes", [Object])
144
+ ], ERC20Wallet);
145
+ export { ERC20Wallet };
146
+ /**
147
+ * @description ERC20 allowance model
148
+ * @summary Captures an approval relationship where an owner allows a spender to transfer up to a certain value from the owner's wallet.
149
+ * @param {ModelArg<Allowance>} [m] - Optional partial data or another instance to initialize the model
150
+ * @return {void}
151
+ * @class Allowance
152
+ * @example
153
+ * const allowance = new Allowance({ owner: "acct1", spender: "acct2", value: 50 });
154
+ * @mermaid
155
+ * sequenceDiagram
156
+ * participant App
157
+ * App->>App: new Allowance({ owner, spender, value })
158
+ */
159
+ let Allowance = class Allowance extends BaseModel {
160
+ constructor(m) {
161
+ super(m);
162
+ }
163
+ };
164
+ __decorate([
165
+ pk({ type: "String" })
166
+ /**
167
+ * @description Allowance unique identifier
168
+ * @summary Primary key for the allowance; typically a unique identifier for the approval relationship
169
+ */
170
+ ,
171
+ column(),
172
+ required()
173
+ /**
174
+ * @description Owner wallet identifier
175
+ * @summary Wallet that authorizes the allowance
176
+ */
177
+ ,
178
+ __metadata("design:type", String)
179
+ ], Allowance.prototype, "owner", void 0);
180
+ __decorate([
181
+ column(),
182
+ required()
183
+ /**
184
+ * @description Spender wallet identifier
185
+ * @summary Wallet allowed to spend up to the approved value from the owner
186
+ */
187
+ ,
188
+ __metadata("design:type", String)
189
+ ], Allowance.prototype, "spender", void 0);
190
+ __decorate([
191
+ column(),
192
+ required()
193
+ /**
194
+ * @description Approved value
195
+ * @summary Maximum token amount the spender may transfer on behalf of the owner
196
+ */
197
+ ,
198
+ __metadata("design:type", Number)
199
+ ], Allowance.prototype, "value", void 0);
200
+ Allowance = __decorate([
201
+ table("erc20_allowances"),
202
+ model(),
203
+ __metadata("design:paramtypes", [Object])
204
+ ], Allowance);
205
+ export { Allowance };
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyYWN0cy9lcmMyMC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQWlCLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFHSSxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFXLFNBQVEsU0FBUztJQThCdkMsWUFBWSxDQUF5QjtRQUNuQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0YsQ0FBQTtBQTNCQztJQUxDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUN2Qjs7O09BR0c7Ozt3Q0FDVztBQVFkO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1g7OztPQUdHOzs7eUNBQ1k7QUFPZjtJQU5DLE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTtJQUNYOzs7T0FHRzs7OzBDQUNhO0FBT2hCO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1g7OztPQUdHOzs7NENBQ2U7QUE1QlAsVUFBVTtJQUZ0QixLQUFLLENBQUMsY0FBYyxDQUFDO0lBQ3JCLEtBQUssRUFBRTs7R0FDSyxVQUFVLENBaUN0Qjs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFHSSxJQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFZLFNBQVEsU0FBUztJQStCeEMsWUFBWSxDQUF5QjtRQUNuQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0YsQ0FBQTtBQTVCQztJQUxDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUN2Qjs7O09BR0c7Ozt1Q0FDUztBQVFaO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1g7OztPQUdHOzs7MENBQ1k7QUFRZjtJQU5DLE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTtJQUNYOzs7T0FHRzs7OzRDQUNjO0FBT2pCO0lBTEMsTUFBTSxFQUFFO0lBQ1Q7OztPQUdHOzs7NENBQ2M7QUE3Qk4sV0FBVztJQUZ2QixLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3RCLEtBQUssRUFBRTs7R0FDSyxXQUFXLENBa0N2Qjs7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFHSSxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVUsU0FBUSxTQUFTO0lBOEJ0QyxZQUFZLENBQXVCO1FBQ2pDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDRixDQUFBO0FBckJDO0lBWEMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ3ZCOzs7T0FHRzs7SUFDRixNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDWDs7O09BR0c7Ozt3Q0FDWTtBQVFmO0lBTkMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFO0lBQ1g7OztPQUdHOzs7MENBQ2M7QUFRakI7SUFOQyxNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDWDs7O09BR0c7Ozt3Q0FDWTtBQTVCSixTQUFTO0lBRnJCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztJQUN6QixLQUFLLEVBQUU7O0dBQ0ssU0FBUyxDQWlDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwsIGNvbHVtbiwgcGssIHRhYmxlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBtb2RlbCwgdHlwZSBNb2RlbEFyZywgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVSQzIwIHRva2VuIG1ldGFkYXRhIG1vZGVsXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGFuIEVSQzIwIHRva2VuIGRlZmluaXRpb24gd2l0aGluIHRoZSBGYWJyaWMgRVJDMjAgc2FtcGxlLCBpbmNsdWRpbmcgbmFtZSwgc3ltYm9sLCBkZWNpbWFscywgYW5kIHRoZSBvd25pbmcgaWRlbnRpdHkuIFVzZWQgdG8gZGVmaW5lIHRoZSB1bmlxdWUgdG9rZW4gbWFuYWdlZCBieSB0aGUgY29udHJhY3QuXG4gKiBAcGFyYW0ge01vZGVsQXJnPEVSQzIwVG9rZW4+fSBbbV0gLSBPcHRpb25hbCBwYXJ0aWFsIGRhdGEgb3IgYW5vdGhlciBpbnN0YW5jZSB0byBpbml0aWFsaXplIHRoZSBtb2RlbFxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBFUkMyMFRva2VuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgdG9rZW4gPSBuZXcgRVJDMjBUb2tlbih7IG5hbWU6IFwiTXlUb2tlblwiLCBzeW1ib2w6IFwiTVRLXCIsIGRlY2ltYWxzOiAxOCwgb3duZXI6IFwieDUwOTo6Li4uXCIgfSk7XG4gKiAvLyBQZXJzaXN0IHRocm91Z2ggYSByZXBvc2l0b3J5OiBhd2FpdCByZXBvLmNyZWF0ZSh0b2tlbiwgY3R4KVxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBBcHBcbiAqICAgcGFydGljaXBhbnQgUmVwb1xuICogICBwYXJ0aWNpcGFudCBBZGFwdGVyXG4gKiAgIEFwcC0+PlJlcG86IGNyZWF0ZShuZXcgRVJDMjBUb2tlbih7Li4ufSksIGN0eClcbiAqICAgUmVwby0+PkFkYXB0ZXI6IGNyZWF0ZSh0YWJsZSwgaWQ9bmFtZSwgcmVjb3JkLCBmbGFncylcbiAqICAgQWRhcHRlci0tPj5SZXBvOiBzdG9yZWRcbiAqICAgUmVwby0tPj5BcHA6IG1vZGVsXG4gKi9cbkB0YWJsZShcImVyYzIwX3Rva2Vuc1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBFUkMyMFRva2VuIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgQHBrKHsgdHlwZTogXCJTdHJpbmdcIiB9KVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRva2VuIHVuaXF1ZSBuYW1lXG4gICAqIEBzdW1tYXJ5IFNlcnZlcyBhcyB0aGUgcHJpbWFyeSBrZXkgZm9yIHRoZSBFUkMyMCB0b2tlbiBkZWZpbml0aW9uOyB0eXBpY2FsbHkgYSBodW1hbi1yZWFkYWJsZSBpZGVudGlmaWVyXG4gICAqL1xuICBuYW1lITogc3RyaW5nO1xuXG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE93bmluZyBpZGVudGl0eSBvZiB0aGUgdG9rZW5cbiAgICogQHN1bW1hcnkgWC41MDkgc3ViamVjdCBvciBNU1AgaWRlbnRpdHkgc3RyaW5nIHRoYXQgZGVub3RlcyB3aG8gb3ducy9jb250cm9scyB0aGUgdG9rZW4gZGVmaW5pdGlvblxuICAgKi9cbiAgb3duZXIhOiBzdHJpbmc7XG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRva2VuIHN5bWJvbFxuICAgKiBAc3VtbWFyeSBTaG9ydCB0aWNrZXItbGlrZSBzeW1ib2wgdXNlZCB0byByZXByZXNlbnQgdGhlIHRva2VuIChlLmcuLCBNVEspXG4gICAqL1xuICBzeW1ib2whOiBzdHJpbmc7XG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlY2ltYWwgcHJlY2lzaW9uIGZvciB0b2tlbiBhbW91bnRzXG4gICAqIEBzdW1tYXJ5IE51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgc2VwYXJhdG9yIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRva2VuIGJhbGFuY2VzXG4gICAqL1xuICBkZWNpbWFscyE6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihtPzogTW9kZWxBcmc8RVJDMjBXYWxsZXQ+KSB7XG4gICAgc3VwZXIobSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRVJDMjAgd2FsbGV0IG1vZGVsXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgaG9sZGVyIGFjY291bnQgZm9yIGFuIEVSQzIwIHRva2VuIHdpdGhpbiB0aGUgRmFicmljIG5ldHdvcmssIHRyYWNraW5nIGJhbGFuY2UgYW5kIHRva2VuIGFzc29jaWF0aW9uLlxuICogQHBhcmFtIHtNb2RlbEFyZzxFUkMyMFdhbGxldD59IFttXSAtIE9wdGlvbmFsIHBhcnRpYWwgZGF0YSBvciBhbm90aGVyIGluc3RhbmNlIHRvIGluaXRpYWxpemUgdGhlIG1vZGVsXG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGNsYXNzIEVSQzIwV2FsbGV0XG4gKiBAZXhhbXBsZVxuICogY29uc3Qgd2FsbGV0ID0gbmV3IEVSQzIwV2FsbGV0KHsgaWQ6IFwiYWNjdDFcIiwgdG9rZW46IFwiTXlUb2tlblwiLCBiYWxhbmNlOiAxMDAwIH0pO1xuICogLy8gVXBkYXRlIGJhbGFuY2UgdmlhIHJlcG9zaXRvcnk6IGF3YWl0IHJlcG8udXBkYXRlKHdhbGxldCwgY3R4KVxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBBcHBcbiAqICAgcGFydGljaXBhbnQgUmVwb1xuICogICBBcHAtPj5SZXBvOiByZWFkKFwiYWNjdDFcIiwgY3R4KVxuICogICBSZXBvLS0+PkFwcDogRVJDMjBXYWxsZXRcbiAqL1xuQHRhYmxlKFwiZXJjMjBfd2FsbGV0c1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBFUkMyMFdhbGxldCBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIEBwayh7IHR5cGU6IFwiU3RyaW5nXCIgfSlcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXYWxsZXQgdW5pcXVlIGlkZW50aWZpZXJcbiAgICogQHN1bW1hcnkgUHJpbWFyeSBrZXkgZm9yIHRoZSB3YWxsZXQ7IGNvbW1vbmx5IHJlZmVyZW5jZXMgYW4gYWNjb3VudCBvciBpZGVudGl0eVxuICAgKi9cbiAgaWQhOiBzdHJpbmc7XG5cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQXNzb2NpYXRlZCB0b2tlbiBuYW1lXG4gICAqIEBzdW1tYXJ5IFJlZmVyZW5jZXMgdGhlIEVSQzIwVG9rZW4gdGhpcyB3YWxsZXQgaG9sZHM7IG1haW50YWluZWQgYXMgYSByZWxhdGlvbnNoaXAgZm9yIGNhc2NhZGluZyB1cGRhdGVzL2RlbGV0ZXNcbiAgICovXG4gIHRva2VuITogc3RyaW5nO1xuXG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRva2VuIGJhbGFuY2UgZm9yIHRoaXMgd2FsbGV0XG4gICAqIEBzdW1tYXJ5IEN1cnJlbnQgYW1vdW50IG9mIHRoZSBhc3NvY2lhdGVkIHRva2VuIGhlbGQgYnkgdGhpcyB3YWxsZXRcbiAgICovXG4gIGJhbGFuY2UhOiBudW1iZXI7XG5cbiAgQGNvbHVtbigpXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2FwdGl2ZSBmbGFnIG9yIGlkZW50aWZpZXJcbiAgICogQHN1bW1hcnkgT3B0aW9uYWwgZmllbGQgdXNlZCBieSBzb21lIGZsb3dzIHRvIG1hcmsgbm9uLXRyYW5zZmVyYWJsZSBmdW5kcyBvciBtYW5hZ2VkIGN1c3RvZHlcbiAgICovXG4gIGNhcHRpdmUhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobT86IE1vZGVsQXJnPEVSQzIwV2FsbGV0Pikge1xuICAgIHN1cGVyKG0pO1xuICB9XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVSQzIwIGFsbG93YW5jZSBtb2RlbFxuICogQHN1bW1hcnkgQ2FwdHVyZXMgYW4gYXBwcm92YWwgcmVsYXRpb25zaGlwIHdoZXJlIGFuIG93bmVyIGFsbG93cyBhIHNwZW5kZXIgdG8gdHJhbnNmZXIgdXAgdG8gYSBjZXJ0YWluIHZhbHVlIGZyb20gdGhlIG93bmVyJ3Mgd2FsbGV0LlxuICogQHBhcmFtIHtNb2RlbEFyZzxBbGxvd2FuY2U+fSBbbV0gLSBPcHRpb25hbCBwYXJ0aWFsIGRhdGEgb3IgYW5vdGhlciBpbnN0YW5jZSB0byBpbml0aWFsaXplIHRoZSBtb2RlbFxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBBbGxvd2FuY2VcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBhbGxvd2FuY2UgPSBuZXcgQWxsb3dhbmNlKHsgb3duZXI6IFwiYWNjdDFcIiwgc3BlbmRlcjogXCJhY2N0MlwiLCB2YWx1ZTogNTAgfSk7XG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBBcHAtPj5BcHA6IG5ldyBBbGxvd2FuY2UoeyBvd25lciwgc3BlbmRlciwgdmFsdWUgfSlcbiAqL1xuQHRhYmxlKFwiZXJjMjBfYWxsb3dhbmNlc1wiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBBbGxvd2FuY2UgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBAcGsoeyB0eXBlOiBcIlN0cmluZ1wiIH0pXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQWxsb3dhbmNlIHVuaXF1ZSBpZGVudGlmaWVyXG4gICAqIEBzdW1tYXJ5IFByaW1hcnkga2V5IGZvciB0aGUgYWxsb3dhbmNlOyB0eXBpY2FsbHkgYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGFwcHJvdmFsIHJlbGF0aW9uc2hpcFxuICAgKi9cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gT3duZXIgd2FsbGV0IGlkZW50aWZpZXJcbiAgICogQHN1bW1hcnkgV2FsbGV0IHRoYXQgYXV0aG9yaXplcyB0aGUgYWxsb3dhbmNlXG4gICAqL1xuICBvd25lciE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTcGVuZGVyIHdhbGxldCBpZGVudGlmaWVyXG4gICAqIEBzdW1tYXJ5IFdhbGxldCBhbGxvd2VkIHRvIHNwZW5kIHVwIHRvIHRoZSBhcHByb3ZlZCB2YWx1ZSBmcm9tIHRoZSBvd25lclxuICAgKi9cbiAgc3BlbmRlciE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBcHByb3ZlZCB2YWx1ZVxuICAgKiBAc3VtbWFyeSBNYXhpbXVtIHRva2VuIGFtb3VudCB0aGUgc3BlbmRlciBtYXkgdHJhbnNmZXIgb24gYmVoYWxmIG9mIHRoZSBvd25lclxuICAgKi9cbiAgdmFsdWUhOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobT86IE1vZGVsQXJnPEFsbG93YW5jZT4pIHtcbiAgICBzdXBlcihtKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @description Contracts submodule for Hyperledger Fabric integration
3
+ * @summary Aggregates chaincode-side building blocks including repositories, sequences, adapters, and ERC20 helpers. This entrypoint re-exports contract-related elements such as {@link FabricContractRepository}, {@link FabricContractSequence}, and CRUD/ERC20 utilities for composing Fabric contracts.
4
+ * @namespace contracts
5
+ * @memberOf module:for-fabric
6
+ */
7
+ export * from "./crud";
8
+ export * from "./erc20";
9
+ export * from "./ContractAdapter";
10
+ export * from "./ContractContext";
11
+ export * from "./FabricContractRepository";
12
+ export * from "./FabricContractRepositoryObservableHandler";
13
+ export * from "./FabricContractSequence";
14
+ export * from "./logging";
15
+ export * from "./types";
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @description Contracts submodule for Hyperledger Fabric integration
3
+ * @summary Aggregates chaincode-side building blocks including repositories, sequences, adapters, and ERC20 helpers. This entrypoint re-exports contract-related elements such as {@link FabricContractRepository}, {@link FabricContractSequence}, and CRUD/ERC20 utilities for composing Fabric contracts.
4
+ * @namespace contracts
5
+ * @memberOf module:for-fabric
6
+ */
7
+ export * from "./crud/index.js";
8
+ export * from "./erc20/index.js";
9
+ export * from "./ContractAdapter.js";
10
+ export * from "./ContractContext.js";
11
+ export * from "./FabricContractRepository.js";
12
+ export * from "./FabricContractRepositoryObservableHandler.js";
13
+ export * from "./FabricContractSequence.js";
14
+ export * from "./logging.js";
15
+ export * from "./types.js";
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsZ0NBQXVCO0FBQ3ZCLGlDQUF3QjtBQUN4QixxQ0FBa0M7QUFDbEMscUNBQWtDO0FBQ2xDLDhDQUEyQztBQUMzQywrREFBNEQ7QUFDNUQsNENBQXlDO0FBQ3pDLDZCQUEwQjtBQUMxQiwyQkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBDb250cmFjdHMgc3VibW9kdWxlIGZvciBIeXBlcmxlZGdlciBGYWJyaWMgaW50ZWdyYXRpb25cbiAqIEBzdW1tYXJ5IEFnZ3JlZ2F0ZXMgY2hhaW5jb2RlLXNpZGUgYnVpbGRpbmcgYmxvY2tzIGluY2x1ZGluZyByZXBvc2l0b3JpZXMsIHNlcXVlbmNlcywgYWRhcHRlcnMsIGFuZCBFUkMyMCBoZWxwZXJzLiBUaGlzIGVudHJ5cG9pbnQgcmUtZXhwb3J0cyBjb250cmFjdC1yZWxhdGVkIGVsZW1lbnRzIHN1Y2ggYXMge0BsaW5rIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeX0sIHtAbGluayBGYWJyaWNDb250cmFjdFNlcXVlbmNlfSwgYW5kIENSVUQvRVJDMjAgdXRpbGl0aWVzIGZvciBjb21wb3NpbmcgRmFicmljIGNvbnRyYWN0cy5cbiAqIEBuYW1lc3BhY2UgY29udHJhY3RzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1mYWJyaWNcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jcnVkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcmMyMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vQ29udHJhY3RBZGFwdGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Db250cmFjdENvbnRleHRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0U2VxdWVuY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvZ2dpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG4iXX0=
@@ -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,92 @@
1
+ import { Logging, LogLevel, MiniLogger, NumericLogLevels, } from "@decaf-ts/logging";
2
+ /**
3
+ * @description Logger implementation for Fabric chaincode contracts
4
+ * @summary Adapts the standard logging interface to work with Fabric's chaincode context
5
+ *
6
+ * @param {string} context - The logging context name
7
+ * @param {Partial<LoggingConfig> | undefined} conf - Optional logging configuration
8
+ * @param {Ctx} ctx - The Fabric chaincode context
9
+ *
10
+ * @class ContractLogger
11
+ * @extends {MiniLogger}
12
+ * @example
13
+ * ```typescript
14
+ * // In a Fabric chaincode contract
15
+ * import { ContractLogger } from '@decaf-ts/for-fabric';
16
+ *
17
+ * export class MyContract extends Contract {
18
+ * @Transaction()
19
+ * async myFunction(ctx: Context): Promise<void> {
20
+ * const logger = new ContractLogger('MyContract', { level: 'info' }, ctx);
21
+ *
22
+ * logger.info('Processing transaction');
23
+ * logger.debug('Transaction details:', { ... });
24
+ *
25
+ * // Do something
26
+ *
27
+ * logger.info('Transaction complete');
28
+ * }
29
+ * }
30
+ * ```
31
+ */
32
+ export class ContractLogger extends MiniLogger {
33
+ constructor(context, conf, ctx) {
34
+ super(context, conf);
35
+ if (!ctx) {
36
+ this.logger = new MiniLogger(context, conf);
37
+ }
38
+ else {
39
+ this.logger = ctx.logger;
40
+ }
41
+ }
42
+ /**
43
+ * @description Logs a message at the specified level
44
+ * @summary Overrides the base log method to use the Fabric context's logger
45
+ * @param {LogLevel} level - The log level
46
+ * @param {StringLike | Error} msg - The message to log
47
+ * @param {Error} [stack] - Optional stack trace for errors
48
+ * @return {void}
49
+ */
50
+ log(level, msg, stack) {
51
+ if (NumericLogLevels[this.config("level")] <
52
+ NumericLogLevels[level])
53
+ return;
54
+ let method;
55
+ switch (level) {
56
+ case LogLevel.info:
57
+ method = this.logger.info;
58
+ break;
59
+ case LogLevel.verbose:
60
+ method = this.logger.verbose;
61
+ break;
62
+ case LogLevel.debug:
63
+ method = this.logger.debug;
64
+ break;
65
+ case LogLevel.error:
66
+ method = this.logger.error;
67
+ break;
68
+ case LogLevel.silly:
69
+ method = this.logger.silly;
70
+ break;
71
+ default:
72
+ throw new Error("Invalid log level");
73
+ }
74
+ method.call(this.logger, this.createLog(level, msg, stack));
75
+ }
76
+ }
77
+ /**
78
+ * @description Factory function for creating ContractLogger instances
79
+ * @summary Creates a new ContractLogger with the given context, config, and Fabric context
80
+ * @param {string} object - The logging context name
81
+ * @param {Partial<LoggingConfig> | undefined} config - Optional logging configuration
82
+ * @param {Ctx} ctx - The Fabric chaincode context
83
+ * @return {ContractLogger} A new ContractLogger instance
84
+ * @function factory
85
+ * @memberOf module:fabric.contracts
86
+ */
87
+ const factory = (object, config, ctx) => {
88
+ return new ContractLogger(object, config || {}, ctx);
89
+ };
90
+ // Set the factory as the default logger factory
91
+ Logging.setFactory(factory);
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdHMvbG9nZ2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsT0FBTyxFQUVQLFFBQVEsRUFDUixVQUFVLEVBQ1YsZ0JBQWdCLEdBRWpCLE1BQU0sbUJBQW1CLENBQUM7QUFLM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBTTVDLFlBQ0UsT0FBZSxFQUNmLElBQXdDLEVBQ3hDLEdBQTJCO1FBRTNCLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ2dCLEdBQUcsQ0FDcEIsS0FBZSxFQUNmLEdBQXVCLEVBQ3ZCLEtBQWE7UUFFYixJQUNFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFhLENBQUM7WUFDbEQsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1lBRXZCLE9BQU87UUFFVCxJQUFJLE1BQU0sQ0FBQztRQUNYLFFBQVEsS0FBSyxFQUFFLENBQUM7WUFDZCxLQUFLLFFBQVEsQ0FBQyxJQUFJO2dCQUNoQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxPQUFPO2dCQUNuQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQzdCLE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxLQUFLO2dCQUNqQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzNCLE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxLQUFLO2dCQUNqQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzNCLE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxLQUFLO2dCQUNqQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzNCLE1BQU07WUFDUjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sR0FBa0IsQ0FDN0IsTUFBYyxFQUNkLE1BQTBDLEVBQzFDLEdBQVEsRUFDUixFQUFFO0lBQ0YsT0FBTyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFVLENBQUMsQ0FBQztBQUM5RCxDQUFDLENBQUM7QUFFRixnREFBZ0Q7QUFDaEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIExvZ2dlckZhY3RvcnksXG4gIExvZ2dpbmcsXG4gIExvZ2dlcixcbiAgTG9nTGV2ZWwsXG4gIE1pbmlMb2dnZXIsXG4gIE51bWVyaWNMb2dMZXZlbHMsXG4gIFN0cmluZ0xpa2UsXG59IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgTG9nZ2luZ0NvbmZpZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgQ29udGV4dCBhcyBDdHggfSBmcm9tIFwiZmFicmljLWNvbnRyYWN0LWFwaVwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RDb250ZXh0IH0gZnJvbSBcIi4vQ29udHJhY3RDb250ZXh0XCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIExvZ2dlciBpbXBsZW1lbnRhdGlvbiBmb3IgRmFicmljIGNoYWluY29kZSBjb250cmFjdHNcbiAqIEBzdW1tYXJ5IEFkYXB0cyB0aGUgc3RhbmRhcmQgbG9nZ2luZyBpbnRlcmZhY2UgdG8gd29yayB3aXRoIEZhYnJpYydzIGNoYWluY29kZSBjb250ZXh0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRleHQgLSBUaGUgbG9nZ2luZyBjb250ZXh0IG5hbWVcbiAqIEBwYXJhbSB7UGFydGlhbDxMb2dnaW5nQ29uZmlnPiB8IHVuZGVmaW5lZH0gY29uZiAtIE9wdGlvbmFsIGxvZ2dpbmcgY29uZmlndXJhdGlvblxuICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAqXG4gKiBAY2xhc3MgQ29udHJhY3RMb2dnZXJcbiAqIEBleHRlbmRzIHtNaW5pTG9nZ2VyfVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluIGEgRmFicmljIGNoYWluY29kZSBjb250cmFjdFxuICogaW1wb3J0IHsgQ29udHJhY3RMb2dnZXIgfSBmcm9tICdAZGVjYWYtdHMvZm9yLWZhYnJpYyc7XG4gKlxuICogZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7XG4gKiAgIEBUcmFuc2FjdGlvbigpXG4gKiAgIGFzeW5jIG15RnVuY3Rpb24oY3R4OiBDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gKiAgICAgY29uc3QgbG9nZ2VyID0gbmV3IENvbnRyYWN0TG9nZ2VyKCdNeUNvbnRyYWN0JywgeyBsZXZlbDogJ2luZm8nIH0sIGN0eCk7XG4gKlxuICogICAgIGxvZ2dlci5pbmZvKCdQcm9jZXNzaW5nIHRyYW5zYWN0aW9uJyk7XG4gKiAgICAgbG9nZ2VyLmRlYnVnKCdUcmFuc2FjdGlvbiBkZXRhaWxzOicsIHsgLi4uIH0pO1xuICpcbiAqICAgICAvLyBEbyBzb21ldGhpbmdcbiAqXG4gKiAgICAgbG9nZ2VyLmluZm8oJ1RyYW5zYWN0aW9uIGNvbXBsZXRlJyk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ29udHJhY3RMb2dnZXIgZXh0ZW5kcyBNaW5pTG9nZ2VyIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgdW5kZXJseWluZyBGYWJyaWMgbG9nZ2VyIGluc3RhbmNlXG4gICAqL1xuICBwcm90ZWN0ZWQgbG9nZ2VyOiBMb2dnZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY29udGV4dDogc3RyaW5nLFxuICAgIGNvbmY6IFBhcnRpYWw8TG9nZ2luZ0NvbmZpZz4gfCB1bmRlZmluZWQsXG4gICAgY3R4PzogRmFicmljQ29udHJhY3RDb250ZXh0XG4gICkge1xuICAgIHN1cGVyKGNvbnRleHQsIGNvbmYpO1xuICAgIGlmICghY3R4KSB7XG4gICAgICB0aGlzLmxvZ2dlciA9IG5ldyBNaW5pTG9nZ2VyKGNvbnRleHQsIGNvbmYpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlciA9IGN0eC5sb2dnZXI7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMb2dzIGEgbWVzc2FnZSBhdCB0aGUgc3BlY2lmaWVkIGxldmVsXG4gICAqIEBzdW1tYXJ5IE92ZXJyaWRlcyB0aGUgYmFzZSBsb2cgbWV0aG9kIHRvIHVzZSB0aGUgRmFicmljIGNvbnRleHQncyBsb2dnZXJcbiAgICogQHBhcmFtIHtMb2dMZXZlbH0gbGV2ZWwgLSBUaGUgbG9nIGxldmVsXG4gICAqIEBwYXJhbSB7U3RyaW5nTGlrZSB8IEVycm9yfSBtc2cgLSBUaGUgbWVzc2FnZSB0byBsb2dcbiAgICogQHBhcmFtIHtFcnJvcn0gW3N0YWNrXSAtIE9wdGlvbmFsIHN0YWNrIHRyYWNlIGZvciBlcnJvcnNcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBsb2coXG4gICAgbGV2ZWw6IExvZ0xldmVsLFxuICAgIG1zZzogU3RyaW5nTGlrZSB8IEVycm9yLFxuICAgIHN0YWNrPzogRXJyb3JcbiAgKSB7XG4gICAgaWYgKFxuICAgICAgTnVtZXJpY0xvZ0xldmVsc1t0aGlzLmNvbmZpZyhcImxldmVsXCIpIGFzIExvZ0xldmVsXSA8XG4gICAgICBOdW1lcmljTG9nTGV2ZWxzW2xldmVsXVxuICAgIClcbiAgICAgIHJldHVybjtcblxuICAgIGxldCBtZXRob2Q7XG4gICAgc3dpdGNoIChsZXZlbCkge1xuICAgICAgY2FzZSBMb2dMZXZlbC5pbmZvOlxuICAgICAgICBtZXRob2QgPSB0aGlzLmxvZ2dlci5pbmZvO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTG9nTGV2ZWwudmVyYm9zZTpcbiAgICAgICAgbWV0aG9kID0gdGhpcy5sb2dnZXIudmVyYm9zZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExvZ0xldmVsLmRlYnVnOlxuICAgICAgICBtZXRob2QgPSB0aGlzLmxvZ2dlci5kZWJ1ZztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExvZ0xldmVsLmVycm9yOlxuICAgICAgICBtZXRob2QgPSB0aGlzLmxvZ2dlci5lcnJvcjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExvZ0xldmVsLnNpbGx5OlxuICAgICAgICBtZXRob2QgPSB0aGlzLmxvZ2dlci5zaWxseTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxvZyBsZXZlbFwiKTtcbiAgICB9XG4gICAgbWV0aG9kLmNhbGwodGhpcy5sb2dnZXIsIHRoaXMuY3JlYXRlTG9nKGxldmVsLCBtc2csIHN0YWNrKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRmFjdG9yeSBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgQ29udHJhY3RMb2dnZXIgaW5zdGFuY2VzXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgbmV3IENvbnRyYWN0TG9nZ2VyIHdpdGggdGhlIGdpdmVuIGNvbnRleHQsIGNvbmZpZywgYW5kIEZhYnJpYyBjb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gb2JqZWN0IC0gVGhlIGxvZ2dpbmcgY29udGV4dCBuYW1lXG4gKiBAcGFyYW0ge1BhcnRpYWw8TG9nZ2luZ0NvbmZpZz4gfCB1bmRlZmluZWR9IGNvbmZpZyAtIE9wdGlvbmFsIGxvZ2dpbmcgY29uZmlndXJhdGlvblxuICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAqIEByZXR1cm4ge0NvbnRyYWN0TG9nZ2VyfSBBIG5ldyBDb250cmFjdExvZ2dlciBpbnN0YW5jZVxuICogQGZ1bmN0aW9uIGZhY3RvcnlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZmFicmljLmNvbnRyYWN0c1xuICovXG5jb25zdCBmYWN0b3J5OiBMb2dnZXJGYWN0b3J5ID0gKFxuICBvYmplY3Q6IHN0cmluZyxcbiAgY29uZmlnOiBQYXJ0aWFsPExvZ2dpbmdDb25maWc+IHwgdW5kZWZpbmVkLFxuICBjdHg6IEN0eFxuKSA9PiB7XG4gIHJldHVybiBuZXcgQ29udHJhY3RMb2dnZXIob2JqZWN0LCBjb25maWcgfHwge30sIGN0eCBhcyBhbnkpO1xufTtcblxuLy8gU2V0IHRoZSBmYWN0b3J5IGFzIHRoZSBkZWZhdWx0IGxvZ2dlciBmYWN0b3J5XG5Mb2dnaW5nLnNldEZhY3RvcnkoZmFjdG9yeSk7XG4iXX0=
@@ -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
+ };