@lifeready/core 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/README.md +62 -62
  2. package/bundles/lifeready-core.umd.js +15445 -15445
  3. package/bundles/lifeready-core.umd.js.map +1 -1
  4. package/bundles/lifeready-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/ast.js +40 -40
  6. package/esm2015/lib/_common/deferred-promise.js +24 -24
  7. package/esm2015/lib/_common/exceptions.js +157 -157
  8. package/esm2015/lib/_common/queries.gql.js +190 -190
  9. package/esm2015/lib/_common/run-outside-angular.js +79 -79
  10. package/esm2015/lib/_common/types.js +1 -1
  11. package/esm2015/lib/_common/utils.js +44 -44
  12. package/esm2015/lib/api/contact-card.gql.js +79 -79
  13. package/esm2015/lib/api/contact-card.service.js +154 -154
  14. package/esm2015/lib/api/contact-card2.gql.js +60 -60
  15. package/esm2015/lib/api/contact-card2.service.js +103 -103
  16. package/esm2015/lib/api/file.service.js +74 -74
  17. package/esm2015/lib/api/item2.gql.js +110 -110
  18. package/esm2015/lib/api/item2.service.js +311 -311
  19. package/esm2015/lib/api/key-exchange.gql.js +188 -188
  20. package/esm2015/lib/api/key-exchange.service.js +442 -442
  21. package/esm2015/lib/api/key-exchange.types.js +18 -18
  22. package/esm2015/lib/api/key-exchange2.gql.js +171 -171
  23. package/esm2015/lib/api/key-exchange2.service.js +479 -479
  24. package/esm2015/lib/api/lock.gql.js +40 -40
  25. package/esm2015/lib/api/lock.service.js +64 -64
  26. package/esm2015/lib/api/lr-apollo.service.js +46 -46
  27. package/esm2015/lib/api/lr-graphql/index.js +6 -6
  28. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -155
  29. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -213
  30. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -51
  31. package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -48
  32. package/esm2015/lib/api/lr-graphql/lr.service.js +18 -18
  33. package/esm2015/lib/api/message.service.js +138 -138
  34. package/esm2015/lib/api/persist.service.js +181 -181
  35. package/esm2015/lib/api/query-processor/common-processors.service.js +93 -93
  36. package/esm2015/lib/api/query-processor/index.js +3 -3
  37. package/esm2015/lib/api/query-processor/query-processor.service.js +192 -192
  38. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -109
  39. package/esm2015/lib/api/shared-contact-card.service.js +119 -119
  40. package/esm2015/lib/api/shared-contact-card2.gql.js +41 -41
  41. package/esm2015/lib/api/shared-contact-card2.service.js +117 -117
  42. package/esm2015/lib/api/time.service.js +146 -146
  43. package/esm2015/lib/api/types/graphql.types.js +7 -7
  44. package/esm2015/lib/api/types/index.js +3 -3
  45. package/esm2015/lib/api/types/lr-graphql.types.js +71 -71
  46. package/esm2015/lib/auth/auth.config.js +57 -57
  47. package/esm2015/lib/auth/auth.gql.js +48 -48
  48. package/esm2015/lib/auth/auth.types.js +27 -27
  49. package/esm2015/lib/auth/idle.service.js +168 -168
  50. package/esm2015/lib/auth/idle.types.js +7 -7
  51. package/esm2015/lib/auth/lbop.service.js +355 -355
  52. package/esm2015/lib/auth/life-ready-auth.service.js +500 -500
  53. package/esm2015/lib/auth/password.service.js +320 -320
  54. package/esm2015/lib/auth/register.service.js +172 -172
  55. package/esm2015/lib/auth/two-factor.service.js +74 -74
  56. package/esm2015/lib/category/category-meta.service.js +99 -99
  57. package/esm2015/lib/category/category.gql.js +406 -406
  58. package/esm2015/lib/category/category.service.js +390 -390
  59. package/esm2015/lib/category/category.types.js +29 -29
  60. package/esm2015/lib/cryptography/cryptography.types.js +11 -11
  61. package/esm2015/lib/cryptography/encryption.service.js +189 -189
  62. package/esm2015/lib/cryptography/key-factory.service.js +237 -237
  63. package/esm2015/lib/cryptography/key-graph.service.js +280 -280
  64. package/esm2015/lib/cryptography/key-meta.service.js +200 -200
  65. package/esm2015/lib/cryptography/key.service.js +124 -124
  66. package/esm2015/lib/cryptography/slip39.service.js +169 -169
  67. package/esm2015/lib/cryptography/web-crypto.service.js +29 -29
  68. package/esm2015/lib/life-ready.config.js +84 -84
  69. package/esm2015/lib/life-ready.module.js +74 -74
  70. package/esm2015/lib/plan/plan.gql.js +123 -123
  71. package/esm2015/lib/plan/plan.service.js +149 -149
  72. package/esm2015/lib/plan/plan.types.js +11 -11
  73. package/esm2015/lib/record/record-attachment.service.js +101 -101
  74. package/esm2015/lib/record/record.gql.js +179 -179
  75. package/esm2015/lib/record/record.service.js +206 -206
  76. package/esm2015/lib/record/record.types.js +15 -15
  77. package/esm2015/lib/record-type/record-type.service.js +75 -75
  78. package/esm2015/lib/record-type/record-type.types.js +28 -28
  79. package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +105 -105
  80. package/esm2015/lib/scenario/approvals/scenario-approval.types.js +1 -1
  81. package/esm2015/lib/scenario/approvals/scenario-approver.service.js +300 -300
  82. package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +52 -52
  83. package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +97 -97
  84. package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +1 -1
  85. package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +150 -150
  86. package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +229 -229
  87. package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +1 -1
  88. package/esm2015/lib/scenario/scenario-setup.service.js +269 -269
  89. package/esm2015/lib/scenario/scenario.gql.js +368 -368
  90. package/esm2015/lib/scenario/scenario.service.js +611 -611
  91. package/esm2015/lib/scenario/scenario.types.js +64 -64
  92. package/esm2015/lib/search/search.gql.js +62 -62
  93. package/esm2015/lib/search/search.service.js +156 -156
  94. package/esm2015/lib/search/search.types.js +6 -6
  95. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +112 -112
  96. package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +129 -129
  97. package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +4 -4
  98. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -232
  99. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +299 -299
  100. package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -148
  101. package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -326
  102. package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -41
  103. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -87
  104. package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -215
  105. package/esm2015/lib/users/profile-details.service.js +214 -214
  106. package/esm2015/lib/users/profile.gql.js +97 -97
  107. package/esm2015/lib/users/profile.service.js +169 -169
  108. package/esm2015/lib/users/profile.types.js +34 -34
  109. package/esm2015/lib/users/user.gql.js +60 -60
  110. package/esm2015/lib/users/user.service.js +79 -79
  111. package/esm2015/lib/users/user.types.js +5 -5
  112. package/esm2015/lifeready-core.js +10 -10
  113. package/esm2015/public-api.js +81 -81
  114. package/fesm2015/lifeready-core.js +13088 -13088
  115. package/fesm2015/lifeready-core.js.map +1 -1
  116. package/lib/_common/ast.d.ts +11 -11
  117. package/lib/_common/deferred-promise.d.ts +12 -12
  118. package/lib/_common/exceptions.d.ts +109 -109
  119. package/lib/_common/queries.gql.d.ts +10 -10
  120. package/lib/_common/run-outside-angular.d.ts +14 -14
  121. package/lib/_common/types.d.ts +10 -10
  122. package/lib/_common/utils.d.ts +3 -3
  123. package/lib/api/contact-card.gql.d.ts +7 -7
  124. package/lib/api/contact-card.service.d.ts +52 -52
  125. package/lib/api/contact-card2.gql.d.ts +34 -34
  126. package/lib/api/contact-card2.service.d.ts +49 -49
  127. package/lib/api/file.service.d.ts +18 -18
  128. package/lib/api/item2.gql.d.ts +96 -96
  129. package/lib/api/item2.service.d.ts +177 -177
  130. package/lib/api/key-exchange.gql.d.ts +9 -9
  131. package/lib/api/key-exchange.service.d.ts +39 -39
  132. package/lib/api/key-exchange.types.d.ts +196 -196
  133. package/lib/api/key-exchange2.gql.d.ts +125 -125
  134. package/lib/api/key-exchange2.service.d.ts +187 -187
  135. package/lib/api/lock.gql.d.ts +27 -27
  136. package/lib/api/lock.service.d.ts +25 -25
  137. package/lib/api/lr-apollo.service.d.ts +15 -15
  138. package/lib/api/lr-graphql/index.d.ts +5 -5
  139. package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -60
  140. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -27
  141. package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -28
  142. package/lib/api/lr-graphql/lr-mutation.d.ts +8 -8
  143. package/lib/api/lr-graphql/lr.service.d.ts +9 -9
  144. package/lib/api/message.service.d.ts +58 -58
  145. package/lib/api/persist.service.d.ts +31 -31
  146. package/lib/api/query-processor/common-processors.service.d.ts +36 -36
  147. package/lib/api/query-processor/index.d.ts +2 -2
  148. package/lib/api/query-processor/query-processor.service.d.ts +18 -18
  149. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -15
  150. package/lib/api/shared-contact-card.service.d.ts +33 -33
  151. package/lib/api/shared-contact-card2.gql.d.ts +36 -36
  152. package/lib/api/shared-contact-card2.service.d.ts +45 -45
  153. package/lib/api/time.service.d.ts +16 -16
  154. package/lib/api/types/graphql.types.d.ts +29 -29
  155. package/lib/api/types/index.d.ts +2 -2
  156. package/lib/api/types/lr-graphql.types.d.ts +385 -385
  157. package/lib/auth/auth.config.d.ts +5 -5
  158. package/lib/auth/auth.gql.d.ts +15 -15
  159. package/lib/auth/auth.types.d.ts +66 -66
  160. package/lib/auth/idle.service.d.ts +40 -40
  161. package/lib/auth/idle.types.d.ts +10 -10
  162. package/lib/auth/lbop.service.d.ts +91 -91
  163. package/lib/auth/life-ready-auth.service.d.ts +59 -59
  164. package/lib/auth/password.service.d.ts +78 -78
  165. package/lib/auth/register.service.d.ts +25 -25
  166. package/lib/auth/two-factor.service.d.ts +15 -15
  167. package/lib/category/category-meta.service.d.ts +23 -23
  168. package/lib/category/category.gql.d.ts +45 -45
  169. package/lib/category/category.service.d.ts +67 -67
  170. package/lib/category/category.types.d.ts +79 -79
  171. package/lib/cryptography/cryptography.types.d.ts +83 -83
  172. package/lib/cryptography/encryption.service.d.ts +41 -41
  173. package/lib/cryptography/key-factory.service.d.ts +38 -38
  174. package/lib/cryptography/key-graph.service.d.ts +33 -33
  175. package/lib/cryptography/key-meta.service.d.ts +44 -44
  176. package/lib/cryptography/key.service.d.ts +36 -36
  177. package/lib/cryptography/slip39.service.d.ts +43 -43
  178. package/lib/cryptography/web-crypto.service.d.ts +5 -5
  179. package/lib/life-ready.config.d.ts +14 -14
  180. package/lib/life-ready.module.d.ts +5 -5
  181. package/lib/plan/plan.gql.d.ts +11 -11
  182. package/lib/plan/plan.service.d.ts +33 -33
  183. package/lib/plan/plan.types.d.ts +31 -31
  184. package/lib/record/record-attachment.service.d.ts +16 -16
  185. package/lib/record/record.gql.d.ts +14 -14
  186. package/lib/record/record.service.d.ts +25 -25
  187. package/lib/record/record.types.d.ts +57 -57
  188. package/lib/record-type/record-type.service.d.ts +11 -11
  189. package/lib/record-type/record-type.types.d.ts +50 -50
  190. package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -7
  191. package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -63
  192. package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -32
  193. package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -5
  194. package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -17
  195. package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -18
  196. package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -8
  197. package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -30
  198. package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -54
  199. package/lib/scenario/scenario-setup.service.d.ts +22 -22
  200. package/lib/scenario/scenario.gql.d.ts +34 -34
  201. package/lib/scenario/scenario.service.d.ts +58 -58
  202. package/lib/scenario/scenario.types.d.ts +217 -217
  203. package/lib/search/search.gql.d.ts +1 -1
  204. package/lib/search/search.service.d.ts +25 -25
  205. package/lib/search/search.types.d.ts +20 -20
  206. package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -20
  207. package/lib/trusted-parties/tp-password-reset-user.service.d.ts +35 -35
  208. package/lib/trusted-parties/tp-password-reset.constants.d.ts +3 -3
  209. package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -218
  210. package/lib/trusted-parties/tp-password-reset.service.d.ts +130 -130
  211. package/lib/trusted-parties/trusted-party.gql.d.ts +9 -9
  212. package/lib/trusted-parties/trusted-party.service.d.ts +44 -44
  213. package/lib/trusted-parties/trusted-party.types.d.ts +102 -102
  214. package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -79
  215. package/lib/trusted-parties/trusted-party2.service.d.ts +114 -114
  216. package/lib/users/profile-details.service.d.ts +21 -21
  217. package/lib/users/profile.gql.d.ts +11 -11
  218. package/lib/users/profile.service.d.ts +35 -35
  219. package/lib/users/profile.types.d.ts +96 -96
  220. package/lib/users/user.gql.d.ts +9 -9
  221. package/lib/users/user.service.d.ts +12 -12
  222. package/lib/users/user.types.d.ts +23 -23
  223. package/lifeready-core.d.ts +9 -9
  224. package/package.json +1 -1
  225. package/public-api.d.ts +77 -77
@@ -1,103 +1,103 @@
1
- import { __awaiter, __decorate } from "tslib";
2
- import { Injectable, NgZone } from '@angular/core';
3
- import { EncryptionService } from '../cryptography/encryption.service';
4
- import { KeyFactoryService } from '../cryptography/key-factory.service';
5
- import { KeyGraphService } from '../cryptography/key-graph.service';
6
- import { KeyMetaService } from '../cryptography/key-meta.service';
7
- import { KeyService } from '../cryptography/key.service';
8
- import { RunOutsideAngular } from '../_common/run-outside-angular';
9
- import { CreateContactCardMutation, DeleteContactCardMutation, UpdateContactCardMutation, } from './contact-card2.gql';
10
- import { LrMutation } from './lr-graphql';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "../cryptography/key-factory.service";
13
- import * as i2 from "../cryptography/key.service";
14
- import * as i3 from "../cryptography/encryption.service";
15
- import * as i4 from "../cryptography/key-graph.service";
16
- import * as i5 from "../cryptography/key-meta.service";
17
- export class OwnerPlainDataJson {
18
- }
19
- let ContactCard2Service = class ContactCard2Service {
20
- constructor(keyFactory, keyService, encryptionService, keyGraph, keyMetaService, ngZone) {
21
- this.keyFactory = keyFactory;
22
- this.keyService = keyService;
23
- this.encryptionService = encryptionService;
24
- this.keyGraph = keyGraph;
25
- this.keyMetaService = keyMetaService;
26
- this.ngZone = ngZone;
27
- }
28
- createContactCard(input) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- // Get encryption key
31
- const rootKey = yield this.keyService.getCurrentRootKey();
32
- const key = yield this.keyFactory.createKey();
33
- const wrappedKey = yield this.keyGraph.encryptToString(rootKey.jwk, key.toJSON(true));
34
- const cipherData = yield this.keyGraph.encryptToString(key, input.plainCipherDataJson);
35
- const params = yield this.prepareContactCardInput(input);
36
- return new LrMutation({
37
- mutation: CreateContactCardMutation,
38
- variables: {
39
- input: Object.assign(Object.assign({}, params), { wrappingKeyId: rootKey.id, wrappedKey,
40
- cipherData }),
41
- },
42
- });
43
- });
44
- }
45
- updateContactCard(input) {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- // Get encryption key
48
- const cipherData = yield this.keyGraph.encryptToString(input.keyId, input.plainCipherDataJson);
49
- const params = yield this.prepareContactCardInput(input);
50
- return new LrMutation({
51
- mutation: UpdateContactCardMutation,
52
- variables: {
53
- input: Object.assign(Object.assign({}, params), { id: input.id, cipherData }),
54
- },
55
- });
56
- });
57
- }
58
- deleteContactCard(id) {
59
- return new LrMutation({
60
- mutation: DeleteContactCardMutation,
61
- variables: {
62
- input: {
63
- id,
64
- },
65
- },
66
- });
67
- }
68
- prepareContactCardInput(input) {
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, input.publicDataJson));
72
- const publicSearchableSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.publicSearchableJson));
73
- const plainDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.plainDataJson));
74
- return {
75
- sigPxkId: sigPxk.id,
76
- publicDataSig,
77
- publicSearchableSig,
78
- plainDataSig,
79
- };
80
- });
81
- }
82
- };
83
- ContactCard2Service.ɵprov = i0.ɵɵdefineInjectable({ factory: function ContactCard2Service_Factory() { return new ContactCard2Service(i0.ɵɵinject(i1.KeyFactoryService), i0.ɵɵinject(i2.KeyService), i0.ɵɵinject(i3.EncryptionService), i0.ɵɵinject(i4.KeyGraphService), i0.ɵɵinject(i5.KeyMetaService), i0.ɵɵinject(i0.NgZone)); }, token: ContactCard2Service, providedIn: "root" });
84
- ContactCard2Service.decorators = [
85
- { type: Injectable, args: [{
86
- providedIn: 'root',
87
- },] }
88
- ];
89
- ContactCard2Service.ctorParameters = () => [
90
- { type: KeyFactoryService },
91
- { type: KeyService },
92
- { type: EncryptionService },
93
- { type: KeyGraphService },
94
- { type: KeyMetaService },
95
- { type: NgZone }
96
- ];
97
- ContactCard2Service = __decorate([
98
- RunOutsideAngular({
99
- ngZoneName: 'ngZone',
100
- })
101
- ], ContactCard2Service);
102
- export { ContactCard2Service };
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkMi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL25ld3JlcG8va2MtY2xpZW50L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2FwaS9jb250YWN0LWNhcmQyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXpELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLHlCQUF5QixHQUMxQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7QUFtQjFDLE1BQU0sT0FBTyxrQkFBa0I7Q0FFOUI7SUFhWSxtQkFBbUIsU0FBbkIsbUJBQW1CO0lBQzlCLFlBQ1UsVUFBNkIsRUFDN0IsVUFBc0IsRUFDdEIsaUJBQW9DLEVBQ3BDLFFBQXlCLEVBQ3pCLGNBQThCLEVBQzlCLE1BQWM7UUFMZCxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FB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Qjs7O1lBNUNRLGlCQUFpQjtZQUdqQixVQUFVO1lBSlYsaUJBQWlCO1lBRWpCLGVBQWU7WUFDZixjQUFjO1lBSkYsTUFBTTs7QUErQ2QsbUJBQW1CO0lBTi9CLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyxtQkFBbUIsQ0EyRi9CO1NBM0ZZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9lbmNyeXB0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktZmFjdG9yeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2tleS1ncmFwaC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgS2V5TWV0YVNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LW1ldGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYWluQ29udGFjdENhcmRQbGFpbkZpZWxkcyB9IGZyb20gJy4uL3VzZXJzL3Byb2ZpbGUudHlwZXMnO1xyXG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XHJcbmltcG9ydCB7XHJcbiAgQ3JlYXRlQ29udGFjdENhcmRNdXRhdGlvbixcclxuICBEZWxldGVDb250YWN0Q2FyZE11dGF0aW9uLFxyXG4gIFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXHJcbn0gZnJvbSAnLi9jb250YWN0LWNhcmQyLmdxbCc7XHJcbmltcG9ydCB7IExyTXV0YXRpb24gfSBmcm9tICcuL2xyLWdyYXBocWwnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDb250YWN0Q2FyZElucHV0MiB7XHJcbiAgcHVibGljRGF0YUpzb246IGFueTtcclxuICBwdWJsaWNTZWFyY2hhYmxlSnNvbjogYW55O1xyXG4gIHBsYWluQ2lwaGVyRGF0YUpzb246IGFueTtcclxuICBwbGFpbkRhdGFKc29uOiBNYWluQ29udGFjdENhcmRQbGFpbkZpZWxkcztcclxufVxyXG5cclxuLy8gVGhlc2UgY29udGFjdCBuYW1lIGZpZWxkcyBhcmUgZW5mb3JjZWQgYnkgdGhlIHNlcnZlciBzbyB0aGF0IGl0IGNhbiBzZW5kIG91dCBlbWFpbHMgd2l0aFxyXG4vLyBhcHByb3ByaWF0ZSBmb3JtYXQuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdENhcmROYW1lMiB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGZpcnN0TmFtZT86IHN0cmluZztcclxuICBsYXN0TmFtZT86IHN0cmluZztcclxuICAvLyBhZGRpdGlvbmFsIGZpZWxkcyBhcmUgbm90IGFsbG93ZWQgYnkgdGhlIHNlcnZlclxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgT3duZXJQbGFpbkRhdGFKc29uIHtcclxuICBuYW1lOiBDb250YWN0Q2FyZE5hbWUyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNvbnRhY3RDYXJkSW5wdXQyIGV4dGVuZHMgQ3JlYXRlQ29udGFjdENhcmRJbnB1dDIge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAga2V5SWQ6IHN0cmluZztcclxufVxyXG5cclxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcclxuICBuZ1pvbmVOYW1lOiAnbmdab25lJyxcclxufSlcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRhY3RDYXJkMlNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcclxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcclxuICAgIHByaXZhdGUgZW5jcnlwdGlvblNlcnZpY2U6IEVuY3J5cHRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBrZXlHcmFwaDogS2V5R3JhcGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBrZXlNZXRhU2VydmljZTogS2V5TWV0YVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXHJcbiAgKSB7fVxyXG5cclxuICBhc3luYyBjcmVhdGVDb250YWN0Q2FyZChpbnB1dDogQ3JlYXRlQ29udGFjdENhcmRJbnB1dDIpIHtcclxuICAgIC8vIEdldCBlbmNyeXB0aW9uIGtleVxyXG4gICAgY29uc3Qgcm9vdEtleSA9IGF3YWl0IHRoaXMua2V5U2VydmljZS5nZXRDdXJyZW50Um9vdEtleSgpO1xyXG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xyXG4gICAgY29uc3Qgd3JhcHBlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxyXG4gICAgICByb290S2V5Lmp3ayxcclxuICAgICAga2V5LnRvSlNPTih0cnVlKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGNpcGhlckRhdGEgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmVuY3J5cHRUb1N0cmluZyhcclxuICAgICAga2V5LFxyXG4gICAgICBpbnB1dC5wbGFpbkNpcGhlckRhdGFKc29uXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHBhcmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZUNvbnRhY3RDYXJkSW5wdXQoaW5wdXQpO1xyXG5cclxuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XHJcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVDb250YWN0Q2FyZE11dGF0aW9uLFxyXG4gICAgICB2YXJpYWJsZXM6IHtcclxuICAgICAgICBpbnB1dDoge1xyXG4gICAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICAgICAgd3JhcHBpbmdLZXlJZDogcm9vdEtleS5pZCxcclxuICAgICAgICAgIHdyYXBwZWRLZXksXHJcbiAgICAgICAgICBjaXBoZXJEYXRhLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHVwZGF0ZUNvbnRhY3RDYXJkKGlucHV0OiBVcGRhdGVDb250YWN0Q2FyZElucHV0Mikge1xyXG4gICAgLy8gR2V0IGVuY3J5cHRpb24ga2V5XHJcbiAgICBjb25zdCBjaXBoZXJEYXRhID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoXHJcbiAgICAgIGlucHV0LmtleUlkLFxyXG4gICAgICBpbnB1dC5wbGFpbkNpcGhlckRhdGFKc29uXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHBhcmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZUNvbnRhY3RDYXJkSW5wdXQoaW5wdXQpO1xyXG5cclxuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XHJcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVDb250YWN0Q2FyZE11dGF0aW9uLFxyXG4gICAgICB2YXJpYWJsZXM6IHtcclxuICAgICAgICBpbnB1dDoge1xyXG4gICAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICAgICAgaWQ6IGlucHV0LmlkLFxyXG4gICAgICAgICAgY2lwaGVyRGF0YSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVDb250YWN0Q2FyZChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xyXG4gICAgICBtdXRhdGlvbjogRGVsZXRlQ29udGFjdENhcmRNdXRhdGlvbixcclxuICAgICAgdmFyaWFibGVzOiB7XHJcbiAgICAgICAgaW5wdXQ6IHtcclxuICAgICAgICAgIGlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNvbnRhY3RDYXJkSW5wdXQoXHJcbiAgICBpbnB1dDogQ3JlYXRlQ29udGFjdENhcmRJbnB1dDJcclxuICApOiBQcm9taXNlPGFueT4ge1xyXG4gICAgY29uc3Qgc2lnUHhrID0gYXdhaXQgdGhpcy5rZXlTZXJ2aWNlLmdldEN1cnJlbnRTaWdQeGsoKTtcclxuICAgIGNvbnN0IHB1YmxpY0RhdGFTaWcgPSBKU09OLnN0cmluZ2lmeShcclxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5zaWduKHNpZ1B4ay5qd2ssIGlucHV0LnB1YmxpY0RhdGFKc29uKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IHB1YmxpY1NlYXJjaGFibGVTaWcgPSBKU09OLnN0cmluZ2lmeShcclxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5zaWduKHNpZ1B4ay5qd2ssIGlucHV0LnB1YmxpY1NlYXJjaGFibGVKc29uKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IHBsYWluRGF0YVNpZyA9IEpTT04uc3RyaW5naWZ5KFxyXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgaW5wdXQucGxhaW5EYXRhSnNvbilcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2lnUHhrSWQ6IHNpZ1B4ay5pZCxcclxuICAgICAgcHVibGljRGF0YVNpZyxcclxuICAgICAgcHVibGljU2VhcmNoYWJsZVNpZyxcclxuICAgICAgcGxhaW5EYXRhU2lnLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { Injectable, NgZone } from '@angular/core';
3
+ import { EncryptionService } from '../cryptography/encryption.service';
4
+ import { KeyFactoryService } from '../cryptography/key-factory.service';
5
+ import { KeyGraphService } from '../cryptography/key-graph.service';
6
+ import { KeyMetaService } from '../cryptography/key-meta.service';
7
+ import { KeyService } from '../cryptography/key.service';
8
+ import { RunOutsideAngular } from '../_common/run-outside-angular';
9
+ import { CreateContactCardMutation, DeleteContactCardMutation, UpdateContactCardMutation, } from './contact-card2.gql';
10
+ import { LrMutation } from './lr-graphql';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "../cryptography/key-factory.service";
13
+ import * as i2 from "../cryptography/key.service";
14
+ import * as i3 from "../cryptography/encryption.service";
15
+ import * as i4 from "../cryptography/key-graph.service";
16
+ import * as i5 from "../cryptography/key-meta.service";
17
+ export class OwnerPlainDataJson {
18
+ }
19
+ let ContactCard2Service = class ContactCard2Service {
20
+ constructor(keyFactory, keyService, encryptionService, keyGraph, keyMetaService, ngZone) {
21
+ this.keyFactory = keyFactory;
22
+ this.keyService = keyService;
23
+ this.encryptionService = encryptionService;
24
+ this.keyGraph = keyGraph;
25
+ this.keyMetaService = keyMetaService;
26
+ this.ngZone = ngZone;
27
+ }
28
+ createContactCard(input) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ // Get encryption key
31
+ const rootKey = yield this.keyService.getCurrentRootKey();
32
+ const key = yield this.keyFactory.createKey();
33
+ const wrappedKey = yield this.keyGraph.encryptToString(rootKey.jwk, key.toJSON(true));
34
+ const cipherData = yield this.keyGraph.encryptToString(key, input.plainCipherDataJson);
35
+ const params = yield this.prepareContactCardInput(input);
36
+ return new LrMutation({
37
+ mutation: CreateContactCardMutation,
38
+ variables: {
39
+ input: Object.assign(Object.assign({}, params), { wrappingKeyId: rootKey.id, wrappedKey,
40
+ cipherData }),
41
+ },
42
+ });
43
+ });
44
+ }
45
+ updateContactCard(input) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ // Get encryption key
48
+ const cipherData = yield this.keyGraph.encryptToString(input.keyId, input.plainCipherDataJson);
49
+ const params = yield this.prepareContactCardInput(input);
50
+ return new LrMutation({
51
+ mutation: UpdateContactCardMutation,
52
+ variables: {
53
+ input: Object.assign(Object.assign({}, params), { id: input.id, cipherData }),
54
+ },
55
+ });
56
+ });
57
+ }
58
+ deleteContactCard(id) {
59
+ return new LrMutation({
60
+ mutation: DeleteContactCardMutation,
61
+ variables: {
62
+ input: {
63
+ id,
64
+ },
65
+ },
66
+ });
67
+ }
68
+ prepareContactCardInput(input) {
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, input.publicDataJson));
72
+ const publicSearchableSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.publicSearchableJson));
73
+ const plainDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.plainDataJson));
74
+ return {
75
+ sigPxkId: sigPxk.id,
76
+ publicDataSig,
77
+ publicSearchableSig,
78
+ plainDataSig,
79
+ };
80
+ });
81
+ }
82
+ };
83
+ ContactCard2Service.ɵprov = i0.ɵɵdefineInjectable({ factory: function ContactCard2Service_Factory() { return new ContactCard2Service(i0.ɵɵinject(i1.KeyFactoryService), i0.ɵɵinject(i2.KeyService), i0.ɵɵinject(i3.EncryptionService), i0.ɵɵinject(i4.KeyGraphService), i0.ɵɵinject(i5.KeyMetaService), i0.ɵɵinject(i0.NgZone)); }, token: ContactCard2Service, providedIn: "root" });
84
+ ContactCard2Service.decorators = [
85
+ { type: Injectable, args: [{
86
+ providedIn: 'root',
87
+ },] }
88
+ ];
89
+ ContactCard2Service.ctorParameters = () => [
90
+ { type: KeyFactoryService },
91
+ { type: KeyService },
92
+ { type: EncryptionService },
93
+ { type: KeyGraphService },
94
+ { type: KeyMetaService },
95
+ { type: NgZone }
96
+ ];
97
+ ContactCard2Service = __decorate([
98
+ RunOutsideAngular({
99
+ ngZoneName: 'ngZone',
100
+ })
101
+ ], ContactCard2Service);
102
+ export { ContactCard2Service };
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkMi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9hcGkvY29udGFjdC1jYXJkMi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6Qix5QkFBeUIsR0FDMUIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBbUIxQyxNQUFNLE9BQU8sa0JBQWtCO0NBRTlCO0lBYVksbUJBQW1CLFNBQW5CLG1CQUFtQjtJQUM5QixZQUNVLFVBQTZCLEVBQzdCLFVBQXNCLEVBQ3RCLGlCQUFvQyxFQUNwQyxRQUF5QixFQUN6QixjQUE4QixFQUM5QixNQUFjO1FBTGQsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixX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QU07YUFDbkI7OztZQTVDUSxpQkFBaUI7WUFHakIsVUFBVTtZQUpWLGlCQUFpQjtZQUVqQixlQUFlO1lBQ2YsY0FBYztZQUpGLE1BQU07O0FBK0NkLG1CQUFtQjtJQU4vQixpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsbUJBQW1CLENBMkYvQjtTQTNGWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2VuY3J5cHRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBLZXlNZXRhU2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktbWV0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFpbkNvbnRhY3RDYXJkUGxhaW5GaWVsZHMgfSBmcm9tICcuLi91c2Vycy9wcm9maWxlLnR5cGVzJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7XG4gIENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gIERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gIFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG59IGZyb20gJy4vY29udGFjdC1jYXJkMi5ncWwnO1xuaW1wb3J0IHsgTHJNdXRhdGlvbiB9IGZyb20gJy4vbHItZ3JhcGhxbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ29udGFjdENhcmRJbnB1dDIge1xuICBwdWJsaWNEYXRhSnNvbjogYW55O1xuICBwdWJsaWNTZWFyY2hhYmxlSnNvbjogYW55O1xuICBwbGFpbkNpcGhlckRhdGFKc29uOiBhbnk7XG4gIHBsYWluRGF0YUpzb246IE1haW5Db250YWN0Q2FyZFBsYWluRmllbGRzO1xufVxuXG4vLyBUaGVzZSBjb250YWN0IG5hbWUgZmllbGRzIGFyZSBlbmZvcmNlZCBieSB0aGUgc2VydmVyIHNvIHRoYXQgaXQgY2FuIHNlbmQgb3V0IGVtYWlscyB3aXRoXG4vLyBhcHByb3ByaWF0ZSBmb3JtYXQuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhY3RDYXJkTmFtZTIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBmaXJzdE5hbWU/OiBzdHJpbmc7XG4gIGxhc3ROYW1lPzogc3RyaW5nO1xuICAvLyBhZGRpdGlvbmFsIGZpZWxkcyBhcmUgbm90IGFsbG93ZWQgYnkgdGhlIHNlcnZlclxufVxuXG5leHBvcnQgY2xhc3MgT3duZXJQbGFpbkRhdGFKc29uIHtcbiAgbmFtZTogQ29udGFjdENhcmROYW1lMjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDb250YWN0Q2FyZElucHV0MiBleHRlbmRzIENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQyIHtcbiAgaWQ6IHN0cmluZztcbiAga2V5SWQ6IHN0cmluZztcbn1cblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRhY3RDYXJkMlNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlNZXRhU2VydmljZTogS2V5TWV0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgYXN5bmMgY3JlYXRlQ29udGFjdENhcmQoaW5wdXQ6IENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQyKSB7XG4gICAgLy8gR2V0IGVuY3J5cHRpb24ga2V5XG4gICAgY29uc3Qgcm9vdEtleSA9IGF3YWl0IHRoaXMua2V5U2VydmljZS5nZXRDdXJyZW50Um9vdEtleSgpO1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcbiAgICBjb25zdCB3cmFwcGVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICByb290S2V5Lmp3ayxcbiAgICAgIGtleS50b0pTT04odHJ1ZSlcbiAgICApO1xuICAgIGNvbnN0IGNpcGhlckRhdGEgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIGtleSxcbiAgICAgIGlucHV0LnBsYWluQ2lwaGVyRGF0YUpzb25cbiAgICApO1xuXG4gICAgY29uc3QgcGFyYW1zID0gYXdhaXQgdGhpcy5wcmVwYXJlQ29udGFjdENhcmRJbnB1dChpbnB1dCk7XG5cbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgd3JhcHBpbmdLZXlJZDogcm9vdEtleS5pZCxcbiAgICAgICAgICB3cmFwcGVkS2V5LFxuICAgICAgICAgIGNpcGhlckRhdGEsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlQ29udGFjdENhcmQoaW5wdXQ6IFVwZGF0ZUNvbnRhY3RDYXJkSW5wdXQyKSB7XG4gICAgLy8gR2V0IGVuY3J5cHRpb24ga2V5XG4gICAgY29uc3QgY2lwaGVyRGF0YSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgaW5wdXQua2V5SWQsXG4gICAgICBpbnB1dC5wbGFpbkNpcGhlckRhdGFKc29uXG4gICAgKTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZUNvbnRhY3RDYXJkSW5wdXQoaW5wdXQpO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVDb250YWN0Q2FyZE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgIGlkOiBpbnB1dC5pZCxcbiAgICAgICAgICBjaXBoZXJEYXRhLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZUNvbnRhY3RDYXJkKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDb250YWN0Q2FyZElucHV0KFxuICAgIGlucHV0OiBDcmVhdGVDb250YWN0Q2FyZElucHV0MlxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHNpZ1B4ayA9IGF3YWl0IHRoaXMua2V5U2VydmljZS5nZXRDdXJyZW50U2lnUHhrKCk7XG4gICAgY29uc3QgcHVibGljRGF0YVNpZyA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5zaWduKHNpZ1B4ay5qd2ssIGlucHV0LnB1YmxpY0RhdGFKc29uKVxuICAgICk7XG4gICAgY29uc3QgcHVibGljU2VhcmNoYWJsZVNpZyA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5zaWduKHNpZ1B4ay5qd2ssIGlucHV0LnB1YmxpY1NlYXJjaGFibGVKc29uKVxuICAgICk7XG4gICAgY29uc3QgcGxhaW5EYXRhU2lnID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgaW5wdXQucGxhaW5EYXRhSnNvbilcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNpZ1B4a0lkOiBzaWdQeGsuaWQsXG4gICAgICBwdWJsaWNEYXRhU2lnLFxuICAgICAgcHVibGljU2VhcmNoYWJsZVNpZyxcbiAgICAgIHBsYWluRGF0YVNpZyxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,74 +1,74 @@
1
- import { __awaiter } from "tslib";
2
- import { HttpClient } from '@angular/common/http';
3
- import { Injectable, Inject } from '@angular/core';
4
- import { LR_CONFIG } from '../life-ready.config';
5
- import { LifeReadyAuthService } from '../auth/life-ready-auth.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../life-ready.config";
8
- import * as i2 from "@angular/common/http";
9
- import * as i3 from "../auth/life-ready-auth.service";
10
- export class FileService {
11
- constructor(config, http, lrAuth) {
12
- this.config = config;
13
- this.http = http;
14
- this.lrAuth = lrAuth;
15
- }
16
- downloadEncryptedFile(fileStateNodeId) {
17
- return __awaiter(this, void 0, void 0, function* () {
18
- return JSON.parse(yield this.downloadEncryptedFile2(fileStateNodeId));
19
- });
20
- }
21
- downloadEncryptedFile2(fileStateNodeId) {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- const url = `${this.config.apiUrl}files/download/?file_state_node_id=${fileStateNodeId}`;
24
- const content = yield this.http
25
- .get(url, {
26
- responseType: 'text',
27
- headers: {
28
- Authorization: `Bearer ${(yield this.lrAuth.getUser()).getAccessJwtToken()}`,
29
- },
30
- })
31
- .toPromise();
32
- return content;
33
- });
34
- }
35
- loadFile(file) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- return new Promise((resolve, reject) => {
38
- const reader = new FileReader();
39
- reader.onload = () => {
40
- // OK to type cast here since we are using readAsArrayBuffer.
41
- resolve(reader.result);
42
- };
43
- reader.readAsArrayBuffer(file);
44
- });
45
- });
46
- }
47
- uploadEncryptedFile(options) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- const { encryptedContent, fileName } = options;
50
- const formData = new FormData();
51
- formData.append('content', new Blob([encryptedContent]), fileName);
52
- const { content_resource } = yield this.http
53
- .post(`${this.config.apiUrl}files/upload/`, formData, {
54
- headers: {
55
- Authorization: `Bearer ${(yield this.lrAuth.getUser()).getAccessJwtToken()}`,
56
- },
57
- })
58
- .toPromise();
59
- return content_resource;
60
- });
61
- }
62
- }
63
- FileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0.ɵɵinject(i1.LR_CONFIG), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.LifeReadyAuthService)); }, token: FileService, providedIn: "root" });
64
- FileService.decorators = [
65
- { type: Injectable, args: [{
66
- providedIn: 'root',
67
- },] }
68
- ];
69
- FileService.ctorParameters = () => [
70
- { type: undefined, decorators: [{ type: Inject, args: [LR_CONFIG,] }] },
71
- { type: HttpClient },
72
- { type: LifeReadyAuthService }
73
- ];
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL25ld3JlcG8va2MtY2xpZW50L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2FwaS9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLHNCQUFzQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7OztBQWN2RSxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUM2QixNQUF1QixFQUMxQyxJQUFnQixFQUNoQixNQUE0QjtRQUZULFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQzFDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7SUFDbkMsQ0FBQztJQUVFLHFCQUFxQixDQUFDLGVBQXVCOztZQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDO0tBQUE7SUFFSyxzQkFBc0IsQ0FBQyxlQUF1Qjs7WUFDbEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLGVBQWUsRUFBRSxDQUFDO1lBRXpGLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUk7aUJBQzVCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1IsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLE9BQU8sRUFBRTtvQkFDUCxhQUFhLEVBQUUsVUFBVSxDQUN2QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQzVCLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtpQkFDeEI7YUFDRixDQUFDO2lCQUNELFNBQVMsRUFBRSxDQUFDO1lBRWYsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztLQUFBO0lBRUssUUFBUSxDQUFDLElBQVU7O1lBQ3ZCLE9BQU8sSUFBSSxPQUFPLENBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO29CQUNuQiw2REFBNkQ7b0JBQzdELE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBcUIsQ0FBQyxDQUFDO2dCQUN4QyxDQUFDLENBQUM7Z0JBQ0YsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUssbUJBQW1CLENBQ3ZCLE9BQW1DOztZQUVuQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDO1lBRS9DLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7WUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFbkUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSTtpQkFDekMsSUFBSSxDQUNILEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsRUFDcEMsUUFBUSxFQUNSO2dCQUNFLE9BQU8sRUFBRTtvQkFDUCxhQUFhLEVBQUUsVUFBVSxDQUN2QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQzVCLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtpQkFDeEI7YUFDRixDQUNGO2lCQUNBLFNBQVMsRUFBRSxDQUFDO1lBRWYsT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixDQUFDO0tBQUE7Ozs7WUFqRUYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7NENBR0ksTUFBTSxTQUFDLFNBQVM7WUFuQlosVUFBVTtZQUdWLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMUl9DT05GSUcsIExpZmVSZWFkeUNvbmZpZyB9IGZyb20gJy4uL2xpZmUtcmVhZHkuY29uZmlnJztcclxuaW1wb3J0IHsgTGlmZVJlYWR5QXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL2xpZmUtcmVhZHktYXV0aC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIEZpbGVDb250ZW50Q29udGV4dCA9ICdGSUxFX1NUQVRFJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkRW5jcnlwdGVkRmlsZU9wdGlvbnMge1xyXG4gIGVuY3J5cHRlZENvbnRlbnQ6IHN0cmluZztcclxuICAvLyBUT0RPIEFkZCBpbiB0aGUgY29udGV4dCBmaWVsZCBhbmQgbWFrZSBpdCBtYW5kYXRvcnlcclxuICAvLyBjb250ZXh0OiBGaWxlQ29udGVudENvbnRleHQ7XHJcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KExSX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IExpZmVSZWFkeUNvbmZpZyxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgbHJBdXRoOiBMaWZlUmVhZHlBdXRoU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgZG93bmxvYWRFbmNyeXB0ZWRGaWxlKGZpbGVTdGF0ZU5vZGVJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IHRoaXMuZG93bmxvYWRFbmNyeXB0ZWRGaWxlMihmaWxlU3RhdGVOb2RlSWQpKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGRvd25sb2FkRW5jcnlwdGVkRmlsZTIoZmlsZVN0YXRlTm9kZUlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5jb25maWcuYXBpVXJsfWZpbGVzL2Rvd25sb2FkLz9maWxlX3N0YXRlX25vZGVfaWQ9JHtmaWxlU3RhdGVOb2RlSWR9YDtcclxuXHJcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodXJsLCB7XHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXHJcbiAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAkeyhcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sckF1dGguZ2V0VXNlcigpXHJcbiAgICAgICAgICApLmdldEFjY2Vzc0p3dFRva2VuKCl9YCxcclxuICAgICAgICB9LFxyXG4gICAgICB9KVxyXG4gICAgICAudG9Qcm9taXNlKCk7XHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBhc3luYyBsb2FkRmlsZShmaWxlOiBGaWxlKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEFycmF5QnVmZmVyPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgLy8gT0sgdG8gdHlwZSBjYXN0IGhlcmUgc2luY2Ugd2UgYXJlIHVzaW5nIHJlYWRBc0FycmF5QnVmZmVyLlxyXG4gICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCBhcyBBcnJheUJ1ZmZlcik7XHJcbiAgICAgIH07XHJcbiAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgdXBsb2FkRW5jcnlwdGVkRmlsZShcclxuICAgIG9wdGlvbnM6IFVwbG9hZEVuY3J5cHRlZEZpbGVPcHRpb25zXHJcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IHsgZW5jcnlwdGVkQ29udGVudCwgZmlsZU5hbWUgfSA9IG9wdGlvbnM7XHJcblxyXG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnY29udGVudCcsIG5ldyBCbG9iKFtlbmNyeXB0ZWRDb250ZW50XSksIGZpbGVOYW1lKTtcclxuXHJcbiAgICBjb25zdCB7IGNvbnRlbnRfcmVzb3VyY2UgfSA9IGF3YWl0IHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDx7IGNvbnRlbnRfcmVzb3VyY2UgfT4oXHJcbiAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpVXJsfWZpbGVzL3VwbG9hZC9gLFxyXG4gICAgICAgIGZvcm1EYXRhLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAkeyhcclxuICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxyQXV0aC5nZXRVc2VyKClcclxuICAgICAgICAgICAgKS5nZXRBY2Nlc3NKd3RUb2tlbigpfWAsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgICAudG9Qcm9taXNlKCk7XHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnRfcmVzb3VyY2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { __awaiter } from "tslib";
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { Injectable, Inject } from '@angular/core';
4
+ import { LR_CONFIG } from '../life-ready.config';
5
+ import { LifeReadyAuthService } from '../auth/life-ready-auth.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../life-ready.config";
8
+ import * as i2 from "@angular/common/http";
9
+ import * as i3 from "../auth/life-ready-auth.service";
10
+ export class FileService {
11
+ constructor(config, http, lrAuth) {
12
+ this.config = config;
13
+ this.http = http;
14
+ this.lrAuth = lrAuth;
15
+ }
16
+ downloadEncryptedFile(fileStateNodeId) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ return JSON.parse(yield this.downloadEncryptedFile2(fileStateNodeId));
19
+ });
20
+ }
21
+ downloadEncryptedFile2(fileStateNodeId) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ const url = `${this.config.apiUrl}files/download/?file_state_node_id=${fileStateNodeId}`;
24
+ const content = yield this.http
25
+ .get(url, {
26
+ responseType: 'text',
27
+ headers: {
28
+ Authorization: `Bearer ${(yield this.lrAuth.getUser()).getAccessJwtToken()}`,
29
+ },
30
+ })
31
+ .toPromise();
32
+ return content;
33
+ });
34
+ }
35
+ loadFile(file) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ return new Promise((resolve, reject) => {
38
+ const reader = new FileReader();
39
+ reader.onload = () => {
40
+ // OK to type cast here since we are using readAsArrayBuffer.
41
+ resolve(reader.result);
42
+ };
43
+ reader.readAsArrayBuffer(file);
44
+ });
45
+ });
46
+ }
47
+ uploadEncryptedFile(options) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ const { encryptedContent, fileName } = options;
50
+ const formData = new FormData();
51
+ formData.append('content', new Blob([encryptedContent]), fileName);
52
+ const { content_resource } = yield this.http
53
+ .post(`${this.config.apiUrl}files/upload/`, formData, {
54
+ headers: {
55
+ Authorization: `Bearer ${(yield this.lrAuth.getUser()).getAccessJwtToken()}`,
56
+ },
57
+ })
58
+ .toPromise();
59
+ return content_resource;
60
+ });
61
+ }
62
+ }
63
+ FileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0.ɵɵinject(i1.LR_CONFIG), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.LifeReadyAuthService)); }, token: FileService, providedIn: "root" });
64
+ FileService.decorators = [
65
+ { type: Injectable, args: [{
66
+ providedIn: 'root',
67
+ },] }
68
+ ];
69
+ FileService.ctorParameters = () => [
70
+ { type: undefined, decorators: [{ type: Inject, args: [LR_CONFIG,] }] },
71
+ { type: HttpClient },
72
+ { type: LifeReadyAuthService }
73
+ ];
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9hcGkvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFjdkUsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDNkIsTUFBdUIsRUFDMUMsSUFBZ0IsRUFDaEIsTUFBNEI7UUFGVCxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUMxQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQXNCO0lBQ25DLENBQUM7SUFFRSxxQkFBcUIsQ0FBQyxlQUF1Qjs7WUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQztLQUFBO0lBRUssc0JBQXNCLENBQUMsZUFBdUI7O1lBQ2xELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxlQUFlLEVBQUUsQ0FBQztZQUV6RixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJO2lCQUM1QixHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNSLFlBQVksRUFBRSxNQUFNO2dCQUNwQixPQUFPLEVBQUU7b0JBQ1AsYUFBYSxFQUFFLFVBQVUsQ0FDdkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUM1QixDQUFDLGlCQUFpQixFQUFFLEVBQUU7aUJBQ3hCO2FBQ0YsQ0FBQztpQkFDRCxTQUFTLEVBQUUsQ0FBQztZQUVmLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7S0FBQTtJQUVLLFFBQVEsQ0FBQyxJQUFVOztZQUN2QixPQUFPLElBQUksT0FBTyxDQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNsRCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtvQkFDbkIsNkRBQTZEO29CQUM3RCxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQXFCLENBQUMsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDO2dCQUNGLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVLLG1CQUFtQixDQUN2QixPQUFtQzs7WUFFbkMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQztZQUUvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRW5FLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUk7aUJBQ3pDLElBQUksQ0FDSCxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxlQUFlLEVBQ3BDLFFBQVEsRUFDUjtnQkFDRSxPQUFPLEVBQUU7b0JBQ1AsYUFBYSxFQUFFLFVBQVUsQ0FDdkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUM1QixDQUFDLGlCQUFpQixFQUFFLEVBQUU7aUJBQ3hCO2FBQ0YsQ0FDRjtpQkFDQSxTQUFTLEVBQUUsQ0FBQztZQUVmLE9BQU8sZ0JBQWdCLENBQUM7UUFDMUIsQ0FBQztLQUFBOzs7O1lBakVGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQUdJLE1BQU0sU0FBQyxTQUFTO1lBbkJaLFVBQVU7WUFHVixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMUl9DT05GSUcsIExpZmVSZWFkeUNvbmZpZyB9IGZyb20gJy4uL2xpZmUtcmVhZHkuY29uZmlnJztcbmltcG9ydCB7IExpZmVSZWFkeUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9saWZlLXJlYWR5LWF1dGguc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIEZpbGVDb250ZW50Q29udGV4dCA9ICdGSUxFX1NUQVRFJztcblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRFbmNyeXB0ZWRGaWxlT3B0aW9ucyB7XG4gIGVuY3J5cHRlZENvbnRlbnQ6IHN0cmluZztcbiAgLy8gVE9ETyBBZGQgaW4gdGhlIGNvbnRleHQgZmllbGQgYW5kIG1ha2UgaXQgbWFuZGF0b3J5XG4gIC8vIGNvbnRleHQ6IEZpbGVDb250ZW50Q29udGV4dDtcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTFJfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogTGlmZVJlYWR5Q29uZmlnLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGxyQXV0aDogTGlmZVJlYWR5QXV0aFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGRvd25sb2FkRW5jcnlwdGVkRmlsZShmaWxlU3RhdGVOb2RlSWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoYXdhaXQgdGhpcy5kb3dubG9hZEVuY3J5cHRlZEZpbGUyKGZpbGVTdGF0ZU5vZGVJZCkpO1xuICB9XG5cbiAgYXN5bmMgZG93bmxvYWRFbmNyeXB0ZWRGaWxlMihmaWxlU3RhdGVOb2RlSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5jb25maWcuYXBpVXJsfWZpbGVzL2Rvd25sb2FkLz9maWxlX3N0YXRlX25vZGVfaWQ9JHtmaWxlU3RhdGVOb2RlSWR9YDtcblxuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLmh0dHBcbiAgICAgIC5nZXQodXJsLCB7XG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAkeyhcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubHJBdXRoLmdldFVzZXIoKVxuICAgICAgICAgICkuZ2V0QWNjZXNzSnd0VG9rZW4oKX1gLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC50b1Byb21pc2UoKTtcblxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgYXN5bmMgbG9hZEZpbGUoZmlsZTogRmlsZSk6IFByb21pc2U8QXJyYXlCdWZmZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8QXJyYXlCdWZmZXI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAvLyBPSyB0byB0eXBlIGNhc3QgaGVyZSBzaW5jZSB3ZSBhcmUgdXNpbmcgcmVhZEFzQXJyYXlCdWZmZXIuXG4gICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCBhcyBBcnJheUJ1ZmZlcik7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBsb2FkRW5jcnlwdGVkRmlsZShcbiAgICBvcHRpb25zOiBVcGxvYWRFbmNyeXB0ZWRGaWxlT3B0aW9uc1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgZW5jcnlwdGVkQ29udGVudCwgZmlsZU5hbWUgfSA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnY29udGVudCcsIG5ldyBCbG9iKFtlbmNyeXB0ZWRDb250ZW50XSksIGZpbGVOYW1lKTtcblxuICAgIGNvbnN0IHsgY29udGVudF9yZXNvdXJjZSB9ID0gYXdhaXQgdGhpcy5odHRwXG4gICAgICAucG9zdDx7IGNvbnRlbnRfcmVzb3VyY2UgfT4oXG4gICAgICAgIGAke3RoaXMuY29uZmlnLmFwaVVybH1maWxlcy91cGxvYWQvYCxcbiAgICAgICAgZm9ybURhdGEsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7KFxuICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxyQXV0aC5nZXRVc2VyKClcbiAgICAgICAgICAgICkuZ2V0QWNjZXNzSnd0VG9rZW4oKX1gLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcblxuICAgIHJldHVybiBjb250ZW50X3Jlc291cmNlO1xuICB9XG59XG4iXX0=