@lifeready/core 1.0.21 → 1.0.23

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 (277) hide show
  1. package/bundles/lifeready-core.umd.js +10612 -10527
  2. package/bundles/lifeready-core.umd.js.map +1 -1
  3. package/bundles/lifeready-core.umd.min.js +1 -15
  4. package/bundles/lifeready-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/ast.js +2 -1
  6. package/esm2015/lib/_common/deferred-promise.js +1 -1
  7. package/esm2015/lib/_common/exceptions.js +1 -1
  8. package/esm2015/lib/_common/queries.gql.js +1 -1
  9. package/esm2015/lib/_common/run-outside-angular.js +3 -2
  10. package/esm2015/lib/_common/types.js +2 -1
  11. package/esm2015/lib/_common/utils.js +2 -1
  12. package/esm2015/lib/api/lr-apollo.service.js +4 -3
  13. package/esm2015/lib/api/lr-graphql/index.js +1 -1
  14. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +9 -8
  15. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +5 -6
  16. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +1 -1
  17. package/esm2015/lib/api/lr-graphql/lr-mutation.js +3 -3
  18. package/esm2015/lib/api/lr-graphql/lr.service.js +1 -1
  19. package/esm2015/lib/api/query-processor/common-processors.service.js +4 -3
  20. package/esm2015/lib/api/query-processor/index.js +1 -1
  21. package/esm2015/lib/api/query-processor/query-processor.service.js +5 -4
  22. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +8 -7
  23. package/esm2015/lib/api/types/graphql.types.js +2 -1
  24. package/esm2015/lib/api/types/index.js +1 -1
  25. package/esm2015/lib/api/types/lr-graphql.types.js +1 -1
  26. package/esm2015/lib/auth/auth.config.js +1 -1
  27. package/esm2015/lib/auth/auth.gql.js +1 -28
  28. package/esm2015/lib/auth/auth.types.js +1 -1
  29. package/esm2015/lib/auth/life-ready-auth.service.js +36 -32
  30. package/esm2015/lib/category/category-meta.service.js +1 -1
  31. package/esm2015/lib/category/category.gql.js +3 -2
  32. package/esm2015/lib/category/category.service.js +9 -8
  33. package/esm2015/lib/category/category.types.js +1 -1
  34. package/esm2015/lib/contact-card/contact-card.gql.js +79 -0
  35. package/esm2015/lib/contact-card/contact-card.service.js +156 -0
  36. package/esm2015/lib/contact-card/contact-card2.gql.js +29 -0
  37. package/esm2015/lib/contact-card/contact-card2.service.js +103 -0
  38. package/esm2015/lib/encryption/encryption.service.js +190 -0
  39. package/esm2015/lib/file-upload/file-upload.service.js +74 -0
  40. package/esm2015/lib/file-upload/file-upload.types.js +2 -0
  41. package/esm2015/lib/idle/idle.service.js +168 -0
  42. package/esm2015/lib/idle/idle.types.js +7 -0
  43. package/esm2015/lib/item2/item2.gql.js +127 -0
  44. package/esm2015/lib/item2/item2.gql.private.js +23 -0
  45. package/esm2015/lib/item2/item2.service.js +519 -0
  46. package/esm2015/lib/item2/item2.types.js +2 -0
  47. package/esm2015/lib/key/key-factory.service.js +237 -0
  48. package/esm2015/lib/key/key-graph.service.js +300 -0
  49. package/esm2015/lib/key/key-meta.service.js +201 -0
  50. package/esm2015/lib/{cryptography → key}/key.service.js +4 -4
  51. package/esm2015/lib/key/key.types.js +11 -0
  52. package/esm2015/lib/key-exchange/key-exchange.gql.js +188 -0
  53. package/esm2015/lib/key-exchange/key-exchange.service.js +441 -0
  54. package/esm2015/lib/key-exchange/key-exchange.types.js +7 -0
  55. package/esm2015/lib/key-exchange/key-exchange2.gql.js +171 -0
  56. package/esm2015/lib/key-exchange/key-exchange2.service.js +500 -0
  57. package/esm2015/lib/lbop/lbop.service.js +357 -0
  58. package/esm2015/lib/life-ready.config.js +2 -1
  59. package/esm2015/lib/life-ready.module.js +2 -27
  60. package/esm2015/lib/lock/lock.gql.js +40 -0
  61. package/esm2015/lib/lock/lock.service.js +64 -0
  62. package/esm2015/lib/message/message.gql.js +32 -0
  63. package/esm2015/lib/message/message.service.js +118 -0
  64. package/esm2015/lib/message/message.types.js +2 -0
  65. package/esm2015/lib/notification/notification.gql.js +1 -1
  66. package/esm2015/lib/notification/notification.service.js +2 -2
  67. package/esm2015/lib/password/password.gql.js +28 -0
  68. package/esm2015/lib/password/password.service.js +316 -0
  69. package/esm2015/lib/persist/persist.service.js +181 -0
  70. package/esm2015/lib/plan/plan.gql.js +1 -1
  71. package/esm2015/lib/plan/plan.service.js +3 -2
  72. package/esm2015/lib/plan/plan.types.js +1 -1
  73. package/esm2015/lib/profile/profile-details.service.js +215 -0
  74. package/esm2015/lib/profile/profile.gql.js +98 -0
  75. package/esm2015/lib/profile/profile.service.js +170 -0
  76. package/esm2015/lib/profile/profile.types.js +34 -0
  77. package/esm2015/lib/record/record-attachment.service.js +16 -15
  78. package/esm2015/lib/record/record.gql.js +1 -1
  79. package/esm2015/lib/record/record.service.js +8 -8
  80. package/esm2015/lib/record/record.types.js +1 -1
  81. package/esm2015/lib/record-type/record-type.service.js +1 -1
  82. package/esm2015/lib/record-type/record-type.types.js +1 -1
  83. package/esm2015/lib/register/register.service.js +173 -0
  84. package/esm2015/lib/scenario/scenario.constants.js +1 -1
  85. package/esm2015/lib/scenario/scenario.controller.js +2 -2
  86. package/esm2015/lib/scenario/scenario.gql.js +1 -1
  87. package/esm2015/lib/scenario/scenario.private.gql.js +198 -0
  88. package/esm2015/lib/scenario/scenario.service.js +19 -17
  89. package/esm2015/lib/scenario/scenario.types.js +2 -1
  90. package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +119 -0
  91. package/esm2015/lib/shared-contact-card/shared-contact-card2.gql.js +41 -0
  92. package/esm2015/lib/shared-contact-card/shared-contact-card2.service.js +117 -0
  93. package/esm2015/lib/slip39/slip39.service.js +167 -0
  94. package/esm2015/lib/time/time.service.js +146 -0
  95. package/esm2015/lib/tp-assembly/tp-assembly.js +365 -0
  96. package/esm2015/lib/tp-assembly/tp-assembly.private.gql.js +22 -0
  97. package/esm2015/lib/tp-assembly/tp-assembly.types.js +2 -0
  98. package/esm2015/lib/tp-password-reset/tp-password-reset-request.service.js +100 -0
  99. package/esm2015/lib/tp-password-reset/tp-password-reset-user.service.js +118 -0
  100. package/esm2015/lib/tp-password-reset/tp-password-reset.constants.js +4 -0
  101. package/esm2015/lib/tp-password-reset/tp-password-reset.controller.js +34 -0
  102. package/esm2015/lib/tp-password-reset/tp-password-reset.gql.js +74 -0
  103. package/esm2015/lib/tp-password-reset/tp-password-reset.private.gql.js +165 -0
  104. package/esm2015/lib/tp-password-reset/tp-password-reset.private.service.js +54 -0
  105. package/esm2015/lib/tp-password-reset/tp-password-reset.service.js +92 -0
  106. package/esm2015/lib/tp-password-reset/tp-password-reset.types.js +2 -0
  107. package/esm2015/lib/trusted-party/trusted-party.gql.js +148 -0
  108. package/esm2015/lib/trusted-party/trusted-party.service.js +327 -0
  109. package/esm2015/lib/trusted-party/trusted-party.types.js +41 -0
  110. package/esm2015/lib/trusted-party/trusted-party2.gql.js +64 -0
  111. package/esm2015/lib/trusted-party/trusted-party2.gql.private.js +25 -0
  112. package/esm2015/lib/trusted-party/trusted-party2.service.js +224 -0
  113. package/esm2015/lib/trusted-party/trusted-party2.types.js +2 -0
  114. package/esm2015/lib/two-factor/two-factor.service.js +74 -0
  115. package/esm2015/lib/user/user.gql.js +60 -0
  116. package/esm2015/lib/user/user.service.js +80 -0
  117. package/esm2015/lib/user/user.types.js +2 -0
  118. package/esm2015/lib/web-crypto/web-crypto.service.js +29 -0
  119. package/esm2015/lifeready-core.js +15 -13
  120. package/esm2015/public-api.js +49 -51
  121. package/fesm2015/lifeready-core.js +8764 -8737
  122. package/fesm2015/lifeready-core.js.map +1 -1
  123. package/lib/_common/types.d.ts +3 -1
  124. package/lib/_common/utils.d.ts +2 -2
  125. package/lib/api/lr-apollo.service.d.ts +2 -2
  126. package/lib/api/lr-graphql/lr-graphql.service.d.ts +26 -8
  127. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +22 -4
  128. package/lib/api/lr-graphql/lr-mutation.d.ts +1 -2
  129. package/lib/api/query-processor/common-processors.service.d.ts +1 -1
  130. package/lib/api/query-processor/query-processor.service.d.ts +1 -1
  131. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +2 -2
  132. package/lib/api/types/lr-graphql.types.d.ts +14 -3
  133. package/lib/auth/auth.gql.d.ts +0 -3
  134. package/lib/auth/auth.types.d.ts +5 -5
  135. package/lib/auth/life-ready-auth.service.d.ts +13 -13
  136. package/lib/category/category.gql.d.ts +1 -1
  137. package/lib/category/category.service.d.ts +3 -3
  138. package/lib/{api → contact-card}/contact-card.service.d.ts +9 -9
  139. package/lib/contact-card/contact-card2.gql.d.ts +25 -0
  140. package/lib/contact-card/contact-card2.service.d.ts +64 -0
  141. package/lib/{cryptography → encryption}/encryption.service.d.ts +10 -9
  142. package/lib/{api/file.service.d.ts → file-upload/file-upload.service.d.ts} +5 -8
  143. package/lib/file-upload/file-upload.types.d.ts +5 -0
  144. package/lib/{auth → idle}/idle.service.d.ts +6 -6
  145. package/lib/{items2 → item2}/item2.gql.d.ts +16 -16
  146. package/lib/{items2 → item2}/item2.service.d.ts +34 -35
  147. package/lib/{cryptography → key}/key-factory.service.d.ts +4 -3
  148. package/lib/{cryptography → key}/key-graph.service.d.ts +6 -6
  149. package/lib/{cryptography → key}/key-meta.service.d.ts +1 -1
  150. package/lib/{cryptography → key}/key.service.d.ts +2 -2
  151. package/lib/{cryptography/cryptography.types.d.ts → key/key.types.d.ts} +13 -17
  152. package/lib/{api → key-exchange}/key-exchange.service.d.ts +5 -5
  153. package/lib/{api → key-exchange}/key-exchange.types.d.ts +4 -4
  154. package/lib/{api → key-exchange}/key-exchange2.gql.d.ts +1 -1
  155. package/lib/{api → key-exchange}/key-exchange2.service.d.ts +82 -29
  156. package/lib/{auth → lbop}/lbop.service.d.ts +7 -7
  157. package/lib/life-ready.config.d.ts +1 -1
  158. package/lib/{api → lock}/lock.gql.d.ts +1 -1
  159. package/lib/{api → lock}/lock.service.d.ts +1 -1
  160. package/lib/message/message.gql.d.ts +13 -0
  161. package/lib/message/message.service.d.ts +36 -0
  162. package/lib/message/message.types.d.ts +12 -0
  163. package/lib/notification/notification.service.d.ts +3 -2
  164. package/lib/password/password.gql.d.ts +3 -0
  165. package/lib/{auth → password}/password.service.d.ts +9 -9
  166. package/lib/{api → persist}/persist.service.d.ts +3 -3
  167. package/lib/plan/plan.service.d.ts +3 -2
  168. package/lib/plan/plan.types.d.ts +2 -1
  169. package/lib/{users → profile}/profile-details.service.d.ts +3 -3
  170. package/lib/{users → profile}/profile.gql.d.ts +2 -2
  171. package/lib/{users → profile}/profile.service.d.ts +6 -6
  172. package/lib/{users → profile}/profile.types.d.ts +3 -2
  173. package/lib/record/record-attachment.service.d.ts +6 -6
  174. package/lib/record/record.service.d.ts +3 -3
  175. package/lib/{auth → register}/register.service.d.ts +4 -4
  176. package/lib/scenario/scenario.controller.d.ts +1 -1
  177. package/lib/scenario/scenario.service.d.ts +105 -5
  178. package/lib/scenario/scenario.types.d.ts +1 -1
  179. package/lib/{api → shared-contact-card}/shared-contact-card.service.d.ts +9 -9
  180. package/lib/{api → shared-contact-card}/shared-contact-card2.gql.d.ts +1 -1
  181. package/lib/{api → shared-contact-card}/shared-contact-card2.service.d.ts +6 -6
  182. package/lib/{cryptography → slip39}/slip39.service.d.ts +0 -1
  183. package/lib/{trusted-parties → tp-assembly}/tp-assembly.d.ts +7 -7
  184. package/lib/{trusted-parties → tp-assembly}/tp-assembly.types.d.ts +3 -3
  185. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-request.service.d.ts +5 -9
  186. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-user.service.d.ts +7 -13
  187. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.controller.d.ts +1 -1
  188. package/lib/tp-password-reset/tp-password-reset.gql.d.ts +63 -0
  189. package/lib/{trusted-parties/tp-password-reset.gql.d.ts → tp-password-reset/tp-password-reset.private.gql.d.ts} +1 -63
  190. package/lib/tp-password-reset/tp-password-reset.private.service.d.ts +59 -0
  191. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.service.d.ts +6 -89
  192. package/lib/tp-password-reset/tp-password-reset.types.d.ts +40 -0
  193. package/lib/{trusted-parties → trusted-party}/trusted-party.service.d.ts +7 -7
  194. package/lib/{trusted-parties → trusted-party}/trusted-party.types.d.ts +2 -3
  195. package/lib/{trusted-parties → trusted-party}/trusted-party2.gql.d.ts +0 -22
  196. package/lib/trusted-party/trusted-party2.gql.private.d.ts +23 -0
  197. package/lib/{trusted-parties → trusted-party}/trusted-party2.service.d.ts +11 -35
  198. package/lib/trusted-party/trusted-party2.types.d.ts +12 -0
  199. package/lib/{users → user}/user.gql.d.ts +1 -1
  200. package/lib/{users → user}/user.service.d.ts +1 -1
  201. package/lib/{users → user}/user.types.d.ts +1 -1
  202. package/lifeready-core.d.ts +14 -12
  203. package/lifeready-core.metadata.json +1 -1
  204. package/package.json +2 -2
  205. package/public-api.d.ts +48 -50
  206. package/esm2015/lib/api/contact-card.gql.js +0 -79
  207. package/esm2015/lib/api/contact-card.service.js +0 -154
  208. package/esm2015/lib/api/contact-card2.gql.js +0 -60
  209. package/esm2015/lib/api/contact-card2.service.js +0 -103
  210. package/esm2015/lib/api/file.service.js +0 -74
  211. package/esm2015/lib/api/key-exchange.gql.js +0 -188
  212. package/esm2015/lib/api/key-exchange.service.js +0 -442
  213. package/esm2015/lib/api/key-exchange.types.js +0 -7
  214. package/esm2015/lib/api/key-exchange2.gql.js +0 -171
  215. package/esm2015/lib/api/key-exchange2.service.js +0 -480
  216. package/esm2015/lib/api/lock.gql.js +0 -40
  217. package/esm2015/lib/api/lock.service.js +0 -64
  218. package/esm2015/lib/api/message.service.js +0 -138
  219. package/esm2015/lib/api/persist.service.js +0 -181
  220. package/esm2015/lib/api/shared-contact-card.service.js +0 -119
  221. package/esm2015/lib/api/shared-contact-card2.gql.js +0 -41
  222. package/esm2015/lib/api/shared-contact-card2.service.js +0 -117
  223. package/esm2015/lib/api/time.service.js +0 -146
  224. package/esm2015/lib/auth/idle.service.js +0 -168
  225. package/esm2015/lib/auth/idle.types.js +0 -7
  226. package/esm2015/lib/auth/lbop.service.js +0 -355
  227. package/esm2015/lib/auth/password.service.js +0 -315
  228. package/esm2015/lib/auth/register.service.js +0 -172
  229. package/esm2015/lib/auth/two-factor.service.js +0 -74
  230. package/esm2015/lib/cryptography/cryptography.types.js +0 -11
  231. package/esm2015/lib/cryptography/encryption.service.js +0 -189
  232. package/esm2015/lib/cryptography/key-factory.service.js +0 -237
  233. package/esm2015/lib/cryptography/key-graph.service.js +0 -299
  234. package/esm2015/lib/cryptography/key-meta.service.js +0 -200
  235. package/esm2015/lib/cryptography/slip39.service.js +0 -169
  236. package/esm2015/lib/cryptography/web-crypto.service.js +0 -29
  237. package/esm2015/lib/items2/item2.gql.js +0 -127
  238. package/esm2015/lib/items2/item2.gql.private.js +0 -23
  239. package/esm2015/lib/items2/item2.service.js +0 -516
  240. package/esm2015/lib/items2/item2.types.js +0 -1
  241. package/esm2015/lib/scenario/scenario.gql.private.js +0 -198
  242. package/esm2015/lib/trusted-parties/tp-assembly.gql.private.js +0 -22
  243. package/esm2015/lib/trusted-parties/tp-assembly.js +0 -365
  244. package/esm2015/lib/trusted-parties/tp-assembly.types.js +0 -1
  245. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +0 -113
  246. package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +0 -129
  247. package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +0 -4
  248. package/esm2015/lib/trusted-parties/tp-password-reset.controller.js +0 -34
  249. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +0 -237
  250. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +0 -95
  251. package/esm2015/lib/trusted-parties/trusted-party.gql.js +0 -148
  252. package/esm2015/lib/trusted-parties/trusted-party.service.js +0 -326
  253. package/esm2015/lib/trusted-parties/trusted-party.types.js +0 -41
  254. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +0 -87
  255. package/esm2015/lib/trusted-parties/trusted-party2.service.js +0 -218
  256. package/esm2015/lib/users/profile-details.service.js +0 -214
  257. package/esm2015/lib/users/profile.gql.js +0 -97
  258. package/esm2015/lib/users/profile.service.js +0 -169
  259. package/esm2015/lib/users/profile.types.js +0 -34
  260. package/esm2015/lib/users/user.gql.js +0 -60
  261. package/esm2015/lib/users/user.service.js +0 -79
  262. package/esm2015/lib/users/user.types.js +0 -1
  263. package/lib/api/contact-card2.gql.d.ts +0 -34
  264. package/lib/api/contact-card2.service.d.ts +0 -50
  265. package/lib/api/message.service.d.ts +0 -59
  266. /package/lib/{api → contact-card}/contact-card.gql.d.ts +0 -0
  267. /package/lib/{auth → idle}/idle.types.d.ts +0 -0
  268. /package/lib/{items2 → item2}/item2.gql.private.d.ts +0 -0
  269. /package/lib/{items2 → item2}/item2.types.d.ts +0 -0
  270. /package/lib/{api → key-exchange}/key-exchange.gql.d.ts +0 -0
  271. /package/lib/scenario/{scenario.gql.private.d.ts → scenario.private.gql.d.ts} +0 -0
  272. /package/lib/{api → time}/time.service.d.ts +0 -0
  273. /package/lib/{trusted-parties/tp-assembly.gql.private.d.ts → tp-assembly/tp-assembly.private.gql.d.ts} +0 -0
  274. /package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.constants.d.ts +0 -0
  275. /package/lib/{trusted-parties → trusted-party}/trusted-party.gql.d.ts +0 -0
  276. /package/lib/{auth → two-factor}/two-factor.service.d.ts +0 -0
  277. /package/lib/{cryptography → web-crypto}/web-crypto.service.d.ts +0 -0
@@ -0,0 +1,92 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { Injectable, Injector, NgZone } from '@angular/core';
3
+ import { LrMutation, LrService } from '../api/lr-graphql';
4
+ import { RunOutsideAngular } from '../_common/run-outside-angular';
5
+ import { TP_PASSWORD_RESET_SLIP39_PASSPHRASE } from './tp-password-reset.constants';
6
+ import { TpPasswordResetAssemblyController } from './tp-password-reset.controller';
7
+ import { CancelTpPasswordResetRequestMutation, CreateTpPasswordResetMutation, DeleteTpPasswordResetMutation, UpdateTpPasswordResetMutation, } from './tp-password-reset.gql';
8
+ import { TpPasswordResetPrivateService } from './tp-password-reset.private.service';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "./tp-password-reset.private.service";
11
+ import * as i2 from "./tp-password-reset.controller";
12
+ let TpPasswordResetService = class TpPasswordResetService extends LrService {
13
+ constructor(ngZone, injector, privateService, assemblyController) {
14
+ super(injector);
15
+ this.ngZone = ngZone;
16
+ this.injector = injector;
17
+ this.privateService = privateService;
18
+ this.assemblyController = assemblyController;
19
+ this.slip39Passphrase = TP_PASSWORD_RESET_SLIP39_PASSPHRASE;
20
+ }
21
+ cancelResetRequest() {
22
+ return this.mutate(this.cancelResetRequestMutation());
23
+ }
24
+ cancelResetRequestMutation() {
25
+ return new LrMutation({
26
+ mutation: CancelTpPasswordResetRequestMutation,
27
+ });
28
+ }
29
+ deleteReset() {
30
+ return this.mutate(this.deleteResetMutation());
31
+ }
32
+ deleteResetMutation() {
33
+ return new LrMutation({
34
+ mutation: DeleteTpPasswordResetMutation,
35
+ });
36
+ }
37
+ validateApprovers(approvers) {
38
+ return this.assemblyController.validateApprovers(approvers);
39
+ }
40
+ createReset(input) {
41
+ return this.mutate(this.createResetMutation(input));
42
+ }
43
+ createResetMutation(input) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const { mutationInput } = yield this.assemblyController.prepareCreate(input);
46
+ return new LrMutation({
47
+ mutation: CreateTpPasswordResetMutation,
48
+ variables: {
49
+ input: {
50
+ assembly: Object.assign({}, mutationInput),
51
+ },
52
+ },
53
+ });
54
+ });
55
+ }
56
+ updateReset(input) {
57
+ return this.mutate(this.updateResetMutation(input));
58
+ }
59
+ updateResetMutation(input) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const passwordReset = yield this.privateService.getReset();
62
+ const { mutationInput } = yield this.assemblyController.prepareUpdate(input, passwordReset.assembly);
63
+ return new LrMutation({
64
+ mutation: UpdateTpPasswordResetMutation,
65
+ variables: {
66
+ input: {
67
+ assembly: Object.assign({}, mutationInput),
68
+ },
69
+ },
70
+ });
71
+ });
72
+ }
73
+ };
74
+ TpPasswordResetService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TpPasswordResetService_Factory() { return new TpPasswordResetService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.TpPasswordResetPrivateService), i0.ɵɵinject(i2.TpPasswordResetAssemblyController)); }, token: TpPasswordResetService, providedIn: "root" });
75
+ TpPasswordResetService.decorators = [
76
+ { type: Injectable, args: [{
77
+ providedIn: 'root',
78
+ },] }
79
+ ];
80
+ TpPasswordResetService.ctorParameters = () => [
81
+ { type: NgZone },
82
+ { type: Injector },
83
+ { type: TpPasswordResetPrivateService },
84
+ { type: TpPasswordResetAssemblyController }
85
+ ];
86
+ TpPasswordResetService = __decorate([
87
+ RunOutsideAngular({
88
+ ngZoneName: 'ngZone',
89
+ })
90
+ ], TpPasswordResetService);
91
+ export { TpPasswordResetService };
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi90cC1wYXNzd29yZC1yZXNldC90cC1wYXNzd29yZC1yZXNldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQU0xRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRixPQUFPLEVBQ0wsb0NBQW9DLEVBQ3BDLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IsNkJBQTZCLEdBQzlCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7SUFRdkUsc0JBQXNCLFNBQXRCLHNCQUF1QixTQUFRLFNBQVM7SUFHbkQsWUFDVSxNQUFjLEVBQ2QsUUFBa0IsRUFDbEIsY0FBNkMsRUFDN0Msa0JBQXFEO1FBRTdELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUxSLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUErQjtRQUM3Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1DO1FBTi9ELHFCQUFnQixHQUFHLG1DQUFtQyxDQUFDO0lBU3ZELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksVUFBVSxDQUFDO1lBQ3BCLFFBQVEsRUFBRSxvQ0FBb0M7U0FDL0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxVQUFVLENBQUM7WUFDcEIsUUFBUSxFQUFFLDZCQUE2QjtTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE0QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVLLG1CQUFtQixDQUFDLEtBQTRCOztZQUNwRCxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUNuRSxLQUFLLENBQ04sQ0FBQztZQUVGLE9BQU8sSUFBSSxVQUFVLENBQUM7Z0JBQ3BCLFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUU7d0JBQ0wsUUFBUSxvQkFDSCxhQUFhLENBQ2pCO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQsV0FBVyxDQUFDLEtBQTRCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUssbUJBQW1CLENBQUMsS0FBNEI7O1lBQ3BELE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUUzRCxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUNuRSxLQUFLLEVBQ0wsYUFBYSxDQUFDLFFBQVEsQ0FDdkIsQ0FBQztZQUVGLE9BQU8sSUFBSSxVQUFVLENBQUM7Z0JBQ3BCLFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUU7d0JBQ0wsUUFBUSxvQkFDSCxhQUFhLENBQ2pCO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBbkZBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBdkI4QixNQUFNO1lBQWhCLFFBQVE7WUFnQnBCLDZCQUE2QjtZQVA3QixpQ0FBaUM7O0FBZTdCLHNCQUFzQjtJQU5sQyxpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsc0JBQXNCLENBZ0ZsQztTQWhGWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMck11dGF0aW9uLCBMclNlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XG5pbXBvcnQgeyBUcE5vZGUgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHtcbiAgQ3JlYXRlVHBBc3NlbWJseUlucHV0LFxuICBVcGRhdGVUcEFzc2VtYmx5SW5wdXQsXG59IGZyb20gJy4uL3RwLWFzc2VtYmx5L3RwLWFzc2VtYmx5LnR5cGVzJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7IFRQX1BBU1NXT1JEX1JFU0VUX1NMSVAzOV9QQVNTUEhSQVNFIH0gZnJvbSAnLi90cC1wYXNzd29yZC1yZXNldC5jb25zdGFudHMnO1xuaW1wb3J0IHsgVHBQYXNzd29yZFJlc2V0QXNzZW1ibHlDb250cm9sbGVyIH0gZnJvbSAnLi90cC1wYXNzd29yZC1yZXNldC5jb250cm9sbGVyJztcbmltcG9ydCB7XG4gIENhbmNlbFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgQ3JlYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24sXG4gIERlbGV0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uLFxuICBVcGRhdGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvbixcbn0gZnJvbSAnLi90cC1wYXNzd29yZC1yZXNldC5ncWwnO1xuaW1wb3J0IHsgVHBQYXNzd29yZFJlc2V0UHJpdmF0ZVNlcnZpY2UgfSBmcm9tICcuL3RwLXBhc3N3b3JkLXJlc2V0LnByaXZhdGUuc2VydmljZSc7XG5cbkBSdW5PdXRzaWRlQW5ndWxhcih7XG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcFBhc3N3b3JkUmVzZXRTZXJ2aWNlIGV4dGVuZHMgTHJTZXJ2aWNlIHtcbiAgc2xpcDM5UGFzc3BocmFzZSA9IFRQX1BBU1NXT1JEX1JFU0VUX1NMSVAzOV9QQVNTUEhSQVNFO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBwcml2YXRlU2VydmljZTogVHBQYXNzd29yZFJlc2V0UHJpdmF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhc3NlbWJseUNvbnRyb2xsZXI6IFRwUGFzc3dvcmRSZXNldEFzc2VtYmx5Q29udHJvbGxlclxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gIH1cblxuICBjYW5jZWxSZXNldFJlcXVlc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY2FuY2VsUmVzZXRSZXF1ZXN0TXV0YXRpb24oKSk7XG4gIH1cblxuICBjYW5jZWxSZXNldFJlcXVlc3RNdXRhdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENhbmNlbFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZVJlc2V0KCkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmRlbGV0ZVJlc2V0TXV0YXRpb24oKSk7XG4gIH1cblxuICBkZWxldGVSZXNldE11dGF0aW9uKCkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24sXG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZUFwcHJvdmVycyhhcHByb3ZlcnM6IFRwTm9kZVtdKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuYXNzZW1ibHlDb250cm9sbGVyLnZhbGlkYXRlQXBwcm92ZXJzKGFwcHJvdmVycyk7XG4gIH1cblxuICBjcmVhdGVSZXNldChpbnB1dDogQ3JlYXRlVHBBc3NlbWJseUlucHV0KSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY3JlYXRlUmVzZXRNdXRhdGlvbihpbnB1dCkpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUmVzZXRNdXRhdGlvbihpbnB1dDogQ3JlYXRlVHBBc3NlbWJseUlucHV0KSB7XG4gICAgY29uc3QgeyBtdXRhdGlvbklucHV0IH0gPSBhd2FpdCB0aGlzLmFzc2VtYmx5Q29udHJvbGxlci5wcmVwYXJlQ3JlYXRlKFxuICAgICAgaW5wdXRcbiAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGFzc2VtYmx5OiB7XG4gICAgICAgICAgICAuLi5tdXRhdGlvbklucHV0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlUmVzZXQoaW5wdXQ6IFVwZGF0ZVRwQXNzZW1ibHlJbnB1dCkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVwZGF0ZVJlc2V0TXV0YXRpb24oaW5wdXQpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVJlc2V0TXV0YXRpb24oaW5wdXQ6IFVwZGF0ZVRwQXNzZW1ibHlJbnB1dCkge1xuICAgIGNvbnN0IHBhc3N3b3JkUmVzZXQgPSBhd2FpdCB0aGlzLnByaXZhdGVTZXJ2aWNlLmdldFJlc2V0KCk7XG5cbiAgICBjb25zdCB7IG11dGF0aW9uSW5wdXQgfSA9IGF3YWl0IHRoaXMuYXNzZW1ibHlDb250cm9sbGVyLnByZXBhcmVVcGRhdGUoXG4gICAgICBpbnB1dCxcbiAgICAgIHBhc3N3b3JkUmVzZXQuYXNzZW1ibHlcbiAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGFzc2VtYmx5OiB7XG4gICAgICAgICAgICAuLi5tdXRhdGlvbklucHV0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvdHAtcGFzc3dvcmQtcmVzZXQvdHAtcGFzc3dvcmQtcmVzZXQudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTT05PYmplY3QgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgS2V5IH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBBc3NlbWJseUFwcHJvdmVycyB7XG4gIGlkOiBzdHJpbmc7XG4gIHRwOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfTtcbiAgc2hhcmVkS2V5OiBLZXk7XG4gIHNoYXJlZENpcGhlckRhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb24/OiBKU09OT2JqZWN0O1xuICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGE/OiBzdHJpbmc7XG4gIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YUNsZWFySnNvbj86IEpTT05PYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBTdWJBc3NlbWJseSB7XG4gIGlkOiBzdHJpbmc7XG4gIHNpbmdsZVJlamVjdDogYm9vbGVhbjtcbiAgcXVvcnVtOiBudW1iZXI7XG4gIHN1YmplY3RDaXBoZXJEYXRhOiBzdHJpbmc7XG4gIHBsYWluU3ViamVjdENpcGhlckRhdGE6IEpTT05PYmplY3Q7XG4gIGFwcHJvdmVyczogVHBBc3NlbWJseUFwcHJvdmVyc1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwQXNzZW1ibHkge1xuICBzaW5nbGVSZWplY3Q6IGJvb2xlYW47XG4gIHF1b3J1bTogbnVtYmVyO1xuICBzdWJqZWN0S2V5OiBLZXk7XG4gIGFzc2VtYmx5S2V5OiBLZXk7XG4gIGFzc2VtYmx5Q2lwaGVyRGF0YTogc3RyaW5nO1xuICBwbGFpbkFzc2VtYmx5Q2lwaGVyRGF0YTogSlNPTk9iamVjdDtcbiAgc3ViQXNzZW1ibGllczogVHBTdWJBc3NlbWJseVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRwUGFzc3dvcmRSZXNldCB7XG4gIGlkOiBzdHJpbmc7XG4gIGFzc2VtYmx5OiBUcEFzc2VtYmx5O1xuICBhcHBsaWVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RSZXNldFJlc3VsdCB7XG4gIGlkOiBzdHJpbmc7XG4gIGFzc29jaWF0ZV9yZXNldF91c2VyX3Rva2VuOiBzdHJpbmc7XG4gIHJlc2V0X3VzZXJuYW1lOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,148 @@
1
+ import gql from 'graphql-tag';
2
+ import { SharedContactCardFields } from '../shared-contact-card/shared-contact-card.service';
3
+ import { KeyExchangeFields, UserSharedKeyFields, } from '../key-exchange/key-exchange.gql';
4
+ import { KeyGraphField } from '../_common/queries.gql';
5
+ export const TrustedPartyProperties = `
6
+ id
7
+ user {
8
+ id
9
+ username
10
+ }
11
+ other{
12
+ id
13
+ username,
14
+ features {
15
+ shareVault
16
+ }
17
+ }
18
+ sharedContactCard {
19
+ ${SharedContactCardFields}
20
+ }
21
+ myContactCard {
22
+ ${SharedContactCardFields}
23
+ }
24
+ sharedScenarios {
25
+ edges {
26
+ node {
27
+ id
28
+ }
29
+ }
30
+ }
31
+ sharedItems {
32
+ directories {
33
+ edges {
34
+ node {
35
+ id
36
+ }
37
+ }
38
+ }
39
+ }
40
+ currentUserSharedKey {
41
+ userSharedKey {
42
+ keyExchange {
43
+ ${KeyExchangeFields}
44
+ }
45
+ ${UserSharedKeyFields}
46
+ }
47
+ }`;
48
+ export const GetTrustedPartiesQuery = gql `
49
+ query GetTrustedPartiesQuery {
50
+ tps {
51
+ edges {
52
+ node {
53
+ ${TrustedPartyProperties}
54
+ }
55
+ }
56
+ }
57
+ ${KeyGraphField}
58
+ }`;
59
+ export const GetAllTrustedPartiesQuery = gql `
60
+ query GetAllTrustedPartiesQuery($userId: ID, $isExpired: Boolean, $inviteState: String, $sentInviteState: String) {
61
+ tps {
62
+ edges {
63
+ node {
64
+ ${TrustedPartyProperties}
65
+ }
66
+ }
67
+ }
68
+ invites: keyExchanges(
69
+ responder: $userId
70
+ isExpired: $isExpired
71
+ state: $inviteState
72
+ orderBy: "state,-created"
73
+ ) {
74
+ edges {
75
+ node {
76
+ ${KeyExchangeFields}
77
+ }
78
+ }
79
+ }
80
+ sentInvites: keyExchanges(
81
+ initiator: $userId
82
+ isExpired: $isExpired
83
+ state: $sentInviteState
84
+ orderBy: "state,-created"
85
+ ) {
86
+ edges {
87
+ node {
88
+ ${KeyExchangeFields}
89
+ }
90
+ }
91
+ }
92
+ ${KeyGraphField}
93
+ }`;
94
+ export const GetTrustedPartyQuery = gql `
95
+ query GetTrustedPartyQuery($partyId: LrRelayIdInput!) {
96
+ tp(id: $partyId) {
97
+ ${TrustedPartyProperties}
98
+ }
99
+ ${KeyGraphField}
100
+ }`;
101
+ export const DeclineTrustedPartyInvitationMutation = gql `
102
+ mutation DeclineKeyExchange($input: DeclineKeyExchangeInput!) {
103
+ declineKeyExchange(input: $input) {
104
+ keyExchange {
105
+ id
106
+ }
107
+ }
108
+ }
109
+ `;
110
+ export const CancelTrustedPartyInvitationMutation = gql `
111
+ mutation CancelKeyExchange($input: CancelKeyExchangeInput!) {
112
+ cancelKeyExchange(input: $input) {
113
+ keyExchange {
114
+ id
115
+ }
116
+ }
117
+ }
118
+ `;
119
+ export const DeleteTrustedPartyMutation = gql `
120
+ mutation DeleteTpMutation($input: DeleteTpInput!) {
121
+ deleteTp(input: $input) {
122
+ id
123
+ }
124
+ }
125
+ `;
126
+ export const ShareCategoryMutation = gql `
127
+ mutation ShareDirectory($input: ShareDirectoryInput!) {
128
+ shareDirectory(input: $input) {
129
+ tpDirectory {
130
+ item {
131
+ plainMeta
132
+ }
133
+ }
134
+ }
135
+ }
136
+ `;
137
+ export const UnshareCategoryMutation = gql `
138
+ mutation UnshareDirectory($input: UnshareDirectoryInput!) {
139
+ unshareDirectory(input: $input) {
140
+ tpDirectory {
141
+ item {
142
+ plainMeta
143
+ }
144
+ }
145
+ }
146
+ }
147
+ `;
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS5ncWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvdHJ1c3RlZC1wYXJ0eS90cnVzdGVkLXBhcnR5LmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDOUIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDN0YsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsR0FDcEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7Ozs7Ozs7Ozs7Ozs7O01BY2hDLHVCQUF1Qjs7O01BR3ZCLHVCQUF1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1VBcUJuQixpQkFBaUI7O1FBRW5CLG1CQUFtQjs7SUFFdkIsQ0FBQztBQUVMLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQTs7Ozs7VUFLL0Isc0JBQXNCOzs7O0lBSTVCLGFBQWE7RUFDZixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFBOzs7OztVQUtsQyxzQkFBc0I7Ozs7Ozs7Ozs7OztVQVl0QixpQkFBaUI7Ozs7Ozs7Ozs7OztVQVlqQixpQkFBaUI7Ozs7SUFJdkIsYUFBYTtFQUNmLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUE7OztNQUdqQyxzQkFBc0I7O0lBRXhCLGFBQWE7RUFDZixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztDQVF2RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztDQVF0RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Q0FNNUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7OztDQVV2QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O0NBVXpDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ3FsIGZyb20gJ2dyYXBocWwtdGFnJztcbmltcG9ydCB7IFNoYXJlZENvbnRhY3RDYXJkRmllbGRzIH0gZnJvbSAnLi4vc2hhcmVkLWNvbnRhY3QtY2FyZC9zaGFyZWQtY29udGFjdC1jYXJkLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgS2V5RXhjaGFuZ2VGaWVsZHMsXG4gIFVzZXJTaGFyZWRLZXlGaWVsZHMsXG59IGZyb20gJy4uL2tleS1leGNoYW5nZS9rZXktZXhjaGFuZ2UuZ3FsJztcbmltcG9ydCB7IEtleUdyYXBoRmllbGQgfSBmcm9tICcuLi9fY29tbW9uL3F1ZXJpZXMuZ3FsJztcblxuZXhwb3J0IGNvbnN0IFRydXN0ZWRQYXJ0eVByb3BlcnRpZXMgPSBgXG4gIGlkXG4gIHVzZXIge1xuICAgIGlkXG4gICAgdXNlcm5hbWVcbiAgfVxuICBvdGhlcntcbiAgICBpZFxuICAgIHVzZXJuYW1lLFxuICAgIGZlYXR1cmVzIHtcbiAgICAgIHNoYXJlVmF1bHRcbiAgICB9XG4gIH1cbiAgc2hhcmVkQ29udGFjdENhcmQge1xuICAgICR7U2hhcmVkQ29udGFjdENhcmRGaWVsZHN9XG4gIH1cbiAgbXlDb250YWN0Q2FyZCB7XG4gICAgJHtTaGFyZWRDb250YWN0Q2FyZEZpZWxkc31cbiAgfVxuICBzaGFyZWRTY2VuYXJpb3Mge1xuICAgIGVkZ2VzIHtcbiAgICAgIG5vZGUge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgIH1cbiAgfVxuICBzaGFyZWRJdGVtcyB7XG4gICAgZGlyZWN0b3JpZXMge1xuICAgICAgZWRnZXMge1xuICAgICAgICBub2RlIHtcbiAgICAgICAgICBpZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGN1cnJlbnRVc2VyU2hhcmVkS2V5IHtcbiAgICB1c2VyU2hhcmVkS2V5IHtcbiAgICAgIGtleUV4Y2hhbmdlIHtcbiAgICAgICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cbiAgICAgIH1cbiAgICAgICR7VXNlclNoYXJlZEtleUZpZWxkc31cbiAgICB9XG4gIH1gO1xuXG5leHBvcnQgY29uc3QgR2V0VHJ1c3RlZFBhcnRpZXNRdWVyeSA9IGdxbGBcbnF1ZXJ5IEdldFRydXN0ZWRQYXJ0aWVzUXVlcnkge1xuICB0cHMge1xuICAgIGVkZ2VzIHtcbiAgICAgIG5vZGUge1xuICAgICAgICAke1RydXN0ZWRQYXJ0eVByb3BlcnRpZXN9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICR7S2V5R3JhcGhGaWVsZH1cbn1gO1xuXG5leHBvcnQgY29uc3QgR2V0QWxsVHJ1c3RlZFBhcnRpZXNRdWVyeSA9IGdxbGBcbnF1ZXJ5IEdldEFsbFRydXN0ZWRQYXJ0aWVzUXVlcnkoJHVzZXJJZDogSUQsICRpc0V4cGlyZWQ6IEJvb2xlYW4sICRpbnZpdGVTdGF0ZTogU3RyaW5nLCAkc2VudEludml0ZVN0YXRlOiBTdHJpbmcpIHtcbiAgdHBzIHtcbiAgICBlZGdlcyB7XG4gICAgICBub2RlIHtcbiAgICAgICAgJHtUcnVzdGVkUGFydHlQcm9wZXJ0aWVzfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpbnZpdGVzOiBrZXlFeGNoYW5nZXMoXG4gICAgcmVzcG9uZGVyOiAkdXNlcklkXG4gICAgaXNFeHBpcmVkOiAkaXNFeHBpcmVkXG4gICAgc3RhdGU6ICRpbnZpdGVTdGF0ZVxuICAgIG9yZGVyQnk6IFwic3RhdGUsLWNyZWF0ZWRcIlxuICApIHtcbiAgICBlZGdlcyB7XG4gICAgICBub2RlIHtcbiAgICAgICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgc2VudEludml0ZXM6IGtleUV4Y2hhbmdlcyhcbiAgICBpbml0aWF0b3I6ICR1c2VySWRcbiAgICBpc0V4cGlyZWQ6ICRpc0V4cGlyZWRcbiAgICBzdGF0ZTogJHNlbnRJbnZpdGVTdGF0ZVxuICAgIG9yZGVyQnk6IFwic3RhdGUsLWNyZWF0ZWRcIlxuICApIHtcbiAgICBlZGdlcyB7XG4gICAgICBub2RlIHtcbiAgICAgICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJHtLZXlHcmFwaEZpZWxkfVxufWA7XG5cbmV4cG9ydCBjb25zdCBHZXRUcnVzdGVkUGFydHlRdWVyeSA9IGdxbGBcbnF1ZXJ5IEdldFRydXN0ZWRQYXJ0eVF1ZXJ5KCRwYXJ0eUlkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAgdHAoaWQ6ICRwYXJ0eUlkKSB7XG4gICAgJHtUcnVzdGVkUGFydHlQcm9wZXJ0aWVzfVxuICB9XG4gICR7S2V5R3JhcGhGaWVsZH1cbn1gO1xuXG5leHBvcnQgY29uc3QgRGVjbGluZVRydXN0ZWRQYXJ0eUludml0YXRpb25NdXRhdGlvbiA9IGdxbGBcbiAgbXV0YXRpb24gRGVjbGluZUtleUV4Y2hhbmdlKCRpbnB1dDogRGVjbGluZUtleUV4Y2hhbmdlSW5wdXQhKSB7XG4gICAgZGVjbGluZUtleUV4Y2hhbmdlKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIGtleUV4Y2hhbmdlIHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBDYW5jZWxUcnVzdGVkUGFydHlJbnZpdGF0aW9uTXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIENhbmNlbEtleUV4Y2hhbmdlKCRpbnB1dDogQ2FuY2VsS2V5RXhjaGFuZ2VJbnB1dCEpIHtcbiAgICBjYW5jZWxLZXlFeGNoYW5nZShpbnB1dDogJGlucHV0KSB7XG4gICAgICBrZXlFeGNoYW5nZSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlVHJ1c3RlZFBhcnR5TXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIERlbGV0ZVRwTXV0YXRpb24oJGlucHV0OiBEZWxldGVUcElucHV0ISkge1xuICAgIGRlbGV0ZVRwKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgU2hhcmVDYXRlZ29yeU11dGF0aW9uID0gZ3FsYFxuICBtdXRhdGlvbiBTaGFyZURpcmVjdG9yeSgkaW5wdXQ6IFNoYXJlRGlyZWN0b3J5SW5wdXQhKSB7XG4gICAgc2hhcmVEaXJlY3RvcnkoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgdHBEaXJlY3Rvcnkge1xuICAgICAgICBpdGVtIHtcbiAgICAgICAgICBwbGFpbk1ldGFcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFVuc2hhcmVDYXRlZ29yeU11dGF0aW9uID0gZ3FsYFxuICBtdXRhdGlvbiBVbnNoYXJlRGlyZWN0b3J5KCRpbnB1dDogVW5zaGFyZURpcmVjdG9yeUlucHV0ISkge1xuICAgIHVuc2hhcmVEaXJlY3RvcnkoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgdHBEaXJlY3Rvcnkge1xuICAgICAgICBpdGVtIHtcbiAgICAgICAgICBwbGFpbk1ldGFcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcbiJdfQ==
@@ -0,0 +1,327 @@
1
+ import { __awaiter } from "tslib";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { HttpClient } from '@angular/common/http';
4
+ import { Injectable } from '@angular/core';
5
+ import { LrApolloService } from '../api/lr-apollo.service';
6
+ import { LifeReadyAuthService } from '../auth/life-ready-auth.service';
7
+ import { EncryptionService } from '../encryption/encryption.service';
8
+ import { KeyExchangeService } from '../key-exchange/key-exchange.service';
9
+ import { KeyFactoryService } from '../key/key-factory.service';
10
+ import { KeyGraphService } from '../key/key-graph.service';
11
+ import { KeyService } from '../key/key.service';
12
+ import { ContactCardName } from '../profile/profile.types';
13
+ import { SharedContactCardService } from '../shared-contact-card/shared-contact-card.service';
14
+ import { UserService } from '../user/user.service';
15
+ import { CancelTrustedPartyInvitationMutation, DeclineTrustedPartyInvitationMutation, DeleteTrustedPartyMutation, GetAllTrustedPartiesQuery, GetTrustedPartiesQuery, GetTrustedPartyQuery, ShareCategoryMutation, UnshareCategoryMutation, } from './trusted-party.gql';
16
+ import { TrustedPartyInviteStatus, TrustedPartyRoleType, TrustedPartyType, } from './trusted-party.types';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "@angular/common/http";
19
+ import * as i2 from "../api/lr-apollo.service";
20
+ import * as i3 from "../shared-contact-card/shared-contact-card.service";
21
+ import * as i4 from "../user/user.service";
22
+ import * as i5 from "../auth/life-ready-auth.service";
23
+ import * as i6 from "../key-exchange/key-exchange.service";
24
+ import * as i7 from "../key/key-graph.service";
25
+ import * as i8 from "../key/key.service";
26
+ import * as i9 from "../key/key-factory.service";
27
+ import * as i10 from "../encryption/encryption.service";
28
+ export class TrustedPartyService {
29
+ constructor(http, lrApollo, sharedContactCardService, userService, authService, keyExchangeService, keyGraphService, keyService, keyFactory, encryptionService) {
30
+ this.http = http;
31
+ this.lrApollo = lrApollo;
32
+ this.sharedContactCardService = sharedContactCardService;
33
+ this.userService = userService;
34
+ this.authService = authService;
35
+ this.keyExchangeService = keyExchangeService;
36
+ this.keyGraphService = keyGraphService;
37
+ this.keyService = keyService;
38
+ this.keyFactory = keyFactory;
39
+ this.encryptionService = encryptionService;
40
+ }
41
+ getTrustedParties() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ const { tps } = yield this.lrApollo.query({
44
+ query: GetTrustedPartiesQuery,
45
+ });
46
+ return yield Promise.all(tps.edges.map((x) => this.mapTrustedParty(x.node)));
47
+ });
48
+ }
49
+ getAllTrustedParties() {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const user = yield this.authService.getUser();
52
+ const { tps, invites, sentInvites } = yield this.lrApollo.query({
53
+ query: GetAllTrustedPartiesQuery,
54
+ variables: {
55
+ userId: user.id,
56
+ isExpired: false,
57
+ },
58
+ });
59
+ return {
60
+ parties: (yield Promise.all(tps.edges.map((x) => this.mapTrustedParty(x.node)))).filter((x) => x),
61
+ invites: (yield Promise.all(invites.edges.map((x) => __awaiter(this, void 0, void 0, function* () {
62
+ return this.mapInvite(yield this.keyExchangeService.decryptKeyExchange(x.node));
63
+ }))))
64
+ .filter((x) => x.status !== TrustedPartyInviteStatus.Completed)
65
+ .filter((x) => x.status !== TrustedPartyInviteStatus.Invited || x.actionRequired),
66
+ sentInvites: (yield Promise.all(sentInvites.edges.map((x) => __awaiter(this, void 0, void 0, function* () {
67
+ return this.mapInvite(yield this.keyExchangeService.decryptKeyExchange(x.node));
68
+ })))).filter((x) => x.status !== TrustedPartyInviteStatus.Completed),
69
+ };
70
+ });
71
+ }
72
+ getTrustedParty(partyId) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ const { tp } = yield this.lrApollo.query({
75
+ query: GetTrustedPartyQuery,
76
+ variables: { partyId },
77
+ });
78
+ return yield this.mapTrustedParty(tp);
79
+ });
80
+ }
81
+ getTrustedPartyRoles(roleType = TrustedPartyRoleType.General) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ if (!this.trustedPartyRoles) {
84
+ this.trustedPartyRoles = yield this.http
85
+ .get('/assets/meta/trusted-party-roles.json')
86
+ .toPromise();
87
+ }
88
+ return Promise.resolve(this.trustedPartyRoles.filter((x) => x.roleType === roleType));
89
+ });
90
+ }
91
+ findByEmail(email) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ try {
94
+ const user = yield this.userService.getUserByEmail(email);
95
+ return user
96
+ ? {
97
+ id: user.id,
98
+ email,
99
+ username: user.username,
100
+ isTrustedParty: user.haveTp,
101
+ isMe: user.isCurrentUser,
102
+ }
103
+ : null;
104
+ }
105
+ catch (e) {
106
+ return null;
107
+ }
108
+ });
109
+ }
110
+ inviteTrustedParty(invite) {
111
+ return __awaiter(this, void 0, void 0, function* () {
112
+ const params = {
113
+ responderUsername: invite.party.username,
114
+ email: invite.party.email,
115
+ message: {
116
+ name: invite.party.name,
117
+ email: invite.party.email,
118
+ message: invite.party.message,
119
+ permissions: invite.permissions,
120
+ },
121
+ contactCard: {
122
+ plainOwnerCipherDataJson: null,
123
+ plainSharedCipherDataJson: invite.mySharedDetails,
124
+ ownerPlainData: {
125
+ name: new ContactCardName(invite.mySharedDetails.name),
126
+ },
127
+ },
128
+ };
129
+ yield this.keyExchangeService.initiateOtk(params);
130
+ });
131
+ }
132
+ cancelInvitation(inviteId) {
133
+ return __awaiter(this, void 0, void 0, function* () {
134
+ yield this.lrApollo.mutate({
135
+ mutation: CancelTrustedPartyInvitationMutation,
136
+ variables: {
137
+ input: {
138
+ id: inviteId,
139
+ },
140
+ },
141
+ });
142
+ });
143
+ }
144
+ getInvitation(inviteId, inviteToken, key) {
145
+ return __awaiter(this, void 0, void 0, function* () {
146
+ const exchange = yield this.keyExchangeService.getKeyExchange(inviteId, {
147
+ token: inviteToken,
148
+ otKeyK: key,
149
+ });
150
+ return this.mapInvite(exchange);
151
+ });
152
+ }
153
+ acceptInvitation(invite) {
154
+ return __awaiter(this, void 0, void 0, function* () {
155
+ const params = {
156
+ id: invite.inviteId,
157
+ token: invite.inviteToken,
158
+ decryptedOtk: invite.decryptedOtk,
159
+ initiatorContactCard: null,
160
+ responderContactCard: {
161
+ plainOwnerCipherDataJson: null,
162
+ plainSharedCipherDataJson: invite.mySharedDetails,
163
+ ownerPlainData: {
164
+ name: new ContactCardName(invite.mySharedDetails.name),
165
+ },
166
+ },
167
+ };
168
+ const { tp } = yield this.keyExchangeService.respondOtk(params);
169
+ return tp.id;
170
+ });
171
+ }
172
+ declineInvitation(inviteId, inviteToken) {
173
+ return __awaiter(this, void 0, void 0, function* () {
174
+ yield this.lrApollo.mutate({
175
+ mutation: DeclineTrustedPartyInvitationMutation,
176
+ variables: {
177
+ input: {
178
+ id: inviteId,
179
+ token: inviteToken,
180
+ },
181
+ },
182
+ });
183
+ });
184
+ }
185
+ confirmInvitation(confirm) {
186
+ return __awaiter(this, void 0, void 0, function* () {
187
+ const { tp } = yield this.keyExchangeService.completeOtk(confirm.inviteId, confirm.initiatorRootKeyCipher, confirm.initiatorOneTimePbkCipher, null);
188
+ return tp.id;
189
+ });
190
+ }
191
+ removeTrustedParty(partyId) {
192
+ return __awaiter(this, void 0, void 0, function* () {
193
+ yield this.lrApollo.mutate({
194
+ mutation: DeleteTrustedPartyMutation,
195
+ variables: {
196
+ input: {
197
+ id: partyId,
198
+ },
199
+ },
200
+ });
201
+ });
202
+ }
203
+ setCategoryAccessLevel(categoryId, keyId, trustedParty, accessLevel) {
204
+ return accessLevel
205
+ ? this.shareDirectory(categoryId, keyId, trustedParty, accessLevel)
206
+ : this.unshareDirectory(categoryId, trustedParty.id);
207
+ }
208
+ setRecordAccessLevel(recordId, keyId, trustedParty, accessLevel) {
209
+ return accessLevel
210
+ ? this.shareDirectory(recordId, keyId, trustedParty, accessLevel)
211
+ : this.unshareDirectory(recordId, trustedParty.id);
212
+ }
213
+ shareDirectory(directoryId, keyId, trustedParty, accessLevel) {
214
+ return __awaiter(this, void 0, void 0, function* () {
215
+ const key = yield this.keyGraphService.getKey(keyId);
216
+ const wrappingKey = yield this.keyGraphService.getKey(trustedParty.userSharedKey.sharedKey.id);
217
+ const wrappedKey = yield this.encryptionService.encrypt(wrappingKey.jwk, key.jwk.toJSON(true));
218
+ yield this.lrApollo.mutate({
219
+ mutation: ShareCategoryMutation,
220
+ variables: {
221
+ input: {
222
+ id: directoryId,
223
+ tpId: trustedParty.id,
224
+ accessRole: accessLevel,
225
+ keyId: key.id,
226
+ wrappingKeyId: wrappingKey.id,
227
+ wrappedKey: JSON.stringify(wrappedKey),
228
+ },
229
+ },
230
+ });
231
+ });
232
+ }
233
+ unshareDirectory(directoryId, trustedPartyId) {
234
+ return __awaiter(this, void 0, void 0, function* () {
235
+ yield this.lrApollo.mutate({
236
+ mutation: UnshareCategoryMutation,
237
+ variables: {
238
+ input: {
239
+ id: directoryId,
240
+ tpId: trustedPartyId,
241
+ },
242
+ },
243
+ });
244
+ });
245
+ }
246
+ mapTrustedParty(tp) {
247
+ var _a;
248
+ return __awaiter(this, void 0, void 0, function* () {
249
+ try {
250
+ const contactCard = tp.sharedContactCard &&
251
+ (yield this.sharedContactCardService.decryptTrustedPartyDetails(tp.sharedContactCard));
252
+ const myContactCard = tp.myContactCard &&
253
+ (yield this.sharedContactCardService.decryptSharedTrustedPartyDetails(tp.myContactCard));
254
+ return {
255
+ id: tp.id,
256
+ type: TrustedPartyType.User,
257
+ hasScenarios: !!tp.sharedScenarios.edges.length,
258
+ hasSharedVault: !!tp.sharedItems.directories.edges.length,
259
+ name: contactCard && contactCard.name && contactCard.name.name,
260
+ details: contactCard,
261
+ mySharedDetails: myContactCard,
262
+ userSharedKey: tp.currentUserSharedKey.userSharedKey,
263
+ username: tp.other.username,
264
+ features: {
265
+ sharedVault: {
266
+ hasAccess: (((_a = tp.other.features) === null || _a === void 0 ? void 0 : _a.shareVault) || ['noaccess'])[0] === 'access',
267
+ },
268
+ },
269
+ };
270
+ }
271
+ catch (e) {
272
+ console.error('Failed to decrypt Trusted Party.', e, tp);
273
+ return null;
274
+ }
275
+ });
276
+ }
277
+ mapInvite(exchange) {
278
+ var _a, _b;
279
+ return __awaiter(this, void 0, void 0, function* () {
280
+ const contactCard = exchange.contactCard;
281
+ const name = exchange.isInitiator
282
+ ? (_a = exchange.myMessage) === null || _a === void 0 ? void 0 : _a.name : contactCard && contactCard.name && contactCard.name.name;
283
+ const email = exchange.isInitiator
284
+ ? (_b = exchange.myMessage) === null || _b === void 0 ? void 0 : _b.email : (contactCard && contactCard.email) || exchange.responderEmailAddress;
285
+ return {
286
+ id: exchange.id,
287
+ type: TrustedPartyType.User,
288
+ status: exchange.state,
289
+ token: exchange.token,
290
+ tokenExpiry: exchange.tokenExpiryTime,
291
+ decryptedOtk: exchange.decryptedOtk,
292
+ name,
293
+ email,
294
+ isSender: exchange.isInitiator,
295
+ actionRequired: exchange.isInitiator
296
+ ? exchange.initiatorActionRequired
297
+ : exchange.responderActionRequired,
298
+ rootKeyCipher: exchange.initiatorRootKeyCipher,
299
+ pbkCipher: exchange.otk.initiatorOneTimePbkCipher,
300
+ isExpired: exchange.isExpired,
301
+ details: contactCard,
302
+ message: exchange.message,
303
+ mySharedDetails: exchange.myContactCard,
304
+ mySharedMessage: exchange.myMessage,
305
+ };
306
+ });
307
+ }
308
+ }
309
+ TrustedPartyService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TrustedPartyService_Factory() { return new TrustedPartyService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.LrApolloService), i0.ɵɵinject(i3.SharedContactCardService), i0.ɵɵinject(i4.UserService), i0.ɵɵinject(i5.LifeReadyAuthService), i0.ɵɵinject(i6.KeyExchangeService), i0.ɵɵinject(i7.KeyGraphService), i0.ɵɵinject(i8.KeyService), i0.ɵɵinject(i9.KeyFactoryService), i0.ɵɵinject(i10.EncryptionService)); }, token: TrustedPartyService, providedIn: "root" });
310
+ TrustedPartyService.decorators = [
311
+ { type: Injectable, args: [{
312
+ providedIn: 'root',
313
+ },] }
314
+ ];
315
+ TrustedPartyService.ctorParameters = () => [
316
+ { type: HttpClient },
317
+ { type: LrApolloService },
318
+ { type: SharedContactCardService },
319
+ { type: UserService },
320
+ { type: LifeReadyAuthService },
321
+ { type: KeyExchangeService },
322
+ { type: KeyGraphService },
323
+ { type: KeyService },
324
+ { type: KeyFactoryService },
325
+ { type: EncryptionService }
326
+ ];
327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3RydXN0ZWQtcGFydHkvdHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBSzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsb0NBQW9DLEVBQ3BDLHFDQUFxQyxFQUNyQywwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHVCQUF1QixHQUN4QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFRTCx3QkFBd0IsRUFFeEIsb0JBQW9CLEVBQ3BCLGdCQUFn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QUFDLHNCQUFzQjtnQkFDOUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCO2dCQUNqRCxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVM7Z0JBQzdCLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87Z0JBQ3pCLGVBQWUsRUFBRSxRQUFRLENBQUMsYUFBYTtnQkFDdkMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxTQUFTO2FBQ3BDLENBQUM7O0tBQ0g7Ozs7WUE3VkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUEzQ1EsVUFBVTtZQUVWLGVBQWU7WUFhZix3QkFBd0I7WUFDeEIsV0FBVztZQWJYLG9CQUFvQjtZQUdwQixrQkFBa0I7WUFNbEIsZUFBZTtZQUNmLFVBQVU7WUFGVixpQkFBaUI7WUFOakIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExyQXBvbGxvU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1hcG9sbG8uc2VydmljZSc7XG5pbXBvcnQgeyBMaWZlUmVhZHlBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvbGlmZS1yZWFkeS1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWNjZXNzTGV2ZWwgfSBmcm9tICcuLi9jYXRlZ29yeS9jYXRlZ29yeS50eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUV4Y2hhbmdlU2VydmljZSB9IGZyb20gJy4uL2tleS1leGNoYW5nZS9rZXktZXhjaGFuZ2Uuc2VydmljZSc7XG5pbXBvcnQge1xuICBEZWNyeXB0ZWRLZXlFeGNoYW5nZSxcbiAgUmVzcG9uZE90a0lucHV0LFxufSBmcm9tICcuLi9rZXktZXhjaGFuZ2Uva2V5LWV4Y2hhbmdlLnR5cGVzJztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGFjdENhcmROYW1lIH0gZnJvbSAnLi4vcHJvZmlsZS9wcm9maWxlLnR5cGVzJztcbmltcG9ydCB7IFNoYXJlZENvbnRhY3RDYXJkU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC1jb250YWN0LWNhcmQvc2hhcmVkLWNvbnRhY3QtY2FyZC5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci91c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQ2FuY2VsVHJ1c3RlZFBhcnR5SW52aXRhdGlvbk11dGF0aW9uLFxuICBEZWNsaW5lVHJ1c3RlZFBhcnR5SW52aXRhdGlvbk11dGF0aW9uLFxuICBEZWxldGVUcnVzdGVkUGFydHlNdXRhdGlvbixcbiAgR2V0QWxsVHJ1c3RlZFBhcnRpZXNRdWVyeSxcbiAgR2V0VHJ1c3RlZFBhcnRpZXNRdWVyeSxcbiAgR2V0VHJ1c3RlZFBhcnR5UXVlcnksXG4gIFNoYXJlQ2F0ZWdvcnlNdXRhdGlvbixcbiAgVW5zaGFyZUNhdGVnb3J5TXV0YXRpb24sXG59IGZyb20gJy4vdHJ1c3RlZC1wYXJ0eS5ncWwnO1xuaW1wb3J0IHtcbiAgQWNjZXB0VHJ1c3RlZFBhcnR5SW52aXRlLFxuICBDb25maXJtVHJ1c3RlZFBhcnR5SW52aXRlLFxuICBGb3VuZFRydXN0ZWRQYXJ0eSxcbiAgSW52aXRlVHJ1c3RlZFBhcnR5LFxuICBUcnVzdGVkUGFydGllcyxcbiAgVHJ1c3RlZFBhcnR5LFxuICBUcnVzdGVkUGFydHlJbnZpdGUsXG4gIFRydXN0ZWRQYXJ0eUludml0ZVN0YXR1cyxcbiAgVHJ1c3RlZFBhcnR5Um9sZSxcbiAgVHJ1c3RlZFBhcnR5Um9sZVR5cGUsXG4gIFRydXN0ZWRQYXJ0eVR5cGUsXG59IGZyb20gJy4vdHJ1c3RlZC1wYXJ0eS50eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcnVzdGVkUGFydHlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0cnVzdGVkUGFydHlSb2xlczogVHJ1c3RlZFBhcnR5Um9sZVtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGxyQXBvbGxvOiBMckFwb2xsb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzaGFyZWRDb250YWN0Q2FyZFNlcnZpY2U6IFNoYXJlZENvbnRhY3RDYXJkU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBMaWZlUmVhZHlBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIGtleUV4Y2hhbmdlU2VydmljZTogS2V5RXhjaGFuZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5R3JhcGhTZXJ2aWNlOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlTZXJ2aWNlOiBLZXlTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5RmFjdG9yeTogS2V5RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBnZXRUcnVzdGVkUGFydGllcygpOiBQcm9taXNlPFRydXN0ZWRQYXJ0eVtdPiB7XG4gICAgY29uc3QgeyB0cHMgfSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8YW55Pih7XG4gICAgICBxdWVyeTogR2V0VHJ1c3RlZFBhcnRpZXNRdWVyeSxcbiAgICB9KTtcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB0cHMuZWRnZXMubWFwKCh4KSA9PiB0aGlzLm1hcFRydXN0ZWRQYXJ0eSh4Lm5vZGUpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0QWxsVHJ1c3RlZFBhcnRpZXMoKTogUHJvbWlzZTxUcnVzdGVkUGFydGllcz4ge1xuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXIoKTtcbiAgICBjb25zdCB7IHRwcywgaW52aXRlcywgc2VudEludml0ZXMgfSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8YW55Pih7XG4gICAgICBxdWVyeTogR2V0QWxsVHJ1c3RlZFBhcnRpZXNRdWVyeSxcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICB1c2VySWQ6IHVzZXIuaWQsXG4gICAgICAgIGlzRXhwaXJlZDogZmFsc2UsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcnRpZXM6IChcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGw8VHJ1c3RlZFBhcnR5PihcbiAgICAgICAgICB0cHMuZWRnZXMubWFwKCh4KSA9PiB0aGlzLm1hcFRydXN0ZWRQYXJ0eSh4Lm5vZGUpKVxuICAgICAgICApXG4gICAgICApLmZpbHRlcigoeCkgPT4geCksXG4gICAgICBpbnZpdGVzOiAoXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsPFRydXN0ZWRQYXJ0eUludml0ZT4oXG4gICAgICAgICAgaW52aXRlcy5lZGdlcy5tYXAoYXN5bmMgKHgpID0+XG4gICAgICAgICAgICB0aGlzLm1hcEludml0ZShcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5rZXlFeGNoYW5nZVNlcnZpY2UuZGVjcnlwdEtleUV4Y2hhbmdlKHgubm9kZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgICAgLmZpbHRlcigoeCkgPT4geC5zdGF0dXMgIT09IFRydXN0ZWRQYXJ0eUludml0ZVN0YXR1cy5Db21wbGV0ZWQpXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKHgpID0+XG4gICAgICAgICAgICB4LnN0YXR1cyAhPT0gVHJ1c3RlZFBhcnR5SW52aXRlU3RhdHVzLkludml0ZWQgfHwgeC5hY3Rpb25SZXF1aXJlZFxuICAgICAgICApLFxuICAgICAgc2VudEludml0ZXM6IChcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGw8VHJ1c3RlZFBhcnR5SW52aXRlPihcbiAgICAgICAgICBzZW50SW52aXRlcy5lZGdlcy5tYXAoYXN5bmMgKHgpID0+XG4gICAgICAgICAgICB0aGlzLm1hcEludml0ZShcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5rZXlFeGNoYW5nZVNlcnZpY2UuZGVjcnlwdEtleUV4Y2hhbmdlKHgubm9kZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICkuZmlsdGVyKCh4KSA9PiB4LnN0YXR1cyAhPT0gVHJ1c3RlZFBhcnR5SW52aXRlU3RhdHVzLkNvbXBsZXRlZCksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRUcnVzdGVkUGFydHkocGFydHlJZDogc3RyaW5nKTogUHJvbWlzZTxUcnVzdGVkUGFydHk+IHtcbiAgICBjb25zdCB7IHRwIH0gPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PGFueT4oe1xuICAgICAgcXVlcnk6IEdldFRydXN0ZWRQYXJ0eVF1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7IHBhcnR5SWQgfSxcbiAgICB9KTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5tYXBUcnVzdGVkUGFydHkodHApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFRydXN0ZWRQYXJ0eVJvbGVzKFxuICAgIHJvbGVUeXBlOiBUcnVzdGVkUGFydHlSb2xlVHlwZSA9IFRydXN0ZWRQYXJ0eVJvbGVUeXBlLkdlbmVyYWxcbiAgKTogUHJvbWlzZTxUcnVzdGVkUGFydHlSb2xlW10+IHtcbiAgICBpZiAoIXRoaXMudHJ1c3RlZFBhcnR5Um9sZXMpIHtcbiAgICAgIHRoaXMudHJ1c3RlZFBhcnR5Um9sZXMgPSBhd2FpdCB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxUcnVzdGVkUGFydHlSb2xlW10+KCcvYXNzZXRzL21ldGEvdHJ1c3RlZC1wYXJ0eS1yb2xlcy5qc29uJylcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFxuICAgICAgdGhpcy50cnVzdGVkUGFydHlSb2xlcy5maWx0ZXIoKHgpID0+IHgucm9sZVR5cGUgPT09IHJvbGVUeXBlKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmluZEJ5RW1haWwoZW1haWw6IHN0cmluZyk6IFByb21pc2U8Rm91bmRUcnVzdGVkUGFydHk+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXNlciA9IGF3YWl0IHRoaXMudXNlclNlcnZpY2UuZ2V0VXNlckJ5RW1haWwoZW1haWwpO1xuXG4gICAgICByZXR1cm4gdXNlclxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGlkOiB1c2VyLmlkLFxuICAgICAgICAgICAgZW1haWwsXG4gICAgICAgICAgICB1c2VybmFtZTogdXNlci51c2VybmFtZSxcbiAgICAgICAgICAgIGlzVHJ1c3RlZFBhcnR5OiB1c2VyLmhhdmVUcCxcbiAgICAgICAgICAgIGlzTWU6IHVzZXIuaXNDdXJyZW50VXNlcixcbiAgICAgICAgICB9XG4gICAgICAgIDogbnVsbDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW52aXRlVHJ1c3RlZFBhcnR5KGludml0ZTogSW52aXRlVHJ1c3RlZFBhcnR5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgcmVzcG9uZGVyVXNlcm5hbWU6IGludml0ZS5wYXJ0eS51c2VybmFtZSxcbiAgICAgIGVtYWlsOiBpbnZpdGUucGFydHkuZW1haWwsXG4gICAgICBtZXNzYWdlOiB7XG4gICAgICAgIG5hbWU6IGludml0ZS5wYXJ0eS5uYW1lLFxuICAgICAgICBlbWFpbDogaW52aXRlLnBhcnR5LmVtYWlsLFxuICAgICAgICBtZXNzYWdlOiBpbnZpdGUucGFydHkubWVzc2FnZSxcbiAgICAgICAgcGVybWlzc2lvbnM6IGludml0ZS5wZXJtaXNzaW9ucyxcbiAgICAgIH0sXG4gICAgICBjb250YWN0Q2FyZDoge1xuICAgICAgICBwbGFpbk93bmVyQ2lwaGVyRGF0YUpzb246IG51bGwsXG4gICAgICAgIHBsYWluU2hhcmVkQ2lwaGVyRGF0YUpzb246IGludml0ZS5teVNoYXJlZERldGFpbHMsXG4gICAgICAgIG93bmVyUGxhaW5EYXRhOiB7XG4gICAgICAgICAgbmFtZTogbmV3IENvbnRhY3RDYXJkTmFtZShpbnZpdGUubXlTaGFyZWREZXRhaWxzLm5hbWUpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGF3YWl0IHRoaXMua2V5RXhjaGFuZ2VTZXJ2aWNlLmluaXRpYXRlT3RrKHBhcmFtcyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2FuY2VsSW52aXRhdGlvbihpbnZpdGVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IENhbmNlbFRydXN0ZWRQYXJ0eUludml0YXRpb25NdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkOiBpbnZpdGVJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0SW52aXRhdGlvbihcbiAgICBpbnZpdGVJZDogc3RyaW5nLFxuICAgIGludml0ZVRva2VuOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxUcnVzdGVkUGFydHlJbnZpdGU+IHtcbiAgICBjb25zdCBleGNoYW5nZSA9IGF3YWl0IHRoaXMua2V5RXhjaGFuZ2VTZXJ2aWNlLmdldEtleUV4Y2hhbmdlKGludml0ZUlkLCB7XG4gICAgICB0b2tlbjogaW52aXRlVG9rZW4sXG4gICAgICBvdEtleUs6IGtleSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLm1hcEludml0ZShleGNoYW5nZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWNjZXB0SW52aXRhdGlvbihcbiAgICBpbnZpdGU6IEFjY2VwdFRydXN0ZWRQYXJ0eUludml0ZVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHBhcmFtczogUmVzcG9uZE90a0lucHV0ID0ge1xuICAgICAgaWQ6IGludml0ZS5pbnZpdGVJZCxcbiAgICAgIHRva2VuOiBpbnZpdGUuaW52aXRlVG9rZW4sXG4gICAgICBkZWNyeXB0ZWRPdGs6IGludml0ZS5kZWNyeXB0ZWRPdGssXG4gICAgICBpbml0aWF0b3JDb250YWN0Q2FyZDogbnVsbCxcbiAgICAgIHJlc3BvbmRlckNvbnRhY3RDYXJkOiB7XG4gICAgICAgIHBsYWluT3duZXJDaXBoZXJEYXRhSnNvbjogbnVsbCxcbiAgICAgICAgcGxhaW5TaGFyZWRDaXBoZXJEYXRhSnNvbjogaW52aXRlLm15U2hhcmVkRGV0YWlscyxcbiAgICAgICAgb3duZXJQbGFpbkRhdGE6IHtcbiAgICAgICAgICBuYW1lOiBuZXcgQ29udGFjdENhcmROYW1lKGludml0ZS5teVNoYXJlZERldGFpbHMubmFtZSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB7IHRwIH0gPSBhd2FpdCB0aGlzLmtleUV4Y2hhbmdlU2VydmljZS5yZXNwb25kT3RrKHBhcmFtcyk7XG5cbiAgICByZXR1cm4gdHAuaWQ7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVjbGluZUludml0YXRpb24oXG4gICAgaW52aXRlSWQ6IHN0cmluZyxcbiAgICBpbnZpdGVUb2tlbjogc3RyaW5nXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlKHtcbiAgICAgIG11dGF0aW9uOiBEZWNsaW5lVHJ1c3RlZFBhcnR5SW52aXRhdGlvbk11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgaWQ6IGludml0ZUlkLFxuICAgICAgICAgIHRva2VuOiBpbnZpdGVUb2tlbixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY29uZmlybUludml0YXRpb24oXG4gICAgY29uZmlybTogQ29uZmlybVRydXN0ZWRQYXJ0eUludml0ZVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgdHAgfSA9IGF3YWl0IHRoaXMua2V5RXhjaGFuZ2VTZXJ2aWNlLmNvbXBsZXRlT3RrKFxuICAgICAgY29uZmlybS5pbnZpdGVJZCxcbiAgICAgIGNvbmZpcm0uaW5pdGlhdG9yUm9vdEtleUNpcGhlcixcbiAgICAgIGNvbmZpcm0uaW5pdGlhdG9yT25lVGltZVBia0NpcGhlcixcbiAgICAgIG51bGxcbiAgICApO1xuICAgIHJldHVybiB0cC5pZDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZW1vdmVUcnVzdGVkUGFydHkocGFydHlJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IERlbGV0ZVRydXN0ZWRQYXJ0eU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgaWQ6IHBhcnR5SWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldENhdGVnb3J5QWNjZXNzTGV2ZWwoXG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nLFxuICAgIGtleUlkOiBzdHJpbmcsXG4gICAgdHJ1c3RlZFBhcnR5OiBUcnVzdGVkUGFydHksXG4gICAgYWNjZXNzTGV2ZWw/OiBBY2Nlc3NMZXZlbFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYWNjZXNzTGV2ZWxcbiAgICAgID8gdGhpcy5zaGFyZURpcmVjdG9yeShjYXRlZ29yeUlkLCBrZXlJZCwgdHJ1c3RlZFBhcnR5LCBhY2Nlc3NMZXZlbClcbiAgICAgIDogdGhpcy51bnNoYXJlRGlyZWN0b3J5KGNhdGVnb3J5SWQsIHRydXN0ZWRQYXJ0eS5pZCk7XG4gIH1cblxuICBwdWJsaWMgc2V0UmVjb3JkQWNjZXNzTGV2ZWwoXG4gICAgcmVjb3JkSWQ6IHN0cmluZyxcbiAgICBrZXlJZDogc3RyaW5nLFxuICAgIHRydXN0ZWRQYXJ0eTogVHJ1c3RlZFBhcnR5LFxuICAgIGFjY2Vzc0xldmVsOiBBY2Nlc3NMZXZlbFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYWNjZXNzTGV2ZWxcbiAgICAgID8gdGhpcy5zaGFyZURpcmVjdG9yeShyZWNvcmRJZCwga2V5SWQsIHRydXN0ZWRQYXJ0eSwgYWNjZXNzTGV2ZWwpXG4gICAgICA6IHRoaXMudW5zaGFyZURpcmVjdG9yeShyZWNvcmRJZCwgdHJ1c3RlZFBhcnR5LmlkKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2hhcmVEaXJlY3RvcnkoXG4gICAgZGlyZWN0b3J5SWQ6IHN0cmluZyxcbiAgICBrZXlJZDogc3RyaW5nLFxuICAgIHRydXN0ZWRQYXJ0eTogVHJ1c3RlZFBhcnR5LFxuICAgIGFjY2Vzc0xldmVsOiBBY2Nlc3NMZXZlbFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS5nZXRLZXkoa2V5SWQpO1xuICAgIGNvbnN0IHdyYXBwaW5nS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaFNlcnZpY2UuZ2V0S2V5KFxuICAgICAgdHJ1c3RlZFBhcnR5LnVzZXJTaGFyZWRLZXkuc2hhcmVkS2V5LmlkXG4gICAgKTtcbiAgICBjb25zdCB3cmFwcGVkS2V5ID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KFxuICAgICAgd3JhcHBpbmdLZXkuandrLFxuICAgICAga2V5Lmp3ay50b0pTT04odHJ1ZSlcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IFNoYXJlQ2F0ZWdvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkOiBkaXJlY3RvcnlJZCxcbiAgICAgICAgICB0cElkOiB0cnVzdGVkUGFydHkuaWQsXG4gICAgICAgICAgYWNjZXNzUm9sZTogYWNjZXNzTGV2ZWwsXG4gICAgICAgICAga2V5SWQ6IGtleS5pZCxcbiAgICAgICAgICB3cmFwcGluZ0tleUlkOiB3cmFwcGluZ0tleS5pZCxcbiAgICAgICAgICB3cmFwcGVkS2V5OiBKU09OLnN0cmluZ2lmeSh3cmFwcGVkS2V5KSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVuc2hhcmVEaXJlY3RvcnkoXG4gICAgZGlyZWN0b3J5SWQ6IHN0cmluZyxcbiAgICB0cnVzdGVkUGFydHlJZDogc3RyaW5nXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlKHtcbiAgICAgIG11dGF0aW9uOiBVbnNoYXJlQ2F0ZWdvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkOiBkaXJlY3RvcnlJZCxcbiAgICAgICAgICB0cElkOiB0cnVzdGVkUGFydHlJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbWFwVHJ1c3RlZFBhcnR5KHRwOiBhbnkpOiBQcm9taXNlPFRydXN0ZWRQYXJ0eT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb250YWN0Q2FyZCA9XG4gICAgICAgIHRwLnNoYXJlZENvbnRhY3RDYXJkICYmXG4gICAgICAgIChhd2FpdCB0aGlzLnNoYXJlZENvbnRhY3RDYXJkU2VydmljZS5kZWNyeXB0VHJ1c3RlZFBhcnR5RGV0YWlscyhcbiAgICAgICAgICB0cC5zaGFyZWRDb250YWN0Q2FyZFxuICAgICAgICApKTtcbiAgICAgIGNvbnN0IG15Q29udGFjdENhcmQgPVxuICAgICAgICB0cC5teUNvbnRhY3RDYXJkICYmXG4gICAgICAgIChhd2FpdCB0aGlzLnNoYXJlZENvbnRhY3RDYXJkU2VydmljZS5kZWNyeXB0U2hhcmVkVHJ1c3RlZFBhcnR5RGV0YWlscyhcbiAgICAgICAgICB0cC5teUNvbnRhY3RDYXJkXG4gICAgICAgICkpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogdHAuaWQsXG4gICAgICAgIHR5cGU6IFRydXN0ZWRQYXJ0eVR5cGUuVXNlciwgLy8gVE9ETzogd2hlbiBwYXJ0bmVyc1xuICAgICAgICBoYXNTY2VuYXJpb3M6ICEhdHAuc2hhcmVkU2NlbmFyaW9zLmVkZ2VzLmxlbmd0aCxcbiAgICAgICAgaGFzU2hhcmVkVmF1bHQ6ICEhdHAuc2hhcmVkSXRlbXMuZGlyZWN0b3JpZXMuZWRnZXMubGVuZ3RoLFxuICAgICAgICBuYW1lOiBjb250YWN0Q2FyZCAmJiBjb250YWN0Q2FyZC5uYW1lICYmIGNvbnRhY3RDYXJkLm5hbWUubmFtZSxcbiAgICAgICAgZGV0YWlsczogY29udGFjdENhcmQsXG4gICAgICAgIG15U2hhcmVkRGV0YWlsczogbXlDb250YWN0Q2FyZCxcbiAgICAgICAgdXNlclNoYXJlZEtleTogdHAuY3VycmVudFVzZXJTaGFyZWRLZXkudXNlclNoYXJlZEtleSxcbiAgICAgICAgdXNlcm5hbWU6IHRwLm90aGVyLnVzZXJuYW1lLFxuICAgICAgICBmZWF0dXJlczoge1xuICAgICAgICAgIHNoYXJlZFZhdWx0OiB7XG4gICAgICAgICAgICBoYXNBY2Nlc3M6XG4gICAgICAgICAgICAgICh0cC5vdGhlci5mZWF0dXJlcz8uc2hhcmVWYXVsdCB8fCBbJ25vYWNjZXNzJ10pWzBdID09PSAnYWNjZXNzJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZGVjcnlwdCBUcnVzdGVkIFBhcnR5LicsIGUsIHRwKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbWFwSW52aXRlKFxuICAgIGV4Y2hhbmdlOiBEZWNyeXB0ZWRLZXlFeGNoYW5nZVxuICApOiBQcm9taXNlPFRydXN0ZWRQYXJ0eUludml0ZT4ge1xuICAgIGNvbnN0IGNvbnRhY3RDYXJkID0gZXhjaGFuZ2UuY29udGFjdENhcmQ7XG4gICAgY29uc3QgbmFtZSA9IGV4Y2hhbmdlLmlzSW5pdGlhdG9yXG4gICAgICA/IGV4Y2hhbmdlLm15TWVzc2FnZT8ubmFtZVxuICAgICAgOiBjb250YWN0Q2FyZCAmJiBjb250YWN0Q2FyZC5uYW1lICYmIGNvbnRhY3RDYXJkLm5hbWUubmFtZTtcbiAgICBjb25zdCBlbWFpbCA9IGV4Y2hhbmdlLmlzSW5pdGlhdG9yXG4gICAgICA/IGV4Y2hhbmdlLm15TWVzc2FnZT8uZW1haWxcbiAgICAgIDogKGNvbnRhY3RDYXJkICYmIGNvbnRhY3RDYXJkLmVtYWlsKSB8fCBleGNoYW5nZS5yZXNwb25kZXJFbWFpbEFkZHJlc3M7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGV4Y2hhbmdlLmlkLFxuICAgICAgdHlwZTogVHJ1c3RlZFBhcnR5VHlwZS5Vc2VyLCAvLyB0b2RvIHdoZW4gcGFydG5lcnNcbiAgICAgIHN0YXR1czogZXhjaGFuZ2Uuc3RhdGUgYXMgdW5rbm93biBhcyBUcnVzdGVkUGFydHlJbnZpdGVTdGF0dXMsXG4gICAgICB0b2tlbjogZXhjaGFuZ2UudG9rZW4sXG4gICAgICB0b2tlbkV4cGlyeTogZXhjaGFuZ2UudG9rZW5FeHBpcnlUaW1lLFxuICAgICAgZGVjcnlwdGVkT3RrOiBleGNoYW5nZS5kZWNyeXB0ZWRPdGssXG4gICAgICBuYW1lLFxuICAgICAgZW1haWwsXG4gICAgICBpc1NlbmRlcjogZXhjaGFuZ2UuaXNJbml0aWF0b3IsXG4gICAgICBhY3Rpb25SZXF1aXJlZDogZXhjaGFuZ2UuaXNJbml0aWF0b3JcbiAgICAgICAgPyBleGNoYW5nZS5pbml0aWF0b3JBY3Rpb25SZXF1aXJlZFxuICAgICAgICA6IGV4Y2hhbmdlLnJlc3BvbmRlckFjdGlvblJlcXVpcmVkLFxuICAgICAgcm9vdEtleUNpcGhlcjogZXhjaGFuZ2UuaW5pdGlhdG9yUm9vdEtleUNpcGhlcixcbiAgICAgIHBia0NpcGhlcjogZXhjaGFuZ2Uub3RrLmluaXRpYXRvck9uZVRpbWVQYmtDaXBoZXIsXG4gICAgICBpc0V4cGlyZWQ6IGV4Y2hhbmdlLmlzRXhwaXJlZCxcbiAgICAgIGRldGFpbHM6IGNvbnRhY3RDYXJkLFxuICAgICAgbWVzc2FnZTogZXhjaGFuZ2UubWVzc2FnZSxcbiAgICAgIG15U2hhcmVkRGV0YWlsczogZXhjaGFuZ2UubXlDb250YWN0Q2FyZCxcbiAgICAgIG15U2hhcmVkTWVzc2FnZTogZXhjaGFuZ2UubXlNZXNzYWdlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==