@lifeready/core 1.0.10 → 1.0.12

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 (84) hide show
  1. package/bundles/lifeready-core.umd.js +7390 -8456
  2. package/bundles/lifeready-core.umd.js.map +1 -1
  3. package/bundles/lifeready-core.umd.min.js +2 -2
  4. package/bundles/lifeready-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/utils.js +9 -1
  6. package/esm2015/lib/api/lock.service.js +10 -10
  7. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +1 -1
  8. package/esm2015/lib/api/query-processor/query-processor.service.js +71 -1
  9. package/esm2015/lib/api/types/lr-graphql.types.js +31 -1
  10. package/esm2015/lib/auth/life-ready-auth.service.js +12 -24
  11. package/esm2015/lib/cryptography/encryption.service.js +3 -3
  12. package/esm2015/lib/cryptography/key-graph.service.js +24 -5
  13. package/esm2015/lib/items2/item2.gql.js +139 -0
  14. package/esm2015/lib/items2/item2.service.js +498 -0
  15. package/esm2015/lib/items2/item2.types.js +1 -0
  16. package/esm2015/lib/scenario/scenario.constants.js +2 -0
  17. package/esm2015/lib/scenario/scenario.controller.js +34 -0
  18. package/esm2015/lib/scenario/scenario.gql.js +35 -331
  19. package/esm2015/lib/scenario/scenario.gql.private.js +198 -0
  20. package/esm2015/lib/scenario/scenario.service.js +420 -493
  21. package/esm2015/lib/scenario/scenario.types.js +1 -64
  22. package/esm2015/lib/trusted-parties/tp-assembly.gql.private.js +22 -0
  23. package/esm2015/lib/trusted-parties/tp-assembly.js +362 -0
  24. package/esm2015/lib/trusted-parties/tp-assembly.types.js +1 -0
  25. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +4 -3
  26. package/esm2015/lib/trusted-parties/tp-password-reset.controller.js +34 -0
  27. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +5 -1
  28. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +36 -240
  29. package/esm2015/lib/trusted-parties/trusted-party2.service.js +3 -3
  30. package/esm2015/lifeready-core.js +6 -3
  31. package/esm2015/public-api.js +6 -15
  32. package/fesm2015/lifeready-core.js +6127 -6909
  33. package/fesm2015/lifeready-core.js.map +1 -1
  34. package/lib/_common/utils.d.ts +6 -0
  35. package/lib/api/lock.service.d.ts +12 -3
  36. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +1 -0
  37. package/lib/api/query-processor/query-processor.service.d.ts +1 -1
  38. package/lib/api/types/lr-graphql.types.d.ts +107 -2
  39. package/lib/auth/life-ready-auth.service.d.ts +3 -1
  40. package/lib/cryptography/key-graph.service.d.ts +9 -1
  41. package/lib/{api → items2}/item2.gql.d.ts +28 -1
  42. package/lib/items2/item2.service.d.ts +203 -0
  43. package/lib/items2/item2.types.d.ts +70 -0
  44. package/lib/scenario/scenario.constants.d.ts +1 -0
  45. package/lib/scenario/scenario.controller.d.ts +10 -0
  46. package/lib/scenario/scenario.gql.d.ts +52 -24
  47. package/lib/scenario/scenario.gql.private.d.ts +16 -0
  48. package/lib/scenario/scenario.service.d.ts +229 -54
  49. package/lib/scenario/scenario.types.d.ts +47 -214
  50. package/lib/trusted-parties/tp-assembly.d.ts +177 -0
  51. package/lib/trusted-parties/tp-assembly.gql.private.d.ts +5 -0
  52. package/lib/trusted-parties/tp-assembly.types.d.ts +38 -0
  53. package/lib/trusted-parties/tp-password-reset-request.service.d.ts +3 -3
  54. package/lib/trusted-parties/tp-password-reset.controller.d.ts +10 -0
  55. package/lib/trusted-parties/tp-password-reset.gql.d.ts +5 -0
  56. package/lib/trusted-parties/tp-password-reset.service.d.ts +99 -41
  57. package/lib/trusted-parties/trusted-party2.service.d.ts +1 -1
  58. package/lifeready-core.d.ts +5 -2
  59. package/lifeready-core.metadata.json +1 -1
  60. package/package.json +1 -1
  61. package/public-api.d.ts +5 -14
  62. package/esm2015/lib/api/item2.gql.js +0 -110
  63. package/esm2015/lib/api/item2.service.js +0 -311
  64. package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +0 -105
  65. package/esm2015/lib/scenario/approvals/scenario-approval.types.js +0 -1
  66. package/esm2015/lib/scenario/approvals/scenario-approver.service.js +0 -300
  67. package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +0 -52
  68. package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +0 -97
  69. package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +0 -1
  70. package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +0 -150
  71. package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +0 -229
  72. package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +0 -1
  73. package/esm2015/lib/scenario/scenario-setup.service.js +0 -269
  74. package/lib/api/item2.service.d.ts +0 -177
  75. package/lib/scenario/approvals/scenario-approval.gql.d.ts +0 -7
  76. package/lib/scenario/approvals/scenario-approval.types.d.ts +0 -63
  77. package/lib/scenario/approvals/scenario-approver.service.d.ts +0 -32
  78. package/lib/scenario/claimants/scenario-claimant.gql.d.ts +0 -5
  79. package/lib/scenario/claimants/scenario-claimant.service.d.ts +0 -17
  80. package/lib/scenario/claimants/scenario-claimant.types.d.ts +0 -18
  81. package/lib/scenario/receivers/scenario-receiver.gql.d.ts +0 -8
  82. package/lib/scenario/receivers/scenario-receiver.service.d.ts +0 -30
  83. package/lib/scenario/receivers/scenario-receiver.types.d.ts +0 -54
  84. package/lib/scenario/scenario-setup.service.d.ts +0 -22
@@ -1,269 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { ScenarioApproverService } from './approvals/scenario-approver.service';
4
- import { ScenarioClaimantService } from './claimants/scenario-claimant.service';
5
- import { ScenarioReceiverService } from './receivers/scenario-receiver.service';
6
- import { ScenarioService } from './scenario.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "./scenario.service";
9
- import * as i2 from "./claimants/scenario-claimant.service";
10
- import * as i3 from "./approvals/scenario-approver.service";
11
- import * as i4 from "./receivers/scenario-receiver.service";
12
- export class ScenarioSetupService {
13
- constructor(scenarioService, scenarioClaimantService, scenarioApproverService, scenarioReceiverService) {
14
- this.scenarioService = scenarioService;
15
- this.scenarioClaimantService = scenarioClaimantService;
16
- this.scenarioApproverService = scenarioApproverService;
17
- this.scenarioReceiverService = scenarioReceiverService;
18
- }
19
- setupScenario(newScenario) {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- const scenarioId = yield this.scenarioService.createScenario({
22
- plainSubjectCipherData: {
23
- event: newScenario.event,
24
- name: newScenario.name,
25
- },
26
- });
27
- try {
28
- yield Promise.all(newScenario.claimants.map((x) => this.updateClaimant(scenarioId, newScenario.event, x)));
29
- const scenario = yield this.scenarioService.getScenario(scenarioId);
30
- if (newScenario.approvalGroups.length) {
31
- const approvalGroups = {
32
- scenarioId,
33
- keyId: scenario.keyId,
34
- event: scenario.event,
35
- singleReject: false,
36
- quorum: 1,
37
- plainAssemblyCipherData: null,
38
- approvalGroups: newScenario.approvalGroups.map((x) => ({
39
- quorum: x.quorum,
40
- singleReject: x.singleReject,
41
- plainSubAssemblyCipherData: { name: x.name },
42
- approvers: x.approvers.map((y) => ({
43
- trustedPartyId: y.trustedPartyId,
44
- trustedPartySharedKeyId: y.trustedPartySharedKeyId,
45
- plainSharedCipherData: {
46
- message: y.message,
47
- event: newScenario.event,
48
- },
49
- })),
50
- })),
51
- };
52
- scenario.assemblyKeyId = yield this.scenarioApproverService.createScenarioApproverAssembly(approvalGroups);
53
- }
54
- yield Promise.all(newScenario.receivers.map((x) => this.updateReceiver(scenarioId, scenario.assemblyKeyId, newScenario.event, x)));
55
- }
56
- catch (e) {
57
- return { scenarioId, error: e };
58
- }
59
- return { scenarioId };
60
- });
61
- }
62
- updateScenario(updateScenario) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- const params = {
65
- scenarioId: updateScenario.scenarioId,
66
- keyId: updateScenario.keyId,
67
- plainSubjectCipherData: {
68
- event: updateScenario.event,
69
- name: updateScenario.name,
70
- },
71
- };
72
- yield this.scenarioService.updateScenario(params);
73
- yield Promise.all(updateScenario.claimants.map((x) => this.updateClaimant(updateScenario.scenarioId, updateScenario.event, x)));
74
- yield Promise.all(updateScenario.deletedClaimantIds.map((x) => this.scenarioClaimantService.deleteClaimant(x)));
75
- const assemblyKeyId = yield this.updateApprovalGroups(updateScenario);
76
- yield Promise.all(updateScenario.receivers.map((x) => this.updateReceiver(updateScenario.scenarioId, assemblyKeyId, updateScenario.event, x)));
77
- yield Promise.all(updateScenario.deletedReceiverIds.map((x) => this.scenarioReceiverService.deleteReceiver(x)));
78
- });
79
- }
80
- updateClaimant(scenarioId, event, claimant) {
81
- return __awaiter(this, void 0, void 0, function* () {
82
- if (claimant.claimantId) {
83
- yield this.scenarioClaimantService.updateClaimant({
84
- id: claimant.claimantId,
85
- keyId: claimant.keyId,
86
- plainSharedCipherData: { message: claimant.message, event },
87
- });
88
- }
89
- else {
90
- yield this.scenarioClaimantService.addClaimant({
91
- scenarioId,
92
- trustedPartyId: claimant.trustedPartyId,
93
- trustedPartySharedKeyId: claimant.trustedPartySharedKeyId,
94
- plainSharedCipherData: { message: claimant.message, event },
95
- });
96
- }
97
- });
98
- }
99
- updateApprovalGroups(updateScenario) {
100
- return __awaiter(this, void 0, void 0, function* () {
101
- if (updateScenario.assemblyKeyId) {
102
- if (updateScenario.approvalGroups.length) {
103
- const approvalGroups = {
104
- scenarioId: updateScenario.scenarioId,
105
- assemblyKeyId: updateScenario.assemblyKeyId,
106
- singleReject: false,
107
- quorum: 1,
108
- approvalGroups: updateScenario.approvalGroups.map((x) => ({
109
- subAssemblyId: x.subAssemblyId,
110
- quorum: x.quorum,
111
- singleReject: x.singleReject,
112
- plainSubAssemblyCipherData: { name: x.name },
113
- approvers: x.approvers.map((y) => ({
114
- approverId: y.approverId,
115
- keyId: y.keyId,
116
- trustedPartyId: y.trustedPartyId,
117
- trustedPartySharedKeyId: y.trustedPartySharedKeyId,
118
- plainSharedCipherData: {
119
- message: y.message,
120
- event: updateScenario.event,
121
- },
122
- })),
123
- deletedApproverIds: x.deletedApproverIds,
124
- })),
125
- deletedGroupIds: updateScenario.deletedGroupIds,
126
- };
127
- yield this.scenarioApproverService.updateScenarioApproverAssembly(approvalGroups);
128
- return updateScenario.assemblyKeyId;
129
- }
130
- else {
131
- const { receivers } = yield this.scenarioService.getScenario(updateScenario.scenarioId);
132
- yield this.scenarioApproverService.deleteScenarioApproverAssembly(updateScenario.scenarioId, updateScenario.event, receivers);
133
- return null;
134
- }
135
- // update or delete
136
- }
137
- else if (updateScenario.approvalGroups.length) {
138
- const { receivers } = yield this.scenarioService.getScenario(updateScenario.scenarioId);
139
- const approvalGroups = {
140
- scenarioId: updateScenario.scenarioId,
141
- keyId: updateScenario.keyId,
142
- event: updateScenario.event,
143
- singleReject: false,
144
- quorum: 1,
145
- approvalGroups: updateScenario.approvalGroups.map((x) => ({
146
- quorum: x.quorum,
147
- singleReject: x.singleReject,
148
- plainSubAssemblyCipherData: { name: x.name },
149
- approvers: x.approvers.map((y) => ({
150
- trustedPartyId: y.trustedPartyId,
151
- trustedPartySharedKeyId: y.trustedPartySharedKeyId,
152
- plainSharedCipherData: {
153
- message: y.message,
154
- event: updateScenario.event,
155
- },
156
- })),
157
- })),
158
- receivers,
159
- };
160
- return yield this.scenarioApproverService.createScenarioApproverAssembly(approvalGroups);
161
- }
162
- return null;
163
- });
164
- }
165
- updateReceiver(scenarioId, assemblyKeyId, event, receiver) {
166
- return __awaiter(this, void 0, void 0, function* () {
167
- let receiverId = receiver.receiverId;
168
- // Currently deleting all receivers below assembly logic.
169
- if (receiverId) {
170
- yield this.scenarioReceiverService.updateReceiver({
171
- id: receiver.receiverId,
172
- keyId: receiver.keyId,
173
- plainSharedCipherData: { message: receiver.message, event },
174
- });
175
- }
176
- else {
177
- const newReceiver = {
178
- scenarioId,
179
- trustedPartyId: receiver.trustedPartyId,
180
- trustedPartySharedKeyId: receiver.trustedPartySharedKeyId,
181
- plainSharedCipherData: { message: receiver.message, event },
182
- };
183
- receiverId = yield this.scenarioReceiverService.addReceiver(newReceiver);
184
- }
185
- const loadedReceiver = yield this.scenarioReceiverService.getReceiver(receiverId);
186
- yield this.updateReceiverItems(scenarioId, assemblyKeyId, loadedReceiver, receiver.permissions);
187
- });
188
- }
189
- updateReceiverItems(scenarioId, assemblyKeyId, receiver, permissions) {
190
- return __awaiter(this, void 0, void 0, function* () {
191
- permissions = permissions || {};
192
- permissions.categories = permissions.categories || [];
193
- permissions.records = permissions.records || [];
194
- yield Promise.all(permissions.categories
195
- .filter((x) => !receiver.categories.some((y) => y.category.id === x.categoryId))
196
- .map((x) => __awaiter(this, void 0, void 0, function* () {
197
- const params = {
198
- scenarioId,
199
- assemblyKeyId,
200
- receiverId: receiver.id,
201
- receiverKeyId: receiver.keyId,
202
- accessRole: x.accessLevel,
203
- categoryId: x.categoryId,
204
- };
205
- yield this.scenarioReceiverService.addReceiverCategory(params);
206
- })));
207
- yield Promise.all(permissions.records
208
- .filter((x) => !receiver.records.some((y) => y.record.id === x.recordId))
209
- .map((x) => __awaiter(this, void 0, void 0, function* () {
210
- const params = {
211
- scenarioId,
212
- assemblyKeyId,
213
- receiverId: receiver.id,
214
- receiverKeyId: receiver.keyId,
215
- accessRole: x.accessLevel,
216
- recordId: x.recordId,
217
- };
218
- yield this.scenarioReceiverService.addReceiverRecord(params);
219
- })));
220
- yield Promise.all(permissions.categories
221
- .map((x) => ({
222
- accessLevel: x.accessLevel,
223
- category: receiver.categories.find((y) => y.category.id === x.categoryId),
224
- }))
225
- .filter((x) => x.category)
226
- .map((x) => __awaiter(this, void 0, void 0, function* () {
227
- const params = {
228
- id: x.category.id,
229
- keyId: x.category.keyId,
230
- accessRole: x.accessLevel,
231
- };
232
- yield this.scenarioReceiverService.updateReceiverItem(params);
233
- })));
234
- yield Promise.all(permissions.records
235
- .map((x) => ({
236
- accessLevel: x.accessLevel,
237
- record: receiver.records.find((y) => y.record.id === x.recordId),
238
- }))
239
- .filter((x) => x.record)
240
- .map((x) => __awaiter(this, void 0, void 0, function* () {
241
- const params = {
242
- id: x.record.id,
243
- keyId: x.record.keyId,
244
- accessRole: x.accessLevel,
245
- };
246
- yield this.scenarioReceiverService.updateReceiverItem(params);
247
- })));
248
- yield Promise.all(receiver.categories
249
- .filter((x) => !permissions.categories.some((y) => y.categoryId === x.category.id))
250
- .map((x) => this.scenarioReceiverService.deleteReceiverItem(x.id)));
251
- yield Promise.all(receiver.records
252
- .filter((x) => !permissions.records.some((y) => y.recordId === x.record.id))
253
- .map((x) => this.scenarioReceiverService.deleteReceiverItem(x.id)));
254
- });
255
- }
256
- }
257
- ScenarioSetupService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ScenarioSetupService_Factory() { return new ScenarioSetupService(i0.ɵɵinject(i1.ScenarioService), i0.ɵɵinject(i2.ScenarioClaimantService), i0.ɵɵinject(i3.ScenarioApproverService), i0.ɵɵinject(i4.ScenarioReceiverService)); }, token: ScenarioSetupService, providedIn: "root" });
258
- ScenarioSetupService.decorators = [
259
- { type: Injectable, args: [{
260
- providedIn: 'root',
261
- },] }
262
- ];
263
- ScenarioSetupService.ctorParameters = () => [
264
- { type: ScenarioService },
265
- { type: ScenarioClaimantService },
266
- { type: ScenarioApproverService },
267
- { type: ScenarioReceiverService }
268
- ];
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8tc2V0dXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvb3B0L2F0bGFzc2lhbi9waXBlbGluZXMvYWdlbnQvYnVpbGQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvc2NlbmFyaW8vc2NlbmFyaW8tc2V0dXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0zQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUtoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQVdyRCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQ1UsZUFBZ0MsRUFDaEMsdUJBQWdELEVBQ2hELHVCQUFnRCxFQUNoRCx1QkFBZ0Q7UUFIaEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO0lBQ3ZELENBQUM7SUFFUyxhQUFhLENBQ3hCLFdBQXdCOztZQUV4QixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDO2dCQUMzRCxzQkFBc0IsRUFBRTtvQkFDdEIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO29CQUN4QixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7aUJBQ3ZCO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsSUFBSTtnQkFDRixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVB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QUNKLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FDdEU7aUJBQ0EsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ3JFLENBQUM7WUFDRixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsUUFBUSxDQUFDLE9BQU87aUJBQ2IsTUFBTSxDQUNMLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQ3BFO2lCQUNBLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNyRSxDQUFDO1FBQ0osQ0FBQztLQUFBOzs7O1lBelZGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBVlEsZUFBZTtZQU5mLHVCQUF1QjtZQUR2Qix1QkFBdUI7WUFFdkIsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTHJFeGNlcHRpb24gfSBmcm9tICcuLy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmVwYXJlZFBlcm1pc3Npb25zIH0gZnJvbSAnLi8uLi9hcGkva2V5LWV4Y2hhbmdlLnR5cGVzJztcbmltcG9ydCB7XG4gIENyZWF0ZVNjZW5hcmlvQXBwcm92YWxHcm91cHMsXG4gIFVwZGF0ZVNjZW5hcmlvQXBwcm92YWxHcm91cHMsXG59IGZyb20gJy4vYXBwcm92YWxzL3NjZW5hcmlvLWFwcHJvdmFsLnR5cGVzJztcbmltcG9ydCB7IFNjZW5hcmlvQXBwcm92ZXJTZXJ2aWNlIH0gZnJvbSAnLi9hcHByb3ZhbHMvc2NlbmFyaW8tYXBwcm92ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTY2VuYXJpb0NsYWltYW50U2VydmljZSB9IGZyb20gJy4vY2xhaW1hbnRzL3NjZW5hcmlvLWNsYWltYW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NlbmFyaW9SZWNlaXZlclNlcnZpY2UgfSBmcm9tICcuL3JlY2VpdmVycy9zY2VuYXJpby1yZWNlaXZlci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFJlY2VpdmVyLFxuICBVcGRhdGVTY2VuYXJpb1JlY2VpdmVySXRlbUlucHV0LFxufSBmcm9tICcuL3JlY2VpdmVycy9zY2VuYXJpby1yZWNlaXZlci50eXBlcyc7XG5pbXBvcnQgeyBTY2VuYXJpb1NlcnZpY2UgfSBmcm9tICcuL3NjZW5hcmlvLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgTmV3U2NlbmFyaW8sXG4gIFVwZGF0ZWRTY2VuYXJpb0NsYWltYW50LFxuICBVcGRhdGVkU2NlbmFyaW9SZWNlaXZlcixcbiAgVXBkYXRlU2NlbmFyaW8sXG59IGZyb20gJy4vc2NlbmFyaW8udHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NlbmFyaW9TZXR1cFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNjZW5hcmlvU2VydmljZTogU2NlbmFyaW9TZXJ2aWNlLFxuICAgIHByaXZhdGUgc2NlbmFyaW9DbGFpbWFudFNlcnZpY2U6IFNjZW5hcmlvQ2xhaW1hbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2NlbmFyaW9BcHByb3ZlclNlcnZpY2U6IFNjZW5hcmlvQXBwcm92ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2NlbmFyaW9SZWNlaXZlclNlcnZpY2U6IFNjZW5hcmlvUmVjZWl2ZXJTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgYXN5bmMgc2V0dXBTY2VuYXJpbyhcbiAgICBuZXdTY2VuYXJpbzogTmV3U2NlbmFyaW9cbiAgKTogUHJvbWlzZTx7IHNjZW5hcmlvSWQ6IHN0cmluZzsgZXJyb3I/OiBMckV4Y2VwdGlvbiB9PiB7XG4gICAgY29uc3Qgc2NlbmFyaW9JZCA9IGF3YWl0IHRoaXMuc2NlbmFyaW9TZXJ2aWNlLmNyZWF0ZVNjZW5hcmlvKHtcbiAgICAgIHBsYWluU3ViamVjdENpcGhlckRhdGE6IHtcbiAgICAgICAgZXZlbnQ6IG5ld1NjZW5hcmlvLmV2ZW50LFxuICAgICAgICBuYW1lOiBuZXdTY2VuYXJpby5uYW1lLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgbmV3U2NlbmFyaW8uY2xhaW1hbnRzLm1hcCgoeCkgPT5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNsYWltYW50KHNjZW5hcmlvSWQsIG5ld1NjZW5hcmlvLmV2ZW50LCB4KVxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgICBjb25zdCBzY2VuYXJpbyA9IGF3YWl0IHRoaXMuc2NlbmFyaW9TZXJ2aWNlLmdldFNjZW5hcmlvKHNjZW5hcmlvSWQpO1xuICAgICAgaWYgKG5ld1NjZW5hcmlvLmFwcHJvdmFsR3JvdXBzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBhcHByb3ZhbEdyb3VwczogQ3JlYXRlU2NlbmFyaW9BcHByb3ZhbEdyb3VwcyA9IHtcbiAgICAgICAgICBzY2VuYXJpb0lkLFxuICAgICAgICAgIGtleUlkOiBzY2VuYXJpby5rZXlJZCxcbiAgICAgICAgICBldmVudDogc2NlbmFyaW8uZXZlbnQsXG4gICAgICAgICAgc2luZ2xlUmVqZWN0OiBmYWxzZSxcbiAgICAgICAgICBxdW9ydW06IDEsXG4gICAgICAgICAgcGxhaW5Bc3NlbWJseUNpcGhlckRhdGE6IG51bGwsXG5cbiAgICAgICAgICBhcHByb3ZhbEdyb3VwczogbmV3U2NlbmFyaW8uYXBwcm92YWxHcm91cHMubWFwKCh4KSA9PiAoe1xuICAgICAgICAgICAgcXVvcnVtOiB4LnF1b3J1bSxcbiAgICAgICAgICAgIHNpbmdsZVJlamVjdDogeC5zaW5nbGVSZWplY3QsXG4gICAgICAgICAgICBwbGFpblN1YkFzc2VtYmx5Q2lwaGVyRGF0YTogeyBuYW1lOiB4Lm5hbWUgfSxcbiAgICAgICAgICAgIGFwcHJvdmVyczogeC5hcHByb3ZlcnMubWFwKCh5KSA9PiAoe1xuICAgICAgICAgICAgICB0cnVzdGVkUGFydHlJZDogeS50cnVzdGVkUGFydHlJZCxcbiAgICAgICAgICAgICAgdHJ1c3RlZFBhcnR5U2hhcmVkS2V5SWQ6IHkudHJ1c3RlZFBhcnR5U2hhcmVkS2V5SWQsXG4gICAgICAgICAgICAgIHBsYWluU2hhcmVkQ2lwaGVyRGF0YToge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHkubWVzc2FnZSxcbiAgICAgICAgICAgICAgICBldmVudDogbmV3U2NlbmFyaW8uZXZlbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgfSkpLFxuICAgICAgICB9O1xuICAgICAgICBzY2VuYXJpby5hc3NlbWJseUtleUlkID0gYXdhaXQgdGhpcy5zY2VuYXJpb0FwcHJvdmVyU2VydmljZS5jcmVhdGVTY2VuYXJpb0FwcHJvdmVyQXNzZW1ibHkoXG4gICAgICAgICAgYXBwcm92YWxHcm91cHNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBuZXdTY2VuYXJpby5yZWNlaXZlcnMubWFwKCh4KSA9PlxuICAgICAgICAgIHRoaXMudXBkYXRlUmVjZWl2ZXIoXG4gICAgICAgICAgICBzY2VuYXJpb0lkLFxuICAgICAgICAgICAgc2NlbmFyaW8uYXNzZW1ibHlLZXlJZCxcbiAgICAgICAgICAgIG5ld1NjZW5hcmlvLmV2ZW50LFxuICAgICAgICAgICAgeFxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4geyBzY2VuYXJpb0lkLCBlcnJvcjogZSB9O1xuICAgIH1cbiAgICByZXR1cm4geyBzY2VuYXJpb0lkIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlU2NlbmFyaW8odXBkYXRlU2NlbmFyaW86IFVwZGF0ZVNjZW5hcmlvKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgc2NlbmFyaW9JZDogdXBkYXRlU2NlbmFyaW8uc2NlbmFyaW9JZCxcbiAgICAgIGtleUlkOiB1cGRhdGVTY2VuYXJpby5rZXlJZCxcbiAgICAgIHBsYWluU3ViamVjdENpcGhlckRhdGE6IHtcbiAgICAgICAgZXZlbnQ6IHVwZGF0ZVNjZW5hcmlvLmV2ZW50LFxuICAgICAgICBuYW1lOiB1cGRhdGVTY2VuYXJpby5uYW1lLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGF3YWl0IHRoaXMuc2NlbmFyaW9TZXJ2aWNlLnVwZGF0ZVNjZW5hcmlvKHBhcmFtcyk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHVwZGF0ZVNjZW5hcmlvLmNsYWltYW50cy5tYXAoKHgpID0+XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhaW1hbnQodXBkYXRlU2NlbmFyaW8uc2NlbmFyaW9JZCwgdXBkYXRlU2NlbmFyaW8uZXZlbnQsIHgpXG4gICAgICApXG4gICAgKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHVwZGF0ZVNjZW5hcmlvLmRlbGV0ZWRDbGFpbWFudElkcy5tYXAoKHgpID0+XG4gICAgICAgIHRoaXMuc2NlbmFyaW9DbGFpbWFudFNlcnZpY2UuZGVsZXRlQ2xhaW1hbnQoeClcbiAgICAgIClcbiAgICApO1xuXG4gICAgY29uc3QgYXNzZW1ibHlLZXlJZCA9IGF3YWl0IHRoaXMudXBkYXRlQXBwcm92YWxHcm91cHModXBkYXRlU2NlbmFyaW8pO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB1cGRhdGVTY2VuYXJpby5yZWNlaXZlcnMubWFwKCh4KSA9PlxuICAgICAgICB0aGlzLnVwZGF0ZVJlY2VpdmVyKFxuICAgICAgICAgIHVwZGF0ZVNjZW5hcmlvLnNjZW5hcmlvSWQsXG4gICAgICAgICAgYXNzZW1ibHlLZXlJZCxcbiAgICAgICAgICB1cGRhdGVTY2VuYXJpby5ldmVudCxcbiAgICAgICAgICB4XG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdXBkYXRlU2NlbmFyaW8uZGVsZXRlZFJlY2VpdmVySWRzLm1hcCgoeCkgPT5cbiAgICAgICAgdGhpcy5zY2VuYXJpb1JlY2VpdmVyU2VydmljZS5kZWxldGVSZWNlaXZlcih4KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUNsYWltYW50KFxuICAgIHNjZW5hcmlvSWQ6IHN0cmluZyxcbiAgICBldmVudDogc3RyaW5nLFxuICAgIGNsYWltYW50OiBVcGRhdGVkU2NlbmFyaW9DbGFpbWFudFxuICApIHtcbiAgICBpZiAoY2xhaW1hbnQuY2xhaW1hbnRJZCkge1xuICAgICAgYXdhaXQgdGhpcy5zY2VuYXJpb0NsYWltYW50U2VydmljZS51cGRhdGVDbGFpbWFudCh7XG4gICAgICAgIGlkOiBjbGFpbWFudC5jbGFpbWFudElkLFxuICAgICAgICBrZXlJZDogY2xhaW1hbnQua2V5SWQsXG4gICAgICAgIHBsYWluU2hhcmVkQ2lwaGVyRGF0YTogeyBtZXNzYWdlOiBjbGFpbWFudC5tZXNzYWdlLCBldmVudCB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuc2NlbmFyaW9DbGFpbWFudFNlcnZpY2UuYWRkQ2xhaW1hbnQoe1xuICAgICAgICBzY2VuYXJpb0lkLFxuICAgICAgICB0cnVzdGVkUGFydHlJZDogY2xhaW1hbnQudHJ1c3RlZFBhcnR5SWQsXG4gICAgICAgIHRydXN0ZWRQYXJ0eVNoYXJlZEtleUlkOiBjbGFpbWFudC50cnVzdGVkUGFydHlTaGFyZWRLZXlJZCxcbiAgICAgICAgcGxhaW5TaGFyZWRDaXBoZXJEYXRhOiB7IG1lc3NhZ2U6IGNsYWltYW50Lm1lc3NhZ2UsIGV2ZW50IH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUFwcHJvdmFsR3JvdXBzKFxuICAgIHVwZGF0ZVNjZW5hcmlvOiBVcGRhdGVTY2VuYXJpb1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICh1cGRhdGVTY2VuYXJpby5hc3NlbWJseUtleUlkKSB7XG4gICAgICBpZiAodXBkYXRlU2NlbmFyaW8uYXBwcm92YWxHcm91cHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGFwcHJvdmFsR3JvdXBzOiBVcGRhdGVTY2VuYXJpb0FwcHJvdmFsR3JvdXBzID0ge1xuICAgICAgICAgIHNjZW5hcmlvSWQ6IHVwZGF0ZVNjZW5hcmlvLnNjZW5hcmlvSWQsXG4gICAgICAgICAgYXNzZW1ibHlLZXlJZDogdXBkYXRlU2NlbmFyaW8uYXNzZW1ibHlLZXlJZCxcblxuICAgICAgICAgIHNpbmdsZVJlamVjdDogZmFsc2UsXG4gICAgICAgICAgcXVvcnVtOiAxLFxuXG4gICAgICAgICAgYXBwcm92YWxHcm91cHM6IHVwZGF0ZVNjZW5hcmlvLmFwcHJvdmFsR3JvdXBzLm1hcCgoeCkgPT4gKHtcbiAgICAgICAgICAgIHN1YkFzc2VtYmx5SWQ6IHguc3ViQXNzZW1ibHlJZCxcbiAgICAgICAgICAgIHF1b3J1bTogeC5xdW9ydW0sXG4gICAgICAgICAgICBzaW5nbGVSZWplY3Q6IHguc2luZ2xlUmVqZWN0LFxuICAgICAgICAgICAgcGxhaW5TdWJBc3NlbWJseUNpcGhlckRhdGE6IHsgbmFtZTogeC5uYW1lIH0sXG4gICAgICAgICAgICBhcHByb3ZlcnM6IHguYXBwcm92ZXJzLm1hcCgoeSkgPT4gKHtcbiAgICAgICAgICAgICAgYXBwcm92ZXJJZDogeS5hcHByb3ZlcklkLFxuICAgICAgICAgICAgICBrZXlJZDogeS5rZXlJZCxcbiAgICAgICAgICAgICAgdHJ1c3RlZFBhcnR5SWQ6IHkudHJ1c3RlZFBhcnR5SWQsXG4gICAgICAgICAgICAgIHRydXN0ZWRQYXJ0eVNoYXJlZEtleUlkOiB5LnRydXN0ZWRQYXJ0eVNoYXJlZEtleUlkLFxuICAgICAgICAgICAgICBwbGFpblNoYXJlZENpcGhlckRhdGE6IHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB5Lm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgZXZlbnQ6IHVwZGF0ZVNjZW5hcmlvLmV2ZW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgZGVsZXRlZEFwcHJvdmVySWRzOiB4LmRlbGV0ZWRBcHByb3ZlcklkcyxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgZGVsZXRlZEdyb3VwSWRzOiB1cGRhdGVTY2VuYXJpby5kZWxldGVkR3JvdXBJZHMsXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHRoaXMuc2NlbmFyaW9BcHByb3ZlclNlcnZpY2UudXBkYXRlU2NlbmFyaW9BcHByb3ZlckFzc2VtYmx5KFxuICAgICAgICAgIGFwcHJvdmFsR3JvdXBzXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1cGRhdGVTY2VuYXJpby5hc3NlbWJseUtleUlkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyByZWNlaXZlcnMgfSA9IGF3YWl0IHRoaXMuc2NlbmFyaW9TZXJ2aWNlLmdldFNjZW5hcmlvKFxuICAgICAgICAgIHVwZGF0ZVNjZW5hcmlvLnNjZW5hcmlvSWRcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zY2VuYXJpb0FwcHJvdmVyU2VydmljZS5kZWxldGVTY2VuYXJpb0FwcHJvdmVyQXNzZW1ibHkoXG4gICAgICAgICAgdXBkYXRlU2NlbmFyaW8uc2NlbmFyaW9JZCxcbiAgICAgICAgICB1cGRhdGVTY2VuYXJpby5ldmVudCxcbiAgICAgICAgICByZWNlaXZlcnNcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICAvLyB1cGRhdGUgb3IgZGVsZXRlXG4gICAgfSBlbHNlIGlmICh1cGRhdGVTY2VuYXJpby5hcHByb3ZhbEdyb3Vwcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHsgcmVjZWl2ZXJzIH0gPSBhd2FpdCB0aGlzLnNjZW5hcmlvU2VydmljZS5nZXRTY2VuYXJpbyhcbiAgICAgICAgdXBkYXRlU2NlbmFyaW8uc2NlbmFyaW9JZFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYXBwcm92YWxHcm91cHM6IENyZWF0ZVNjZW5hcmlvQXBwcm92YWxHcm91cHMgPSB7XG4gICAgICAgIHNjZW5hcmlvSWQ6IHVwZGF0ZVNjZW5hcmlvLnNjZW5hcmlvSWQsXG4gICAgICAgIGtleUlkOiB1cGRhdGVTY2VuYXJpby5rZXlJZCxcbiAgICAgICAgZXZlbnQ6IHVwZGF0ZVNjZW5hcmlvLmV2ZW50LFxuICAgICAgICBzaW5nbGVSZWplY3Q6IGZhbHNlLFxuICAgICAgICBxdW9ydW06IDEsXG4gICAgICAgIGFwcHJvdmFsR3JvdXBzOiB1cGRhdGVTY2VuYXJpby5hcHByb3ZhbEdyb3Vwcy5tYXAoKHgpID0+ICh7XG4gICAgICAgICAgcXVvcnVtOiB4LnF1b3J1bSxcbiAgICAgICAgICBzaW5nbGVSZWplY3Q6IHguc2luZ2xlUmVqZWN0LFxuICAgICAgICAgIHBsYWluU3ViQXNzZW1ibHlDaXBoZXJEYXRhOiB7IG5hbWU6IHgubmFtZSB9LFxuICAgICAgICAgIGFwcHJvdmVyczogeC5hcHByb3ZlcnMubWFwKCh5KSA9PiAoe1xuICAgICAgICAgICAgdHJ1c3RlZFBhcnR5SWQ6IHkudHJ1c3RlZFBhcnR5SWQsXG4gICAgICAgICAgICB0cnVzdGVkUGFydHlTaGFyZWRLZXlJZDogeS50cnVzdGVkUGFydHlTaGFyZWRLZXlJZCxcbiAgICAgICAgICAgIHBsYWluU2hhcmVkQ2lwaGVyRGF0YToge1xuICAgICAgICAgICAgICBtZXNzYWdlOiB5Lm1lc3NhZ2UsXG4gICAgICAgICAgICAgIGV2ZW50OiB1cGRhdGVTY2VuYXJpby5ldmVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSkpLFxuICAgICAgICB9KSksXG4gICAgICAgIHJlY2VpdmVycyxcbiAgICAgIH07XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5zY2VuYXJpb0FwcHJvdmVyU2VydmljZS5jcmVhdGVTY2VuYXJpb0FwcHJvdmVyQXNzZW1ibHkoXG4gICAgICAgIGFwcHJvdmFsR3JvdXBzXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlUmVjZWl2ZXIoXG4gICAgc2NlbmFyaW9JZDogc3RyaW5nLFxuICAgIGFzc2VtYmx5S2V5SWQ6IHN0cmluZyxcbiAgICBldmVudDogc3RyaW5nLFxuICAgIHJlY2VpdmVyOiBVcGRhdGVkU2NlbmFyaW9SZWNlaXZlclxuICApIHtcbiAgICBsZXQgcmVjZWl2ZXJJZCA9IHJlY2VpdmVyLnJlY2VpdmVySWQ7XG5cbiAgICAvLyBDdXJyZW50bHkgZGVsZXRpbmcgYWxsIHJlY2VpdmVycyBiZWxvdyBhc3NlbWJseSBsb2dpYy5cbiAgICBpZiAocmVjZWl2ZXJJZCkge1xuICAgICAgYXdhaXQgdGhpcy5zY2VuYXJpb1JlY2VpdmVyU2VydmljZS51cGRhdGVSZWNlaXZlcih7XG4gICAgICAgIGlkOiByZWNlaXZlci5yZWNlaXZlcklkLFxuICAgICAgICBrZXlJZDogcmVjZWl2ZXIua2V5SWQsXG4gICAgICAgIHBsYWluU2hhcmVkQ2lwaGVyRGF0YTogeyBtZXNzYWdlOiByZWNlaXZlci5tZXNzYWdlLCBldmVudCB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld1JlY2VpdmVyID0ge1xuICAgICAgICBzY2VuYXJpb0lkLFxuICAgICAgICB0cnVzdGVkUGFydHlJZDogcmVjZWl2ZXIudHJ1c3RlZFBhcnR5SWQsXG4gICAgICAgIHRydXN0ZWRQYXJ0eVNoYXJlZEtleUlkOiByZWNlaXZlci50cnVzdGVkUGFydHlTaGFyZWRLZXlJZCxcbiAgICAgICAgcGxhaW5TaGFyZWRDaXBoZXJEYXRhOiB7IG1lc3NhZ2U6IHJlY2VpdmVyLm1lc3NhZ2UsIGV2ZW50IH0sXG4gICAgICB9O1xuICAgICAgcmVjZWl2ZXJJZCA9IGF3YWl0IHRoaXMuc2NlbmFyaW9SZWNlaXZlclNlcnZpY2UuYWRkUmVjZWl2ZXIobmV3UmVjZWl2ZXIpO1xuICAgIH1cbiAgICBjb25zdCBsb2FkZWRSZWNlaXZlciA9IGF3YWl0IHRoaXMuc2NlbmFyaW9SZWNlaXZlclNlcnZpY2UuZ2V0UmVjZWl2ZXIoXG4gICAgICByZWNlaXZlcklkXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVJlY2VpdmVySXRlbXMoXG4gICAgICBzY2VuYXJpb0lkLFxuICAgICAgYXNzZW1ibHlLZXlJZCxcbiAgICAgIGxvYWRlZFJlY2VpdmVyLFxuICAgICAgcmVjZWl2ZXIucGVybWlzc2lvbnNcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVSZWNlaXZlckl0ZW1zKFxuICAgIHNjZW5hcmlvSWQ6IHN0cmluZyxcbiAgICBhc3NlbWJseUtleUlkOiBzdHJpbmcsXG4gICAgcmVjZWl2ZXI6IFJlY2VpdmVyLFxuICAgIHBlcm1pc3Npb25zOiBQcmVwYXJlZFBlcm1pc3Npb25zXG4gICkge1xuICAgIHBlcm1pc3Npb25zID0gcGVybWlzc2lvbnMgfHwge307XG4gICAgcGVybWlzc2lvbnMuY2F0ZWdvcmllcyA9IHBlcm1pc3Npb25zLmNhdGVnb3JpZXMgfHwgW107XG4gICAgcGVybWlzc2lvbnMucmVjb3JkcyA9IHBlcm1pc3Npb25zLnJlY29yZHMgfHwgW107XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHBlcm1pc3Npb25zLmNhdGVnb3JpZXNcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAoeCkgPT5cbiAgICAgICAgICAgICFyZWNlaXZlci5jYXRlZ29yaWVzLnNvbWUoKHkpID0+IHkuY2F0ZWdvcnkuaWQgPT09IHguY2F0ZWdvcnlJZClcbiAgICAgICAgKVxuICAgICAgICAubWFwKGFzeW5jICh4KSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgc2NlbmFyaW9JZCxcbiAgICAgICAgICAgIGFzc2VtYmx5S2V5SWQsXG4gICAgICAgICAgICByZWNlaXZlcklkOiByZWNlaXZlci5pZCxcbiAgICAgICAgICAgIHJlY2VpdmVyS2V5SWQ6IHJlY2VpdmVyLmtleUlkLFxuICAgICAgICAgICAgYWNjZXNzUm9sZTogeC5hY2Nlc3NMZXZlbCxcbiAgICAgICAgICAgIGNhdGVnb3J5SWQ6IHguY2F0ZWdvcnlJZCxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2NlbmFyaW9SZWNlaXZlclNlcnZpY2UuYWRkUmVjZWl2ZXJDYXRlZ29yeShwYXJhbXMpO1xuICAgICAgICB9KVxuICAgICk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBwZXJtaXNzaW9ucy5yZWNvcmRzXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKHgpID0+ICFyZWNlaXZlci5yZWNvcmRzLnNvbWUoKHkpID0+IHkucmVjb3JkLmlkID09PSB4LnJlY29yZElkKVxuICAgICAgICApXG4gICAgICAgIC5tYXAoYXN5bmMgKHgpID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgICAgICBzY2VuYXJpb0lkLFxuICAgICAgICAgICAgYXNzZW1ibHlLZXlJZCxcbiAgICAgICAgICAgIHJlY2VpdmVySWQ6IHJlY2VpdmVyLmlkLFxuICAgICAgICAgICAgcmVjZWl2ZXJLZXlJZDogcmVjZWl2ZXIua2V5SWQsXG4gICAgICAgICAgICBhY2Nlc3NSb2xlOiB4LmFjY2Vzc0xldmVsLFxuICAgICAgICAgICAgcmVjb3JkSWQ6IHgucmVjb3JkSWQsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNjZW5hcmlvUmVjZWl2ZXJTZXJ2aWNlLmFkZFJlY2VpdmVyUmVjb3JkKHBhcmFtcyk7XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcGVybWlzc2lvbnMuY2F0ZWdvcmllc1xuICAgICAgICAubWFwKCh4KSA9PiAoe1xuICAgICAgICAgIGFjY2Vzc0xldmVsOiB4LmFjY2Vzc0xldmVsLFxuICAgICAgICAgIGNhdGVnb3J5OiByZWNlaXZlci5jYXRlZ29yaWVzLmZpbmQoXG4gICAgICAgICAgICAoeSkgPT4geS5jYXRlZ29yeS5pZCA9PT0geC5jYXRlZ29yeUlkXG4gICAgICAgICAgKSxcbiAgICAgICAgfSkpXG4gICAgICAgIC5maWx0ZXIoKHgpID0+IHguY2F0ZWdvcnkpXG4gICAgICAgIC5tYXAoYXN5bmMgKHgpID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJhbXM6IFVwZGF0ZVNjZW5hcmlvUmVjZWl2ZXJJdGVtSW5wdXQgPSB7XG4gICAgICAgICAgICBpZDogeC5jYXRlZ29yeS5pZCxcbiAgICAgICAgICAgIGtleUlkOiB4LmNhdGVnb3J5LmtleUlkLFxuICAgICAgICAgICAgYWNjZXNzUm9sZTogeC5hY2Nlc3NMZXZlbCxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2NlbmFyaW9SZWNlaXZlclNlcnZpY2UudXBkYXRlUmVjZWl2ZXJJdGVtKHBhcmFtcyk7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHBlcm1pc3Npb25zLnJlY29yZHNcbiAgICAgICAgLm1hcCgoeCkgPT4gKHtcbiAgICAgICAgICBhY2Nlc3NMZXZlbDogeC5hY2Nlc3NMZXZlbCxcbiAgICAgICAgICByZWNvcmQ6IHJlY2VpdmVyLnJlY29yZHMuZmluZCgoeSkgPT4geS5yZWNvcmQuaWQgPT09IHgucmVjb3JkSWQpLFxuICAgICAgICB9KSlcbiAgICAgICAgLmZpbHRlcigoeCkgPT4geC5yZWNvcmQpXG4gICAgICAgIC5tYXAoYXN5bmMgKHgpID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJhbXM6IFVwZGF0ZVNjZW5hcmlvUmVjZWl2ZXJJdGVtSW5wdXQgPSB7XG4gICAgICAgICAgICBpZDogeC5yZWNvcmQuaWQsXG4gICAgICAgICAgICBrZXlJZDogeC5yZWNvcmQua2V5SWQsXG4gICAgICAgICAgICBhY2Nlc3NSb2xlOiB4LmFjY2Vzc0xldmVsLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYXdhaXQgdGhpcy5zY2VuYXJpb1JlY2VpdmVyU2VydmljZS51cGRhdGVSZWNlaXZlckl0ZW0ocGFyYW1zKTtcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICByZWNlaXZlci5jYXRlZ29yaWVzXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKHgpID0+XG4gICAgICAgICAgICAhcGVybWlzc2lvbnMuY2F0ZWdvcmllcy5zb21lKCh5KSA9PiB5LmNhdGVnb3J5SWQgPT09IHguY2F0ZWdvcnkuaWQpXG4gICAgICAgIClcbiAgICAgICAgLm1hcCgoeCkgPT4gdGhpcy5zY2VuYXJpb1JlY2VpdmVyU2VydmljZS5kZWxldGVSZWNlaXZlckl0ZW0oeC5pZCkpXG4gICAgKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHJlY2VpdmVyLnJlY29yZHNcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAoeCkgPT4gIXBlcm1pc3Npb25zLnJlY29yZHMuc29tZSgoeSkgPT4geS5yZWNvcmRJZCA9PT0geC5yZWNvcmQuaWQpXG4gICAgICAgIClcbiAgICAgICAgLm1hcCgoeCkgPT4gdGhpcy5zY2VuYXJpb1JlY2VpdmVyU2VydmljZS5kZWxldGVSZWNlaXZlckl0ZW0oeC5pZCkpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,177 +0,0 @@
1
- import { Injector, NgZone } from '@angular/core';
2
- import { JWK } from 'node-jose';
3
- import { KeyFactoryService } from '../cryptography/key-factory.service';
4
- import { KeyGraphService } from '../cryptography/key-graph.service';
5
- import { KeyMetaService } from '../cryptography/key-meta.service';
6
- import { KeyService } from '../cryptography/key.service';
7
- import { FileService } from './file.service';
8
- import { LrMutation, LrService } from './lr-graphql';
9
- import { CreateDirectoryMutation, DeleteDirectoryMutation, CreateFileMutation, DeleteFileMutation, UpdateFileMutation, UpdateDirectoryMutation, ArchiveDirectoryMutation, UnarchiveDirectoryMutation } from './item2.gql';
10
- import { ID, LrRelayIdInput } from './types';
11
- export declare enum DirectoryLinkType {
12
- HARD = "HARD"
13
- }
14
- export interface ParentDirectoryOptions {
15
- directoryId: LrRelayIdInput;
16
- wrappingKeyId?: LrRelayIdInput;
17
- linkType?: DirectoryLinkType.HARD;
18
- }
19
- export interface ParentRootDirectoryInput {
20
- wrappedKey: string;
21
- wrappingKeyId: LrRelayIdInput;
22
- }
23
- export interface ParentDirectoryInputBase {
24
- directoryId: LrRelayIdInput;
25
- wrappingKeyId: LrRelayIdInput;
26
- linkType?: DirectoryLinkType.HARD;
27
- }
28
- export interface ParentDirectoryInput extends ParentDirectoryInputBase {
29
- wrappedKey: string;
30
- }
31
- export interface FileParentDirectoryInput extends ParentDirectoryInputBase {
32
- wrappedFileKey: string;
33
- }
34
- export interface DownloadFileContentOptions {
35
- fileStateNodeId: LrRelayIdInput;
36
- fileStateKeyId?: LrRelayIdInput;
37
- }
38
- export interface CommonDirectoryOptions {
39
- plainMetaJson?: any;
40
- cipherMetaClearJson?: any;
41
- }
42
- export interface CreateDirectoryOptions extends CommonDirectoryOptions {
43
- asRootDirectory?: boolean;
44
- parentDirectories?: ParentDirectoryOptions[];
45
- }
46
- export interface UpdateDirectoryOptions extends CommonDirectoryOptions {
47
- directoryId: LrRelayIdInput;
48
- directoryKeyId?: LrRelayIdInput;
49
- }
50
- export interface CommonFileOptions {
51
- plainMetaJson?: any;
52
- cipherMetaClearJson?: any;
53
- file?: File;
54
- upload?: (cipherFileContent: string) => Promise<string>;
55
- }
56
- export interface CreateFileOptions extends CommonFileOptions {
57
- parentDirectories: ParentDirectoryOptions[];
58
- }
59
- export interface UpdateFileOptions extends CommonFileOptions {
60
- fileId: LrRelayIdInput;
61
- fileKeyId?: LrRelayIdInput;
62
- }
63
- interface ChangeItemParentsOptions {
64
- parentsToRemove: LrRelayIdInput[];
65
- parentsToAdd: ParentDirectoryOptions[];
66
- }
67
- export interface ChangeDirectoryParentsOptions extends ChangeItemParentsOptions {
68
- directoryId: LrRelayIdInput;
69
- directoryKeyId?: LrRelayIdInput;
70
- }
71
- export interface ChangeFileParentsOptions extends ChangeItemParentsOptions {
72
- fileId: LrRelayIdInput;
73
- fileKeyId?: LrRelayIdInput;
74
- }
75
- export declare class Item2Service extends LrService {
76
- private ngZone;
77
- private injector;
78
- private fileService;
79
- private keyService;
80
- private keyMeta;
81
- private keyFactory;
82
- private keyGraph;
83
- constructor(ngZone: NgZone, injector: Injector, fileService: FileService, keyService: KeyService, keyMeta: KeyMetaService, keyFactory: KeyFactoryService, keyGraph: KeyGraphService);
84
- downloadFileContent(options: DownloadFileContentOptions): Promise<ArrayBuffer>;
85
- createDirectory(options: CreateDirectoryOptions): Promise<LrMutation<CreateDirectoryMutation, {
86
- input: {
87
- parentDirectories: ParentDirectoryInput[];
88
- parentRootDirectory: ParentRootDirectoryInput;
89
- plainMeta: string;
90
- cipherMeta: string;
91
- };
92
- }>>;
93
- updateDirectoryExec(options: UpdateDirectoryOptions): Promise<UpdateDirectoryMutation>;
94
- updateDirectory(options: UpdateDirectoryOptions): Promise<LrMutation<UpdateDirectoryMutation, {
95
- input: {
96
- directoryId: string;
97
- plainMeta: string;
98
- cipherMeta: string;
99
- };
100
- }>>;
101
- updateDirectoryMutation(options: UpdateDirectoryOptions): Promise<LrMutation<UpdateDirectoryMutation, {
102
- input: {
103
- directoryId: string;
104
- plainMeta: string;
105
- cipherMeta: string;
106
- };
107
- }>>;
108
- deleteDirectory(id: ID): LrMutation<DeleteDirectoryMutation, {
109
- input: {
110
- directoryId: string;
111
- };
112
- }>;
113
- createFile(options: CreateFileOptions): Promise<LrMutation<CreateFileMutation, {
114
- input: {
115
- parentDirectories: FileParentDirectoryInput[];
116
- wrappedStateKey: string;
117
- contentResource: string;
118
- plainMeta: string;
119
- cipherMeta: string;
120
- };
121
- }>>;
122
- updateFile(options: UpdateFileOptions): Promise<LrMutation<UpdateFileMutation, {
123
- input: {
124
- fileId: string;
125
- wrappedStateKey: string;
126
- contentResource: string;
127
- plainMeta: string;
128
- cipherMeta: string;
129
- };
130
- }>>;
131
- deleteFile(id: ID): LrMutation<DeleteFileMutation, {
132
- input: {
133
- fileId: string;
134
- };
135
- }>;
136
- private getParentDirectoryInput;
137
- getFileStateKeyId(fileStateNodeId: LrRelayIdInput): Promise<string>;
138
- getDirectoryKeyId(directoryId: LrRelayIdInput): Promise<string>;
139
- getFileKeyId(fileId: LrRelayIdInput): Promise<string>;
140
- getDirectoryKey(directoryId: LrRelayIdInput, directoryKeyId?: LrRelayIdInput): Promise<import("../cryptography/cryptography.types").Key>;
141
- getFileKey(fileId: LrRelayIdInput, fileKeyId?: LrRelayIdInput): Promise<import("../cryptography/cryptography.types").Key>;
142
- private getInput;
143
- private createFileState;
144
- archiveDirectory(directoryId: string, recursive: boolean): LrMutation<ArchiveDirectoryMutation, {
145
- input: {
146
- directoryId: string;
147
- recursive: boolean;
148
- };
149
- }>;
150
- unarchiveDirectory(directoryId: string, recursive: boolean): LrMutation<UnarchiveDirectoryMutation, {
151
- input: {
152
- directoryId: string;
153
- recursive: boolean;
154
- };
155
- }>;
156
- protected getChangeItemParentsInput(options: ChangeItemParentsOptions, itemKey: JWK.Key): Promise<{
157
- directoriesToRemove: string[];
158
- directoriesToAdd: ParentDirectoryInput[];
159
- }>;
160
- changeDirectoryParents(options: ChangeDirectoryParentsOptions): Promise<import("./item2.gql").ChangeDirectoryParentsMutationResult>;
161
- changeDirectoryParentsMutation(options: ChangeDirectoryParentsOptions): Promise<LrMutation<import("./item2.gql").ChangeDirectoryParentsMutationResult, {
162
- input: {
163
- directoryId: string;
164
- directoriesToRemove: string[];
165
- directoriesToAdd: ParentDirectoryInput[];
166
- };
167
- }>>;
168
- changeFileParents(options: ChangeFileParentsOptions): Promise<import("./item2.gql").ChangeFileParentsMutationResult>;
169
- changeFileParentsMutation(options: ChangeFileParentsOptions): Promise<LrMutation<import("./item2.gql").ChangeFileParentsMutationResult, {
170
- input: {
171
- fileId: string;
172
- directoriesToRemove: string[];
173
- directoriesToAdd: ParentDirectoryInput[];
174
- };
175
- }>>;
176
- }
177
- export {};
@@ -1,7 +0,0 @@
1
- export declare const SubAssemblyFields: string;
2
- export declare const CreateScenarioApproverAssemblyMutation: import("graphql").DocumentNode;
3
- export declare const UpdateScenarioApproverAssemblyMutation: import("graphql").DocumentNode;
4
- export declare const DeleteScenarioApproverAssemblyMutation: import("graphql").DocumentNode;
5
- export declare const GetScenarioApproverQuery: import("graphql").DocumentNode;
6
- export declare const AddScenarioApproverMutation: import("graphql").DocumentNode;
7
- export declare const UpdateScenarioApproverMutation: import("graphql").DocumentNode;
@@ -1,63 +0,0 @@
1
- import { Receiver } from './../receivers/scenario-receiver.types';
2
- import { TrustedParty } from '../../trusted-parties/trusted-party.types';
3
- export interface ApprovalGroup {
4
- id: string;
5
- keyId: string;
6
- name: string;
7
- singleReject: boolean;
8
- quorum: number;
9
- approvers?: Approver[];
10
- }
11
- export interface Approver {
12
- id: string;
13
- keyId: string;
14
- trustedParty: TrustedParty;
15
- message?: string;
16
- }
17
- export interface ScenarioApproverAssemblyInput {
18
- scenarioId: string;
19
- keyId: string;
20
- singleReject: boolean;
21
- quorum: number;
22
- plainAssemblyCipherData?: any;
23
- }
24
- export interface CreateSubAssemblyInput {
25
- quorum: number;
26
- singleReject: boolean;
27
- plainSubAssemblyCipherData: any;
28
- }
29
- export interface CreateScenarioApprovalGroups {
30
- scenarioId: string;
31
- event: string;
32
- keyId: string;
33
- quorum: number;
34
- singleReject: boolean;
35
- plainAssemblyCipherData?: string;
36
- approvalGroups: UpdateScenarioApprovalGroup[];
37
- receivers?: Receiver[];
38
- }
39
- export interface UpdateScenarioApprovalGroups {
40
- scenarioId: string;
41
- assemblyKeyId: string;
42
- quorum: number;
43
- singleReject: boolean;
44
- plainAssemblyCipherData?: string;
45
- approvalGroups: UpdateScenarioApprovalGroup[];
46
- deletedGroupIds: string[];
47
- }
48
- export interface UpdateScenarioApprovalGroup {
49
- subAssemblyId?: string;
50
- quorum: number;
51
- singleReject: boolean;
52
- plainSubAssemblyCipherData: object;
53
- approvers: UpdateScenarioApprover[];
54
- deletedApproverIds?: string[];
55
- }
56
- export interface UpdateScenarioApprover {
57
- approverId?: string;
58
- keyId?: string;
59
- trustedPartyId: string;
60
- trustedPartySharedKeyId: string;
61
- plainSharedCipherData: object;
62
- approvalData?: string;
63
- }
@@ -1,32 +0,0 @@
1
- import { LrApolloService } from '../../api/lr-apollo.service';
2
- import { EncryptionService } from '../../cryptography/encryption.service';
3
- import { KeyFactoryService } from '../../cryptography/key-factory.service';
4
- import { KeyGraphService } from '../../cryptography/key-graph.service';
5
- import { KeyMetaService } from '../../cryptography/key-meta.service';
6
- import * as slip from '../../cryptography/slip39.service';
7
- import { TrustedPartyService } from '../../trusted-parties/trusted-party.service';
8
- import { Receiver } from '../receivers/scenario-receiver.types';
9
- import { ApprovalGroup, Approver, CreateScenarioApprovalGroups, UpdateScenarioApprovalGroups, UpdateScenarioApprover } from './scenario-approval.types';
10
- export declare class ScenarioApproverService {
11
- private lrApollo;
12
- private keyFactory;
13
- private keyMetaService;
14
- private keyGraph;
15
- private slip39Service;
16
- private encryptionService;
17
- private trustedPartyService;
18
- static SLIP39_PASSPHRASE: string;
19
- constructor(lrApollo: LrApolloService, keyFactory: KeyFactoryService, keyMetaService: KeyMetaService, keyGraph: KeyGraphService, slip39Service: slip.Slip39Service, encryptionService: EncryptionService, trustedPartyService: TrustedPartyService);
20
- getApprover(approverId: string): Promise<Approver>;
21
- mapApproverGroup(group: any): Promise<ApprovalGroup>;
22
- private mapApprover;
23
- updateApprover(approver: UpdateScenarioApprover): Promise<void>;
24
- createScenarioApproverAssembly(input: CreateScenarioApprovalGroups): Promise<string>;
25
- updateScenarioApproverAssembly(input: UpdateScenarioApprovalGroups): Promise<void>;
26
- deleteScenarioApproverAssembly(scenarioId: string, event: string, receivers: Receiver[]): Promise<void>;
27
- private rewrapReceivers;
28
- private mapApprovalGroups;
29
- private mapApprovalGroup;
30
- private mapApprovers;
31
- private createSlipAssembly;
32
- }
@@ -1,5 +0,0 @@
1
- export declare const ClaimantFields: string;
2
- export declare const GetScenarioClaimantQuery: import("graphql").DocumentNode;
3
- export declare const AddScenarioClaimantMutation: import("graphql").DocumentNode;
4
- export declare const UpdateScenarioClaimantMutation: import("graphql").DocumentNode;
5
- export declare const DeleteScenarioClaimantMutation: import("graphql").DocumentNode;
@@ -1,17 +0,0 @@
1
- import { LrApolloService } from '../../api/lr-apollo.service';
2
- import { KeyGraphService } from '../../cryptography/key-graph.service';
3
- import { KeyMetaService } from '../../cryptography/key-meta.service';
4
- import { TrustedPartyService } from '../../trusted-parties/trusted-party.service';
5
- import { Claimant, AddScenarioClaimant, UpdateScenarioClaimant } from './scenario-claimant.types';
6
- export declare class ScenarioClaimantService {
7
- private lrApollo;
8
- private keyMetaService;
9
- private keyGraph;
10
- private tpService;
11
- constructor(lrApollo: LrApolloService, keyMetaService: KeyMetaService, keyGraph: KeyGraphService, tpService: TrustedPartyService);
12
- getClaimant(claimantId: string): Promise<Claimant>;
13
- mapClaimant(claimant: any): Promise<Claimant>;
14
- addClaimant(claimant: AddScenarioClaimant): Promise<string>;
15
- updateClaimant(claimant: UpdateScenarioClaimant): Promise<string>;
16
- deleteClaimant(claimantId: string): Promise<void>;
17
- }
@@ -1,18 +0,0 @@
1
- import { TrustedParty } from '../../trusted-parties/trusted-party.types';
2
- export interface Claimant {
3
- id: string;
4
- keyId: string;
5
- trustedParty: TrustedParty;
6
- message?: string;
7
- }
8
- export interface AddScenarioClaimant {
9
- scenarioId: string;
10
- trustedPartyId: string;
11
- trustedPartySharedKeyId: string;
12
- plainSharedCipherData: object;
13
- }
14
- export interface UpdateScenarioClaimant {
15
- id: string;
16
- keyId: string;
17
- plainSharedCipherData: object;
18
- }