@lifeready/core 1.0.21 → 1.0.22

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 (228) hide show
  1. package/bundles/lifeready-core.umd.js +9745 -9700
  2. package/bundles/lifeready-core.umd.js.map +1 -1
  3. package/bundles/lifeready-core.umd.min.js +2 -2
  4. package/bundles/lifeready-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/run-outside-angular.js +2 -2
  6. package/esm2015/lib/_common/types.js +1 -1
  7. package/esm2015/lib/api/lr-apollo.service.js +3 -3
  8. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +3 -3
  9. package/esm2015/lib/api/query-processor/common-processors.service.js +3 -3
  10. package/esm2015/lib/api/query-processor/query-processor.service.js +4 -4
  11. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +6 -5
  12. package/esm2015/lib/api/types/lr-graphql.types.js +1 -1
  13. package/esm2015/lib/auth/auth.gql.js +1 -28
  14. package/esm2015/lib/auth/auth.types.js +1 -1
  15. package/esm2015/lib/auth/life-ready-auth.service.js +32 -31
  16. package/esm2015/lib/category/category.gql.js +1 -1
  17. package/esm2015/lib/category/category.service.js +6 -6
  18. package/esm2015/lib/contact-card/contact-card.gql.js +79 -0
  19. package/esm2015/lib/contact-card/contact-card.service.js +154 -0
  20. package/esm2015/lib/contact-card/contact-card2.gql.js +29 -0
  21. package/esm2015/lib/contact-card/contact-card2.service.js +103 -0
  22. package/esm2015/lib/encryption/encryption.service.js +189 -0
  23. package/esm2015/lib/file-upload/file-upload.service.js +74 -0
  24. package/esm2015/lib/file-upload/file-upload.types.js +1 -0
  25. package/esm2015/lib/{auth → idle}/idle.service.js +7 -7
  26. package/esm2015/lib/{auth → idle}/idle.types.js +1 -1
  27. package/esm2015/lib/items2/item2.service.js +20 -20
  28. package/esm2015/lib/key/key-factory.service.js +237 -0
  29. package/esm2015/lib/{cryptography → key}/key-graph.service.js +10 -10
  30. package/esm2015/lib/key/key-meta.service.js +200 -0
  31. package/esm2015/lib/key/key.service.js +124 -0
  32. package/esm2015/lib/key/key.types.js +11 -0
  33. package/esm2015/lib/key-exchange/key-exchange.gql.js +188 -0
  34. package/esm2015/lib/key-exchange/key-exchange.service.js +443 -0
  35. package/esm2015/lib/key-exchange/key-exchange.types.js +7 -0
  36. package/esm2015/lib/key-exchange/key-exchange2.gql.js +171 -0
  37. package/esm2015/lib/key-exchange/key-exchange2.service.js +500 -0
  38. package/esm2015/lib/lbop/lbop.service.js +355 -0
  39. package/esm2015/lib/life-ready.module.js +2 -27
  40. package/esm2015/lib/lock/lock.gql.js +40 -0
  41. package/esm2015/lib/lock/lock.service.js +64 -0
  42. package/esm2015/lib/message/message.gql.js +32 -0
  43. package/esm2015/lib/message/message.service.js +116 -0
  44. package/esm2015/lib/message/message.types.js +1 -0
  45. package/esm2015/lib/password/password.gql.js +28 -0
  46. package/esm2015/lib/password/password.service.js +315 -0
  47. package/esm2015/lib/persist/persist.service.js +180 -0
  48. package/esm2015/lib/profile/profile-details.service.js +214 -0
  49. package/esm2015/lib/profile/profile.gql.js +97 -0
  50. package/esm2015/lib/profile/profile.service.js +169 -0
  51. package/esm2015/lib/profile/profile.types.js +34 -0
  52. package/esm2015/lib/record/record-attachment.service.js +15 -15
  53. package/esm2015/lib/record/record.service.js +3 -3
  54. package/esm2015/lib/register/register.service.js +172 -0
  55. package/esm2015/lib/scenario/scenario.controller.js +2 -2
  56. package/esm2015/lib/scenario/{scenario.gql.private.js → scenario.private.gql.js} +1 -1
  57. package/esm2015/lib/scenario/scenario.service.js +9 -9
  58. package/esm2015/lib/scenario/scenario.types.js +1 -1
  59. package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +119 -0
  60. package/esm2015/lib/shared-contact-card/shared-contact-card2.gql.js +41 -0
  61. package/esm2015/lib/shared-contact-card/shared-contact-card2.service.js +117 -0
  62. package/esm2015/lib/slip39/slip39.service.js +169 -0
  63. package/esm2015/lib/time/time.service.js +146 -0
  64. package/esm2015/lib/tp-assembly/tp-assembly.js +365 -0
  65. package/esm2015/lib/tp-assembly/tp-assembly.private.gql.js +22 -0
  66. package/esm2015/lib/tp-assembly/tp-assembly.types.js +1 -0
  67. package/esm2015/lib/tp-password-reset/tp-password-reset-request.service.js +100 -0
  68. package/esm2015/lib/tp-password-reset/tp-password-reset-user.service.js +117 -0
  69. package/esm2015/lib/tp-password-reset/tp-password-reset.constants.js +4 -0
  70. package/esm2015/lib/tp-password-reset/tp-password-reset.controller.js +34 -0
  71. package/esm2015/lib/tp-password-reset/tp-password-reset.gql.js +74 -0
  72. package/esm2015/lib/tp-password-reset/tp-password-reset.private.gql.js +165 -0
  73. package/esm2015/lib/tp-password-reset/tp-password-reset.private.service.js +54 -0
  74. package/esm2015/lib/tp-password-reset/tp-password-reset.service.js +92 -0
  75. package/esm2015/lib/tp-password-reset/tp-password-reset.types.js +1 -0
  76. package/esm2015/lib/trusted-party/trusted-party.gql.js +148 -0
  77. package/esm2015/lib/trusted-party/trusted-party.service.js +326 -0
  78. package/esm2015/lib/trusted-party/trusted-party.types.js +41 -0
  79. package/esm2015/lib/trusted-party/trusted-party2.gql.js +64 -0
  80. package/esm2015/lib/trusted-party/trusted-party2.gql.private.js +25 -0
  81. package/esm2015/lib/trusted-party/trusted-party2.service.js +224 -0
  82. package/esm2015/lib/trusted-party/trusted-party2.types.js +1 -0
  83. package/esm2015/lib/two-factor/two-factor.service.js +74 -0
  84. package/esm2015/lib/user/user.gql.js +60 -0
  85. package/esm2015/lib/user/user.service.js +79 -0
  86. package/esm2015/lib/user/user.types.js +1 -0
  87. package/esm2015/lib/web-crypto/web-crypto.service.js +29 -0
  88. package/esm2015/lifeready-core.js +15 -13
  89. package/esm2015/public-api.js +49 -51
  90. package/fesm2015/lifeready-core.js +9232 -9214
  91. package/fesm2015/lifeready-core.js.map +1 -1
  92. package/lib/_common/types.d.ts +3 -1
  93. package/lib/api/lr-apollo.service.d.ts +1 -1
  94. package/lib/api/lr-graphql/lr-graphql.service.d.ts +1 -1
  95. package/lib/api/query-processor/common-processors.service.d.ts +1 -1
  96. package/lib/api/query-processor/query-processor.service.d.ts +1 -1
  97. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +1 -1
  98. package/lib/api/types/lr-graphql.types.d.ts +11 -0
  99. package/lib/auth/auth.gql.d.ts +0 -3
  100. package/lib/auth/auth.types.d.ts +2 -2
  101. package/lib/auth/life-ready-auth.service.d.ts +12 -12
  102. package/lib/category/category.gql.d.ts +1 -1
  103. package/lib/category/category.service.d.ts +2 -2
  104. package/lib/{api → contact-card}/contact-card.service.d.ts +9 -9
  105. package/lib/contact-card/contact-card2.gql.d.ts +25 -0
  106. package/lib/{api → contact-card}/contact-card2.service.d.ts +11 -12
  107. package/lib/{cryptography → encryption}/encryption.service.d.ts +2 -2
  108. package/lib/{api/file.service.d.ts → file-upload/file-upload.service.d.ts} +3 -7
  109. package/lib/file-upload/file-upload.types.d.ts +5 -0
  110. package/lib/{auth → idle}/idle.service.d.ts +4 -4
  111. package/lib/items2/item2.service.d.ts +11 -11
  112. package/lib/{cryptography → key}/key-factory.service.d.ts +2 -2
  113. package/lib/{cryptography → key}/key-graph.service.d.ts +5 -5
  114. package/lib/{cryptography → key}/key-meta.service.d.ts +1 -1
  115. package/lib/{cryptography → key}/key.service.d.ts +2 -2
  116. package/lib/{cryptography/cryptography.types.d.ts → key/key.types.d.ts} +9 -13
  117. package/lib/{api → key-exchange}/key-exchange.service.d.ts +5 -5
  118. package/lib/{api → key-exchange}/key-exchange.types.d.ts +4 -4
  119. package/lib/{api → key-exchange}/key-exchange2.gql.d.ts +1 -1
  120. package/lib/{api → key-exchange}/key-exchange2.service.d.ts +71 -18
  121. package/lib/{auth → lbop}/lbop.service.d.ts +7 -7
  122. package/lib/{api → lock}/lock.gql.d.ts +1 -1
  123. package/lib/{api → lock}/lock.service.d.ts +1 -1
  124. package/lib/message/message.gql.d.ts +13 -0
  125. package/lib/message/message.service.d.ts +29 -0
  126. package/lib/message/message.types.d.ts +12 -0
  127. package/lib/password/password.gql.d.ts +3 -0
  128. package/lib/{auth → password}/password.service.d.ts +8 -8
  129. package/lib/{api → persist}/persist.service.d.ts +3 -3
  130. package/lib/{users → profile}/profile-details.service.d.ts +3 -3
  131. package/lib/{users → profile}/profile.gql.d.ts +2 -2
  132. package/lib/{users → profile}/profile.service.d.ts +6 -6
  133. package/lib/{users → profile}/profile.types.d.ts +1 -1
  134. package/lib/record/record-attachment.service.d.ts +6 -6
  135. package/lib/record/record.service.d.ts +1 -1
  136. package/lib/{auth → register}/register.service.d.ts +4 -4
  137. package/lib/scenario/scenario.controller.d.ts +1 -1
  138. package/lib/scenario/scenario.service.d.ts +2 -2
  139. package/lib/scenario/scenario.types.d.ts +1 -1
  140. package/lib/{api → shared-contact-card}/shared-contact-card.service.d.ts +9 -9
  141. package/lib/{api → shared-contact-card}/shared-contact-card2.gql.d.ts +1 -1
  142. package/lib/{api → shared-contact-card}/shared-contact-card2.service.d.ts +6 -6
  143. package/lib/{trusted-parties → tp-assembly}/tp-assembly.d.ts +7 -7
  144. package/lib/{trusted-parties → tp-assembly}/tp-assembly.types.d.ts +1 -1
  145. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-request.service.d.ts +4 -8
  146. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-user.service.d.ts +7 -13
  147. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.controller.d.ts +1 -1
  148. package/lib/tp-password-reset/tp-password-reset.gql.d.ts +63 -0
  149. package/lib/{trusted-parties/tp-password-reset.gql.d.ts → tp-password-reset/tp-password-reset.private.gql.d.ts} +1 -63
  150. package/lib/tp-password-reset/tp-password-reset.private.service.d.ts +59 -0
  151. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.service.d.ts +6 -89
  152. package/lib/tp-password-reset/tp-password-reset.types.d.ts +40 -0
  153. package/lib/{trusted-parties → trusted-party}/trusted-party.service.d.ts +7 -7
  154. package/lib/{trusted-parties → trusted-party}/trusted-party.types.d.ts +2 -3
  155. package/lib/{trusted-parties → trusted-party}/trusted-party2.gql.d.ts +0 -22
  156. package/lib/trusted-party/trusted-party2.gql.private.d.ts +23 -0
  157. package/lib/{trusted-parties → trusted-party}/trusted-party2.service.d.ts +11 -35
  158. package/lib/trusted-party/trusted-party2.types.d.ts +12 -0
  159. package/lib/{users → user}/user.gql.d.ts +1 -1
  160. package/lib/{users → user}/user.types.d.ts +1 -1
  161. package/lifeready-core.d.ts +14 -12
  162. package/lifeready-core.metadata.json +1 -1
  163. package/package.json +1 -1
  164. package/public-api.d.ts +48 -50
  165. package/esm2015/lib/api/contact-card.gql.js +0 -79
  166. package/esm2015/lib/api/contact-card.service.js +0 -154
  167. package/esm2015/lib/api/contact-card2.gql.js +0 -60
  168. package/esm2015/lib/api/contact-card2.service.js +0 -103
  169. package/esm2015/lib/api/file.service.js +0 -74
  170. package/esm2015/lib/api/key-exchange.gql.js +0 -188
  171. package/esm2015/lib/api/key-exchange.service.js +0 -442
  172. package/esm2015/lib/api/key-exchange.types.js +0 -7
  173. package/esm2015/lib/api/key-exchange2.gql.js +0 -171
  174. package/esm2015/lib/api/key-exchange2.service.js +0 -480
  175. package/esm2015/lib/api/lock.gql.js +0 -40
  176. package/esm2015/lib/api/lock.service.js +0 -64
  177. package/esm2015/lib/api/message.service.js +0 -138
  178. package/esm2015/lib/api/persist.service.js +0 -181
  179. package/esm2015/lib/api/shared-contact-card.service.js +0 -119
  180. package/esm2015/lib/api/shared-contact-card2.gql.js +0 -41
  181. package/esm2015/lib/api/shared-contact-card2.service.js +0 -117
  182. package/esm2015/lib/api/time.service.js +0 -146
  183. package/esm2015/lib/auth/lbop.service.js +0 -355
  184. package/esm2015/lib/auth/password.service.js +0 -315
  185. package/esm2015/lib/auth/register.service.js +0 -172
  186. package/esm2015/lib/auth/two-factor.service.js +0 -74
  187. package/esm2015/lib/cryptography/cryptography.types.js +0 -11
  188. package/esm2015/lib/cryptography/encryption.service.js +0 -189
  189. package/esm2015/lib/cryptography/key-factory.service.js +0 -237
  190. package/esm2015/lib/cryptography/key-meta.service.js +0 -200
  191. package/esm2015/lib/cryptography/key.service.js +0 -124
  192. package/esm2015/lib/cryptography/slip39.service.js +0 -169
  193. package/esm2015/lib/cryptography/web-crypto.service.js +0 -29
  194. package/esm2015/lib/trusted-parties/tp-assembly.gql.private.js +0 -22
  195. package/esm2015/lib/trusted-parties/tp-assembly.js +0 -365
  196. package/esm2015/lib/trusted-parties/tp-assembly.types.js +0 -1
  197. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +0 -113
  198. package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +0 -129
  199. package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +0 -4
  200. package/esm2015/lib/trusted-parties/tp-password-reset.controller.js +0 -34
  201. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +0 -237
  202. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +0 -95
  203. package/esm2015/lib/trusted-parties/trusted-party.gql.js +0 -148
  204. package/esm2015/lib/trusted-parties/trusted-party.service.js +0 -326
  205. package/esm2015/lib/trusted-parties/trusted-party.types.js +0 -41
  206. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +0 -87
  207. package/esm2015/lib/trusted-parties/trusted-party2.service.js +0 -218
  208. package/esm2015/lib/users/profile-details.service.js +0 -214
  209. package/esm2015/lib/users/profile.gql.js +0 -97
  210. package/esm2015/lib/users/profile.service.js +0 -169
  211. package/esm2015/lib/users/profile.types.js +0 -34
  212. package/esm2015/lib/users/user.gql.js +0 -60
  213. package/esm2015/lib/users/user.service.js +0 -79
  214. package/esm2015/lib/users/user.types.js +0 -1
  215. package/lib/api/contact-card2.gql.d.ts +0 -34
  216. package/lib/api/message.service.d.ts +0 -59
  217. /package/lib/{api → contact-card}/contact-card.gql.d.ts +0 -0
  218. /package/lib/{auth → idle}/idle.types.d.ts +0 -0
  219. /package/lib/{api → key-exchange}/key-exchange.gql.d.ts +0 -0
  220. /package/lib/scenario/{scenario.gql.private.d.ts → scenario.private.gql.d.ts} +0 -0
  221. /package/lib/{cryptography → slip39}/slip39.service.d.ts +0 -0
  222. /package/lib/{api → time}/time.service.d.ts +0 -0
  223. /package/lib/{trusted-parties/tp-assembly.gql.private.d.ts → tp-assembly/tp-assembly.private.gql.d.ts} +0 -0
  224. /package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.constants.d.ts +0 -0
  225. /package/lib/{trusted-parties → trusted-party}/trusted-party.gql.d.ts +0 -0
  226. /package/lib/{auth → two-factor}/two-factor.service.d.ts +0 -0
  227. /package/lib/{users → user}/user.service.d.ts +0 -0
  228. /package/lib/{cryptography → web-crypto}/web-crypto.service.d.ts +0 -0
@@ -0,0 +1,169 @@
1
+ import { __awaiter } from "tslib";
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { Inject, Injectable } from '@angular/core';
4
+ import { LrApolloService } from '../api/lr-apollo.service';
5
+ import { ContactCardListQuery, DeleteContactCardMutation, } from '../contact-card/contact-card.gql';
6
+ import { EncryptionService } from '../encryption/encryption.service';
7
+ import { KeyGraphService } from '../key/key-graph.service';
8
+ import { KeyMetaService } from '../key/key-meta.service';
9
+ import { KeyService } from '../key/key.service';
10
+ import { LR_CONFIG } from '../life-ready.config';
11
+ import { mapUserPlans } from '../plan/plan.service';
12
+ import { CreateContactCardMutation, CurrentUserQuery, UpdateContactCardMutation, } from './profile.gql';
13
+ import { ContactCardName, } from './profile.types';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "../life-ready.config";
16
+ import * as i2 from "@angular/common/http";
17
+ import * as i3 from "../api/lr-apollo.service";
18
+ import * as i4 from "../key/key.service";
19
+ import * as i5 from "../key/key-meta.service";
20
+ import * as i6 from "../key/key-graph.service";
21
+ import * as i7 from "../encryption/encryption.service";
22
+ export class ProfileService {
23
+ constructor(config, http, lrApollo, keyService, keyMetaService, keyGraph, encryptionService) {
24
+ this.config = config;
25
+ this.http = http;
26
+ this.lrApollo = lrApollo;
27
+ this.keyService = keyService;
28
+ this.keyMetaService = keyMetaService;
29
+ this.keyGraph = keyGraph;
30
+ this.encryptionService = encryptionService;
31
+ }
32
+ getPassIdpParams(emailOrPhone) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ return yield this.http
35
+ .get(`${this.config.authUrl}users/pass-idp-params/?login_name=${encodeURIComponent(emailOrPhone)}`)
36
+ .toPromise();
37
+ });
38
+ }
39
+ getCurrentUser() {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ const { currentUser, contactCards, userPlans } = yield this.lrApollo.query({
42
+ query: CurrentUserQuery,
43
+ });
44
+ const contactCard = contactCards.edges.map((x) => x.node)[0];
45
+ return {
46
+ currentUser,
47
+ contactCard,
48
+ userPlans: mapUserPlans(userPlans),
49
+ };
50
+ });
51
+ }
52
+ decryptContactCard(contactCard) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ if (!contactCard) {
55
+ return null;
56
+ }
57
+ const details = yield this.keyGraph.decryptFromString(contactCard.key.id, contactCard.cipherData);
58
+ return Object.assign({ id: contactCard.id, keyId: contactCard.key.id }, details);
59
+ });
60
+ }
61
+ updateDetails(id, keyId, fields) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ yield (id
64
+ ? this.updateContactCard(id, keyId, fields)
65
+ : this.createContactCard(fields));
66
+ });
67
+ }
68
+ prepareContactCardInput(contactCard) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ const sigPxk = yield this.keyService.getCurrentSigPxk();
71
+ const publicDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, ''));
72
+ const publicSearchableSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, ''));
73
+ const plainDataJson = {
74
+ // contactCard.name.value may have additional attributes such as the id of the contact card.
75
+ // So we create a clean version. Otherwise it will fail server checks.
76
+ name: new ContactCardName(contactCard.name.value),
77
+ };
78
+ const plainDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, plainDataJson));
79
+ return {
80
+ sigPxkId: sigPxk.id,
81
+ publicDataSig,
82
+ publicSearchableSig,
83
+ plainDataSig,
84
+ };
85
+ });
86
+ }
87
+ createContactCard(contactCard) {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ const input = yield this.prepareContactCardInput(contactCard);
90
+ const { rootKey, cipherMeta } = yield this.keyMetaService.wrapContent(contactCard);
91
+ const data = yield this.lrApollo.mutate({
92
+ mutation: CreateContactCardMutation,
93
+ variables: {
94
+ input: Object.assign(Object.assign({}, input), { cipherData: cipherMeta, wrappingKeyId: rootKey.wrappingKeyId, wrappedKey: rootKey.wrappedKey, default: true }),
95
+ },
96
+ });
97
+ return data.createContactCard.contactCard;
98
+ });
99
+ }
100
+ updateContactCard(id, keyId, contactCard) {
101
+ return __awaiter(this, void 0, void 0, function* () {
102
+ const input = yield this.prepareContactCardInput(contactCard);
103
+ const cipherData = yield this.keyGraph.encryptToString(keyId, contactCard);
104
+ const data = yield this.lrApollo.mutate({
105
+ mutation: UpdateContactCardMutation,
106
+ variables: {
107
+ input: Object.assign(Object.assign({}, input), { id,
108
+ cipherData }),
109
+ },
110
+ });
111
+ return data.updateContactCard.contactCard;
112
+ });
113
+ }
114
+ decryptContactCardEdges(edges) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ return Promise.all(edges.map((edge) => __awaiter(this, void 0, void 0, function* () {
117
+ const cc = edge.node;
118
+ return yield this.decryptContactCard(cc);
119
+ })));
120
+ });
121
+ }
122
+ getContactCards() {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const data = yield this.lrApollo.query({
125
+ query: ContactCardListQuery,
126
+ });
127
+ return yield this.decryptContactCardEdges(data.contactCards.edges);
128
+ });
129
+ }
130
+ deleteContactCard(id) {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ const data = yield this.lrApollo.mutate({
133
+ mutation: DeleteContactCardMutation,
134
+ variables: {
135
+ input: {
136
+ id,
137
+ },
138
+ },
139
+ });
140
+ return data.deleteContactCard.id;
141
+ });
142
+ }
143
+ signOut() {
144
+ return __awaiter(this, void 0, void 0, function* () {
145
+ yield this.http
146
+ .post(`${this.config.authUrl}auth/sign-out/`, null, {
147
+ withCredentials: true,
148
+ responseType: 'text',
149
+ })
150
+ .toPromise();
151
+ });
152
+ }
153
+ }
154
+ ProfileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProfileService_Factory() { return new ProfileService(i0.ɵɵinject(i1.LR_CONFIG), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.LrApolloService), i0.ɵɵinject(i4.KeyService), i0.ɵɵinject(i5.KeyMetaService), i0.ɵɵinject(i6.KeyGraphService), i0.ɵɵinject(i7.EncryptionService)); }, token: ProfileService, providedIn: "root" });
155
+ ProfileService.decorators = [
156
+ { type: Injectable, args: [{
157
+ providedIn: 'root',
158
+ },] }
159
+ ];
160
+ ProfileService.ctorParameters = () => [
161
+ { type: undefined, decorators: [{ type: Inject, args: [LR_CONFIG,] }] },
162
+ { type: HttpClient },
163
+ { type: LrApolloService },
164
+ { type: KeyService },
165
+ { type: KeyMetaService },
166
+ { type: KeyGraphService },
167
+ { type: EncryptionService }
168
+ ];
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9wcm9maWxlL3Byb2ZpbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHlCQUF5QixHQUMxQixNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBbUIsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXBELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsZ0JBQWdCLEVBRWhCLHlCQUF5QixHQUMxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsZUFBZSxHQUtoQixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFLekIsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDNkIsTUFBdUIsRUFDMUMsSUFBZ0IsRUFDaEIsUUFBeUIsRUFDekIsVUFBc0IsRUFDdEIsY0FBOEIsRUFDOUIsUUFBeUIsRUFDekIsaUJBQW9DO1FBTmpCLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQzFDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUMzQyxDQUFDO0lBRUUsZ0JBQWdCLENBQUMsWUFBb0I7O1lBQ3pDLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSTtpQkFDbkIsR0FBRyxDQUNGLEdBQ0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUNkLHFDQUFxQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUN4RTtpQkFDQSxTQUFTLEVBQUUsQ0FBQztRQUNqQixDQUFDO0tBQUE7SUFFSyxjQUFjOztZQUtsQixNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FDNUMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBdUI7Z0JBQzlDLEtBQUssRUFBRSxnQkFBZ0I7YUFDeEIsQ0FBQyxDQUFDO1lBRUwsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUU3RCxPQUFPO2dCQUNMLFdBQVc7Z0JBQ1gsV0FBVztnQkFDWCxTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQzthQUNuQyxDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRUssa0JBQWtCLENBQ3RCLFdBQTJCOztZQUUzQixJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNoQixPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUNuRCxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFDbEIsV0FBVyxDQUFDLFVBQVUsQ0FDdkIsQ0FBQztZQUVGLHVCQUNFLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUNsQixLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQ3RCLE9BQU8sRUFDVjtRQUNKLENBQUM7S0FBQTtJQUVLLGFBQWEsQ0FDakIsRUFBVSxFQUNWLEtBQWEsRUFDYixNQUE2Qjs7WUFFN0IsTUFBTSxDQUFDLEVBQUU7Z0JBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7S0FBQTtJQUVhLHVCQUF1QixDQUNuQyxXQUFrQzs7WUFFbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFFeEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDbEMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQ2xELENBQUM7WUFDRixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQ3hDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUNsRCxDQUFDO1lBRUYsTUFBTSxhQUFhLEdBQStCO2dCQUNoRCw0RkFBNEY7Z0JBQzVGLHNFQUFzRTtnQkFDdEUsSUFBSSxFQUFFLElBQUksZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ2xELENBQUM7WUFDRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUNqQyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FDN0QsQ0FBQztZQUVGLE9BQU87Z0JBQ0wsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNuQixhQUFhO2dCQUNiLG1CQUFtQjtnQkFDbkIsWUFBWTthQUNiLENBQUM7UUFDSixDQUFDO0tBQUE7SUFFYSxpQkFBaUIsQ0FDN0IsV0FBa0M7O1lBRWxDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRTlELE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FDbkUsV0FBVyxDQUNaLENBQUM7WUFFRixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUVwQztnQkFDRCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxTQUFTLEVBQUU7b0JBQ1QsS0FBSyxrQ0FDQSxLQUFLLEtBQ1IsVUFBVSxFQUFFLFVBQVUsRUFDdEIsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQ3BDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUM5QixPQUFPLEVBQUUsSUFBSSxHQUNkO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDO1FBQzVDLENBQUM7S0FBQTtJQUVhLGlCQUFpQixDQUM3QixFQUFVLEVBQ1YsS0FBYSxFQUNiLFdBQWtDOztZQUVsQyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUU5RCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztZQUUzRSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUVwQztnQkFDRCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxTQUFTLEVBQUU7b0JBQ1QsS0FBSyxrQ0FDQSxLQUFLLEtBQ1IsRUFBRTt3QkFDRixVQUFVLEdBQ1g7aUJBQ0Y7YUFDRixDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7UUFDNUMsQ0FBQztLQUFBO0lBRUssdUJBQXVCLENBQUMsS0FBSzs7WUFDakMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNoQixLQUFLLENBQUMsR0FBRyxDQUFDLENBQU8sSUFBUyxFQUFFLEVBQUU7Z0JBQzVCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFtQixDQUFDO2dCQUNwQyxPQUFPLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLENBQUMsQ0FBQSxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7S0FBQTtJQUVLLGVBQWU7O1lBQ25CLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQU07Z0JBQzFDLEtBQUssRUFBRSxvQkFBb0I7YUFDNUIsQ0FBQyxDQUFDO1lBRUgsT0FBTyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLENBQUM7S0FBQTtJQUVLLGlCQUFpQixDQUFDLEVBQVU7O1lBQ2hDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQU07Z0JBQzNDLFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUU7d0JBQ0wsRUFBRTtxQkFDSDtpQkFDRjthQUNGLENBQUMsQ0FBQztZQUVILE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztRQUNuQyxDQUFDO0tBQUE7SUFFSyxPQUFPOztZQUNYLE1BQU0sSUFBSSxDQUFDLElBQUk7aUJBQ1osSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGdCQUFnQixFQUFFLElBQUksRUFBRTtnQkFDbEQsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLFlBQVksRUFBRSxNQUFNO2FBQ3JCLENBQUM7aUJBQ0QsU0FBUyxFQUFFLENBQUM7UUFDakIsQ0FBQztLQUFBOzs7O1lBNUxGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQUdJLE1BQU0sU0FBQyxTQUFTO1lBcENaLFVBQVU7WUFFVixlQUFlO1lBU2YsVUFBVTtZQURWLGNBQWM7WUFEZCxlQUFlO1lBRGYsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTHJBcG9sbG9TZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL2xyLWFwb2xsby5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIENvbnRhY3RDYXJkTGlzdFF1ZXJ5LFxuICBEZWxldGVDb250YWN0Q2FyZE11dGF0aW9uLFxufSBmcm9tICcuLi9jb250YWN0LWNhcmQvY29udGFjdC1jYXJkLmdxbCc7XG5pbXBvcnQgeyBDb250YWN0Q2FyZCB9IGZyb20gJy4uL2NvbnRhY3QtY2FyZC9jb250YWN0LWNhcmQuc2VydmljZSc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBLZXlNZXRhU2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktbWV0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTGlmZVJlYWR5Q29uZmlnLCBMUl9DT05GSUcgfSBmcm9tICcuLi9saWZlLXJlYWR5LmNvbmZpZyc7XG5pbXBvcnQgeyBtYXBVc2VyUGxhbnMgfSBmcm9tICcuLi9wbGFuL3BsYW4uc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyUGxhbiB9IGZyb20gJy4uL3BsYW4vcGxhbi50eXBlcyc7XG5pbXBvcnQge1xuICBDcmVhdGVDb250YWN0Q2FyZE11dGF0aW9uLFxuICBDdXJyZW50VXNlclF1ZXJ5LFxuICBDdXJyZW50VXNlclF1ZXJ5VHlwZSxcbiAgVXBkYXRlQ29udGFjdENhcmRNdXRhdGlvbixcbn0gZnJvbSAnLi9wcm9maWxlLmdxbCc7XG5pbXBvcnQge1xuICBBcGlDb250YWN0Q2FyZCxcbiAgQXBpQ3VycmVudFVzZXIsXG4gIENvbnRhY3RDYXJkTmFtZSxcbiAgTWFpbkNvbnRhY3RDYXJkLFxuICBNYWluQ29udGFjdENhcmRGaWVsZHMsXG4gIE1haW5Db250YWN0Q2FyZFBsYWluRmllbGRzLFxuICBQYXNzSWRwQXBpUmVzdWx0LFxufSBmcm9tICcuL3Byb2ZpbGUudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KExSX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IExpZmVSZWFkeUNvbmZpZyxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGtleU1ldGFTZXJ2aWNlOiBLZXlNZXRhU2VydmljZSxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGdldFBhc3NJZHBQYXJhbXMoZW1haWxPclBob25lOiBzdHJpbmcpOiBQcm9taXNlPFBhc3NJZHBBcGlSZXN1bHQ+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5odHRwXG4gICAgICAuZ2V0PFBhc3NJZHBBcGlSZXN1bHQ+KFxuICAgICAgICBgJHtcbiAgICAgICAgICB0aGlzLmNvbmZpZy5hdXRoVXJsXG4gICAgICAgIH11c2Vycy9wYXNzLWlkcC1wYXJhbXMvP2xvZ2luX25hbWU9JHtlbmNvZGVVUklDb21wb25lbnQoZW1haWxPclBob25lKX1gXG4gICAgICApXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRDdXJyZW50VXNlcigpOiBQcm9taXNlPHtcbiAgICBjdXJyZW50VXNlcjogQXBpQ3VycmVudFVzZXI7XG4gICAgY29udGFjdENhcmQ6IEFwaUNvbnRhY3RDYXJkO1xuICAgIHVzZXJQbGFuczogVXNlclBsYW5bXTtcbiAgfT4ge1xuICAgIGNvbnN0IHsgY3VycmVudFVzZXIsIGNvbnRhY3RDYXJkcywgdXNlclBsYW5zIH0gPVxuICAgICAgYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxDdXJyZW50VXNlclF1ZXJ5VHlwZT4oe1xuICAgICAgICBxdWVyeTogQ3VycmVudFVzZXJRdWVyeSxcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgY29udGFjdENhcmQgPSBjb250YWN0Q2FyZHMuZWRnZXMubWFwKCh4KSA9PiB4Lm5vZGUpWzBdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgY29udGFjdENhcmQsXG4gICAgICB1c2VyUGxhbnM6IG1hcFVzZXJQbGFucyh1c2VyUGxhbnMpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBkZWNyeXB0Q29udGFjdENhcmQoXG4gICAgY29udGFjdENhcmQ6IEFwaUNvbnRhY3RDYXJkXG4gICk6IFByb21pc2U8TWFpbkNvbnRhY3RDYXJkPiB7XG4gICAgaWYgKCFjb250YWN0Q2FyZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZGV0YWlscyA9IGF3YWl0IHRoaXMua2V5R3JhcGguZGVjcnlwdEZyb21TdHJpbmc8YW55PihcbiAgICAgIGNvbnRhY3RDYXJkLmtleS5pZCxcbiAgICAgIGNvbnRhY3RDYXJkLmNpcGhlckRhdGFcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBjb250YWN0Q2FyZC5pZCxcbiAgICAgIGtleUlkOiBjb250YWN0Q2FyZC5rZXkuaWQsXG4gICAgICAuLi5kZXRhaWxzLFxuICAgIH07XG4gIH1cblxuICBhc3luYyB1cGRhdGVEZXRhaWxzKFxuICAgIGlkOiBzdHJpbmcsXG4gICAga2V5SWQ6IHN0cmluZyxcbiAgICBmaWVsZHM6IE1haW5Db250YWN0Q2FyZEZpZWxkc1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCAoaWRcbiAgICAgID8gdGhpcy51cGRhdGVDb250YWN0Q2FyZChpZCwga2V5SWQsIGZpZWxkcylcbiAgICAgIDogdGhpcy5jcmVhdGVDb250YWN0Q2FyZChmaWVsZHMpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNvbnRhY3RDYXJkSW5wdXQoXG4gICAgY29udGFjdENhcmQ6IE1haW5Db250YWN0Q2FyZEZpZWxkc1xuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHNpZ1B4ayA9IGF3YWl0IHRoaXMua2V5U2VydmljZS5nZXRDdXJyZW50U2lnUHhrKCk7XG5cbiAgICBjb25zdCBwdWJsaWNEYXRhU2lnID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgJycpXG4gICAgKTtcbiAgICBjb25zdCBwdWJsaWNTZWFyY2hhYmxlU2lnID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgJycpXG4gICAgKTtcblxuICAgIGNvbnN0IHBsYWluRGF0YUpzb246IE1haW5Db250YWN0Q2FyZFBsYWluRmllbGRzID0ge1xuICAgICAgLy8gY29udGFjdENhcmQubmFtZS52YWx1ZSBtYXkgaGF2ZSBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgc3VjaCBhcyB0aGUgaWQgb2YgdGhlIGNvbnRhY3QgY2FyZC5cbiAgICAgIC8vIFNvIHdlIGNyZWF0ZSBhIGNsZWFuIHZlcnNpb24uIE90aGVyd2lzZSBpdCB3aWxsIGZhaWwgc2VydmVyIGNoZWNrcy5cbiAgICAgIG5hbWU6IG5ldyBDb250YWN0Q2FyZE5hbWUoY29udGFjdENhcmQubmFtZS52YWx1ZSksXG4gICAgfTtcbiAgICBjb25zdCBwbGFpbkRhdGFTaWcgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2Uuc2lnbihzaWdQeGsuandrLCBwbGFpbkRhdGFKc29uKVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2lnUHhrSWQ6IHNpZ1B4ay5pZCxcbiAgICAgIHB1YmxpY0RhdGFTaWcsXG4gICAgICBwdWJsaWNTZWFyY2hhYmxlU2lnLFxuICAgICAgcGxhaW5EYXRhU2lnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUNvbnRhY3RDYXJkKFxuICAgIGNvbnRhY3RDYXJkOiBNYWluQ29udGFjdENhcmRGaWVsZHNcbiAgKTogUHJvbWlzZTxBcGlDb250YWN0Q2FyZD4ge1xuICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5wcmVwYXJlQ29udGFjdENhcmRJbnB1dChjb250YWN0Q2FyZCk7XG5cbiAgICBjb25zdCB7IHJvb3RLZXksIGNpcGhlck1ldGEgfSA9IGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2Uud3JhcENvbnRlbnQoXG4gICAgICBjb250YWN0Q2FyZFxuICAgICk7XG5cbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGU8e1xuICAgICAgY3JlYXRlQ29udGFjdENhcmQ6IHsgY29udGFjdENhcmQ6IEFwaUNvbnRhY3RDYXJkIH07XG4gICAgfT4oe1xuICAgICAgbXV0YXRpb246IENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgICBjaXBoZXJEYXRhOiBjaXBoZXJNZXRhLFxuICAgICAgICAgIHdyYXBwaW5nS2V5SWQ6IHJvb3RLZXkud3JhcHBpbmdLZXlJZCxcbiAgICAgICAgICB3cmFwcGVkS2V5OiByb290S2V5LndyYXBwZWRLZXksXG4gICAgICAgICAgZGVmYXVsdDogdHJ1ZSwgLy8gVXNlIHRoaXMgY29udGFjdCBjYXJkIGFzIGRlZmF1bHQgY29udGFjdCBjYXJkLlxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YS5jcmVhdGVDb250YWN0Q2FyZC5jb250YWN0Q2FyZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlQ29udGFjdENhcmQoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBrZXlJZDogc3RyaW5nLFxuICAgIGNvbnRhY3RDYXJkOiBNYWluQ29udGFjdENhcmRGaWVsZHNcbiAgKTogUHJvbWlzZTxBcGlDb250YWN0Q2FyZD4ge1xuICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgdGhpcy5wcmVwYXJlQ29udGFjdENhcmRJbnB1dChjb250YWN0Q2FyZCk7XG5cbiAgICBjb25zdCBjaXBoZXJEYXRhID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoa2V5SWQsIGNvbnRhY3RDYXJkKTtcblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZTx7XG4gICAgICB1cGRhdGVDb250YWN0Q2FyZDogeyBjb250YWN0Q2FyZDogQXBpQ29udGFjdENhcmQgfTtcbiAgICB9Pih7XG4gICAgICBtdXRhdGlvbjogVXBkYXRlQ29udGFjdENhcmRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIC4uLmlucHV0LFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIGNpcGhlckRhdGEsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhLnVwZGF0ZUNvbnRhY3RDYXJkLmNvbnRhY3RDYXJkO1xuICB9XG5cbiAgYXN5bmMgZGVjcnlwdENvbnRhY3RDYXJkRWRnZXMoZWRnZXMpOiBQcm9taXNlPENvbnRhY3RDYXJkW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICBlZGdlcy5tYXAoYXN5bmMgKGVkZ2U6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBjYyA9IGVkZ2Uubm9kZSBhcyBDb250YWN0Q2FyZDtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZGVjcnlwdENvbnRhY3RDYXJkKGNjKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldENvbnRhY3RDYXJkcygpOiBQcm9taXNlPENvbnRhY3RDYXJkW10+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxhbnk+KHtcbiAgICAgIHF1ZXJ5OiBDb250YWN0Q2FyZExpc3RRdWVyeSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmRlY3J5cHRDb250YWN0Q2FyZEVkZ2VzKGRhdGEuY29udGFjdENhcmRzLmVkZ2VzKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUNvbnRhY3RDYXJkKGlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZTxhbnk+KHtcbiAgICAgIG11dGF0aW9uOiBEZWxldGVDb250YWN0Q2FyZE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgaWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRhdGEuZGVsZXRlQ29udGFjdENhcmQuaWQ7XG4gIH1cblxuICBhc3luYyBzaWduT3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaHR0cFxuICAgICAgLnBvc3QoYCR7dGhpcy5jb25maWcuYXV0aFVybH1hdXRoL3NpZ24tb3V0L2AsIG51bGwsIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgIH0pXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,34 @@
1
+ export class CurrentUserKey {
2
+ }
3
+ export class ApiCurrentUser {
4
+ }
5
+ export class ApiContactCard {
6
+ }
7
+ export class ContactCardName {
8
+ constructor(input) {
9
+ this.name = input.name;
10
+ this.title = input.title;
11
+ this.firstName = input.firstName;
12
+ this.lastName = input.lastName;
13
+ }
14
+ }
15
+ export class ContactCardAddress {
16
+ }
17
+ export class MainContactCardProperty {
18
+ }
19
+ export class MainContactCardFields {
20
+ }
21
+ export class MainContactCard extends MainContactCardFields {
22
+ }
23
+ export class MainContactCardPlainFields {
24
+ }
25
+ export var PasswordChangeStatus;
26
+ (function (PasswordChangeStatus) {
27
+ PasswordChangeStatus["InProgress"] = "IN_PROGRESS";
28
+ PasswordChangeStatus["Recovery"] = "RECOVERY";
29
+ })(PasswordChangeStatus || (PasswordChangeStatus = {}));
30
+ export class PassIdpApiResult {
31
+ }
32
+ export class TrustedPartyDetails {
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIvb3B0L2F0bGFzc2lhbi9waXBlbGluZXMvYWdlbnQvYnVpbGQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvcHJvZmlsZS9wcm9maWxlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxjQUFjO0NBTTFCO0FBRUQsTUFBTSxPQUFPLGNBQWM7Q0FPMUI7QUFFRCxNQUFNLE9BQU8sY0FBYztDQU0xQjtBQUVELE1BQU0sT0FBTyxlQUFlO0lBTTFCLFlBQVksS0FBVTtRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtDQU85QjtBQUVELE1BQU0sT0FBTyx1QkFBdUI7Q0FLbkM7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0NBTWpDO0FBRUQsTUFBTSxPQUFPLGVBQWdCLFNBQVEscUJBQXFCO0NBR3pEO0FBRUQsTUFBTSxPQUFPLDBCQUEwQjtDQUV0QztBQUVELE1BQU0sQ0FBTixJQUFZLG9CQUdYO0FBSEQsV0FBWSxvQkFBb0I7SUFDOUIsa0RBQTBCLENBQUE7SUFDMUIsNkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUhXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFHL0I7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0NBUTVCO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtDQVMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJEZWxldGVOb2RlIH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IFBhc3NJZHBQYXJhbXMsIFBhc3NLZXkgfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIEN1cnJlbnRVc2VyS2V5IHtcbiAgcGFzc0tleT86IFBhc3NLZXk7XG4gIG1hc3RlcktleT86IHsgaWQ6IHN0cmluZyB9O1xuICByb290S2V5PzogeyBpZDogc3RyaW5nIH07XG4gIHB4az86IHsgaWQ6IHN0cmluZyB9O1xuICBzaWdQeGs/OiB7IGlkOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEFwaUN1cnJlbnRVc2VyIHtcbiAgaWQ6IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgY3VycmVudFVzZXJLZXk6IEN1cnJlbnRVc2VyS2V5O1xuICB1c2VyRGVsZXRlOiBVc2VyRGVsZXRlTm9kZTtcbiAgZmVhdHVyZXM6IGFueTtcbiAgc2Vzc2lvbkVuY3J5cHRpb25LZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFwaUNvbnRhY3RDYXJkIHtcbiAgaWQ6IHN0cmluZztcbiAgY2lwaGVyRGF0YTogc3RyaW5nO1xuICBrZXk6IHtcbiAgICBpZDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgQ29udGFjdENhcmROYW1lIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgZmlyc3ROYW1lPzogc3RyaW5nO1xuICBsYXN0TmFtZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihpbnB1dDogYW55KSB7XG4gICAgdGhpcy5uYW1lID0gaW5wdXQubmFtZTtcbiAgICB0aGlzLnRpdGxlID0gaW5wdXQudGl0bGU7XG4gICAgdGhpcy5maXJzdE5hbWUgPSBpbnB1dC5maXJzdE5hbWU7XG4gICAgdGhpcy5sYXN0TmFtZSA9IGlucHV0Lmxhc3ROYW1lO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb250YWN0Q2FyZEFkZHJlc3Mge1xuICBmdWxsQWRkcmVzczogc3RyaW5nO1xuICBzdHJlZXRBZGRyZXNzOiBzdHJpbmc7XG4gIHN1YnVyYjogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xuICBwb3N0Y29kZTogc3RyaW5nO1xuICBjb3VudHJ5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNYWluQ29udGFjdENhcmRQcm9wZXJ0eTxUPiB7XG4gIHZhbHVlOiBUO1xuICBoYXNNdWx0aXBsZTogYm9vbGVhbjtcblxuICB2YWx1ZXM/OiB7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBUIH1bXTtcbn1cblxuZXhwb3J0IGNsYXNzIE1haW5Db250YWN0Q2FyZEZpZWxkcyB7XG4gIG5hbWU6IE1haW5Db250YWN0Q2FyZFByb3BlcnR5PENvbnRhY3RDYXJkTmFtZT47XG4gIGVtYWlsOiBNYWluQ29udGFjdENhcmRQcm9wZXJ0eTxzdHJpbmc+O1xuICBpbWFnZTogTWFpbkNvbnRhY3RDYXJkUHJvcGVydHk8c3RyaW5nPjtcbiAgcGhvbmU6IE1haW5Db250YWN0Q2FyZFByb3BlcnR5PHN0cmluZz47XG4gIGFkZHJlc3M6IE1haW5Db250YWN0Q2FyZFByb3BlcnR5PENvbnRhY3RDYXJkQWRkcmVzcz47XG59XG5cbmV4cG9ydCBjbGFzcyBNYWluQ29udGFjdENhcmQgZXh0ZW5kcyBNYWluQ29udGFjdENhcmRGaWVsZHMge1xuICBpZDogc3RyaW5nO1xuICBrZXlJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTWFpbkNvbnRhY3RDYXJkUGxhaW5GaWVsZHMge1xuICBuYW1lOiBDb250YWN0Q2FyZE5hbWU7XG59XG5cbmV4cG9ydCBlbnVtIFBhc3N3b3JkQ2hhbmdlU3RhdHVzIHtcbiAgSW5Qcm9ncmVzcyA9ICdJTl9QUk9HUkVTUycsXG4gIFJlY292ZXJ5ID0gJ1JFQ09WRVJZJyxcbn1cblxuZXhwb3J0IGNsYXNzIFBhc3NJZHBBcGlSZXN1bHQge1xuICBwYXNzd29yZENoYW5nZVN0YXR1cz86IFBhc3N3b3JkQ2hhbmdlU3RhdHVzO1xuICBjdXJyZW50UGFzc0lkcFBhcmFtczogUGFzc0lkcFBhcmFtcztcbiAgbmV3UGFzc0lkcFBhcmFtczogUGFzc0lkcFBhcmFtcztcbiAgdHBQYXNzd29yZFJlc2V0OiB7XG4gICAgcGFzc0lkcFBhcmFtczogUGFzc0lkcFBhcmFtcztcbiAgICByZXNldFVzZXJuYW1lOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBUcnVzdGVkUGFydHlEZXRhaWxzIHtcbiAgbmFtZTogQ29udGFjdENhcmROYW1lO1xuICBlbWFpbD86IHN0cmluZztcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIHBob25lcz86IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W107XG4gIGFkZHJlc3Nlcz86IHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBDb250YWN0Q2FyZEFkZHJlc3M7XG4gIH1bXTtcbn1cbiJdfQ==
@@ -1,25 +1,25 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { Injectable } from '@angular/core';
3
- import { FileType, DeleteFileMutation, CreateFileMutation } from './record.gql';
4
3
  import { LrApolloService } from '../api/lr-apollo.service';
5
- import { KeyMetaService } from '../cryptography/key-meta.service';
6
- import { FileService } from '../api/file.service';
7
- import { KeyGraphService } from '../cryptography/key-graph.service';
4
+ import { FileUploadService } from '../file-upload/file-upload.service';
5
+ import { KeyGraphService } from '../key/key-graph.service';
6
+ import { KeyMetaService } from '../key/key-meta.service';
7
+ import { CreateFileMutation, DeleteFileMutation, FileType } from './record.gql';
8
8
  import * as i0 from "@angular/core";
9
- import * as i1 from "../api/file.service";
9
+ import * as i1 from "../file-upload/file-upload.service";
10
10
  import * as i2 from "../api/lr-apollo.service";
11
- import * as i3 from "../cryptography/key-meta.service";
12
- import * as i4 from "../cryptography/key-graph.service";
11
+ import * as i3 from "../key/key-meta.service";
12
+ import * as i4 from "../key/key-graph.service";
13
13
  export class RecordAttachmentService {
14
- constructor(fileService, lrApollo, keyMetaService, keyGraph) {
15
- this.fileService = fileService;
14
+ constructor(fileUploadService, lrApollo, keyMetaService, keyGraph) {
15
+ this.fileUploadService = fileUploadService;
16
16
  this.lrApollo = lrApollo;
17
17
  this.keyMetaService = keyMetaService;
18
18
  this.keyGraph = keyGraph;
19
19
  }
20
20
  downloadAttachment(fileStateNodeId, keyId) {
21
21
  return __awaiter(this, void 0, void 0, function* () {
22
- const encryptedFile = yield this.fileService.downloadEncryptedFile(fileStateNodeId);
22
+ const encryptedFile = yield this.fileUploadService.downloadEncryptedFile(fileStateNodeId);
23
23
  return yield this.keyGraph.decryptFile(keyId, encryptedFile);
24
24
  });
25
25
  }
@@ -51,9 +51,9 @@ export class RecordAttachmentService {
51
51
  fileSize: attachment.file.size,
52
52
  lastModified: attachment.file.lastModified,
53
53
  };
54
- const fileContent = yield this.fileService.loadFile(attachment.file);
54
+ const fileContent = yield this.fileUploadService.loadFile(attachment.file);
55
55
  const doubleWrappedContent = yield this.keyMetaService.doubleWrapContent(secureContent, [recordId], fileContent);
56
- const contentId = yield this.fileService.uploadEncryptedFile({
56
+ const contentId = yield this.fileUploadService.uploadEncryptedFile({
57
57
  encryptedContent: doubleWrappedContent.cipherFileContent,
58
58
  fileName: attachment.name,
59
59
  });
@@ -86,16 +86,16 @@ export class RecordAttachmentService {
86
86
  });
87
87
  }
88
88
  }
89
- RecordAttachmentService.ɵprov = i0.ɵɵdefineInjectable({ factory: function RecordAttachmentService_Factory() { return new RecordAttachmentService(i0.ɵɵinject(i1.FileService), i0.ɵɵinject(i2.LrApolloService), i0.ɵɵinject(i3.KeyMetaService), i0.ɵɵinject(i4.KeyGraphService)); }, token: RecordAttachmentService, providedIn: "root" });
89
+ RecordAttachmentService.ɵprov = i0.ɵɵdefineInjectable({ factory: function RecordAttachmentService_Factory() { return new RecordAttachmentService(i0.ɵɵinject(i1.FileUploadService), i0.ɵɵinject(i2.LrApolloService), i0.ɵɵinject(i3.KeyMetaService), i0.ɵɵinject(i4.KeyGraphService)); }, token: RecordAttachmentService, providedIn: "root" });
90
90
  RecordAttachmentService.decorators = [
91
91
  { type: Injectable, args: [{
92
92
  providedIn: 'root',
93
93
  },] }
94
94
  ];
95
95
  RecordAttachmentService.ctorParameters = () => [
96
- { type: FileService },
96
+ { type: FileUploadService },
97
97
  { type: LrApolloService },
98
98
  { type: KeyMetaService },
99
99
  { type: KeyGraphService }
100
100
  ];
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWF0dGFjaG1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvb3B0L2F0bGFzc2lhbi9waXBlbGluZXMvYWdlbnQvYnVpbGQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvcmVjb3JkL3JlY29yZC1hdHRhY2htZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7OztBQUtwRSxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQ1UsV0FBd0IsRUFDeEIsUUFBeUIsRUFDekIsY0FBOEIsRUFDOUIsUUFBeUI7UUFIekIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQ2hDLENBQUM7SUFFRSxrQkFBa0IsQ0FDdEIsZUFBdUIsRUFDdkIsS0FBYTs7WUFFYixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQ2hFLGVBQWUsQ0FDaEIsQ0FBQztZQUVGLE9BQU8sTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDL0QsQ0FBQztLQUFBO0lBRUssaUJBQWlCLENBQ3JCLFFBQWdCLEVB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QUMsQ0FBQztRQUNMLENBQUM7S0FBQTs7OztZQTNGRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQUxRLFdBQVc7WUFGWCxlQUFlO1lBQ2YsY0FBYztZQUVkLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWxlVHlwZSwgRGVsZXRlRmlsZU11dGF0aW9uLCBDcmVhdGVGaWxlTXV0YXRpb24gfSBmcm9tICcuL3JlY29yZC5ncWwnO1xuaW1wb3J0IHsgTmV3QXR0YWNobWVudCwgTmV3T3JVcGRhdGVkQXR0YWNobWVudCB9IGZyb20gJy4vcmVjb3JkLnR5cGVzJztcbmltcG9ydCB7IExyQXBvbGxvU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1hcG9sbG8uc2VydmljZSc7XG5pbXBvcnQgeyBLZXlNZXRhU2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktbWV0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LWdyYXBoLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVjb3JkQXR0YWNobWVudFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZpbGVTZXJ2aWNlOiBGaWxlU2VydmljZSxcbiAgICBwcml2YXRlIGxyQXBvbGxvOiBMckFwb2xsb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlNZXRhU2VydmljZTogS2V5TWV0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlHcmFwaDogS2V5R3JhcGhTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBkb3dubG9hZEF0dGFjaG1lbnQoXG4gICAgZmlsZVN0YXRlTm9kZUlkOiBzdHJpbmcsXG4gICAga2V5SWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGVuY3J5cHRlZEZpbGUgPSBhd2FpdCB0aGlzLmZpbGVTZXJ2aWNlLmRvd25sb2FkRW5jcnlwdGVkRmlsZShcbiAgICAgIGZpbGVTdGF0ZU5vZGVJZFxuICAgICk7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5rZXlHcmFwaC5kZWNyeXB0RmlsZShrZXlJZCwgZW5jcnlwdGVkRmlsZSk7XG4gIH1cblxuICBhc3luYyB1cGxvYWRBdHRhY2htZW50cyhcbiAgICByZWNvcmRJZDogc3RyaW5nLFxuICAgIGF0dGFjaG1lbnRzOiBOZXdPclVwZGF0ZWRBdHRhY2htZW50W11cbiAgKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IGZpbGVJZHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIChhdHRhY2htZW50cyB8fCBbXSkubWFwKGFzeW5jICh4KSA9PiB7XG4gICAgICAgIGlmICh4LmZpbGVJZCkge1xuICAgICAgICAgIGlmICh4LmlzRGVsZXRlZCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVBdHRhY2htZW50KHguZmlsZUlkKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4geC5maWxlSWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFkZEF0dGFjaG1lbnQocmVjb3JkSWQsIHgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIGZpbGVJZHMuZmlsdGVyKCh4KSA9PiB4KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWRkQXR0YWNobWVudChcbiAgICByZWNvcmRJZDogc3RyaW5nLFxuICAgIGF0dGFjaG1lbnQ6IE5ld0F0dGFjaG1lbnRcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzZWN1cmVDb250ZW50ID0ge1xuICAgICAgbmFtZTogYXR0YWNobWVudC5uYW1lLFxuICAgICAgZmllbGRJZDogYXR0YWNobWVudC5maWVsZElkLFxuICAgICAgZmlsZVR5cGU6IGF0dGFjaG1lbnQuZmlsZS50eXBlLFxuICAgICAgZmlsZVNpemU6IGF0dGFjaG1lbnQuZmlsZS5zaXplLFxuICAgICAgbGFzdE1vZGlmaWVkOiBhdHRhY2htZW50LmZpbGUubGFzdE1vZGlmaWVkLFxuICAgIH07XG4gICAgY29uc3QgZmlsZUNvbnRlbnQgPSBhd2FpdCB0aGlzLmZpbGVTZXJ2aWNlLmxvYWRGaWxlKGF0dGFjaG1lbnQuZmlsZSk7XG4gICAgY29uc3QgZG91YmxlV3JhcHBlZENvbnRlbnQgPSBhd2FpdCB0aGlzLmtleU1ldGFTZXJ2aWNlLmRvdWJsZVdyYXBDb250ZW50KFxuICAgICAgc2VjdXJlQ29udGVudCxcbiAgICAgIFtyZWNvcmRJZF0sXG4gICAgICBmaWxlQ29udGVudFxuICAgICk7XG5cbiAgICBjb25zdCBjb250ZW50SWQgPSBhd2FpdCB0aGlzLmZpbGVTZXJ2aWNlLnVwbG9hZEVuY3J5cHRlZEZpbGUoe1xuICAgICAgZW5jcnlwdGVkQ29udGVudDogZG91YmxlV3JhcHBlZENvbnRlbnQuY2lwaGVyRmlsZUNvbnRlbnQsXG4gICAgICBmaWxlTmFtZTogYXR0YWNobWVudC5uYW1lLFxuICAgIH0pO1xuXG4gICAgLy8gU2F2ZSBmaWxlXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZTxhbnk+KHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBwbGFpbk1ldGE6IEpTT04uc3RyaW5naWZ5KHsgZmlsZVR5cGU6IEZpbGVUeXBlLlJlY29yZEF0dGFjaG1lbnQgfSksXG4gICAgICAgICAgd3JhcHBlZFN0YXRlS2V5OiBkb3VibGVXcmFwcGVkQ29udGVudC5kb3VibGVXcmFwcGVkS2V5LFxuICAgICAgICAgIGNpcGhlck1ldGE6IGRvdWJsZVdyYXBwZWRDb250ZW50LmNpcGhlck1ldGEsXG4gICAgICAgICAgcGFyZW50RGlyZWN0b3JpZXM6IGRvdWJsZVdyYXBwZWRDb250ZW50LndyYXBwZWRLZXlzLm1hcCgoeCkgPT4gKHtcbiAgICAgICAgICAgIGRpcmVjdG9yeUlkOiB4LmRpcmVjdG9yeUlkLFxuICAgICAgICAgICAgd3JhcHBpbmdLZXlJZDogeC53cmFwcGluZ0tleUlkLFxuICAgICAgICAgICAgd3JhcHBlZEZpbGVLZXk6IHgud3JhcHBlZEtleSxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgY29udGVudFJlc291cmNlOiBjb250ZW50SWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiByZXNwb25zZS5jcmVhdGVGaWxlLmZpbGUuaWQ7XG4gIH1cblxuICBhc3luYyBkZWxldGVBdHRhY2htZW50KGZpbGVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IERlbGV0ZUZpbGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogeyBmaWxlSWQgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLWF0dGFjaG1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvb3B0L2F0bGFzc2lhbi9waXBlbGluZXMvYWdlbnQvYnVpbGQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvcmVjb3JkL3JlY29yZC1hdHRhY2htZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7O0FBTWhGLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFDVSxpQkFBb0MsRUFDcEMsUUFBeUIsRUFDekIsY0FBOEIsRUFDOUIsUUFBeUI7UUFIekIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7SUFDaEMsQ0FBQztJQUVFLGtCQUFrQixDQUN0QixlQUF1QixFQUN2QixLQUFhOztZQUViLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUN0RSxlQUFlLENBQ2hCLENBQUM7WUFFRixPQUFPLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQy9ELENBQUM7S0FBQTtJQUVLLGlCQUFpQixDQUNy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LEVBQUU7YUFDdEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBOzs7O1lBM0ZGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBUlEsaUJBQWlCO1lBRGpCLGVBQWU7WUFHZixjQUFjO1lBRGQsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExyQXBvbGxvU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1hcG9sbG8uc2VydmljZSc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkU2VydmljZSB9IGZyb20gJy4uL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleU1ldGFTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1tZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3JlYXRlRmlsZU11dGF0aW9uLCBEZWxldGVGaWxlTXV0YXRpb24sIEZpbGVUeXBlIH0gZnJvbSAnLi9yZWNvcmQuZ3FsJztcbmltcG9ydCB7IE5ld0F0dGFjaG1lbnQsIE5ld09yVXBkYXRlZEF0dGFjaG1lbnQgfSBmcm9tICcuL3JlY29yZC50eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZWNvcmRBdHRhY2htZW50U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmlsZVVwbG9hZFNlcnZpY2U6IEZpbGVVcGxvYWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbHJBcG9sbG86IExyQXBvbGxvU2VydmljZSxcbiAgICBwcml2YXRlIGtleU1ldGFTZXJ2aWNlOiBLZXlNZXRhU2VydmljZSxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGRvd25sb2FkQXR0YWNobWVudChcbiAgICBmaWxlU3RhdGVOb2RlSWQ6IHN0cmluZyxcbiAgICBrZXlJZDogc3RyaW5nXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZW5jcnlwdGVkRmlsZSA9IGF3YWl0IHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UuZG93bmxvYWRFbmNyeXB0ZWRGaWxlKFxuICAgICAgZmlsZVN0YXRlTm9kZUlkXG4gICAgKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmtleUdyYXBoLmRlY3J5cHRGaWxlKGtleUlkLCBlbmNyeXB0ZWRGaWxlKTtcbiAgfVxuXG4gIGFzeW5jIHVwbG9hZEF0dGFjaG1lbnRzKFxuICAgIHJlY29yZElkOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM6IE5ld09yVXBkYXRlZEF0dGFjaG1lbnRbXVxuICApOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgZmlsZUlkcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgKGF0dGFjaG1lbnRzIHx8IFtdKS5tYXAoYXN5bmMgKHgpID0+IHtcbiAgICAgICAgaWYgKHguZmlsZUlkKSB7XG4gICAgICAgICAgaWYgKHguaXNEZWxldGVkKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZUF0dGFjaG1lbnQoeC5maWxlSWQpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB4LmZpbGVJZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWRkQXR0YWNobWVudChyZWNvcmRJZCwgeCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gZmlsZUlkcy5maWx0ZXIoKHgpID0+IHgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhZGRBdHRhY2htZW50KFxuICAgIHJlY29yZElkOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudDogTmV3QXR0YWNobWVudFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHNlY3VyZUNvbnRlbnQgPSB7XG4gICAgICBuYW1lOiBhdHRhY2htZW50Lm5hbWUsXG4gICAgICBmaWVsZElkOiBhdHRhY2htZW50LmZpZWxkSWQsXG4gICAgICBmaWxlVHlwZTogYXR0YWNobWVudC5maWxlLnR5cGUsXG4gICAgICBmaWxlU2l6ZTogYXR0YWNobWVudC5maWxlLnNpemUsXG4gICAgICBsYXN0TW9kaWZpZWQ6IGF0dGFjaG1lbnQuZmlsZS5sYXN0TW9kaWZpZWQsXG4gICAgfTtcbiAgICBjb25zdCBmaWxlQ29udGVudCA9IGF3YWl0IHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UubG9hZEZpbGUoYXR0YWNobWVudC5maWxlKTtcbiAgICBjb25zdCBkb3VibGVXcmFwcGVkQ29udGVudCA9IGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2UuZG91YmxlV3JhcENvbnRlbnQoXG4gICAgICBzZWN1cmVDb250ZW50LFxuICAgICAgW3JlY29yZElkXSxcbiAgICAgIGZpbGVDb250ZW50XG4gICAgKTtcblxuICAgIGNvbnN0IGNvbnRlbnRJZCA9IGF3YWl0IHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UudXBsb2FkRW5jcnlwdGVkRmlsZSh7XG4gICAgICBlbmNyeXB0ZWRDb250ZW50OiBkb3VibGVXcmFwcGVkQ29udGVudC5jaXBoZXJGaWxlQ29udGVudCxcbiAgICAgIGZpbGVOYW1lOiBhdHRhY2htZW50Lm5hbWUsXG4gICAgfSk7XG5cbiAgICAvLyBTYXZlIGZpbGVcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlPGFueT4oe1xuICAgICAgbXV0YXRpb246IENyZWF0ZUZpbGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIHBsYWluTWV0YTogSlNPTi5zdHJpbmdpZnkoeyBmaWxlVHlwZTogRmlsZVR5cGUuUmVjb3JkQXR0YWNobWVudCB9KSxcbiAgICAgICAgICB3cmFwcGVkU3RhdGVLZXk6IGRvdWJsZVdyYXBwZWRDb250ZW50LmRvdWJsZVdyYXBwZWRLZXksXG4gICAgICAgICAgY2lwaGVyTWV0YTogZG91YmxlV3JhcHBlZENvbnRlbnQuY2lwaGVyTWV0YSxcbiAgICAgICAgICBwYXJlbnREaXJlY3RvcmllczogZG91YmxlV3JhcHBlZENvbnRlbnQud3JhcHBlZEtleXMubWFwKCh4KSA9PiAoe1xuICAgICAgICAgICAgZGlyZWN0b3J5SWQ6IHguZGlyZWN0b3J5SWQsXG4gICAgICAgICAgICB3cmFwcGluZ0tleUlkOiB4LndyYXBwaW5nS2V5SWQsXG4gICAgICAgICAgICB3cmFwcGVkRmlsZUtleTogeC53cmFwcGVkS2V5LFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgICBjb250ZW50UmVzb3VyY2U6IGNvbnRlbnRJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmNyZWF0ZUZpbGUuZmlsZS5pZDtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUF0dGFjaG1lbnQoZmlsZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZSh7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlRmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7IGZpbGVJZCB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -3,14 +3,14 @@ import { RecordAttachmentService } from './record-attachment.service';
3
3
  import { Injectable } from '@angular/core';
4
4
  import { LrApolloService } from '../api/lr-apollo.service';
5
5
  import { CategoryFilter } from '../category/category.gql';
6
- import { KeyMetaService } from '../cryptography/key-meta.service';
6
+ import { KeyMetaService } from '../key/key-meta.service';
7
7
  import { DirectoryType } from './../category/category.gql';
8
8
  import { CreateRecordContainerMutation, CreateRecordMutation, DeleteRecordMutation, FileType, GetRecordQuery, RecordAttachmentFilter, RecordContentFilter, UpdateRecordMutation, } from './record.gql';
9
9
  import { AccessLevel } from '../category/category.types';
10
10
  import { CategoryService } from '../category/category.service';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "../api/lr-apollo.service";
13
- import * as i2 from "../cryptography/key-meta.service";
13
+ import * as i2 from "../key/key-meta.service";
14
14
  import * as i3 from "../category/category.service";
15
15
  import * as i4 from "./record-attachment.service";
16
16
  export class RecordService {
@@ -203,4 +203,4 @@ RecordService.ctorParameters = () => [
203
203
  { type: CategoryService },
204
204
  { type: RecordAttachmentService }
205
205
  ];
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3JlY29yZC9yZWNvcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFPM0QsT0FBTyxFQUNMLDZCQUE2QixFQUM3QixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLFFBQVEsRUFDUixjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUVuQixvQkFBb0IsR0FDckIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFZLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBSy9ELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ1UsUUFBeUIsRUFDekIsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsdUJBQWdEO1FBSGhELGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtJQUN2RCxDQUFDO0lBRVMsU0FBUyxDQUFDLFFBQWdCOztZQUNyQyxNQUFNLEVBQUUsTUFBTSxF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QixDQUFDLGdCQUFnQjt3QkFDbEQsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFVBQVU7cUJBQ3hDO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsSUFBSTtnQkFDRixNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FDbEQsUUFBUSxFQUNSLGFBQWEsQ0FBQyxXQUFXLENBQzFCLENBQUM7YUFDSDtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ3pDO1lBQ0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLENBQUM7S0FBQTtJQUVZLGFBQWEsQ0FBQyxRQUFnQjs7WUFDekMsMkVBQTJFO1lBQzNFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0QsQ0FBQztLQUFBO0lBRVksZUFBZSxDQUFDLFFBQWdCOztZQUMzQyw2RUFBNkU7WUFDN0UsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRSxDQUFDO0tBQUE7SUFFWSxZQUFZLENBQUMsUUFBZ0I7O1lBQ3hDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRTthQUN4QixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7Ozs7WUFoTkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUExQlEsZUFBZTtZQUVmLGNBQWM7WUFvQmQsZUFBZTtZQXhCZix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWNvcmRBdHRhY2htZW50U2VydmljZSB9IGZyb20gJy4vcmVjb3JkLWF0dGFjaG1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMckFwb2xsb1NlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItYXBvbGxvLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlGaWx0ZXIgfSBmcm9tICcuLi9jYXRlZ29yeS9jYXRlZ29yeS5ncWwnO1xuaW1wb3J0IHsgS2V5TWV0YVNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LW1ldGEuc2VydmljZSc7XG5pbXBvcnQgeyBEaXJlY3RvcnlUeXBlIH0gZnJvbSAnLi8uLi9jYXRlZ29yeS9jYXRlZ29yeS5ncWwnO1xuaW1wb3J0IHtcbiAgTHJSZWNvcmQsXG4gIE5ld1JlY29yZCxcbiAgVXBkYXRlZFJlY29yZCxcbiAgUmVjb3JkQXR0YWNobWVudCxcbn0gZnJvbSAnLi9yZWNvcmQudHlwZXMnO1xuaW1wb3J0IHtcbiAgQ3JlYXRlUmVjb3JkQ29udGFpbmVyTXV0YXRpb24sXG4gIENyZWF0ZVJlY29yZE11dGF0aW9uLFxuICBEZWxldGVSZWNvcmRNdXRhdGlvbixcbiAgRmlsZVR5cGUsXG4gIEdldFJlY29yZFF1ZXJ5LFxuICBSZWNvcmRBdHRhY2htZW50RmlsdGVyLFxuICBSZWNvcmRDb250ZW50RmlsdGVyLFxuICBVcGRhdGVSZWNvcmRDb250YWluZXJNdXRhdGlvbixcbiAgVXBkYXRlUmVjb3JkTXV0YXRpb24sXG59IGZyb20gJy4vcmVjb3JkLmdxbCc7XG5pbXBvcnQgeyBDYXRlZ29yeSwgQWNjZXNzTGV2ZWwgfSBmcm9tICcuLi9jYXRlZ29yeS9jYXRlZ29yeS50eXBlcyc7XG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuLi9jYXRlZ29yeS9jYXRlZ29yeS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlY29yZFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGxyQXBvbGxvOiBMckFwb2xsb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlNZXRhU2VydmljZTogS2V5TWV0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZSxcbiAgICBwcml2YXRlIHJlY29yZEF0dGFjaG1lbnRTZXJ2aWNlOiBSZWNvcmRBdHRhY2htZW50U2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGdldFJlY29yZChyZWNvcmRJZDogc3RyaW5nKTogUHJvbWlzZTxMclJlY29yZD4ge1xuICAgIGNvbnN0IHsgcmVjb3JkIH0gPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PGFueT4oe1xuICAgICAgcXVlcnk6IEdldFJlY29yZFF1ZXJ5KCksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaWQ6IHJlY29yZElkLFxuICAgICAgICBjYXRlZ29yeUZpbHRlcjogQ2F0ZWdvcnlGaWx0ZXIsXG4gICAgICAgIGNvbnRlbnRGaWx0ZXI6IFJlY29yZENvbnRlbnRGaWx0ZXIsXG4gICAgICAgIGF0dGFjaG1lbnRzRmlsdGVyOiBSZWNvcmRBdHRhY2htZW50RmlsdGVyLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBjb250ZW50cyA9IHJlY29yZC5jb250ZW50LmVkZ2VzWzBdLm5vZGUuY2hpbGRGaWxlO1xuICAgIGNvbnN0IHsgbmFtZSwgcmVjb3JkVHlwZSwgZmllbGRzIH0gPVxuICAgICAgKGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2UuZGVjcnlwdE1ldGEoY29udGVudHMuY3VycmVudFZlcnNpb24uc3RhdGUpKSB8fFxuICAgICAge307XG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IGF3YWl0IFByb21pc2UuYWxsPENhdGVnb3J5W10+KFxuICAgICAgcmVjb3JkLnBhcmVudENhdGVnb3JpZXMuZWRnZXMubWFwKGFzeW5jICh4OiBhbnkpID0+IFtcbiAgICAgICAgLi4uKGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLm1hcFBhcmVudENhdGVnb3JpZXMoXG4gICAgICAgICAgeC5ub2RlLnBhcmVudERpcmVjdG9yeVxuICAgICAgICApKSxcbiAgICAgICAgYXdhaXQgdGhpcy5jYXRlZ29yeVNlcnZpY2UubWFwQ2F0ZWdvcnkoeC5ub2RlLnBhcmVudERpcmVjdG9yeSksXG4gICAgICBdKVxuICAgICk7XG4gICAgY29uc3QgYXR0YWNobWVudHMgPSBhd2FpdCB0aGlzLm1hcEF0dGFjaG1lbnRzKHJlY29yZC5hdHRhY2htZW50cy5lZGdlcyk7XG4gICAgY29uc3QgaXNPd25lciA9XG4gICAgICByZWNvcmQuYWNjZXNzUm9sZXMgJiZcbiAgICAgIHJlY29yZC5hY2Nlc3NSb2xlcy5zb21lKCh4KSA9PiB4LnJvbGUgPT09IEFjY2Vzc0xldmVsLk93bmVyKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogcmVjb3JkLmlkLFxuICAgICAga2V5SWQ6IHJlY29yZC5rZXlJZCxcbiAgICAgIHVwZGF0ZUtleUlkOiBjb250ZW50cy5rZXlJZCxcbiAgICAgIHVwZGF0ZUlkOiBjb250ZW50cy5pZCxcbiAgICAgIG5hbWUsXG4gICAgICByZWNvcmRUeXBlLFxuICAgICAgZmllbGRzLFxuICAgICAgY2F0ZWdvcmllcyxcbiAgICAgIGF0dGFjaG1lbnRzLFxuICAgICAgbXlBY2Nlc3NMZXZlbDogaXNPd25lciA/IEFjY2Vzc0xldmVsLk93bmVyIDogcmVjb3JkLmFjY2Vzc1JvbGVzWzBdLnJvbGUsXG4gICAgICBzaGFyZWRBY2Nlc3M6IGlzT3duZXJcbiAgICAgICAgPyByZWNvcmQuYWNjZXNzUm9sZXNcbiAgICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHgucm9sZSAhPT0gQWNjZXNzTGV2ZWwuT3duZXIpXG4gICAgICAgICAgICAubWFwKCh4KSA9PiAoe1xuICAgICAgICAgICAgICB0cnVzdGVkUGFydHlJZDogeC50cnVzdGVkUGFydHkgJiYgeC50cnVzdGVkUGFydHkuaWQsXG4gICAgICAgICAgICAgIGFjY2Vzc0xldmVsOiB4LnJvbGUsXG4gICAgICAgICAgICAgIGlzSW5oZXJpdGVkOiB4Lm1ldGhvZCA9PT0gJ2luaGVyaXRlZCcsXG4gICAgICAgICAgICAgIGluaGVyaXRlZEZyb206IHguaW5oZXJpdGVkRnJvbSAmJiB4LmluaGVyaXRlZEZyb20uaWQsXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgOiBbXSxcbiAgICAgIGlzQXJjaGl2ZWQ6ICEhcmVjb3JkLmFyY2hpdmVkLFxuICAgICAgY3JlYXRlZE9uOiByZWNvcmQuY3JlYXRlZCxcbiAgICAgIGxhc3RNb2RpZmllZDpcbiAgICAgICAgbmV3IERhdGUocmVjb3JkLm1vZGlmaWVkKSA+XG4gICAgICAgIG5ldyBEYXRlKGNvbnRlbnRzLmN1cnJlbnRWZXJzaW9uLnN0YXRlLm1vZGlmaWVkKVxuICAgICAgICAgID8gcmVjb3JkLm1vZGlmaWVkXG4gICAgICAgICAgOiBjb250ZW50cy5jdXJyZW50VmVyc2lvbi5zdGF0ZS5tb2RpZmllZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBtYXBBdHRhY2htZW50cyhcbiAgICBhdHRhY2htZW50czogYW55W11cbiAgKTogUHJvbWlzZTxSZWNvcmRBdHRhY2htZW50W10+IHtcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGw8UmVjb3JkQXR0YWNobWVudD4oXG4gICAgICBhdHRhY2htZW50c1xuICAgICAgICAubWFwKCh4KSA9PiB4Lm5vZGUuY2hpbGRGaWxlKVxuICAgICAgICAubWFwKGFzeW5jICh4OiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCB7IG5hbWUsIGZpZWxkSWQsIGZpbGVUeXBlLCBmaWxlU2l6ZSwgbGFzdE1vZGlmaWVkIH0gPVxuICAgICAgICAgICAgKGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2UuZGVjcnlwdE1ldGEoeC5jdXJyZW50VmVyc2lvbi5zdGF0ZSkpIHx8XG4gICAgICAgICAgICB7fTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmaWxlSWQ6IHguaWQsXG4gICAgICAgICAgICBrZXlJZDogeC5jdXJyZW50VmVyc2lvbi5zdGF0ZS5rZXlJZCxcbiAgICAgICAgICAgIGNvbnRlbnRJZDogeC5jdXJyZW50VmVyc2lvbi5zdGF0ZS5pZCxcbiAgICAgICAgICAgIGZpZWxkSWQsXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgZmlsZVR5cGUsXG4gICAgICAgICAgICBmaWxlU2l6ZSxcbiAgICAgICAgICAgIGxhc3RNb2RpZmllZCxcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlUmVjb3JkKFxuICAgIG5ld1JlY29yZDogTmV3UmVjb3JkXG4gICk6IFByb21pc2U8eyByZWNvcmRJZDogc3RyaW5nOyBhdHRhY2htZW50RXJyb3I/OiBFcnJvciB9PiB7XG4gICAgLy8gQ3JlYXRlIGRpcmVjdG9yeSB0aGF0IGhvbGRzIHRoZSByZWNvcmRcbiAgICBjb25zdCB3cmFwcGVkQ29udGVudCA9IGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2Uud3JhcENvbnRlbnQoXG4gICAgICBudWxsLFxuICAgICAgbmV3UmVjb3JkLmNhdGVnb3J5SWRzXG4gICAgKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlPGFueT4oe1xuICAgICAgbXV0YXRpb246IENyZWF0ZVJlY29yZENvbnRhaW5lck11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBsYWluTWV0YTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGRpcmVjdG9yeVR5cGU6IERpcmVjdG9yeVR5cGUuUmVjb3JkLFxuICAgICAgICAgIGlzSGlkZGVuOiBmYWxzZSxcbiAgICAgICAgfSksXG4gICAgICAgIHBhcmVudERpcmVjdG9yaWVzOiB3cmFwcGVkQ29udGVudC53cmFwcGVkS2V5cyxcbiAgICAgICAgcGFyZW50Um9vdERpcmVjdG9yeTogd3JhcHBlZENvbnRlbnQucm9vdEtleSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3QgcmVjb3JkSWQgPSByZXNwb25zZS5uZXcuY2F0ZWdvcnkuaWQ7XG4gICAgY29uc3Qgc2VjdXJlQ29udGVudCA9IHtcbiAgICAgIG5hbWU6IG5ld1JlY29yZC5uYW1lLFxuICAgICAgcmVjb3JkVHlwZTogbmV3UmVjb3JkLnJlY29yZFR5cGUsXG4gICAgICBmaWVsZHM6IG5ld1JlY29yZC5maWVsZHMsXG4gICAgfTtcbiAgICBjb25zdCBkb3VibGVXcmFwcGVkQ29udGVudCA9IGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2UuZG91YmxlV3JhcENvbnRlbnQoXG4gICAgICBzZWN1cmVDb250ZW50LFxuICAgICAgW3JlY29yZElkXVxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIGZpbGUgdGhhdCBob2xkcyB0aGUgcmVjb3JkIGNvbnRlbnRzXG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IENyZWF0ZVJlY29yZE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgcGxhaW5NZXRhOiBKU09OLnN0cmluZ2lmeSh7IGZpbGVUeXBlOiBGaWxlVHlwZS5SZWNvcmRDb250ZW50IH0pLFxuICAgICAgICAgIHdyYXBwZWRTdGF0ZUtleTogZG91YmxlV3JhcHBlZENvbnRlbnQuZG91YmxlV3JhcHBlZEtleSxcbiAgICAgICAgICBjaXBoZXJNZXRhOiBkb3VibGVXcmFwcGVkQ29udGVudC5jaXBoZXJNZXRhLFxuICAgICAgICAgIHBhcmVudERpcmVjdG9yaWVzOiBkb3VibGVXcmFwcGVkQ29udGVudC53cmFwcGVkS2V5cy5tYXAoKHgpID0+ICh7XG4gICAgICAgICAgICBkaXJlY3RvcnlJZDogeC5kaXJlY3RvcnlJZCxcbiAgICAgICAgICAgIHdyYXBwaW5nS2V5SWQ6IHgud3JhcHBpbmdLZXlJZCxcbiAgICAgICAgICAgIHdyYXBwZWRGaWxlS2V5OiB4LndyYXBwZWRLZXksXG4gICAgICAgICAgfSkpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnJlY29yZEF0dGFjaG1lbnRTZXJ2aWNlLnVwbG9hZEF0dGFjaG1lbnRzKFxuICAgICAgICByZWNvcmRJZCxcbiAgICAgICAgbmV3UmVjb3JkLmF0dGFjaG1lbnRzXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICByZXR1cm4geyByZWNvcmRJZCwgYXR0YWNobWVudEVycm9yOiBlIH07XG4gICAgfVxuICAgIHJldHVybiB7IHJlY29yZElkIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlUmVjb3JkKFxuICAgIHJlY29yZElkOiBzdHJpbmcsXG4gICAgdXBkYXRlSWQ6IHN0cmluZyxcbiAgICB1cGRhdGVLZXlJZDogc3RyaW5nLFxuICAgIHVwZGF0ZWRSZWNvcmQ6IFVwZGF0ZWRSZWNvcmRcbiAgKTogUHJvbWlzZTx7IHJlY29yZElkOiBzdHJpbmc7IGF0dGFjaG1lbnRFcnJvcj86IEVycm9yIH0+IHtcbiAgICBjb25zdCBzZWN1cmVDb250ZW50ID0ge1xuICAgICAgbmFtZTogdXBkYXRlZFJlY29yZC5uYW1lLFxuICAgICAgcmVjb3JkVHlwZTogdXBkYXRlZFJlY29yZC5yZWNvcmRUeXBlLFxuICAgICAgZmllbGRzOiB1cGRhdGVkUmVjb3JkLmZpZWxkcyxcbiAgICB9O1xuICAgIGNvbnN0IHJlV3JhcHBlZENvbnRlbnQgPSBhd2FpdCB0aGlzLmtleU1ldGFTZXJ2aWNlLnJlV3JhcENvbnRlbnQoXG4gICAgICB1cGRhdGVLZXlJZCxcbiAgICAgIHNlY3VyZUNvbnRlbnRcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZVJlY29yZE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZmlsZUlkOiB1cGRhdGVJZCxcbiAgICAgICAgICBwbGFpbk1ldGE6IEpTT04uc3RyaW5naWZ5KHsgZmlsZVR5cGU6IEZpbGVUeXBlLlJlY29yZENvbnRlbnQgfSksXG4gICAgICAgICAgd3JhcHBlZFN0YXRlS2V5OiByZVdyYXBwZWRDb250ZW50LmRvdWJsZVdyYXBwZWRLZXksXG4gICAgICAgICAgY2lwaGVyTWV0YTogcmVXcmFwcGVkQ29udGVudC5jaXBoZXJNZXRhLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnJlY29yZEF0dGFjaG1lbnRTZXJ2aWNlLnVwbG9hZEF0dGFjaG1lbnRzKFxuICAgICAgICByZWNvcmRJZCxcbiAgICAgICAgdXBkYXRlZFJlY29yZC5hdHRhY2htZW50c1xuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgcmV0dXJuIHsgcmVjb3JkSWQsIGF0dGFjaG1lbnRFcnJvcjogZSB9O1xuICAgIH1cbiAgICByZXR1cm4geyByZWNvcmRJZCB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFyY2hpdmVSZWNvcmQocmVjb3JkSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEFsbCBjb250ZW50IG9mIHRoZSByZWNvcmQgc2hvdWxkIGFsc28gYmUgYXJjaGl2ZWQsIGhlbmNlLCByZWN1cnNpdmU9dHJ1ZVxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5U2VydmljZS5hcmNoaXZlRGlyZWN0b3J5KHJlY29yZElkLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1bmFyY2hpdmVSZWNvcmQocmVjb3JkSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEFsbCBjb250ZW50IG9mIHRoZSByZWNvcmQgc2hvdWxkIGFsc28gYmUgdW5hcmNoaXZlZCwgaGVuY2UsIHJlY3Vyc2l2ZT10cnVlXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLnVuYXJjaGl2ZURpcmVjdG9yeShyZWNvcmRJZCwgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlUmVjb3JkKHJlY29yZElkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZSh7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlUmVjb3JkTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHsgcmVjb3JkSWQgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3JlY29yZC9yZWNvcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFPM0QsT0FBTyxFQUNMLDZCQUE2QixFQUM3QixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLFFBQVEsRUFDUixjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUVuQixvQkFBb0IsR0FDckIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFZLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBSy9ELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ1UsUUFBeUIsRUFDekIsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsdUJBQWdEO1FBSGhELGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtJQUN2RCxDQUFDO0lBRVMsU0FBUyxDQUFDLFFBQWdCOztZQUNyQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBTTtnQkFDaEQsS0FBSyxFQUFFLGNBQWMsRUFBRTtnQkFDdkIsU0FBUyxFQUFFO29CQUNULEVBQUUsRUFBRSxRQUFRO29CQUNaLGNBQWMsRUFBRSxjQUFjO29CQUM5QixhQUFhLEVBQUUsbUJBQW1CO29CQUNsQyxpQkFBaUIsRUFBRSxzQkFBc0I7aUJBQzFDO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUN4RCxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FDaEMsQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RFLEVBQUUsQ0FBQztZQUNMLE1BQU0sVUFBVSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDbEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBTyxDQUFNLEVBQUUsRUFBRTtnQkFBQyxPQUFBO29CQUNsRCxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FDdkIsQ0FBQztvQkFDRixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO2lCQUMvRCxDQUFBO2NBQUEsQ0FBQyxDQUNILENBQUM7WUFDRixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4RSxNQUFNLE9BQU8sR0FDWCxNQUFNLENBQUMsV0FBVztnQkFDbEIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRS9ELE9BQU87Z0JBQ0wsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNiLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbkIsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLO2dCQUMzQixRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ3JCLElBQUk7Z0JBQ0osVUFBVTtnQkFDVixNQUFNO2dCQUNOLFVBQVU7Z0JBQ1YsV0FBVztnQkFDWCxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQ3ZFLFlBQVksRUFBRSxPQUFPO29CQUNuQixDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVc7eUJBQ2YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxLQUFLLENBQUM7eUJBQzNDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzt3QkFDWCxjQUFjLEVBQUUsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUU7d0JBQ25ELFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSTt3QkFDbkIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssV0FBVzt3QkFDckMsYUFBYSxFQUFFLENBQUMsQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFO3FCQUNyRCxDQUFDLENBQUM7b0JBQ1AsQ0FBQyxDQUFDLEVBQUU7Z0JBQ04sVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUTtnQkFDN0IsU0FBUyxFQUFFLE1BQU0sQ0FBQyxPQUFPO2dCQUN6QixZQUFZLEVBQ1YsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztvQkFDekIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO29CQUM5QyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVE7b0JBQ2pCLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRO2FBQzdDLENBQUM7UUFDSixDQUFDO0tBQUE7SUFFYSxjQUFjLENBQzFCLFdBQWtCOztZQUVsQixPQUFPLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDdEIsV0FBVztpQkFDUixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2lCQUM1QixHQUFHLENBQUMsQ0FBTyxDQUFNLEVBQUUsRUFBRTtnQkFDcEIsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsR0FDdkQsQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQy9ELEVBQUUsQ0FBQztnQkFFTCxPQUFPO29CQUNMLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRTtvQkFDWixLQUFLLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSztvQkFDbkMsU0FBUyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3BDLE9BQU87b0JBQ1AsSUFBSTtvQkFDSixRQUFRO29CQUNSLFFBQVE7b0JBQ1IsWUFBWTtpQkFDYixDQUFDO1lBQ0osQ0FBQyxDQUFBLENBQUMsQ0FDTCxDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRVksWUFBWSxDQUN2QixTQUFvQjs7WUFFcEIseUNBQXlDO1lBQ3pDLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQzFELElBQUksRUFDSixTQUFTLENBQUMsV0FBVyxDQUN0QixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBTTtnQkFDL0MsUUFBUSxFQUFFLDZCQUE2QjtnQkFDdkMsU0FBUyxFQUFFO29CQUNULFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUN4QixhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU07d0JBQ25DLFFBQVEsRUFBRSxLQUFLO3FCQUNoQixDQUFDO29CQUNGLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxXQUFXO29CQUM3QyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsT0FBTztpQkFDNUM7YUFDRixDQUFDLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDMUMsTUFBTSxhQUFhLEdBQUc7Z0JBQ3BCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtnQkFDcEIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxVQUFVO2dCQUNoQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07YUFDekIsQ0FBQztZQUNGLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUN0RSxhQUFhLEVBQ2IsQ0FBQyxRQUFRLENBQUMsQ0FDWCxDQUFDO1lBRUYsaURBQWlEO1lBQ2pELE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUU7d0JBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO3dCQUMvRCxlQUFlLEVBQUUsb0JBQW9CLENBQUMsZ0JBQWdCO3dCQUN0RCxVQUFVLEVBQUUsb0JBQW9CLENBQUMsVUFBVTt3QkFDM0MsaUJBQWlCLEVBQUUsb0JBQW9CLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDOUQsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXOzRCQUMxQixhQUFhLEVBQUUsQ0FBQyxDQUFDLGFBQWE7NEJBQzlCLGNBQWMsRUFBRSxDQUFDLENBQUMsVUFBVTt5QkFDN0IsQ0FBQyxDQUFDO3FCQUNKO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsSUFBSTtnQkFDRixNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FDbEQsUUFBUSxFQUNSLFNBQVMsQ0FBQyxXQUFXLENBQ3RCLENBQUM7YUFDSDtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ3pDO1lBQ0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLENBQUM7S0FBQTtJQUVZLFlBQVksQ0FDdkIsUUFBZ0IsRUFDaEIsUUFBZ0IsRUFDaEIsV0FBbUIsRUFDbkIsYUFBNEI7O1lBRTVCLE1BQU0sYUFBYSxHQUFHO2dCQUNwQixJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUk7Z0JBQ3hCLFVBQVUsRUFBRSxhQUFhLENBQUMsVUFBVTtnQkFDcEMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxNQUFNO2FBQzdCLENBQUM7WUFDRixNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQzlELFdBQVcsRUFDWCxhQUFhLENBQ2QsQ0FBQztZQUVGLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUU7d0JBQ0wsTUFBTSxFQUFFLFFBQVE7d0JBQ2hCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQzt3QkFDL0QsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGdCQUFnQjt3QkFDbEQsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFVBQVU7cUJBQ3hDO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsSUFBSTtnQkFDRixNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FDbEQsUUFBUSxFQUNSLGFBQWEsQ0FBQyxXQUFXLENBQzFCLENBQUM7YUFDSDtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ3pDO1lBQ0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLENBQUM7S0FBQTtJQUVZLGFBQWEsQ0FBQyxRQUFnQjs7WUFDekMsMkVBQTJFO1lBQzNFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0QsQ0FBQztLQUFBO0lBRVksZUFBZSxDQUFDLFFBQWdCOztZQUMzQyw2RUFBNkU7WUFDN0UsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRSxDQUFDO0tBQUE7SUFFWSxZQUFZLENBQUMsUUFBZ0I7O1lBQ3hDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRTthQUN4QixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7Ozs7WUFoTkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUExQlEsZUFBZTtZQUVmLGNBQWM7WUFvQmQsZUFBZTtZQXhCZix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWNvcmRBdHRhY2htZW50U2VydmljZSB9IGZyb20gJy4vcmVjb3JkLWF0dGFjaG1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMckFwb2xsb1NlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItYXBvbGxvLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlGaWx0ZXIgfSBmcm9tICcuLi9jYXRlZ29yeS9jYXRlZ29yeS5ncWwnO1xuaW1wb3J0IHsgS2V5TWV0YVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LW1ldGEuc2VydmljZSc7XG5pbXBvcnQgeyBEaXJlY3RvcnlUeXBlIH0gZnJvbSAnLi8uLi9jYXRlZ29yeS9jYXRlZ29yeS5ncWwnO1xuaW1wb3J0IHtcbiAgTHJSZWNvcmQsXG4gIE5ld1JlY29yZCxcbiAgVXBkYXRlZFJlY29yZCxcbiAgUmVjb3JkQXR0YWNobWVudCxcbn0gZnJvbSAnLi9yZWNvcmQudHlwZXMnO1xuaW1wb3J0IHtcbiAgQ3JlYXRlUmVjb3JkQ29udGFpbmVyTXV0YXRpb24sXG4gIENyZWF0ZVJlY29yZE11dGF0aW9uLFxuICBEZWxldGVSZWNvcmRNdXRhdGlvbixcbiAgRmlsZVR5cGUsXG4gIEdldFJlY29yZFF1ZXJ5LFxuICBSZWNvcmRBdHRhY2htZW50RmlsdGVyLFxuICBSZWNvcmRDb250ZW50RmlsdGVyLFxuICBVcGRhdGVSZWNvcmRDb250YWluZXJNdXRhdGlvbixcbiAgVXBkYXRlUmVjb3JkTXV0YXRpb24sXG59IGZyb20gJy4vcmVjb3JkLmdxbCc7XG5pbXBvcnQgeyBDYXRlZ29yeSwgQWNjZXNzTGV2ZWwgfSBmcm9tICcuLi9jYXRlZ29yeS9jYXRlZ29yeS50eXBlcyc7XG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuLi9jYXRlZ29yeS9jYXRlZ29yeS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlY29yZFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGxyQXBvbGxvOiBMckFwb2xsb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlNZXRhU2VydmljZTogS2V5TWV0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZSxcbiAgICBwcml2YXRlIHJlY29yZEF0dGFjaG1lbnRTZXJ2aWNlOiBSZWNvcmRBdHRhY2htZW50U2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGdldFJlY29yZChyZWNvcmRJZDogc3RyaW5nKTogUHJvbWlzZTxMclJlY29yZD4ge1xuICAgIGNvbnN0IHsgcmVjb3JkIH0gPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PGFueT4oe1xuICAgICAgcXVlcnk6IEdldFJlY29yZFF1ZXJ5KCksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaWQ6IHJlY29yZElkLFxuICAgICAgICBjYXRlZ29yeUZpbHRlcjogQ2F0ZWdvcnlGaWx0ZXIsXG4gICAgICAgIGNvbnRlbnRGaWx0ZXI6IFJlY29yZENvbnRlbnRGaWx0ZXIsXG4gICAgICAgIGF0dGFjaG1lbnRzRmlsdGVyOiBSZWNvcmRBdHRhY2htZW50RmlsdGVyLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBjb250ZW50cyA9IHJlY29yZC5jb250ZW50LmVkZ2VzWzBdLm5vZGUuY2hpbGRGaWxlO1xuICAgIGNvbnN0IHsgbmFtZSwgcmVjb3JkVHlwZSwgZmllbGRzIH0gPVxuICAgICAgKGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2UuZGVjcnlwdE1ldGEoY29udGVudHMuY3VycmVudFZlcnNpb24uc3RhdGUpKSB8fFxuICAgICAge307XG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IGF3YWl0IFByb21pc2UuYWxsPENhdGVnb3J5W10+KFxuICAgICAgcmVjb3JkLnBhcmVudENhdGVnb3JpZXMuZWRnZXMubWFwKGFzeW5jICh4OiBhbnkpID0+IFtcbiAgICAgICAgLi4uKGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLm1hcFBhcmVudENhdGVnb3JpZXMoXG4gICAgICAgICAgeC5ub2RlLnBhcmVudERpcmVjdG9yeVxuICAgICAgICApKSxcbiAgICAgICAgYXdhaXQgdGhpcy5jYXRlZ29yeVNlcnZpY2UubWFwQ2F0ZWdvcnkoeC5ub2RlLnBhcmVudERpcmVjdG9yeSksXG4gICAgICBdKVxuICAgICk7XG4gICAgY29uc3QgYXR0YWNobWVudHMgPSBhd2FpdCB0aGlzLm1hcEF0dGFjaG1lbnRzKHJlY29yZC5hdHRhY2htZW50cy5lZGdlcyk7XG4gICAgY29uc3QgaXNPd25lciA9XG4gICAgICByZWNvcmQuYWNjZXNzUm9sZXMgJiZcbiAgICAgIHJlY29yZC5hY2Nlc3NSb2xlcy5zb21lKCh4KSA9PiB4LnJvbGUgPT09IEFjY2Vzc0xldmVsLk93bmVyKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogcmVjb3JkLmlkLFxuICAgICAga2V5SWQ6IHJlY29yZC5rZXlJZCxcbiAgICAgIHVwZGF0ZUtleUlkOiBjb250ZW50cy5rZXlJZCxcbiAgICAgIHVwZGF0ZUlkOiBjb250ZW50cy5pZCxcbiAgICAgIG5hbWUsXG4gICAgICByZWNvcmRUeXBlLFxuICAgICAgZmllbGRzLFxuICAgICAgY2F0ZWdvcmllcyxcbiAgICAgIGF0dGFjaG1lbnRzLFxuICAgICAgbXlBY2Nlc3NMZXZlbDogaXNPd25lciA/IEFjY2Vzc0xldmVsLk93bmVyIDogcmVjb3JkLmFjY2Vzc1JvbGVzWzBdLnJvbGUsXG4gICAgICBzaGFyZWRBY2Nlc3M6IGlzT3duZXJcbiAgICAgICAgPyByZWNvcmQuYWNjZXNzUm9sZXNcbiAgICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHgucm9sZSAhPT0gQWNjZXNzTGV2ZWwuT3duZXIpXG4gICAgICAgICAgICAubWFwKCh4KSA9PiAoe1xuICAgICAgICAgICAgICB0cnVzdGVkUGFydHlJZDogeC50cnVzdGVkUGFydHkgJiYgeC50cnVzdGVkUGFydHkuaWQsXG4gICAgICAgICAgICAgIGFjY2Vzc0xldmVsOiB4LnJvbGUsXG4gICAgICAgICAgICAgIGlzSW5oZXJpdGVkOiB4Lm1ldGhvZCA9PT0gJ2luaGVyaXRlZCcsXG4gICAgICAgICAgICAgIGluaGVyaXRlZEZyb206IHguaW5oZXJpdGVkRnJvbSAmJiB4LmluaGVyaXRlZEZyb20uaWQsXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgOiBbXSxcbiAgICAgIGlzQXJjaGl2ZWQ6ICEhcmVjb3JkLmFyY2hpdmVkLFxuICAgICAgY3JlYXRlZE9uOiByZWNvcmQuY3JlYXRlZCxcbiAgICAgIGxhc3RNb2RpZmllZDpcbiAgICAgICAgbmV3IERhdGUocmVjb3JkLm1vZGlmaWVkKSA+XG4gICAgICAgIG5ldyBEYXRlKGNvbnRlbnRzLmN1cnJlbnRWZXJzaW9uLnN0YXRlLm1vZGlmaWVkKVxuICAgICAgICAgID8gcmVjb3JkLm1vZGlmaWVkXG4gICAgICAgICAgOiBjb250ZW50cy5jdXJyZW50VmVyc2lvbi5zdGF0ZS5tb2RpZmllZCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBtYXBBdHRhY2htZW50cyhcbiAgICBhdHRhY2htZW50czogYW55W11cbiAgKTogUHJvbWlzZTxSZWNvcmRBdHRhY2htZW50W10+IHtcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGw8UmVjb3JkQXR0YWNobWVudD4oXG4gICAgICBhdHRhY2htZW50c1xuICAgICAgICAubWFwKCh4KSA9PiB4Lm5vZGUuY2hpbGRGaWxlKVxuICAgICAgICAubWFwKGFzeW5jICh4OiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCB7IG5hbWUsIGZpZWxkSWQsIGZpbGVUeXBlLCBmaWxlU2l6ZSwgbGFzdE1vZGlmaWVkIH0gPVxuICAgICAgICAgICAgKGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2UuZGVjcnlwdE1ldGEoeC5jdXJyZW50VmVyc2lvbi5zdGF0ZSkpIHx8XG4gICAgICAgICAgICB7fTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmaWxlSWQ6IHguaWQsXG4gICAgICAgICAgICBrZXlJZDogeC5jdXJyZW50VmVyc2lvbi5zdGF0ZS5rZXlJZCxcbiAgICAgICAgICAgIGNvbnRlbnRJZDogeC5jdXJyZW50VmVyc2lvbi5zdGF0ZS5pZCxcbiAgICAgICAgICAgIGZpZWxkSWQsXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgZmlsZVR5cGUsXG4gICAgICAgICAgICBmaWxlU2l6ZSxcbiAgICAgICAgICAgIGxhc3RNb2RpZmllZCxcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlUmVjb3JkKFxuICAgIG5ld1JlY29yZDogTmV3UmVjb3JkXG4gICk6IFByb21pc2U8eyByZWNvcmRJZDogc3RyaW5nOyBhdHRhY2htZW50RXJyb3I/OiBFcnJvciB9PiB7XG4gICAgLy8gQ3JlYXRlIGRpcmVjdG9yeSB0aGF0IGhvbGRzIHRoZSByZWNvcmRcbiAgICBjb25zdCB3cmFwcGVkQ29udGVudCA9IGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2Uud3JhcENvbnRlbnQoXG4gICAgICBudWxsLFxuICAgICAgbmV3UmVjb3JkLmNhdGVnb3J5SWRzXG4gICAgKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlPGFueT4oe1xuICAgICAgbXV0YXRpb246IENyZWF0ZVJlY29yZENvbnRhaW5lck11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBsYWluTWV0YTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGRpcmVjdG9yeVR5cGU6IERpcmVjdG9yeVR5cGUuUmVjb3JkLFxuICAgICAgICAgIGlzSGlkZGVuOiBmYWxzZSxcbiAgICAgICAgfSksXG4gICAgICAgIHBhcmVudERpcmVjdG9yaWVzOiB3cmFwcGVkQ29udGVudC53cmFwcGVkS2V5cyxcbiAgICAgICAgcGFyZW50Um9vdERpcmVjdG9yeTogd3JhcHBlZENvbnRlbnQucm9vdEtleSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3QgcmVjb3JkSWQgPSByZXNwb25zZS5uZXcuY2F0ZWdvcnkuaWQ7XG4gICAgY29uc3Qgc2VjdXJlQ29udGVudCA9IHtcbiAgICAgIG5hbWU6IG5ld1JlY29yZC5uYW1lLFxuICAgICAgcmVjb3JkVHlwZTogbmV3UmVjb3JkLnJlY29yZFR5cGUsXG4gICAgICBmaWVsZHM6IG5ld1JlY29yZC5maWVsZHMsXG4gICAgfTtcbiAgICBjb25zdCBkb3VibGVXcmFwcGVkQ29udGVudCA9IGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2UuZG91YmxlV3JhcENvbnRlbnQoXG4gICAgICBzZWN1cmVDb250ZW50LFxuICAgICAgW3JlY29yZElkXVxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIGZpbGUgdGhhdCBob2xkcyB0aGUgcmVjb3JkIGNvbnRlbnRzXG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IENyZWF0ZVJlY29yZE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgcGxhaW5NZXRhOiBKU09OLnN0cmluZ2lmeSh7IGZpbGVUeXBlOiBGaWxlVHlwZS5SZWNvcmRDb250ZW50IH0pLFxuICAgICAgICAgIHdyYXBwZWRTdGF0ZUtleTogZG91YmxlV3JhcHBlZENvbnRlbnQuZG91YmxlV3JhcHBlZEtleSxcbiAgICAgICAgICBjaXBoZXJNZXRhOiBkb3VibGVXcmFwcGVkQ29udGVudC5jaXBoZXJNZXRhLFxuICAgICAgICAgIHBhcmVudERpcmVjdG9yaWVzOiBkb3VibGVXcmFwcGVkQ29udGVudC53cmFwcGVkS2V5cy5tYXAoKHgpID0+ICh7XG4gICAgICAgICAgICBkaXJlY3RvcnlJZDogeC5kaXJlY3RvcnlJZCxcbiAgICAgICAgICAgIHdyYXBwaW5nS2V5SWQ6IHgud3JhcHBpbmdLZXlJZCxcbiAgICAgICAgICAgIHdyYXBwZWRGaWxlS2V5OiB4LndyYXBwZWRLZXksXG4gICAgICAgICAgfSkpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnJlY29yZEF0dGFjaG1lbnRTZXJ2aWNlLnVwbG9hZEF0dGFjaG1lbnRzKFxuICAgICAgICByZWNvcmRJZCxcbiAgICAgICAgbmV3UmVjb3JkLmF0dGFjaG1lbnRzXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICByZXR1cm4geyByZWNvcmRJZCwgYXR0YWNobWVudEVycm9yOiBlIH07XG4gICAgfVxuICAgIHJldHVybiB7IHJlY29yZElkIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlUmVjb3JkKFxuICAgIHJlY29yZElkOiBzdHJpbmcsXG4gICAgdXBkYXRlSWQ6IHN0cmluZyxcbiAgICB1cGRhdGVLZXlJZDogc3RyaW5nLFxuICAgIHVwZGF0ZWRSZWNvcmQ6IFVwZGF0ZWRSZWNvcmRcbiAgKTogUHJvbWlzZTx7IHJlY29yZElkOiBzdHJpbmc7IGF0dGFjaG1lbnRFcnJvcj86IEVycm9yIH0+IHtcbiAgICBjb25zdCBzZWN1cmVDb250ZW50ID0ge1xuICAgICAgbmFtZTogdXBkYXRlZFJlY29yZC5uYW1lLFxuICAgICAgcmVjb3JkVHlwZTogdXBkYXRlZFJlY29yZC5yZWNvcmRUeXBlLFxuICAgICAgZmllbGRzOiB1cGRhdGVkUmVjb3JkLmZpZWxkcyxcbiAgICB9O1xuICAgIGNvbnN0IHJlV3JhcHBlZENvbnRlbnQgPSBhd2FpdCB0aGlzLmtleU1ldGFTZXJ2aWNlLnJlV3JhcENvbnRlbnQoXG4gICAgICB1cGRhdGVLZXlJZCxcbiAgICAgIHNlY3VyZUNvbnRlbnRcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZVJlY29yZE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZmlsZUlkOiB1cGRhdGVJZCxcbiAgICAgICAgICBwbGFpbk1ldGE6IEpTT04uc3RyaW5naWZ5KHsgZmlsZVR5cGU6IEZpbGVUeXBlLlJlY29yZENvbnRlbnQgfSksXG4gICAgICAgICAgd3JhcHBlZFN0YXRlS2V5OiByZVdyYXBwZWRDb250ZW50LmRvdWJsZVdyYXBwZWRLZXksXG4gICAgICAgICAgY2lwaGVyTWV0YTogcmVXcmFwcGVkQ29udGVudC5jaXBoZXJNZXRhLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnJlY29yZEF0dGFjaG1lbnRTZXJ2aWNlLnVwbG9hZEF0dGFjaG1lbnRzKFxuICAgICAgICByZWNvcmRJZCxcbiAgICAgICAgdXBkYXRlZFJlY29yZC5hdHRhY2htZW50c1xuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgcmV0dXJuIHsgcmVjb3JkSWQsIGF0dGFjaG1lbnRFcnJvcjogZSB9O1xuICAgIH1cbiAgICByZXR1cm4geyByZWNvcmRJZCB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFyY2hpdmVSZWNvcmQocmVjb3JkSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEFsbCBjb250ZW50IG9mIHRoZSByZWNvcmQgc2hvdWxkIGFsc28gYmUgYXJjaGl2ZWQsIGhlbmNlLCByZWN1cnNpdmU9dHJ1ZVxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5U2VydmljZS5hcmNoaXZlRGlyZWN0b3J5KHJlY29yZElkLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1bmFyY2hpdmVSZWNvcmQocmVjb3JkSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEFsbCBjb250ZW50IG9mIHRoZSByZWNvcmQgc2hvdWxkIGFsc28gYmUgdW5hcmNoaXZlZCwgaGVuY2UsIHJlY3Vyc2l2ZT10cnVlXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLnVuYXJjaGl2ZURpcmVjdG9yeShyZWNvcmRJZCwgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlUmVjb3JkKHJlY29yZElkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZSh7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlUmVjb3JkTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHsgcmVjb3JkSWQgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19