@lifeready/core 9.0.8 → 10.0.0

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 (225) hide show
  1. package/fesm2022/lifeready-core.mjs +10522 -0
  2. package/fesm2022/lifeready-core.mjs.map +1 -0
  3. package/package.json +21 -16
  4. package/types/lifeready-core.d.ts +5329 -0
  5. package/bundles/lifeready-core.umd.js +0 -13231
  6. package/bundles/lifeready-core.umd.js.map +0 -1
  7. package/bundles/lifeready-core.umd.min.js +0 -2
  8. package/bundles/lifeready-core.umd.min.js.map +0 -1
  9. package/esm2015/lib/_common/ast.js +0 -41
  10. package/esm2015/lib/_common/deferred-promise.js +0 -24
  11. package/esm2015/lib/_common/exceptions.js +0 -186
  12. package/esm2015/lib/_common/index.js +0 -3
  13. package/esm2015/lib/_common/kc-lodash.js +0 -11
  14. package/esm2015/lib/_common/key.js +0 -28
  15. package/esm2015/lib/_common/queries.gql.js +0 -43
  16. package/esm2015/lib/_common/run-outside-angular.js +0 -80
  17. package/esm2015/lib/_common/storage.js +0 -28
  18. package/esm2015/lib/_common/types.js +0 -2
  19. package/esm2015/lib/_common/utils.js +0 -73
  20. package/esm2015/lib/api/lr-apollo.service.js +0 -47
  21. package/esm2015/lib/api/lr-graphql/index.js +0 -6
  22. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +0 -170
  23. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +0 -216
  24. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +0 -51
  25. package/esm2015/lib/api/lr-graphql/lr-mutation.js +0 -91
  26. package/esm2015/lib/api/lr-graphql/lr.service.js +0 -18
  27. package/esm2015/lib/api/query-processor/common-processors.service.js +0 -94
  28. package/esm2015/lib/api/query-processor/index.js +0 -3
  29. package/esm2015/lib/api/query-processor/query-processor.service.js +0 -307
  30. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +0 -110
  31. package/esm2015/lib/api/types/graphql.types.js +0 -8
  32. package/esm2015/lib/api/types/index.js +0 -3
  33. package/esm2015/lib/api/types/lr-graphql.types.js +0 -182
  34. package/esm2015/lib/auth/auth.config.js +0 -57
  35. package/esm2015/lib/auth/auth.gql.private.js +0 -85
  36. package/esm2015/lib/auth/auth.service.js +0 -616
  37. package/esm2015/lib/auth/auth.types.js +0 -19
  38. package/esm2015/lib/contact-card/contact-card.gql.js +0 -79
  39. package/esm2015/lib/contact-card/contact-card.service.js +0 -156
  40. package/esm2015/lib/contact-card/contact-card2.gql.js +0 -29
  41. package/esm2015/lib/contact-card/contact-card2.service.js +0 -103
  42. package/esm2015/lib/encryption/encryption.service.js +0 -188
  43. package/esm2015/lib/file-upload/file-upload.service.js +0 -70
  44. package/esm2015/lib/file-upload/file-upload.types.js +0 -2
  45. package/esm2015/lib/idle/idle.service.js +0 -159
  46. package/esm2015/lib/idle/idle.types.js +0 -7
  47. package/esm2015/lib/item/item.gql.js +0 -166
  48. package/esm2015/lib/item/item.gql.private.js +0 -41
  49. package/esm2015/lib/item/item.service.js +0 -662
  50. package/esm2015/lib/item/item.types.js +0 -2
  51. package/esm2015/lib/key/key-factory.service.js +0 -226
  52. package/esm2015/lib/key/key-graph.service.js +0 -314
  53. package/esm2015/lib/key/key-meta.service.js +0 -153
  54. package/esm2015/lib/key/key.service.js +0 -124
  55. package/esm2015/lib/key/key.types.js +0 -16
  56. package/esm2015/lib/key-exchange/key-exchange.gql.js +0 -174
  57. package/esm2015/lib/key-exchange/key-exchange.service.js +0 -496
  58. package/esm2015/lib/lbop/lbop.service.js +0 -351
  59. package/esm2015/lib/life-ready.config.js +0 -96
  60. package/esm2015/lib/life-ready.module.js +0 -42
  61. package/esm2015/lib/lock/lock.gql.js +0 -40
  62. package/esm2015/lib/lock/lock.service.js +0 -64
  63. package/esm2015/lib/notification/notification.gql.js +0 -43
  64. package/esm2015/lib/notification/notification.service.js +0 -118
  65. package/esm2015/lib/password/password.gql.js +0 -28
  66. package/esm2015/lib/password/password.service.js +0 -309
  67. package/esm2015/lib/persist/persist.service.js +0 -181
  68. package/esm2015/lib/plan/plan.gql.js +0 -91
  69. package/esm2015/lib/plan/plan.service.js +0 -191
  70. package/esm2015/lib/plan/plan.types.js +0 -2
  71. package/esm2015/lib/profile/profile-details.service.js +0 -261
  72. package/esm2015/lib/profile/profile.gql.js +0 -170
  73. package/esm2015/lib/profile/profile.service.js +0 -166
  74. package/esm2015/lib/profile/profile.types.js +0 -45
  75. package/esm2015/lib/register/register.service.js +0 -173
  76. package/esm2015/lib/register/register.types.js +0 -3
  77. package/esm2015/lib/reminder/reminder.gql.js +0 -27
  78. package/esm2015/lib/reminder/reminder.service.js +0 -85
  79. package/esm2015/lib/reminder/reminder.types.js +0 -2
  80. package/esm2015/lib/scenario/scenario.constants.js +0 -2
  81. package/esm2015/lib/scenario/scenario.controller.js +0 -34
  82. package/esm2015/lib/scenario/scenario.gql.js +0 -90
  83. package/esm2015/lib/scenario/scenario.private.gql.js +0 -200
  84. package/esm2015/lib/scenario/scenario.service.js +0 -679
  85. package/esm2015/lib/scenario/scenario.types.js +0 -2
  86. package/esm2015/lib/server-config/server-config.gql.js +0 -9
  87. package/esm2015/lib/server-config/server-config.service.js +0 -41
  88. package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +0 -119
  89. package/esm2015/lib/shared-contact-card/shared-contact-card2.gql.js +0 -41
  90. package/esm2015/lib/shared-contact-card/shared-contact-card2.service.js +0 -117
  91. package/esm2015/lib/slip39/slip39.service.js +0 -167
  92. package/esm2015/lib/time/time.service.js +0 -152
  93. package/esm2015/lib/tp-assembly/tp-assembly.js +0 -363
  94. package/esm2015/lib/tp-assembly/tp-assembly.private.gql.js +0 -22
  95. package/esm2015/lib/tp-assembly/tp-assembly.types.js +0 -2
  96. package/esm2015/lib/tp-password-reset/tp-password-reset-request.service.js +0 -98
  97. package/esm2015/lib/tp-password-reset/tp-password-reset-user.service.js +0 -121
  98. package/esm2015/lib/tp-password-reset/tp-password-reset.constants.js +0 -4
  99. package/esm2015/lib/tp-password-reset/tp-password-reset.controller.js +0 -34
  100. package/esm2015/lib/tp-password-reset/tp-password-reset.gql.js +0 -74
  101. package/esm2015/lib/tp-password-reset/tp-password-reset.private.gql.js +0 -166
  102. package/esm2015/lib/tp-password-reset/tp-password-reset.private.service.js +0 -54
  103. package/esm2015/lib/tp-password-reset/tp-password-reset.service.js +0 -110
  104. package/esm2015/lib/tp-password-reset/tp-password-reset.types.js +0 -2
  105. package/esm2015/lib/trusted-party/trusted-party.gql.js +0 -96
  106. package/esm2015/lib/trusted-party/trusted-party.gql.private.js +0 -51
  107. package/esm2015/lib/trusted-party/trusted-party.service.js +0 -461
  108. package/esm2015/lib/trusted-party/trusted-party.types.js +0 -2
  109. package/esm2015/lib/two-factor/two-factor.service.js +0 -74
  110. package/esm2015/lib/user/user.gql.js +0 -32
  111. package/esm2015/lib/user/user.service.js +0 -58
  112. package/esm2015/lib/user/user.types.js +0 -2
  113. package/esm2015/lib/web-crypto/web-crypto.service.js +0 -29
  114. package/esm2015/lifeready-core.js +0 -17
  115. package/esm2015/public-api.js +0 -60
  116. package/fesm2015/lifeready-core.js +0 -10970
  117. package/fesm2015/lifeready-core.js.map +0 -1
  118. package/lib/_common/ast.d.ts +0 -11
  119. package/lib/_common/deferred-promise.d.ts +0 -12
  120. package/lib/_common/exceptions.d.ts +0 -126
  121. package/lib/_common/index.d.ts +0 -2
  122. package/lib/_common/kc-lodash.d.ts +0 -5
  123. package/lib/_common/key.d.ts +0 -14
  124. package/lib/_common/queries.gql.d.ts +0 -4
  125. package/lib/_common/run-outside-angular.d.ts +0 -14
  126. package/lib/_common/storage.d.ts +0 -13
  127. package/lib/_common/types.d.ts +0 -15
  128. package/lib/_common/utils.d.ts +0 -12
  129. package/lib/api/lr-apollo.service.d.ts +0 -15
  130. package/lib/api/lr-graphql/index.d.ts +0 -5
  131. package/lib/api/lr-graphql/lr-graphql.service.d.ts +0 -81
  132. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +0 -46
  133. package/lib/api/lr-graphql/lr-mutation-base.d.ts +0 -28
  134. package/lib/api/lr-graphql/lr-mutation.d.ts +0 -48
  135. package/lib/api/lr-graphql/lr.service.d.ts +0 -9
  136. package/lib/api/query-processor/common-processors.service.d.ts +0 -36
  137. package/lib/api/query-processor/index.d.ts +0 -2
  138. package/lib/api/query-processor/query-processor.service.d.ts +0 -18
  139. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +0 -15
  140. package/lib/api/types/graphql.types.d.ts +0 -30
  141. package/lib/api/types/index.d.ts +0 -2
  142. package/lib/api/types/lr-graphql.types.d.ts +0 -807
  143. package/lib/auth/auth.config.d.ts +0 -5
  144. package/lib/auth/auth.gql.private.d.ts +0 -25
  145. package/lib/auth/auth.service.d.ts +0 -72
  146. package/lib/auth/auth.types.d.ts +0 -70
  147. package/lib/contact-card/contact-card.gql.d.ts +0 -7
  148. package/lib/contact-card/contact-card.service.d.ts +0 -53
  149. package/lib/contact-card/contact-card2.gql.d.ts +0 -25
  150. package/lib/contact-card/contact-card2.service.d.ts +0 -64
  151. package/lib/encryption/encryption.service.d.ts +0 -42
  152. package/lib/file-upload/file-upload.service.d.ts +0 -15
  153. package/lib/file-upload/file-upload.types.d.ts +0 -5
  154. package/lib/idle/idle.service.d.ts +0 -47
  155. package/lib/idle/idle.types.d.ts +0 -10
  156. package/lib/item/item.gql.d.ts +0 -134
  157. package/lib/item/item.gql.private.d.ts +0 -35
  158. package/lib/item/item.service.d.ts +0 -201
  159. package/lib/item/item.types.d.ts +0 -95
  160. package/lib/key/key-factory.service.d.ts +0 -40
  161. package/lib/key/key-graph.service.d.ts +0 -41
  162. package/lib/key/key-meta.service.d.ts +0 -51
  163. package/lib/key/key.service.d.ts +0 -36
  164. package/lib/key/key.types.d.ts +0 -86
  165. package/lib/key-exchange/key-exchange.gql.d.ts +0 -141
  166. package/lib/key-exchange/key-exchange.service.d.ts +0 -179
  167. package/lib/lbop/lbop.service.d.ts +0 -99
  168. package/lib/life-ready.config.d.ts +0 -26
  169. package/lib/life-ready.module.d.ts +0 -5
  170. package/lib/lock/lock.gql.d.ts +0 -27
  171. package/lib/lock/lock.service.d.ts +0 -34
  172. package/lib/notification/notification.gql.d.ts +0 -37
  173. package/lib/notification/notification.service.d.ts +0 -64
  174. package/lib/password/password.gql.d.ts +0 -3
  175. package/lib/password/password.service.d.ts +0 -79
  176. package/lib/persist/persist.service.d.ts +0 -31
  177. package/lib/plan/plan.gql.d.ts +0 -69
  178. package/lib/plan/plan.service.d.ts +0 -111
  179. package/lib/plan/plan.types.d.ts +0 -16
  180. package/lib/profile/profile-details.service.d.ts +0 -20
  181. package/lib/profile/profile.gql.d.ts +0 -21
  182. package/lib/profile/profile.service.d.ts +0 -32
  183. package/lib/profile/profile.types.d.ts +0 -121
  184. package/lib/register/register.service.d.ts +0 -25
  185. package/lib/register/register.types.d.ts +0 -6
  186. package/lib/reminder/reminder.gql.d.ts +0 -23
  187. package/lib/reminder/reminder.service.d.ts +0 -33
  188. package/lib/reminder/reminder.types.d.ts +0 -17
  189. package/lib/scenario/scenario.constants.d.ts +0 -1
  190. package/lib/scenario/scenario.controller.d.ts +0 -10
  191. package/lib/scenario/scenario.gql.d.ts +0 -78
  192. package/lib/scenario/scenario.private.gql.d.ts +0 -16
  193. package/lib/scenario/scenario.service.d.ts +0 -655
  194. package/lib/scenario/scenario.types.d.ts +0 -64
  195. package/lib/server-config/server-config.gql.d.ts +0 -5
  196. package/lib/server-config/server-config.service.d.ts +0 -9
  197. package/lib/shared-contact-card/shared-contact-card.service.d.ts +0 -33
  198. package/lib/shared-contact-card/shared-contact-card2.gql.d.ts +0 -36
  199. package/lib/shared-contact-card/shared-contact-card2.service.d.ts +0 -45
  200. package/lib/slip39/slip39.service.d.ts +0 -42
  201. package/lib/time/time.service.d.ts +0 -26
  202. package/lib/tp-assembly/tp-assembly.d.ts +0 -177
  203. package/lib/tp-assembly/tp-assembly.private.gql.d.ts +0 -5
  204. package/lib/tp-assembly/tp-assembly.types.d.ts +0 -40
  205. package/lib/tp-password-reset/tp-password-reset-request.service.d.ts +0 -16
  206. package/lib/tp-password-reset/tp-password-reset-user.service.d.ts +0 -29
  207. package/lib/tp-password-reset/tp-password-reset.constants.d.ts +0 -3
  208. package/lib/tp-password-reset/tp-password-reset.controller.d.ts +0 -10
  209. package/lib/tp-password-reset/tp-password-reset.gql.d.ts +0 -63
  210. package/lib/tp-password-reset/tp-password-reset.private.gql.d.ts +0 -163
  211. package/lib/tp-password-reset/tp-password-reset.private.service.d.ts +0 -59
  212. package/lib/tp-password-reset/tp-password-reset.service.d.ts +0 -112
  213. package/lib/tp-password-reset/tp-password-reset.types.d.ts +0 -40
  214. package/lib/trusted-party/trusted-party.gql.d.ts +0 -85
  215. package/lib/trusted-party/trusted-party.gql.private.d.ts +0 -40
  216. package/lib/trusted-party/trusted-party.service.d.ts +0 -192
  217. package/lib/trusted-party/trusted-party.types.d.ts +0 -31
  218. package/lib/two-factor/two-factor.service.d.ts +0 -15
  219. package/lib/user/user.gql.d.ts +0 -8
  220. package/lib/user/user.service.d.ts +0 -9
  221. package/lib/user/user.types.d.ts +0 -16
  222. package/lib/web-crypto/web-crypto.service.d.ts +0 -5
  223. package/lifeready-core.d.ts +0 -16
  224. package/lifeready-core.metadata.json +0 -1
  225. package/public-api.d.ts +0 -56
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8udHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2NlbmFyaW8vc2NlbmFyaW8udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc1JvbGVDaG9pY2UsIEpTT05PYmplY3QgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHtcbiAgQ3JlYXRlVHBBc3NlbWJseUlucHV0LFxuICBVcGRhdGVUcEFzc2VtYmx5SW5wdXQsXG59IGZyb20gJy4uL3RwLWFzc2VtYmx5L3RwLWFzc2VtYmx5LnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQYXJ0aWNpcGFudE9wdGlvbnMge1xuICB0cElkOiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVBhcnRpY2lwYW50T3B0aW9ucyBleHRlbmRzIFBhcnRpY2lwYW50T3B0aW9ucyB7XG4gIC8qKiBUaGlzIGlzIHRoZSBUUC5zaGFyZWRLZXkgdXNlZCB0byB3cmFwIHRoZSBhcHByb3ZlciBzaGFyZWQga2V5IHdoaWNoIHdpbGwgYmUgY3JlYXRlZC4gKi9cbiAgdHBTaGFyZWRLZXlJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVXBkYXRlUGFydGljaXBhbnRPcHRpb25zID0gUGFydGljaXBhbnRPcHRpb25zO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlY2VpdmVySXRlbU9wdGlvbnMge1xuICBhY2Nlc3NSb2xlOiBBY2Nlc3NSb2xlQ2hvaWNlO1xuICAvLyBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uIG11c3Qgbm90IGJlIGdpdmVuIGlmIGFjY2VzcyByb2xlIGlzIERFTllcbiAgc2hhcmVkQ2lwaGVyRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjZWl2ZXJEaXJlY3RvcnlPcHRpb25zIGV4dGVuZHMgUmVjZWl2ZXJJdGVtT3B0aW9ucyB7XG4gIGRpcmVjdG9yeUlkOiBzdHJpbmc7XG4gIGRpcmVjdG9yeUtleUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY2VpdmVyRmlsZU9wdGlvbnMgZXh0ZW5kcyBSZWNlaXZlckl0ZW1PcHRpb25zIHtcbiAgZmlsZUlkOiBzdHJpbmc7XG4gIGZpbGVLZXlJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQ3JlYXRlUmVjZWl2ZXJEaXJlY3RvcnlPcHRpb25zID0gUmVjZWl2ZXJEaXJlY3RvcnlPcHRpb25zO1xuZXhwb3J0IHR5cGUgVXBkYXRlUmVjZWl2ZXJEaXJlY3RvcnlPcHRpb25zID0gUmVjZWl2ZXJEaXJlY3RvcnlPcHRpb25zO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVSZWNlaXZlckZpbGVPcHRpb25zID0gUmVjZWl2ZXJGaWxlT3B0aW9ucztcbmV4cG9ydCB0eXBlIFVwZGF0ZVJlY2VpdmVyRmlsZU9wdGlvbnMgPSBSZWNlaXZlckZpbGVPcHRpb25zO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVJlY2VpdmVyT3B0aW9ucyBleHRlbmRzIENyZWF0ZVBhcnRpY2lwYW50T3B0aW9ucyB7XG4gIGFkZERpcmVjdG9yaWVzPzogQ3JlYXRlUmVjZWl2ZXJEaXJlY3RvcnlPcHRpb25zW107XG4gIGFkZEZpbGVzPzogQ3JlYXRlUmVjZWl2ZXJGaWxlT3B0aW9uc1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVJlY2VpdmVyT3B0aW9ucyBleHRlbmRzIFVwZGF0ZVBhcnRpY2lwYW50T3B0aW9ucyB7XG4gIGFkZERpcmVjdG9yaWVzPzogQ3JlYXRlUmVjZWl2ZXJEaXJlY3RvcnlPcHRpb25zW107XG4gIGFkZEZpbGVzPzogQ3JlYXRlUmVjZWl2ZXJGaWxlT3B0aW9uc1tdO1xuICB1cGRhdGVEaXJlY3Rvcmllcz86IFVwZGF0ZVJlY2VpdmVyRGlyZWN0b3J5T3B0aW9uc1tdO1xuICB1cGRhdGVGaWxlcz86IFVwZGF0ZVJlY2VpdmVyRmlsZU9wdGlvbnNbXTtcbiAgZGVsZXRlRGlyZWN0b3JpZXM/OiBzdHJpbmdbXTtcbiAgZGVsZXRlRmlsZXM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IHR5cGUgQ3JlYXRlQ2xhaW1hbnRPcHRpb25zID0gQ3JlYXRlUGFydGljaXBhbnRPcHRpb25zO1xuZXhwb3J0IHR5cGUgVXBkYXRlQ2xhaW1hbnRPcHRpb25zID0gVXBkYXRlUGFydGljaXBhbnRPcHRpb25zO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVNjZW5hcmlvT3B0aW9ucyB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGluYWN0aXZlU2Vjb25kcz86IG51bWJlcjtcbiAgY3JlYXRlQXNzZW1ibHk/OiBDcmVhdGVUcEFzc2VtYmx5SW5wdXQ7XG4gIGNyZWF0ZVJlY2VpdmVycz86IENyZWF0ZVJlY2VpdmVyT3B0aW9uc1tdO1xuICBjcmVhdGVDbGFpbWFudHM/OiBDcmVhdGVDbGFpbWFudE9wdGlvbnNbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTY2VuYXJpb09wdGlvbnMge1xuICBzY2VuYXJpb0lkOiBzdHJpbmc7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGluYWN0aXZlU2Vjb25kcz86IG51bWJlcjtcbiAgdXBkYXRlQXNzZW1ibHk/OiBVcGRhdGVUcEFzc2VtYmx5SW5wdXQ7XG4gIGNyZWF0ZVJlY2VpdmVycz86IENyZWF0ZVJlY2VpdmVyT3B0aW9uc1tdO1xuICB1cGRhdGVSZWNlaXZlcnM/OiBVcGRhdGVSZWNlaXZlck9wdGlvbnNbXTtcbiAgZGVsZXRlUmVjZWl2ZXJzPzogc3RyaW5nW107XG4gIGNyZWF0ZUNsYWltYW50cz86IENyZWF0ZUNsYWltYW50T3B0aW9uc1tdO1xuICB1cGRhdGVDbGFpbWFudHM/OiBVcGRhdGVDbGFpbWFudE9wdGlvbnNbXTtcbiAgZGVsZXRlQ2xhaW1hbnRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRTY2VuYXJpb09wdGlvbnMge1xuICBzY2VuYXJpb0lkOiBzdHJpbmc7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG59XG4iXX0=
@@ -1,9 +0,0 @@
1
- import { gqlTyped } from '../_common/ast';
2
- export const ServerConfigQuery = gqlTyped `
3
- query ServerConfigQuery {
4
- serverConfig {
5
- relayConnectionMaxLimit
6
- }
7
- }
8
- `;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWNvbmZpZy5ncWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2VydmVyLWNvbmZpZy9zZXJ2ZXItY29uZmlnLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLMUMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUF5Qjs7Ozs7O0NBTWpFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2ZXJDb25maWcgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgZ3FsVHlwZWQgfSBmcm9tICcuLi9fY29tbW9uL2FzdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyQ29uZmlnUXVlcnlSZXN1bHQge1xuICBzZXJ2ZXJDb25maWc6IFBpY2s8UmVxdWlyZWQ8U2VydmVyQ29uZmlnPiwgJ3JlbGF5Q29ubmVjdGlvbk1heExpbWl0Jz47XG59XG5leHBvcnQgY29uc3QgU2VydmVyQ29uZmlnUXVlcnkgPSBncWxUeXBlZDxTZXJ2ZXJDb25maWdRdWVyeVJlc3VsdD5gXG5xdWVyeSBTZXJ2ZXJDb25maWdRdWVyeSB7XG4gIHNlcnZlckNvbmZpZyB7XG4gICAgcmVsYXlDb25uZWN0aW9uTWF4TGltaXRcbiAgfVxufVxuYDtcbiJdfQ==
@@ -1,41 +0,0 @@
1
- import { __awaiter, __decorate } from "tslib";
2
- import { Injectable, Injector, NgZone } from '@angular/core';
3
- import { LrService } from '../api/lr-graphql';
4
- import { RunOutsideAngular } from '../_common/run-outside-angular';
5
- import { ServerConfigQuery, } from './server-config.gql';
6
- import * as i0 from "@angular/core";
7
- let ServerConfigService = class ServerConfigService extends LrService {
8
- constructor(ngZone, injector) {
9
- super(injector);
10
- this.ngZone = ngZone;
11
- this.injector = injector;
12
- }
13
- getConfig() {
14
- return __awaiter(this, void 0, void 0, function* () {
15
- if (this.serverConfig == null) {
16
- this.serverConfig = (yield this.query({
17
- query: ServerConfigQuery,
18
- includeKeyGraph: false,
19
- })).serverConfig;
20
- }
21
- return this.serverConfig;
22
- });
23
- }
24
- };
25
- ServerConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ServerConfigService_Factory() { return new ServerConfigService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.INJECTOR)); }, token: ServerConfigService, providedIn: "root" });
26
- ServerConfigService.decorators = [
27
- { type: Injectable, args: [{
28
- providedIn: 'root',
29
- },] }
30
- ];
31
- ServerConfigService.ctorParameters = () => [
32
- { type: NgZone },
33
- { type: Injector }
34
- ];
35
- ServerConfigService = __decorate([
36
- RunOutsideAngular({
37
- ngZoneName: 'ngZone',
38
- })
39
- ], ServerConfigService);
40
- export { ServerConfigService };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZlci1jb25maWcvc2VydmVyLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxpQkFBaUIsR0FFbEIsTUFBTSxxQkFBcUIsQ0FBQzs7SUFRaEIsbUJBQW1CLFNBQW5CLG1CQUFvQixTQUFRLFNBQVM7SUFHaEQsWUFBb0IsTUFBYyxFQUFVLFFBQWtCO1FBQzVELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBRTlELENBQUM7SUFFSyxTQUFTOztZQUNiLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUNmLEtBQUssRUFBRSxpQkFBaUI7b0JBQ3hCLGVBQWUsRUFBRSxLQUFLO2lCQUN2QixDQUFDLENBQ0gsQ0FBQyxZQUFZLENBQUM7YUFDaEI7WUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDM0IsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBdEJBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBYjhCLE1BQU07WUFBaEIsUUFBUTs7QUFjaEIsbUJBQW1CO0lBTi9CLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyxtQkFBbUIsQ0FtQi9CO1NBbkJZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExyU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1ncmFwaHFsJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7XG4gIFNlcnZlckNvbmZpZ1F1ZXJ5LFxuICBTZXJ2ZXJDb25maWdRdWVyeVJlc3VsdCxcbn0gZnJvbSAnLi9zZXJ2ZXItY29uZmlnLmdxbCc7XG5cbkBSdW5PdXRzaWRlQW5ndWxhcih7XG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2ZXJDb25maWdTZXJ2aWNlIGV4dGVuZHMgTHJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzZXJ2ZXJDb25maWc6IFNlcnZlckNvbmZpZ1F1ZXJ5UmVzdWx0WydzZXJ2ZXJDb25maWcnXTsgLy8gY2FjaGVcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgfVxuXG4gIGFzeW5jIGdldENvbmZpZygpIHtcbiAgICBpZiAodGhpcy5zZXJ2ZXJDb25maWcgPT0gbnVsbCkge1xuICAgICAgdGhpcy5zZXJ2ZXJDb25maWcgPSAoXG4gICAgICAgIGF3YWl0IHRoaXMucXVlcnkoe1xuICAgICAgICAgIHF1ZXJ5OiBTZXJ2ZXJDb25maWdRdWVyeSxcbiAgICAgICAgICBpbmNsdWRlS2V5R3JhcGg6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgKS5zZXJ2ZXJDb25maWc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2VydmVyQ29uZmlnO1xuICB9XG59XG4iXX0=
@@ -1,119 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import gql from 'graphql-tag';
4
- import { LrApolloService } from '../api/lr-apollo.service';
5
- import { EncryptionService } from '../encryption/encryption.service';
6
- import { KeyGraphService } from '../key/key-graph.service';
7
- import { KeyService } from '../key/key.service';
8
- import { ContactCardName, } from '../profile/profile.types';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../key/key.service";
11
- import * as i2 from "../api/lr-apollo.service";
12
- import * as i3 from "../key/key-graph.service";
13
- import * as i4 from "../encryption/encryption.service";
14
- export const SharedContactCardFields = `
15
- id
16
- owner {
17
- id
18
- username
19
- }
20
- ownerKey {
21
- id
22
- }
23
- ownerCipherData
24
- receiver {
25
- id
26
- username
27
- }
28
- receiverKey {
29
- id
30
- }
31
- receiverCipherData
32
- sharedKey {
33
- id
34
- }
35
- sharedCipherData
36
- sharedCipherDataSig
37
- sharedCipherDataSigPxk {
38
- id
39
- }
40
- `;
41
- const UpdateOwnedContactCard = gql `
42
- mutation UpdateOwnedContactCard(
43
- $input: UpdateOwnedContactCardInput!
44
- ) {
45
- updateOwnedContactCard(
46
- input: $input
47
- ) {
48
- ownedContactCard {
49
- ${SharedContactCardFields}
50
- }
51
- }
52
- }`;
53
- export class SharedContactCardService {
54
- constructor(keyService, lrApollo, keyGraph, encryptionService) {
55
- this.keyService = keyService;
56
- this.lrApollo = lrApollo;
57
- this.keyGraph = keyGraph;
58
- this.encryptionService = encryptionService;
59
- }
60
- decryptSharedTrustedPartyDetails(cc) {
61
- return __awaiter(this, void 0, void 0, function* () {
62
- const details = yield this.decryptTrustedPartyDetails(cc);
63
- return Object.assign({ id: cc.id, ownedKeyId: cc.ownerKey.id, sharedKeyId: cc.sharedKey.id }, details);
64
- });
65
- }
66
- decryptTrustedPartyDetails(cc) {
67
- return __awaiter(this, void 0, void 0, function* () {
68
- if (cc && cc.sharedKey && cc.sharedCipherData) {
69
- try {
70
- return yield this.encryptionService.decrypt(yield this.keyGraph.getJwkKey(cc.sharedKey.id), cc.sharedCipherData);
71
- }
72
- catch (e) {
73
- console.error('Cannot decrypt trusted party details', e);
74
- }
75
- }
76
- return null;
77
- });
78
- }
79
- updateMySharedContactCard(id, ownedKeyId, sharedKeyId, contactCard) {
80
- return __awaiter(this, void 0, void 0, function* () {
81
- const ownerKey = yield this.keyGraph.getKey(ownedKeyId);
82
- const sharedKey = yield this.keyGraph.getKey(sharedKeyId);
83
- const sigPxk = this.keyService.currentSigPxk;
84
- const sharedCipherData = yield this.encryptionService.encrypt(sharedKey.jwk, contactCard);
85
- const sharedCipherDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, sharedCipherData));
86
- const ownerPlainData = {
87
- name: new ContactCardName(contactCard.name),
88
- };
89
- const ownerPlainDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, ownerPlainData));
90
- yield this.lrApollo.mutate({
91
- mutation: UpdateOwnedContactCard,
92
- variables: {
93
- input: {
94
- id,
95
- ownerCipherData: '',
96
- ownerKeyId: ownerKey.id,
97
- sharedCipherDataSig,
98
- sharedKeyId: sharedKey.id,
99
- sigPxkId: sigPxk.id,
100
- ownerPlainDataSig,
101
- },
102
- },
103
- });
104
- });
105
- }
106
- }
107
- SharedContactCardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SharedContactCardService_Factory() { return new SharedContactCardService(i0.ɵɵinject(i1.KeyService), i0.ɵɵinject(i2.LrApolloService), i0.ɵɵinject(i3.KeyGraphService), i0.ɵɵinject(i4.EncryptionService)); }, token: SharedContactCardService, providedIn: "root" });
108
- SharedContactCardService.decorators = [
109
- { type: Injectable, args: [{
110
- providedIn: 'root',
111
- },] }
112
- ];
113
- SharedContactCardService.ctorParameters = () => [
114
- { type: KeyService },
115
- { type: LrApolloService },
116
- { type: KeyGraphService },
117
- { type: EncryptionService }
118
- ];
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWNvbnRhY3QtY2FyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NoYXJlZC1jb250YWN0LWNhcmQvc2hhcmVkLWNvbnRhY3QtY2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFHbEMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMEJ0QyxDQUFDO0FBRUYsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7O1FBUTFCLHVCQUF1Qjs7O0VBRzdCLENBQUM7QUEyQkgsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNVLFVBQXNCLEVBQ3RCLFFBQXlCLEVBQ3pCLFFBQXlCLEVBQ3pCLGlCQUFvQztRQUhwQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFDM0MsQ0FBQztJQUVFLGdDQUFnQyxDQUNwQyxFQUFxQjs7WUFFckIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFMUQsdUJBQ0UsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQ1QsVUFBVSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUMxQixXQUFXLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQ3pCLE9BQU8sRUFDVjtRQUNKLENBQUM7S0FBQTtJQUVLLDBCQUEwQixDQUM5QixFQUFxQjs7WUFFckIsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQzdDLElBQUk7b0JBQ0YsT0FBTyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQ3pDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFDOUMsRUFBRSxDQUFDLGdCQUFnQixDQUNwQixDQUFDO2lCQUNIO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQzFEO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FBQTtJQUVLLHlCQUF5QixDQUM3QixFQUFVLEVBQ1YsVUFBa0IsRUFDbEIsV0FBbUIsRUFDbkIsV0FBZ0M7O1lBRWhDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztZQUU3QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FDM0QsU0FBUyxDQUFDLEdBQUcsRUFDYixXQUFXLENBQ1osQ0FBQztZQUNGLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDeEMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsQ0FDaEUsQ0FBQztZQUVGLE1BQU0sY0FBYyxHQUFHO2dCQUNyQixJQUFJLEVBQUUsSUFBSSxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQzthQUM1QyxDQUFDO1lBQ0YsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUN0QyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FDOUQsQ0FBQztZQUVGLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQXlCO2dCQUNqRCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxTQUFTLEVBQUU7b0JBQ1QsS0FBSyxFQUFFO3dCQUNMLEVBQUU7d0JBQ0YsZUFBZSxFQUFFLEVBQUU7d0JBQ25CLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTt3QkFDdkIsbUJBQW1CO3dCQUNuQixXQUFXLEVBQUUsU0FBUyxDQUFDLEVBQUU7d0JBQ3pCLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTt3QkFDbkIsaUJBQWlCO3FCQUNsQjtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTs7OztZQS9FRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQTFFUSxVQUFVO1lBSlYsZUFBZTtZQUdmLGVBQWU7WUFEZixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZ3FsIGZyb20gJ2dyYXBocWwtdGFnJztcbmltcG9ydCB7IExyQXBvbGxvU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1hcG9sbG8uc2VydmljZSc7XG5pbXBvcnQgeyBKU09OT2JqZWN0IH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZW5jcnlwdGlvbi9lbmNyeXB0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5IH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQge1xuICBDb250YWN0Q2FyZE5hbWUsXG4gIFNoYXJlZFRydXN0ZWRQYXJ0eURldGFpbHMsXG4gIFRydXN0ZWRQYXJ0eURldGFpbHMsXG59IGZyb20gJy4uL3Byb2ZpbGUvcHJvZmlsZS50eXBlcyc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlci91c2VyLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IFNoYXJlZENvbnRhY3RDYXJkRmllbGRzID0gYFxuICBpZFxuICBvd25lciB7XG4gICAgaWRcbiAgICB1c2VybmFtZVxuICB9XG4gIG93bmVyS2V5IHtcbiAgICBpZFxuICB9XG4gIG93bmVyQ2lwaGVyRGF0YVxuICByZWNlaXZlciB7XG4gICAgaWRcbiAgICB1c2VybmFtZVxuICB9XG4gIHJlY2VpdmVyS2V5IHtcbiAgICBpZFxuICB9XG4gIHJlY2VpdmVyQ2lwaGVyRGF0YVxuICBzaGFyZWRLZXkge1xuICAgIGlkXG4gIH1cbiAgc2hhcmVkQ2lwaGVyRGF0YVxuICBzaGFyZWRDaXBoZXJEYXRhU2lnXG4gIHNoYXJlZENpcGhlckRhdGFTaWdQeGsge1xuICAgIGlkXG4gIH1cbmA7XG5cbmNvbnN0IFVwZGF0ZU93bmVkQ29udGFjdENhcmQgPSBncWxgXG5tdXRhdGlvbiBVcGRhdGVPd25lZENvbnRhY3RDYXJkKFxuICAkaW5wdXQ6IFVwZGF0ZU93bmVkQ29udGFjdENhcmRJbnB1dCFcbikge1xuICB1cGRhdGVPd25lZENvbnRhY3RDYXJkKFxuICAgIGlucHV0OiAkaW5wdXRcbiAgKSB7XG4gICAgb3duZWRDb250YWN0Q2FyZCB7XG4gICAgICAke1NoYXJlZENvbnRhY3RDYXJkRmllbGRzfVxuICAgIH1cbiAgfVxufWA7XG5cbmludGVyZmFjZSBVcGRhdGVPd25lZENvbnRhY3RDYXJkIHtcbiAgdXBkYXRlT3duZWRDb250YWN0Q2FyZDoge1xuICAgIG93bmVkQ29udGFjdENhcmQ6IFNoYXJlZENvbnRhY3RDYXJkO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZENvbnRhY3RDYXJkIHtcbiAgaWQ6IHN0cmluZztcbiAgb3duZXI6IFVzZXI7XG4gIG93bmVyS2V5OiBLZXk7XG4gIG93bmVyQ2lwaGVyRGF0YTogc3RyaW5nO1xuICByZWNlaXZlcjogVXNlcjtcbiAgcmVjZWl2ZXJLZXk6IEtleTtcbiAgcmVjZWl2ZXJDaXBoZXJEYXRhOiBzdHJpbmc7XG4gIHNoYXJlZEtleTogS2V5O1xuICBzaGFyZWRDaXBoZXJEYXRhOiBzdHJpbmc7XG4gIC8vIERlY3J5cHRlZFxuICBwbGFpbk93bmVyQ2lwaGVyRGF0YUpzb246IEpTT05PYmplY3Q7XG4gIHBsYWluUmVjZWl2ZXJDaXBoZXJEYXRhSnNvbjogSlNPTk9iamVjdDtcbiAgcGxhaW5TaGFyZWRDaXBoZXJEYXRhSnNvbjogSlNPTk9iamVjdDtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZENvbnRhY3RDYXJkU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGxyQXBvbGxvOiBMckFwb2xsb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlHcmFwaDogS2V5R3JhcGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW5jcnlwdGlvblNlcnZpY2U6IEVuY3J5cHRpb25TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBkZWNyeXB0U2hhcmVkVHJ1c3RlZFBhcnR5RGV0YWlscyhcbiAgICBjYzogU2hhcmVkQ29udGFjdENhcmRcbiAgKTogUHJvbWlzZTxTaGFyZWRUcnVzdGVkUGFydHlEZXRhaWxzPiB7XG4gICAgY29uc3QgZGV0YWlscyA9IGF3YWl0IHRoaXMuZGVjcnlwdFRydXN0ZWRQYXJ0eURldGFpbHMoY2MpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBjYy5pZCxcbiAgICAgIG93bmVkS2V5SWQ6IGNjLm93bmVyS2V5LmlkLFxuICAgICAgc2hhcmVkS2V5SWQ6IGNjLnNoYXJlZEtleS5pZCxcbiAgICAgIC4uLmRldGFpbHMsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGRlY3J5cHRUcnVzdGVkUGFydHlEZXRhaWxzKFxuICAgIGNjOiBTaGFyZWRDb250YWN0Q2FyZFxuICApOiBQcm9taXNlPFRydXN0ZWRQYXJ0eURldGFpbHM+IHtcbiAgICBpZiAoY2MgJiYgY2Muc2hhcmVkS2V5ICYmIGNjLnNoYXJlZENpcGhlckRhdGEpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICAgICAgYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRKd2tLZXkoY2Muc2hhcmVkS2V5LmlkKSxcbiAgICAgICAgICBjYy5zaGFyZWRDaXBoZXJEYXRhXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Nhbm5vdCBkZWNyeXB0IHRydXN0ZWQgcGFydHkgZGV0YWlscycsIGUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZU15U2hhcmVkQ29udGFjdENhcmQoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvd25lZEtleUlkOiBzdHJpbmcsXG4gICAgc2hhcmVkS2V5SWQ6IHN0cmluZyxcbiAgICBjb250YWN0Q2FyZDogVHJ1c3RlZFBhcnR5RGV0YWlsc1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvd25lcktleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KG93bmVkS2V5SWQpO1xuICAgIGNvbnN0IHNoYXJlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHNoYXJlZEtleUlkKTtcbiAgICBjb25zdCBzaWdQeGsgPSB0aGlzLmtleVNlcnZpY2UuY3VycmVudFNpZ1B4aztcblxuICAgIGNvbnN0IHNoYXJlZENpcGhlckRhdGEgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHQoXG4gICAgICBzaGFyZWRLZXkuandrLFxuICAgICAgY29udGFjdENhcmRcbiAgICApO1xuICAgIGNvbnN0IHNoYXJlZENpcGhlckRhdGFTaWcgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2Uuc2lnbihzaWdQeGsuandrLCBzaGFyZWRDaXBoZXJEYXRhKVxuICAgICk7XG5cbiAgICBjb25zdCBvd25lclBsYWluRGF0YSA9IHtcbiAgICAgIG5hbWU6IG5ldyBDb250YWN0Q2FyZE5hbWUoY29udGFjdENhcmQubmFtZSksXG4gICAgfTtcbiAgICBjb25zdCBvd25lclBsYWluRGF0YVNpZyA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5zaWduKHNpZ1B4ay5qd2ssIG93bmVyUGxhaW5EYXRhKVxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZTxVcGRhdGVPd25lZENvbnRhY3RDYXJkPih7XG4gICAgICBtdXRhdGlvbjogVXBkYXRlT3duZWRDb250YWN0Q2FyZCxcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIG93bmVyQ2lwaGVyRGF0YTogJycsXG4gICAgICAgICAgb3duZXJLZXlJZDogb3duZXJLZXkuaWQsXG4gICAgICAgICAgc2hhcmVkQ2lwaGVyRGF0YVNpZyxcbiAgICAgICAgICBzaGFyZWRLZXlJZDogc2hhcmVkS2V5LmlkLFxuICAgICAgICAgIHNpZ1B4a0lkOiBzaWdQeGsuaWQsXG4gICAgICAgICAgb3duZXJQbGFpbkRhdGFTaWcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,41 +0,0 @@
1
- import { gqlTyped } from '../_common/ast';
2
- export const UpdateOwnedContactCardMutation = gqlTyped `
3
- mutation UpdateOwnedContactCardMutation(
4
- $input: UpdateOwnedContactCardInput!
5
- ) {
6
- updateOwnedContactCard(input: $input) {
7
- ownedContactCard {
8
- id
9
- }
10
- }
11
- }`;
12
- export const UpdateReceivedContactCardMutation = gqlTyped `
13
- mutation UpdateReceivedContactCardMutation(
14
- $input: UpdateReceivedContactCardInput!
15
- ) {
16
- updateReceivedContactCard(input: $input) {
17
- receivedContactCard {
18
- id
19
- }
20
- }
21
- }`;
22
- export const GetOwnedContactCardKeyIdsQuery = gqlTyped `
23
- query GetOwnedContactCardKeyIdsQuery($id: LrRelayIdInput!) {
24
- ownedContactCard(id: $id) {
25
- sharedKey {
26
- id
27
- }
28
- ownerKey {
29
- id
30
- }
31
- }
32
- }`;
33
- export const GetReceivedContactCardKeyIdQuery = gqlTyped `
34
- query GetReceivedContactCardKeyIdQuery($id: LrRelayIdInput!) {
35
- receivedContactCard(id: $id) {
36
- receiverKey {
37
- id
38
- }
39
- }
40
- }`;
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWNvbnRhY3QtY2FyZDIuZ3FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NoYXJlZC1jb250YWN0LWNhcmQvc2hhcmVkLWNvbnRhY3QtY2FyZDIuZ3FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVMxQyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxRQUFRLENBQWdDOzs7Ozs7Ozs7RUFTcEYsQ0FBQztBQVNILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLFFBQVEsQ0FBbUM7Ozs7Ozs7OztFQVMxRixDQUFDO0FBWUgsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsUUFBUSxDQUFnQzs7Ozs7Ozs7OztFQVVwRixDQUFDO0FBU0gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsUUFBUSxDQUFrQzs7Ozs7OztFQU94RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUQgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgZ3FsVHlwZWQgfSBmcm9tICcuLi9fY29tbW9uL2FzdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlT3duZWRDb250YWN0Q2FyZE11dGF0aW9uIHtcbiAgdXBkYXRlT3duZWRDb250YWN0Q2FyZDoge1xuICAgIG93bmVkQ29udGFjdENhcmQ6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFVwZGF0ZU93bmVkQ29udGFjdENhcmRNdXRhdGlvbiA9IGdxbFR5cGVkPFVwZGF0ZU93bmVkQ29udGFjdENhcmRNdXRhdGlvbj5gXG5tdXRhdGlvbiBVcGRhdGVPd25lZENvbnRhY3RDYXJkTXV0YXRpb24oXG4gICRpbnB1dDogVXBkYXRlT3duZWRDb250YWN0Q2FyZElucHV0IVxuKSB7XG4gIHVwZGF0ZU93bmVkQ29udGFjdENhcmQoaW5wdXQ6ICRpbnB1dCkge1xuICAgIG93bmVkQ29udGFjdENhcmQge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVJlY2VpdmVkQ29udGFjdENhcmRNdXRhdGlvbiB7XG4gIHVwZGF0ZVJlY2VpdmVkQ29udGFjdENhcmQ6IHtcbiAgICByZWNlaXZlZENvbnRhY3RDYXJkOiB7XG4gICAgICBpZDogSUQ7XG4gICAgfTtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBVcGRhdGVSZWNlaXZlZENvbnRhY3RDYXJkTXV0YXRpb24gPSBncWxUeXBlZDxVcGRhdGVSZWNlaXZlZENvbnRhY3RDYXJkTXV0YXRpb24+YFxubXV0YXRpb24gVXBkYXRlUmVjZWl2ZWRDb250YWN0Q2FyZE11dGF0aW9uKFxuICAkaW5wdXQ6IFVwZGF0ZVJlY2VpdmVkQ29udGFjdENhcmRJbnB1dCFcbikge1xuICB1cGRhdGVSZWNlaXZlZENvbnRhY3RDYXJkKGlucHV0OiAkaW5wdXQpIHtcbiAgICByZWNlaXZlZENvbnRhY3RDYXJkIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59YDtcblxuZXhwb3J0IGludGVyZmFjZSBHZXRPd25lZENvbnRhY3RDYXJkS2V5SWRzUXVlcnkge1xuICBvd25lZENvbnRhY3RDYXJkOiB7XG4gICAgc2hhcmVkS2V5OiB7XG4gICAgICBpZDogSUQ7XG4gICAgfTtcbiAgICBvd25lcktleToge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgR2V0T3duZWRDb250YWN0Q2FyZEtleUlkc1F1ZXJ5ID0gZ3FsVHlwZWQ8R2V0T3duZWRDb250YWN0Q2FyZEtleUlkc1F1ZXJ5PmBcbnF1ZXJ5IEdldE93bmVkQ29udGFjdENhcmRLZXlJZHNRdWVyeSgkaWQ6IExyUmVsYXlJZElucHV0ISkge1xuICBvd25lZENvbnRhY3RDYXJkKGlkOiAkaWQpIHtcbiAgICBzaGFyZWRLZXkge1xuICAgICAgaWRcbiAgICB9XG4gICAgb3duZXJLZXkge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldFJlY2VpdmVkQ29udGFjdENhcmRLZXlJZFF1ZXJ5IHtcbiAgcmVjZWl2ZWRDb250YWN0Q2FyZDoge1xuICAgIHJlY2VpdmVyS2V5OiB7XG4gICAgICBpZDogSUQ7XG4gICAgfTtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBHZXRSZWNlaXZlZENvbnRhY3RDYXJkS2V5SWRRdWVyeSA9IGdxbFR5cGVkPEdldFJlY2VpdmVkQ29udGFjdENhcmRLZXlJZFF1ZXJ5PmBcbnF1ZXJ5IEdldFJlY2VpdmVkQ29udGFjdENhcmRLZXlJZFF1ZXJ5KCRpZDogTHJSZWxheUlkSW5wdXQhKSB7XG4gIHJlY2VpdmVkQ29udGFjdENhcmQoaWQ6ICRpZCkge1xuICAgIHJlY2VpdmVyS2V5IHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59YDtcbiJdfQ==
@@ -1,117 +0,0 @@
1
- import { __awaiter, __decorate } from "tslib";
2
- import { Injectable, NgZone } from '@angular/core';
3
- import { LrGraphQLService, LrMutation } from '../api/lr-graphql';
4
- import { EncryptionService } from '../encryption/encryption.service';
5
- import { KeyGraphService } from '../key/key-graph.service';
6
- import { KeyService } from '../key/key.service';
7
- import { RunOutsideAngular } from '../_common/run-outside-angular';
8
- import { GetOwnedContactCardKeyIdsQuery, GetReceivedContactCardKeyIdQuery, UpdateOwnedContactCardMutation, UpdateReceivedContactCardMutation, } from './shared-contact-card2.gql';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../key/key.service";
11
- import * as i2 from "../key/key-graph.service";
12
- import * as i3 from "../encryption/encryption.service";
13
- import * as i4 from "../api/lr-graphql/lr-graphql.service";
14
- let SharedContactCard2Service = class SharedContactCard2Service {
15
- constructor(ngZone, keyService, keyGraph, encryptionService, lrGraphQL) {
16
- this.ngZone = ngZone;
17
- this.keyService = keyService;
18
- this.keyGraph = keyGraph;
19
- this.encryptionService = encryptionService;
20
- this.lrGraphQL = lrGraphQL;
21
- }
22
- getOwnedContactCardKeyIds(id) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- const { ownedContactCard: cc } = yield this.lrGraphQL.query({
25
- query: GetOwnedContactCardKeyIdsQuery,
26
- variables: {
27
- id,
28
- },
29
- });
30
- return {
31
- sharedKeyId: cc.sharedKey.id,
32
- ownerKeyId: cc.ownerKey.id,
33
- };
34
- });
35
- }
36
- getReceivedContactCardKeyId(id) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- return (yield this.lrGraphQL.query({
39
- query: GetReceivedContactCardKeyIdQuery,
40
- variables: {
41
- id,
42
- },
43
- })).receivedContactCard.receiverKey.id;
44
- });
45
- }
46
- updateOwnedContactCard({ id, ownerKeyId, sharedKeyId, ownerPlainDataJson, ownerCipherDataClearJson, sharedCipherDataClearJson, }) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- let ownerKey;
49
- let sharedKey;
50
- try {
51
- ownerKey = yield this.keyGraph.getKey(ownerKeyId);
52
- sharedKey = yield this.keyGraph.getKey(sharedKeyId);
53
- }
54
- catch (error) {
55
- const keys = yield this.getOwnedContactCardKeyIds(id);
56
- // try again
57
- ownerKey = yield this.keyGraph.getKey(keys.ownerKeyId);
58
- sharedKey = yield this.keyGraph.getKey(keys.sharedKeyId);
59
- }
60
- const sigPxk = this.keyService.currentSigPxk;
61
- const sharedCipherData = yield this.encryptionService.encrypt(sharedKey.jwk, sharedCipherDataClearJson);
62
- const sharedCipherDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, sharedCipherData));
63
- const ownerPlainDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, ownerPlainDataJson));
64
- const ownerCipherData = yield this.encryptionService.encryptToString(ownerKey.jwk, ownerCipherDataClearJson);
65
- return new LrMutation({
66
- mutation: UpdateOwnedContactCardMutation,
67
- variables: {
68
- input: {
69
- id,
70
- ownerCipherData,
71
- ownerKeyId: ownerKey.id,
72
- sharedCipherDataSig,
73
- sharedKeyId: sharedKey.id,
74
- sigPxkId: sigPxk.id,
75
- ownerPlainDataSig,
76
- },
77
- },
78
- });
79
- });
80
- }
81
- updateReceivedContactCard({ id, receiverKeyId, receiverCipherDataClearJson, }) {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- const receiverKey = yield this.keyGraph.getKey(receiverKeyId, () => this.getReceivedContactCardKeyId(id));
84
- const receiverCipherData = yield this.encryptionService.encryptToString(receiverKey.jwk, receiverCipherDataClearJson);
85
- return new LrMutation({
86
- mutation: UpdateReceivedContactCardMutation,
87
- variables: {
88
- input: {
89
- id,
90
- receiverCipherData,
91
- receiverKeyId: receiverKey.id,
92
- },
93
- },
94
- });
95
- });
96
- }
97
- };
98
- SharedContactCard2Service.ɵprov = i0.ɵɵdefineInjectable({ factory: function SharedContactCard2Service_Factory() { return new SharedContactCard2Service(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.KeyService), i0.ɵɵinject(i2.KeyGraphService), i0.ɵɵinject(i3.EncryptionService), i0.ɵɵinject(i4.LrGraphQLService)); }, token: SharedContactCard2Service, providedIn: "root" });
99
- SharedContactCard2Service.decorators = [
100
- { type: Injectable, args: [{
101
- providedIn: 'root',
102
- },] }
103
- ];
104
- SharedContactCard2Service.ctorParameters = () => [
105
- { type: NgZone },
106
- { type: KeyService },
107
- { type: KeyGraphService },
108
- { type: EncryptionService },
109
- { type: LrGraphQLService }
110
- ];
111
- SharedContactCard2Service = __decorate([
112
- RunOutsideAngular({
113
- ngZoneName: 'ngZone',
114
- })
115
- ], SharedContactCard2Service);
116
- export { SharedContactCard2Service };
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWNvbnRhY3QtY2FyZDIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zaGFyZWQtY29udGFjdC1jYXJkL3NoYXJlZC1jb250YWN0LWNhcmQyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUtyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsZ0NBQWdDLEVBQ2hDLDhCQUE4QixFQUM5QixpQ0FBaUMsR0FDbEMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0lBb0J2Qix5QkFBeUIsU0FBekIseUJBQXlCO0lBQ3BDLFlBQ1UsTUFBYyxFQUNkLFVBQXNCLEVBQ3RCLFFBQXlCLEVBQ3pCLGlCQUFvQyxFQUNwQyxTQUEyQjtRQUozQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQ2xDLENBQUM7SUFFVSx5QkFBeUIsQ0FBQyxFQUFrQjs7WUFDeEQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FB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LENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FDakUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsQ0FBQyxDQUNyQyxDQUFDO1lBRUYsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQ3JFLFdBQVcsQ0FBQyxHQUFHLEVBQ2YsMkJBQTJCLENBQzVCLENBQUM7WUFFRixPQUFPLElBQUksVUFBVSxDQUFDO2dCQUNwQixRQUFRLEVBQUUsaUNBQWlDO2dCQUMzQyxTQUFTLEVBQUU7b0JBQ1QsS0FBSyxFQUFFO3dCQUNMLEVBQUU7d0JBQ0Ysa0JBQWtCO3dCQUNsQixhQUFhLEVBQUUsV0FBVyxDQUFDLEVBQUU7cUJBQzlCO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBdkhBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBcENvQixNQUFNO1lBU2xCLFVBQVU7WUFEVixlQUFlO1lBTGYsaUJBQWlCO1lBRmpCLGdCQUFnQjs7QUFvQ1oseUJBQXlCO0lBTnJDLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyx5QkFBeUIsQ0FvSHJDO1NBcEhZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTHJHcmFwaFFMU2VydmljZSwgTHJNdXRhdGlvbiB9IGZyb20gJy4uL2FwaS9sci1ncmFwaHFsJztcbmltcG9ydCB7IExyUmVsYXlJZElucHV0IH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZW5jcnlwdGlvbi9lbmNyeXB0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQ29udGFjdENhcmRSZWNlaXZlckNpcGhlckRhdGEsXG4gIFNlbmRDb250YWN0Q2FyZElucHV0LFxufSBmcm9tICcuLi9rZXktZXhjaGFuZ2Uva2V5LWV4Y2hhbmdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5IH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQge1xuICBHZXRPd25lZENvbnRhY3RDYXJkS2V5SWRzUXVlcnksXG4gIEdldFJlY2VpdmVkQ29udGFjdENhcmRLZXlJZFF1ZXJ5LFxuICBVcGRhdGVPd25lZENvbnRhY3RDYXJkTXV0YXRpb24sXG4gIFVwZGF0ZVJlY2VpdmVkQ29udGFjdENhcmRNdXRhdGlvbixcbn0gZnJvbSAnLi9zaGFyZWQtY29udGFjdC1jYXJkMi5ncWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZU93bmVkQ29udGFjdENhcmRJbnB1dCBleHRlbmRzIFNlbmRDb250YWN0Q2FyZElucHV0IHtcbiAgaWQ6IExyUmVsYXlJZElucHV0O1xuICBvd25lcktleUlkPzogTHJSZWxheUlkSW5wdXQ7XG4gIHNoYXJlZEtleUlkPzogTHJSZWxheUlkSW5wdXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUmVjZWl2ZWRDb250YWN0Q2FyZElucHV0XG4gIGV4dGVuZHMgQ29udGFjdENhcmRSZWNlaXZlckNpcGhlckRhdGEge1xuICBpZDogTHJSZWxheUlkSW5wdXQ7XG4gIHJlY2VpdmVyS2V5SWQ/OiBMclJlbGF5SWRJbnB1dDtcbn1cblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZENvbnRhY3RDYXJkMlNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsckdyYXBoUUw6IExyR3JhcGhRTFNlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0T3duZWRDb250YWN0Q2FyZEtleUlkcyhpZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICBjb25zdCB7IG93bmVkQ29udGFjdENhcmQ6IGNjIH0gPSBhd2FpdCB0aGlzLmxyR3JhcGhRTC5xdWVyeSh7XG4gICAgICBxdWVyeTogR2V0T3duZWRDb250YWN0Q2FyZEtleUlkc1F1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzaGFyZWRLZXlJZDogY2Muc2hhcmVkS2V5LmlkLFxuICAgICAgb3duZXJLZXlJZDogY2Mub3duZXJLZXkuaWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0UmVjZWl2ZWRDb250YWN0Q2FyZEtleUlkKGlkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBHZXRSZWNlaXZlZENvbnRhY3RDYXJkS2V5SWRRdWVyeSxcbiAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgaWQsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICkucmVjZWl2ZWRDb250YWN0Q2FyZC5yZWNlaXZlcktleS5pZDtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZU93bmVkQ29udGFjdENhcmQoe1xuICAgIGlkLFxuICAgIG93bmVyS2V5SWQsXG4gICAgc2hhcmVkS2V5SWQsXG4gICAgb3duZXJQbGFpbkRhdGFKc29uLFxuICAgIG93bmVyQ2lwaGVyRGF0YUNsZWFySnNvbixcbiAgICBzaGFyZWRDaXBoZXJEYXRhQ2xlYXJKc29uLFxuICB9OiBVcGRhdGVPd25lZENvbnRhY3RDYXJkSW5wdXQpIHtcbiAgICBsZXQgb3duZXJLZXk6IEtleTtcbiAgICBsZXQgc2hhcmVkS2V5OiBLZXk7XG5cbiAgICB0cnkge1xuICAgICAgb3duZXJLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleShvd25lcktleUlkKTtcbiAgICAgIHNoYXJlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHNoYXJlZEtleUlkKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3Qga2V5cyA9IGF3YWl0IHRoaXMuZ2V0T3duZWRDb250YWN0Q2FyZEtleUlkcyhpZCk7XG5cbiAgICAgIC8vIHRyeSBhZ2FpblxuICAgICAgb3duZXJLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleShrZXlzLm93bmVyS2V5SWQpO1xuICAgICAgc2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkoa2V5cy5zaGFyZWRLZXlJZCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2lnUHhrID0gdGhpcy5rZXlTZXJ2aWNlLmN1cnJlbnRTaWdQeGs7XG5cbiAgICBjb25zdCBzaGFyZWRDaXBoZXJEYXRhID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KFxuICAgICAgc2hhcmVkS2V5Lmp3ayxcbiAgICAgIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb25cbiAgICApO1xuICAgIGNvbnN0IHNoYXJlZENpcGhlckRhdGFTaWcgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2Uuc2lnbihzaWdQeGsuandrLCBzaGFyZWRDaXBoZXJEYXRhKVxuICAgICk7XG5cbiAgICBjb25zdCBvd25lclBsYWluRGF0YVNpZyA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5zaWduKHNpZ1B4ay5qd2ssIG93bmVyUGxhaW5EYXRhSnNvbilcbiAgICApO1xuXG4gICAgY29uc3Qgb3duZXJDaXBoZXJEYXRhID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBvd25lcktleS5qd2ssXG4gICAgICBvd25lckNpcGhlckRhdGFDbGVhckpzb25cbiAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVPd25lZENvbnRhY3RDYXJkTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBvd25lckNpcGhlckRhdGEsXG4gICAgICAgICAgb3duZXJLZXlJZDogb3duZXJLZXkuaWQsXG4gICAgICAgICAgc2hhcmVkQ2lwaGVyRGF0YVNpZyxcbiAgICAgICAgICBzaGFyZWRLZXlJZDogc2hhcmVkS2V5LmlkLFxuICAgICAgICAgIHNpZ1B4a0lkOiBzaWdQeGsuaWQsXG4gICAgICAgICAgb3duZXJQbGFpbkRhdGFTaWcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUmVjZWl2ZWRDb250YWN0Q2FyZCh7XG4gICAgaWQsXG4gICAgcmVjZWl2ZXJLZXlJZCxcbiAgICByZWNlaXZlckNpcGhlckRhdGFDbGVhckpzb24sXG4gIH06IFVwZGF0ZVJlY2VpdmVkQ29udGFjdENhcmRJbnB1dCkge1xuICAgIGNvbnN0IHJlY2VpdmVyS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkocmVjZWl2ZXJLZXlJZCwgKCkgPT5cbiAgICAgIHRoaXMuZ2V0UmVjZWl2ZWRDb250YWN0Q2FyZEtleUlkKGlkKVxuICAgICk7XG5cbiAgICBjb25zdCByZWNlaXZlckNpcGhlckRhdGEgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIHJlY2VpdmVyS2V5Lmp3ayxcbiAgICAgIHJlY2VpdmVyQ2lwaGVyRGF0YUNsZWFySnNvblxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZVJlY2VpdmVkQ29udGFjdENhcmRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHJlY2VpdmVyQ2lwaGVyRGF0YSxcbiAgICAgICAgICByZWNlaXZlcktleUlkOiByZWNlaXZlcktleS5pZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,167 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { Slip39, Slip39Helper } from 'slip39';
4
- import * as i0 from "@angular/core";
5
- export class SecretShare {
6
- constructor(assembly = 0, subAssembly = 0, mnemonics = '') {
7
- this.assembly = assembly;
8
- this.subAssembly = subAssembly;
9
- this.mnemonics = mnemonics;
10
- }
11
- }
12
- export class SubAssembly {
13
- constructor(index, threshold = 0, size = 0) {
14
- this.index = index;
15
- this.threshold = threshold;
16
- this.size = size;
17
- this.clearShares();
18
- }
19
- clearShares() {
20
- this.shares = [];
21
- }
22
- addShare(share) {
23
- this.shares.push(share);
24
- }
25
- }
26
- export class Assembly {
27
- constructor(threshold = 0) {
28
- this.threshold = threshold;
29
- this.clearSubAssemblies();
30
- }
31
- size() {
32
- return this.subAssemblies.length;
33
- }
34
- clearSubAssemblies() {
35
- this.subAssemblies = [];
36
- }
37
- addSubAssembly(subAssembly) {
38
- this.subAssemblies.push(subAssembly);
39
- }
40
- }
41
- export class SubQuorum {
42
- constructor(subAssemblyIndex) {
43
- this.subAssemblyIndex = subAssemblyIndex;
44
- this.clearShares();
45
- }
46
- clearShares() {
47
- this.shares = [];
48
- }
49
- addShare(share) {
50
- this.shares.push(share);
51
- }
52
- }
53
- export class Quorum {
54
- constructor() {
55
- this.clearSubQuora();
56
- }
57
- clearSubQuora() {
58
- this.subQuora = [];
59
- }
60
- addSubQuorum(subQuorum) {
61
- this.subQuora.push(subQuorum);
62
- }
63
- serialiseShares() {
64
- let shares = [];
65
- this.subQuora.forEach((subQuorum) => {
66
- shares = shares.concat(subQuorum.shares);
67
- });
68
- return shares;
69
- }
70
- }
71
- export class Slip39Service {
72
- generateShares(secret, passphrase, assembly) {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- // Hex-encode secret.
75
- let ems = btoa(secret);
76
- ems = Slip39Helper.slip39EncodeHex(ems);
77
- // Construct group specifications
78
- const groups = [];
79
- for (const sa of assembly.subAssemblies) {
80
- groups.push([sa.threshold, sa.size]);
81
- }
82
- // Split!
83
- const slip = yield Slip39.fromArray(ems, {
84
- passphrase,
85
- threshold: assembly.threshold,
86
- groups,
87
- title: '',
88
- });
89
- // Extract shares
90
- assembly.subAssemblies.forEach((sa, isa) => {
91
- // Remove any existing shares
92
- sa.clearShares();
93
- for (let im = 0; im < sa.size; im++) {
94
- // Construct the path to the share, formatted as "r/<subassembly index>/<member index>"
95
- // with <subassembly index> and <member index> being two-digit, zero-padded integers.
96
- const path = 'r/' +
97
- isa.toString().padStart(2, '0') +
98
- '/' +
99
- im.toString().padStart(2, '0');
100
- const mnemonics = slip.fromPath(path).mnemonics[0];
101
- const share = new SecretShare(isa, im, mnemonics);
102
- sa.addShare(share);
103
- }
104
- });
105
- });
106
- }
107
- // Remove all redundant shares. i.e. keep only enough members and groups to satisfy the thresholds.
108
- minimalSet(mnemonics) {
109
- // Decode the mnemonics and sort then into groups.
110
- let groupThresh = null;
111
- const groups = new Map();
112
- for (const mnemonic of mnemonics) {
113
- const decoded = Slip39Helper.decodeMnemonic(mnemonic);
114
- if (groupThresh && groupThresh !== decoded.groupThreshold) {
115
- throw new Error('groupThreshold is different in mnemonics');
116
- }
117
- groupThresh = decoded.groupThreshold;
118
- // Note that Slip39.recoverSecret() will do all the error checking again. So it's not critical
119
- // that we error check here. So we just optimistically assume it's all good.
120
- let g = groups.get(decoded.groupIndex);
121
- if (g == null) {
122
- g = {
123
- memberThreshold: decoded.memberThreshold,
124
- members: [],
125
- };
126
- groups.set(decoded.groupIndex, g);
127
- }
128
- g.members.push({
129
- mnemonic,
130
- decoded,
131
- });
132
- }
133
- // Keep the minimum set of groups that meet threshold.
134
- const mnemonicsMinSet = [];
135
- let groupCount = 0;
136
- for (const g of groups.values()) {
137
- // Keep only groups that meet threshold
138
- if (g.members.length < g.memberThreshold) {
139
- continue;
140
- }
141
- // Keep minimum number of approvals needed for group
142
- g.members.slice(0, g.memberThreshold).forEach((member) => {
143
- mnemonicsMinSet.push(member.mnemonic);
144
- });
145
- ++groupCount;
146
- if (groupCount >= groupThresh) {
147
- break;
148
- }
149
- }
150
- return mnemonicsMinSet;
151
- }
152
- recoverSecret(shares, passphrase) {
153
- return __awaiter(this, void 0, void 0, function* () {
154
- shares = this.minimalSet(shares);
155
- const recovered = yield Slip39.recoverSecret(shares, passphrase);
156
- const secret = Slip39Helper.slip39DecodeHex(recovered);
157
- return atob(secret);
158
- });
159
- }
160
- }
161
- Slip39Service.ɵprov = i0.ɵɵdefineInjectable({ factory: function Slip39Service_Factory() { return new Slip39Service(); }, token: Slip39Service, providedIn: "root" });
162
- Slip39Service.decorators = [
163
- { type: Injectable, args: [{
164
- providedIn: 'root',
165
- },] }
166
- ];
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpcDM5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc2xpcDM5L3NsaXAzOS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDOztBQUU5QyxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUNTLFdBQW1CLENBQUMsRUFDcEIsY0FBc0IsQ0FBQyxFQUN2QixZQUFvQixFQUFFO1FBRnRCLGFBQVEsR0FBUixRQUFRLENBQVk7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBYTtJQUM1QixDQUFDO0NBQ0w7QUFFRCxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUNTLEtBQWEsRUFDYixZQUFvQixDQUFDLEVBQ3JCLE9BQWUsQ0FBQztRQUZoQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRXZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBSU0sV0FBVztRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWtCO1FBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQW1CLFlBQW9CLENBQUM7UUFBckIsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQUN0QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBSU0sSUFBSTtRQUNULE9BQU8sSUFBSSxDQUFDLGFB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QUFzRDtRQUN0RCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQy9CLHVDQUF1QztZQUN2QyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUU7Z0JBQ3hDLFNBQVM7YUFDVjtZQUVELG9EQUFvRDtZQUNwRCxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUN2RCxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsVUFBVSxDQUFDO1lBQ2IsSUFBSSxVQUFVLElBQUksV0FBVyxFQUFFO2dCQUM3QixNQUFNO2FBQ1A7U0FDRjtRQUVELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFWSxhQUFhLENBQUMsTUFBZ0IsRUFBRSxVQUFrQjs7WUFDN0QsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFakMsTUFBTSxTQUFTLEdBQUcsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUVqRSxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXZELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLENBQUM7S0FBQTs7OztZQTNHRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTbGlwMzksIFNsaXAzOUhlbHBlciB9IGZyb20gJ3NsaXAzOSc7XG5cbmV4cG9ydCBjbGFzcyBTZWNyZXRTaGFyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhc3NlbWJseTogbnVtYmVyID0gMCxcbiAgICBwdWJsaWMgc3ViQXNzZW1ibHk6IG51bWJlciA9IDAsXG4gICAgcHVibGljIG1uZW1vbmljczogc3RyaW5nID0gJydcbiAgKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgU3ViQXNzZW1ibHkge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaW5kZXg6IG51bWJlcixcbiAgICBwdWJsaWMgdGhyZXNob2xkOiBudW1iZXIgPSAwLFxuICAgIHB1YmxpYyBzaXplOiBudW1iZXIgPSAwXG4gICkge1xuICAgIHRoaXMuY2xlYXJTaGFyZXMoKTtcbiAgfVxuXG4gIHNoYXJlczogU2VjcmV0U2hhcmVbXTtcblxuICBwdWJsaWMgY2xlYXJTaGFyZXMoKSB7XG4gICAgdGhpcy5zaGFyZXMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRTaGFyZShzaGFyZTogU2VjcmV0U2hhcmUpIHtcbiAgICB0aGlzLnNoYXJlcy5wdXNoKHNoYXJlKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXNzZW1ibHkge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGhyZXNob2xkOiBudW1iZXIgPSAwKSB7XG4gICAgdGhpcy5jbGVhclN1YkFzc2VtYmxpZXMoKTtcbiAgfVxuXG4gIHN1YkFzc2VtYmxpZXM6IFN1YkFzc2VtYmx5W107XG5cbiAgcHVibGljIHNpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViQXNzZW1ibGllcy5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTdWJBc3NlbWJsaWVzKCkge1xuICAgIHRoaXMuc3ViQXNzZW1ibGllcyA9IFtdO1xuICB9XG5cbiAgcHVibGljIGFkZFN1YkFzc2VtYmx5KHN1YkFzc2VtYmx5OiBTdWJBc3NlbWJseSkge1xuICAgIHRoaXMuc3ViQXNzZW1ibGllcy5wdXNoKHN1YkFzc2VtYmx5KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3ViUXVvcnVtIHtcbiAgc2hhcmVzOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc3ViQXNzZW1ibHlJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jbGVhclNoYXJlcygpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyU2hhcmVzKCkge1xuICAgIHRoaXMuc2hhcmVzID0gW107XG4gIH1cblxuICBwdWJsaWMgYWRkU2hhcmUoc2hhcmU6IHN0cmluZykge1xuICAgIHRoaXMuc2hhcmVzLnB1c2goc2hhcmUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBRdW9ydW0ge1xuICBzdWJRdW9yYTogU3ViUXVvcnVtW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5jbGVhclN1YlF1b3JhKCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTdWJRdW9yYSgpIHtcbiAgICB0aGlzLnN1YlF1b3JhID0gW107XG4gIH1cblxuICBwdWJsaWMgYWRkU3ViUXVvcnVtKHN1YlF1b3J1bTogU3ViUXVvcnVtKSB7XG4gICAgdGhpcy5zdWJRdW9yYS5wdXNoKHN1YlF1b3J1bSk7XG4gIH1cblxuICBwdWJsaWMgc2VyaWFsaXNlU2hhcmVzKCkge1xuICAgIGxldCBzaGFyZXMgPSBbXTtcblxuICAgIHRoaXMuc3ViUXVvcmEuZm9yRWFjaCgoc3ViUXVvcnVtKSA9PiB7XG4gICAgICBzaGFyZXMgPSBzaGFyZXMuY29uY2F0KHN1YlF1b3J1bS5zaGFyZXMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNoYXJlcztcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2xpcDM5U2VydmljZSB7XG4gIHB1YmxpYyBhc3luYyBnZW5lcmF0ZVNoYXJlcyhzZWNyZXQsIHBhc3NwaHJhc2U6IHN0cmluZywgYXNzZW1ibHk6IEFzc2VtYmx5KSB7XG4gICAgLy8gSGV4LWVuY29kZSBzZWNyZXQuXG4gICAgbGV0IGVtcyA9IGJ0b2Eoc2VjcmV0KTtcbiAgICBlbXMgPSBTbGlwMzlIZWxwZXIuc2xpcDM5RW5jb2RlSGV4KGVtcyk7XG5cbiAgICAvLyBDb25zdHJ1Y3QgZ3JvdXAgc3BlY2lmaWNhdGlvbnNcbiAgICBjb25zdCBncm91cHMgPSBbXTtcblxuICAgIGZvciAoY29uc3Qgc2Egb2YgYXNzZW1ibHkuc3ViQXNzZW1ibGllcykge1xuICAgICAgZ3JvdXBzLnB1c2goW3NhLnRocmVzaG9sZCwgc2Euc2l6ZV0pO1xuICAgIH1cblxuICAgIC8vIFNwbGl0IVxuICAgIGNvbnN0IHNsaXAgPSBhd2FpdCBTbGlwMzkuZnJvbUFycmF5KGVtcywge1xuICAgICAgcGFzc3BocmFzZSxcbiAgICAgIHRocmVzaG9sZDogYXNzZW1ibHkudGhyZXNob2xkLFxuICAgICAgZ3JvdXBzLFxuICAgICAgdGl0bGU6ICcnLFxuICAgIH0pO1xuXG4gICAgLy8gRXh0cmFjdCBzaGFyZXNcbiAgICBhc3NlbWJseS5zdWJBc3NlbWJsaWVzLmZvckVhY2goKHNhLCBpc2EpID0+IHtcbiAgICAgIC8vIFJlbW92ZSBhbnkgZXhpc3Rpbmcgc2hhcmVzXG4gICAgICBzYS5jbGVhclNoYXJlcygpO1xuXG4gICAgICBmb3IgKGxldCBpbSA9IDA7IGltIDwgc2Euc2l6ZTsgaW0rKykge1xuICAgICAgICAvLyBDb25zdHJ1Y3QgdGhlIHBhdGggdG8gdGhlIHNoYXJlLCBmb3JtYXR0ZWQgYXMgXCJyLzxzdWJhc3NlbWJseSBpbmRleD4vPG1lbWJlciBpbmRleD5cIlxuICAgICAgICAvLyB3aXRoIDxzdWJhc3NlbWJseSBpbmRleD4gYW5kIDxtZW1iZXIgaW5kZXg+IGJlaW5nIHR3by1kaWdpdCwgemVyby1wYWRkZWQgaW50ZWdlcnMuXG4gICAgICAgIGNvbnN0IHBhdGggPVxuICAgICAgICAgICdyLycgK1xuICAgICAgICAgIGlzYS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgK1xuICAgICAgICAgICcvJyArXG4gICAgICAgICAgaW0udG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgICAgICBjb25zdCBtbmVtb25pY3MgPSBzbGlwLmZyb21QYXRoKHBhdGgpLm1uZW1vbmljc1swXTtcbiAgICAgICAgY29uc3Qgc2hhcmUgPSBuZXcgU2VjcmV0U2hhcmUoaXNhLCBpbSwgbW5lbW9uaWNzKTtcblxuICAgICAgICBzYS5hZGRTaGFyZShzaGFyZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBSZW1vdmUgYWxsIHJlZHVuZGFudCBzaGFyZXMuIGkuZS4ga2VlcCBvbmx5IGVub3VnaCBtZW1iZXJzIGFuZCBncm91cHMgdG8gc2F0aXNmeSB0aGUgdGhyZXNob2xkcy5cbiAgcHJpdmF0ZSBtaW5pbWFsU2V0KG1uZW1vbmljczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgLy8gRGVjb2RlIHRoZSBtbmVtb25pY3MgYW5kIHNvcnQgdGhlbiBpbnRvIGdyb3Vwcy5cbiAgICBsZXQgZ3JvdXBUaHJlc2ggPSBudWxsO1xuICAgIGNvbnN0IGdyb3VwcyA9IG5ldyBNYXAoKTtcbiAgICBmb3IgKGNvbnN0IG1uZW1vbmljIG9mIG1uZW1vbmljcykge1xuICAgICAgY29uc3QgZGVjb2RlZCA9IFNsaXAzOUhlbHBlci5kZWNvZGVNbmVtb25pYyhtbmVtb25pYyk7XG5cbiAgICAgIGlmIChncm91cFRocmVzaCAmJiBncm91cFRocmVzaCAhPT0gZGVjb2RlZC5ncm91cFRocmVzaG9sZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2dyb3VwVGhyZXNob2xkIGlzIGRpZmZlcmVudCBpbiBtbmVtb25pY3MnKTtcbiAgICAgIH1cblxuICAgICAgZ3JvdXBUaHJlc2ggPSBkZWNvZGVkLmdyb3VwVGhyZXNob2xkO1xuXG4gICAgICAvLyBOb3RlIHRoYXQgU2xpcDM5LnJlY292ZXJTZWNyZXQoKSB3aWxsIGRvIGFsbCB0aGUgZXJyb3IgY2hlY2tpbmcgYWdhaW4uIFNvIGl0J3Mgbm90IGNyaXRpY2FsXG4gICAgICAvLyB0aGF0IHdlIGVycm9yIGNoZWNrIGhlcmUuIFNvIHdlIGp1c3Qgb3B0aW1pc3RpY2FsbHkgYXNzdW1lIGl0J3MgYWxsIGdvb2QuXG4gICAgICBsZXQgZyA9IGdyb3Vwcy5nZXQoZGVjb2RlZC5ncm91cEluZGV4KTtcbiAgICAgIGlmIChnID09IG51bGwpIHtcbiAgICAgICAgZyA9IHtcbiAgICAgICAgICBtZW1iZXJUaHJlc2hvbGQ6IGRlY29kZWQubWVtYmVyVGhyZXNob2xkLFxuICAgICAgICAgIG1lbWJlcnM6IFtdLFxuICAgICAgICB9O1xuICAgICAgICBncm91cHMuc2V0KGRlY29kZWQuZ3JvdXBJbmRleCwgZyk7XG4gICAgICB9XG5cbiAgICAgIGcubWVtYmVycy5wdXNoKHtcbiAgICAgICAgbW5lbW9uaWMsXG4gICAgICAgIGRlY29kZWQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBLZWVwIHRoZSBtaW5pbXVtIHNldCBvZiBncm91cHMgdGhhdCBtZWV0IHRocmVzaG9sZC5cbiAgICBjb25zdCBtbmVtb25pY3NNaW5TZXQgPSBbXTtcbiAgICBsZXQgZ3JvdXBDb3VudCA9IDA7XG4gICAgZm9yIChjb25zdCBnIG9mIGdyb3Vwcy52YWx1ZXMoKSkge1xuICAgICAgLy8gS2VlcCBvbmx5IGdyb3VwcyB0aGF0IG1lZXQgdGhyZXNob2xkXG4gICAgICBpZiAoZy5tZW1iZXJzLmxlbmd0aCA8IGcubWVtYmVyVGhyZXNob2xkKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBLZWVwIG1pbmltdW0gbnVtYmVyIG9mIGFwcHJvdmFscyBuZWVkZWQgZm9yIGdyb3VwXG4gICAgICBnLm1lbWJlcnMuc2xpY2UoMCwgZy5tZW1iZXJUaHJlc2hvbGQpLmZvckVhY2goKG1lbWJlcikgPT4ge1xuICAgICAgICBtbmVtb25pY3NNaW5TZXQucHVzaChtZW1iZXIubW5lbW9uaWMpO1xuICAgICAgfSk7XG5cbiAgICAgICsrZ3JvdXBDb3VudDtcbiAgICAgIGlmIChncm91cENvdW50ID49IGdyb3VwVGhyZXNoKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtbmVtb25pY3NNaW5TZXQ7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVjb3ZlclNlY3JldChzaGFyZXM6IHN0cmluZ1tdLCBwYXNzcGhyYXNlOiBzdHJpbmcpIHtcbiAgICBzaGFyZXMgPSB0aGlzLm1pbmltYWxTZXQoc2hhcmVzKTtcblxuICAgIGNvbnN0IHJlY292ZXJlZCA9IGF3YWl0IFNsaXAzOS5yZWNvdmVyU2VjcmV0KHNoYXJlcywgcGFzc3BocmFzZSk7XG5cbiAgICBjb25zdCBzZWNyZXQgPSBTbGlwMzlIZWxwZXIuc2xpcDM5RGVjb2RlSGV4KHJlY292ZXJlZCk7XG5cbiAgICByZXR1cm4gYXRvYihzZWNyZXQpO1xuICB9XG59XG4iXX0=