@decaf-ts/for-fabric 0.1.61 → 0.1.63

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 (423) hide show
  1. package/dist/for-fabric.cjs +2744 -2
  2. package/dist/for-fabric.js +2833 -2
  3. package/lib/bin/cli.cjs +2 -1
  4. package/lib/cli-module.cjs +151 -39
  5. package/lib/cli-utils.cjs +64 -2
  6. package/lib/cli-utils.d.ts +2 -0
  7. package/lib/client/FabricClientAdapter.cjs +1 -1
  8. package/lib/client/FabricClientDispatch.cjs +2 -1
  9. package/lib/client/FabricClientDispatch.d.ts +1 -1
  10. package/lib/client/FabricClientPaginator.cjs +1 -1
  11. package/lib/client/FabricClientRepository.cjs +1 -1
  12. package/lib/client/FabricClientStatement.cjs +1 -1
  13. package/lib/client/collections/generation.cjs +76 -108
  14. package/lib/client/collections/generation.d.ts +24 -5
  15. package/lib/client/collections/index.cjs +1 -1
  16. package/lib/client/constants.cjs +1 -1
  17. package/lib/client/crypto.cjs +1 -1
  18. package/lib/client/erc20/FabricERC20ClientRepository.cjs +1 -1
  19. package/lib/client/erc20/index.cjs +1 -1
  20. package/lib/client/fabric-fs.cjs +1 -1
  21. package/lib/client/fabric-hsm.cjs +1 -1
  22. package/lib/client/index.cjs +1 -1
  23. package/lib/client/indexes/generation.cjs +10 -7
  24. package/lib/client/indexes/generation.d.ts +1 -1
  25. package/lib/client/indexes/index.cjs +1 -1
  26. package/lib/client/logging.cjs +1 -1
  27. package/lib/client/services/FabricEnrollmentService.cjs +1 -1
  28. package/lib/client/services/FabricIdentityService.cjs +1 -1
  29. package/lib/client/services/RegistrationRequestBuilder.cjs +1 -1
  30. package/lib/client/services/constants.cjs +1 -1
  31. package/lib/client/services/index.cjs +1 -1
  32. package/lib/client/types.cjs +1 -1
  33. package/lib/client/utils.cjs +1 -1
  34. package/lib/contract/Address.cjs +1 -1
  35. package/lib/contract/AddressContract.cjs +1 -1
  36. package/lib/contract/BatchContract.cjs +1 -1
  37. package/lib/contract/OtherProductContract.cjs +30 -0
  38. package/lib/contract/OtherProductContract.d.ts +5 -0
  39. package/lib/contract/OtherProductSharedContract.cjs +30 -0
  40. package/lib/contract/OtherProductSharedContract.d.ts +5 -0
  41. package/lib/contract/Product.cjs +1 -1
  42. package/lib/contract/ProductContract.cjs +1 -1
  43. package/lib/contract/User.cjs +1 -1
  44. package/lib/contract/UserContract.cjs +1 -1
  45. package/lib/contract/index.cjs +3 -1
  46. package/lib/contract/models/Audit.cjs +21 -3
  47. package/lib/contract/models/Audit.d.ts +2 -1
  48. package/lib/contract/models/BaseIdentifiedModel.cjs +1 -1
  49. package/lib/contract/models/BaseModel.cjs +1 -1
  50. package/lib/contract/models/Batch.cjs +3 -3
  51. package/lib/contract/models/Leaflet.cjs +3 -3
  52. package/lib/contract/models/LeafletFile.cjs +1 -1
  53. package/lib/contract/models/Market.cjs +1 -1
  54. package/lib/contract/models/OtherProduct.cjs +74 -0
  55. package/lib/contract/models/OtherProduct.d.ts +12 -0
  56. package/lib/contract/models/OtherProductShared.cjs +75 -0
  57. package/lib/contract/models/OtherProductShared.d.ts +12 -0
  58. package/lib/contract/models/Product.cjs +5 -5
  59. package/lib/contract/models/ProductStrength.cjs +1 -1
  60. package/lib/contract/models/constants.cjs +1 -1
  61. package/lib/contract/models/decorators.cjs +16 -9
  62. package/lib/contract/models/decorators.d.ts +8 -5
  63. package/lib/contract/models/gtin.cjs +1 -1
  64. package/lib/contracts/ContractAdapter.cjs +1 -1
  65. package/lib/contracts/ContractContext.cjs +1 -1
  66. package/lib/contracts/ContractPrivateDataAdapter.cjs +1 -1
  67. package/lib/contracts/FabricConstruction.cjs +2 -2
  68. package/lib/contracts/FabricContractPaginator.cjs +1 -1
  69. package/lib/contracts/FabricContractRepository.cjs +1 -1
  70. package/lib/contracts/FabricContractRepository.d.ts +3 -1
  71. package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +1 -1
  72. package/lib/contracts/FabricContractSequence.cjs +5 -5
  73. package/lib/contracts/FabricContractStatement.cjs +1 -1
  74. package/lib/contracts/PrivateSequence.cjs +1 -1
  75. package/lib/contracts/crud/crud-contract.cjs +1 -1
  76. package/lib/contracts/crud/index.cjs +1 -1
  77. package/lib/contracts/crud/serialized-crud-contract.cjs +1 -1
  78. package/lib/contracts/erc20/erc20contract.cjs +1 -1
  79. package/lib/contracts/erc20/index.cjs +1 -1
  80. package/lib/contracts/erc20/models.cjs +1 -1
  81. package/lib/contracts/index.cjs +8 -7
  82. package/lib/contracts/index.d.ts +1 -0
  83. package/lib/contracts/logging.cjs +1 -1
  84. package/lib/contracts/overrides.cjs +8 -0
  85. package/lib/contracts/overrides.d.ts +1 -0
  86. package/lib/contracts/private-data.cjs +1 -1
  87. package/lib/contracts/types.cjs +1 -1
  88. package/lib/contracts/types.d.ts +1 -0
  89. package/lib/contracts/uuid.cjs +75 -0
  90. package/lib/contracts/uuid.d.ts +2 -0
  91. package/lib/esm/bin/cli.js +1 -1
  92. package/lib/esm/cli-module.js +153 -41
  93. package/lib/esm/cli-utils.d.ts +2 -0
  94. package/lib/esm/cli-utils.js +60 -2
  95. package/lib/esm/client/FabricClientAdapter.js +1 -1
  96. package/lib/esm/client/FabricClientDispatch.d.ts +1 -1
  97. package/lib/esm/client/FabricClientDispatch.js +2 -1
  98. package/lib/esm/client/FabricClientPaginator.js +1 -1
  99. package/lib/esm/client/FabricClientRepository.js +1 -1
  100. package/lib/esm/client/FabricClientStatement.js +1 -1
  101. package/lib/esm/client/collections/generation.d.ts +24 -5
  102. package/lib/esm/client/collections/generation.js +71 -104
  103. package/lib/esm/client/collections/index.js +1 -1
  104. package/lib/esm/client/constants.js +1 -1
  105. package/lib/esm/client/crypto.js +1 -1
  106. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  107. package/lib/esm/client/erc20/index.js +1 -1
  108. package/lib/esm/client/fabric-fs.js +1 -1
  109. package/lib/esm/client/fabric-hsm.js +1 -1
  110. package/lib/esm/client/index.js +1 -1
  111. package/lib/esm/client/indexes/generation.d.ts +1 -1
  112. package/lib/esm/client/indexes/generation.js +10 -7
  113. package/lib/esm/client/indexes/index.js +1 -1
  114. package/lib/esm/client/logging.js +1 -1
  115. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  116. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  117. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  118. package/lib/esm/client/services/constants.js +1 -1
  119. package/lib/esm/client/services/index.js +1 -1
  120. package/lib/esm/client/types.js +1 -1
  121. package/lib/esm/client/utils.js +1 -1
  122. package/lib/esm/contract/Address.js +1 -1
  123. package/lib/esm/contract/AddressContract.js +1 -1
  124. package/lib/esm/contract/BatchContract.js +1 -1
  125. package/lib/esm/contract/OtherProductContract.d.ts +5 -0
  126. package/lib/esm/contract/OtherProductContract.js +27 -0
  127. package/lib/esm/contract/OtherProductSharedContract.d.ts +5 -0
  128. package/lib/esm/contract/OtherProductSharedContract.js +27 -0
  129. package/lib/esm/contract/Product.js +1 -1
  130. package/lib/esm/contract/ProductContract.js +1 -1
  131. package/lib/esm/contract/User.js +1 -1
  132. package/lib/esm/contract/UserContract.js +1 -1
  133. package/lib/esm/contract/index.js +3 -1
  134. package/lib/esm/contract/models/Audit.d.ts +2 -1
  135. package/lib/esm/contract/models/Audit.js +23 -5
  136. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  137. package/lib/esm/contract/models/BaseModel.js +1 -1
  138. package/lib/esm/contract/models/Batch.js +3 -3
  139. package/lib/esm/contract/models/Leaflet.js +3 -3
  140. package/lib/esm/contract/models/LeafletFile.js +1 -1
  141. package/lib/esm/contract/models/Market.js +1 -1
  142. package/lib/esm/contract/models/OtherProduct.d.ts +12 -0
  143. package/lib/esm/contract/models/OtherProduct.js +71 -0
  144. package/lib/esm/contract/models/OtherProductShared.d.ts +12 -0
  145. package/lib/esm/contract/models/OtherProductShared.js +72 -0
  146. package/lib/esm/contract/models/Product.js +5 -5
  147. package/lib/esm/contract/models/ProductStrength.js +1 -1
  148. package/lib/esm/contract/models/constants.js +1 -1
  149. package/lib/esm/contract/models/decorators.d.ts +8 -5
  150. package/lib/esm/contract/models/decorators.js +16 -9
  151. package/lib/esm/contract/models/gtin.js +1 -1
  152. package/lib/esm/contracts/ContractAdapter.js +1 -1
  153. package/lib/esm/contracts/ContractContext.js +1 -1
  154. package/lib/esm/contracts/ContractPrivateDataAdapter.js +1 -1
  155. package/lib/esm/contracts/FabricConstruction.js +2 -2
  156. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  157. package/lib/esm/contracts/FabricContractRepository.d.ts +3 -1
  158. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  159. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  160. package/lib/esm/contracts/FabricContractSequence.js +5 -5
  161. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  162. package/lib/esm/contracts/PrivateSequence.js +1 -1
  163. package/lib/esm/contracts/crud/crud-contract.js +1 -1
  164. package/lib/esm/contracts/crud/index.js +1 -1
  165. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  166. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  167. package/lib/esm/contracts/erc20/index.js +1 -1
  168. package/lib/esm/contracts/erc20/models.js +1 -1
  169. package/lib/esm/contracts/index.d.ts +1 -0
  170. package/lib/esm/contracts/index.js +2 -1
  171. package/lib/esm/contracts/logging.js +1 -1
  172. package/lib/esm/contracts/overrides.d.ts +1 -0
  173. package/lib/esm/contracts/overrides.js +6 -0
  174. package/lib/esm/contracts/private-data.js +1 -1
  175. package/lib/esm/contracts/types.d.ts +1 -0
  176. package/lib/esm/contracts/types.js +1 -1
  177. package/lib/esm/contracts/uuid.d.ts +2 -0
  178. package/lib/esm/contracts/uuid.js +38 -0
  179. package/lib/esm/index.js +1 -1
  180. package/lib/esm/shared/ClientSerializer.js +1 -1
  181. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  182. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  183. package/lib/esm/shared/constants.d.ts +4 -3
  184. package/lib/esm/shared/constants.js +4 -3
  185. package/lib/esm/shared/decorators.d.ts +15 -2
  186. package/lib/esm/shared/decorators.js +115 -70
  187. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  188. package/lib/esm/shared/erc20/index.js +1 -1
  189. package/lib/esm/shared/errors.js +1 -1
  190. package/lib/esm/shared/events.js +1 -1
  191. package/lib/esm/shared/fabric-types.js +1 -1
  192. package/lib/esm/shared/index.js +1 -1
  193. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  194. package/lib/esm/shared/interfaces/index.js +1 -1
  195. package/lib/esm/shared/math.js +1 -1
  196. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  197. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  198. package/lib/esm/shared/model/Identity.js +1 -1
  199. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  200. package/lib/esm/shared/model/index.js +1 -1
  201. package/lib/esm/shared/overrides/Model.d.ts +7 -0
  202. package/lib/esm/shared/overrides/Model.js +1 -1
  203. package/lib/esm/shared/overrides/index.js +1 -1
  204. package/lib/esm/shared/overrides/overrides.js +29 -16
  205. package/lib/esm/shared/types.js +1 -1
  206. package/lib/esm/version.d.ts +1 -1
  207. package/lib/esm/version.js +2 -2
  208. package/lib/index.cjs +1 -1
  209. package/lib/shared/ClientSerializer.cjs +1 -1
  210. package/lib/shared/DeterministicSerializer.cjs +1 -1
  211. package/lib/shared/SimpleDeterministicSerializer.cjs +1 -1
  212. package/lib/shared/constants.cjs +4 -3
  213. package/lib/shared/constants.d.ts +4 -3
  214. package/lib/shared/decorators.cjs +119 -69
  215. package/lib/shared/decorators.d.ts +15 -2
  216. package/lib/shared/erc20/erc20-constants.cjs +1 -1
  217. package/lib/shared/erc20/index.cjs +1 -1
  218. package/lib/shared/errors.cjs +1 -1
  219. package/lib/shared/events.cjs +1 -1
  220. package/lib/shared/fabric-types.cjs +1 -1
  221. package/lib/shared/index.cjs +1 -1
  222. package/lib/shared/interfaces/Checkable.cjs +1 -1
  223. package/lib/shared/interfaces/index.cjs +1 -1
  224. package/lib/shared/math.cjs +1 -1
  225. package/lib/shared/model/FabricBaseModel.cjs +1 -1
  226. package/lib/shared/model/FabricIdentifiedBaseModel.cjs +1 -1
  227. package/lib/shared/model/Identity.cjs +1 -1
  228. package/lib/shared/model/IdentityCredentials.cjs +1 -1
  229. package/lib/shared/model/index.cjs +1 -1
  230. package/lib/shared/overrides/Model.cjs +1 -1
  231. package/lib/shared/overrides/Model.d.ts +7 -0
  232. package/lib/shared/overrides/index.cjs +1 -1
  233. package/lib/shared/overrides/overrides.cjs +29 -16
  234. package/lib/shared/types.cjs +1 -1
  235. package/lib/version.cjs +2 -2
  236. package/lib/version.d.ts +1 -1
  237. package/package.json +4 -3
  238. package/dist/for-fabric.cjs.map +0 -1
  239. package/dist/for-fabric.js.map +0 -1
  240. package/lib/bin/cli.js.map +0 -1
  241. package/lib/cli-module.js.map +0 -1
  242. package/lib/cli-utils.js.map +0 -1
  243. package/lib/client/FabricClientAdapter.js.map +0 -1
  244. package/lib/client/FabricClientDispatch.js.map +0 -1
  245. package/lib/client/FabricClientPaginator.js.map +0 -1
  246. package/lib/client/FabricClientRepository.js.map +0 -1
  247. package/lib/client/FabricClientStatement.js.map +0 -1
  248. package/lib/client/collections/generation.js.map +0 -1
  249. package/lib/client/collections/index.js.map +0 -1
  250. package/lib/client/constants.js.map +0 -1
  251. package/lib/client/crypto.js.map +0 -1
  252. package/lib/client/erc20/FabricERC20ClientRepository.js.map +0 -1
  253. package/lib/client/erc20/index.js.map +0 -1
  254. package/lib/client/fabric-fs.js.map +0 -1
  255. package/lib/client/fabric-hsm.js.map +0 -1
  256. package/lib/client/index.js.map +0 -1
  257. package/lib/client/indexes/generation.js.map +0 -1
  258. package/lib/client/indexes/index.js.map +0 -1
  259. package/lib/client/logging.js.map +0 -1
  260. package/lib/client/services/FabricEnrollmentService.js.map +0 -1
  261. package/lib/client/services/FabricIdentityService.js.map +0 -1
  262. package/lib/client/services/RegistrationRequestBuilder.js.map +0 -1
  263. package/lib/client/services/constants.js.map +0 -1
  264. package/lib/client/services/index.js.map +0 -1
  265. package/lib/client/types.js.map +0 -1
  266. package/lib/client/utils.js.map +0 -1
  267. package/lib/contract/Address.js.map +0 -1
  268. package/lib/contract/AddressContract.js.map +0 -1
  269. package/lib/contract/BatchContract.js.map +0 -1
  270. package/lib/contract/Product.js.map +0 -1
  271. package/lib/contract/ProductContract.js.map +0 -1
  272. package/lib/contract/User.js.map +0 -1
  273. package/lib/contract/UserContract.js.map +0 -1
  274. package/lib/contract/index.js.map +0 -1
  275. package/lib/contract/models/Audit.js.map +0 -1
  276. package/lib/contract/models/BaseIdentifiedModel.js.map +0 -1
  277. package/lib/contract/models/BaseModel.js.map +0 -1
  278. package/lib/contract/models/Batch.js.map +0 -1
  279. package/lib/contract/models/Leaflet.js.map +0 -1
  280. package/lib/contract/models/LeafletFile.js.map +0 -1
  281. package/lib/contract/models/Market.js.map +0 -1
  282. package/lib/contract/models/Product.js.map +0 -1
  283. package/lib/contract/models/ProductStrength.js.map +0 -1
  284. package/lib/contract/models/constants.js.map +0 -1
  285. package/lib/contract/models/decorators.js.map +0 -1
  286. package/lib/contract/models/gtin.js.map +0 -1
  287. package/lib/contracts/ContractAdapter.js.map +0 -1
  288. package/lib/contracts/ContractContext.js.map +0 -1
  289. package/lib/contracts/ContractPrivateDataAdapter.js.map +0 -1
  290. package/lib/contracts/FabricConstruction.js.map +0 -1
  291. package/lib/contracts/FabricContractPaginator.js.map +0 -1
  292. package/lib/contracts/FabricContractRepository.js.map +0 -1
  293. package/lib/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
  294. package/lib/contracts/FabricContractSequence.js.map +0 -1
  295. package/lib/contracts/FabricContractStatement.js.map +0 -1
  296. package/lib/contracts/PrivateSequence.js.map +0 -1
  297. package/lib/contracts/crud/crud-contract.js.map +0 -1
  298. package/lib/contracts/crud/index.js.map +0 -1
  299. package/lib/contracts/crud/serialized-crud-contract.js.map +0 -1
  300. package/lib/contracts/erc20/erc20contract.js.map +0 -1
  301. package/lib/contracts/erc20/index.js.map +0 -1
  302. package/lib/contracts/erc20/models.js.map +0 -1
  303. package/lib/contracts/index.js.map +0 -1
  304. package/lib/contracts/logging.js.map +0 -1
  305. package/lib/contracts/private-data.js.map +0 -1
  306. package/lib/contracts/types.js.map +0 -1
  307. package/lib/esm/bin/cli.js.map +0 -1
  308. package/lib/esm/cli-module.js.map +0 -1
  309. package/lib/esm/cli-utils.js.map +0 -1
  310. package/lib/esm/client/FabricClientAdapter.js.map +0 -1
  311. package/lib/esm/client/FabricClientDispatch.js.map +0 -1
  312. package/lib/esm/client/FabricClientPaginator.js.map +0 -1
  313. package/lib/esm/client/FabricClientRepository.js.map +0 -1
  314. package/lib/esm/client/FabricClientStatement.js.map +0 -1
  315. package/lib/esm/client/collections/generation.js.map +0 -1
  316. package/lib/esm/client/collections/index.js.map +0 -1
  317. package/lib/esm/client/constants.js.map +0 -1
  318. package/lib/esm/client/crypto.js.map +0 -1
  319. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +0 -1
  320. package/lib/esm/client/erc20/index.js.map +0 -1
  321. package/lib/esm/client/fabric-fs.js.map +0 -1
  322. package/lib/esm/client/fabric-hsm.js.map +0 -1
  323. package/lib/esm/client/index.js.map +0 -1
  324. package/lib/esm/client/indexes/generation.js.map +0 -1
  325. package/lib/esm/client/indexes/index.js.map +0 -1
  326. package/lib/esm/client/logging.js.map +0 -1
  327. package/lib/esm/client/services/FabricEnrollmentService.js.map +0 -1
  328. package/lib/esm/client/services/FabricIdentityService.js.map +0 -1
  329. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +0 -1
  330. package/lib/esm/client/services/constants.js.map +0 -1
  331. package/lib/esm/client/services/index.js.map +0 -1
  332. package/lib/esm/client/types.js.map +0 -1
  333. package/lib/esm/client/utils.js.map +0 -1
  334. package/lib/esm/contract/Address.js.map +0 -1
  335. package/lib/esm/contract/AddressContract.js.map +0 -1
  336. package/lib/esm/contract/BatchContract.js.map +0 -1
  337. package/lib/esm/contract/Product.js.map +0 -1
  338. package/lib/esm/contract/ProductContract.js.map +0 -1
  339. package/lib/esm/contract/User.js.map +0 -1
  340. package/lib/esm/contract/UserContract.js.map +0 -1
  341. package/lib/esm/contract/index.js.map +0 -1
  342. package/lib/esm/contract/models/Audit.js.map +0 -1
  343. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +0 -1
  344. package/lib/esm/contract/models/BaseModel.js.map +0 -1
  345. package/lib/esm/contract/models/Batch.js.map +0 -1
  346. package/lib/esm/contract/models/Leaflet.js.map +0 -1
  347. package/lib/esm/contract/models/LeafletFile.js.map +0 -1
  348. package/lib/esm/contract/models/Market.js.map +0 -1
  349. package/lib/esm/contract/models/Product.js.map +0 -1
  350. package/lib/esm/contract/models/ProductStrength.js.map +0 -1
  351. package/lib/esm/contract/models/constants.js.map +0 -1
  352. package/lib/esm/contract/models/decorators.js.map +0 -1
  353. package/lib/esm/contract/models/gtin.js.map +0 -1
  354. package/lib/esm/contracts/ContractAdapter.js.map +0 -1
  355. package/lib/esm/contracts/ContractContext.js.map +0 -1
  356. package/lib/esm/contracts/ContractPrivateDataAdapter.js.map +0 -1
  357. package/lib/esm/contracts/FabricConstruction.js.map +0 -1
  358. package/lib/esm/contracts/FabricContractPaginator.js.map +0 -1
  359. package/lib/esm/contracts/FabricContractRepository.js.map +0 -1
  360. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
  361. package/lib/esm/contracts/FabricContractSequence.js.map +0 -1
  362. package/lib/esm/contracts/FabricContractStatement.js.map +0 -1
  363. package/lib/esm/contracts/PrivateSequence.js.map +0 -1
  364. package/lib/esm/contracts/crud/crud-contract.js.map +0 -1
  365. package/lib/esm/contracts/crud/index.js.map +0 -1
  366. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +0 -1
  367. package/lib/esm/contracts/erc20/erc20contract.js.map +0 -1
  368. package/lib/esm/contracts/erc20/index.js.map +0 -1
  369. package/lib/esm/contracts/erc20/models.js.map +0 -1
  370. package/lib/esm/contracts/index.js.map +0 -1
  371. package/lib/esm/contracts/logging.js.map +0 -1
  372. package/lib/esm/contracts/private-data.js.map +0 -1
  373. package/lib/esm/contracts/types.js.map +0 -1
  374. package/lib/esm/index.js.map +0 -1
  375. package/lib/esm/shared/ClientSerializer.js.map +0 -1
  376. package/lib/esm/shared/DeterministicSerializer.js.map +0 -1
  377. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +0 -1
  378. package/lib/esm/shared/constants.js.map +0 -1
  379. package/lib/esm/shared/decorators.js.map +0 -1
  380. package/lib/esm/shared/erc20/erc20-constants.js.map +0 -1
  381. package/lib/esm/shared/erc20/index.js.map +0 -1
  382. package/lib/esm/shared/errors.js.map +0 -1
  383. package/lib/esm/shared/events.js.map +0 -1
  384. package/lib/esm/shared/fabric-types.js.map +0 -1
  385. package/lib/esm/shared/index.js.map +0 -1
  386. package/lib/esm/shared/interfaces/Checkable.js.map +0 -1
  387. package/lib/esm/shared/interfaces/index.js.map +0 -1
  388. package/lib/esm/shared/math.js.map +0 -1
  389. package/lib/esm/shared/model/FabricBaseModel.js.map +0 -1
  390. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
  391. package/lib/esm/shared/model/Identity.js.map +0 -1
  392. package/lib/esm/shared/model/IdentityCredentials.js.map +0 -1
  393. package/lib/esm/shared/model/index.js.map +0 -1
  394. package/lib/esm/shared/overrides/Model.js.map +0 -1
  395. package/lib/esm/shared/overrides/index.js.map +0 -1
  396. package/lib/esm/shared/overrides/overrides.js.map +0 -1
  397. package/lib/esm/shared/types.js.map +0 -1
  398. package/lib/esm/version.js.map +0 -1
  399. package/lib/index.js.map +0 -1
  400. package/lib/shared/ClientSerializer.js.map +0 -1
  401. package/lib/shared/DeterministicSerializer.js.map +0 -1
  402. package/lib/shared/SimpleDeterministicSerializer.js.map +0 -1
  403. package/lib/shared/constants.js.map +0 -1
  404. package/lib/shared/decorators.js.map +0 -1
  405. package/lib/shared/erc20/erc20-constants.js.map +0 -1
  406. package/lib/shared/erc20/index.js.map +0 -1
  407. package/lib/shared/errors.js.map +0 -1
  408. package/lib/shared/events.js.map +0 -1
  409. package/lib/shared/fabric-types.js.map +0 -1
  410. package/lib/shared/index.js.map +0 -1
  411. package/lib/shared/interfaces/Checkable.js.map +0 -1
  412. package/lib/shared/interfaces/index.js.map +0 -1
  413. package/lib/shared/math.js.map +0 -1
  414. package/lib/shared/model/FabricBaseModel.js.map +0 -1
  415. package/lib/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
  416. package/lib/shared/model/Identity.js.map +0 -1
  417. package/lib/shared/model/IdentityCredentials.js.map +0 -1
  418. package/lib/shared/model/index.js.map +0 -1
  419. package/lib/shared/overrides/Model.js.map +0 -1
  420. package/lib/shared/overrides/index.js.map +0 -1
  421. package/lib/shared/overrides/overrides.js.map +0 -1
  422. package/lib/shared/types.js.map +0 -1
  423. package/lib/version.js.map +0 -1
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ImplicitPrivateCollection = void 0;
3
+ exports.ImplicitPrivateCollection = exports.ModelCollection = void 0;
4
4
  exports.Owner = Owner;
5
5
  exports.ownedByOnCreate = ownedByOnCreate;
6
6
  exports.ownedBy = ownedBy;
7
7
  exports.transactionIdOnCreate = transactionIdOnCreate;
8
8
  exports.transactionId = transactionId;
9
- exports.getFabricModelKey = getFabricModelKey;
9
+ exports.evalMirrorMetadata = evalMirrorMetadata;
10
+ exports.createMirrorHandler = createMirrorHandler;
11
+ exports.updateMirrorHandler = updateMirrorHandler;
12
+ exports.deleteMirrorHandler = deleteMirrorHandler;
13
+ exports.mirror = mirror;
10
14
  exports.segregatedDataOnCreate = segregatedDataOnCreate;
11
15
  exports.segregatedDataOnRead = segregatedDataOnRead;
12
16
  exports.segregatedDataOnUpdate = segregatedDataOnUpdate;
@@ -18,6 +22,8 @@ const db_decorators_1 = require("@decaf-ts/db-decorators");
18
22
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
19
23
  const constants_1 = require("./constants.cjs");
20
24
  const decoration_1 = require("@decaf-ts/decoration");
25
+ const logging_1 = require("@decaf-ts/logging");
26
+ require("./overrides/index.cjs");
21
27
  /**
22
28
  * Decorator for marking methods that require ownership authorization.
23
29
  * Checks the owner of the token before allowing the method to be executed.
@@ -71,13 +77,12 @@ async function ownedByOnCreate(context, data, key, model) {
71
77
  setOwnedByKeyValue(model, key, owner);
72
78
  }
73
79
  function ownedBy() {
74
- const key = getFabricModelKey(constants_1.FabricModelKeys.OWNEDBY);
75
80
  function ownedBy() {
76
81
  return function (obj, attribute) {
77
- return (0, decoration_1.apply)((0, decorator_validation_1.required)(), (0, db_decorators_1.readonly)(), (0, db_decorators_1.onCreate)(ownedByOnCreate), (0, decoration_1.propMetadata)(getFabricModelKey(constants_1.FabricModelKeys.OWNEDBY), attribute))(obj, attribute);
82
+ return (0, decoration_1.apply)((0, decorator_validation_1.required)(), (0, db_decorators_1.readonly)(), (0, db_decorators_1.onCreate)(ownedByOnCreate), (0, decoration_1.propMetadata)(decoration_1.Metadata.key(constants_1.FabricModelKeys.FABRIC, constants_1.FabricModelKeys.OWNED_BY), attribute))(obj, attribute);
78
83
  };
79
84
  }
80
- return decoration_1.Decoration.for(key)
85
+ return decoration_1.Decoration.for(constants_1.FabricModelKeys.OWNED_BY)
81
86
  .define({
82
87
  decorator: ownedBy,
83
88
  args: [],
@@ -101,24 +106,96 @@ function transactionId() {
101
106
  })
102
107
  .apply();
103
108
  }
104
- function getFabricModelKey(key) {
105
- return decoration_1.Metadata.key(constants_1.FabricModelKeys.FABRIC + key);
109
+ async function evalMirrorMetadata(model, resolver, ctx) {
110
+ let collection = resolver;
111
+ if (typeof collection !== "string") {
112
+ try {
113
+ const owner = decorator_validation_1.Model.ownerOf(model) || ctx.get("stub").getCreator().toString();
114
+ if (resolver && typeof resolver === "function")
115
+ collection = await resolver(model, owner, ctx);
116
+ }
117
+ catch (e) {
118
+ throw new db_decorators_1.InternalError(`Failed to resolve collection mirror name: ${e}`);
119
+ }
120
+ }
121
+ if (!collection || typeof collection !== "string")
122
+ throw new db_decorators_1.InternalError(`No collection found model ${model.constructor.name}`);
123
+ return collection;
124
+ }
125
+ async function createMirrorHandler(context, data, key, model) {
126
+ const collection = await evalMirrorMetadata(model, data.resolver, context);
127
+ const repo = this.override(Object.assign({}, this._overrides, {
128
+ segregate: collection,
129
+ ignoreValidation: true,
130
+ ignoreHandlers: true,
131
+ }));
132
+ const mirror = await repo.create(model, context);
133
+ context.logger.info(`Mirror for ${decorator_validation_1.Model.tableName(this.class)} created with ${decorator_validation_1.Model.pk(model)}: ${mirror[decorator_validation_1.Model.pk(model)]}`);
134
+ }
135
+ async function updateMirrorHandler(context, data, key, model) {
136
+ const collection = await evalMirrorMetadata(model, data.resolver, context);
137
+ const repo = this.override(Object.assign({}, this._overrides, {
138
+ segregate: collection,
139
+ ignoreValidation: true,
140
+ ignoreHandlers: true,
141
+ }));
142
+ const mirror = await repo.update(model, context);
143
+ context.logger.info(`Mirror for ${decorator_validation_1.Model.tableName(this.class)} updated with ${decorator_validation_1.Model.pk(model)}: ${mirror[decorator_validation_1.Model.pk(model)]}`);
144
+ }
145
+ async function deleteMirrorHandler(context, data, key, model) {
146
+ const collection = await evalMirrorMetadata(model, data.resolver, context);
147
+ const repo = this.override(Object.assign({}, this._overrides, {
148
+ segregate: collection,
149
+ ignoreValidation: true,
150
+ ignoreHandlers: true,
151
+ }));
152
+ const mirror = await repo.delete(decorator_validation_1.Model.pk(model), context);
153
+ context.logger.info(`Mirror for ${decorator_validation_1.Model.tableName(this.class)} deleted with ${decorator_validation_1.Model.pk(model)}: ${mirror[decorator_validation_1.Model.pk(model)]}`);
154
+ }
155
+ function mirror(collection, condition) {
156
+ function mirror(resolver, condition) {
157
+ const meta = {
158
+ condition: condition,
159
+ resolver: resolver,
160
+ };
161
+ return (0, decoration_1.apply)((0, decoration_1.metadata)(decoration_1.Metadata.key(constants_1.FabricModelKeys.FABRIC, constants_1.FabricModelKeys.MIRROR), meta), privateData(collection), (0, db_decorators_1.afterCreate)(createMirrorHandler, meta, { priority: 95 }), (0, db_decorators_1.afterUpdate)(updateMirrorHandler, meta, { priority: 95 }), (0, db_decorators_1.afterDelete)(deleteMirrorHandler, meta, { priority: 95 }));
162
+ }
163
+ return decoration_1.Decoration.for(constants_1.FabricModelKeys.MIRROR)
164
+ .define({
165
+ decorator: mirror,
166
+ args: [collection, condition],
167
+ })
168
+ .apply();
106
169
  }
107
- const ImplicitPrivateCollection = (model) => {
108
- return `__${model.constructor.name}PrivateCollection`;
170
+ const ModelCollection = (model, mspId) => {
171
+ const orgName = mspId || (typeof model !== "function" ? decorator_validation_1.Model.ownerOf(model) : undefined);
172
+ const constr = typeof model === "function" ? model : model.constructor;
173
+ if (!orgName)
174
+ throw new db_decorators_1.InternalError(`Model ${constr.name} is not owned by any organization. did you use @ownedBy() (or provide the name)?`);
175
+ return `${(0, logging_1.toPascalCase)(constr.name)}${mspId ? (0, logging_1.toPascalCase)(mspId) : ""}`;
176
+ };
177
+ exports.ModelCollection = ModelCollection;
178
+ const ImplicitPrivateCollection = (model, mspId) => {
179
+ const orgName = mspId || (typeof model !== "function" ? decorator_validation_1.Model.ownerOf(model) : undefined);
180
+ if (!orgName)
181
+ throw new db_decorators_1.InternalError(`Model ${model.constructor.name} is not owned by any organization. did you use @ownedBy() (or provide the name)?`);
182
+ return `__${(0, logging_1.toPascalCase)(orgName)}PrivateCollection`;
109
183
  };
110
184
  exports.ImplicitPrivateCollection = ImplicitPrivateCollection;
111
185
  async function segregatedDataOnCreate(context, data, keys, model) {
112
186
  if (keys.length !== data.length)
113
187
  throw new db_decorators_1.InternalError(`Segregated data keys and metadata length mismatch`);
188
+ const msp = decorator_validation_1.Model.ownerOf(model);
189
+ if (!msp)
190
+ throw new db_decorators_1.ValidationError(`There's no assigned organization for model ${model.constructor.name}`);
114
191
  const collectionResolver = data[0].collections;
115
192
  const collection = typeof collectionResolver === "string"
116
193
  ? collectionResolver
117
- : collectionResolver(model);
194
+ : collectionResolver(model, msp, context);
118
195
  const rebuilt = keys.reduce((acc, k, i) => {
119
196
  const c = typeof data[i].collections === "string"
120
197
  ? data[i].collections
121
- : data[i].collections(model);
198
+ : data[i].collections(model, msp, context);
122
199
  if (c !== collection)
123
200
  throw new core_1.UnsupportedError(`Segregated data collection mismatch: ${c} vs ${collection}`);
124
201
  acc[k] = model[k];
@@ -126,41 +203,46 @@ async function segregatedDataOnCreate(context, data, keys, model) {
126
203
  }, {});
127
204
  const toCreate = new this.class(rebuilt);
128
205
  // const segregated = Model.segregate(model);
129
- const created = await this.override({ segregated: collection }).create(toCreate, context);
206
+ const created = await this.override({
207
+ segregated: collection,
208
+ mergeModel: false,
209
+ ignoreHandlers: true,
210
+ ignoreValidation: true,
211
+ }).create(toCreate, context);
130
212
  Object.assign(model, created);
131
213
  }
132
214
  async function segregatedDataOnRead(context, data, keys, model) {
133
215
  if (keys.length !== data.length)
134
216
  throw new db_decorators_1.InternalError(`Segregated data keys and metadata length mismatch`);
217
+ const msp = decorator_validation_1.Model.ownerOf(model);
218
+ if (!msp)
219
+ throw new db_decorators_1.ValidationError(`There's no assigned organization for model ${model.constructor.name}`);
135
220
  const collectionResolver = data[0].collections;
136
221
  const collection = typeof collectionResolver === "string"
137
222
  ? collectionResolver
138
- : collectionResolver(model);
223
+ : await collectionResolver(model, msp, context);
139
224
  const rebuilt = keys.reduce((acc, k, i) => {
140
225
  const c = typeof data[i].collections === "string"
141
226
  ? data[i].collections
142
- : data[i].collections(model);
227
+ : data[i].collections(model, msp, context);
143
228
  if (c !== collection)
144
- throw new core_1.UnsupportedError(`Segregated data collection mismatch: ${c} vs ${collection}`);
229
+ return acc;
145
230
  acc[k] = model[k];
146
231
  return acc;
147
232
  }, {});
148
- const toCreate = new this.class(rebuilt);
149
233
  // const segregated = Model.segregate(model);
150
- const created = await this.override({ segregated: collection }).create(toCreate, context);
151
- Object.assign(model, created);
234
+ //
235
+ // const created = await this.override({ segregated: collection } as any).readAll(
236
+ // toCreate,
237
+ // context
238
+ // );
239
+ // Object.assign(model, created);
152
240
  }
153
241
  async function segregatedDataOnUpdate(context, data, key, model, oldModel) { }
154
242
  async function segregatedDataOnDelete(context, data, key, model) { }
155
- function segregated(collection, type) {
243
+ function segregated(collection, type, filter) {
156
244
  return function innerSegregated(target, propertyKey) {
157
245
  function segregatedDec(target, propertyKey) {
158
- if (!propertyKey) {
159
- const props = decoration_1.Metadata.properties(target) || [];
160
- for (const prop of props)
161
- segregated(collection, type)(target, prop);
162
- return target;
163
- }
164
246
  const key = decoration_1.Metadata.key(type, propertyKey);
165
247
  const constr = target.constructor;
166
248
  const meta = decoration_1.Metadata.get(constr, key) || {};
@@ -168,15 +250,23 @@ function segregated(collection, type) {
168
250
  collections.add(collection);
169
251
  meta.collections = [...collections];
170
252
  decoration_1.Metadata.set(constr, key, meta);
253
+ const constrMeta = decoration_1.Metadata.get(constr, type) || {};
254
+ const constrCollections = new Set(constrMeta.collections || []);
255
+ constrCollections.add(collection);
256
+ meta.collections = [...collections];
257
+ decoration_1.Metadata.set(constr, type, meta);
171
258
  }
172
259
  const decs = [];
173
260
  if (!propertyKey) {
174
261
  // decorated at the class level
175
- decoration_1.Metadata.properties(target)?.forEach((p) => segregated(collection, type)(target, p));
176
- return (0, decoration_1.metadata)(type, true)(target);
262
+ decoration_1.Metadata.properties(target)?.forEach((p) => {
263
+ if (!filter || filter(p)) {
264
+ segregated(collection, type)(target.prototype, p);
265
+ }
266
+ });
177
267
  }
178
268
  else {
179
- decs.push((0, db_decorators_1.transient)(), segregatedDec, (0, db_decorators_1.onCreate)(segregatedDataOnCreate, { collections: collection }, {
269
+ decs.push((0, decoration_1.prop)(), (0, db_decorators_1.transient)(), segregatedDec, (0, db_decorators_1.onCreate)(segregatedDataOnCreate, { collections: collection }, {
180
270
  priority: 95,
181
271
  group: typeof collection === "string"
182
272
  ? collection
@@ -199,7 +289,6 @@ function segregated(collection, type) {
199
289
  }));
200
290
  }
201
291
  return (0, decoration_1.apply)(...decs)(target, propertyKey);
202
- // return apply()(target, propertyKey);
203
292
  };
204
293
  }
205
294
  function privateData(collection = exports.ImplicitPrivateCollection) {
@@ -224,43 +313,4 @@ function sharedData(collection) {
224
313
  })
225
314
  .apply();
226
315
  }
227
- //
228
- // export function privateData(collection?: string) {
229
- // if (!collection) {
230
- // throw new Error("Collection name is required");
231
- // }
232
- //
233
- // const key: string = FabricModelKeys.PRIVATE;
234
- //
235
- // return function privateData<M extends Model>(
236
- // model: M | Constructor<M>,
237
- // attribute?: any
238
- // ) {
239
- // const constr =
240
- // model instanceof Model ? (model.constructor as Constructor) : model;
241
- //
242
- // const metaData: any = Metadata.get(constr);
243
- // const modeldata = metaData?.private?.collections || [];
244
- //
245
- // propMetadata(key, {
246
- // ...(!attribute && {
247
- // collections: modeldata
248
- // ? [...new Set([...modeldata, collection])]
249
- // : [collection],
250
- // }),
251
- // isPrivate: !attribute,
252
- // })(attribute ? constr : model);
253
- //
254
- // if (attribute) {
255
- // const attributeData =
256
- // (metaData?.private?.[attribute] as any)?.collections || [];
257
- // propMetadata(Metadata.key(key, attribute), {
258
- // collections: attributeData
259
- // ? [...new Set([...attributeData, collection])]
260
- // : [collection],
261
- // })(model, attribute);
262
- // transient()(model, attribute);
263
- // }
264
- // };
265
- // }
266
- //# sourceMappingURL=decorators.js.map
316
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaGFyZWQvZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF3REEsc0JBd0NDO0FBRUQsMENBOEJDO0FBRUQsMEJBcUJDO0FBRUQsc0RBYUM7QUFFRCxzQ0EwQkM7QUFTRCxnREFzQkM7QUFFRCxrREF3QkM7QUFFRCxrREF3QkM7QUFFRCxrREF3QkM7QUFFRCx3QkE4QkM7QUF1Q0Qsd0RBbURDO0FBRUQsb0RBNENDO0FBRUQsd0RBT21CO0FBRW5CLHdEQVVtQjtBQXdGbkIsa0NBYUM7QUFFRCxnQ0FXQztBQTlsQkQseUNBT3dCO0FBQ3hCLDJEQWFpQztBQUNqQyx5RUFBaUU7QUFDakUsK0NBQThDO0FBRzlDLHFEQVE4QjtBQUU5QiwrQ0FBaUQ7QUFFakQsaUNBQTZCO0FBRTdCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFNBQWdCLEtBQUs7SUFDbkIsT0FBTyxVQUNMLE1BQVcsRUFDWCxXQUFtQixFQUNuQixVQUE4QjtRQUU5QixNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRXhDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxXQUV0QixHQUFHLElBQVc7WUFFZCxNQUFNLEdBQUcsR0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUU1QyxNQUFNLE1BQU0sR0FBRyxNQUFPLElBQTRCLENBQ2hELGlCQUFpQixDQUNsQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRVgsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpDLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxJQUFJLDZCQUFhLENBQUMscUJBQXFCLENBQUMs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QUFVLENBQUMsVUFBVSxFQUFFLDJCQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE9BQU8sdUJBQVUsQ0FBQyxHQUFHLENBQUMsMkJBQWUsQ0FBQyxPQUFPLENBQUM7U0FDM0MsTUFBTSxDQUFDO1FBQ04sU0FBUyxFQUFFLFdBQVc7UUFDdEIsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO0tBQ25CLENBQUM7U0FDRCxLQUFLLEVBQUUsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFnQixVQUFVLENBQUMsVUFBdUM7SUFDaEUsU0FBUyxVQUFVLENBQUMsVUFBdUM7UUFDekQsT0FBTyxVQUFVLENBQUMsVUFBVSxFQUFFLDJCQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sdUJBQVUsQ0FBQyxHQUFHLENBQUMsMkJBQWUsQ0FBQyxNQUFNLENBQUM7U0FDMUMsTUFBTSxDQUFDO1FBQ04sU0FBUyxFQUFFLFVBQVU7UUFDckIsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO0tBQ25CLENBQUM7U0FDRCxLQUFLLEVBQUUsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBdXRob3JpemF0aW9uRXJyb3IsXG4gIFJlcG8sXG4gIENvbnRleHQsXG4gIFVuc3VwcG9ydGVkRXJyb3IsXG4gIFJlcG9zaXRvcnksXG4gIENvbnRleHRPZixcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQge1xuICBhZnRlckNyZWF0ZSxcbiAgYWZ0ZXJEZWxldGUsXG4gIGFmdGVyVXBkYXRlLFxuICBJbnRlcm5hbEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxuICBvbkNyZWF0ZSxcbiAgb25EZWxldGUsXG4gIG9uUmVhZCxcbiAgb25VcGRhdGUsXG4gIHJlYWRvbmx5LFxuICB0cmFuc2llbnQsXG4gIFZhbGlkYXRpb25FcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNb2RlbCwgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNNb2RlbEtleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB0eXBlIHsgQ29udGV4dCBhcyBITENvbnRleHQgfSBmcm9tIFwiZmFicmljLWNvbnRyYWN0LWFwaVwiO1xuaW1wb3J0IHsgRmFicmljRVJDMjBDb250cmFjdCB9IGZyb20gXCIuLi9jb250cmFjdHMvZXJjMjAvZXJjMjBjb250cmFjdFwiO1xuaW1wb3J0IHtcbiAgYXBwbHksXG4gIENvbnN0cnVjdG9yLFxuICBEZWNvcmF0aW9uLFxuICBtZXRhZGF0YSxcbiAgTWV0YWRhdGEsXG4gIHByb3AsXG4gIHByb3BNZXRhZGF0YSxcbn0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNGbGFncyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyB0b1Bhc2NhbENhc2UgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0RmxhZ3MgfSBmcm9tIFwiLi4vY29udHJhY3RzL3R5cGVzXCI7XG5pbXBvcnQgXCIuLi9zaGFyZWQvb3ZlcnJpZGVzXCI7XG5cbi8qKlxuICogRGVjb3JhdG9yIGZvciBtYXJraW5nIG1ldGhvZHMgdGhhdCByZXF1aXJlIG93bmVyc2hpcCBhdXRob3JpemF0aW9uLlxuICogQ2hlY2tzIHRoZSBvd25lciBvZiB0aGUgdG9rZW4gYmVmb3JlIGFsbG93aW5nIHRoZSBtZXRob2QgdG8gYmUgZXhlY3V0ZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNsYXNzIFRva2VuQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7XG4gKiAgIEBPd25lcigpXG4gKiAgIGFzeW5jIE1pbnQoY3R4OiBDb250ZXh0LCBhbW91bnQ6IG51bWJlcikge1xuICogICAgIC8vIE1pbnQgdG9rZW4gbG9naWNcbiAqICAgfVxuICogfVxuICogYGBgXG4gKlxuICogQHJldHVybnMge01ldGhvZERlY29yYXRvcn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgY2hlY2tzIG93bmVyc2hpcCBhdXRob3JpemF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gT3duZXIoKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXG4gICAgdGFyZ2V0OiBhbnksXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyxcbiAgICBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3JcbiAgKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBkZXNjcmlwdG9yLnZhbHVlO1xuXG4gICAgZGVzY3JpcHRvci52YWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIChcbiAgICAgIHRoaXM6IEZhYnJpY0VSQzIwQ29udHJhY3QsXG4gICAgICAuLi5hcmdzOiBhbnlbXVxuICAgICkge1xuICAgICAgY29uc3QgY3R4OiBITENvbnRleHQgPSBhcmdzWzBdO1xuICAgICAgY29uc3QgYWNvdW50SWQgPSBjdHguY2xpZW50SWRlbnRpdHkuZ2V0SUQoKTtcblxuICAgICAgY29uc3Qgc2VsZWN0ID0gYXdhaXQgKHRoaXMgYXMgRmFicmljRVJDMjBDb250cmFjdClbXG4gICAgICAgIFwidG9rZW5SZXBvc2l0b3J5XCJcbiAgICAgIF0uc2VsZWN0KCk7XG5cbiAgICAgIGNvbnN0IHRva2VucyA9IGF3YWl0IHNlbGVjdC5leGVjdXRlKGN0eCk7XG5cbiAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXCJObyB0b2tlbnMgYXZhaWFsYmxlXCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAodG9rZW5zLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFRvIG1hbnkgdG9rZW4gYXZhaWxhYmxlIDogJHt0b2tlbnMubGVuZ3RofWApO1xuICAgICAgfVxuXG4gICAgICBpZiAodG9rZW5zWzBdLm93bmVyICE9IGFjb3VudElkKSB7XG4gICAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXG4gICAgICAgICAgYFVzZXIgbm90IGF1dGhvcml6ZWQgdG8gcnVuICR7cHJvcGVydHlLZXl9IG9uIHRoZSB0b2tlbmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF3YWl0IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIH07XG5cbiAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG93bmVkQnlPbkNyZWF0ZTxcbiAgTSBleHRlbmRzIE1vZGVsPGJvb2xlYW4+LFxuICBSIGV4dGVuZHMgUmVwbzxNPixcbiAgVixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHRPZjxSPixcbiAgZGF0YTogVixcbiAga2V5OiBrZXlvZiBNLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgc3R1YiB9ID0gY29udGV4dCBhcyBhbnk7XG5cbiAgY29uc3QgY3JlYXRvciA9IGF3YWl0IHN0dWIuZ2V0Q3JlYXRvcigpO1xuICBjb25zdCBvd25lciA9IGNyZWF0b3IubXNwaWQ7XG5cbiAgY29uc3Qgc2V0T3duZWRCeUtleVZhbHVlID0gZnVuY3Rpb24gPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgdGFyZ2V0OiBNLFxuICAgIHByb3BlcnR5S2V5OiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludFxuICApIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBwcm9wZXJ0eUtleSwge1xuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICB9KTtcbiAgfTtcblxuICBzZXRPd25lZEJ5S2V5VmFsdWUobW9kZWwsIGtleSBhcyBzdHJpbmcsIG93bmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG93bmVkQnkoKSB7XG4gIGZ1bmN0aW9uIG93bmVkQnkoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChvYmo6IGFueSwgYXR0cmlidXRlPzogYW55KSB7XG4gICAgICByZXR1cm4gYXBwbHkoXG4gICAgICAgIHJlcXVpcmVkKCksXG4gICAgICAgIHJlYWRvbmx5KCksXG4gICAgICAgIG9uQ3JlYXRlKG93bmVkQnlPbkNyZWF0ZSksXG4gICAgICAgIHByb3BNZXRhZGF0YShcbiAgICAgICAgICBNZXRhZGF0YS5rZXkoRmFicmljTW9kZWxLZXlzLkZBQlJJQywgRmFicmljTW9kZWxLZXlzLk9XTkVEX0JZKSxcbiAgICAgICAgICBhdHRyaWJ1dGVcbiAgICAgICAgKVxuICAgICAgKShvYmosIGF0dHJpYnV0ZSk7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBEZWNvcmF0aW9uLmZvcihGYWJyaWNNb2RlbEtleXMuT1dORURfQlkpXG4gICAgLmRlZmluZSh7XG4gICAgICBkZWNvcmF0b3I6IG93bmVkQnksXG4gICAgICBhcmdzOiBbXSxcbiAgICB9KVxuICAgIC5hcHBseSgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdHJhbnNhY3Rpb25JZE9uQ3JlYXRlPFxuICBNIGV4dGVuZHMgTW9kZWw8Ym9vbGVhbj4sXG4gIFIgZXh0ZW5kcyBSZXBvPE0+LFxuICBWLFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dE9mPFI+LFxuICBkYXRhOiBWLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBzdHViIH0gPSBjb250ZXh0IGFzIGFueTtcbiAgbW9kZWxba2V5XSA9IHN0dWIuZ2V0VHhJRCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNhY3Rpb25JZCgpIHtcbiAgZnVuY3Rpb24gdHJhbnNhY3Rpb25JZCgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKG9iajogYW55LCBhdHRyaWJ1dGU/OiBhbnkpIHtcbiAgICAgIHJldHVybiBhcHBseShcbiAgICAgICAgcmVxdWlyZWQoKSxcbiAgICAgICAgcmVhZG9ubHkoKSxcbiAgICAgICAgb25DcmVhdGUodHJhbnNhY3Rpb25JZE9uQ3JlYXRlKSxcbiAgICAgICAgb25VcGRhdGUodHJhbnNhY3Rpb25JZE9uQ3JlYXRlKSxcbiAgICAgICAgcHJvcE1ldGFkYXRhKFxuICAgICAgICAgIE1ldGFkYXRhLmtleShcbiAgICAgICAgICAgIEZhYnJpY01vZGVsS2V5cy5GQUJSSUMsXG4gICAgICAgICAgICBhdHRyaWJ1dGUsXG4gICAgICAgICAgICBGYWJyaWNNb2RlbEtleXMuVFJBTlNBQ1RJT05fSURcbiAgICAgICAgICApLFxuICAgICAgICAgIGF0dHJpYnV0ZVxuICAgICAgICApXG4gICAgICApKG9iaiwgYXR0cmlidXRlKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIERlY29yYXRpb24uZm9yKEZhYnJpY01vZGVsS2V5cy5UUkFOU0FDVElPTl9JRClcbiAgICAuZGVmaW5lKHtcbiAgICAgIGRlY29yYXRvcjogdHJhbnNhY3Rpb25JZCxcbiAgICAgIGFyZ3M6IFtdLFxuICAgIH0pXG4gICAgLmFwcGx5KCk7XG59XG5cbmV4cG9ydCB0eXBlIE1pcnJvckNvbmRpdGlvbiA9IChtc3A6IHN0cmluZykgPT4gYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgTWlycm9yTWV0YWRhdGEgPSB7XG4gIGNvbmRpdGlvbjogTWlycm9yQ29uZGl0aW9uO1xuICByZXNvbHZlcjogQ29sbGVjdGlvblJlc29sdmVyIHwgc3RyaW5nO1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV2YWxNaXJyb3JNZXRhZGF0YTxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogTSxcbiAgcmVzb2x2ZXI6IHVuZGVmaW5lZCB8IHN0cmluZyB8IENvbGxlY3Rpb25SZXNvbHZlcixcbiAgY3R4OiBDb250ZXh0PEZhYnJpY0NvbnRyYWN0RmxhZ3M+XG4pIHtcbiAgbGV0IGNvbGxlY3Rpb246IENvbGxlY3Rpb25SZXNvbHZlciB8IHN0cmluZyB8IHVuZGVmaW5lZCA9IHJlc29sdmVyO1xuICBpZiAodHlwZW9mIGNvbGxlY3Rpb24gIT09IFwic3RyaW5nXCIpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3duZXIgPVxuICAgICAgICBNb2RlbC5vd25lck9mKG1vZGVsKSB8fCBjdHguZ2V0KFwic3R1YlwiKS5nZXRDcmVhdG9yKCkudG9TdHJpbmcoKTtcbiAgICAgIGlmIChyZXNvbHZlciAmJiB0eXBlb2YgcmVzb2x2ZXIgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgY29sbGVjdGlvbiA9IGF3YWl0IHJlc29sdmVyKG1vZGVsLCBvd25lciwgY3R4KTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIHJlc29sdmUgY29sbGVjdGlvbiBtaXJyb3IgbmFtZTogJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIGlmICghY29sbGVjdGlvbiB8fCB0eXBlb2YgY29sbGVjdGlvbiAhPT0gXCJzdHJpbmdcIilcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBObyBjb2xsZWN0aW9uIGZvdW5kIG1vZGVsICR7bW9kZWwuY29uc3RydWN0b3IubmFtZX1gXG4gICAgKTtcbiAgcmV0dXJuIGNvbGxlY3Rpb247XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVNaXJyb3JIYW5kbGVyPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFIgZXh0ZW5kcyBSZXBvc2l0b3J5PE0sIGFueT4sXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBDb250ZXh0PEZhYnJpY0NvbnRyYWN0RmxhZ3M+LFxuICBkYXRhOiBNaXJyb3JNZXRhZGF0YSxcbiAga2V5OiBrZXlvZiBNLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCBldmFsTWlycm9yTWV0YWRhdGEobW9kZWwsIGRhdGEucmVzb2x2ZXIsIGNvbnRleHQpO1xuXG4gIGNvbnN0IHJlcG8gPSB0aGlzLm92ZXJyaWRlKFxuICAgIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX292ZXJyaWRlcywge1xuICAgICAgc2VncmVnYXRlOiBjb2xsZWN0aW9uLFxuICAgICAgaWdub3JlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgIGlnbm9yZUhhbmRsZXJzOiB0cnVlLFxuICAgIH0gYXMgYW55KVxuICApO1xuXG4gIGNvbnN0IG1pcnJvciA9IGF3YWl0IHJlcG8uY3JlYXRlKG1vZGVsLCBjb250ZXh0KTtcbiAgY29udGV4dC5sb2dnZXIuaW5mbyhcbiAgICBgTWlycm9yIGZvciAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gY3JlYXRlZCB3aXRoICR7TW9kZWwucGsobW9kZWwpIGFzIHN0cmluZ306ICR7bWlycm9yW01vZGVsLnBrKG1vZGVsKV19YFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWlycm9ySGFuZGxlcjxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgUmVwb3NpdG9yeTxNLCBhbnk+LFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPixcbiAgZGF0YTogTWlycm9yTWV0YWRhdGEsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgZXZhbE1pcnJvck1ldGFkYXRhKG1vZGVsLCBkYXRhLnJlc29sdmVyLCBjb250ZXh0KTtcblxuICBjb25zdCByZXBvID0gdGhpcy5vdmVycmlkZShcbiAgICBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vdmVycmlkZXMsIHtcbiAgICAgIHNlZ3JlZ2F0ZTogY29sbGVjdGlvbixcbiAgICAgIGlnbm9yZVZhbGlkYXRpb246IHRydWUsXG4gICAgICBpZ25vcmVIYW5kbGVyczogdHJ1ZSxcbiAgICB9IGFzIGFueSlcbiAgKTtcblxuICBjb25zdCBtaXJyb3IgPSBhd2FpdCByZXBvLnVwZGF0ZShtb2RlbCwgY29udGV4dCk7XG4gIGNvbnRleHQubG9nZ2VyLmluZm8oXG4gICAgYE1pcnJvciBmb3IgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IHVwZGF0ZWQgd2l0aCAke01vZGVsLnBrKG1vZGVsKSBhcyBzdHJpbmd9OiAke21pcnJvcltNb2RlbC5wayhtb2RlbCldfWBcbiAgKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZU1pcnJvckhhbmRsZXI8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG9zaXRvcnk8TSwgYW55Pixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHQ8RmFicmljQ29udHJhY3RGbGFncz4sXG4gIGRhdGE6IE1pcnJvck1ldGFkYXRhLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29sbGVjdGlvbiA9IGF3YWl0IGV2YWxNaXJyb3JNZXRhZGF0YShtb2RlbCwgZGF0YS5yZXNvbHZlciwgY29udGV4dCk7XG5cbiAgY29uc3QgcmVwbyA9IHRoaXMub3ZlcnJpZGUoXG4gICAgT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fb3ZlcnJpZGVzLCB7XG4gICAgICBzZWdyZWdhdGU6IGNvbGxlY3Rpb24sXG4gICAgICBpZ25vcmVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgaWdub3JlSGFuZGxlcnM6IHRydWUsXG4gICAgfSBhcyBhbnkpXG4gICk7XG5cbiAgY29uc3QgbWlycm9yID0gYXdhaXQgcmVwby5kZWxldGUoTW9kZWwucGsobW9kZWwpIGFzIHN0cmluZywgY29udGV4dCk7XG4gIGNvbnRleHQubG9nZ2VyLmluZm8oXG4gICAgYE1pcnJvciBmb3IgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGRlbGV0ZWQgd2l0aCAke01vZGVsLnBrKG1vZGVsKSBhcyBzdHJpbmd9OiAke21pcnJvcltNb2RlbC5wayhtb2RlbCldfWBcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pcnJvcihcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvblJlc29sdmVyIHwgc3RyaW5nLFxuICBjb25kaXRpb24/OiBNaXJyb3JDb25kaXRpb25cbikge1xuICBmdW5jdGlvbiBtaXJyb3IoXG4gICAgcmVzb2x2ZXI6IENvbGxlY3Rpb25SZXNvbHZlciB8IHN0cmluZyxcbiAgICBjb25kaXRpb246IE1pcnJvckNvbmRpdGlvblxuICApIHtcbiAgICBjb25zdCBtZXRhOiBNaXJyb3JNZXRhZGF0YSA9IHtcbiAgICAgIGNvbmRpdGlvbjogY29uZGl0aW9uLFxuICAgICAgcmVzb2x2ZXI6IHJlc29sdmVyLFxuICAgIH07XG4gICAgcmV0dXJuIGFwcGx5KFxuICAgICAgbWV0YWRhdGEoXG4gICAgICAgIE1ldGFkYXRhLmtleShGYWJyaWNNb2RlbEtleXMuRkFCUklDLCBGYWJyaWNNb2RlbEtleXMuTUlSUk9SKSxcbiAgICAgICAgbWV0YVxuICAgICAgKSxcbiAgICAgIHByaXZhdGVEYXRhKGNvbGxlY3Rpb24pLFxuICAgICAgYWZ0ZXJDcmVhdGUoY3JlYXRlTWlycm9ySGFuZGxlciBhcyBhbnksIG1ldGEsIHsgcHJpb3JpdHk6IDk1IH0pLFxuICAgICAgYWZ0ZXJVcGRhdGUodXBkYXRlTWlycm9ySGFuZGxlciBhcyBhbnksIG1ldGEsIHsgcHJpb3JpdHk6IDk1IH0pLFxuICAgICAgYWZ0ZXJEZWxldGUoZGVsZXRlTWlycm9ySGFuZGxlciBhcyBhbnksIG1ldGEsIHsgcHJpb3JpdHk6IDk1IH0pXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBEZWNvcmF0aW9uLmZvcihGYWJyaWNNb2RlbEtleXMuTUlSUk9SKVxuICAgIC5kZWZpbmUoe1xuICAgICAgZGVjb3JhdG9yOiBtaXJyb3IsXG4gICAgICBhcmdzOiBbY29sbGVjdGlvbiwgY29uZGl0aW9uXSxcbiAgICB9KVxuICAgIC5hcHBseSgpO1xufVxuXG5leHBvcnQgdHlwZSBDb2xsZWN0aW9uUmVzb2x2ZXIgPSA8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IE0gfCBDb25zdHJ1Y3RvcjxNPixcbiAgbXNwPzogc3RyaW5nLFxuICAuLi5hcmdzOiBhbnlbXVxuKSA9PiBzdHJpbmc7XG5cbmV4cG9ydCBjb25zdCBNb2RlbENvbGxlY3Rpb246IENvbGxlY3Rpb25SZXNvbHZlciA9IDxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogTSB8IENvbnN0cnVjdG9yPE0+LFxuICBtc3BJZD86IHN0cmluZ1xuKSA9PiB7XG4gIGNvbnN0IG9yZ05hbWUgPVxuICAgIG1zcElkIHx8ICh0eXBlb2YgbW9kZWwgIT09IFwiZnVuY3Rpb25cIiA/IE1vZGVsLm93bmVyT2YobW9kZWwpIDogdW5kZWZpbmVkKTtcbiAgY29uc3QgY29uc3RyID0gdHlwZW9mIG1vZGVsID09PSBcImZ1bmN0aW9uXCIgPyBtb2RlbCA6IG1vZGVsLmNvbnN0cnVjdG9yO1xuICBpZiAoIW9yZ05hbWUpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgTW9kZWwgJHtjb25zdHIubmFtZX0gaXMgbm90IG93bmVkIGJ5IGFueSBvcmdhbml6YXRpb24uIGRpZCB5b3UgdXNlIEBvd25lZEJ5KCkgKG9yIHByb3ZpZGUgdGhlIG5hbWUpP2BcbiAgICApO1xuICByZXR1cm4gYCR7dG9QYXNjYWxDYXNlKGNvbnN0ci5uYW1lKX0ke21zcElkID8gdG9QYXNjYWxDYXNlKG1zcElkKSA6IFwiXCJ9YDtcbn07XG5cbmV4cG9ydCBjb25zdCBJbXBsaWNpdFByaXZhdGVDb2xsZWN0aW9uOiBDb2xsZWN0aW9uUmVzb2x2ZXIgPSA8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IE0gfCBDb25zdHJ1Y3RvcjxNPixcbiAgbXNwSWQ/OiBzdHJpbmdcbikgPT4ge1xuICBjb25zdCBvcmdOYW1lID1cbiAgICBtc3BJZCB8fCAodHlwZW9mIG1vZGVsICE9PSBcImZ1bmN0aW9uXCIgPyBNb2RlbC5vd25lck9mKG1vZGVsKSA6IHVuZGVmaW5lZCk7XG4gIGlmICghb3JnTmFtZSlcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBNb2RlbCAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9IGlzIG5vdCBvd25lZCBieSBhbnkgb3JnYW5pemF0aW9uLiBkaWQgeW91IHVzZSBAb3duZWRCeSgpIChvciBwcm92aWRlIHRoZSBuYW1lKT9gXG4gICAgKTtcbiAgcmV0dXJuIGBfXyR7dG9QYXNjYWxDYXNlKG9yZ05hbWUpfVByaXZhdGVDb2xsZWN0aW9uYDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGEgPSB7XG4gIGNvbGxlY3Rpb25zOiBzdHJpbmcgfCBDb2xsZWN0aW9uUmVzb2x2ZXI7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VncmVnYXRlZERhdGFPbkNyZWF0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICB0aGlzOiBSZXBvc2l0b3J5PE0sIGFueT4sXG4gIGNvbnRleHQ6IENvbnRleHRPZjx0eXBlb2YgdGhpcz4sXG4gIGRhdGE6IFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGFbXSxcbiAga2V5czogKGtleW9mIE0pW10sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKGtleXMubGVuZ3RoICE9PSBkYXRhLmxlbmd0aClcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBTZWdyZWdhdGVkIGRhdGEga2V5cyBhbmQgbWV0YWRhdGEgbGVuZ3RoIG1pc21hdGNoYFxuICAgICk7XG5cbiAgY29uc3QgbXNwID0gTW9kZWwub3duZXJPZihtb2RlbCk7XG4gIGlmICghbXNwKVxuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICBgVGhlcmUncyBubyBhc3NpZ25lZCBvcmdhbml6YXRpb24gZm9yIG1vZGVsICR7bW9kZWwuY29uc3RydWN0b3IubmFtZX1gXG4gICAgKTtcblxuICBjb25zdCBjb2xsZWN0aW9uUmVzb2x2ZXIgPSBkYXRhWzBdLmNvbGxlY3Rpb25zO1xuICBjb25zdCBjb2xsZWN0aW9uID1cbiAgICB0eXBlb2YgY29sbGVjdGlvblJlc29sdmVyID09PSBcInN0cmluZ1wiXG4gICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgOiBjb2xsZWN0aW9uUmVzb2x2ZXIobW9kZWwsIG1zcCwgY29udGV4dCk7XG5cbiAgY29uc3QgcmVidWlsdCA9IGtleXMucmVkdWNlKFxuICAgIChhY2M6IFJlY29yZDxrZXlvZiBNLCBhbnk+LCBrLCBpKSA9PiB7XG4gICAgICBjb25zdCBjID1cbiAgICAgICAgdHlwZW9mIGRhdGFbaV0uY29sbGVjdGlvbnMgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IGRhdGFbaV0uY29sbGVjdGlvbnNcbiAgICAgICAgICA6IGRhdGFbaV0uY29sbGVjdGlvbnMobW9kZWwsIG1zcCwgY29udGV4dCk7XG4gICAgICBpZiAoYyAhPT0gY29sbGVjdGlvbilcbiAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICAgICAgYFNlZ3JlZ2F0ZWQgZGF0YSBjb2xsZWN0aW9uIG1pc21hdGNoOiAke2N9IHZzICR7Y29sbGVjdGlvbn1gXG4gICAgICAgICk7XG4gICAgICBhY2Nba10gPSBtb2RlbFtrXTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSxcbiAgICB7fSBhcyBSZWNvcmQ8a2V5b2YgTSwgYW55PlxuICApO1xuXG4gIGNvbnN0IHRvQ3JlYXRlID0gbmV3IHRoaXMuY2xhc3MocmVidWlsdCk7XG5cbiAgLy8gY29uc3Qgc2VncmVnYXRlZCA9IE1vZGVsLnNlZ3JlZ2F0ZShtb2RlbCk7XG5cbiAgY29uc3QgY3JlYXRlZCA9IGF3YWl0IHRoaXMub3ZlcnJpZGUoe1xuICAgIHNlZ3JlZ2F0ZWQ6IGNvbGxlY3Rpb24sXG4gICAgbWVyZ2VNb2RlbDogZmFsc2UsXG4gICAgaWdub3JlSGFuZGxlcnM6IHRydWUsXG4gICAgaWdub3JlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgfSBhcyBhbnkpLmNyZWF0ZSh0b0NyZWF0ZSwgY29udGV4dCk7XG4gIE9iamVjdC5hc3NpZ24obW9kZWwsIGNyZWF0ZWQpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VncmVnYXRlZERhdGFPblJlYWQ8TSBleHRlbmRzIE1vZGVsPihcbiAgdGhpczogUmVwb3NpdG9yeTxNLCBhbnk+LFxuICBjb250ZXh0OiBDb250ZXh0PEZhYnJpY0ZsYWdzPixcbiAgZGF0YTogU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdLFxuICBrZXlzOiAoa2V5b2YgTSlbXSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoa2V5cy5sZW5ndGggIT09IGRhdGEubGVuZ3RoKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgYFNlZ3JlZ2F0ZWQgZGF0YSBrZXlzIGFuZCBtZXRhZGF0YSBsZW5ndGggbWlzbWF0Y2hgXG4gICAgKTtcblxuICBjb25zdCBtc3AgPSBNb2RlbC5vd25lck9mKG1vZGVsKTtcbiAgaWYgKCFtc3ApXG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgIGBUaGVyZSdzIG5vIGFzc2lnbmVkIG9yZ2FuaXphdGlvbiBmb3IgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWBcbiAgICApO1xuXG4gIGNvbnN0IGNvbGxlY3Rpb25SZXNvbHZlciA9IGRhdGFbMF0uY29sbGVjdGlvbnM7XG4gIGNvbnN0IGNvbGxlY3Rpb24gPVxuICAgIHR5cGVvZiBjb2xsZWN0aW9uUmVzb2x2ZXIgPT09IFwic3RyaW5nXCJcbiAgICAgID8gY29sbGVjdGlvblJlc29sdmVyXG4gICAgICA6IGF3YWl0IGNvbGxlY3Rpb25SZXNvbHZlcihtb2RlbCwgbXNwLCBjb250ZXh0KTtcblxuICBjb25zdCByZWJ1aWx0ID0ga2V5cy5yZWR1Y2UoXG4gICAgKGFjYzogUmVjb3JkPGtleW9mIE0sIGFueT4sIGssIGkpID0+IHtcbiAgICAgIGNvbnN0IGMgPVxuICAgICAgICB0eXBlb2YgZGF0YVtpXS5jb2xsZWN0aW9ucyA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgID8gZGF0YVtpXS5jb2xsZWN0aW9uc1xuICAgICAgICAgIDogZGF0YVtpXS5jb2xsZWN0aW9ucyhtb2RlbCwgbXNwLCBjb250ZXh0KTtcbiAgICAgIGlmIChjICE9PSBjb2xsZWN0aW9uKSByZXR1cm4gYWNjO1xuICAgICAgYWNjW2tdID0gbW9kZWxba107XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAge30gYXMgUmVjb3JkPGtleW9mIE0sIGFueT5cbiAgKTtcblxuICAvLyBjb25zdCBzZWdyZWdhdGVkID0gTW9kZWwuc2VncmVnYXRlKG1vZGVsKTtcbiAgLy9cbiAgLy8gY29uc3QgY3JlYXRlZCA9IGF3YWl0IHRoaXMub3ZlcnJpZGUoeyBzZWdyZWdhdGVkOiBjb2xsZWN0aW9uIH0gYXMgYW55KS5yZWFkQWxsKFxuICAvLyAgIHRvQ3JlYXRlLFxuICAvLyAgIGNvbnRleHRcbiAgLy8gKTtcbiAgLy8gT2JqZWN0LmFzc2lnbihtb2RlbCwgY3JlYXRlZCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWdyZWdhdGVkRGF0YU9uVXBkYXRlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIHRoaXM6IFJlcG9zaXRvcnk8TSwgYW55PixcbiAgY29udGV4dDogQ29udGV4dE9mPHR5cGVvZiB0aGlzPixcbiAgZGF0YTogU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdLFxuICBrZXk6IGtleW9mIE1bXSxcbiAgbW9kZWw6IE0sXG4gIG9sZE1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHt9XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWdyZWdhdGVkRGF0YU9uRGVsZXRlPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFIgZXh0ZW5kcyBSZXBvc2l0b3J5PE0sIGFueT4sXG4gIFYgZXh0ZW5kcyBTZWdyZWdhdGVkRGF0YU1ldGFkYXRhLFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dE9mPFI+LFxuICBkYXRhOiBWW10sXG4gIGtleToga2V5b2YgTVtdLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7fVxuXG5mdW5jdGlvbiBzZWdyZWdhdGVkKFxuICBjb2xsZWN0aW9uOiBzdHJpbmcgfCBDb2xsZWN0aW9uUmVzb2x2ZXIsXG4gIHR5cGU6IEZhYnJpY01vZGVsS2V5cy5QUklWQVRFIHwgRmFicmljTW9kZWxLZXlzLlNIQVJFRCxcbiAgZmlsdGVyPzogKHByb3BOYW1lOiBzdHJpbmcpID0+IGJvb2xlYW5cbikge1xuICByZXR1cm4gZnVuY3Rpb24gaW5uZXJTZWdyZWdhdGVkKHRhcmdldDogb2JqZWN0LCBwcm9wZXJ0eUtleT86IGFueSkge1xuICAgIGZ1bmN0aW9uIHNlZ3JlZ2F0ZWREZWModGFyZ2V0OiBvYmplY3QsIHByb3BlcnR5S2V5PzogYW55KSB7XG4gICAgICBjb25zdCBrZXkgPSBNZXRhZGF0YS5rZXkodHlwZSwgcHJvcGVydHlLZXkpO1xuICAgICAgY29uc3QgY29uc3RyOiBDb25zdHJ1Y3RvciA9IHRhcmdldC5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3RvcjtcblxuICAgICAgY29uc3QgbWV0YSA9IE1ldGFkYXRhLmdldChjb25zdHIgYXMgQ29uc3RydWN0b3IsIGtleSkgfHwge307XG4gICAgICBjb25zdCBjb2xsZWN0aW9ucyA9IG5ldyBTZXQobWV0YS5jb2xsZWN0aW9ucyB8fCBbXSk7XG4gICAgICBjb2xsZWN0aW9ucy5hZGQoY29sbGVjdGlvbik7XG4gICAgICBtZXRhLmNvbGxlY3Rpb25zID0gWy4uLmNvbGxlY3Rpb25zXTtcbiAgICAgIE1ldGFkYXRhLnNldChjb25zdHIgYXMgQ29uc3RydWN0b3IsIGtleSwgbWV0YSk7XG5cbiAgICAgIGNvbnN0IGNvbnN0ck1ldGEgPSBNZXRhZGF0YS5nZXQoY29uc3RyIGFzIENvbnN0cnVjdG9yLCB0eXBlKSB8fCB7fTtcbiAgICAgIGNvbnN0IGNvbnN0ckNvbGxlY3Rpb25zID0gbmV3IFNldChjb25zdHJNZXRhLmNvbGxlY3Rpb25zIHx8IFtdKTtcbiAgICAgIGNvbnN0ckNvbGxlY3Rpb25zLmFkZChjb2xsZWN0aW9uKTtcbiAgICAgIG1ldGEuY29sbGVjdGlvbnMgPSBbLi4uY29sbGVjdGlvbnNdO1xuICAgICAgTWV0YWRhdGEuc2V0KGNvbnN0ciBhcyBDb25zdHJ1Y3RvciwgdHlwZSwgbWV0YSk7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjczogYW55W10gPSBbXTtcbiAgICBpZiAoIXByb3BlcnR5S2V5KSB7XG4gICAgICAvLyBkZWNvcmF0ZWQgYXQgdGhlIGNsYXNzIGxldmVsXG4gICAgICBNZXRhZGF0YS5wcm9wZXJ0aWVzKHRhcmdldCBhcyBDb25zdHJ1Y3Rvcik/LmZvckVhY2goKHApID0+IHtcbiAgICAgICAgaWYgKCFmaWx0ZXIgfHwgZmlsdGVyKHApKSB7XG4gICAgICAgICAgc2VncmVnYXRlZChjb2xsZWN0aW9uLCB0eXBlKSgodGFyZ2V0IGFzIGFueSkucHJvdG90eXBlLCBwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY3MucHVzaChcbiAgICAgICAgcHJvcCgpLFxuICAgICAgICB0cmFuc2llbnQoKSxcbiAgICAgICAgc2VncmVnYXRlZERlYyxcbiAgICAgICAgb25DcmVhdGUoXG4gICAgICAgICAgc2VncmVnYXRlZERhdGFPbkNyZWF0ZSxcbiAgICAgICAgICB7IGNvbGxlY3Rpb25zOiBjb2xsZWN0aW9uIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpb3JpdHk6IDk1LFxuICAgICAgICAgICAgZ3JvdXA6XG4gICAgICAgICAgICAgIHR5cGVvZiBjb2xsZWN0aW9uID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgPyBjb2xsZWN0aW9uXG4gICAgICAgICAgICAgICAgOiBjb2xsZWN0aW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBvblJlYWQoXG4gICAgICAgICAgc2VncmVnYXRlZERhdGFPblJlYWQgYXMgYW55LFxuICAgICAgICAgIHsgY29sbGVjdGlvbnM6IGNvbGxlY3Rpb24gfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcmlvcml0eTogOTUsXG4gICAgICAgICAgICBncm91cDpcbiAgICAgICAgICAgICAgdHlwZW9mIGNvbGxlY3Rpb24gPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICA/IGNvbGxlY3Rpb25cbiAgICAgICAgICAgICAgICA6IGNvbGxlY3Rpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIG9uVXBkYXRlKFxuICAgICAgICAgIHNlZ3JlZ2F0ZWREYXRhT25VcGRhdGUgYXMgYW55LFxuICAgICAgICAgIHsgY29sbGVjdGlvbnM6IGNvbGxlY3Rpb24gfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcmlvcml0eTogOTUsXG4gICAgICAgICAgICBncm91cDpcbiAgICAgICAgICAgICAgdHlwZW9mIGNvbGxlY3Rpb24gPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICA/IGNvbGxlY3Rpb25cbiAgICAgICAgICAgICAgICA6IGNvbGxlY3Rpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIG9uRGVsZXRlKFxuICAgICAgICAgIHNlZ3JlZ2F0ZWREYXRhT25EZWxldGUgYXMgYW55LFxuICAgICAgICAgIHsgY29sbGVjdGlvbnM6IGNvbGxlY3Rpb24gfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcmlvcml0eTogOTUsXG4gICAgICAgICAgICBncm91cDpcbiAgICAgICAgICAgICAgdHlwZW9mIGNvbGxlY3Rpb24gPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICA/IGNvbGxlY3Rpb25cbiAgICAgICAgICAgICAgICA6IGNvbGxlY3Rpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBhcHBseSguLi5kZWNzKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaXZhdGVEYXRhKFxuICBjb2xsZWN0aW9uOiBzdHJpbmcgfCBDb2xsZWN0aW9uUmVzb2x2ZXIgPSBJbXBsaWNpdFByaXZhdGVDb2xsZWN0aW9uXG4pIHtcbiAgZnVuY3Rpb24gcHJpdmF0ZURhdGEoY29sbGVjdGlvbjogc3RyaW5nIHwgQ29sbGVjdGlvblJlc29sdmVyKSB7XG4gICAgcmV0dXJuIHNlZ3JlZ2F0ZWQoY29sbGVjdGlvbiwgRmFicmljTW9kZWxLZXlzLlBSSVZBVEUpO1xuICB9XG5cbiAgcmV0dXJuIERlY29yYXRpb24uZm9yKEZhYnJpY01vZGVsS2V5cy5QUklWQVRFKVxuICAgIC5kZWZpbmUoe1xuICAgICAgZGVjb3JhdG9yOiBwcml2YXRlRGF0YSxcbiAgICAgIGFyZ3M6IFtjb2xsZWN0aW9uXSxcbiAgICB9KVxuICAgIC5hcHBseSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hhcmVkRGF0YShjb2xsZWN0aW9uOiBzdHJpbmcgfCBDb2xsZWN0aW9uUmVzb2x2ZXIpIHtcbiAgZnVuY3Rpb24gc2hhcmVkRGF0YShjb2xsZWN0aW9uOiBzdHJpbmcgfCBDb2xsZWN0aW9uUmVzb2x2ZXIpIHtcbiAgICByZXR1cm4gc2VncmVnYXRlZChjb2xsZWN0aW9uLCBGYWJyaWNNb2RlbEtleXMuU0hBUkVEKTtcbiAgfVxuXG4gIHJldHVybiBEZWNvcmF0aW9uLmZvcihGYWJyaWNNb2RlbEtleXMuU0hBUkVEKVxuICAgIC5kZWZpbmUoe1xuICAgICAgZGVjb3JhdG9yOiBzaGFyZWREYXRhLFxuICAgICAgYXJnczogW2NvbGxlY3Rpb25dLFxuICAgIH0pXG4gICAgLmFwcGx5KCk7XG59XG4iXX0=
@@ -1,6 +1,9 @@
1
1
  import { Repo, Context, Repository, ContextOf } from "@decaf-ts/core";
2
2
  import { Model } from "@decaf-ts/decorator-validation";
3
+ import { Constructor } from "@decaf-ts/decoration";
3
4
  import { FabricFlags } from "./types";
5
+ import { FabricContractFlags } from "../contracts/types";
6
+ import "../shared/overrides";
4
7
  /**
5
8
  * Decorator for marking methods that require ownership authorization.
6
9
  * Checks the owner of the token before allowing the method to be executed.
@@ -22,8 +25,18 @@ export declare function ownedByOnCreate<M extends Model<boolean>, R extends Repo
22
25
  export declare function ownedBy(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
23
26
  export declare function transactionIdOnCreate<M extends Model<boolean>, R extends Repo<M>, V>(this: R, context: ContextOf<R>, data: V, key: keyof M, model: M): Promise<void>;
24
27
  export declare function transactionId(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
25
- export declare function getFabricModelKey(key: string): string;
26
- export type CollectionResolver = <M extends Model>(model: M) => string;
28
+ export type MirrorCondition = (msp: string) => boolean;
29
+ export type MirrorMetadata = {
30
+ condition: MirrorCondition;
31
+ resolver: CollectionResolver | string;
32
+ };
33
+ export declare function evalMirrorMetadata<M extends Model>(model: M, resolver: undefined | string | CollectionResolver, ctx: Context<FabricContractFlags>): Promise<string>;
34
+ export declare function createMirrorHandler<M extends Model, R extends Repository<M, any>>(this: R, context: Context<FabricContractFlags>, data: MirrorMetadata, key: keyof M, model: M): Promise<void>;
35
+ export declare function updateMirrorHandler<M extends Model, R extends Repository<M, any>>(this: R, context: Context<FabricContractFlags>, data: MirrorMetadata, key: keyof M, model: M): Promise<void>;
36
+ export declare function deleteMirrorHandler<M extends Model, R extends Repository<M, any>>(this: R, context: Context<FabricContractFlags>, data: MirrorMetadata, key: keyof M, model: M): Promise<void>;
37
+ export declare function mirror(collection: CollectionResolver | string, condition?: MirrorCondition): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
38
+ export type CollectionResolver = <M extends Model>(model: M | Constructor<M>, msp?: string, ...args: any[]) => string;
39
+ export declare const ModelCollection: CollectionResolver;
27
40
  export declare const ImplicitPrivateCollection: CollectionResolver;
28
41
  export type SegregatedDataMetadata = {
29
42
  collections: string | CollectionResolver;
@@ -27,4 +27,4 @@ var ERC20Events;
27
27
  */
28
28
  ERC20Events["APPROVAL"] = "Approval";
29
29
  })(ERC20Events || (exports.ERC20Events = ERC20Events = {}));
30
- //# sourceMappingURL=erc20-constants.js.map
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJjMjAtY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9lcmMyMC9lcmMyMC1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsSUFBWSxXQWtCWDtBQWxCRCxXQUFZLFdBQVc7SUFDckI7Ozs7OztPQU1HO0lBQ0gsb0NBQXFCLENBQUE7SUFFckI7Ozs7OztPQU1HO0lBQ0gsb0NBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQWxCVyxXQUFXLDJCQUFYLFdBQVcsUUFrQnRCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgZXZlbnRzIGVtaXR0ZWQgYnkgYW4gRVJDMjAgY29udHJhY3QuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgZW51bSBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBldmVudHMgdGhhdCBjYW4gYmUgZW1pdHRlZCBieSBhbiBFUkMyMCBjb250cmFjdC5cbiAqIFRoZSBldmVudHMgYXJlIG5hbWVkIGFjY29yZGluZyB0byB0aGUgRUlQLTIwIHN0YW5kYXJkLlxuICovXG5leHBvcnQgZW51bSBFUkMyMEV2ZW50cyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSBgdHJhbnNmZXJgIGZ1bmN0aW9uIGlzIGNhbGxlZCBzdWNjZXNzZnVsbHkuXG4gICAqXG4gICAqIEBwYXJhbSBmcm9tIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHNlbmRlci5cbiAgICogQHBhcmFtIHRvIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHJlY2lwaWVudC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdHJhbnNmZXJyZWQuXG4gICAqL1xuICBUUkFOU0ZFUiA9IFwiVHJhbnNmZXJcIixcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGFuIGBhcHByb3ZlYCBmdW5jdGlvbiBpcyBjYWxsZWQgc3VjY2Vzc2Z1bGx5LlxuICAgKlxuICAgKiBAcGFyYW0gb3duZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgdG9rZW4gb3duZXIuXG4gICAqIEBwYXJhbSBzcGVuZGVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGFwcHJvdmVkIHNwZW5kZXIuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBhbW91bnQgb2YgdG9rZW5zIGFwcHJvdmVkIGZvciB0aGUgc3BlbmRlci5cbiAgICovXG4gIEFQUFJPVkFMID0gXCJBcHByb3ZhbFwiLFxufVxuIl19
@@ -15,4 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./erc20-constants.cjs"), exports);
18
- //# sourceMappingURL=index.js.map
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL2VyYzIwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3REFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9lcmMyMC1jb25zdGFudHNcIjtcbiJdfQ==
@@ -169,4 +169,4 @@ class EndorsementPolicyError extends db_decorators_1.InternalError {
169
169
  }
170
170
  }
171
171
  exports.EndorsementPolicyError = EndorsementPolicyError;
172
- //# sourceMappingURL=errors.js.map
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NoYXJlZC9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQW1FO0FBQ25FLHlDQUFvRDtBQUNwRCxrRkFBa0Y7QUFDbEY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsNkJBQWE7SUFDOUMsWUFBWSxHQUFtQjtRQUM3QixLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFKRCxzQ0FJQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsWUFBYSxTQUFRLDZCQUFhO0lBQzdDLFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBSkQsb0NBSUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLGNBQWUsU0FBUSw2QkFBYTtJQUMvQyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQUpELHdDQUlDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLHlCQUFrQjtJQUN2RCxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBSkQsOENBSUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSw2QkFBYTtJQUNwRCxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQUpELGtEQUlDO0FBRUQsTUFBYSw2QkFBOEIsU0FBUSx5QkFBUztJQUMxRCxZQUFZLE1BQXNCLG9DQUFvQztRQUNwRSxLQUFLLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0Y7QUFKRCxzRUFJQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSx5QkFBUztJQUNoRCxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQUpELGtEQUlDO0FBRUQsTUFBYSxpQkFBa0IsU0FBUSw2QkFBYTtJQUNsRCxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQUpELDhDQUlDO0FBRUQsTUFBYSxnQkFBaUIsU0FBUSw2QkFBYTtJQUNqRCxZQUFZLE9BQXVCO1FBQ2pDLEtBQUssQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQUpELDRDQUlDO0FBRUQsTUFBYSxxQkFBc0IsU0FBUSw2QkFBYTtJQUN0RCxZQUFZLE9BQXVCO1FBQ2pDLEtBQUssQ0FBQyxPQUFPLEVBQUUscUJBQXFCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQUpELHNEQUlDO0FBRUQsTUFBYSx3QkFBeUIsU0FBUSw2QkFBYTtJQUN6RCxZQUFZLE9BQXVCO1FBQ2pDLEtBQUssQ0FBQyxPQUFPLEVBQUUsd0JBQXdCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FDRjtBQUpELDREQUlDO0FBRUQsTUFBYSxzQkFBdUIsU0FBUSw2QkFBYTtJQUN2RCxZQUFZLE9BQXVCO1FBQ2pDLEtBQUssQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FDRjtBQUpELHdEQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUVycm9yLCBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBBdXRob3JpemF0aW9uRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbi8vIGltcG9ydCB7IE1JU1NJTkdfUFJJVkFURV9EQVRBX0VSUk9SX01FU1NBR0UgfSBmcm9tIFwiLi4vY29udHJhY3RzL3ByaXZhdGUtZGF0YVwiO1xuLyoqXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGFuIG92ZXJmbG93IGVycm9yIGluIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBpbiBTbWFydCBDb250cmFjdHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnIHRoZSBlcnJvciBtZXNzYWdlXG4gKlxuICogQGNsYXNzIE92ZXJmbG93RXJyb3JcbiAqIEBleHRlbmRzIEludGVybmFsRXJyb3JcbiAqXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBPdmVyZmxvd0Vycm9yIGV4dGVuZHMgSW50ZXJuYWxFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihtc2csIE92ZXJmbG93RXJyb3IubmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgZmFpbHVyZSBpbiBiYWxhbmNlIHRvIHBlcmZvcm0gYSB0cmFuc2FjdGlvbiBpbiBTbWFydCBDb250cmFjdHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnIHRoZSBlcnJvciBtZXNzYWdlXG4gKlxuICogQGNsYXNzIEJhbGFuY2VFcnJvclxuICogQGV4dGVuZHMgSW50ZXJuYWxFcnJvclxuICpcbiAqIEBjYXRlZ29yeSBFcnJvcnNcbiAqL1xuZXhwb3J0IGNsYXNzIEJhbGFuY2VFcnJvciBleHRlbmRzIEludGVybmFsRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBCYWxhbmNlRXJyb3IubmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgZmFpbHVyZSBpbiBiYWxhbmNlIHRvIHBlcmZvcm0gYSB0cmFuc2FjdGlvbiBpbiBTbWFydCBDb250cmFjdHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnIHRoZSBlcnJvciBtZXNzYWdlXG4gKlxuICogQGNsYXNzIEJhbGFuY2VFcnJvclxuICogQGV4dGVuZHMgSW50ZXJuYWxFcnJvclxuICpcbiAqIEBjYXRlZ29yeSBFcnJvcnNcbiAqL1xuZXhwb3J0IGNsYXNzIEFsbG93YW5jZUVycm9yIGV4dGVuZHMgSW50ZXJuYWxFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihtc2csIEFsbG93YW5jZUVycm9yLm5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIGZhaWx1cmUgcmVnaXN0cmF0aW5nIG5ldyBlbnRpdGllc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtc2cgdGhlIGVycm9yIG1lc3NhZ2VcbiAqXG4gKiBAY2xhc3MgUmVnaXN0cmF0aW9uRXJyb3JcbiAqXG4gKiBAY2F0ZWdvcnQgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWdpc3RyYXRpb25FcnJvciBleHRlbmRzIEF1dGhvcml6YXRpb25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihtc2csIFJlZ2lzdHJhdGlvbkVycm9yLm5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVycm9yIHRocm93biB3aGVuIGFuIHVuc3VwcG9ydGVkIG9wZXJhdGlvbiBpcyBhdHRlbXB0ZWRcbiAqIEBzdW1tYXJ5IFRoaXMgZXJyb3IgaXMgdGhyb3duIHdoZW4gYW4gb3BlcmF0aW9uIGlzIHJlcXVlc3RlZCB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGN1cnJlbnRcbiAqIHBlcnNpc3RlbmNlIGFkYXB0ZXIgb3IgY29uZmlndXJhdGlvbi4gSXQgZXh0ZW5kcyB0aGUgQmFzZUVycm9yIGNsYXNzIGFuZCBzZXRzIGEgNTAwIHN0YXR1cyBjb2RlLlxuICogQHBhcmFtIHtzdHJpbmd8RXJyb3J9IG1zZyAtIFRoZSBlcnJvciBtZXNzYWdlIG9yIGFuIEVycm9yIG9iamVjdCB0byB3cmFwXG4gKiBAY2xhc3MgVW5zdXBwb3J0ZWRFcnJvclxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIFRocm93aW5nIGFuIFVuc3VwcG9ydGVkRXJyb3JcbiAqIGlmICghYWRhcHRlci5zdXBwb3J0c1RyYW5zYWN0aW9ucygpKSB7XG4gKiAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKCdUcmFuc2FjdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBhZGFwdGVyJyk7XG4gKiB9XG4gKlxuICogLy8gQ2F0Y2hpbmcgYW4gVW5zdXBwb3J0ZWRFcnJvclxuICogdHJ5IHtcbiAqICAgYXdhaXQgYWRhcHRlci5iZWdpblRyYW5zYWN0aW9uKCk7XG4gKiB9IGNhdGNoIChlcnJvcikge1xuICogICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBVbnN1cHBvcnRlZEVycm9yKSB7XG4gKiAgICAgY29uc29sZS5lcnJvcignT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQ6JywgZXJyb3IubWVzc2FnZSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBFcnJvcnNcbiAqL1xuZXhwb3J0IGNsYXNzIE1pc3NpbmdDb250ZXh0RXJyb3IgZXh0ZW5kcyBJbnRlcm5hbEVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKG1zZywgTWlzc2luZ0NvbnRleHRFcnJvci5uYW1lLCA1MDApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVbmF1dGhvcml6ZWRQcml2YXRlRGF0YUFjY2VzcyBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IgPSBcIk1JU1NJTkdfUFJJVkFURV9EQVRBX0VSUk9SX01FU1NBR0VcIikge1xuICAgIHN1cGVyKFVuYXV0aG9yaXplZFByaXZhdGVEYXRhQWNjZXNzLm5hbWUsIG1zZywgNDAzKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gZXJyb3IgdGhhdCBvY2N1cnMgd2hlbiBhIHJlcXVpcmVkIGluaXRpYWxpemF0aW9uIHN0ZXAgaXMgbm90IHBlcmZvcm1lZC5cbiAqXG4gKiBAY2xhc3MgTm90SW5pdGlhbGl6ZWRFcnJvclxuICogQGV4dGVuZHMgQmFzZUVycm9yXG4gKlxuICogQGNhdGVnb3J5IEVycm9yc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgRXJyb3J9IG1zZyAtIFRoZSBlcnJvciBtZXNzYWdlIG9yIGFuIEVycm9yIG9iamVjdCB0byB3cmFwLlxuICpcbiAqIEB0aHJvd3Mge05vdEluaXRpYWxpemVkRXJyb3J9IC0gVGhyb3dzIGFuIGVycm9yIHdoZW4gYSByZXF1aXJlZCBpbml0aWFsaXphdGlvbiBzdGVwIGlzIG5vdCBwZXJmb3JtZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluaXRpYWxpemUgdGhlIGFwcGxpY2F0aW9uXG4gKiBpZiAoIWlzSW5pdGlhbGl6ZWQpIHtcbiAqICAgdGhyb3cgbmV3IE5vdEluaXRpYWxpemVkRXJyb3IoJ0FwcGxpY2F0aW9uIGlzIG5vdCBpbml0aWFsaXplZCcpO1xuICogfVxuICpcbiAqIC8vIENhdGNoaW5nIGFuIE5vdEluaXRpYWxpemVkRXJyb3JcbiAqIHRyeSB7XG4gKiAgIC8vIFBlcmZvcm0gb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgaW5pdGlhbGl6YXRpb25cbiAqIH0gY2F0Y2ggKGVycm9yKSB7XG4gKiAgIGlmIChlcnJvciBpbnN0YW5jZW9mIE5vdEluaXRpYWxpemVkRXJyb3IpIHtcbiAqICAgICBjb25zb2xlLmVycm9yKCdJbml0aWFsaXphdGlvbiBlcnJvcjonLCBlcnJvci5tZXNzYWdlKTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RJbml0aWFsaXplZEVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKE5vdEluaXRpYWxpemVkRXJyb3IubmFtZSwgbXNnLCA0MDkpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaXNzaW5nUEtDU1MxMUxpYiBleHRlbmRzIEludGVybmFsRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBNaXNzaW5nUEtDU1MxMUxpYi5uYW1lLCA1MDApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbmRvcnNlbWVudEVycm9yIGV4dGVuZHMgSW50ZXJuYWxFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgRW5kb3JzZW1lbnRFcnJvci5uYW1lLCA1MDApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNdmNjUmVhZENvbmZsaWN0RXJyb3IgZXh0ZW5kcyBJbnRlcm5hbEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihtZXNzYWdlLCBNdmNjUmVhZENvbmZsaWN0RXJyb3IubmFtZSwgNTAwKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGhhbnRvbVJlYWRDb25mbGljdEVycm9yIGV4dGVuZHMgSW50ZXJuYWxFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgUGhhbnRvbVJlYWRDb25mbGljdEVycm9yLm5hbWUsIDUwMCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVuZG9yc2VtZW50UG9saWN5RXJyb3IgZXh0ZW5kcyBJbnRlcm5hbEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihtZXNzYWdlLCBFbmRvcnNlbWVudFBvbGljeUVycm9yLm5hbWUsIDUwMCk7XG4gIH1cbn1cbiJdfQ==
@@ -48,4 +48,4 @@ function parseEventName(name) {
48
48
  owner: parts[2],
49
49
  };
50
50
  }
51
- //# sourceMappingURL=events.js.map
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NoYXJlZC9ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSwwREFRQztBQXNCRCx3Q0FpQkM7QUF6REQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLEtBQWEsRUFDYixLQUFxRCxFQUNyRCxLQUFjO0lBRWQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUIsSUFBSSxLQUFLO1FBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLElBQVk7SUFLekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUM3RCxPQUFPO1FBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDZixLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNmLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBS2hCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVsa0NydWRPcGVyYXRpb25LZXlzLCBPcGVyYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdlbmVyYXRlcyBhIEZhYnJpYyBldmVudCBuYW1lIGZyb20gY29tcG9uZW50c1xuICogQHN1bW1hcnkgQ3JlYXRlcyBhIHN0YW5kYXJkaXplZCBldmVudCBuYW1lIGJ5IGpvaW5pbmcgdGFibGUsIGV2ZW50LCBhbmQgb3B0aW9uYWwgb3duZXIgd2l0aCB1bmRlcnNjb3Jlc1xuICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlIC0gVGhlIHRhYmxlL2NvbGxlY3Rpb24gbmFtZVxuICogQHBhcmFtIHtPcGVyYXRpb25LZXlzIHwgQnVsa0NydWRPcGVyYXRpb25LZXlzIHwgc3RyaW5nfSBldmVudCAtIFRoZSBldmVudCB0eXBlXG4gKiBAcGFyYW0ge3N0cmluZ30gW293bmVyXSAtIE9wdGlvbmFsIG93bmVyIGlkZW50aWZpZXJcbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGdlbmVyYXRlZCBldmVudCBuYW1lIGluIGZvcm1hdCBcInRhYmxlX2V2ZW50XCIgb3IgXCJ0YWJsZV9ldmVudF9vd25lclwiXG4gKiBAZnVuY3Rpb24gZ2VuZXJhdGVGYWJyaWNFdmVudE5hbWVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlRmFicmljRXZlbnROYW1lKFxuICB0YWJsZTogc3RyaW5nLFxuICBldmVudDogT3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZyxcbiAgb3duZXI/OiBzdHJpbmdcbikge1xuICBjb25zdCBwYXJhbXMgPSBbdGFibGUsIGV2ZW50XTtcbiAgaWYgKG93bmVyKSBwYXJhbXMucHVzaChvd25lcik7XG4gIHJldHVybiBwYXJhbXMuam9pbihcIl9cIik7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhIEZhYnJpYyBldmVudCBuYW1lIGludG8gaXRzIGNvbXBvbmVudHNcbiAqIEBzdW1tYXJ5IFNwbGl0cyBhbiBldmVudCBuYW1lIGJ5IHVuZGVyc2NvcmVzIGFuZCBleHRyYWN0cyB0YWJsZSwgZXZlbnQsIGFuZCBvcHRpb25hbCBvd25lclxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgZXZlbnQgbmFtZSB0byBwYXJzZVxuICogQHJldHVybiB7e3RhYmxlOiBzdHJpbmcsIGV2ZW50OiBPcGVyYXRpb25LZXlzIHwgQnVsa0NydWRPcGVyYXRpb25LZXlzIHwgc3RyaW5nLCBvd25lcjogc3RyaW5nfX0gVGhlIHBhcnNlZCBjb21wb25lbnRzIGFzIGEgc3RydWN0dXJlZCBvYmplY3RcbiAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IElmIHRoZSBldmVudCBuYW1lIGZvcm1hdCBpcyBpbnZhbGlkXG4gKiBAZnVuY3Rpb24gcGFyc2VFdmVudE5hbWVcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gKiAgIHBhcnRpY2lwYW50IFBhcnNlciBhcyBwYXJzZUV2ZW50TmFtZVxuICogICBDYWxsZXItPj5QYXJzZXI6IHBhcnNlRXZlbnROYW1lKG5hbWUpXG4gKiAgIFBhcnNlci0+PlBhcnNlcjogc3BsaXQgbmFtZSBieSBcIl9cIlxuICogICBhbHQgcGFydHMgbGVuZ3RoIGludmFsaWRcbiAqICAgICBQYXJzZXItLT4+Q2FsbGVyOiB0aHJvdyBJbnRlcm5hbEVycm9yXG4gKiAgIGVsc2VcbiAqICAgICBQYXJzZXItLT4+Q2FsbGVyOiB7IHRhYmxlLCBldmVudCwgb3duZXI/IH1cbiAqICAgZW5kXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1mYWJyaWMuc2hhcmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUV2ZW50TmFtZShuYW1lOiBzdHJpbmcpOiB7XG4gIHRhYmxlPzogc3RyaW5nO1xuICBldmVudDogT3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZztcbiAgb3duZXI/OiBzdHJpbmc7XG59IHtcbiAgY29uc3QgcGFydHMgPSBuYW1lLnNwbGl0KFwiX1wiKTtcbiAgaWYgKHBhcnRzLmxlbmd0aCA8IDIgfHwgcGFydHMubGVuZ3RoID4gMylcbiAgICByZXR1cm4geyB0YWJsZTogdW5kZWZpbmVkLCBldmVudDogbmFtZSwgb3duZXI6IHVuZGVmaW5lZCB9O1xuICByZXR1cm4ge1xuICAgIHRhYmxlOiBwYXJ0c1swXSxcbiAgICBldmVudDogcGFydHNbMV0sXG4gICAgb3duZXI6IHBhcnRzWzJdLFxuICB9IGFzIHtcbiAgICB0YWJsZTogc3RyaW5nO1xuICAgIGV2ZW50OiBPcGVyYXRpb25LZXlzIHwgQnVsa0NydWRPcGVyYXRpb25LZXlzIHwgc3RyaW5nO1xuICAgIG93bmVyPzogc3RyaW5nO1xuICB9O1xufVxuIl19
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=fabric-types.js.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmljLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NoYXJlZC9mYWJyaWMtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEdldENlcnRpZmljYXRlc1JlcXVlc3QgPSB7XG4gIGlkPzogc3RyaW5nO1xuICBha2k/OiBzdHJpbmc7XG4gIHNlcmlhbD86IHN0cmluZztcbiAgcmV2b2tlZF9zdGFydD86IHN0cmluZztcbiAgcmV2b2tlZF9lbmQ/OiBzdHJpbmc7XG4gIGV4cGlyZWRfc3RhcnQ/OiBzdHJpbmc7XG4gIGV4cGlyZWRfZW5kPzogc3RyaW5nO1xuICBub3RyZXZva2VkPzogYm9vbGVhbjtcbiAgbm90ZXhwaXJlZD86IGJvb2xlYW47XG4gIGNhPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ2VydGlmaWNhdGVSZXNwb25zZSA9IHtcbiAgY2FuYW1lOiBzdHJpbmc7XG4gIGNlcnRzOiB7IFBFTTogc3RyaW5nIH1bXTtcbn07XG5cbmV4cG9ydCB0eXBlIEZhYnJpY0lkZW50aXR5ID0ge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGFmZmlsaWF0aW9uOiBzdHJpbmc7XG4gIGF0dHJzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W107XG4gIG1heF9lbnJvbGxtZW50czogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgSWRlbnRpdHlSZXNwb25zZSA9IHtcbiAgY2FuYW1lOiBzdHJpbmc7XG4gIGlkZW50aXRpZXM6IEZhYnJpY0lkZW50aXR5W107XG59O1xuIl19
@@ -34,4 +34,4 @@ __exportStar(require("./fabric-types.cjs"), exports);
34
34
  __exportStar(require("./math.cjs"), exports);
35
35
  __exportStar(require("./SimpleDeterministicSerializer.cjs"), exports);
36
36
  __exportStar(require("./types.cjs"), exports);
37
- //# sourceMappingURL=index.js.map
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7R0FLRztBQUNILG9EQUF3QjtBQUN4Qix5REFBNkI7QUFDN0Isb0RBQXdCO0FBQ3hCLHdEQUE0QjtBQUM1Qix5REFBbUM7QUFDbkMsa0RBQTRCO0FBQzVCLG1EQUE2QjtBQUM3QixnRUFBMEM7QUFDMUMsK0NBQXlCO0FBQ3pCLCtDQUF5QjtBQUN6QixxREFBK0I7QUFDL0IsNkNBQXVCO0FBQ3ZCLHNFQUFnRDtBQUNoRCw4Q0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBIeXBlcmxlZGdlciBGYWJyaWMgU2hhcmVkIE1vZHVsZSBmb3IgRGVjYWYtdHNcbiAqIEBzdW1tYXJ5IFRoaXMgbW9kdWxlIHByb3ZpZGVzIGNvbW1vbiBsb2dpYyB0byB0aGUgY2xpZW50IGFuZCBjb250cmFjdCBzaWRlcyBvZiBIeXBlcmxlZGdlciBGYWJyaWNcbiAqIEBuYW1lc3BhY2Ugc2hhcmVkXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1mYWJyaWNcbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vZXJjMjBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ludGVyZmFjZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vdmVycmlkZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0NsaWVudFNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbnN0YW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vRGV0ZXJtaW5pc3RpY1NlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXZlbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mYWJyaWMtdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21hdGhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1NpbXBsZURldGVybWluaXN0aWNTZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuIl19
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Checkable.js.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2thYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9pbnRlcmZhY2VzL0NoZWNrYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJmYWJyaWMtY29udHJhY3QtYXBpXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgaGVhbHRoLWNoZWNrIGNhcGFibGUgY29udHJhY3RzL3NlcnZpY2VzXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBhIHN0YW5kYXJkIGhlYWx0aGNoZWNrIG1ldGhvZCBzaWduYXR1cmUgdG8gcHJvYmUgbGl2ZW5lc3MvcmVhZGluZXNzIG9mIEZhYnJpYyBjb250cmFjdHMgb3Igc2VydmljZXMgdXNpbmcgYSBGYWJyaWMgY29udGV4dFxuICogQHBhcmFtIHtDb250ZXh0fSBjdHggLSBGYWJyaWMgdHJhbnNhY3Rpb24gY29udGV4dCB1c2VkIGZvciBwZXJmb3JtaW5nIHRoZSBoZWFsdGggY2hlY2tcbiAqIEByZXR1cm4ge1Byb21pc2U8c3RyaW5nfGJvb2xlYW4+fSBBIG1lc3NhZ2UgZGVzY3JpYmluZyBoZWFsdGggb3IgYSBib29sZWFuIHN0YXR1c1xuICogQGludGVyZmFjZSBDaGVja2FibGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja2FibGUge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBlcmZvcm0gYSBoZWFsdGggY2hlY2sgdXNpbmcgdGhlIEZhYnJpYyB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEBzdW1tYXJ5IEFsbG93cyBpbXBsZW1lbnRlcnMgdG8gcmVwb3J0IHJlYWRpbmVzcy9saXZlbmVzcyBpbmZvcm1hdGlvbiB0aGF0IGNhbiBiZSBhIHRleHR1YWwgbWVzc2FnZSBvciBhIGJvb2xlYW4gc3RhdHVzXG4gICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IC0gRmFicmljIHRyYW5zYWN0aW9uIGNvbnRleHQgcmVmZXJlbmNlIHVzZWQgZHVyaW5nIHRoZSBjaGVja1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHN0cmluZ3xib29sZWFuPn0gQSBzdHJpbmcgbWVzc2FnZSBkZXNjcmliaW5nIGhlYWx0aCBvciBhIGJvb2xlYW4gaW5kaWNhdGluZyBoZWFsdGh5L3VuaGVhbHRoeVxuICAgKi9cbiAgaGVhbHRoY2hlY2soY3R4OiBDb250ZXh0KTogUHJvbWlzZTxzdHJpbmcgfCBoZWFsdGhjaGVjaz47XG59XG5cbmV4cG9ydCB0eXBlIGhlYWx0aGNoZWNrID0geyBoZWFsdGhjaGVjazogYm9vbGVhbiB9O1xuIl19
@@ -15,4 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Checkable.cjs"), exports);
18
- //# sourceMappingURL=index.js.map
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0NoZWNrYWJsZVwiO1xuIl19
@@ -63,4 +63,4 @@ function safeParseInt(string) {
63
63
  }
64
64
  return parsedint;
65
65
  }
66
- //# sourceMappingURL=math.js.map
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaGFyZWQvbWF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLGtCQU1DO0FBWUQsa0JBTUM7QUFhRCxvQ0FlQztBQWxFRCx5RUFBOEQ7QUFDOUQseUNBQXlDO0FBQ3pDLDJEQUEwRDtBQUUxRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLHNCQUFhLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLHNCQUFhLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLE1BQWM7SUFDekMseURBQXlEO0lBQ3pELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQztJQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzdCLE1BQU0sSUFBSSwrQkFBZSxDQUN2QixJQUFBLG1DQUFZLEVBQUMsc0JBQXNCLEVBQUUsd0JBQXdCLENBQUMsQ0FDL0QsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksK0JBQWUsQ0FDdkIsSUFBQSxtQ0FBWSxFQUFDLHNCQUFzQixFQUFFLGtDQUFrQyxDQUFDLENBQ3pFLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0cmluZ0Zvcm1hdCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IE92ZXJmbG93RXJyb3IgfSBmcm9tIFwiLi9lcnJvcnNcIjtcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPdmVyZmxvdy1zYWZlIGFkZGl0aW9uIG9wZXJhdGlvblxuICogQHN1bW1hcnkgQWRkcyB0d28gbnVtYmVycyBhbmQgdmVyaWZpZXMgbm8gb3ZlcmZsb3cgYnkgcmV2ZXJzZS1jaGVja2luZyB0aGUgb3BlcmFuZHNcbiAqIEBwYXJhbSB7bnVtYmVyfSBhIC0gRmlyc3Qgb3BlcmFuZFxuICogQHBhcmFtIHtudW1iZXJ9IGIgLSBTZWNvbmQgb3BlcmFuZFxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgc3VtIG9mIGEgYW5kIGJcbiAqIEBmdW5jdGlvbiBhZGRcbiAqIEB0aHJvd3Mge092ZXJmbG93RXJyb3J9IG9uIGFkZGl0aW9uIG92ZXJmbG93XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1mYWJyaWMuc2hhcmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGQoYTogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCBjID0gYSArIGI7XG4gIGlmIChhICE9PSBjIC0gYiB8fCBiICE9PSBjIC0gYSkge1xuICAgIHRocm93IG5ldyBPdmVyZmxvd0Vycm9yKGBBZGRpdGlvbiBvdmVyZmxvdzogJHthfSArICR7Yn1gKTtcbiAgfVxuICByZXR1cm4gYztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT3ZlcmZsb3ctc2FmZSBzdWJ0cmFjdGlvbiBvcGVyYXRpb25cbiAqIEBzdW1tYXJ5IFN1YnRyYWN0cyBiIGZyb20gYSBhbmQgdmFsaWRhdGVzIG5vIG92ZXJmbG93IGJ5IHJldmVyc2UtY2hlY2tpbmcgdGhlIG9wZXJhbmRzXG4gKiBAcGFyYW0ge251bWJlcn0gYSAtIE1pbnVlbmRcbiAqIEBwYXJhbSB7bnVtYmVyfSBiIC0gU3VidHJhaGVuZFxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgZGlmZmVyZW5jZSBhIC0gYlxuICogQGZ1bmN0aW9uIHN1YlxuICogQHRocm93cyB7T3ZlcmZsb3dFcnJvcn0gb24gc3VidGFjdGlvbiBvdmVyZmxvd1xuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLnNoYXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3ViKGE6IG51bWJlciwgYjogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3QgYyA9IGEgLSBiO1xuICBpZiAoYSAhPT0gYyArIGIgfHwgYiAhPT0gYSAtIGMpIHtcbiAgICB0aHJvdyBuZXcgT3ZlcmZsb3dFcnJvcihgU3VidHJhY3Rpb24gb3ZlcmZsb3c6ICR7YX0gLSAke2J9YCk7XG4gIH1cbiAgcmV0dXJuIGM7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgU2FmZSBJbnRlZ2VyIFBhcnNlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICpcbiAqIEBmdW5jdGlvbiBzYWZlUGFyc2VJbnRcbiAqXG4gKiBAdGhyb3dzIHtWYWxpZGF0aW9uRXJyb3J9IGlmIHBhcnNlSW50IHJldHVybnMgTmFOXG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLnNoYXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FmZVBhcnNlSW50KHN0cmluZzogc3RyaW5nKTogbnVtYmVyIHtcbiAgLy8gUmVndWxhciBleHByZXNzaW9uIHRvIGNoZWNrIGlmIHN0cmluZyBvbmx5IGhhdmUgZGlnaXRzXG4gIGNvbnN0IGRpZ2l0UmVnZXggPSAvXlxcZCskLztcbiAgaWYgKCFkaWdpdFJlZ2V4LnRlc3Qoc3RyaW5nKSkge1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICBzdHJpbmdGb3JtYXQoXCJGYWlsZWQgdG8gcGFyc2U6IHswfVwiLCBcInN0cmluZyBjb250YWlucyBkaWdpdHNcIilcbiAgICApO1xuICB9XG4gIGNvbnN0IHBhcnNlZGludCA9IHBhcnNlSW50KHN0cmluZyk7XG4gIGlmIChpc05hTihwYXJzZWRpbnQpKSB7XG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHN0cmluZ0Zvcm1hdChcIkZhaWxlZCB0byBwYXJzZTogezB9XCIsIFwic3RyaW5nIGlzIG5vdCBhIHBhcnNhYmxlIGludGVnZXJcIilcbiAgICApO1xuICB9XG4gIHJldHVybiBwYXJzZWRpbnQ7XG59XG4iXX0=
@@ -43,4 +43,4 @@ exports.FabricBaseModel = FabricBaseModel = __decorate([
43
43
  (0, decoration_1.uses)(constants_1.FabricFlavour),
44
44
  __metadata("design:paramtypes", [Object])
45
45
  ], FabricBaseModel);
46
- //# sourceMappingURL=FabricBaseModel.js.map
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQmFzZU1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9tb2RlbC9GYWJyaWNCYXNlTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUVBQXNFO0FBQ3RFLHlDQUE4RDtBQUM5RCwyREFBa0Q7QUFDbEQscURBQXlEO0FBQ3pELGtEQUE2QztBQUl0QyxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFnQixTQUFRLDRCQUFLO0lBZ0J4QyxZQUFZLEdBQStCO1FBQ3pDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FDRixDQUFBO0FBbkJZLDBDQUFlO0FBSTFCO0lBSEMsSUFBQSx3QkFBVyxFQUFDLDJDQUEyQyxDQUFDO0lBQ3hELElBQUEsYUFBTSxHQUFFO0lBQ1IsSUFBQSxnQkFBUyxHQUFFOzhCQUNBLElBQUk7a0RBQUM7QUFLakI7SUFIQyxJQUFBLHdCQUFXLEVBQUMseUNBQXlDLENBQUM7SUFDdEQsSUFBQSxhQUFNLEdBQUU7SUFDUixJQUFBLGdCQUFTLEdBQUU7OEJBQ0EsSUFBSTtrREFBQztBQUtqQjtJQUhDLElBQUEsd0JBQVcsRUFBQyxpQ0FBaUMsQ0FBQztJQUM5QyxJQUFBLGFBQU0sR0FBRTtJQUNSLElBQUEsdUJBQU8sR0FBRTs7Z0RBQ087MEJBZE4sZUFBZTtJQUQzQixJQUFBLGlCQUFJLEVBQUMseUJBQWEsQ0FBQzs7R0FDUCxlQUFlLENBbUIzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsLCB0eXBlIE1vZGVsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgY29sdW1uLCBjcmVhdGVkQXQsIHVwZGF0ZWRBdCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgZGVzY3JpcHRpb24sIHVzZXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0ZsYXZvdXIgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gXCJmYWJyaWMtY29udHJhY3QtYXBpXCI7XG5cbkB1c2VzKEZhYnJpY0ZsYXZvdXIpXG5leHBvcnQgY2xhc3MgRmFicmljQmFzZU1vZGVsIGV4dGVuZHMgTW9kZWwge1xuICBAZGVzY3JpcHRpb24oXCJTdG9yZXMgdGhlIG9yaWdpbmFsIHRpbWVzdGFtcCBvZiBjcmVhdGlvblwiKVxuICBAY29sdW1uKClcbiAgQGNyZWF0ZWRBdCgpXG4gIGNyZWF0ZWRBdCE6IERhdGU7XG5cbiAgQGRlc2NyaXB0aW9uKFwiU3RvcmVzIHRoZSB0aW1lc3RhbXAgb2YgdGhlIGxhc3QgdXBkYXRlXCIpXG4gIEBjb2x1bW4oKVxuICBAdXBkYXRlZEF0KClcbiAgdXBkYXRlZEF0ITogRGF0ZTtcblxuICBAZGVzY3JpcHRpb24oXCJTdG9yZXMgdGhlIHZlcnNpb24gb2YgdGhlIG1vZGVsXCIpXG4gIEBjb2x1bW4oKVxuICBAdmVyc2lvbigpXG4gIHZlcnNpb24hOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoYXJnPzogTW9kZWxBcmc8RmFicmljQmFzZU1vZGVsPikge1xuICAgIHN1cGVyKGFyZyk7XG4gIH1cbn1cbiJdfQ==
@@ -36,4 +36,4 @@ exports.FabricIdentifiedBaseModel = FabricIdentifiedBaseModel = __decorate([
36
36
  (0, decoration_1.uses)(constants_1.FabricFlavour),
37
37
  __metadata("design:paramtypes", [Object])
38
38
  ], FabricIdentifiedBaseModel);
39
- //# sourceMappingURL=FabricIdentifiedBaseModel.js.map
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljSWRlbnRpZmllZEJhc2VNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaGFyZWQvbW9kZWwvRmFicmljSWRlbnRpZmllZEJhc2VNb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQSx5Q0FBOEQ7QUFDOUQscURBQXlEO0FBQ3pELGtEQUE2QztBQUM3QywyREFBb0Q7QUFHN0MsSUFBZSx5QkFBeUIsR0FBeEMsTUFBZSx5QkFBMEIsU0FBUSxpQ0FBZTtJQVdyRSxZQUFzQixHQUF5QztRQUM3RCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDYixDQUFDO0NBQ0YsQ0FBQTtBQWRxQiw4REFBeUI7QUFJN0M7SUFIQyxJQUFBLHdCQUFXLEVBQUMsb0JBQW9CLENBQUM7SUFDakMsSUFBQSxhQUFNLEdBQUU7SUFDUixJQUFBLGdCQUFTLEdBQUU7OzREQUNPO0FBS25CO0lBSEMsSUFBQSx3QkFBVyxFQUFDLDZDQUE2QyxDQUFDO0lBQzFELElBQUEsYUFBTSxHQUFFO0lBQ1IsSUFBQSxnQkFBUyxHQUFFOzs0REFDTztvQ0FUQyx5QkFBeUI7SUFEOUMsSUFBQSxpQkFBSSxFQUFDLHlCQUFhLENBQUM7O0dBQ0UseUJBQXlCLENBYzlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBNb2RlbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGNvbHVtbiwgY3JlYXRlZEJ5LCB1cGRhdGVkQnkgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IGRlc2NyaXB0aW9uLCB1c2VzIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNGbGF2b3VyIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRmFicmljQmFzZU1vZGVsIH0gZnJvbSBcIi4vRmFicmljQmFzZU1vZGVsXCI7XG5cbkB1c2VzKEZhYnJpY0ZsYXZvdXIpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmFicmljSWRlbnRpZmllZEJhc2VNb2RlbCBleHRlbmRzIEZhYnJpY0Jhc2VNb2RlbCB7XG4gIEBkZXNjcmlwdGlvbihcIlN0b3JlcyB0aGUgY3JlYXRvclwiKVxuICBAY29sdW1uKClcbiAgQGNyZWF0ZWRCeSgpXG4gIGNyZWF0ZWRCeSE6IHN0cmluZztcblxuICBAZGVzY3JpcHRpb24oXCJTdG9yZXMgdGhlIHVzZXIgdGhhdCBsYXN0IHVwZGF0ZWQgdGhlIG1vZGVsXCIpXG4gIEBjb2x1bW4oKVxuICBAdXBkYXRlZEJ5KClcbiAgdXBkYXRlZEJ5ITogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihhcmc/OiBNb2RlbEFyZzxGYWJyaWNJZGVudGlmaWVkQmFzZU1vZGVsPikge1xuICAgIHN1cGVyKGFyZyk7XG4gIH1cbn1cbiJdfQ==
@@ -68,4 +68,4 @@ exports.Identity = Identity = __decorate([
68
68
  (0, decorator_validation_1.model)(),
69
69
  __metadata("design:paramtypes", [Object])
70
70
  ], Identity);
71
- //# sourceMappingURL=Identity.js.map
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWRlbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL21vZGVsL0lkZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlDQU93QjtBQUN4Qix5RUFBZ0Y7QUFDaEYsbUVBQTREO0FBQzVELGtEQUE0QztBQUM1QyxxREFBbUQ7QUFFbkQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSSxJQUFNLFFBQVEsR0FBZCxNQUFNLFFBQVMsU0FBUSxnQkFBUztJQW9DckMsWUFBWSxHQUF1QjtRQUNqQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFUYjs7O1dBR0c7UUFHSCxTQUFJLEdBQWlCLHdCQUFZLENBQUMsSUFBSSxDQUFDO0lBSXZDLENBQUM7Q0FDRixDQUFBO0FBdkNZLDRCQUFRO0FBT25CO0lBRkMsSUFBQSx3QkFBVyxFQUFDLG1DQUFtQyxDQUFDO0lBQ2hELElBQUEsU0FBRSxHQUFFOztvQ0FDTztBQVVaO0lBSkMsSUFBQSxlQUFRLEVBQUMseUNBQW1CLEVBQUU7UUFDN0IsTUFBTSxFQUFFLGNBQU8sQ0FBQyxPQUFPO1FBQ3ZCLE1BQU0sRUFBRSxjQUFPLENBQUMsT0FBTztLQUN4QixDQUFDOzhCQUNZLHlDQUFtQjs2Q0FBQztBQVNsQztJQUhDLElBQUEsYUFBTSxHQUFFO0lBQ1IsSUFBQSwrQkFBUSxHQUFFO0lBQ1YsSUFBQSxZQUFLLEdBQUU7O3VDQUNPO0FBUWY7SUFGQyxJQUFBLGFBQU0sR0FBRTtJQUNSLElBQUEsK0JBQVEsR0FBRTs7c0NBQzRCO21CQWxDNUIsUUFBUTtJQURwQixJQUFBLDRCQUFLLEdBQUU7O0dBQ0ssUUFBUSxDQXVDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlTW9kZWwsXG4gIENhc2NhZGUsXG4gIGNvbHVtbixcbiAgaW5kZXgsXG4gIG9uZVRvT25lLFxuICBwayxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBtb2RlbCwgdHlwZSBNb2RlbEFyZywgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBJZGVudGl0eUNyZWRlbnRpYWxzIH0gZnJvbSBcIi4vSWRlbnRpdHlDcmVkZW50aWFsc1wiO1xuaW1wb3J0IHsgSWRlbnRpdHlUeXBlIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZGVzY3JpcHRpb24gfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSWRlbnRpdHkgbW9kZWwgcmVwcmVzZW50aW5nIGEgRmFicmljIHdhbGxldCBlbnRyeVxuICogQHN1bW1hcnkgRW5jYXBzdWxhdGVzIGFuIGlkZW50aXR5IHN0b3JlZCBpbiBhIEZhYnJpYyB3YWxsZXQsIGluY2x1ZGluZyBpdHMgTVNQIGlkZW50aWZpZXIsIGNyZWRlbnRpYWwgbGlua2FnZSwgYW5kIHR5cGUgaW5mb3JtYXRpb24uIEJ1aWx0IG9uIEJhc2VNb2RlbCBmb3IgaW50ZWdyYXRpb24gd2l0aCBEZWNhZiB2YWxpZGF0aW9uIGFuZCBwZXJzaXN0ZW5jZS5cbiAqIEBwYXJhbSB7TW9kZWxBcmc8SWRlbnRpdHk+fSBbYXJnXSAtIE9wdGlvbmFsIGluaXRpYWxpemF0aW9uIG9iamVjdCB1c2VkIHRvIHBvcHVsYXRlIG1vZGVsIGZpZWxkc1xuICogQGNsYXNzIElkZW50aXR5XG4gKiBAZXhhbXBsZVxuICogLy8gQ3JlYXRlIGEgbmV3IGlkZW50aXR5IHJlZmVyZW5jaW5nIGV4aXN0aW5nIGNyZWRlbnRpYWxzXG4gKiBjb25zdCBpZCA9IG5ldyBJZGVudGl0eSh7IGlkOiBcInVzZXIxXCIsIG1zcElkOiBcIk9yZzFNU1BcIiwgdHlwZTogSWRlbnRpdHlUeXBlLlg1MDkgfSk7XG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBNb2RlbCBhcyBJZGVudGl0eVxuICogICBBcHAtPj5Nb2RlbDogbmV3IElkZW50aXR5KHsgaWQsIG1zcElkLCB0eXBlIH0pXG4gKiAgIE1vZGVsLS0+PkFwcDogaW5zdGFuY2VcbiAqL1xuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBJZGVudGl0eSBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGlkZW50aXR5IGluIHRoZSB3YWxsZXRcbiAgICogQHN1bW1hcnkgUHJpbWFyeSBrZXkgdXNlZCB0byByZWZlcmVuY2UgdGhpcyBpZGVudGl0eSByZWNvcmRcbiAgICovXG4gIEBkZXNjcmlwdGlvbihcIlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBpZGVudGl0eVwiKVxuICBAcGsoKVxuICBpZCE6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExpbmsgdG8gdGhlIGlkZW50aXR5IGNyZWRlbnRpYWxzIHN0b3JlZCBzZXBhcmF0ZWx5XG4gICAqIEBzdW1tYXJ5IE9uZS10by1vbmUgcmVsYXRpb25zaGlwIHRvIHRoZSBjcmVkZW50aWFscyBlbnRpdHk7IGNhc2NhZGVzIG9uIHVwZGF0ZSBhbmQgZGVsZXRlXG4gICAqL1xuICBAb25lVG9PbmUoSWRlbnRpdHlDcmVkZW50aWFscywge1xuICAgIHVwZGF0ZTogQ2FzY2FkZS5DQVNDQURFLFxuICAgIGRlbGV0ZTogQ2FzY2FkZS5DQVNDQURFLFxuICB9KVxuICBjcmVkZW50aWFscyE6IElkZW50aXR5Q3JlZGVudGlhbHM7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBNZW1iZXJzaGlwIFNlcnZpY2UgUHJvdmlkZXIgaWRlbnRpZmllclxuICAgKiBAc3VtbWFyeSBUaGUgTVNQIElEIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG9yZ2FuaXphdGlvbiB0aGF0IGlzc3VlZCB0aGlzIGlkZW50aXR5XG4gICAqL1xuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgQGluZGV4KClcbiAgbXNwSWQhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUeXBlIG9mIGlkZW50aXR5XG4gICAqIEBzdW1tYXJ5IEluZGljYXRlcyB0aGUgaWRlbnRpdHkgZW5jb2RpbmcvZm9ybWF0OyBkZWZhdWx0cyB0byBYLjUwOVxuICAgKi9cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIHR5cGU6IElkZW50aXR5VHlwZSA9IElkZW50aXR5VHlwZS5YNTA5O1xuXG4gIGNvbnN0cnVjdG9yKGFyZzogTW9kZWxBcmc8SWRlbnRpdHk+KSB7XG4gICAgc3VwZXIoYXJnKTtcbiAgfVxufVxuIl19
@@ -63,4 +63,4 @@ exports.IdentityCredentials = IdentityCredentials = __decorate([
63
63
  (0, decorator_validation_1.model)(),
64
64
  __metadata("design:paramtypes", [Object])
65
65
  ], IdentityCredentials);
66
- //# sourceMappingURL=IdentityCredentials.js.map
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWRlbnRpdHlDcmVkZW50aWFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaGFyZWQvbW9kZWwvSWRlbnRpdHlDcmVkZW50aWFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBdUQ7QUFDdkQseUVBQWdGO0FBQ2hGLHFEQUFtRDtBQUVuRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSSxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFvQixTQUFRLGdCQUFTO0lBcUNoRCxZQUFZLEdBQW1DO1FBQzdDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FDRixDQUFBO0FBeENZLGtEQUFtQjtBQVE5QjtJQUhDLElBQUEsd0JBQVcsRUFBQyw2Q0FBNkMsQ0FBQztJQUMxRCxJQUFBLGFBQU0sR0FBRTtJQUNSLElBQUEsU0FBRSxHQUFFOzsrQ0FDTztBQVNaO0lBSEMsSUFBQSx3QkFBVyxFQUFDLGdEQUFnRCxDQUFDO0lBQzdELElBQUEsYUFBTSxHQUFFO0lBQ1IsSUFBQSwrQkFBUSxHQUFFOzt3REFDVTtBQVNyQjtJQUhDLElBQUEsd0JBQVcsRUFBQyw4Q0FBOEMsQ0FBQztJQUMzRCxJQUFBLGFBQU0sR0FBRTtJQUNSLElBQUEsK0JBQVEsR0FBRTs7NERBQ2M7QUFTekI7SUFIQyxJQUFBLHdCQUFXLEVBQUMseUJBQXlCLENBQUM7SUFDdEMsSUFBQSxhQUFNLEdBQUU7SUFDUixJQUFBLCtCQUFRLEdBQUU7O3VEQUNTOzhCQW5DVCxtQkFBbUI7SUFEL0IsSUFBQSw0QkFBSyxHQUFFOztHQUNLLG1CQUFtQixDQXdDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwsIGNvbHVtbiwgcGsgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IG1vZGVsLCB0eXBlIE1vZGVsQXJnLCByZXF1aXJlZCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGRlc2NyaXB0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIElkZW50aXR5IGNyZWRlbnRpYWwgbW9kZWwgc3RvcmluZyBjcnlwdG9ncmFwaGljIG1hdGVyaWFsc1xuICogQHN1bW1hcnkgSG9sZHMgY2VydGlmaWNhdGUgY2hhaW4gYW5kIHByaXZhdGUga2V5IGluZm9ybWF0aW9uIGZvciBhIEZhYnJpYyBpZGVudGl0eSwgbWFuYWdlZCBhcyBhIHNlcGFyYXRlIGVudGl0eSBsaW5rZWQgZnJvbSBJZGVudGl0eVxuICogQHBhcmFtIHtNb2RlbEFyZzxJZGVudGl0eUNyZWRlbnRpYWxzPn0gW2FyZ10gLSBPcHRpb25hbCBpbml0aWFsaXphdGlvbiBvYmplY3QgdXNlZCB0byBwb3B1bGF0ZSBtb2RlbCBmaWVsZHNcbiAqIEBjbGFzcyBJZGVudGl0eUNyZWRlbnRpYWxzXG4gKiBAZXhhbXBsZVxuICogLy8gQ3JlYXRlIGNyZWRlbnRpYWxzIGVudHJ5XG4gKiBjb25zdCBjcmVkcyA9IG5ldyBJZGVudGl0eUNyZWRlbnRpYWxzKHsgaWQ6IFwiY3JlZHMxXCIsIGNlcnRpZmljYXRlOiBcIi4uLlwiLCByb290Q2VydGlmaWNhdGU6IFwiLi4uXCIsIHByaXZhdGVLZXk6IFwiLi4uXCIgfSk7XG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBNb2RlbCBhcyBJZGVudGl0eUNyZWRlbnRpYWxzXG4gKiAgIEFwcC0+Pk1vZGVsOiBuZXcgSWRlbnRpdHlDcmVkZW50aWFscyh7IGlkLCBjZXJ0aWZpY2F0ZSwgcm9vdENlcnRpZmljYXRlLCBwcml2YXRlS2V5IH0pXG4gKiAgIE1vZGVsLS0+PkFwcDogaW5zdGFuY2VcbiAqIEBzZWUgbW9kZWxcbiAqL1xuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBJZGVudGl0eUNyZWRlbnRpYWxzIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY3JlZGVudGlhbHMgcmVjb3JkXG4gICAqIEBzdW1tYXJ5IFByaW1hcnkga2V5IGZvciByZWZlcmVuY2luZyB0aGlzIGNyZWRlbnRpYWxzIGVudHJ5XG4gICAqL1xuICBAZGVzY3JpcHRpb24oXCJVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY3JlZGVudGlhbHMgcmVjb3JkXCIpXG4gIEBjb2x1bW4oKVxuICBAcGsoKVxuICBpZCE6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBFTS1lbmNvZGVkIFguNTA5IGNlcnRpZmljYXRlIGZvciB0aGUgaWRlbnRpdHlcbiAgICogQHN1bW1hcnkgTGVhZiBjZXJ0aWZpY2F0ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGlkZW50aXR5XG4gICAqL1xuICBAZGVzY3JpcHRpb24oXCJQRU0tZW5jb2RlZCBYLjUwOSBjZXJ0aWZpY2F0ZSBmb3IgdGhlIGlkZW50aXR5XCIpXG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICBjZXJ0aWZpY2F0ZSE6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBFTS1lbmNvZGVkIHJvb3Qgb3IgaW50ZXJtZWRpYXRlIGNlcnRpZmljYXRlXG4gICAqIEBzdW1tYXJ5IFJvb3Qgb2YgdHJ1c3QgdXNlZCB0byB2YWxpZGF0ZSB0aGUgbGVhZiBjZXJ0aWZpY2F0ZVxuICAgKi9cbiAgQGRlc2NyaXB0aW9uKFwiUEVNLWVuY29kZWQgcm9vdCBvciBpbnRlcm1lZGlhdGUgY2VydGlmaWNhdGVcIilcbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIHJvb3RDZXJ0aWZpY2F0ZSE6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBFTS1lbmNvZGVkIHByaXZhdGUga2V5IG1hdGVyaWFsXG4gICAqIEBzdW1tYXJ5IFByaXZhdGUga2V5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGlkZW50aXR5IGNlcnRpZmljYXRlXG4gICAqL1xuICBAZGVzY3JpcHRpb24oXCJQRU0tZW5jb2RlZCBwcml2YXRlIGtleVwiKVxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgcHJpdmF0ZUtleSE6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihhcmc/OiBNb2RlbEFyZzxJZGVudGl0eUNyZWRlbnRpYWxzPikge1xuICAgIHN1cGVyKGFyZyk7XG4gIH1cbn1cbiJdfQ==
@@ -18,4 +18,4 @@ __exportStar(require("./FabricBaseModel.cjs"), exports);
18
18
  __exportStar(require("./FabricIdentifiedBaseModel.cjs"), exports);
19
19
  __exportStar(require("./Identity.cjs"), exports);
20
20
  __exportStar(require("./IdentityCredentials.cjs"), exports);
21
- //# sourceMappingURL=index.js.map
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL21vZGVsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3REFBa0M7QUFDbEMsa0VBQTRDO0FBQzVDLGlEQUEyQjtBQUMzQiw0REFBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9GYWJyaWNCYXNlTW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0ZhYnJpY0lkZW50aWZpZWRCYXNlTW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0lkZW50aXR5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9JZGVudGl0eUNyZWRlbnRpYWxzXCI7XG4iXX0=
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  require("@decaf-ts/decorator-validation");
4
- //# sourceMappingURL=Model.js.map
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL292ZXJyaWRlcy9Nb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDBDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlZ3JlZ2F0ZWRNb2RlbCB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29sbGVjdGlvblJlc29sdmVyLCBNaXJyb3JNZXRhZGF0YSB9IGZyb20gXCIuLi9kZWNvcmF0b3JzXCI7XG5cbmRlY2xhcmUgbW9kdWxlIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCIge1xuICBleHBvcnQgaW50ZXJmYWNlIE1vZGVsIHtcbiAgICBpc1ByaXZhdGU8TSBleHRlbmRzIE1vZGVsPih0aGlzOiBNKTogYm9vbGVhbjtcbiAgICBpc1NoYXJlZDxNIGV4dGVuZHMgTW9kZWw+KHRoaXM6IE0pOiBib29sZWFuO1xuICAgIHNlZ3JlZ2F0ZTxNIGV4dGVuZHMgTW9kZWw+KHRoaXM6IE0pOiBTZWdyZWdhdGVkTW9kZWw8TT47XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVxuICBleHBvcnQgbmFtZXNwYWNlIE1vZGVsIHtcbiAgICBmdW5jdGlvbiBpc1ByaXZhdGU8TSBleHRlbmRzIE1vZGVsPihtb2RlbDogQ29uc3RydWN0b3I8TT4pOiBib29sZWFuO1xuICAgIGZ1bmN0aW9uIGlzU2hhcmVkPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IENvbnN0cnVjdG9yPE0+KTogYm9vbGVhbjtcbiAgICBmdW5jdGlvbiBzZWdyZWdhdGU8TSBleHRlbmRzIE1vZGVsPihtb2RlbDogTSk6IFNlZ3JlZ2F0ZWRNb2RlbDxNPjtcbiAgICBmdW5jdGlvbiBvd25lck9mPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IE0pOiBzdHJpbmc7XG4gICAgZnVuY3Rpb24gbWlycm9yZWRBdDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgICAgbW9kZWw6IE0gfCBDb25zdHJ1Y3RvcjxNPlxuICAgICk6IE1pcnJvck1ldGFkYXRhIHwgdW5kZWZpbmVkO1xuICAgIGZ1bmN0aW9uIGNvbGxlY3Rpb25zRm9yPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgICBtb2RlbDogTSB8IENvbnN0cnVjdG9yPE0+XG4gICAgKToge1xuICAgICAgcHJpdmF0ZUNvbHM6IChzdHJpbmcgfCBDb2xsZWN0aW9uUmVzb2x2ZXIpW107XG4gICAgICBzaGFyZWRDb2xzOiAoc3RyaW5nIHwgQ29sbGVjdGlvblJlc29sdmVyKVtdO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { SegregatedModel } from "../types";
2
2
  import { Constructor } from "@decaf-ts/decoration";
3
3
  import "@decaf-ts/decorator-validation";
4
+ import { CollectionResolver, MirrorMetadata } from "../decorators";
4
5
  declare module "@decaf-ts/decorator-validation" {
5
6
  interface Model {
6
7
  isPrivate<M extends Model>(this: M): boolean;
@@ -11,5 +12,11 @@ declare module "@decaf-ts/decorator-validation" {
11
12
  function isPrivate<M extends Model>(model: Constructor<M>): boolean;
12
13
  function isShared<M extends Model>(model: Constructor<M>): boolean;
13
14
  function segregate<M extends Model>(model: M): SegregatedModel<M>;
15
+ function ownerOf<M extends Model>(model: M): string;
16
+ function mirroredAt<M extends Model>(model: M | Constructor<M>): MirrorMetadata | undefined;
17
+ function collectionsFor<M extends Model>(model: M | Constructor<M>): {
18
+ privateCols: (string | CollectionResolver)[];
19
+ sharedCols: (string | CollectionResolver)[];
20
+ };
14
21
  }
15
22
  }
@@ -16,4 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Model.cjs"), exports);
18
18
  __exportStar(require("./overrides.cjs"), exports);
19
- //# sourceMappingURL=index.js.map
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL292ZXJyaWRlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQXdCO0FBQ3hCLGtEQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL01vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vdmVycmlkZXNcIjtcbiJdfQ==