@lifeready/core 6.0.4 → 6.1.1

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 (99) hide show
  1. package/bundles/lifeready-core.umd.js +3482 -7309
  2. package/bundles/lifeready-core.umd.js.map +1 -1
  3. package/bundles/lifeready-core.umd.min.js +1 -1
  4. package/bundles/lifeready-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/auth2/auth.config.js +57 -0
  6. package/esm2015/lib/auth2/auth2.gql.private.js +8 -1
  7. package/esm2015/lib/auth2/auth2.service.js +3 -4
  8. package/esm2015/lib/auth2/auth2.types.js +1 -1
  9. package/esm2015/lib/file-upload/file-upload.service.js +17 -12
  10. package/esm2015/lib/idle/idle.service.js +1 -2
  11. package/esm2015/lib/item2/item2.service.js +15 -45
  12. package/esm2015/lib/item2/item2.types.js +1 -1
  13. package/esm2015/lib/key/key-meta.service.js +16 -8
  14. package/esm2015/lib/key-exchange/key-exchange2.service.js +6 -25
  15. package/esm2015/lib/life-ready.module.js +2 -9
  16. package/esm2015/lib/password/password.service.js +1 -1
  17. package/esm2015/lib/profile/profile-details.service.js +120 -75
  18. package/esm2015/lib/profile/profile.gql.js +134 -1
  19. package/esm2015/lib/profile/profile.service.js +8 -5
  20. package/esm2015/lib/profile/profile.types.js +14 -3
  21. package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +2 -2
  22. package/esm2015/lib/tp-password-reset/tp-password-reset.types.js +1 -1
  23. package/esm2015/lib/trusted-party/trusted-party2.service.js +3 -7
  24. package/esm2015/lifeready-core.js +7 -9
  25. package/esm2015/public-api.js +2 -20
  26. package/fesm2015/lifeready-core.js +3207 -6516
  27. package/fesm2015/lifeready-core.js.map +1 -1
  28. package/lib/auth2/auth2.gql.private.d.ts +15 -2
  29. package/lib/auth2/auth2.service.d.ts +1 -1
  30. package/lib/auth2/auth2.types.d.ts +19 -2
  31. package/lib/file-upload/file-upload.service.d.ts +3 -3
  32. package/lib/item2/item2.service.d.ts +11 -74
  33. package/lib/item2/item2.types.d.ts +1 -1
  34. package/lib/key/key-meta.service.d.ts +8 -1
  35. package/lib/key-exchange/key-exchange2.service.d.ts +5 -66
  36. package/lib/password/password.service.d.ts +1 -1
  37. package/lib/profile/profile-details.service.d.ts +10 -11
  38. package/lib/profile/profile.gql.d.ts +12 -0
  39. package/lib/profile/profile.service.d.ts +1 -3
  40. package/lib/profile/profile.types.d.ts +31 -4
  41. package/lib/shared-contact-card/shared-contact-card.service.d.ts +1 -2
  42. package/lib/tp-password-reset/tp-password-reset.types.d.ts +3 -3
  43. package/lib/trusted-party/trusted-party2.service.d.ts +2 -7
  44. package/lifeready-core.d.ts +6 -8
  45. package/lifeready-core.metadata.json +1 -1
  46. package/package.json +1 -1
  47. package/public-api.d.ts +1 -19
  48. package/esm2015/lib/auth/auth.config.js +0 -57
  49. package/esm2015/lib/auth/auth.gql.js +0 -16
  50. package/esm2015/lib/auth/auth.types.js +0 -18
  51. package/esm2015/lib/auth/life-ready-auth.service.js +0 -568
  52. package/esm2015/lib/category/category-meta.service.js +0 -99
  53. package/esm2015/lib/category/category.gql.js +0 -385
  54. package/esm2015/lib/category/category.service.js +0 -361
  55. package/esm2015/lib/category/category.types.js +0 -29
  56. package/esm2015/lib/key-exchange/key-exchange.gql.js +0 -188
  57. package/esm2015/lib/key-exchange/key-exchange.service.js +0 -436
  58. package/esm2015/lib/key-exchange/key-exchange.types.js +0 -7
  59. package/esm2015/lib/message/message.gql.js +0 -32
  60. package/esm2015/lib/message/message.service.js +0 -118
  61. package/esm2015/lib/message/message.types.js +0 -2
  62. package/esm2015/lib/plan/plan.gql.js +0 -123
  63. package/esm2015/lib/plan/plan.service.js +0 -150
  64. package/esm2015/lib/plan/plan.types.js +0 -11
  65. package/esm2015/lib/record/record-attachment.service.js +0 -102
  66. package/esm2015/lib/record/record.gql.js +0 -182
  67. package/esm2015/lib/record/record.service.js +0 -194
  68. package/esm2015/lib/record/record.types.js +0 -15
  69. package/esm2015/lib/record-type/record-type.service.js +0 -75
  70. package/esm2015/lib/record-type/record-type.types.js +0 -28
  71. package/esm2015/lib/trusted-party/trusted-party.gql.js +0 -148
  72. package/esm2015/lib/trusted-party/trusted-party.service.js +0 -308
  73. package/esm2015/lib/trusted-party/trusted-party.types.js +0 -41
  74. package/lib/auth/auth.gql.d.ts +0 -12
  75. package/lib/auth/auth.types.d.ts +0 -52
  76. package/lib/auth/life-ready-auth.service.d.ts +0 -73
  77. package/lib/category/category-meta.service.d.ts +0 -23
  78. package/lib/category/category.gql.d.ts +0 -44
  79. package/lib/category/category.service.d.ts +0 -66
  80. package/lib/category/category.types.d.ts +0 -75
  81. package/lib/key-exchange/key-exchange.gql.d.ts +0 -9
  82. package/lib/key-exchange/key-exchange.service.d.ts +0 -37
  83. package/lib/key-exchange/key-exchange.types.d.ts +0 -188
  84. package/lib/message/message.gql.d.ts +0 -13
  85. package/lib/message/message.service.d.ts +0 -36
  86. package/lib/message/message.types.d.ts +0 -12
  87. package/lib/plan/plan.gql.d.ts +0 -11
  88. package/lib/plan/plan.service.d.ts +0 -34
  89. package/lib/plan/plan.types.d.ts +0 -32
  90. package/lib/record/record-attachment.service.d.ts +0 -16
  91. package/lib/record/record.gql.d.ts +0 -14
  92. package/lib/record/record.service.d.ts +0 -25
  93. package/lib/record/record.types.d.ts +0 -56
  94. package/lib/record-type/record-type.service.d.ts +0 -11
  95. package/lib/record-type/record-type.types.d.ts +0 -50
  96. package/lib/trusted-party/trusted-party.gql.d.ts +0 -9
  97. package/lib/trusted-party/trusted-party.service.d.ts +0 -43
  98. package/lib/trusted-party/trusted-party.types.d.ts +0 -101
  99. /package/lib/{auth → auth2}/auth.config.d.ts +0 -0
@@ -1,361 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
- import { Injectable } from '@angular/core';
4
- import { LrApolloService } from '../api/lr-apollo.service';
5
- import { KeyGraphService } from '../key/key-graph.service';
6
- import { KeyMetaService } from '../key/key-meta.service';
7
- import { RecordContentFilter } from '../record/record.gql';
8
- import { KcBadStateException } from '../_common/exceptions';
9
- import { ArchiveDirectoryMutation, CategoryFilter, CreateCategoryMutation, CreateVaultMutation, DefaultVaultFilter, DeleteCategoryMutation, DirectoryType, GetCategoriesQuery, GetCategoryQuery, GetMySharedCategoriesQuery, GetRootDirectoryIdsQuery, GetTrustedPartyCategoriesQuery, GetVaultsQuery, RecordFilter, UnarchiveDirectoryMutation, UpdateCategoryMutation, } from './category.gql';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "../api/lr-apollo.service";
12
- import * as i2 from "../key/key-meta.service";
13
- import * as i3 from "../key/key-graph.service";
14
- export class CategoryService {
15
- constructor(lrApollo, keyMetaService, keyGraph) {
16
- this.lrApollo = lrApollo;
17
- this.keyMetaService = keyMetaService;
18
- this.keyGraph = keyGraph;
19
- }
20
- getRootDirectoryIds(input = null) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- const { rootDirectories } = yield this.lrApollo.query({
23
- query: GetRootDirectoryIdsQuery,
24
- variables: {
25
- archived: input && input.archived,
26
- },
27
- });
28
- return rootDirectories.edges.map((edge) => edge.node.id);
29
- });
30
- }
31
- getDefaultVault() {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- const { list } = yield this.lrApollo.query({
34
- query: GetVaultsQuery,
35
- variables: {
36
- plainMetaFilter: DefaultVaultFilter,
37
- },
38
- });
39
- const defaultVaults = yield this.mapVaults(list);
40
- if (defaultVaults.length > 1) {
41
- throw new KcBadStateException('There are more than one default vaults');
42
- }
43
- return defaultVaults[0] || null;
44
- });
45
- }
46
- getCategories(input) {
47
- var _a;
48
- return __awaiter(this, void 0, void 0, function* () {
49
- const vaultDirectoryId = (input === null || input === void 0 ? void 0 : input.vaultDirectoryId) || ((_a = (yield this.getDefaultVault())) === null || _a === void 0 ? void 0 : _a.id);
50
- if (!vaultDirectoryId) {
51
- console.error('There is no default vault.');
52
- return [];
53
- }
54
- const res = yield this.lrApollo.query({
55
- query: GetCategoriesQuery,
56
- variables: {
57
- vaultDirectoryId,
58
- categoryFilter: CategoryFilter,
59
- recordFilter: RecordFilter,
60
- archived: input === null || input === void 0 ? void 0 : input.archived,
61
- },
62
- });
63
- return this.mapCategories(res.directory.childDirectoryLinks);
64
- });
65
- }
66
- getTrustedPartyCategories(trustedPartyId) {
67
- return __awaiter(this, void 0, void 0, function* () {
68
- const { tp } = yield this.lrApollo.query({
69
- query: GetTrustedPartyCategoriesQuery,
70
- variables: {
71
- trustedPartyId,
72
- categoryFilter: CategoryFilter,
73
- recordFilter: RecordFilter,
74
- contentFilter: RecordContentFilter,
75
- },
76
- });
77
- return {
78
- categories: yield this.mapCategories(tp.theirItems.list),
79
- records: yield this.mapRecords(tp.theirItems.records),
80
- };
81
- });
82
- }
83
- getMySharedCategories(trustedPartyId) {
84
- return __awaiter(this, void 0, void 0, function* () {
85
- const { tp } = yield this.lrApollo.query({
86
- query: GetMySharedCategoriesQuery,
87
- variables: {
88
- trustedPartyId,
89
- categoryFilter: CategoryFilter,
90
- recordFilter: RecordFilter,
91
- contentFilter: RecordContentFilter,
92
- },
93
- });
94
- return {
95
- categories: yield this.mapCategories(tp.myItems.list),
96
- records: yield this.mapRecords(tp.myItems.records),
97
- };
98
- });
99
- }
100
- getCategory(categoryId) {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- const { category } = yield this.lrApollo.query({
103
- query: GetCategoryQuery(),
104
- variables: {
105
- id: categoryId,
106
- categoryFilter: CategoryFilter,
107
- recordFilter: RecordFilter,
108
- contentFilter: RecordContentFilter,
109
- },
110
- });
111
- return {
112
- category: Object.assign(Object.assign({}, (yield this.mapCategory(category))), { parents: yield this.mapParentCategories(category) }),
113
- subCategories: yield this.mapCategories(category.subCategories),
114
- records: yield this.mapRecords(category.records),
115
- };
116
- });
117
- }
118
- mapVaults(list) {
119
- return __awaiter(this, void 0, void 0, function* () {
120
- return Promise.all(list.edges.map((edge) => this.mapVault(edge.node)));
121
- });
122
- }
123
- mapCategories(list) {
124
- return __awaiter(this, void 0, void 0, function* () {
125
- return (yield Promise.all(list.edges
126
- .map((x) => x.node)
127
- .map((x) => x.childDirectory || x)
128
- .map((node) => this.mapCategory(node))))
129
- .filter((x) => x)
130
- .sort((x, y) => (x.name === y.name ? 0 : x.name > y.name ? 1 : -1));
131
- });
132
- }
133
- mapRecords(list) {
134
- return __awaiter(this, void 0, void 0, function* () {
135
- return (yield Promise.all(list.edges
136
- .map((x) => x.node)
137
- .map((x) => x.childDirectory || x)
138
- .map((node) => this.mapRecord(node))))
139
- .filter((x) => x)
140
- .sort((x, y) => (x.name === y.name ? 0 : x.name > y.name ? 1 : -1));
141
- });
142
- }
143
- createDefaultVault() {
144
- return __awaiter(this, void 0, void 0, function* () {
145
- const secureContent = '';
146
- const wrappedContent = yield this.keyMetaService.wrapContent(secureContent);
147
- const response = yield this.lrApollo.mutate({
148
- mutation: CreateVaultMutation,
149
- variables: {
150
- plainMeta: JSON.stringify({
151
- directoryType: DirectoryType.Vault,
152
- default: true,
153
- }),
154
- cipherMeta: wrappedContent.cipherMeta,
155
- parentRootDirectory: wrappedContent.rootKey,
156
- },
157
- });
158
- return response.new.vault.id;
159
- });
160
- }
161
- createCategory(newCategory) {
162
- return __awaiter(this, void 0, void 0, function* () {
163
- const secureContent = {
164
- name: newCategory.name,
165
- code: newCategory.code,
166
- isCustom: newCategory.isCustom,
167
- allowRecords: newCategory.allowRecords,
168
- allowCustomCategories: newCategory.allowCustomCategories,
169
- };
170
- const wrappedContent = yield this.keyMetaService.wrapContent(secureContent, newCategory.categoryIds);
171
- const response = yield this.lrApollo.mutate({
172
- mutation: CreateCategoryMutation,
173
- variables: {
174
- plainMeta: JSON.stringify({
175
- directoryType: DirectoryType.Category,
176
- isHidden: false,
177
- }),
178
- cipherMeta: wrappedContent.cipherMeta,
179
- parentDirectories: wrappedContent.wrappedKeys,
180
- parentRootDirectory: wrappedContent.rootKey,
181
- },
182
- });
183
- return response.new.category.id;
184
- });
185
- }
186
- updateCategory(categoryId, keyId, updatedCategory) {
187
- return __awaiter(this, void 0, void 0, function* () {
188
- const secureContent = {
189
- name: updatedCategory.name,
190
- code: updatedCategory.code,
191
- isCustom: updatedCategory.isCustom,
192
- allowRecords: updatedCategory.allowRecords,
193
- allowCustomCategories: updatedCategory.allowCustomCategories,
194
- };
195
- const cipherMeta = yield this.keyGraph.encryptToString(keyId, secureContent);
196
- yield this.lrApollo.mutate({
197
- mutation: UpdateCategoryMutation,
198
- variables: {
199
- input: {
200
- directoryId: categoryId,
201
- cipherMeta,
202
- },
203
- },
204
- });
205
- });
206
- }
207
- setCategoryVisibility(categoryId, hide) {
208
- return __awaiter(this, void 0, void 0, function* () {
209
- yield this.lrApollo.mutate({
210
- mutation: UpdateCategoryMutation,
211
- variables: {
212
- input: {
213
- directoryId: categoryId,
214
- plainMeta: JSON.stringify({
215
- directoryType: DirectoryType.Category,
216
- isHidden: hide,
217
- }),
218
- },
219
- },
220
- });
221
- });
222
- }
223
- deleteCategory(categoryId) {
224
- return __awaiter(this, void 0, void 0, function* () {
225
- yield this.lrApollo.mutate({
226
- mutation: DeleteCategoryMutation,
227
- variables: { categoryId },
228
- });
229
- });
230
- }
231
- archiveCategory(categoryId, recursive) {
232
- return __awaiter(this, void 0, void 0, function* () {
233
- return this.archiveDirectory(categoryId, recursive);
234
- });
235
- }
236
- unarchiveCategory(categoryId, recursive) {
237
- return __awaiter(this, void 0, void 0, function* () {
238
- return this.unarchiveDirectory(categoryId, recursive);
239
- });
240
- }
241
- archiveDirectory(directoryId, recursive) {
242
- return __awaiter(this, void 0, void 0, function* () {
243
- yield this.lrApollo.mutate({
244
- mutation: ArchiveDirectoryMutation,
245
- variables: {
246
- input: {
247
- directoryId,
248
- recursive,
249
- },
250
- },
251
- });
252
- });
253
- }
254
- unarchiveDirectory(directoryId, recursive) {
255
- return __awaiter(this, void 0, void 0, function* () {
256
- yield this.lrApollo.mutate({
257
- mutation: UnarchiveDirectoryMutation,
258
- variables: {
259
- input: {
260
- directoryId,
261
- recursive,
262
- },
263
- },
264
- });
265
- });
266
- }
267
- mapVault(node) {
268
- return __awaiter(this, void 0, void 0, function* () {
269
- try {
270
- const { name } = (yield this.keyMetaService.decryptMeta(node)) || {};
271
- return {
272
- id: node.id,
273
- keyId: node.keyId,
274
- name,
275
- };
276
- }
277
- catch (e) {
278
- console.error('Failed to decrypt Vault.', e, node);
279
- return null;
280
- }
281
- });
282
- }
283
- mapParentCategories(category) {
284
- return __awaiter(this, void 0, void 0, function* () {
285
- if (!category.parentCategories ||
286
- !category.parentCategories.edges ||
287
- !category.parentCategories.edges.length) {
288
- return [];
289
- }
290
- const node = category.parentCategories.edges[0].node.parentDirectory;
291
- return [
292
- ...(yield this.mapParentCategories(node)),
293
- yield this.mapCategory(node),
294
- ];
295
- });
296
- }
297
- mapCategory(node) {
298
- var _a;
299
- return __awaiter(this, void 0, void 0, function* () {
300
- try {
301
- const { name, isCustom, allowRecords, allowCustomCategories, code } = (yield this.keyMetaService.decryptMeta(node)) || {};
302
- const { isHidden } = (node.plainMeta && JSON.parse(node.plainMeta)) || {};
303
- return {
304
- id: node.id,
305
- keyId: node.keyId,
306
- code,
307
- name,
308
- isHidden: !!isHidden,
309
- isCustom: !!isCustom,
310
- isArchived: !!node.archived,
311
- allowRecords: !!allowRecords,
312
- allowCustomCategories: !!allowCustomCategories,
313
- isEmpty: node.descendantDirectories
314
- ? node.descendantDirectories.recordsCount === 0
315
- : null,
316
- allRecordsCount: (_a = node.descendantDirectories) === null || _a === void 0 ? void 0 : _a.recordsCount,
317
- };
318
- }
319
- catch (e) {
320
- console.error('Failed to decrypt Category.', e, node);
321
- return null;
322
- }
323
- });
324
- }
325
- mapRecord(node) {
326
- return __awaiter(this, void 0, void 0, function* () {
327
- try {
328
- const contents = node.content.edges[0].node.childFile;
329
- const { name, recordType } = (yield this.keyMetaService.decryptMeta(contents.currentVersion.state)) || {};
330
- return {
331
- id: node.id,
332
- keyId: node.keyId,
333
- name,
334
- recordType,
335
- isArchived: !!node.archived,
336
- createdOn: node.created,
337
- lastModified: new Date(node.modified) >
338
- new Date(contents.currentVersion.state.modified)
339
- ? node.modified
340
- : contents.currentVersion.state.modified,
341
- };
342
- }
343
- catch (e) {
344
- console.error('Failed to decrypt Record.', e);
345
- return null;
346
- }
347
- });
348
- }
349
- }
350
- CategoryService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CategoryService_Factory() { return new CategoryService(i0.ɵɵinject(i1.LrApolloService), i0.ɵɵinject(i2.KeyMetaService), i0.ɵɵinject(i3.KeyGraphService)); }, token: CategoryService, providedIn: "root" });
351
- CategoryService.decorators = [
352
- { type: Injectable, args: [{
353
- providedIn: 'root',
354
- },] }
355
- ];
356
- CategoryService.ctorParameters = () => [
357
- { type: LrApolloService },
358
- { type: KeyMetaService },
359
- { type: KeyGraphService }
360
- ];
361
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jYXRlZ29yeS9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBRTFCLHdCQUF3QixFQUN4Qiw4QkFBOEIsRUFFOUIsY0FBYyxFQUNkLFlBQVksRUFDWiwwQkFBMEIsRUFDMUIsc0JBQXNCLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBYXhCLE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQ1UsUUFBeUIsRUFDekIsY0FBOEIsRUFDOUIsUUFBeUI7UUFGekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQ2hDLENBQUM7SUFFUyxtQkFBbUIsQ0FDOUIsUUFBK0IsSUFBSTs7WUFFbkMsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFD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bkI7OztZQXRDUSxlQUFlO1lBRWYsY0FBYztZQURkLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMckFwb2xsb1NlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItYXBvbGxvLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleU1ldGFTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1tZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGFzS2V5R3JhcGhFZGdlcyB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuaW1wb3J0IHsgUmVjb3JkQ29udGVudEZpbHRlciB9IGZyb20gJy4uL3JlY29yZC9yZWNvcmQuZ3FsJztcbmltcG9ydCB7IEtjQmFkU3RhdGVFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgSGFzRWRnZXMgfSBmcm9tICcuLi9fY29tbW9uL3R5cGVzJztcbmltcG9ydCB7XG4gIEFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgQ2F0ZWdvcnlGaWx0ZXIsXG4gIENyZWF0ZUNhdGVnb3J5TXV0YXRpb24sXG4gIENyZWF0ZVZhdWx0TXV0YXRpb24sXG4gIERlZmF1bHRWYXVsdEZpbHRlcixcbiAgRGVsZXRlQ2F0ZWdvcnlNdXRhdGlvbixcbiAgRGlyZWN0b3J5VHlwZSxcbiAgR2V0Q2F0ZWdvcmllc1F1ZXJ5LFxuICBHZXRDYXRlZ29yeVF1ZXJ5LFxuICBHZXRNeVNoYXJlZENhdGVnb3JpZXNRdWVyeSxcbiAgR2V0TXlTaGFyZWRDYXRlZ29yaWVzUXVlcnlUeXBlLFxuICBHZXRSb290RGlyZWN0b3J5SWRzUXVlcnksXG4gIEdldFRydXN0ZWRQYXJ0eUNhdGVnb3JpZXNRdWVyeSxcbiAgR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5VHlwZSxcbiAgR2V0VmF1bHRzUXVlcnksXG4gIFJlY29yZEZpbHRlcixcbiAgVW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24sXG4gIFVwZGF0ZUNhdGVnb3J5TXV0YXRpb24sXG59IGZyb20gJy4vY2F0ZWdvcnkuZ3FsJztcbmltcG9ydCB7XG4gIENhdGVnb3J5LFxuICBOZXdDYXRlZ29yeSxcbiAgVXBkYXRlZENhdGVnb3J5LFxuICBWYXVsdCxcbiAgVmF1bHRDYXRlZ29yeSxcbiAgVmF1bHRSZWNvcmQsXG59IGZyb20gJy4vY2F0ZWdvcnkudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5TWV0YVNlcnZpY2U6IEtleU1ldGFTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGdldFJvb3REaXJlY3RvcnlJZHMoXG4gICAgaW5wdXQ6IHsgYXJjaGl2ZWQ6IGJvb2xlYW4gfSA9IG51bGxcbiAgKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHsgcm9vdERpcmVjdG9yaWVzIH0gPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PGFueT4oe1xuICAgICAgcXVlcnk6IEdldFJvb3REaXJlY3RvcnlJZHNRdWVyeSxcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBhcmNoaXZlZDogaW5wdXQgJiYgaW5wdXQuYXJjaGl2ZWQsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiByb290RGlyZWN0b3JpZXMuZWRnZXMubWFwKChlZGdlKSA9PiBlZGdlLm5vZGUuaWQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldERlZmF1bHRWYXVsdCgpOiBQcm9taXNlPFZhdWx0PiB7XG4gICAgY29uc3QgeyBsaXN0IH0gPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PEhhc0tleUdyYXBoRWRnZXM8YW55Pj4oe1xuICAgICAgcXVlcnk6IEdldFZhdWx0c1F1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHBsYWluTWV0YUZpbHRlcjogRGVmYXVsdFZhdWx0RmlsdGVyLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRWYXVsdHMgPSBhd2FpdCB0aGlzLm1hcFZhdWx0cyhsaXN0KTtcbiAgICBpZiAoZGVmYXVsdFZhdWx0cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRTdGF0ZUV4Y2VwdGlvbignVGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgZGVmYXVsdCB2YXVsdHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFZhdWx0c1swXSB8fCBudWxsO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENhdGVnb3JpZXMoaW5wdXQ/OiB7XG4gICAgYXJjaGl2ZWQ/OiBib29sZWFuO1xuICAgIHZhdWx0RGlyZWN0b3J5SWQ/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPENhdGVnb3J5W10+IHtcbiAgICBjb25zdCB2YXVsdERpcmVjdG9yeUlkID1cbiAgICAgIGlucHV0Py52YXVsdERpcmVjdG9yeUlkIHx8IChhd2FpdCB0aGlzLmdldERlZmF1bHRWYXVsdCgpKT8uaWQ7XG5cbiAgICBpZiAoIXZhdWx0RGlyZWN0b3J5SWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZXJlIGlzIG5vIGRlZmF1bHQgdmF1bHQuJyk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5KHtcbiAgICAgIHF1ZXJ5OiBHZXRDYXRlZ29yaWVzUXVlcnksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgdmF1bHREaXJlY3RvcnlJZCxcbiAgICAgICAgY2F0ZWdvcnlGaWx0ZXI6IENhdGVnb3J5RmlsdGVyLFxuICAgICAgICByZWNvcmRGaWx0ZXI6IFJlY29yZEZpbHRlcixcbiAgICAgICAgYXJjaGl2ZWQ6IGlucHV0Py5hcmNoaXZlZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5tYXBDYXRlZ29yaWVzKHJlcy5kaXJlY3RvcnkuY2hpbGREaXJlY3RvcnlMaW5rcyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllcyhcbiAgICB0cnVzdGVkUGFydHlJZDogc3RyaW5nXG4gICk6IFByb21pc2U8eyBjYXRlZ29yaWVzOiBDYXRlZ29yeVtdOyByZWNvcmRzPzogVmF1bHRSZWNvcmRbXSB9PiB7XG4gICAgY29uc3QgeyB0cCB9ID1cbiAgICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8R2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5VHlwZT4oe1xuICAgICAgICBxdWVyeTogR2V0VHJ1c3RlZFBhcnR5Q2F0ZWdvcmllc1F1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICB0cnVzdGVkUGFydHlJZCxcbiAgICAgICAgICBjYXRlZ29yeUZpbHRlcjogQ2F0ZWdvcnlGaWx0ZXIsXG4gICAgICAgICAgcmVjb3JkRmlsdGVyOiBSZWNvcmRGaWx0ZXIsXG4gICAgICAgICAgY29udGVudEZpbHRlcjogUmVjb3JkQ29udGVudEZpbHRlcixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBjYXRlZ29yaWVzOiBhd2FpdCB0aGlzLm1hcENhdGVnb3JpZXModHAudGhlaXJJdGVtcy5saXN0KSxcbiAgICAgIHJlY29yZHM6IGF3YWl0IHRoaXMubWFwUmVjb3Jkcyh0cC50aGVpckl0ZW1zLnJlY29yZHMpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0TXlTaGFyZWRDYXRlZ29yaWVzKFxuICAgIHRydXN0ZWRQYXJ0eUlkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx7IGNhdGVnb3JpZXM6IENhdGVnb3J5W107IHJlY29yZHM/OiBWYXVsdFJlY29yZFtdIH0+IHtcbiAgICBjb25zdCB7IHRwIH0gPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PEdldE15U2hhcmVkQ2F0ZWdvcmllc1F1ZXJ5VHlwZT4oe1xuICAgICAgcXVlcnk6IEdldE15U2hhcmVkQ2F0ZWdvcmllc1F1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHRydXN0ZWRQYXJ0eUlkLFxuICAgICAgICBjYXRlZ29yeUZpbHRlcjogQ2F0ZWdvcnlGaWx0ZXIsXG4gICAgICAgIHJlY29yZEZpbHRlcjogUmVjb3JkRmlsdGVyLFxuICAgICAgICBjb250ZW50RmlsdGVyOiBSZWNvcmRDb250ZW50RmlsdGVyLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgY2F0ZWdvcmllczogYXdhaXQgdGhpcy5tYXBDYXRlZ29yaWVzKHRwLm15SXRlbXMubGlzdCksXG4gICAgICByZWNvcmRzOiBhd2FpdCB0aGlzLm1hcFJlY29yZHModHAubXlJdGVtcy5yZWNvcmRzKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENhdGVnb3J5KGNhdGVnb3J5SWQ6IHN0cmluZyk6IFByb21pc2U8VmF1bHRDYXRlZ29yeT4ge1xuICAgIGNvbnN0IHsgY2F0ZWdvcnkgfSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8YW55Pih7XG4gICAgICBxdWVyeTogR2V0Q2F0ZWdvcnlRdWVyeSgpLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlkOiBjYXRlZ29yeUlkLFxuICAgICAgICBjYXRlZ29yeUZpbHRlcjogQ2F0ZWdvcnlGaWx0ZXIsXG4gICAgICAgIHJlY29yZEZpbHRlcjogUmVjb3JkRmlsdGVyLFxuICAgICAgICBjb250ZW50RmlsdGVyOiBSZWNvcmRDb250ZW50RmlsdGVyLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBjYXRlZ29yeToge1xuICAgICAgICAuLi4oYXdhaXQgdGhpcy5tYXBDYXRlZ29yeShjYXRlZ29yeSkpLFxuICAgICAgICBwYXJlbnRzOiBhd2FpdCB0aGlzLm1hcFBhcmVudENhdGVnb3JpZXMoY2F0ZWdvcnkpLFxuICAgICAgfSxcbiAgICAgIHN1YkNhdGVnb3JpZXM6IGF3YWl0IHRoaXMubWFwQ2F0ZWdvcmllcyhjYXRlZ29yeS5zdWJDYXRlZ29yaWVzKSxcbiAgICAgIHJlY29yZHM6IGF3YWl0IHRoaXMubWFwUmVjb3JkcyhjYXRlZ29yeS5yZWNvcmRzKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBtYXBWYXVsdHMobGlzdDogSGFzRWRnZXM8YW55Pik6IFByb21pc2U8VmF1bHRbXT4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbDxWYXVsdD4oXG4gICAgICBsaXN0LmVkZ2VzLm1hcCgoZWRnZSkgPT4gdGhpcy5tYXBWYXVsdChlZGdlLm5vZGUpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1hcENhdGVnb3JpZXMobGlzdDogSGFzRWRnZXM8YW55Pikge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbDxDYXRlZ29yeT4oXG4gICAgICAgIGxpc3QuZWRnZXNcbiAgICAgICAgICAubWFwKCh4KSA9PiB4Lm5vZGUpXG4gICAgICAgICAgLm1hcCgoeCkgPT4geC5jaGlsZERpcmVjdG9yeSB8fCB4KVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAobm9kZToge1xuICAgICAgICAgICAgICBpZDtcbiAgICAgICAgICAgICAga2V5SWQ7XG4gICAgICAgICAgICAgIHBsYWluTWV0YTtcbiAgICAgICAgICAgICAgY2lwaGVyTWV0YTtcbiAgICAgICAgICAgICAgZGVzY2VuZGFudERpcmVjdG9yaWVzO1xuICAgICAgICAgICAgICBhcmNoaXZlZDtcbiAgICAgICAgICAgIH0pID0+IHRoaXMubWFwQ2F0ZWdvcnkobm9kZSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICAgICAgLmZpbHRlcigoeCkgPT4geClcbiAgICAgIC5zb3J0KCh4LCB5KSA9PiAoeC5uYW1lID09PSB5Lm5hbWUgPyAwIDogeC5uYW1lID4geS5uYW1lID8gMSA6IC0xKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1hcFJlY29yZHMobGlzdDogSGFzRWRnZXM8YW55Pikge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbDxWYXVsdFJlY29yZD4oXG4gICAgICAgIGxpc3QuZWRnZXNcbiAgICAgICAgICAubWFwKCh4KSA9PiB4Lm5vZGUpXG4gICAgICAgICAgLm1hcCgoeCkgPT4geC5jaGlsZERpcmVjdG9yeSB8fCB4KVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAobm9kZToge1xuICAgICAgICAgICAgICBpZDtcbiAgICAgICAgICAgICAga2V5SWQ7XG4gICAgICAgICAgICAgIHBsYWluTWV0YTtcbiAgICAgICAgICAgICAgY2lwaGVyTWV0YTtcbiAgICAgICAgICAgICAgY3JlYXRlZDtcbiAgICAgICAgICAgICAgbW9kaWZpZWQ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ7XG4gICAgICAgICAgICAgIGFyY2hpdmVkO1xuICAgICAgICAgICAgfSkgPT4gdGhpcy5tYXBSZWNvcmQobm9kZSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICAgICAgLmZpbHRlcigoeCkgPT4geClcbiAgICAgIC5zb3J0KCh4LCB5KSA9PiAoeC5uYW1lID09PSB5Lm5hbWUgPyAwIDogeC5uYW1lID4geS5uYW1lID8gMSA6IC0xKSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlRGVmYXVsdFZhdWx0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc2VjdXJlQ29udGVudCA9ICcnO1xuICAgIGNvbnN0IHdyYXBwZWRDb250ZW50ID0gYXdhaXQgdGhpcy5rZXlNZXRhU2VydmljZS53cmFwQ29udGVudChzZWN1cmVDb250ZW50KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGU8YW55Pih7XG4gICAgICBtdXRhdGlvbjogQ3JlYXRlVmF1bHRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBwbGFpbk1ldGE6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBkaXJlY3RvcnlUeXBlOiBEaXJlY3RvcnlUeXBlLlZhdWx0LFxuICAgICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICAgIH0pLFxuICAgICAgICBjaXBoZXJNZXRhOiB3cmFwcGVkQ29udGVudC5jaXBoZXJNZXRhLFxuICAgICAgICBwYXJlbnRSb290RGlyZWN0b3J5OiB3cmFwcGVkQ29udGVudC5yb290S2V5LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXNwb25zZS5uZXcudmF1bHQuaWQ7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlQ2F0ZWdvcnkobmV3Q2F0ZWdvcnk6IE5ld0NhdGVnb3J5KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzZWN1cmVDb250ZW50ID0ge1xuICAgICAgbmFtZTogbmV3Q2F0ZWdvcnkubmFtZSxcbiAgICAgIGNvZGU6IG5ld0NhdGVnb3J5LmNvZGUsXG4gICAgICBpc0N1c3RvbTogbmV3Q2F0ZWdvcnkuaXNDdXN0b20sXG4gICAgICBhbGxvd1JlY29yZHM6IG5ld0NhdGVnb3J5LmFsbG93UmVjb3JkcyxcbiAgICAgIGFsbG93Q3VzdG9tQ2F0ZWdvcmllczogbmV3Q2F0ZWdvcnkuYWxsb3dDdXN0b21DYXRlZ29yaWVzLFxuICAgIH07XG4gICAgY29uc3Qgd3JhcHBlZENvbnRlbnQgPSBhd2FpdCB0aGlzLmtleU1ldGFTZXJ2aWNlLndyYXBDb250ZW50KFxuICAgICAgc2VjdXJlQ29udGVudCxcbiAgICAgIG5ld0NhdGVnb3J5LmNhdGVnb3J5SWRzXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGU8YW55Pih7XG4gICAgICBtdXRhdGlvbjogQ3JlYXRlQ2F0ZWdvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBwbGFpbk1ldGE6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBkaXJlY3RvcnlUeXBlOiBEaXJlY3RvcnlUeXBlLkNhdGVnb3J5LFxuICAgICAgICAgIGlzSGlkZGVuOiBmYWxzZSxcbiAgICAgICAgfSksXG4gICAgICAgIGNpcGhlck1ldGE6IHdyYXBwZWRDb250ZW50LmNpcGhlck1ldGEsXG4gICAgICAgIHBhcmVudERpcmVjdG9yaWVzOiB3cmFwcGVkQ29udGVudC53cmFwcGVkS2V5cyxcbiAgICAgICAgcGFyZW50Um9vdERpcmVjdG9yeTogd3JhcHBlZENvbnRlbnQucm9vdEtleSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzcG9uc2UubmV3LmNhdGVnb3J5LmlkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZUNhdGVnb3J5KFxuICAgIGNhdGVnb3J5SWQ6IHN0cmluZyxcbiAgICBrZXlJZDogc3RyaW5nLFxuICAgIHVwZGF0ZWRDYXRlZ29yeTogVXBkYXRlZENhdGVnb3J5XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNlY3VyZUNvbnRlbnQgPSB7XG4gICAgICBuYW1lOiB1cGRhdGVkQ2F0ZWdvcnkubmFtZSxcbiAgICAgIGNvZGU6IHVwZGF0ZWRDYXRlZ29yeS5jb2RlLFxuICAgICAgaXNDdXN0b206IHVwZGF0ZWRDYXRlZ29yeS5pc0N1c3RvbSxcbiAgICAgIGFsbG93UmVjb3JkczogdXBkYXRlZENhdGVnb3J5LmFsbG93UmVjb3JkcyxcbiAgICAgIGFsbG93Q3VzdG9tQ2F0ZWdvcmllczogdXBkYXRlZENhdGVnb3J5LmFsbG93Q3VzdG9tQ2F0ZWdvcmllcyxcbiAgICB9O1xuXG4gICAgY29uc3QgY2lwaGVyTWV0YSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxuICAgICAga2V5SWQsXG4gICAgICBzZWN1cmVDb250ZW50XG4gICAgKTtcblxuICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVDYXRlZ29yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZGlyZWN0b3J5SWQ6IGNhdGVnb3J5SWQsXG4gICAgICAgICAgY2lwaGVyTWV0YSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0Q2F0ZWdvcnlWaXNpYmlsaXR5KFxuICAgIGNhdGVnb3J5SWQ6IHN0cmluZyxcbiAgICBoaWRlOiBib29sZWFuXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVDYXRlZ29yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgZGlyZWN0b3J5SWQ6IGNhdGVnb3J5SWQsXG4gICAgICAgICAgcGxhaW5NZXRhOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBkaXJlY3RvcnlUeXBlOiBEaXJlY3RvcnlUeXBlLkNhdGVnb3J5LFxuICAgICAgICAgICAgaXNIaWRkZW46IGhpZGUsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZUNhdGVnb3J5KGNhdGVnb3J5SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlKHtcbiAgICAgIG11dGF0aW9uOiBEZWxldGVDYXRlZ29yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7IGNhdGVnb3J5SWQgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhcmNoaXZlQ2F0ZWdvcnkoXG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nLFxuICAgIHJlY3Vyc2l2ZTogYm9vbGVhblxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hcmNoaXZlRGlyZWN0b3J5KGNhdGVnb3J5SWQsIHJlY3Vyc2l2ZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdW5hcmNoaXZlQ2F0ZWdvcnkoXG4gICAgY2F0ZWdvcnlJZDogc3RyaW5nLFxuICAgIHJlY3Vyc2l2ZTogYm9vbGVhblxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy51bmFyY2hpdmVEaXJlY3RvcnkoY2F0ZWdvcnlJZCwgcmVjdXJzaXZlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhcmNoaXZlRGlyZWN0b3J5KFxuICAgIGRpcmVjdG9yeUlkOiBzdHJpbmcsXG4gICAgcmVjdXJzaXZlOiBib29sZWFuXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlKHtcbiAgICAgIG11dGF0aW9uOiBBcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBkaXJlY3RvcnlJZCxcbiAgICAgICAgICByZWN1cnNpdmUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVuYXJjaGl2ZURpcmVjdG9yeShcbiAgICBkaXJlY3RvcnlJZDogc3RyaW5nLFxuICAgIHJlY3Vyc2l2ZTogYm9vbGVhblxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZSh7XG4gICAgICBtdXRhdGlvbjogVW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBkaXJlY3RvcnlJZCxcbiAgICAgICAgICByZWN1cnNpdmUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG1hcFZhdWx0KG5vZGU6IHtcbiAgICBpZDtcbiAgICBrZXlJZDtcbiAgICBwbGFpbk1ldGE7XG4gICAgY2lwaGVyTWV0YTtcbiAgfSk6IFByb21pc2U8VmF1bHQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBuYW1lIH0gPSAoYXdhaXQgdGhpcy5rZXlNZXRhU2VydmljZS5kZWNyeXB0TWV0YShub2RlKSkgfHwge307XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogbm9kZS5pZCxcbiAgICAgICAga2V5SWQ6IG5vZGUua2V5SWQsXG4gICAgICAgIG5hbWUsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBkZWNyeXB0IFZhdWx0LicsIGUsIG5vZGUpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIG1hcFBhcmVudENhdGVnb3JpZXMoY2F0ZWdvcnk6IHtcbiAgICBwYXJlbnRDYXRlZ29yaWVzOiBhbnk7XG4gIH0pOiBQcm9taXNlPENhdGVnb3J5W10+IHtcbiAgICBpZiAoXG4gICAgICAhY2F0ZWdvcnkucGFyZW50Q2F0ZWdvcmllcyB8fFxuICAgICAgIWNhdGVnb3J5LnBhcmVudENhdGVnb3JpZXMuZWRnZXMgfHxcbiAgICAgICFjYXRlZ29yeS5wYXJlbnRDYXRlZ29yaWVzLmVkZ2VzLmxlbmd0aFxuICAgICkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBub2RlID0gY2F0ZWdvcnkucGFyZW50Q2F0ZWdvcmllcy5lZGdlc1swXS5ub2RlLnBhcmVudERpcmVjdG9yeTtcblxuICAgIHJldHVybiBbXG4gICAgICAuLi4oYXdhaXQgdGhpcy5tYXBQYXJlbnRDYXRlZ29yaWVzKG5vZGUpKSxcbiAgICAgIGF3YWl0IHRoaXMubWFwQ2F0ZWdvcnkobm9kZSksXG4gICAgXTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBtYXBDYXRlZ29yeShub2RlOiB7XG4gICAgaWQ7XG4gICAga2V5SWQ7XG4gICAgcGxhaW5NZXRhO1xuICAgIGNpcGhlck1ldGE7XG4gICAgZGVzY2VuZGFudERpcmVjdG9yaWVzO1xuICAgIGFyY2hpdmVkO1xuICB9KTogUHJvbWlzZTxDYXRlZ29yeT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IG5hbWUsIGlzQ3VzdG9tLCBhbGxvd1JlY29yZHMsIGFsbG93Q3VzdG9tQ2F0ZWdvcmllcywgY29kZSB9ID1cbiAgICAgICAgKGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2UuZGVjcnlwdE1ldGEobm9kZSkpIHx8IHt9O1xuICAgICAgY29uc3QgeyBpc0hpZGRlbiB9ID0gKG5vZGUucGxhaW5NZXRhICYmIEpTT04ucGFyc2Uobm9kZS5wbGFpbk1ldGEpKSB8fCB7fTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IG5vZGUuaWQsXG4gICAgICAgIGtleUlkOiBub2RlLmtleUlkLFxuICAgICAgICBjb2RlLFxuICAgICAgICBuYW1lLFxuICAgICAgICBpc0hpZGRlbjogISFpc0hpZGRlbixcbiAgICAgICAgaXNDdXN0b206ICEhaXNDdXN0b20sXG4gICAgICAgIGlzQXJjaGl2ZWQ6ICEhbm9kZS5hcmNoaXZlZCxcbiAgICAgICAgYWxsb3dSZWNvcmRzOiAhIWFsbG93UmVjb3JkcyxcbiAgICAgICAgYWxsb3dDdXN0b21DYXRlZ29yaWVzOiAhIWFsbG93Q3VzdG9tQ2F0ZWdvcmllcyxcbiAgICAgICAgaXNFbXB0eTogbm9kZS5kZXNjZW5kYW50RGlyZWN0b3JpZXNcbiAgICAgICAgICA/IG5vZGUuZGVzY2VuZGFudERpcmVjdG9yaWVzLnJlY29yZHNDb3VudCA9PT0gMFxuICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgYWxsUmVjb3Jkc0NvdW50OiBub2RlLmRlc2NlbmRhbnREaXJlY3Rvcmllcz8ucmVjb3Jkc0NvdW50LCAvLyBOZWVkIHRoaXMgZm9yIHRlc3RpbmcuXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBkZWNyeXB0IENhdGVnb3J5LicsIGUsIG5vZGUpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIG1hcFJlY29yZChub2RlOiB7XG4gICAgaWQ7XG4gICAga2V5SWQ7XG4gICAgcGxhaW5NZXRhO1xuICAgIGNpcGhlck1ldGE7XG4gICAgY3JlYXRlZDtcbiAgICBtb2RpZmllZDtcbiAgICBjb250ZW50O1xuICAgIGFyY2hpdmVkO1xuICB9KTogUHJvbWlzZTxWYXVsdFJlY29yZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb250ZW50cyA9IG5vZGUuY29udGVudC5lZGdlc1swXS5ub2RlLmNoaWxkRmlsZTtcbiAgICAgIGNvbnN0IHsgbmFtZSwgcmVjb3JkVHlwZSB9ID1cbiAgICAgICAgKGF3YWl0IHRoaXMua2V5TWV0YVNlcnZpY2UuZGVjcnlwdE1ldGEoXG4gICAgICAgICAgY29udGVudHMuY3VycmVudFZlcnNpb24uc3RhdGVcbiAgICAgICAgKSkgfHwge307XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBub2RlLmlkLFxuICAgICAgICBrZXlJZDogbm9kZS5rZXlJZCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcmVjb3JkVHlwZSxcbiAgICAgICAgaXNBcmNoaXZlZDogISFub2RlLmFyY2hpdmVkLFxuICAgICAgICBjcmVhdGVkT246IG5vZGUuY3JlYXRlZCxcbiAgICAgICAgbGFzdE1vZGlmaWVkOlxuICAgICAgICAgIG5ldyBEYXRlKG5vZGUubW9kaWZpZWQpID5cbiAgICAgICAgICBuZXcgRGF0ZShjb250ZW50cy5jdXJyZW50VmVyc2lvbi5zdGF0ZS5tb2RpZmllZClcbiAgICAgICAgICAgID8gbm9kZS5tb2RpZmllZFxuICAgICAgICAgICAgOiBjb250ZW50cy5jdXJyZW50VmVyc2lvbi5zdGF0ZS5tb2RpZmllZCxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlY3J5cHQgUmVjb3JkLicsIGUpO1xuICAgICAgcmV0dXJuIG51bGwgYXMgVmF1bHRSZWNvcmQ7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,29 +0,0 @@
1
- export var AccessLevel;
2
- (function (AccessLevel) {
3
- AccessLevel["Owner"] = "OWNER";
4
- AccessLevel["Admin"] = "ADMIN";
5
- AccessLevel["Writer"] = "WRITER";
6
- AccessLevel["Reader"] = "READER";
7
- AccessLevel["Deny"] = "DENY";
8
- })(AccessLevel || (AccessLevel = {}));
9
- export class SharedAccess {
10
- }
11
- export class DefaultCategory {
12
- }
13
- export class VaultRecordType {
14
- }
15
- export class VaultRecord {
16
- }
17
- export class Category {
18
- }
19
- export class CurrentCategory extends Category {
20
- }
21
- export class VaultCategory {
22
- }
23
- export class NewCategory {
24
- }
25
- export class UpdatedCategory {
26
- }
27
- export class Vault {
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY2F0ZWdvcnkvY2F0ZWdvcnkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNyQiw4QkFBZSxDQUFBO0lBQ2YsOEJBQWUsQ0FBQTtJQUNmLGdDQUFpQixDQUFBO0lBQ2pCLGdDQUFpQixDQUFBO0lBQ2pCLDRCQUFhLENBQUE7QUFDZixDQUFDLEVBTlcsV0FBVyxLQUFYLFdBQVcsUUFNdEI7QUFFRCxNQUFNLE9BQU8sWUFBWTtDQUt4QjtBQUVELE1BQU0sT0FBTyxlQUFlO0NBTzNCO0FBRUQsTUFBTSxPQUFPLGVBQWU7Q0FHM0I7QUFFRCxNQUFNLE9BQU8sV0FBVztDQVF2QjtBQUVELE1BQU0sT0FBTyxRQUFRO0NBWXBCO0FBRUQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsUUFBUTtDQUU1QztBQUVELE1BQU0sT0FBTyxhQUFhO0NBSXpCO0FBRUQsTUFBTSxPQUFPLFdBQVc7Q0FPdkI7QUFFRCxNQUFNLE9BQU8sZUFBZTtDQU0zQjtBQUVELE1BQU0sT0FBTyxLQUFLO0NBSWpCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQWNjZXNzTGV2ZWwge1xuICBPd25lciA9ICdPV05FUicsXG4gIEFkbWluID0gJ0FETUlOJyxcbiAgV3JpdGVyID0gJ1dSSVRFUicsXG4gIFJlYWRlciA9ICdSRUFERVInLFxuICBEZW55ID0gJ0RFTlknLFxufVxuXG5leHBvcnQgY2xhc3MgU2hhcmVkQWNjZXNzIHtcbiAgdHJ1c3RlZFBhcnR5SWQ6IHN0cmluZztcbiAgYWNjZXNzTGV2ZWw6IEFjY2Vzc0xldmVsO1xuICBpc0luaGVyaXRlZDogYm9vbGVhbjtcbiAgaW5oZXJpdGVkRnJvbT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIERlZmF1bHRDYXRlZ29yeSB7XG4gIGNvZGU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBhbGxvd1JlY29yZHM6IGJvb2xlYW47XG4gIGFsbG93Q3VzdG9tQ2F0ZWdvcmllczogYm9vbGVhbjtcbiAgYXJjaGl2ZWQ6IGJvb2xlYW47XG4gIHN1YkNhdGVnb3JpZXM/OiBEZWZhdWx0Q2F0ZWdvcnlbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFZhdWx0UmVjb3JkVHlwZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFZhdWx0UmVjb3JkIHtcbiAgaWQ6IHN0cmluZztcbiAga2V5SWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICByZWNvcmRUeXBlOiBWYXVsdFJlY29yZFR5cGU7XG4gIGNyZWF0ZWRPbjogc3RyaW5nIHwgRGF0ZTtcbiAgbGFzdE1vZGlmaWVkOiBzdHJpbmcgfCBEYXRlO1xuICBpc0FyY2hpdmVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnkge1xuICBpZDogc3RyaW5nO1xuICBrZXlJZDogc3RyaW5nO1xuICBjb2RlPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGlzSGlkZGVuOiBib29sZWFuO1xuICBpc0N1c3RvbTogYm9vbGVhbjtcbiAgaXNFbXB0eTogYm9vbGVhbjtcbiAgaXNBcmNoaXZlZDogYm9vbGVhbjtcbiAgYWxsUmVjb3Jkc0NvdW50OiBudW1iZXI7XG4gIGFsbG93UmVjb3JkczogYm9vbGVhbjtcbiAgYWxsb3dDdXN0b21DYXRlZ29yaWVzOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQ3VycmVudENhdGVnb3J5IGV4dGVuZHMgQ2F0ZWdvcnkge1xuICBwYXJlbnRzOiBDYXRlZ29yeVtdO1xufVxuXG5leHBvcnQgY2xhc3MgVmF1bHRDYXRlZ29yeSB7XG4gIGNhdGVnb3J5PzogQ3VycmVudENhdGVnb3J5O1xuICBzdWJDYXRlZ29yaWVzPzogQ2F0ZWdvcnlbXTtcbiAgcmVjb3Jkcz86IFZhdWx0UmVjb3JkW107XG59XG5cbmV4cG9ydCBjbGFzcyBOZXdDYXRlZ29yeSB7XG4gIG5hbWU6IHN0cmluZztcbiAgY29kZT86IHN0cmluZztcbiAgaXNDdXN0b206IGJvb2xlYW47XG4gIGFsbG93UmVjb3JkczogYm9vbGVhbjtcbiAgYWxsb3dDdXN0b21DYXRlZ29yaWVzOiBib29sZWFuO1xuICBjYXRlZ29yeUlkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlZENhdGVnb3J5IHtcbiAgbmFtZTogc3RyaW5nO1xuICBjb2RlPzogc3RyaW5nO1xuICBpc0N1c3RvbTogYm9vbGVhbjtcbiAgYWxsb3dSZWNvcmRzOiBib29sZWFuO1xuICBhbGxvd0N1c3RvbUNhdGVnb3JpZXM6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBWYXVsdCB7XG4gIGlkOiBzdHJpbmc7XG4gIGtleUlkOiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG59XG4iXX0=
@@ -1,188 +0,0 @@
1
- import gql from 'graphql-tag';
2
- import { FetchKeyGraphField, KeyGraphFragment } from '../_common/queries.gql';
3
- export const KeyExchangeFields = `
4
- id
5
- token
6
- state
7
- mode
8
- isInitiator
9
- initiator {
10
- id
11
- username
12
- }
13
- responder {
14
- id
15
- username
16
- }
17
- created
18
- modified
19
- tokenExpiryTime
20
- isExpired
21
- initiatorRootKeyCipher
22
- initiatorActionRequired
23
- responderActionRequired
24
- responderEmailAddress
25
- otk {
26
- state
27
- otKeyParams
28
- otKeyCipher
29
- sharedKey {
30
- id
31
- }
32
- mkSharedKey {
33
- id
34
- }
35
- initiatorSigPxk {
36
- id
37
- }
38
- responderSigPxk {
39
- id
40
- }
41
- initiatorOneTimePbkCipher
42
- responderPbkCipher
43
- }`;
44
- export const UserSharedKeyFields = `
45
- userSigPrk {
46
- id
47
- }
48
- otherSigPbk {
49
- id
50
- }
51
- sharedKey {
52
- id
53
- }
54
- mkSharedKey {
55
- id
56
- }
57
- mkPxk {
58
- id
59
- pbk
60
- }
61
- mkReshareRequestCipher
62
- mkReshareResponseCipher
63
- mkReshareRequestSent
64
- mkReshareResponseSent
65
- `;
66
- export const CurrentUserSharedKeyQuery = gql `
67
- query CurrentUserSharedKeyQuery(
68
- $username: String
69
- $userId: LrRelayIdInput
70
- $cachedKeyIds: [LrRelayIdInput!]
71
- ) {
72
- currentUserSharedKey(
73
- username: $username
74
- userId: $userId
75
- ) {
76
- userSharedKey {
77
- ${UserSharedKeyFields}
78
- }
79
- }
80
- keyGraph(cachedKeyIds: $cachedKeyIds) {
81
- ...KeyGraphFragment
82
- }
83
- }
84
- ${KeyGraphFragment}`;
85
- export const KeyExchangesQuery = gql `
86
- query KeyExchangeQuery(
87
- $orderBy: String
88
- $isExpired: Boolean
89
- $initiatorActionRequired: Boolean
90
- $responderActionRequired: Boolean
91
- $initiator: ID
92
- $responder: ID
93
- $state: String
94
- ) {
95
- keyExchanges(
96
- orderBy: $orderBy
97
- isExpired: $isExpired
98
- initiatorActionRequired: $initiatorActionRequired
99
- responderActionRequired: $responderActionRequired
100
- initiator: $initiator
101
- responder: $responder
102
- state: $state
103
- ) {
104
- edges {
105
- node {
106
- ${KeyExchangeFields}
107
- }
108
- }
109
- }
110
- keyGraph {
111
- ...KeyGraphFragment
112
- }
113
- }
114
- ${KeyGraphFragment}
115
- `;
116
- export const KeyExchangeQuery = gql `
117
- query KeyExchangeQuery(
118
- $id: LrRelayIdInput!
119
- ) {
120
- keyExchange(
121
- id: $id
122
- ) {
123
- ${KeyExchangeFields}
124
- }
125
- keyGraph {
126
- ...KeyGraphFragment
127
- }
128
- }
129
- ${KeyGraphFragment}
130
- `;
131
- // Key graph is only available for authenticated users. This query
132
- // is for unauthenticated users.
133
- export const KeyExchangeTokenQuery = gql `
134
- query KeyExchangeQuery(
135
- $id: LrRelayIdInput!
136
- $token: String
137
- ) {
138
- keyExchange(
139
- id: $id
140
- token: $token
141
- ) {
142
- ${KeyExchangeFields}
143
- }
144
- }`;
145
- export const InitiateOtkMutation = gql `
146
- mutation InitiateKeyExchangeOtk(
147
- $input: InitiateKeyExchangeOtkInput!
148
- ) {
149
- initiateKeyExchangeOtk(input: $input) {
150
- keyExchange {
151
- ${KeyExchangeFields}
152
- }
153
- }
154
- ${FetchKeyGraphField}
155
- }`;
156
- export const RespondOtkMutation = gql `
157
- mutation RespondKeyExchangeOtk(
158
- $input: RespondKeyExchangeOtkInput!
159
- ) {
160
- respondKeyExchangeOtk(input: $input) {
161
- keyExchange {
162
- ${KeyExchangeFields}
163
- }
164
- userSharedKey {
165
- ${UserSharedKeyFields}
166
- }
167
- tp {
168
- id
169
- }
170
- }
171
- }`;
172
- export const CompleteOtkMutation = gql `
173
- mutation CompleteKeyExchangeOtk(
174
- $input: CompleteKeyExchangeOtkInput!
175
- ) {
176
- completeKeyExchangeOtk(input: $input) {
177
- keyExchange {
178
- ${KeyExchangeFields}
179
- }
180
- userSharedKey {
181
- ${UserSharedKeyFields}
182
- }
183
- tp {
184
- id
185
- }
186
- }
187
- }`;
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWV4Y2hhbmdlLmdxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9rZXktZXhjaGFuZ2Uva2V5LWV4Y2hhbmdlLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDOUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF3Qy9CLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBcUJsQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7OztRQVdwQyxtQkFBbUI7Ozs7Ozs7RUFPekIsZ0JBQWdCLEVBQUUsQ0FBQztBQUVyQixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQXFCNUIsaUJBQWlCOzs7Ozs7OztFQVF2QixnQkFBZ0I7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztNQU83QixpQkFBaUI7Ozs7OztFQU1yQixnQkFBZ0I7Q0FDakIsQ0FBQztBQUVGLGtFQUFrRTtBQUNsRSxnQ0FBZ0M7QUFDaEMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7TUFTbEMsaUJBQWlCOztFQUVyQixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNaEMsaUJBQWlCOzs7RUFHckIsa0JBQWtCO0VBQ2xCLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUE7Ozs7OztRQU03QixpQkFBaUI7OztRQUdqQixtQkFBbUI7Ozs7OztFQU16QixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBOzs7Ozs7UUFNOUIsaUJBQWlCOzs7UUFHakIsbUJBQW1COzs7Ozs7RUFNekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xuaW1wb3J0IHsgRmV0Y2hLZXlHcmFwaEZpZWxkLCBLZXlHcmFwaEZyYWdtZW50IH0gZnJvbSAnLi4vX2NvbW1vbi9xdWVyaWVzLmdxbCc7XG5cbmV4cG9ydCBjb25zdCBLZXlFeGNoYW5nZUZpZWxkcyA9IGBcbiAgaWRcbiAgdG9rZW5cbiAgc3RhdGVcbiAgbW9kZVxuICBpc0luaXRpYXRvclxuICBpbml0aWF0b3Ige1xuICAgIGlkXG4gICAgdXNlcm5hbWVcbiAgfVxuICByZXNwb25kZXIge1xuICAgIGlkXG4gICAgdXNlcm5hbWVcbiAgfVxuICBjcmVhdGVkXG4gIG1vZGlmaWVkXG4gIHRva2VuRXhwaXJ5VGltZVxuICBpc0V4cGlyZWRcbiAgaW5pdGlhdG9yUm9vdEtleUNpcGhlclxuICBpbml0aWF0b3JBY3Rpb25SZXF1aXJlZFxuICByZXNwb25kZXJBY3Rpb25SZXF1aXJlZFxuICByZXNwb25kZXJFbWFpbEFkZHJlc3NcbiAgb3RrIHtcbiAgICBzdGF0ZVxuICAgIG90S2V5UGFyYW1zXG4gICAgb3RLZXlDaXBoZXJcbiAgICBzaGFyZWRLZXkge1xuICAgICAgaWRcbiAgICB9XG4gICAgbWtTaGFyZWRLZXkge1xuICAgICAgaWRcbiAgICB9XG4gICAgaW5pdGlhdG9yU2lnUHhrIHtcbiAgICAgIGlkXG4gICAgfVxuICAgIHJlc3BvbmRlclNpZ1B4ayB7XG4gICAgICBpZFxuICAgIH1cbiAgICBpbml0aWF0b3JPbmVUaW1lUGJrQ2lwaGVyXG4gICAgcmVzcG9uZGVyUGJrQ2lwaGVyXG59YDtcblxuZXhwb3J0IGNvbnN0IFVzZXJTaGFyZWRLZXlGaWVsZHMgPSBgXG4gIHVzZXJTaWdQcmsge1xuICAgIGlkXG4gIH1cbiAgb3RoZXJTaWdQYmsge1xuICAgIGlkXG4gIH1cbiAgc2hhcmVkS2V5IHtcbiAgICBpZFxuICB9XG4gIG1rU2hhcmVkS2V5IHtcbiAgICBpZFxuICB9XG4gIG1rUHhrIHtcbiAgICBpZFxuICAgIHBia1xuICB9XG4gIG1rUmVzaGFyZVJlcXVlc3RDaXBoZXJcbiAgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXJcbiAgbWtSZXNoYXJlUmVxdWVzdFNlbnRcbiAgbWtSZXNoYXJlUmVzcG9uc2VTZW50XG5gO1xuXG5leHBvcnQgY29uc3QgQ3VycmVudFVzZXJTaGFyZWRLZXlRdWVyeSA9IGdxbGBcbnF1ZXJ5IEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnkoXG4gICR1c2VybmFtZTogU3RyaW5nXG4gICR1c2VySWQ6IExyUmVsYXlJZElucHV0XG4gICRjYWNoZWRLZXlJZHM6IFtMclJlbGF5SWRJbnB1dCFdXG4pIHtcbiAgY3VycmVudFVzZXJTaGFyZWRLZXkoXG4gICAgdXNlcm5hbWU6ICR1c2VybmFtZVxuICAgIHVzZXJJZDogJHVzZXJJZFxuICApIHtcbiAgICB1c2VyU2hhcmVkS2V5IHtcbiAgICAgICR7VXNlclNoYXJlZEtleUZpZWxkc31cbiAgICB9XG4gIH1cbiAga2V5R3JhcGgoY2FjaGVkS2V5SWRzOiAkY2FjaGVkS2V5SWRzKSB7XG4gICAgLi4uS2V5R3JhcGhGcmFnbWVudFxuICB9XG59XG4ke0tleUdyYXBoRnJhZ21lbnR9YDtcblxuZXhwb3J0IGNvbnN0IEtleUV4Y2hhbmdlc1F1ZXJ5ID0gZ3FsYFxucXVlcnkgS2V5RXhjaGFuZ2VRdWVyeShcbiRvcmRlckJ5OiBTdHJpbmdcbiRpc0V4cGlyZWQ6IEJvb2xlYW5cbiRpbml0aWF0b3JBY3Rpb25SZXF1aXJlZDogQm9vbGVhblxuJHJlc3BvbmRlckFjdGlvblJlcXVpcmVkOiBCb29sZWFuXG4kaW5pdGlhdG9yOiBJRFxuJHJlc3BvbmRlcjogSURcbiRzdGF0ZTogU3RyaW5nXG4pIHtcbmtleUV4Y2hhbmdlcyhcbiAgb3JkZXJCeTogJG9yZGVyQnlcbiAgaXNFeHBpcmVkOiAkaXNFeHBpcmVkXG4gIGluaXRpYXRvckFjdGlvblJlcXVpcmVkOiAkaW5pdGlhdG9yQWN0aW9uUmVxdWlyZWRcbiAgcmVzcG9uZGVyQWN0aW9uUmVxdWlyZWQ6ICRyZXNwb25kZXJBY3Rpb25SZXF1aXJlZFxuICBpbml0aWF0b3I6ICRpbml0aWF0b3JcbiAgcmVzcG9uZGVyOiAkcmVzcG9uZGVyXG4gIHN0YXRlOiAkc3RhdGVcbikge1xuICBlZGdlcyB7XG4gICAgbm9kZSB7XG4gICAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICAgIH1cbiAgfVxufVxua2V5R3JhcGgge1xuICAuLi5LZXlHcmFwaEZyYWdtZW50XG59XG59XG4ke0tleUdyYXBoRnJhZ21lbnR9XG5gO1xuXG5leHBvcnQgY29uc3QgS2V5RXhjaGFuZ2VRdWVyeSA9IGdxbGBcbnF1ZXJ5IEtleUV4Y2hhbmdlUXVlcnkoXG4gICRpZDogTHJSZWxheUlkSW5wdXQhXG4pIHtcbiAga2V5RXhjaGFuZ2UoXG4gICAgaWQ6ICRpZFxuICApIHtcbiAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICB9XG4gIGtleUdyYXBoIHtcbiAgICAuLi5LZXlHcmFwaEZyYWdtZW50XG4gIH1cbn1cbiR7S2V5R3JhcGhGcmFnbWVudH1cbmA7XG5cbi8vIEtleSBncmFwaCBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgYXV0aGVudGljYXRlZCB1c2Vycy4gVGhpcyBxdWVyeVxuLy8gaXMgZm9yIHVuYXV0aGVudGljYXRlZCB1c2Vycy5cbmV4cG9ydCBjb25zdCBLZXlFeGNoYW5nZVRva2VuUXVlcnkgPSBncWxgXG5xdWVyeSBLZXlFeGNoYW5nZVF1ZXJ5KFxuICAkaWQ6IExyUmVsYXlJZElucHV0IVxuICAkdG9rZW46IFN0cmluZ1xuKSB7XG4gIGtleUV4Y2hhbmdlKFxuICAgIGlkOiAkaWRcbiAgICB0b2tlbjogJHRva2VuXG4gICkge1xuICAgICR7S2V5RXhjaGFuZ2VGaWVsZHN9XG4gIH1cbn1gO1xuXG5leHBvcnQgY29uc3QgSW5pdGlhdGVPdGtNdXRhdGlvbiA9IGdxbGBcbm11dGF0aW9uIEluaXRpYXRlS2V5RXhjaGFuZ2VPdGsoXG4kaW5wdXQ6IEluaXRpYXRlS2V5RXhjaGFuZ2VPdGtJbnB1dCFcbikge1xuaW5pdGlhdGVLZXlFeGNoYW5nZU90ayhpbnB1dDogJGlucHV0KSB7XG4gIGtleUV4Y2hhbmdlIHtcbiAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICB9XG59XG4ke0ZldGNoS2V5R3JhcGhGaWVsZH1cbn1gO1xuXG5leHBvcnQgY29uc3QgUmVzcG9uZE90a011dGF0aW9uID0gZ3FsYFxubXV0YXRpb24gUmVzcG9uZEtleUV4Y2hhbmdlT3RrKFxuICAkaW5wdXQ6IFJlc3BvbmRLZXlFeGNoYW5nZU90a0lucHV0IVxuKSB7XG4gIHJlc3BvbmRLZXlFeGNoYW5nZU90ayhpbnB1dDogJGlucHV0KSB7XG4gICAga2V5RXhjaGFuZ2Uge1xuICAgICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cbiAgICB9XG4gICAgdXNlclNoYXJlZEtleSB7XG4gICAgICAke1VzZXJTaGFyZWRLZXlGaWVsZHN9XG4gICAgfVxuICAgIHRwIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG59YDtcblxuZXhwb3J0IGNvbnN0IENvbXBsZXRlT3RrTXV0YXRpb24gPSBncWxgXG5tdXRhdGlvbiBDb21wbGV0ZUtleUV4Y2hhbmdlT3RrKFxuICAkaW5wdXQ6IENvbXBsZXRlS2V5RXhjaGFuZ2VPdGtJbnB1dCFcbikge1xuICBjb21wbGV0ZUtleUV4Y2hhbmdlT3RrKGlucHV0OiAkaW5wdXQpIHtcbiAgICBrZXlFeGNoYW5nZSB7XG4gICAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICAgIH1cbiAgICB1c2VyU2hhcmVkS2V5IHtcbiAgICAgICR7VXNlclNoYXJlZEtleUZpZWxkc31cbiAgICB9XG4gICAgdHAge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1gO1xuIl19