@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
@@ -63,4 +63,4 @@ export class SimpleDeterministicSerializer extends JSONSerializer {
63
63
  return toSerialize;
64
64
  }
65
65
  }
66
- //# sourceMappingURL=SimpleDeterministicSerializer.js.map
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2ltcGxlRGV0ZXJtaW5pc3RpY1NlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL1NpbXBsZURldGVybWluaXN0aWNTZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBQ2QsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBZSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RCxNQUFNLE9BQU8sNkJBRVgsU0FBUSxjQUFpQjtJQUN6QjtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELDZEQUE2RDtJQUNwRCxXQUFXLENBQUMsR0FBVyxFQUFFLFNBQWtCO1FBQ2xELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsK0JBQStCO1FBQy9CLGtCQUFrQjtRQUNsQiwyRUFBMkU7UUFFM0UsdUNBQXVDO1FBQ3ZDLDRFQUE0RTtRQUU1RSxvQkFBb0I7UUFDcEIsNERBQTREO1FBQzVELHlCQUF5QjtRQUN6Qiw0Q0FBNEM7UUFDNUMsd0RBQXdEO1FBQ3hELG9CQUFvQjtRQUNwQixPQUFPO1FBQ1AsVUFBVTtRQUNWLEtBQUs7UUFFTCw4QkFBOEI7UUFDOUIsNEJBQTRCO1FBQzVCLGNBQWM7UUFDZCxxQkFBcUI7UUFFckIsaUJBQWlCO1FBQ2pCLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFUSxTQUFTLENBQUMsS0FBUSxFQUFFLFNBQVMsR0FBRyxJQUFJO1FBQzNDLGlFQUFpRTtRQUNqRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUMxRCxpRUFBaUU7UUFDakUsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sU0FBUyxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRWtCLFlBQVksQ0FBQyxLQUFRLEVBQUUsWUFBcUIsSUFBSTtRQUNqRSw2RUFBNkU7UUFDN0Usd0NBQXdDO1FBQ3hDLE1BQU0sV0FBVyxHQUF3QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRSxJQUFJLFFBQVEsQ0FBQztRQUNiLElBQUksQ0FBQztZQUNILFFBQVEsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUEwQixDQUFDLENBQUM7WUFDaEUsNkRBQTZEO1FBQy9ELENBQUM7UUFBQyxPQUFPLEtBQWMsRUFBRSxDQUFDO1lBQ3hCLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksU0FBUztZQUNYLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsUUFBUSxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBRXJFLFNBQVMsWUFBWSxDQUVuQixHQUFRO1lBRVIsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1lBQ3hDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQUUsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3JELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKU09OU2VyaWFsaXplcixcbiAgTW9kZWwsXG4gIE1vZGVsS2V5cyxcbn0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbmV4cG9ydCBjbGFzcyBTaW1wbGVEZXRlcm1pbmlzdGljU2VyaWFsaXplcjxcbiAgTSBleHRlbmRzIE1vZGVsLFxuPiBleHRlbmRzIEpTT05TZXJpYWxpemVyPE0+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgb3ZlcnJpZGUgZGVzZXJpYWxpemUoc3RyOiBzdHJpbmcsIHRhYmxlTmFtZT86IHN0cmluZyk6IE0ge1xuICAgIGNvbnN0IGRlc2VyaWFsaXphdGlvbiA9IEpTT04ucGFyc2Uoc3RyKTtcbiAgICAvLyBjb25zdCBjbGFzc05hbWUgPSB0YWJsZU5hbWU7XG4gICAgLy8gaWYgKCFjbGFzc05hbWUpXG4gICAgLy8gICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZmluZCBjbGFzcyByZWZlcmVuY2UgaW4gc2VyaWFsaXplZCBtb2RlbFwiKTtcblxuICAgIC8vIC8vIHRoaXMgd2lsbCByZXR1cm4gdW5kZWZpbmVkIHZhbHVlc1xuICAgIC8vIGNvbnN0IG1vZGVsOiBNID0gTW9kZWwuYnVpbGQoZGVzZXJpYWxpemF0aW9uLCBjbGFzc05hbWUpIGFzIHVua25vd24gYXMgTTtcblxuICAgIC8vIC8vIFBvcHVsYXRlIE1vZGVsXG4gICAgLy8gY29uc3QgcHJvY2Vzc2VkRGVzZWFsaXphdGlvbiA9IE9iamVjdC5rZXlzKG1vZGVsKS5yZWR1Y2UoXG4gICAgLy8gICAoYWNjdW06IE0sIGtleSkgPT4ge1xuICAgIC8vICAgICAoYWNjdW0gYXMgUmVjb3JkPHN0cmluZywgYW55Pilba2V5XSA9XG4gICAgLy8gICAgICAgZGVzZXJpYWxpemF0aW9uW1JlcG9zaXRvcnkuY29sdW1uKGFjY3VtLCBrZXkpXTtcbiAgICAvLyAgICAgcmV0dXJuIGFjY3VtO1xuICAgIC8vICAgfSxcbiAgICAvLyAgIG1vZGVsXG4gICAgLy8gKTtcblxuICAgIC8vIGNvbnN0IHJlc3VsdCA9IE1vZGVsLmJ1aWxkKFxuICAgIC8vICAgcHJvY2Vzc2VkRGVzZWFsaXphdGlvbixcbiAgICAvLyAgIGNsYXNzTmFtZVxuICAgIC8vICkgYXMgdW5rbm93biBhcyBNO1xuXG4gICAgLy8gcmV0dXJuIHJlc3VsdDtcbiAgICByZXR1cm4gZGVzZXJpYWxpemF0aW9uO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2VyaWFsaXplKG1vZGVsOiBNLCBwdXRBbmNob3IgPSB0cnVlKTogc3RyaW5nIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgIGNvbnN0IHN0cmluZ2lmeSA9IHJlcXVpcmUoXCJqc29uLXN0cmluZ2lmeS1kZXRlcm1pbmlzdGljXCIpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgY29uc3Qgc29ydEtleXNSZWN1cnNpdmUgPSByZXF1aXJlKFwic29ydC1rZXlzLXJlY3Vyc2l2ZVwiKTtcbiAgICBjb25zdCBwcmVTZXJpYWxpemF0aW9uID0gdGhpcy5wcmVTZXJpYWxpemUobW9kZWwsIHB1dEFuY2hvcik7XG4gICAgcmV0dXJuIHN0cmluZ2lmeShzb3J0S2V5c1JlY3Vyc2l2ZShwcmVTZXJpYWxpemF0aW9uKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcHJlU2VyaWFsaXplKG1vZGVsOiBNLCBwdXRBbmNob3I6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgLy8gVE9ETzogbmVzdGVkIHByZXNlcmlhbGl6YXRpb24gKHNvIGluY3JlYXNlIHBlcmZvcm1hbmNlIHdoZW4gZGVzZXJpYWxpemluZylcbiAgICAvLyBUT0RPOiBWZXJpZnkgd2h5IHRoZXJlIGlzIG5vIG1ldGFkYXRhXG4gICAgY29uc3QgdG9TZXJpYWxpemU6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBPYmplY3QuYXNzaWduKHt9LCBtb2RlbCk7XG4gICAgbGV0IG1ldGFkYXRhO1xuICAgIHRyeSB7XG4gICAgICBtZXRhZGF0YSA9IE1ldGFkYXRhLm1vZGVsTmFtZShtb2RlbC5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3Rvcik7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIG1ldGFkYXRhID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAocHV0QW5jaG9yKVxuICAgICAgdG9TZXJpYWxpemVbTW9kZWxLZXlzLkFOQ0hPUl0gPSBtZXRhZGF0YSB8fCBtb2RlbC5jb25zdHJ1Y3Rvci5uYW1lO1xuXG4gICAgZnVuY3Rpb24gcHJlU2VyaWFsaXplKFxuICAgICAgdGhpczogU2ltcGxlRGV0ZXJtaW5pc3RpY1NlcmlhbGl6ZXI8YW55PixcbiAgICAgIG9iajogYW55XG4gICAgKTogYW55IHtcbiAgICAgIGlmICh0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSByZXR1cm4gb2JqO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkgcmV0dXJuIG9iai5tYXAocHJlU2VyaWFsaXplKTtcbiAgICAgIHJldHVybiB0aGlzLnByZVNlcmlhbGl6ZShvYmopO1xuICAgIH1cbiAgICBNb2RlbC5yZWxhdGlvbnMobW9kZWwpLmZvckVhY2goKHIpID0+IHtcbiAgICAgIHRvU2VyaWFsaXplW3JdID0gcHJlU2VyaWFsaXplLmNhbGwodGhpcywgdG9TZXJpYWxpemVbcl0pO1xuICAgIH0pO1xuICAgIHJldHVybiB0b1NlcmlhbGl6ZTtcbiAgfVxufVxuIl19
@@ -10,9 +10,10 @@ export declare enum FabricModelKeys {
10
10
  PRIVATE = "private",
11
11
  SHARED = "shared",
12
12
  /** Namespace prefix used for Fabric-specific metadata keys */
13
- FABRIC = "fabric.",
14
- OWNEDBY = "owned-by",
15
- TRANSACTION_ID = "transaction-id"
13
+ FABRIC = "fabric",
14
+ OWNED_BY = "owned-by",
15
+ TRANSACTION_ID = "transaction-id",
16
+ MIRROR = "mirror"
16
17
  }
17
18
  /**
18
19
  * @description Supported identity types for Fabric credentials
@@ -11,9 +11,10 @@ export var FabricModelKeys;
11
11
  FabricModelKeys["PRIVATE"] = "private";
12
12
  FabricModelKeys["SHARED"] = "shared";
13
13
  /** Namespace prefix used for Fabric-specific metadata keys */
14
- FabricModelKeys["FABRIC"] = "fabric.";
15
- FabricModelKeys["OWNEDBY"] = "owned-by";
14
+ FabricModelKeys["FABRIC"] = "fabric";
15
+ FabricModelKeys["OWNED_BY"] = "owned-by";
16
16
  FabricModelKeys["TRANSACTION_ID"] = "transaction-id";
17
+ FabricModelKeys["MIRROR"] = "mirror";
17
18
  })(FabricModelKeys || (FabricModelKeys = {}));
18
19
  /**
19
20
  * @description Supported identity types for Fabric credentials
@@ -34,4 +35,4 @@ export var IdentityType;
34
35
  * @memberOf module:for-fabric.shared
35
36
  */
36
37
  export const FabricFlavour = "hlf-fabric";
37
- //# sourceMappingURL=constants.js.map
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFOLElBQVksZUFTWDtBQVRELFdBQVksZUFBZTtJQUN6QiwwRkFBMEY7SUFDMUYsc0NBQW1CLENBQUE7SUFDbkIsb0NBQWlCLENBQUE7SUFDakIsOERBQThEO0lBQzlELG9DQUFpQixDQUFBO0lBQ2pCLHdDQUFxQixDQUFBO0lBQ3JCLG9EQUFpQyxDQUFBO0lBQ2pDLG9DQUFpQixDQUFBO0FBQ25CLENBQUMsRUFUVyxlQUFlLEtBQWYsZUFBZSxRQVMxQjtBQUNEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDdEIsZ0VBQWdFO0lBQ2hFLDhCQUFjLENBQUE7QUFDaEIsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gS2V5cyB1c2VkIHRvIG1hcmsgRmFicmljLXNwZWNpZmljIG1vZGVsIG1ldGFkYXRhXG4gKiBAc3VtbWFyeSBFbnVtZXJhdGlvbiBvZiBzcGVjaWFsIGtleXMgdXNlZCBieSB0aGUgc2VyaWFsaXphdGlvbiBsYXllciB0byBwZXJzaXN0IEZhYnJpYy1yZWxhdGVkIGZsYWdzIG9uIG1vZGVsc1xuICogQGVudW0ge3N0cmluZ31cbiAqIEByZWFkb25seVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLnNoYXJlZFxuICovXG5leHBvcnQgZW51bSBGYWJyaWNNb2RlbEtleXMge1xuICAvKiogUHJpdmF0ZSBkYXRhIG1hcmtlciB1c2VkIHRvIHRhZyBwcm9wZXJ0aWVzIG9yIG1vZGVscyBmb3IgRmFicmljIHByaXZhdGUgY29sbGVjdGlvbnMgKi9cbiAgUFJJVkFURSA9IFwicHJpdmF0ZVwiLFxuICBTSEFSRUQgPSBcInNoYXJlZFwiLFxuICAvKiogTmFtZXNwYWNlIHByZWZpeCB1c2VkIGZvciBGYWJyaWMtc3BlY2lmaWMgbWV0YWRhdGEga2V5cyAqL1xuICBGQUJSSUMgPSBcImZhYnJpY1wiLFxuICBPV05FRF9CWSA9IFwib3duZWQtYnlcIixcbiAgVFJBTlNBQ1RJT05fSUQgPSBcInRyYW5zYWN0aW9uLWlkXCIsXG4gIE1JUlJPUiA9IFwibWlycm9yXCIsXG59XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTdXBwb3J0ZWQgaWRlbnRpdHkgdHlwZXMgZm9yIEZhYnJpYyBjcmVkZW50aWFsc1xuICogQHN1bW1hcnkgRW51bWVyYXRpb24gb2YgaWRlbnRpdHkgZm9ybWF0cyByZWNvZ25pemVkIGJ5IHRoaXMgbGlicmFyeVxuICogQGVudW0ge3N0cmluZ31cbiAqIEByZWFkb25seVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLnNoYXJlZFxuICovXG5leHBvcnQgZW51bSBJZGVudGl0eVR5cGUge1xuICAvKiogU3RhbmRhcmQgWC41MDkgaWRlbnRpdHkgZm9ybWF0IHVzZWQgYnkgSHlwZXJsZWRnZXIgRmFicmljICovXG4gIFg1MDkgPSBcIlguNTA5XCIsXG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0cmluZyBpZGVudGlmaWVyIGZvciB0aGUgRmFicmljIGFkYXB0ZXIgZmxhdm91clxuICogQHN1bW1hcnkgVXNlZCB0byB0YWcgYWRhcHRlcnMvcmVwb3NpdG9yaWVzIHRoYXQgb3BlcmF0ZSBhZ2FpbnN0IEh5cGVybGVkZ2VyIEZhYnJpY1xuICogQGNvbnN0IEZhYnJpY0ZsYXZvdXJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGNvbnN0IEZhYnJpY0ZsYXZvdXIgPSBcImhsZi1mYWJyaWNcIjtcbiJdfQ==
@@ -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;
@@ -1,8 +1,10 @@
1
1
  import { AuthorizationError, UnsupportedError, } from "@decaf-ts/core";
2
- import { InternalError, NotFoundError, onCreate, onDelete, onRead, onUpdate, readonly, transient, } from "@decaf-ts/db-decorators";
3
- import { required } from "@decaf-ts/decorator-validation";
2
+ import { afterCreate, afterDelete, afterUpdate, InternalError, NotFoundError, onCreate, onDelete, onRead, onUpdate, readonly, transient, ValidationError, } from "@decaf-ts/db-decorators";
3
+ import { Model, required } from "@decaf-ts/decorator-validation";
4
4
  import { FabricModelKeys } from "./constants.js";
5
- import { apply, Decoration, metadata, Metadata, propMetadata, } from "@decaf-ts/decoration";
5
+ import { apply, Decoration, metadata, Metadata, prop, propMetadata, } from "@decaf-ts/decoration";
6
+ import { toPascalCase } from "@decaf-ts/logging";
7
+ import "./overrides/index.js";
6
8
  /**
7
9
  * Decorator for marking methods that require ownership authorization.
8
10
  * Checks the owner of the token before allowing the method to be executed.
@@ -56,13 +58,12 @@ export async function ownedByOnCreate(context, data, key, model) {
56
58
  setOwnedByKeyValue(model, key, owner);
57
59
  }
58
60
  export function ownedBy() {
59
- const key = getFabricModelKey(FabricModelKeys.OWNEDBY);
60
61
  function ownedBy() {
61
62
  return function (obj, attribute) {
62
- return apply(required(), readonly(), onCreate(ownedByOnCreate), propMetadata(getFabricModelKey(FabricModelKeys.OWNEDBY), attribute))(obj, attribute);
63
+ return apply(required(), readonly(), onCreate(ownedByOnCreate), propMetadata(Metadata.key(FabricModelKeys.FABRIC, FabricModelKeys.OWNED_BY), attribute))(obj, attribute);
63
64
  };
64
65
  }
65
- return Decoration.for(key)
66
+ return Decoration.for(FabricModelKeys.OWNED_BY)
66
67
  .define({
67
68
  decorator: ownedBy,
68
69
  args: [],
@@ -86,23 +87,94 @@ export function transactionId() {
86
87
  })
87
88
  .apply();
88
89
  }
89
- export function getFabricModelKey(key) {
90
- return Metadata.key(FabricModelKeys.FABRIC + key);
90
+ export async function evalMirrorMetadata(model, resolver, ctx) {
91
+ let collection = resolver;
92
+ if (typeof collection !== "string") {
93
+ try {
94
+ const owner = Model.ownerOf(model) || ctx.get("stub").getCreator().toString();
95
+ if (resolver && typeof resolver === "function")
96
+ collection = await resolver(model, owner, ctx);
97
+ }
98
+ catch (e) {
99
+ throw new InternalError(`Failed to resolve collection mirror name: ${e}`);
100
+ }
101
+ }
102
+ if (!collection || typeof collection !== "string")
103
+ throw new InternalError(`No collection found model ${model.constructor.name}`);
104
+ return collection;
105
+ }
106
+ export async function createMirrorHandler(context, data, key, model) {
107
+ const collection = await evalMirrorMetadata(model, data.resolver, context);
108
+ const repo = this.override(Object.assign({}, this._overrides, {
109
+ segregate: collection,
110
+ ignoreValidation: true,
111
+ ignoreHandlers: true,
112
+ }));
113
+ const mirror = await repo.create(model, context);
114
+ context.logger.info(`Mirror for ${Model.tableName(this.class)} created with ${Model.pk(model)}: ${mirror[Model.pk(model)]}`);
115
+ }
116
+ export async function updateMirrorHandler(context, data, key, model) {
117
+ const collection = await evalMirrorMetadata(model, data.resolver, context);
118
+ const repo = this.override(Object.assign({}, this._overrides, {
119
+ segregate: collection,
120
+ ignoreValidation: true,
121
+ ignoreHandlers: true,
122
+ }));
123
+ const mirror = await repo.update(model, context);
124
+ context.logger.info(`Mirror for ${Model.tableName(this.class)} updated with ${Model.pk(model)}: ${mirror[Model.pk(model)]}`);
125
+ }
126
+ export async function deleteMirrorHandler(context, data, key, model) {
127
+ const collection = await evalMirrorMetadata(model, data.resolver, context);
128
+ const repo = this.override(Object.assign({}, this._overrides, {
129
+ segregate: collection,
130
+ ignoreValidation: true,
131
+ ignoreHandlers: true,
132
+ }));
133
+ const mirror = await repo.delete(Model.pk(model), context);
134
+ context.logger.info(`Mirror for ${Model.tableName(this.class)} deleted with ${Model.pk(model)}: ${mirror[Model.pk(model)]}`);
135
+ }
136
+ export function mirror(collection, condition) {
137
+ function mirror(resolver, condition) {
138
+ const meta = {
139
+ condition: condition,
140
+ resolver: resolver,
141
+ };
142
+ return apply(metadata(Metadata.key(FabricModelKeys.FABRIC, FabricModelKeys.MIRROR), meta), privateData(collection), afterCreate(createMirrorHandler, meta, { priority: 95 }), afterUpdate(updateMirrorHandler, meta, { priority: 95 }), afterDelete(deleteMirrorHandler, meta, { priority: 95 }));
143
+ }
144
+ return Decoration.for(FabricModelKeys.MIRROR)
145
+ .define({
146
+ decorator: mirror,
147
+ args: [collection, condition],
148
+ })
149
+ .apply();
91
150
  }
92
- export const ImplicitPrivateCollection = (model) => {
93
- return `__${model.constructor.name}PrivateCollection`;
151
+ export const ModelCollection = (model, mspId) => {
152
+ const orgName = mspId || (typeof model !== "function" ? Model.ownerOf(model) : undefined);
153
+ const constr = typeof model === "function" ? model : model.constructor;
154
+ if (!orgName)
155
+ throw new InternalError(`Model ${constr.name} is not owned by any organization. did you use @ownedBy() (or provide the name)?`);
156
+ return `${toPascalCase(constr.name)}${mspId ? toPascalCase(mspId) : ""}`;
157
+ };
158
+ export const ImplicitPrivateCollection = (model, mspId) => {
159
+ const orgName = mspId || (typeof model !== "function" ? Model.ownerOf(model) : undefined);
160
+ if (!orgName)
161
+ throw new InternalError(`Model ${model.constructor.name} is not owned by any organization. did you use @ownedBy() (or provide the name)?`);
162
+ return `__${toPascalCase(orgName)}PrivateCollection`;
94
163
  };
95
164
  export async function segregatedDataOnCreate(context, data, keys, model) {
96
165
  if (keys.length !== data.length)
97
166
  throw new InternalError(`Segregated data keys and metadata length mismatch`);
167
+ const msp = Model.ownerOf(model);
168
+ if (!msp)
169
+ throw new ValidationError(`There's no assigned organization for model ${model.constructor.name}`);
98
170
  const collectionResolver = data[0].collections;
99
171
  const collection = typeof collectionResolver === "string"
100
172
  ? collectionResolver
101
- : collectionResolver(model);
173
+ : collectionResolver(model, msp, context);
102
174
  const rebuilt = keys.reduce((acc, k, i) => {
103
175
  const c = typeof data[i].collections === "string"
104
176
  ? data[i].collections
105
- : data[i].collections(model);
177
+ : data[i].collections(model, msp, context);
106
178
  if (c !== collection)
107
179
  throw new UnsupportedError(`Segregated data collection mismatch: ${c} vs ${collection}`);
108
180
  acc[k] = model[k];
@@ -110,41 +182,46 @@ export async function segregatedDataOnCreate(context, data, keys, model) {
110
182
  }, {});
111
183
  const toCreate = new this.class(rebuilt);
112
184
  // const segregated = Model.segregate(model);
113
- const created = await this.override({ segregated: collection }).create(toCreate, context);
185
+ const created = await this.override({
186
+ segregated: collection,
187
+ mergeModel: false,
188
+ ignoreHandlers: true,
189
+ ignoreValidation: true,
190
+ }).create(toCreate, context);
114
191
  Object.assign(model, created);
115
192
  }
116
193
  export async function segregatedDataOnRead(context, data, keys, model) {
117
194
  if (keys.length !== data.length)
118
195
  throw new InternalError(`Segregated data keys and metadata length mismatch`);
196
+ const msp = Model.ownerOf(model);
197
+ if (!msp)
198
+ throw new ValidationError(`There's no assigned organization for model ${model.constructor.name}`);
119
199
  const collectionResolver = data[0].collections;
120
200
  const collection = typeof collectionResolver === "string"
121
201
  ? collectionResolver
122
- : collectionResolver(model);
202
+ : await collectionResolver(model, msp, context);
123
203
  const rebuilt = keys.reduce((acc, k, i) => {
124
204
  const c = typeof data[i].collections === "string"
125
205
  ? data[i].collections
126
- : data[i].collections(model);
206
+ : data[i].collections(model, msp, context);
127
207
  if (c !== collection)
128
- throw new UnsupportedError(`Segregated data collection mismatch: ${c} vs ${collection}`);
208
+ return acc;
129
209
  acc[k] = model[k];
130
210
  return acc;
131
211
  }, {});
132
- const toCreate = new this.class(rebuilt);
133
212
  // const segregated = Model.segregate(model);
134
- const created = await this.override({ segregated: collection }).create(toCreate, context);
135
- Object.assign(model, created);
213
+ //
214
+ // const created = await this.override({ segregated: collection } as any).readAll(
215
+ // toCreate,
216
+ // context
217
+ // );
218
+ // Object.assign(model, created);
136
219
  }
137
220
  export async function segregatedDataOnUpdate(context, data, key, model, oldModel) { }
138
221
  export async function segregatedDataOnDelete(context, data, key, model) { }
139
- function segregated(collection, type) {
222
+ function segregated(collection, type, filter) {
140
223
  return function innerSegregated(target, propertyKey) {
141
224
  function segregatedDec(target, propertyKey) {
142
- if (!propertyKey) {
143
- const props = Metadata.properties(target) || [];
144
- for (const prop of props)
145
- segregated(collection, type)(target, prop);
146
- return target;
147
- }
148
225
  const key = Metadata.key(type, propertyKey);
149
226
  const constr = target.constructor;
150
227
  const meta = Metadata.get(constr, key) || {};
@@ -152,15 +229,23 @@ function segregated(collection, type) {
152
229
  collections.add(collection);
153
230
  meta.collections = [...collections];
154
231
  Metadata.set(constr, key, meta);
232
+ const constrMeta = Metadata.get(constr, type) || {};
233
+ const constrCollections = new Set(constrMeta.collections || []);
234
+ constrCollections.add(collection);
235
+ meta.collections = [...collections];
236
+ Metadata.set(constr, type, meta);
155
237
  }
156
238
  const decs = [];
157
239
  if (!propertyKey) {
158
240
  // decorated at the class level
159
- Metadata.properties(target)?.forEach((p) => segregated(collection, type)(target, p));
160
- return metadata(type, true)(target);
241
+ Metadata.properties(target)?.forEach((p) => {
242
+ if (!filter || filter(p)) {
243
+ segregated(collection, type)(target.prototype, p);
244
+ }
245
+ });
161
246
  }
162
247
  else {
163
- decs.push(transient(), segregatedDec, onCreate(segregatedDataOnCreate, { collections: collection }, {
248
+ decs.push(prop(), transient(), segregatedDec, onCreate(segregatedDataOnCreate, { collections: collection }, {
164
249
  priority: 95,
165
250
  group: typeof collection === "string"
166
251
  ? collection
@@ -183,7 +268,6 @@ function segregated(collection, type) {
183
268
  }));
184
269
  }
185
270
  return apply(...decs)(target, propertyKey);
186
- // return apply()(target, propertyKey);
187
271
  };
188
272
  }
189
273
  export function privateData(collection = ImplicitPrivateCollection) {
@@ -208,43 +292,4 @@ export function sharedData(collection) {
208
292
  })
209
293
  .apply();
210
294
  }
211
- //
212
- // export function privateData(collection?: string) {
213
- // if (!collection) {
214
- // throw new Error("Collection name is required");
215
- // }
216
- //
217
- // const key: string = FabricModelKeys.PRIVATE;
218
- //
219
- // return function privateData<M extends Model>(
220
- // model: M | Constructor<M>,
221
- // attribute?: any
222
- // ) {
223
- // const constr =
224
- // model instanceof Model ? (model.constructor as Constructor) : model;
225
- //
226
- // const metaData: any = Metadata.get(constr);
227
- // const modeldata = metaData?.private?.collections || [];
228
- //
229
- // propMetadata(key, {
230
- // ...(!attribute && {
231
- // collections: modeldata
232
- // ? [...new Set([...modeldata, collection])]
233
- // : [collection],
234
- // }),
235
- // isPrivate: !attribute,
236
- // })(attribute ? constr : model);
237
- //
238
- // if (attribute) {
239
- // const attributeData =
240
- // (metaData?.private?.[attribute] as any)?.collections || [];
241
- // propMetadata(Metadata.key(key, attribute), {
242
- // collections: attributeData
243
- // ? [...new Set([...attributeData, collection])]
244
- // : [collection],
245
- // })(model, attribute);
246
- // transient()(model, attribute);
247
- // }
248
- // };
249
- // }
250
- //# sourceMappingURL=decorators.js.map
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaGFyZWQvZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0JBQWtCLEVBR2xCLGdCQUFnQixHQUdqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFdBQVcsRUFDWCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFDUixRQUFRLEVBQ1IsU0FBUyxFQUNULGVBQWUsR0FDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsdUJBQW9CO0FBRzlDLE9BQU8sRUFDTCxLQUFLLEVBRUwsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsSUFBSSxFQUNKLFlBQVksR0FDYixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCw4QkFBNkI7QUFFN0I7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLEtBQUs7SUFDbkIsT0FBTyxVQUNMLE1BQVcsRUFDWCxXQUFtQixFQUNuQixVQUE4QjtRQUU5QixNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRXhDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxXQUV0QixHQUFHLElBQVc7WUFFZCxNQUFNLEdBQUcsR0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUU1QyxNQUFNLE1BQU0sR0FBRyxNQUFPLElBQTRCLENBQ2hELGlCQUFpQixDQUNsQixD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QixhQUEwQyx5QkFBeUI7SUFFbkUsU0FBUyxXQUFXLENBQUMsVUFBdUM7UUFDMUQsT0FBTyxVQUFVLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUM7U0FDM0MsTUFBTSxDQUFDO1FBQ04sU0FBUyxFQUFFLFdBQVc7UUFDdEIsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO0tBQ25CLENBQUM7U0FDRCxLQUFLLEVBQUUsQ0FBQztBQUNiLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLFVBQXVDO0lBQ2hFLFNBQVMsVUFBVSxDQUFDLFVBQXVDO1FBQ3pELE9BQU8sVUFBVSxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO1NBQzFDLE1BQU0sQ0FBQztRQUNOLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztLQUNuQixDQUFDO1NBQ0QsS0FBSyxFQUFFLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXV0aG9yaXphdGlvbkVycm9yLFxuICBSZXBvLFxuICBDb250ZXh0LFxuICBVbnN1cHBvcnRlZEVycm9yLFxuICBSZXBvc2l0b3J5LFxuICBDb250ZXh0T2YsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHtcbiAgYWZ0ZXJDcmVhdGUsXG4gIGFmdGVyRGVsZXRlLFxuICBhZnRlclVwZGF0ZSxcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbiAgb25DcmVhdGUsXG4gIG9uRGVsZXRlLFxuICBvblJlYWQsXG4gIG9uVXBkYXRlLFxuICByZWFkb25seSxcbiAgdHJhbnNpZW50LFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTW9kZWwsIHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljTW9kZWxLZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgdHlwZSB7IENvbnRleHQgYXMgSExDb250ZXh0IH0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IEZhYnJpY0VSQzIwQ29udHJhY3QgfSBmcm9tIFwiLi4vY29udHJhY3RzL2VyYzIwL2VyYzIwY29udHJhY3RcIjtcbmltcG9ydCB7XG4gIGFwcGx5LFxuICBDb25zdHJ1Y3RvcixcbiAgRGVjb3JhdGlvbixcbiAgbWV0YWRhdGEsXG4gIE1ldGFkYXRhLFxuICBwcm9wLFxuICBwcm9wTWV0YWRhdGEsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljRmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgdG9QYXNjYWxDYXNlIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdEZsYWdzIH0gZnJvbSBcIi4uL2NvbnRyYWN0cy90eXBlc1wiO1xuaW1wb3J0IFwiLi4vc2hhcmVkL292ZXJyaWRlc1wiO1xuXG4vKipcbiAqIERlY29yYXRvciBmb3IgbWFya2luZyBtZXRob2RzIHRoYXQgcmVxdWlyZSBvd25lcnNoaXAgYXV0aG9yaXphdGlvbi5cbiAqIENoZWNrcyB0aGUgb3duZXIgb2YgdGhlIHRva2VuIGJlZm9yZSBhbGxvd2luZyB0aGUgbWV0aG9kIHRvIGJlIGV4ZWN1dGVkLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBUb2tlbkNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3Qge1xuICogICBAT3duZXIoKVxuICogICBhc3luYyBNaW50KGN0eDogQ29udGV4dCwgYW1vdW50OiBudW1iZXIpIHtcbiAqICAgICAvLyBNaW50IHRva2VuIGxvZ2ljXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIHtNZXRob2REZWNvcmF0b3J9IEEgbWV0aG9kIGRlY29yYXRvciB0aGF0IGNoZWNrcyBvd25lcnNoaXAgYXV0aG9yaXphdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE93bmVyKCkge1xuICByZXR1cm4gZnVuY3Rpb24gKFxuICAgIHRhcmdldDogYW55LFxuICAgIHByb3BlcnR5S2V5OiBzdHJpbmcsXG4gICAgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yXG4gICkge1xuICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcblxuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBhc3luYyBmdW5jdGlvbiAoXG4gICAgICB0aGlzOiBGYWJyaWNFUkMyMENvbnRyYWN0LFxuICAgICAgLi4uYXJnczogYW55W11cbiAgICApIHtcbiAgICAgIGNvbnN0IGN0eDogSExDb250ZXh0ID0gYXJnc1swXTtcbiAgICAgIGNvbnN0IGFjb3VudElkID0gY3R4LmNsaWVudElkZW50aXR5LmdldElEKCk7XG5cbiAgICAgIGNvbnN0IHNlbGVjdCA9IGF3YWl0ICh0aGlzIGFzIEZhYnJpY0VSQzIwQ29udHJhY3QpW1xuICAgICAgICBcInRva2VuUmVwb3NpdG9yeVwiXG4gICAgICBdLnNlbGVjdCgpO1xuXG4gICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCBzZWxlY3QuZXhlY3V0ZShjdHgpO1xuXG4gICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFwiTm8gdG9rZW5zIGF2YWlhbGJsZVwiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRva2Vucy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUbyBtYW55IHRva2VuIGF2YWlsYWJsZSA6ICR7dG9rZW5zLmxlbmd0aH1gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRva2Vuc1swXS5vd25lciAhPSBhY291bnRJZCkge1xuICAgICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKFxuICAgICAgICAgIGBVc2VyIG5vdCBhdXRob3JpemVkIHRvIHJ1biAke3Byb3BlcnR5S2V5fSBvbiB0aGUgdG9rZW5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhd2FpdCBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvd25lZEJ5T25DcmVhdGU8XG4gIE0gZXh0ZW5kcyBNb2RlbDxib29sZWFuPixcbiAgUiBleHRlbmRzIFJlcG88TT4sXG4gIFYsXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBDb250ZXh0T2Y8Uj4sXG4gIGRhdGE6IFYsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHN0dWIgfSA9IGNvbnRleHQgYXMgYW55O1xuXG4gIGNvbnN0IGNyZWF0b3IgPSBhd2FpdCBzdHViLmdldENyZWF0b3IoKTtcbiAgY29uc3Qgb3duZXIgPSBjcmVhdG9yLm1zcGlkO1xuXG4gIGNvbnN0IHNldE93bmVkQnlLZXlWYWx1ZSA9IGZ1bmN0aW9uIDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIHRhcmdldDogTSxcbiAgICBwcm9wZXJ0eUtleTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnRcbiAgKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgcHJvcGVydHlLZXksIHtcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgfSk7XG4gIH07XG5cbiAgc2V0T3duZWRCeUtleVZhbHVlKG1vZGVsLCBrZXkgYXMgc3RyaW5nLCBvd25lcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvd25lZEJ5KCkge1xuICBmdW5jdGlvbiBvd25lZEJ5KCkge1xuICAgIHJldHVybiBmdW5jdGlvbiAob2JqOiBhbnksIGF0dHJpYnV0ZT86IGFueSkge1xuICAgICAgcmV0dXJuIGFwcGx5KFxuICAgICAgICByZXF1aXJlZCgpLFxuICAgICAgICByZWFkb25seSgpLFxuICAgICAgICBvbkNyZWF0ZShvd25lZEJ5T25DcmVhdGUpLFxuICAgICAgICBwcm9wTWV0YWRhdGEoXG4gICAgICAgICAgTWV0YWRhdGEua2V5KEZhYnJpY01vZGVsS2V5cy5GQUJSSUMsIEZhYnJpY01vZGVsS2V5cy5PV05FRF9CWSksXG4gICAgICAgICAgYXR0cmlidXRlXG4gICAgICAgIClcbiAgICAgICkob2JqLCBhdHRyaWJ1dGUpO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoRmFicmljTW9kZWxLZXlzLk9XTkVEX0JZKVxuICAgIC5kZWZpbmUoe1xuICAgICAgZGVjb3JhdG9yOiBvd25lZEJ5LFxuICAgICAgYXJnczogW10sXG4gICAgfSlcbiAgICAuYXBwbHkoKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyYW5zYWN0aW9uSWRPbkNyZWF0ZTxcbiAgTSBleHRlbmRzIE1vZGVsPGJvb2xlYW4+LFxuICBSIGV4dGVuZHMgUmVwbzxNPixcbiAgVixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHRPZjxSPixcbiAgZGF0YTogVixcbiAga2V5OiBrZXlvZiBNLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgc3R1YiB9ID0gY29udGV4dCBhcyBhbnk7XG4gIG1vZGVsW2tleV0gPSBzdHViLmdldFR4SUQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zYWN0aW9uSWQoKSB7XG4gIGZ1bmN0aW9uIHRyYW5zYWN0aW9uSWQoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChvYmo6IGFueSwgYXR0cmlidXRlPzogYW55KSB7XG4gICAgICByZXR1cm4gYXBwbHkoXG4gICAgICAgIHJlcXVpcmVkKCksXG4gICAgICAgIHJlYWRvbmx5KCksXG4gICAgICAgIG9uQ3JlYXRlKHRyYW5zYWN0aW9uSWRPbkNyZWF0ZSksXG4gICAgICAgIG9uVXBkYXRlKHRyYW5zYWN0aW9uSWRPbkNyZWF0ZSksXG4gICAgICAgIHByb3BNZXRhZGF0YShcbiAgICAgICAgICBNZXRhZGF0YS5rZXkoXG4gICAgICAgICAgICBGYWJyaWNNb2RlbEtleXMuRkFCUklDLFxuICAgICAgICAgICAgYXR0cmlidXRlLFxuICAgICAgICAgICAgRmFicmljTW9kZWxLZXlzLlRSQU5TQUNUSU9OX0lEXG4gICAgICAgICAgKSxcbiAgICAgICAgICBhdHRyaWJ1dGVcbiAgICAgICAgKVxuICAgICAgKShvYmosIGF0dHJpYnV0ZSk7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBEZWNvcmF0aW9uLmZvcihGYWJyaWNNb2RlbEtleXMuVFJBTlNBQ1RJT05fSUQpXG4gICAgLmRlZmluZSh7XG4gICAgICBkZWNvcmF0b3I6IHRyYW5zYWN0aW9uSWQsXG4gICAgICBhcmdzOiBbXSxcbiAgICB9KVxuICAgIC5hcHBseSgpO1xufVxuXG5leHBvcnQgdHlwZSBNaXJyb3JDb25kaXRpb24gPSAobXNwOiBzdHJpbmcpID0+IGJvb2xlYW47XG5cbmV4cG9ydCB0eXBlIE1pcnJvck1ldGFkYXRhID0ge1xuICBjb25kaXRpb246IE1pcnJvckNvbmRpdGlvbjtcbiAgcmVzb2x2ZXI6IENvbGxlY3Rpb25SZXNvbHZlciB8IHN0cmluZztcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBldmFsTWlycm9yTWV0YWRhdGE8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IE0sXG4gIHJlc29sdmVyOiB1bmRlZmluZWQgfCBzdHJpbmcgfCBDb2xsZWN0aW9uUmVzb2x2ZXIsXG4gIGN0eDogQ29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPlxuKSB7XG4gIGxldCBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uUmVzb2x2ZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQgPSByZXNvbHZlcjtcbiAgaWYgKHR5cGVvZiBjb2xsZWN0aW9uICE9PSBcInN0cmluZ1wiKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG93bmVyID1cbiAgICAgICAgTW9kZWwub3duZXJPZihtb2RlbCkgfHwgY3R4LmdldChcInN0dWJcIikuZ2V0Q3JlYXRvcigpLnRvU3RyaW5nKCk7XG4gICAgICBpZiAocmVzb2x2ZXIgJiYgdHlwZW9mIHJlc29sdmVyID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGNvbGxlY3Rpb24gPSBhd2FpdCByZXNvbHZlcihtb2RlbCwgb3duZXIsIGN0eCk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byByZXNvbHZlIGNvbGxlY3Rpb24gbWlycm9yIG5hbWU6ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWNvbGxlY3Rpb24gfHwgdHlwZW9mIGNvbGxlY3Rpb24gIT09IFwic3RyaW5nXCIpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgTm8gY29sbGVjdGlvbiBmb3VuZCBtb2RlbCAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9YFxuICAgICk7XG4gIHJldHVybiBjb2xsZWN0aW9uO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlTWlycm9ySGFuZGxlcjxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgUmVwb3NpdG9yeTxNLCBhbnk+LFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPixcbiAgZGF0YTogTWlycm9yTWV0YWRhdGEsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgZXZhbE1pcnJvck1ldGFkYXRhKG1vZGVsLCBkYXRhLnJlc29sdmVyLCBjb250ZXh0KTtcblxuICBjb25zdCByZXBvID0gdGhpcy5vdmVycmlkZShcbiAgICBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vdmVycmlkZXMsIHtcbiAgICAgIHNlZ3JlZ2F0ZTogY29sbGVjdGlvbixcbiAgICAgIGlnbm9yZVZhbGlkYXRpb246IHRydWUsXG4gICAgICBpZ25vcmVIYW5kbGVyczogdHJ1ZSxcbiAgICB9IGFzIGFueSlcbiAgKTtcblxuICBjb25zdCBtaXJyb3IgPSBhd2FpdCByZXBvLmNyZWF0ZShtb2RlbCwgY29udGV4dCk7XG4gIGNvbnRleHQubG9nZ2VyLmluZm8oXG4gICAgYE1pcnJvciBmb3IgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGNyZWF0ZWQgd2l0aCAke01vZGVsLnBrKG1vZGVsKSBhcyBzdHJpbmd9OiAke21pcnJvcltNb2RlbC5wayhtb2RlbCldfWBcbiAgKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU1pcnJvckhhbmRsZXI8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG9zaXRvcnk8TSwgYW55Pixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHQ8RmFicmljQ29udHJhY3RGbGFncz4sXG4gIGRhdGE6IE1pcnJvck1ldGFkYXRhLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29sbGVjdGlvbiA9IGF3YWl0IGV2YWxNaXJyb3JNZXRhZGF0YShtb2RlbCwgZGF0YS5yZXNvbHZlciwgY29udGV4dCk7XG5cbiAgY29uc3QgcmVwbyA9IHRoaXMub3ZlcnJpZGUoXG4gICAgT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fb3ZlcnJpZGVzLCB7XG4gICAgICBzZWdyZWdhdGU6IGNvbGxlY3Rpb24sXG4gICAgICBpZ25vcmVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgaWdub3JlSGFuZGxlcnM6IHRydWUsXG4gICAgfSBhcyBhbnkpXG4gICk7XG5cbiAgY29uc3QgbWlycm9yID0gYXdhaXQgcmVwby51cGRhdGUobW9kZWwsIGNvbnRleHQpO1xuICBjb250ZXh0LmxvZ2dlci5pbmZvKFxuICAgIGBNaXJyb3IgZm9yICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB1cGRhdGVkIHdpdGggJHtNb2RlbC5wayhtb2RlbCkgYXMgc3RyaW5nfTogJHttaXJyb3JbTW9kZWwucGsobW9kZWwpXX1gXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVNaXJyb3JIYW5kbGVyPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFIgZXh0ZW5kcyBSZXBvc2l0b3J5PE0sIGFueT4sXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBDb250ZXh0PEZhYnJpY0NvbnRyYWN0RmxhZ3M+LFxuICBkYXRhOiBNaXJyb3JNZXRhZGF0YSxcbiAga2V5OiBrZXlvZiBNLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCBldmFsTWlycm9yTWV0YWRhdGEobW9kZWwsIGRhdGEucmVzb2x2ZXIsIGNvbnRleHQpO1xuXG4gIGNvbnN0IHJlcG8gPSB0aGlzLm92ZXJyaWRlKFxuICAgIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX292ZXJyaWRlcywge1xuICAgICAgc2VncmVnYXRlOiBjb2xsZWN0aW9uLFxuICAgICAgaWdub3JlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgIGlnbm9yZUhhbmRsZXJzOiB0cnVlLFxuICAgIH0gYXMgYW55KVxuICApO1xuXG4gIGNvbnN0IG1pcnJvciA9IGF3YWl0IHJlcG8uZGVsZXRlKE1vZGVsLnBrKG1vZGVsKSBhcyBzdHJpbmcsIGNvbnRleHQpO1xuICBjb250ZXh0LmxvZ2dlci5pbmZvKFxuICAgIGBNaXJyb3IgZm9yICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBkZWxldGVkIHdpdGggJHtNb2RlbC5wayhtb2RlbCkgYXMgc3RyaW5nfTogJHttaXJyb3JbTW9kZWwucGsobW9kZWwpXX1gXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaXJyb3IoXG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25SZXNvbHZlciB8IHN0cmluZyxcbiAgY29uZGl0aW9uPzogTWlycm9yQ29uZGl0aW9uXG4pIHtcbiAgZnVuY3Rpb24gbWlycm9yKFxuICAgIHJlc29sdmVyOiBDb2xsZWN0aW9uUmVzb2x2ZXIgfCBzdHJpbmcsXG4gICAgY29uZGl0aW9uOiBNaXJyb3JDb25kaXRpb25cbiAgKSB7XG4gICAgY29uc3QgbWV0YTogTWlycm9yTWV0YWRhdGEgPSB7XG4gICAgICBjb25kaXRpb246IGNvbmRpdGlvbixcbiAgICAgIHJlc29sdmVyOiByZXNvbHZlcixcbiAgICB9O1xuICAgIHJldHVybiBhcHBseShcbiAgICAgIG1ldGFkYXRhKFxuICAgICAgICBNZXRhZGF0YS5rZXkoRmFicmljTW9kZWxLZXlzLkZBQlJJQywgRmFicmljTW9kZWxLZXlzLk1JUlJPUiksXG4gICAgICAgIG1ldGFcbiAgICAgICksXG4gICAgICBwcml2YXRlRGF0YShjb2xsZWN0aW9uKSxcbiAgICAgIGFmdGVyQ3JlYXRlKGNyZWF0ZU1pcnJvckhhbmRsZXIgYXMgYW55LCBtZXRhLCB7IHByaW9yaXR5OiA5NSB9KSxcbiAgICAgIGFmdGVyVXBkYXRlKHVwZGF0ZU1pcnJvckhhbmRsZXIgYXMgYW55LCBtZXRhLCB7IHByaW9yaXR5OiA5NSB9KSxcbiAgICAgIGFmdGVyRGVsZXRlKGRlbGV0ZU1pcnJvckhhbmRsZXIgYXMgYW55LCBtZXRhLCB7IHByaW9yaXR5OiA5NSB9KVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoRmFicmljTW9kZWxLZXlzLk1JUlJPUilcbiAgICAuZGVmaW5lKHtcbiAgICAgIGRlY29yYXRvcjogbWlycm9yLFxuICAgICAgYXJnczogW2NvbGxlY3Rpb24sIGNvbmRpdGlvbl0sXG4gICAgfSlcbiAgICAuYXBwbHkoKTtcbn1cblxuZXhwb3J0IHR5cGUgQ29sbGVjdGlvblJlc29sdmVyID0gPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBNIHwgQ29uc3RydWN0b3I8TT4sXG4gIG1zcD86IHN0cmluZyxcbiAgLi4uYXJnczogYW55W11cbikgPT4gc3RyaW5nO1xuXG5leHBvcnQgY29uc3QgTW9kZWxDb2xsZWN0aW9uOiBDb2xsZWN0aW9uUmVzb2x2ZXIgPSA8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IE0gfCBDb25zdHJ1Y3RvcjxNPixcbiAgbXNwSWQ/OiBzdHJpbmdcbikgPT4ge1xuICBjb25zdCBvcmdOYW1lID1cbiAgICBtc3BJZCB8fCAodHlwZW9mIG1vZGVsICE9PSBcImZ1bmN0aW9uXCIgPyBNb2RlbC5vd25lck9mKG1vZGVsKSA6IHVuZGVmaW5lZCk7XG4gIGNvbnN0IGNvbnN0ciA9IHR5cGVvZiBtb2RlbCA9PT0gXCJmdW5jdGlvblwiID8gbW9kZWwgOiBtb2RlbC5jb25zdHJ1Y3RvcjtcbiAgaWYgKCFvcmdOYW1lKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgYE1vZGVsICR7Y29uc3RyLm5hbWV9IGlzIG5vdCBvd25lZCBieSBhbnkgb3JnYW5pemF0aW9uLiBkaWQgeW91IHVzZSBAb3duZWRCeSgpIChvciBwcm92aWRlIHRoZSBuYW1lKT9gXG4gICAgKTtcbiAgcmV0dXJuIGAke3RvUGFzY2FsQ2FzZShjb25zdHIubmFtZSl9JHttc3BJZCA/IHRvUGFzY2FsQ2FzZShtc3BJZCkgOiBcIlwifWA7XG59O1xuXG5leHBvcnQgY29uc3QgSW1wbGljaXRQcml2YXRlQ29sbGVjdGlvbjogQ29sbGVjdGlvblJlc29sdmVyID0gPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBNIHwgQ29uc3RydWN0b3I8TT4sXG4gIG1zcElkPzogc3RyaW5nXG4pID0+IHtcbiAgY29uc3Qgb3JnTmFtZSA9XG4gICAgbXNwSWQgfHwgKHR5cGVvZiBtb2RlbCAhPT0gXCJmdW5jdGlvblwiID8gTW9kZWwub3duZXJPZihtb2RlbCkgOiB1bmRlZmluZWQpO1xuICBpZiAoIW9yZ05hbWUpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgTW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfSBpcyBub3Qgb3duZWQgYnkgYW55IG9yZ2FuaXphdGlvbi4gZGlkIHlvdSB1c2UgQG93bmVkQnkoKSAob3IgcHJvdmlkZSB0aGUgbmFtZSk/YFxuICAgICk7XG4gIHJldHVybiBgX18ke3RvUGFzY2FsQ2FzZShvcmdOYW1lKX1Qcml2YXRlQ29sbGVjdGlvbmA7XG59O1xuXG5leHBvcnQgdHlwZSBTZWdyZWdhdGVkRGF0YU1ldGFkYXRhID0ge1xuICBjb2xsZWN0aW9uczogc3RyaW5nIHwgQ29sbGVjdGlvblJlc29sdmVyO1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlZ3JlZ2F0ZWREYXRhT25DcmVhdGU8TSBleHRlbmRzIE1vZGVsPihcbiAgdGhpczogUmVwb3NpdG9yeTxNLCBhbnk+LFxuICBjb250ZXh0OiBDb250ZXh0T2Y8dHlwZW9mIHRoaXM+LFxuICBkYXRhOiBTZWdyZWdhdGVkRGF0YU1ldGFkYXRhW10sXG4gIGtleXM6IChrZXlvZiBNKVtdLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChrZXlzLmxlbmd0aCAhPT0gZGF0YS5sZW5ndGgpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgU2VncmVnYXRlZCBkYXRhIGtleXMgYW5kIG1ldGFkYXRhIGxlbmd0aCBtaXNtYXRjaGBcbiAgICApO1xuXG4gIGNvbnN0IG1zcCA9IE1vZGVsLm93bmVyT2YobW9kZWwpO1xuICBpZiAoIW1zcClcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgYFRoZXJlJ3Mgbm8gYXNzaWduZWQgb3JnYW5pemF0aW9uIGZvciBtb2RlbCAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9YFxuICAgICk7XG5cbiAgY29uc3QgY29sbGVjdGlvblJlc29sdmVyID0gZGF0YVswXS5jb2xsZWN0aW9ucztcbiAgY29uc3QgY29sbGVjdGlvbiA9XG4gICAgdHlwZW9mIGNvbGxlY3Rpb25SZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBjb2xsZWN0aW9uUmVzb2x2ZXJcbiAgICAgIDogY29sbGVjdGlvblJlc29sdmVyKG1vZGVsLCBtc3AsIGNvbnRleHQpO1xuXG4gIGNvbnN0IHJlYnVpbHQgPSBrZXlzLnJlZHVjZShcbiAgICAoYWNjOiBSZWNvcmQ8a2V5b2YgTSwgYW55PiwgaywgaSkgPT4ge1xuICAgICAgY29uc3QgYyA9XG4gICAgICAgIHR5cGVvZiBkYXRhW2ldLmNvbGxlY3Rpb25zID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgPyBkYXRhW2ldLmNvbGxlY3Rpb25zXG4gICAgICAgICAgOiBkYXRhW2ldLmNvbGxlY3Rpb25zKG1vZGVsLCBtc3AsIGNvbnRleHQpO1xuICAgICAgaWYgKGMgIT09IGNvbGxlY3Rpb24pXG4gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgICAgIGBTZWdyZWdhdGVkIGRhdGEgY29sbGVjdGlvbiBtaXNtYXRjaDogJHtjfSB2cyAke2NvbGxlY3Rpb259YFxuICAgICAgICApO1xuICAgICAgYWNjW2tdID0gbW9kZWxba107XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAge30gYXMgUmVjb3JkPGtleW9mIE0sIGFueT5cbiAgKTtcblxuICBjb25zdCB0b0NyZWF0ZSA9IG5ldyB0aGlzLmNsYXNzKHJlYnVpbHQpO1xuXG4gIC8vIGNvbnN0IHNlZ3JlZ2F0ZWQgPSBNb2RlbC5zZWdyZWdhdGUobW9kZWwpO1xuXG4gIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCB0aGlzLm92ZXJyaWRlKHtcbiAgICBzZWdyZWdhdGVkOiBjb2xsZWN0aW9uLFxuICAgIG1lcmdlTW9kZWw6IGZhbHNlLFxuICAgIGlnbm9yZUhhbmRsZXJzOiB0cnVlLFxuICAgIGlnbm9yZVZhbGlkYXRpb246IHRydWUsXG4gIH0gYXMgYW55KS5jcmVhdGUodG9DcmVhdGUsIGNvbnRleHQpO1xuICBPYmplY3QuYXNzaWduKG1vZGVsLCBjcmVhdGVkKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlZ3JlZ2F0ZWREYXRhT25SZWFkPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIHRoaXM6IFJlcG9zaXRvcnk8TSwgYW55PixcbiAgY29udGV4dDogQ29udGV4dDxGYWJyaWNGbGFncz4sXG4gIGRhdGE6IFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGFbXSxcbiAga2V5czogKGtleW9mIE0pW10sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKGtleXMubGVuZ3RoICE9PSBkYXRhLmxlbmd0aClcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBTZWdyZWdhdGVkIGRhdGEga2V5cyBhbmQgbWV0YWRhdGEgbGVuZ3RoIG1pc21hdGNoYFxuICAgICk7XG5cbiAgY29uc3QgbXNwID0gTW9kZWwub3duZXJPZihtb2RlbCk7XG4gIGlmICghbXNwKVxuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICBgVGhlcmUncyBubyBhc3NpZ25lZCBvcmdhbml6YXRpb24gZm9yIG1vZGVsICR7bW9kZWwuY29uc3RydWN0b3IubmFtZX1gXG4gICAgKTtcblxuICBjb25zdCBjb2xsZWN0aW9uUmVzb2x2ZXIgPSBkYXRhWzBdLmNvbGxlY3Rpb25zO1xuICBjb25zdCBjb2xsZWN0aW9uID1cbiAgICB0eXBlb2YgY29sbGVjdGlvblJlc29sdmVyID09PSBcInN0cmluZ1wiXG4gICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgOiBhd2FpdCBjb2xsZWN0aW9uUmVzb2x2ZXIobW9kZWwsIG1zcCwgY29udGV4dCk7XG5cbiAgY29uc3QgcmVidWlsdCA9IGtleXMucmVkdWNlKFxuICAgIChhY2M6IFJlY29yZDxrZXlvZiBNLCBhbnk+LCBrLCBpKSA9PiB7XG4gICAgICBjb25zdCBjID1cbiAgICAgICAgdHlwZW9mIGRhdGFbaV0uY29sbGVjdGlvbnMgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IGRhdGFbaV0uY29sbGVjdGlvbnNcbiAgICAgICAgICA6IGRhdGFbaV0uY29sbGVjdGlvbnMobW9kZWwsIG1zcCwgY29udGV4dCk7XG4gICAgICBpZiAoYyAhPT0gY29sbGVjdGlvbikgcmV0dXJuIGFjYztcbiAgICAgIGFjY1trXSA9IG1vZGVsW2tdO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9IGFzIFJlY29yZDxrZXlvZiBNLCBhbnk+XG4gICk7XG5cbiAgLy8gY29uc3Qgc2VncmVnYXRlZCA9IE1vZGVsLnNlZ3JlZ2F0ZShtb2RlbCk7XG4gIC8vXG4gIC8vIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCB0aGlzLm92ZXJyaWRlKHsgc2VncmVnYXRlZDogY29sbGVjdGlvbiB9IGFzIGFueSkucmVhZEFsbChcbiAgLy8gICB0b0NyZWF0ZSxcbiAgLy8gICBjb250ZXh0XG4gIC8vICk7XG4gIC8vIE9iamVjdC5hc3NpZ24obW9kZWwsIGNyZWF0ZWQpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VncmVnYXRlZERhdGFPblVwZGF0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICB0aGlzOiBSZXBvc2l0b3J5PE0sIGFueT4sXG4gIGNvbnRleHQ6IENvbnRleHRPZjx0eXBlb2YgdGhpcz4sXG4gIGRhdGE6IFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGFbXSxcbiAga2V5OiBrZXlvZiBNW10sXG4gIG1vZGVsOiBNLFxuICBvbGRNb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7fVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VncmVnYXRlZERhdGFPbkRlbGV0ZTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgUmVwb3NpdG9yeTxNLCBhbnk+LFxuICBWIGV4dGVuZHMgU2VncmVnYXRlZERhdGFNZXRhZGF0YSxcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHRPZjxSPixcbiAgZGF0YTogVltdLFxuICBrZXk6IGtleW9mIE1bXSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge31cblxuZnVuY3Rpb24gc2VncmVnYXRlZChcbiAgY29sbGVjdGlvbjogc3RyaW5nIHwgQ29sbGVjdGlvblJlc29sdmVyLFxuICB0eXBlOiBGYWJyaWNNb2RlbEtleXMuUFJJVkFURSB8IEZhYnJpY01vZGVsS2V5cy5TSEFSRUQsXG4gIGZpbHRlcj86IChwcm9wTmFtZTogc3RyaW5nKSA9PiBib29sZWFuXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGlubmVyU2VncmVnYXRlZCh0YXJnZXQ6IG9iamVjdCwgcHJvcGVydHlLZXk/OiBhbnkpIHtcbiAgICBmdW5jdGlvbiBzZWdyZWdhdGVkRGVjKHRhcmdldDogb2JqZWN0LCBwcm9wZXJ0eUtleT86IGFueSkge1xuICAgICAgY29uc3Qga2V5ID0gTWV0YWRhdGEua2V5KHR5cGUsIHByb3BlcnR5S2V5KTtcbiAgICAgIGNvbnN0IGNvbnN0cjogQ29uc3RydWN0b3IgPSB0YXJnZXQuY29uc3RydWN0b3IgYXMgQ29uc3RydWN0b3I7XG5cbiAgICAgIGNvbnN0IG1ldGEgPSBNZXRhZGF0YS5nZXQoY29uc3RyIGFzIENvbnN0cnVjdG9yLCBrZXkpIHx8IHt9O1xuICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBuZXcgU2V0KG1ldGEuY29sbGVjdGlvbnMgfHwgW10pO1xuICAgICAgY29sbGVjdGlvbnMuYWRkKGNvbGxlY3Rpb24pO1xuICAgICAgbWV0YS5jb2xsZWN0aW9ucyA9IFsuLi5jb2xsZWN0aW9uc107XG4gICAgICBNZXRhZGF0YS5zZXQoY29uc3RyIGFzIENvbnN0cnVjdG9yLCBrZXksIG1ldGEpO1xuXG4gICAgICBjb25zdCBjb25zdHJNZXRhID0gTWV0YWRhdGEuZ2V0KGNvbnN0ciBhcyBDb25zdHJ1Y3RvciwgdHlwZSkgfHwge307XG4gICAgICBjb25zdCBjb25zdHJDb2xsZWN0aW9ucyA9IG5ldyBTZXQoY29uc3RyTWV0YS5jb2xsZWN0aW9ucyB8fCBbXSk7XG4gICAgICBjb25zdHJDb2xsZWN0aW9ucy5hZGQoY29sbGVjdGlvbik7XG4gICAgICBtZXRhLmNvbGxlY3Rpb25zID0gWy4uLmNvbGxlY3Rpb25zXTtcbiAgICAgIE1ldGFkYXRhLnNldChjb25zdHIgYXMgQ29uc3RydWN0b3IsIHR5cGUsIG1ldGEpO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY3M6IGFueVtdID0gW107XG4gICAgaWYgKCFwcm9wZXJ0eUtleSkge1xuICAgICAgLy8gZGVjb3JhdGVkIGF0IHRoZSBjbGFzcyBsZXZlbFxuICAgICAgTWV0YWRhdGEucHJvcGVydGllcyh0YXJnZXQgYXMgQ29uc3RydWN0b3IpPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICAgIGlmICghZmlsdGVyIHx8IGZpbHRlcihwKSkge1xuICAgICAgICAgIHNlZ3JlZ2F0ZWQoY29sbGVjdGlvbiwgdHlwZSkoKHRhcmdldCBhcyBhbnkpLnByb3RvdHlwZSwgcCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNzLnB1c2goXG4gICAgICAgIHByb3AoKSxcbiAgICAgICAgdHJhbnNpZW50KCksXG4gICAgICAgIHNlZ3JlZ2F0ZWREZWMsXG4gICAgICAgIG9uQ3JlYXRlKFxuICAgICAgICAgIHNlZ3JlZ2F0ZWREYXRhT25DcmVhdGUsXG4gICAgICAgICAgeyBjb2xsZWN0aW9uczogY29sbGVjdGlvbiB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW9yaXR5OiA5NSxcbiAgICAgICAgICAgIGdyb3VwOlxuICAgICAgICAgICAgICB0eXBlb2YgY29sbGVjdGlvbiA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgID8gY29sbGVjdGlvblxuICAgICAgICAgICAgICAgIDogY29sbGVjdGlvbi50b1N0cmluZygpLFxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgb25SZWFkKFxuICAgICAgICAgIHNlZ3JlZ2F0ZWREYXRhT25SZWFkIGFzIGFueSxcbiAgICAgICAgICB7IGNvbGxlY3Rpb25zOiBjb2xsZWN0aW9uIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpb3JpdHk6IDk1LFxuICAgICAgICAgICAgZ3JvdXA6XG4gICAgICAgICAgICAgIHR5cGVvZiBjb2xsZWN0aW9uID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgPyBjb2xsZWN0aW9uXG4gICAgICAgICAgICAgICAgOiBjb2xsZWN0aW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBvblVwZGF0ZShcbiAgICAgICAgICBzZWdyZWdhdGVkRGF0YU9uVXBkYXRlIGFzIGFueSxcbiAgICAgICAgICB7IGNvbGxlY3Rpb25zOiBjb2xsZWN0aW9uIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpb3JpdHk6IDk1LFxuICAgICAgICAgICAgZ3JvdXA6XG4gICAgICAgICAgICAgIHR5cGVvZiBjb2xsZWN0aW9uID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgPyBjb2xsZWN0aW9uXG4gICAgICAgICAgICAgICAgOiBjb2xsZWN0aW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBvbkRlbGV0ZShcbiAgICAgICAgICBzZWdyZWdhdGVkRGF0YU9uRGVsZXRlIGFzIGFueSxcbiAgICAgICAgICB7IGNvbGxlY3Rpb25zOiBjb2xsZWN0aW9uIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpb3JpdHk6IDk1LFxuICAgICAgICAgICAgZ3JvdXA6XG4gICAgICAgICAgICAgIHR5cGVvZiBjb2xsZWN0aW9uID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgPyBjb2xsZWN0aW9uXG4gICAgICAgICAgICAgICAgOiBjb2xsZWN0aW9uLnRvU3RyaW5nKCksXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gYXBwbHkoLi4uZGVjcykodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcml2YXRlRGF0YShcbiAgY29sbGVjdGlvbjogc3RyaW5nIHwgQ29sbGVjdGlvblJlc29sdmVyID0gSW1wbGljaXRQcml2YXRlQ29sbGVjdGlvblxuKSB7XG4gIGZ1bmN0aW9uIHByaXZhdGVEYXRhKGNvbGxlY3Rpb246IHN0cmluZyB8IENvbGxlY3Rpb25SZXNvbHZlcikge1xuICAgIHJldHVybiBzZWdyZWdhdGVkKGNvbGxlY3Rpb24sIEZhYnJpY01vZGVsS2V5cy5QUklWQVRFKTtcbiAgfVxuXG4gIHJldHVybiBEZWNvcmF0aW9uLmZvcihGYWJyaWNNb2RlbEtleXMuUFJJVkFURSlcbiAgICAuZGVmaW5lKHtcbiAgICAgIGRlY29yYXRvcjogcHJpdmF0ZURhdGEsXG4gICAgICBhcmdzOiBbY29sbGVjdGlvbl0sXG4gICAgfSlcbiAgICAuYXBwbHkoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNoYXJlZERhdGEoY29sbGVjdGlvbjogc3RyaW5nIHwgQ29sbGVjdGlvblJlc29sdmVyKSB7XG4gIGZ1bmN0aW9uIHNoYXJlZERhdGEoY29sbGVjdGlvbjogc3RyaW5nIHwgQ29sbGVjdGlvblJlc29sdmVyKSB7XG4gICAgcmV0dXJuIHNlZ3JlZ2F0ZWQoY29sbGVjdGlvbiwgRmFicmljTW9kZWxLZXlzLlNIQVJFRCk7XG4gIH1cblxuICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoRmFicmljTW9kZWxLZXlzLlNIQVJFRClcbiAgICAuZGVmaW5lKHtcbiAgICAgIGRlY29yYXRvcjogc2hhcmVkRGF0YSxcbiAgICAgIGFyZ3M6IFtjb2xsZWN0aW9uXSxcbiAgICB9KVxuICAgIC5hcHBseSgpO1xufVxuIl19
@@ -24,4 +24,4 @@ export var ERC20Events;
24
24
  */
25
25
  ERC20Events["APPROVAL"] = "Approval";
26
26
  })(ERC20Events || (ERC20Events = {}));
27
- //# sourceMappingURL=erc20-constants.js.map
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJjMjAtY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9lcmMyMC9lcmMyMC1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFOLElBQVksV0FrQlg7QUFsQkQsV0FBWSxXQUFXO0lBQ3JCOzs7Ozs7T0FNRztJQUNILG9DQUFxQixDQUFBO0lBRXJCOzs7Ozs7T0FNRztJQUNILG9DQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFsQlcsV0FBVyxLQUFYLFdBQVcsUUFrQnRCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgZXZlbnRzIGVtaXR0ZWQgYnkgYW4gRVJDMjAgY29udHJhY3QuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgZW51bSBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBldmVudHMgdGhhdCBjYW4gYmUgZW1pdHRlZCBieSBhbiBFUkMyMCBjb250cmFjdC5cbiAqIFRoZSBldmVudHMgYXJlIG5hbWVkIGFjY29yZGluZyB0byB0aGUgRUlQLTIwIHN0YW5kYXJkLlxuICovXG5leHBvcnQgZW51bSBFUkMyMEV2ZW50cyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSBgdHJhbnNmZXJgIGZ1bmN0aW9uIGlzIGNhbGxlZCBzdWNjZXNzZnVsbHkuXG4gICAqXG4gICAqIEBwYXJhbSBmcm9tIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHNlbmRlci5cbiAgICogQHBhcmFtIHRvIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHJlY2lwaWVudC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdHJhbnNmZXJyZWQuXG4gICAqL1xuICBUUkFOU0ZFUiA9IFwiVHJhbnNmZXJcIixcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGFuIGBhcHByb3ZlYCBmdW5jdGlvbiBpcyBjYWxsZWQgc3VjY2Vzc2Z1bGx5LlxuICAgKlxuICAgKiBAcGFyYW0gb3duZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgdG9rZW4gb3duZXIuXG4gICAqIEBwYXJhbSBzcGVuZGVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGFwcHJvdmVkIHNwZW5kZXIuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBhbW91bnQgb2YgdG9rZW5zIGFwcHJvdmVkIGZvciB0aGUgc3BlbmRlci5cbiAgICovXG4gIEFQUFJPVkFMID0gXCJBcHByb3ZhbFwiLFxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export * from "./erc20-constants.js";
2
- //# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2VyYzIwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2VyYzIwLWNvbnN0YW50c1wiO1xuIl19
@@ -154,4 +154,4 @@ export class EndorsementPolicyError extends InternalError {
154
154
  super(message, EndorsementPolicyError.name, 500);
155
155
  }
156
156
  }
157
- //# sourceMappingURL=errors.js.map
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxrRkFBa0Y7QUFDbEY7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLGFBQWMsU0FBUSxhQUFhO0lBQzlDLFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLFlBQWEsU0FBUSxhQUFhO0lBQzdDLFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFhO0lBQy9DLFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsa0JBQWtCO0lBQ3ZELFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGFBQWE7SUFDcEQsWUFBWSxHQUFtQjtRQUM3QixLQUFLLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsU0FBUztJQUMxRCxZQUFZLE1BQXNCLG9DQUFvQztRQUNwRSxLQUFLLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUFTO0lBQ2hELFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGFBQWE7SUFDbEQsWUFBWSxHQUFtQjtRQUM3QixLQUFLLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsYUFBYTtJQUNqRCxZQUFZLE9BQXVCO1FBQ2pDLEtBQUssQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBQ3RELFlBQVksT0FBdUI7UUFDakMsS0FBSyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQWE7SUFDekQsWUFBWSxPQUF1QjtRQUNqQyxLQUFLLENBQUMsT0FBTyxFQUFFLHdCQUF3QixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQUN2RCxZQUFZLE9BQXVCO1FBQ2pDLEtBQUssQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFcnJvciwgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG4vLyBpbXBvcnQgeyBNSVNTSU5HX1BSSVZBVEVfREFUQV9FUlJPUl9NRVNTQUdFIH0gZnJvbSBcIi4uL2NvbnRyYWN0cy9wcml2YXRlLWRhdGFcIjtcbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhbiBvdmVyZmxvdyBlcnJvciBpbiBhcml0aG1ldGljIG9wZXJhdGlvbnMgaW4gU21hcnQgQ29udHJhY3RzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBPdmVyZmxvd0Vycm9yXG4gKiBAZXh0ZW5kcyBJbnRlcm5hbEVycm9yXG4gKlxuICogQGNhdGVnb3J5IEVycm9yc1xuICovXG5leHBvcnQgY2xhc3MgT3ZlcmZsb3dFcnJvciBleHRlbmRzIEludGVybmFsRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBPdmVyZmxvd0Vycm9yLm5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIGZhaWx1cmUgaW4gYmFsYW5jZSB0byBwZXJmb3JtIGEgdHJhbnNhY3Rpb24gaW4gU21hcnQgQ29udHJhY3RzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBCYWxhbmNlRXJyb3JcbiAqIEBleHRlbmRzIEludGVybmFsRXJyb3JcbiAqXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBCYWxhbmNlRXJyb3IgZXh0ZW5kcyBJbnRlcm5hbEVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKG1zZywgQmFsYW5jZUVycm9yLm5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIGZhaWx1cmUgaW4gYmFsYW5jZSB0byBwZXJmb3JtIGEgdHJhbnNhY3Rpb24gaW4gU21hcnQgQ29udHJhY3RzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1zZyB0aGUgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjbGFzcyBCYWxhbmNlRXJyb3JcbiAqIEBleHRlbmRzIEludGVybmFsRXJyb3JcbiAqXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBBbGxvd2FuY2VFcnJvciBleHRlbmRzIEludGVybmFsRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBBbGxvd2FuY2VFcnJvci5uYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSBmYWlsdXJlIHJlZ2lzdHJhdGluZyBuZXcgZW50aXRpZXNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnIHRoZSBlcnJvciBtZXNzYWdlXG4gKlxuICogQGNsYXNzIFJlZ2lzdHJhdGlvbkVycm9yXG4gKlxuICogQGNhdGVnb3J0IEVycm9yc1xuICovXG5leHBvcnQgY2xhc3MgUmVnaXN0cmF0aW9uRXJyb3IgZXh0ZW5kcyBBdXRob3JpemF0aW9uRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBSZWdpc3RyYXRpb25FcnJvci5uYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFcnJvciB0aHJvd24gd2hlbiBhbiB1bnN1cHBvcnRlZCBvcGVyYXRpb24gaXMgYXR0ZW1wdGVkXG4gKiBAc3VtbWFyeSBUaGlzIGVycm9yIGlzIHRocm93biB3aGVuIGFuIG9wZXJhdGlvbiBpcyByZXF1ZXN0ZWQgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50XG4gKiBwZXJzaXN0ZW5jZSBhZGFwdGVyIG9yIGNvbmZpZ3VyYXRpb24uIEl0IGV4dGVuZHMgdGhlIEJhc2VFcnJvciBjbGFzcyBhbmQgc2V0cyBhIDUwMCBzdGF0dXMgY29kZS5cbiAqIEBwYXJhbSB7c3RyaW5nfEVycm9yfSBtc2cgLSBUaGUgZXJyb3IgbWVzc2FnZSBvciBhbiBFcnJvciBvYmplY3QgdG8gd3JhcFxuICogQGNsYXNzIFVuc3VwcG9ydGVkRXJyb3JcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBUaHJvd2luZyBhbiBVbnN1cHBvcnRlZEVycm9yXG4gKiBpZiAoIWFkYXB0ZXIuc3VwcG9ydHNUcmFuc2FjdGlvbnMoKSkge1xuICogICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcignVHJhbnNhY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYWRhcHRlcicpO1xuICogfVxuICpcbiAqIC8vIENhdGNoaW5nIGFuIFVuc3VwcG9ydGVkRXJyb3JcbiAqIHRyeSB7XG4gKiAgIGF3YWl0IGFkYXB0ZXIuYmVnaW5UcmFuc2FjdGlvbigpO1xuICogfSBjYXRjaCAoZXJyb3IpIHtcbiAqICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVW5zdXBwb3J0ZWRFcnJvcikge1xuICogICAgIGNvbnNvbGUuZXJyb3IoJ09wZXJhdGlvbiBub3Qgc3VwcG9ydGVkOicsIGVycm9yLm1lc3NhZ2UpO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBNaXNzaW5nQ29udGV4dEVycm9yIGV4dGVuZHMgSW50ZXJuYWxFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihtc2csIE1pc3NpbmdDb250ZXh0RXJyb3IubmFtZSwgNTAwKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVW5hdXRob3JpemVkUHJpdmF0ZURhdGFBY2Nlc3MgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yID0gXCJNSVNTSU5HX1BSSVZBVEVfREFUQV9FUlJPUl9NRVNTQUdFXCIpIHtcbiAgICBzdXBlcihVbmF1dGhvcml6ZWRQcml2YXRlRGF0YUFjY2Vzcy5uYW1lLCBtc2csIDQwMyk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGVycm9yIHRoYXQgb2NjdXJzIHdoZW4gYSByZXF1aXJlZCBpbml0aWFsaXphdGlvbiBzdGVwIGlzIG5vdCBwZXJmb3JtZWQuXG4gKlxuICogQGNsYXNzIE5vdEluaXRpYWxpemVkRXJyb3JcbiAqIEBleHRlbmRzIEJhc2VFcnJvclxuICpcbiAqIEBjYXRlZ29yeSBFcnJvcnNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IEVycm9yfSBtc2cgLSBUaGUgZXJyb3IgbWVzc2FnZSBvciBhbiBFcnJvciBvYmplY3QgdG8gd3JhcC5cbiAqXG4gKiBAdGhyb3dzIHtOb3RJbml0aWFsaXplZEVycm9yfSAtIFRocm93cyBhbiBlcnJvciB3aGVuIGEgcmVxdWlyZWQgaW5pdGlhbGl6YXRpb24gc3RlcCBpcyBub3QgcGVyZm9ybWVkLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbml0aWFsaXplIHRoZSBhcHBsaWNhdGlvblxuICogaWYgKCFpc0luaXRpYWxpemVkKSB7XG4gKiAgIHRocm93IG5ldyBOb3RJbml0aWFsaXplZEVycm9yKCdBcHBsaWNhdGlvbiBpcyBub3QgaW5pdGlhbGl6ZWQnKTtcbiAqIH1cbiAqXG4gKiAvLyBDYXRjaGluZyBhbiBOb3RJbml0aWFsaXplZEVycm9yXG4gKiB0cnkge1xuICogICAvLyBQZXJmb3JtIG9wZXJhdGlvbnMgdGhhdCByZXF1aXJlIGluaXRpYWxpemF0aW9uXG4gKiB9IGNhdGNoIChlcnJvcikge1xuICogICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBOb3RJbml0aWFsaXplZEVycm9yKSB7XG4gKiAgICAgY29uc29sZS5lcnJvcignSW5pdGlhbGl6YXRpb24gZXJyb3I6JywgZXJyb3IubWVzc2FnZSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgTm90SW5pdGlhbGl6ZWRFcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihOb3RJbml0aWFsaXplZEVycm9yLm5hbWUsIG1zZywgNDA5KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWlzc2luZ1BLQ1NTMTFMaWIgZXh0ZW5kcyBJbnRlcm5hbEVycm9yIHtcbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKG1zZywgTWlzc2luZ1BLQ1NTMTFMaWIubmFtZSwgNTAwKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW5kb3JzZW1lbnRFcnJvciBleHRlbmRzIEludGVybmFsRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKG1lc3NhZ2UsIEVuZG9yc2VtZW50RXJyb3IubmFtZSwgNTAwKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTXZjY1JlYWRDb25mbGljdEVycm9yIGV4dGVuZHMgSW50ZXJuYWxFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgTXZjY1JlYWRDb25mbGljdEVycm9yLm5hbWUsIDUwMCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBoYW50b21SZWFkQ29uZmxpY3RFcnJvciBleHRlbmRzIEludGVybmFsRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKG1lc3NhZ2UsIFBoYW50b21SZWFkQ29uZmxpY3RFcnJvci5uYW1lLCA1MDApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbmRvcnNlbWVudFBvbGljeUVycm9yIGV4dGVuZHMgSW50ZXJuYWxFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgRW5kb3JzZW1lbnRQb2xpY3lFcnJvci5uYW1lLCA1MDApO1xuICB9XG59XG4iXX0=
@@ -44,4 +44,4 @@ export function parseEventName(name) {
44
44
  owner: parts[2],
45
45
  };
46
46
  }
47
- //# sourceMappingURL=events.js.map
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxLQUFhLEVBQ2IsS0FBcUQsRUFDckQsS0FBYztJQUVkLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlCLElBQUksS0FBSztRQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBWTtJQUt6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQzdELE9BQU87UUFDTCxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNmLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FLaEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsIE9wZXJhdGlvbktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gR2VuZXJhdGVzIGEgRmFicmljIGV2ZW50IG5hbWUgZnJvbSBjb21wb25lbnRzXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgc3RhbmRhcmRpemVkIGV2ZW50IG5hbWUgYnkgam9pbmluZyB0YWJsZSwgZXZlbnQsIGFuZCBvcHRpb25hbCBvd25lciB3aXRoIHVuZGVyc2NvcmVzXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFibGUgLSBUaGUgdGFibGUvY29sbGVjdGlvbiBuYW1lXG4gKiBAcGFyYW0ge09wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmd9IGV2ZW50IC0gVGhlIGV2ZW50IHR5cGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3duZXJdIC0gT3B0aW9uYWwgb3duZXIgaWRlbnRpZmllclxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgZ2VuZXJhdGVkIGV2ZW50IG5hbWUgaW4gZm9ybWF0IFwidGFibGVfZXZlbnRcIiBvciBcInRhYmxlX2V2ZW50X293bmVyXCJcbiAqIEBmdW5jdGlvbiBnZW5lcmF0ZUZhYnJpY0V2ZW50TmFtZVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLnNoYXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVGYWJyaWNFdmVudE5hbWUoXG4gIHRhYmxlOiBzdHJpbmcsXG4gIGV2ZW50OiBPcGVyYXRpb25LZXlzIHwgQnVsa0NydWRPcGVyYXRpb25LZXlzIHwgc3RyaW5nLFxuICBvd25lcj86IHN0cmluZ1xuKSB7XG4gIGNvbnN0IHBhcmFtcyA9IFt0YWJsZSwgZXZlbnRdO1xuICBpZiAob3duZXIpIHBhcmFtcy5wdXNoKG93bmVyKTtcbiAgcmV0dXJuIHBhcmFtcy5qb2luKFwiX1wiKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUGFyc2VzIGEgRmFicmljIGV2ZW50IG5hbWUgaW50byBpdHMgY29tcG9uZW50c1xuICogQHN1bW1hcnkgU3BsaXRzIGFuIGV2ZW50IG5hbWUgYnkgdW5kZXJzY29yZXMgYW5kIGV4dHJhY3RzIHRhYmxlLCBldmVudCwgYW5kIG9wdGlvbmFsIG93bmVyXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFRoZSBldmVudCBuYW1lIHRvIHBhcnNlXG4gKiBAcmV0dXJuIHt7dGFibGU6IHN0cmluZywgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcsIG93bmVyOiBzdHJpbmd9fSBUaGUgcGFyc2VkIGNvbXBvbmVudHMgYXMgYSBzdHJ1Y3R1cmVkIG9iamVjdFxuICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gSWYgdGhlIGV2ZW50IG5hbWUgZm9ybWF0IGlzIGludmFsaWRcbiAqIEBmdW5jdGlvbiBwYXJzZUV2ZW50TmFtZVxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgUGFyc2VyIGFzIHBhcnNlRXZlbnROYW1lXG4gKiAgIENhbGxlci0+PlBhcnNlcjogcGFyc2VFdmVudE5hbWUobmFtZSlcbiAqICAgUGFyc2VyLT4+UGFyc2VyOiBzcGxpdCBuYW1lIGJ5IFwiX1wiXG4gKiAgIGFsdCBwYXJ0cyBsZW5ndGggaW52YWxpZFxuICogICAgIFBhcnNlci0tPj5DYWxsZXI6IHRocm93IEludGVybmFsRXJyb3JcbiAqICAgZWxzZVxuICogICAgIFBhcnNlci0tPj5DYWxsZXI6IHsgdGFibGUsIGV2ZW50LCBvd25lcj8gfVxuICogICBlbmRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRXZlbnROYW1lKG5hbWU6IHN0cmluZyk6IHtcbiAgdGFibGU/OiBzdHJpbmc7XG4gIGV2ZW50OiBPcGVyYXRpb25LZXlzIHwgQnVsa0NydWRPcGVyYXRpb25LZXlzIHwgc3RyaW5nO1xuICBvd25lcj86IHN0cmluZztcbn0ge1xuICBjb25zdCBwYXJ0cyA9IG5hbWUuc3BsaXQoXCJfXCIpO1xuICBpZiAocGFydHMubGVuZ3RoIDwgMiB8fCBwYXJ0cy5sZW5ndGggPiAzKVxuICAgIHJldHVybiB7IHRhYmxlOiB1bmRlZmluZWQsIGV2ZW50OiBuYW1lLCBvd25lcjogdW5kZWZpbmVkIH07XG4gIHJldHVybiB7XG4gICAgdGFibGU6IHBhcnRzWzBdLFxuICAgIGV2ZW50OiBwYXJ0c1sxXSxcbiAgICBvd25lcjogcGFydHNbMl0sXG4gIH0gYXMge1xuICAgIHRhYmxlOiBzdHJpbmc7XG4gICAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmc7XG4gICAgb3duZXI/OiBzdHJpbmc7XG4gIH07XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=fabric-types.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmljLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYXJlZC9mYWJyaWMtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEdldENlcnRpZmljYXRlc1JlcXVlc3QgPSB7XG4gIGlkPzogc3RyaW5nO1xuICBha2k/OiBzdHJpbmc7XG4gIHNlcmlhbD86IHN0cmluZztcbiAgcmV2b2tlZF9zdGFydD86IHN0cmluZztcbiAgcmV2b2tlZF9lbmQ/OiBzdHJpbmc7XG4gIGV4cGlyZWRfc3RhcnQ/OiBzdHJpbmc7XG4gIGV4cGlyZWRfZW5kPzogc3RyaW5nO1xuICBub3RyZXZva2VkPzogYm9vbGVhbjtcbiAgbm90ZXhwaXJlZD86IGJvb2xlYW47XG4gIGNhPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ2VydGlmaWNhdGVSZXNwb25zZSA9IHtcbiAgY2FuYW1lOiBzdHJpbmc7XG4gIGNlcnRzOiB7IFBFTTogc3RyaW5nIH1bXTtcbn07XG5cbmV4cG9ydCB0eXBlIEZhYnJpY0lkZW50aXR5ID0ge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGFmZmlsaWF0aW9uOiBzdHJpbmc7XG4gIGF0dHJzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W107XG4gIG1heF9lbnJvbGxtZW50czogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgSWRlbnRpdHlSZXNwb25zZSA9IHtcbiAgY2FuYW1lOiBzdHJpbmc7XG4gIGlkZW50aXRpZXM6IEZhYnJpY0lkZW50aXR5W107XG59O1xuIl19
@@ -18,4 +18,4 @@ export * from "./fabric-types.js";
18
18
  export * from "./math.js";
19
19
  export * from "./SimpleDeterministicSerializer.js";
20
20
  export * from "./types.js";
21
- //# sourceMappingURL=index.js.map
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBQ0gsaUNBQXdCO0FBQ3hCLHNDQUE2QjtBQUM3QixpQ0FBd0I7QUFDeEIscUNBQTRCO0FBQzVCLHNDQUFtQztBQUNuQywrQkFBNEI7QUFDNUIsZ0NBQTZCO0FBQzdCLDZDQUEwQztBQUMxQyw0QkFBeUI7QUFDekIsNEJBQXlCO0FBQ3pCLGtDQUErQjtBQUMvQiwwQkFBdUI7QUFDdkIsbURBQWdEO0FBQ2hELDJCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIEh5cGVybGVkZ2VyIEZhYnJpYyBTaGFyZWQgTW9kdWxlIGZvciBEZWNhZi10c1xuICogQHN1bW1hcnkgVGhpcyBtb2R1bGUgcHJvdmlkZXMgY29tbW9uIGxvZ2ljIHRvIHRoZSBjbGllbnQgYW5kIGNvbnRyYWN0IHNpZGVzIG9mIEh5cGVybGVkZ2VyIEZhYnJpY1xuICogQG5hbWVzcGFjZSBzaGFyZWRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpY1xuICovXG5leHBvcnQgKiBmcm9tIFwiLi9lcmMyMFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL292ZXJyaWRlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vQ2xpZW50U2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9EZXRlcm1pbmlzdGljU2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ldmVudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZhYnJpYy10eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWF0aFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vU2ltcGxlRGV0ZXJtaW5pc3RpY1NlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=Checkable.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2thYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9pbnRlcmZhY2VzL0NoZWNrYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJmYWJyaWMtY29udHJhY3QtYXBpXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgaGVhbHRoLWNoZWNrIGNhcGFibGUgY29udHJhY3RzL3NlcnZpY2VzXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBhIHN0YW5kYXJkIGhlYWx0aGNoZWNrIG1ldGhvZCBzaWduYXR1cmUgdG8gcHJvYmUgbGl2ZW5lc3MvcmVhZGluZXNzIG9mIEZhYnJpYyBjb250cmFjdHMgb3Igc2VydmljZXMgdXNpbmcgYSBGYWJyaWMgY29udGV4dFxuICogQHBhcmFtIHtDb250ZXh0fSBjdHggLSBGYWJyaWMgdHJhbnNhY3Rpb24gY29udGV4dCB1c2VkIGZvciBwZXJmb3JtaW5nIHRoZSBoZWFsdGggY2hlY2tcbiAqIEByZXR1cm4ge1Byb21pc2U8c3RyaW5nfGJvb2xlYW4+fSBBIG1lc3NhZ2UgZGVzY3JpYmluZyBoZWFsdGggb3IgYSBib29sZWFuIHN0YXR1c1xuICogQGludGVyZmFjZSBDaGVja2FibGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja2FibGUge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBlcmZvcm0gYSBoZWFsdGggY2hlY2sgdXNpbmcgdGhlIEZhYnJpYyB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEBzdW1tYXJ5IEFsbG93cyBpbXBsZW1lbnRlcnMgdG8gcmVwb3J0IHJlYWRpbmVzcy9saXZlbmVzcyBpbmZvcm1hdGlvbiB0aGF0IGNhbiBiZSBhIHRleHR1YWwgbWVzc2FnZSBvciBhIGJvb2xlYW4gc3RhdHVzXG4gICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IC0gRmFicmljIHRyYW5zYWN0aW9uIGNvbnRleHQgcmVmZXJlbmNlIHVzZWQgZHVyaW5nIHRoZSBjaGVja1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHN0cmluZ3xib29sZWFuPn0gQSBzdHJpbmcgbWVzc2FnZSBkZXNjcmliaW5nIGhlYWx0aCBvciBhIGJvb2xlYW4gaW5kaWNhdGluZyBoZWFsdGh5L3VuaGVhbHRoeVxuICAgKi9cbiAgaGVhbHRoY2hlY2soY3R4OiBDb250ZXh0KTogUHJvbWlzZTxzdHJpbmcgfCBoZWFsdGhjaGVjaz47XG59XG5cbmV4cG9ydCB0eXBlIGhlYWx0aGNoZWNrID0geyBoZWFsdGhjaGVjazogYm9vbGVhbiB9O1xuIl19
@@ -1,2 +1,2 @@
1
1
  export * from "./Checkable.js";
2
- //# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vQ2hlY2thYmxlXCI7XG4iXX0=
@@ -58,4 +58,4 @@ export function safeParseInt(string) {
58
58
  }
59
59
  return parsedint;
60
60
  }
61
- //# sourceMappingURL=math.js.map
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaGFyZWQvbWF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBaUI7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWM7SUFDekMseURBQXlEO0lBQ3pELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQztJQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxlQUFlLENBQ3ZCLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUMvRCxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxlQUFlLENBQ3ZCLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxrQ0FBa0MsQ0FBQyxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHJpbmdGb3JtYXQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBPdmVyZmxvd0Vycm9yIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT3ZlcmZsb3ctc2FmZSBhZGRpdGlvbiBvcGVyYXRpb25cbiAqIEBzdW1tYXJ5IEFkZHMgdHdvIG51bWJlcnMgYW5kIHZlcmlmaWVzIG5vIG92ZXJmbG93IGJ5IHJldmVyc2UtY2hlY2tpbmcgdGhlIG9wZXJhbmRzXG4gKiBAcGFyYW0ge251bWJlcn0gYSAtIEZpcnN0IG9wZXJhbmRcbiAqIEBwYXJhbSB7bnVtYmVyfSBiIC0gU2Vjb25kIG9wZXJhbmRcbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIHN1bSBvZiBhIGFuZCBiXG4gKiBAZnVuY3Rpb24gYWRkXG4gKiBAdGhyb3dzIHtPdmVyZmxvd0Vycm9yfSBvbiBhZGRpdGlvbiBvdmVyZmxvd1xuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItZmFicmljLnNoYXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkKGE6IG51bWJlciwgYjogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3QgYyA9IGEgKyBiO1xuICBpZiAoYSAhPT0gYyAtIGIgfHwgYiAhPT0gYyAtIGEpIHtcbiAgICB0aHJvdyBuZXcgT3ZlcmZsb3dFcnJvcihgQWRkaXRpb24gb3ZlcmZsb3c6ICR7YX0gKyAke2J9YCk7XG4gIH1cbiAgcmV0dXJuIGM7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE92ZXJmbG93LXNhZmUgc3VidHJhY3Rpb24gb3BlcmF0aW9uXG4gKiBAc3VtbWFyeSBTdWJ0cmFjdHMgYiBmcm9tIGEgYW5kIHZhbGlkYXRlcyBubyBvdmVyZmxvdyBieSByZXZlcnNlLWNoZWNraW5nIHRoZSBvcGVyYW5kc1xuICogQHBhcmFtIHtudW1iZXJ9IGEgLSBNaW51ZW5kXG4gKiBAcGFyYW0ge251bWJlcn0gYiAtIFN1YnRyYWhlbmRcbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIGRpZmZlcmVuY2UgYSAtIGJcbiAqIEBmdW5jdGlvbiBzdWJcbiAqIEB0aHJvd3Mge092ZXJmbG93RXJyb3J9IG9uIHN1YnRhY3Rpb24gb3ZlcmZsb3dcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1YihhOiBudW1iZXIsIGI6IG51bWJlcik6IG51bWJlciB7XG4gIGNvbnN0IGMgPSBhIC0gYjtcbiAgaWYgKGEgIT09IGMgKyBiIHx8IGIgIT09IGEgLSBjKSB7XG4gICAgdGhyb3cgbmV3IE92ZXJmbG93RXJyb3IoYFN1YnRyYWN0aW9uIG92ZXJmbG93OiAke2F9IC0gJHtifWApO1xuICB9XG4gIHJldHVybiBjO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFNhZmUgSW50ZWdlciBQYXJzZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqXG4gKiBAZnVuY3Rpb24gc2FmZVBhcnNlSW50XG4gKlxuICogQHRocm93cyB7VmFsaWRhdGlvbkVycm9yfSBpZiBwYXJzZUludCByZXR1cm5zIE5hTlxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWZhYnJpYy5zaGFyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhZmVQYXJzZUludChzdHJpbmc6IHN0cmluZyk6IG51bWJlciB7XG4gIC8vIFJlZ3VsYXIgZXhwcmVzc2lvbiB0byBjaGVjayBpZiBzdHJpbmcgb25seSBoYXZlIGRpZ2l0c1xuICBjb25zdCBkaWdpdFJlZ2V4ID0gL15cXGQrJC87XG4gIGlmICghZGlnaXRSZWdleC50ZXN0KHN0cmluZykpIHtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgc3RyaW5nRm9ybWF0KFwiRmFpbGVkIHRvIHBhcnNlOiB7MH1cIiwgXCJzdHJpbmcgY29udGFpbnMgZGlnaXRzXCIpXG4gICAgKTtcbiAgfVxuICBjb25zdCBwYXJzZWRpbnQgPSBwYXJzZUludChzdHJpbmcpO1xuICBpZiAoaXNOYU4ocGFyc2VkaW50KSkge1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICBzdHJpbmdGb3JtYXQoXCJGYWlsZWQgdG8gcGFyc2U6IHswfVwiLCBcInN0cmluZyBpcyBub3QgYSBwYXJzYWJsZSBpbnRlZ2VyXCIpXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcGFyc2VkaW50O1xufVxuIl19
@@ -40,4 +40,4 @@ FabricBaseModel = __decorate([
40
40
  __metadata("design:paramtypes", [Object])
41
41
  ], FabricBaseModel);
42
42
  export { FabricBaseModel };
43
- //# sourceMappingURL=FabricBaseModel.js.map
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQmFzZU1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9tb2RlbC9GYWJyaWNCYXNlTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLDBCQUFxQjtBQUl0QyxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFnQixTQUFRLEtBQUs7SUFnQnhDLFlBQVksR0FBK0I7UUFDekMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztDQUNGLENBQUE7QUFmQztJQUhDLFdBQVcsQ0FBQywyQ0FBMkMsQ0FBQztJQUN4RCxNQUFNLEVBQUU7SUFDUixTQUFTLEVBQUU7OEJBQ0EsSUFBSTtrREFBQztBQUtqQjtJQUhDLFdBQVcsQ0FBQyx5Q0FBeUMsQ0FBQztJQUN0RCxNQUFNLEVBQUU7SUFDUixTQUFTLEVBQUU7OEJBQ0EsSUFBSTtrREFBQztBQUtqQjtJQUhDLFdBQVcsQ0FBQyxpQ0FBaUMsQ0FBQztJQUM5QyxNQUFNLEVBQUU7SUFDUixPQUFPLEVBQUU7O2dEQUNPO0FBZE4sZUFBZTtJQUQzQixJQUFJLENBQUMsYUFBYSxDQUFDOztHQUNQLGVBQWUsQ0FtQjNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWwsIHR5cGUgTW9kZWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBjb2x1bW4sIGNyZWF0ZWRBdCwgdXBkYXRlZEF0IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBkZXNjcmlwdGlvbiwgdXNlcyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljRmxhdm91ciB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcblxuQHVzZXMoRmFicmljRmxhdm91cilcbmV4cG9ydCBjbGFzcyBGYWJyaWNCYXNlTW9kZWwgZXh0ZW5kcyBNb2RlbCB7XG4gIEBkZXNjcmlwdGlvbihcIlN0b3JlcyB0aGUgb3JpZ2luYWwgdGltZXN0YW1wIG9mIGNyZWF0aW9uXCIpXG4gIEBjb2x1bW4oKVxuICBAY3JlYXRlZEF0KClcbiAgY3JlYXRlZEF0ITogRGF0ZTtcblxuICBAZGVzY3JpcHRpb24oXCJTdG9yZXMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgbGFzdCB1cGRhdGVcIilcbiAgQGNvbHVtbigpXG4gIEB1cGRhdGVkQXQoKVxuICB1cGRhdGVkQXQhOiBEYXRlO1xuXG4gIEBkZXNjcmlwdGlvbihcIlN0b3JlcyB0aGUgdmVyc2lvbiBvZiB0aGUgbW9kZWxcIilcbiAgQGNvbHVtbigpXG4gIEB2ZXJzaW9uKClcbiAgdmVyc2lvbiE6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihhcmc/OiBNb2RlbEFyZzxGYWJyaWNCYXNlTW9kZWw+KSB7XG4gICAgc3VwZXIoYXJnKTtcbiAgfVxufVxuIl19
@@ -33,4 +33,4 @@ FabricIdentifiedBaseModel = __decorate([
33
33
  __metadata("design:paramtypes", [Object])
34
34
  ], FabricIdentifiedBaseModel);
35
35
  export { FabricIdentifiedBaseModel };
36
- //# sourceMappingURL=FabricIdentifiedBaseModel.js.map
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljSWRlbnRpZmllZEJhc2VNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvbW9kZWwvRmFicmljSWRlbnRpZmllZEJhc2VNb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsMEJBQXFCO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsNkJBQTBCO0FBRzdDLElBQWUseUJBQXlCLEdBQXhDLE1BQWUseUJBQTBCLFNBQVEsZUFBZTtJQVdyRSxZQUFzQixHQUF5QztRQUM3RCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDYixDQUFDO0NBQ0YsQ0FBQTtBQVZDO0lBSEMsV0FBVyxDQUFDLG9CQUFvQixDQUFDO0lBQ2pDLE1BQU0sRUFBRTtJQUNSLFNBQVMsRUFBRTs7NERBQ087QUFLbkI7SUFIQyxXQUFXLENBQUMsNkNBQTZDLENBQUM7SUFDMUQsTUFBTSxFQUFFO0lBQ1IsU0FBUyxFQUFFOzs0REFDTztBQVRDLHlCQUF5QjtJQUQ5QyxJQUFJLENBQUMsYUFBYSxDQUFDOztHQUNFLHlCQUF5QixDQWM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgTW9kZWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBjb2x1bW4sIGNyZWF0ZWRCeSwgdXBkYXRlZEJ5IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBkZXNjcmlwdGlvbiwgdXNlcyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljRmxhdm91ciB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEZhYnJpY0Jhc2VNb2RlbCB9IGZyb20gXCIuL0ZhYnJpY0Jhc2VNb2RlbFwiO1xuXG5AdXNlcyhGYWJyaWNGbGF2b3VyKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZhYnJpY0lkZW50aWZpZWRCYXNlTW9kZWwgZXh0ZW5kcyBGYWJyaWNCYXNlTW9kZWwge1xuICBAZGVzY3JpcHRpb24oXCJTdG9yZXMgdGhlIGNyZWF0b3JcIilcbiAgQGNvbHVtbigpXG4gIEBjcmVhdGVkQnkoKVxuICBjcmVhdGVkQnkhOiBzdHJpbmc7XG5cbiAgQGRlc2NyaXB0aW9uKFwiU3RvcmVzIHRoZSB1c2VyIHRoYXQgbGFzdCB1cGRhdGVkIHRoZSBtb2RlbFwiKVxuICBAY29sdW1uKClcbiAgQHVwZGF0ZWRCeSgpXG4gIHVwZGF0ZWRCeSE6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYXJnPzogTW9kZWxBcmc8RmFicmljSWRlbnRpZmllZEJhc2VNb2RlbD4pIHtcbiAgICBzdXBlcihhcmcpO1xuICB9XG59XG4iXX0=
@@ -65,4 +65,4 @@ Identity = __decorate([
65
65
  __metadata("design:paramtypes", [Object])
66
66
  ], Identity);
67
67
  export { Identity };
68
- //# sourceMappingURL=Identity.js.map
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWRlbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2hhcmVkL21vZGVsL0lkZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLEVBQUUsR0FDSCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQWlCLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQ0FBOEI7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSwwQkFBcUI7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5EOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUksSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFTLFNBQVEsU0FBUztJQW9DckMsWUFBWSxHQUF1QjtRQUNqQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFUYjs7O1dBR0c7UUFHSCxTQUFJLEdBQWlCLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFJdkMsQ0FBQztDQUNGLENBQUE7QUFoQ0M7SUFGQyxXQUFXLENBQUMsbUNBQW1DLENBQUM7SUFDaEQsRUFBRSxFQUFFOztvQ0FDTztBQVVaO0lBSkMsUUFBUSxDQUFDLG1CQUFtQixFQUFFO1FBQzdCLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTztRQUN2QixNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU87S0FDeEIsQ0FBQzs4QkFDWSxtQkFBbUI7NkNBQUM7QUFTbEM7SUFIQyxNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDVixLQUFLLEVBQUU7O3VDQUNPO0FBUWY7SUFGQyxNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7O3NDQUM0QjtBQWxDNUIsUUFBUTtJQURwQixLQUFLLEVBQUU7O0dBQ0ssUUFBUSxDQXVDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlTW9kZWwsXG4gIENhc2NhZGUsXG4gIGNvbHVtbixcbiAgaW5kZXgsXG4gIG9uZVRvT25lLFxuICBwayxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBtb2RlbCwgdHlwZSBNb2RlbEFyZywgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBJZGVudGl0eUNyZWRlbnRpYWxzIH0gZnJvbSBcIi4vSWRlbnRpdHlDcmVkZW50aWFsc1wiO1xuaW1wb3J0IHsgSWRlbnRpdHlUeXBlIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZGVzY3JpcHRpb24gfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSWRlbnRpdHkgbW9kZWwgcmVwcmVzZW50aW5nIGEgRmFicmljIHdhbGxldCBlbnRyeVxuICogQHN1bW1hcnkgRW5jYXBzdWxhdGVzIGFuIGlkZW50aXR5IHN0b3JlZCBpbiBhIEZhYnJpYyB3YWxsZXQsIGluY2x1ZGluZyBpdHMgTVNQIGlkZW50aWZpZXIsIGNyZWRlbnRpYWwgbGlua2FnZSwgYW5kIHR5cGUgaW5mb3JtYXRpb24uIEJ1aWx0IG9uIEJhc2VNb2RlbCBmb3IgaW50ZWdyYXRpb24gd2l0aCBEZWNhZiB2YWxpZGF0aW9uIGFuZCBwZXJzaXN0ZW5jZS5cbiAqIEBwYXJhbSB7TW9kZWxBcmc8SWRlbnRpdHk+fSBbYXJnXSAtIE9wdGlvbmFsIGluaXRpYWxpemF0aW9uIG9iamVjdCB1c2VkIHRvIHBvcHVsYXRlIG1vZGVsIGZpZWxkc1xuICogQGNsYXNzIElkZW50aXR5XG4gKiBAZXhhbXBsZVxuICogLy8gQ3JlYXRlIGEgbmV3IGlkZW50aXR5IHJlZmVyZW5jaW5nIGV4aXN0aW5nIGNyZWRlbnRpYWxzXG4gKiBjb25zdCBpZCA9IG5ldyBJZGVudGl0eSh7IGlkOiBcInVzZXIxXCIsIG1zcElkOiBcIk9yZzFNU1BcIiwgdHlwZTogSWRlbnRpdHlUeXBlLlg1MDkgfSk7XG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBNb2RlbCBhcyBJZGVudGl0eVxuICogICBBcHAtPj5Nb2RlbDogbmV3IElkZW50aXR5KHsgaWQsIG1zcElkLCB0eXBlIH0pXG4gKiAgIE1vZGVsLS0+PkFwcDogaW5zdGFuY2VcbiAqL1xuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBJZGVudGl0eSBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGlkZW50aXR5IGluIHRoZSB3YWxsZXRcbiAgICogQHN1bW1hcnkgUHJpbWFyeSBrZXkgdXNlZCB0byByZWZlcmVuY2UgdGhpcyBpZGVudGl0eSByZWNvcmRcbiAgICovXG4gIEBkZXNjcmlwdGlvbihcIlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBpZGVudGl0eVwiKVxuICBAcGsoKVxuICBpZCE6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExpbmsgdG8gdGhlIGlkZW50aXR5IGNyZWRlbnRpYWxzIHN0b3JlZCBzZXBhcmF0ZWx5XG4gICAqIEBzdW1tYXJ5IE9uZS10by1vbmUgcmVsYXRpb25zaGlwIHRvIHRoZSBjcmVkZW50aWFscyBlbnRpdHk7IGNhc2NhZGVzIG9uIHVwZGF0ZSBhbmQgZGVsZXRlXG4gICAqL1xuICBAb25lVG9PbmUoSWRlbnRpdHlDcmVkZW50aWFscywge1xuICAgIHVwZGF0ZTogQ2FzY2FkZS5DQVNDQURFLFxuICAgIGRlbGV0ZTogQ2FzY2FkZS5DQVNDQURFLFxuICB9KVxuICBjcmVkZW50aWFscyE6IElkZW50aXR5Q3JlZGVudGlhbHM7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBNZW1iZXJzaGlwIFNlcnZpY2UgUHJvdmlkZXIgaWRlbnRpZmllclxuICAgKiBAc3VtbWFyeSBUaGUgTVNQIElEIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG9yZ2FuaXphdGlvbiB0aGF0IGlzc3VlZCB0aGlzIGlkZW50aXR5XG4gICAqL1xuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgQGluZGV4KClcbiAgbXNwSWQhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUeXBlIG9mIGlkZW50aXR5XG4gICAqIEBzdW1tYXJ5IEluZGljYXRlcyB0aGUgaWRlbnRpdHkgZW5jb2RpbmcvZm9ybWF0OyBkZWZhdWx0cyB0byBYLjUwOVxuICAgKi9cbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIHR5cGU6IElkZW50aXR5VHlwZSA9IElkZW50aXR5VHlwZS5YNTA5O1xuXG4gIGNvbnN0cnVjdG9yKGFyZzogTW9kZWxBcmc8SWRlbnRpdHk+KSB7XG4gICAgc3VwZXIoYXJnKTtcbiAgfVxufVxuIl19
@@ -60,4 +60,4 @@ IdentityCredentials = __decorate([
60
60
  __metadata("design:paramtypes", [Object])
61
61
  ], IdentityCredentials);
62
62
  export { IdentityCredentials };
63
- //# sourceMappingURL=IdentityCredentials.js.map
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWRlbnRpdHlDcmVkZW50aWFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvbW9kZWwvSWRlbnRpdHlDcmVkZW50aWFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFpQixRQUFRLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUksSUFBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBb0IsU0FBUSxTQUFTO0lBcUNoRCxZQUFZLEdBQW1DO1FBQzdDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FDRixDQUFBO0FBaENDO0lBSEMsV0FBVyxDQUFDLDZDQUE2QyxDQUFDO0lBQzFELE1BQU0sRUFBRTtJQUNSLEVBQUUsRUFBRTs7K0NBQ087QUFTWjtJQUhDLFdBQVcsQ0FBQyxnREFBZ0QsQ0FBQztJQUM3RCxNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7O3dEQUNVO0FBU3JCO0lBSEMsV0FBVyxDQUFDLDhDQUE4QyxDQUFDO0lBQzNELE1BQU0sRUFBRTtJQUNSLFFBQVEsRUFBRTs7NERBQ2M7QUFTekI7SUFIQyxXQUFXLENBQUMseUJBQXlCLENBQUM7SUFDdEMsTUFBTSxFQUFFO0lBQ1IsUUFBUSxFQUFFOzt1REFDUztBQW5DVCxtQkFBbUI7SUFEL0IsS0FBSyxFQUFFOztHQUNLLG1CQUFtQixDQXdDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwsIGNvbHVtbiwgcGsgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IG1vZGVsLCB0eXBlIE1vZGVsQXJnLCByZXF1aXJlZCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGRlc2NyaXB0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIElkZW50aXR5IGNyZWRlbnRpYWwgbW9kZWwgc3RvcmluZyBjcnlwdG9ncmFwaGljIG1hdGVyaWFsc1xuICogQHN1bW1hcnkgSG9sZHMgY2VydGlmaWNhdGUgY2hhaW4gYW5kIHByaXZhdGUga2V5IGluZm9ybWF0aW9uIGZvciBhIEZhYnJpYyBpZGVudGl0eSwgbWFuYWdlZCBhcyBhIHNlcGFyYXRlIGVudGl0eSBsaW5rZWQgZnJvbSBJZGVudGl0eVxuICogQHBhcmFtIHtNb2RlbEFyZzxJZGVudGl0eUNyZWRlbnRpYWxzPn0gW2FyZ10gLSBPcHRpb25hbCBpbml0aWFsaXphdGlvbiBvYmplY3QgdXNlZCB0byBwb3B1bGF0ZSBtb2RlbCBmaWVsZHNcbiAqIEBjbGFzcyBJZGVudGl0eUNyZWRlbnRpYWxzXG4gKiBAZXhhbXBsZVxuICogLy8gQ3JlYXRlIGNyZWRlbnRpYWxzIGVudHJ5XG4gKiBjb25zdCBjcmVkcyA9IG5ldyBJZGVudGl0eUNyZWRlbnRpYWxzKHsgaWQ6IFwiY3JlZHMxXCIsIGNlcnRpZmljYXRlOiBcIi4uLlwiLCByb290Q2VydGlmaWNhdGU6IFwiLi4uXCIsIHByaXZhdGVLZXk6IFwiLi4uXCIgfSk7XG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBNb2RlbCBhcyBJZGVudGl0eUNyZWRlbnRpYWxzXG4gKiAgIEFwcC0+Pk1vZGVsOiBuZXcgSWRlbnRpdHlDcmVkZW50aWFscyh7IGlkLCBjZXJ0aWZpY2F0ZSwgcm9vdENlcnRpZmljYXRlLCBwcml2YXRlS2V5IH0pXG4gKiAgIE1vZGVsLS0+PkFwcDogaW5zdGFuY2VcbiAqIEBzZWUgbW9kZWxcbiAqL1xuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBJZGVudGl0eUNyZWRlbnRpYWxzIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY3JlZGVudGlhbHMgcmVjb3JkXG4gICAqIEBzdW1tYXJ5IFByaW1hcnkga2V5IGZvciByZWZlcmVuY2luZyB0aGlzIGNyZWRlbnRpYWxzIGVudHJ5XG4gICAqL1xuICBAZGVzY3JpcHRpb24oXCJVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY3JlZGVudGlhbHMgcmVjb3JkXCIpXG4gIEBjb2x1bW4oKVxuICBAcGsoKVxuICBpZCE6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBFTS1lbmNvZGVkIFguNTA5IGNlcnRpZmljYXRlIGZvciB0aGUgaWRlbnRpdHlcbiAgICogQHN1bW1hcnkgTGVhZiBjZXJ0aWZpY2F0ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGlkZW50aXR5XG4gICAqL1xuICBAZGVzY3JpcHRpb24oXCJQRU0tZW5jb2RlZCBYLjUwOSBjZXJ0aWZpY2F0ZSBmb3IgdGhlIGlkZW50aXR5XCIpXG4gIEBjb2x1bW4oKVxuICBAcmVxdWlyZWQoKVxuICBjZXJ0aWZpY2F0ZSE6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBFTS1lbmNvZGVkIHJvb3Qgb3IgaW50ZXJtZWRpYXRlIGNlcnRpZmljYXRlXG4gICAqIEBzdW1tYXJ5IFJvb3Qgb2YgdHJ1c3QgdXNlZCB0byB2YWxpZGF0ZSB0aGUgbGVhZiBjZXJ0aWZpY2F0ZVxuICAgKi9cbiAgQGRlc2NyaXB0aW9uKFwiUEVNLWVuY29kZWQgcm9vdCBvciBpbnRlcm1lZGlhdGUgY2VydGlmaWNhdGVcIilcbiAgQGNvbHVtbigpXG4gIEByZXF1aXJlZCgpXG4gIHJvb3RDZXJ0aWZpY2F0ZSE6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBFTS1lbmNvZGVkIHByaXZhdGUga2V5IG1hdGVyaWFsXG4gICAqIEBzdW1tYXJ5IFByaXZhdGUga2V5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGlkZW50aXR5IGNlcnRpZmljYXRlXG4gICAqL1xuICBAZGVzY3JpcHRpb24oXCJQRU0tZW5jb2RlZCBwcml2YXRlIGtleVwiKVxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgcHJpdmF0ZUtleSE6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihhcmc/OiBNb2RlbEFyZzxJZGVudGl0eUNyZWRlbnRpYWxzPikge1xuICAgIHN1cGVyKGFyZyk7XG4gIH1cbn1cbiJdfQ==
@@ -2,4 +2,4 @@ export * from "./FabricBaseModel.js";
2
2
  export * from "./FabricIdentifiedBaseModel.js";
3
3
  export * from "./Identity.js";
4
4
  export * from "./IdentityCredentials.js";
5
- //# sourceMappingURL=index.js.map
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2hhcmVkL21vZGVsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFrQztBQUNsQywrQ0FBNEM7QUFDNUMsOEJBQTJCO0FBQzNCLHlDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0ZhYnJpY0Jhc2VNb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vRmFicmljSWRlbnRpZmllZEJhc2VNb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vSWRlbnRpdHlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0lkZW50aXR5Q3JlZGVudGlhbHNcIjtcbiJdfQ==