@lifeready/core 8.0.4 → 8.0.6
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.
- package/bundles/lifeready-core.umd.js +51 -164
- package/bundles/lifeready-core.umd.js.map +1 -1
- package/bundles/lifeready-core.umd.min.js +1 -1
- package/bundles/lifeready-core.umd.min.js.map +1 -1
- package/esm2015/lib/api/types/lr-graphql.types.js +2 -1
- package/esm2015/lib/item/item.service.js +24 -20
- package/esm2015/lib/item/item.types.js +1 -1
- package/esm2015/lib/trusted-party/trusted-party.gql.js +1 -37
- package/esm2015/lib/trusted-party/trusted-party.service.js +19 -81
- package/esm2015/lib/trusted-party/trusted-party.types.js +1 -1
- package/fesm2015/lifeready-core.js +40 -134
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/api/types/lr-graphql.types.d.ts +11 -18
- package/lib/item/item.service.d.ts +2 -2
- package/lib/item/item.types.d.ts +3 -8
- package/lib/trusted-party/trusted-party.gql.d.ts +0 -32
- package/lib/trusted-party/trusted-party.service.d.ts +8 -40
- package/lib/trusted-party/trusted-party.types.d.ts +0 -11
- package/lifeready-core.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -9,7 +9,7 @@ import { KeyGraphService } from '../key/key-graph.service';
|
|
|
9
9
|
import { KeyService } from '../key/key.service';
|
|
10
10
|
import { KcBadStateException } from '../_common/exceptions';
|
|
11
11
|
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
12
|
-
import { CompleteDetachedDirectoryShareMutation, CompleteDetachedFileShareMutation, CompleteTpMkReshareMutation, CreateDirectoryShareMutation, CreateFileShareMutation, DeleteDirectoryShareMutation, DeleteTpMutation, RequestTpMkReshareMutation, RespondTpMkReshareMutation,
|
|
12
|
+
import { CompleteDetachedDirectoryShareMutation, CompleteDetachedFileShareMutation, CompleteTpMkReshareMutation, CreateDirectoryShareMutation, CreateFileShareMutation, DeleteDirectoryShareMutation, DeleteFileShareMutation, DeleteTpMutation, RequestTpMkReshareMutation, RespondTpMkReshareMutation, UpdateDirectoryShareMutation, UpdateFileShareMutation, } from './trusted-party.gql';
|
|
13
13
|
import { TpCurrentUserSharedKeyQuery } from './trusted-party.gql.private';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
import * as i1 from "../key/key-graph.service";
|
|
@@ -41,85 +41,6 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
41
41
|
},
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
|
-
shareDirectory(options) {
|
|
45
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
return this.mutate(this.shareDirectoryMutation(options));
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
shareDirectoryMutation(options) {
|
|
50
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
return new LrMutation({
|
|
52
|
-
mutation: ShareDirectoryMutation,
|
|
53
|
-
variables: yield this.prepareShareItemMutation(Object.assign(Object.assign({}, options), { isDirectory: true })),
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
shareFile(options) {
|
|
58
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
return this.mutate(this.shareFileMutation(options));
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
shareFileMutation(options) {
|
|
63
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
return new LrMutation({
|
|
65
|
-
mutation: ShareFileMutation,
|
|
66
|
-
variables: yield this.prepareShareItemMutation(Object.assign(Object.assign({}, options), { isDirectory: false })),
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
prepareShareItemMutation(options) {
|
|
71
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const { itemId, itemKeyId, tpId, tpSharedKeyId, accessRole, isDirectory } = options;
|
|
73
|
-
const itemKey = yield this.keyGraph.getKey(itemKeyId, () => isDirectory
|
|
74
|
-
? this.itemService.getDirectoryKeyId(itemId)
|
|
75
|
-
: this.itemService.getFileKeyId(itemId));
|
|
76
|
-
const wrappingKey = yield this.keyGraph.getKey(tpSharedKeyId, () => this.getTpCurrentUserSharedKey(tpId).then((res) => res.sharedKey.id));
|
|
77
|
-
const wrappedKey = yield this.keyGraph.wrapKey(wrappingKey, itemKey.jwk);
|
|
78
|
-
return {
|
|
79
|
-
input: {
|
|
80
|
-
id: itemId,
|
|
81
|
-
tpId,
|
|
82
|
-
accessRole,
|
|
83
|
-
keyId: itemKey.id,
|
|
84
|
-
wrappingKeyId: wrappingKey.id,
|
|
85
|
-
wrappedKey,
|
|
86
|
-
},
|
|
87
|
-
};
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
unshareDirectory(options) {
|
|
91
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
-
return this.mutate(this.unshareDirectoryMutation(options));
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
unshareDirectoryMutation(options) {
|
|
96
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
-
return this.unshareItemMutation(Object.assign(Object.assign({}, options), { isDirectory: true }));
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
unshareFile(options) {
|
|
101
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
-
return this.mutate(this.unshareFileMutation(options));
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
unshareFileMutation(options) {
|
|
106
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
-
return this.unshareItemMutation(Object.assign(Object.assign({}, options), { isDirectory: false }));
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
unshareItemMutation({ itemId, tpId, isDirectory, }) {
|
|
111
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
-
return new LrMutation({
|
|
113
|
-
mutation: isDirectory ? UnshareDirectoryMutation : UnshareFileMutation,
|
|
114
|
-
variables: {
|
|
115
|
-
input: {
|
|
116
|
-
id: itemId,
|
|
117
|
-
tpId,
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
44
|
createDirectoryShare(options) {
|
|
124
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
125
46
|
return this.mutate(this.createDirectoryShareMutation(options));
|
|
@@ -219,6 +140,23 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
219
140
|
});
|
|
220
141
|
});
|
|
221
142
|
}
|
|
143
|
+
deleteFileShare(id) {
|
|
144
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
145
|
+
return this.mutate(this.deleteFileShareMutation(id));
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
deleteFileShareMutation(id) {
|
|
149
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
150
|
+
return new LrMutation({
|
|
151
|
+
mutation: DeleteFileShareMutation,
|
|
152
|
+
variables: {
|
|
153
|
+
input: {
|
|
154
|
+
id,
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
}
|
|
222
160
|
completeDetachedDirectoryShare(options) {
|
|
223
161
|
return __awaiter(this, void 0, void 0, function* () {
|
|
224
162
|
return this.mutate(this.completeDetachedDirectoryShareMutation(options));
|
|
@@ -384,4 +322,4 @@ TrustedPartyService = __decorate([
|
|
|
384
322
|
})
|
|
385
323
|
], TrustedPartyService);
|
|
386
324
|
export { TrustedPartyService };
|
|
387
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3RydXN0ZWQtcGFydHkvdHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdEMsaUNBQWlDLEVBQ2pDLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1QixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLHVCQUF1QixHQUN4QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxN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QUEyQjtnQkFDckMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDTCxJQUFJO3dCQUNKLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRTt3QkFDekIsYUFBYSxFQUFFLFdBQVcsQ0FBQyxFQUFFO3dCQUM3QixvQkFBb0I7cUJBQ3JCO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQsdUZBQXVGO0lBQ3ZGLHVGQUF1RjtJQUN2RixVQUFVO0lBQ1YsdUZBQXVGO0lBQ3ZGLHVGQUF1RjtJQUN6RSx5QkFBeUIsQ0FBQyxJQUFvQjs7WUFDMUQsT0FBTyxDQUNMLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pCLEtBQUssRUFBRSwyQkFBMkI7Z0JBQ2xDLFNBQVMsRUFBRTtvQkFDVCxFQUFFLEVBQUUsSUFBSTtpQkFDVDthQUNGLENBQUMsQ0FDSCxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUM7UUFDMUMsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBL2FBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBM0M4QixNQUFNO1lBQWhCLFFBQVE7WUFPcEIsZUFBZTtZQUZmLFdBQVc7WUFHWCxVQUFVO1lBRlYsaUJBQWlCO1lBRmpCLGlCQUFpQjs7QUF3Q2IsbUJBQW1CO0lBTi9CLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyxtQkFBbUIsQ0E0YS9CO1NBNWFZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQgeyBMck11dGF0aW9uLCBMclNlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XG5pbXBvcnQgeyBMclJlbGF5SWRJbnB1dCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi4vaXRlbS9pdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXkgfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcbmltcG9ydCB7IEtjQmFkU3RhdGVFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICcuLi9fY29tbW9uL3J1bi1vdXRzaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ29tcGxldGVEZXRhY2hlZERpcmVjdG9yeVNoYXJlTXV0YXRpb24sXG4gIENvbXBsZXRlRGV0YWNoZWRGaWxlU2hhcmVNdXRhdGlvbixcbiAgQ29tcGxldGVUcE1rUmVzaGFyZU11dGF0aW9uLFxuICBDcmVhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uLFxuICBDcmVhdGVGaWxlU2hhcmVNdXRhdGlvbixcbiAgRGVsZXRlRGlyZWN0b3J5U2hhcmVNdXRhdGlvbixcbiAgRGVsZXRlVHBNdXRhdGlvbixcbiAgUmVxdWVzdFRwTWtSZXNoYXJlTXV0YXRpb24sXG4gIFJlc3BvbmRUcE1rUmVzaGFyZU11dGF0aW9uLFxuICBTaGFyZURpcmVjdG9yeU11dGF0aW9uLFxuICBTaGFyZUZpbGVNdXRhdGlvbixcbiAgVW5zaGFyZURpcmVjdG9yeU11dGF0aW9uLFxuICBVbnNoYXJlRmlsZU11dGF0aW9uLFxuICBVcGRhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uLFxuICBVcGRhdGVGaWxlU2hhcmVNdXRhdGlvbixcbn0gZnJvbSAnLi90cnVzdGVkLXBhcnR5LmdxbCc7XG5pbXBvcnQgeyBUcEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnkgfSBmcm9tICcuL3RydXN0ZWQtcGFydHkuZ3FsLnByaXZhdGUnO1xuaW1wb3J0IHtcbiAgQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU9wdGlvbnMsXG4gIENyZWF0ZUl0ZW1TaGFyZU9wdGlvbnMsXG4gIFNoYXJlSXRlbU9wdGlvbnMsXG4gIFVuc2hhcmVJdGVtT3B0aW9ucyxcbiAgVXBkYXRlSXRlbVNoYXJlT3B0aW9ucyxcbn0gZnJvbSAnLi90cnVzdGVkLXBhcnR5LnR5cGVzJztcblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRydXN0ZWRQYXJ0eVNlcnZpY2UgZXh0ZW5kcyBMclNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZSxcbiAgICBwcml2YXRlIGl0ZW1TZXJ2aWNlOiBJdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZVxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gIH1cblxuICBkZWxldGVUcCh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmRlbGV0ZVRwTXV0YXRpb24odHBJZCkpO1xuICB9XG5cbiAgZGVsZXRlVHBNdXRhdGlvbih0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlVHBNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkOiB0cElkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNoYXJlRGlyZWN0b3J5KG9wdGlvbnM6IFNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5zaGFyZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHNoYXJlRGlyZWN0b3J5TXV0YXRpb24ob3B0aW9uczogU2hhcmVJdGVtT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogU2hhcmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogYXdhaXQgdGhpcy5wcmVwYXJlU2hhcmVJdGVtTXV0YXRpb24oe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBpc0RpcmVjdG9yeTogdHJ1ZSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc2hhcmVGaWxlKG9wdGlvbnM6IFNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5zaGFyZUZpbGVNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBzaGFyZUZpbGVNdXRhdGlvbihvcHRpb25zOiBTaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBTaGFyZUZpbGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogYXdhaXQgdGhpcy5wcmVwYXJlU2hhcmVJdGVtTXV0YXRpb24oe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBpc0RpcmVjdG9yeTogZmFsc2UsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZVNoYXJlSXRlbU11dGF0aW9uKFxuICAgIG9wdGlvbnM6IFNoYXJlSXRlbU9wdGlvbnMgJiB7XG4gICAgICBpc0RpcmVjdG9yeTogYm9vbGVhbjtcbiAgICB9XG4gICkge1xuICAgIGNvbnN0IHsgaXRlbUlkLCBpdGVtS2V5SWQsIHRwSWQsIHRwU2hhcmVkS2V5SWQsIGFjY2Vzc1JvbGUsIGlzRGlyZWN0b3J5IH0gPVxuICAgICAgb3B0aW9ucztcblxuICAgIGNvbnN0IGl0ZW1LZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleShpdGVtS2V5SWQsICgpID0+XG4gICAgICBpc0RpcmVjdG9yeVxuICAgICAgICA/IHRoaXMuaXRlbVNlcnZpY2UuZ2V0RGlyZWN0b3J5S2V5SWQoaXRlbUlkKVxuICAgICAgICA6IHRoaXMuaXRlbVNlcnZpY2UuZ2V0RmlsZUtleUlkKGl0ZW1JZClcbiAgICApO1xuICAgIGNvbnN0IHdyYXBwaW5nS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodHBTaGFyZWRLZXlJZCwgKCkgPT5cbiAgICAgIHRoaXMuZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkKS50aGVuKChyZXMpID0+IHJlcy5zaGFyZWRLZXkuaWQpXG4gICAgKTtcbiAgICBjb25zdCB3cmFwcGVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC53cmFwS2V5KHdyYXBwaW5nS2V5LCBpdGVtS2V5Lmp3ayk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgaWQ6IGl0ZW1JZCxcbiAgICAgICAgdHBJZCxcbiAgICAgICAgYWNjZXNzUm9sZSxcbiAgICAgICAga2V5SWQ6IGl0ZW1LZXkuaWQsXG4gICAgICAgIHdyYXBwaW5nS2V5SWQ6IHdyYXBwaW5nS2V5LmlkLFxuICAgICAgICB3cmFwcGVkS2V5LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgdW5zaGFyZURpcmVjdG9yeShvcHRpb25zOiBVbnNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy51bnNoYXJlRGlyZWN0b3J5TXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgdW5zaGFyZURpcmVjdG9yeU11dGF0aW9uKG9wdGlvbnM6IFVuc2hhcmVJdGVtT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnVuc2hhcmVJdGVtTXV0YXRpb24oeyAuLi5vcHRpb25zLCBpc0RpcmVjdG9yeTogdHJ1ZSB9KTtcbiAgfVxuXG4gIGFzeW5jIHVuc2hhcmVGaWxlKG9wdGlvbnM6IFVuc2hhcmVJdGVtT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVuc2hhcmVGaWxlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgdW5zaGFyZUZpbGVNdXRhdGlvbihvcHRpb25zOiBVbnNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy51bnNoYXJlSXRlbU11dGF0aW9uKHsgLi4ub3B0aW9ucywgaXNEaXJlY3Rvcnk6IGZhbHNlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1bnNoYXJlSXRlbU11dGF0aW9uKHtcbiAgICBpdGVtSWQsXG4gICAgdHBJZCxcbiAgICBpc0RpcmVjdG9yeSxcbiAgfTogVW5zaGFyZUl0ZW1PcHRpb25zICYgeyBpc0RpcmVjdG9yeTogYm9vbGVhbiB9KSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBpc0RpcmVjdG9yeSA/IFVuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbiA6IFVuc2hhcmVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZDogaXRlbUlkLFxuICAgICAgICAgIHRwSWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRGlyZWN0b3J5U2hhcmUob3B0aW9uczogQ3JlYXRlSXRlbVNoYXJlT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNyZWF0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRGlyZWN0b3J5U2hhcmVNdXRhdGlvbihvcHRpb25zOiBDcmVhdGVJdGVtU2hhcmVPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiBhd2FpdCB0aGlzLnByZXBhcmVDcmVhdGVJdGVtU2hhcmVNdXRhdGlvbih7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIGlzRGlyZWN0b3J5OiB0cnVlLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVGaWxlU2hhcmUob3B0aW9uczogQ3JlYXRlSXRlbVNoYXJlT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNyZWF0ZUZpbGVTaGFyZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUZpbGVTaGFyZU11dGF0aW9uKG9wdGlvbnM6IENyZWF0ZUl0ZW1TaGFyZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENyZWF0ZUZpbGVTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiBhd2FpdCB0aGlzLnByZXBhcmVDcmVhdGVJdGVtU2hhcmVNdXRhdGlvbih7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIGlzRGlyZWN0b3J5OiBmYWxzZSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlQ3JlYXRlSXRlbVNoYXJlTXV0YXRpb24oXG4gICAgb3B0aW9uczogQ3JlYXRlSXRlbVNoYXJlT3B0aW9ucyAmIHsgaXNEaXJlY3Rvcnk6IGJvb2xlYW4gfVxuICApIHtcbiAgICBjb25zdCB7XG4gICAgICBpdGVtSWQsXG4gICAgICBpdGVtS2V5SWQsXG4gICAgICB0cElkLFxuICAgICAgdHBTaGFyZWRLZXlJZCxcbiAgICAgIGFjY2Vzc1JvbGUsXG4gICAgICBpc0RpcmVjdG9yeSxcbiAgICAgIHNoYXJlVHlwZSxcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGl0ZW1LZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleShpdGVtS2V5SWQsICgpID0+XG4gICAgICBpc0RpcmVjdG9yeVxuICAgICAgICA/IHRoaXMuaXRlbVNlcnZpY2UuZ2V0RGlyZWN0b3J5S2V5SWQoaXRlbUlkKVxuICAgICAgICA6IHRoaXMuaXRlbVNlcnZpY2UuZ2V0RmlsZUtleUlkKGl0ZW1JZClcbiAgICApO1xuXG4gICAgY29uc3Qgd3JhcHBpbmdLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh0cFNoYXJlZEtleUlkLCAoKSA9PlxuICAgICAgdGhpcy5nZXRUcEN1cnJlbnRVc2VyU2hhcmVkS2V5KHRwSWQpLnRoZW4oKHJlcykgPT4gcmVzLnNoYXJlZEtleS5pZClcbiAgICApO1xuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLndyYXBLZXkod3JhcHBpbmdLZXksIGl0ZW1LZXkuandrKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpbnB1dDoge1xuICAgICAgICBpZDogaXRlbUlkLFxuICAgICAgICB0cElkLFxuICAgICAgICBhY2Nlc3NSb2xlLFxuICAgICAgICBrZXlJZDogaXRlbUtleS5pZCxcbiAgICAgICAgd3JhcHBpbmdLZXlJZDogd3JhcHBpbmdLZXkuaWQsXG4gICAgICAgIHdyYXBwZWRLZXksXG4gICAgICAgIHNoYXJlVHlwZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZURpcmVjdG9yeVNoYXJlKG9wdGlvbnM6IFVwZGF0ZUl0ZW1TaGFyZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy51cGRhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24ob3B0aW9uczogVXBkYXRlSXRlbVNoYXJlT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogVXBkYXRlRGlyZWN0b3J5U2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogdGhpcy5wcmVwYXJlVXBkYXRlSXRlbVNoYXJlTXV0YXRpb24ob3B0aW9ucyksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVGaWxlU2hhcmUob3B0aW9uczogVXBkYXRlSXRlbVNoYXJlT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVwZGF0ZUZpbGVTaGFyZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUZpbGVTaGFyZU11dGF0aW9uKG9wdGlvbnM6IFVwZGF0ZUl0ZW1TaGFyZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZUZpbGVTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB0aGlzLnByZXBhcmVVcGRhdGVJdGVtU2hhcmVNdXRhdGlvbihvcHRpb25zKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZVVwZGF0ZUl0ZW1TaGFyZU11dGF0aW9uKG9wdGlvbnM6IFVwZGF0ZUl0ZW1TaGFyZU9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGl0ZW1TaGFyZUlkLCBhY2Nlc3NSb2xlIH0gPSBvcHRpb25zO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGlkOiBpdGVtU2hhcmVJZCxcbiAgICAgICAgYWNjZXNzUm9sZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZURpcmVjdG9yeVNoYXJlKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5kZWxldGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uKGlkKSk7XG4gIH1cblxuICBhc3luYyBkZWxldGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb21wbGV0ZURldGFjaGVkRGlyZWN0b3J5U2hhcmUoXG4gICAgb3B0aW9uczogQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU9wdGlvbnNcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY29tcGxldGVEZXRhY2hlZERpcmVjdG9yeVNoYXJlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY29tcGxldGVEZXRhY2hlZERpcmVjdG9yeVNoYXJlTXV0YXRpb24oXG4gICAgb3B0aW9uczogQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU9wdGlvbnNcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBDb21wbGV0ZURldGFjaGVkRGlyZWN0b3J5U2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogYXdhaXQgdGhpcy5wcmVwYXJlQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU11dGF0aW9uKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgaXNEaXJlY3Rvcnk6IHRydWUsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRlRGV0YWNoZWRGaWxlU2hhcmUob3B0aW9uczogQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5jb21wbGV0ZURldGFjaGVkRmlsZVNoYXJlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY29tcGxldGVEZXRhY2hlZEZpbGVTaGFyZU11dGF0aW9uKFxuICAgIG9wdGlvbnM6IENvbXBsZXRlRGV0YWNoZWRJdGVtU2hhcmVPcHRpb25zXG4gICkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ29tcGxldGVEZXRhY2hlZEZpbGVTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiBhd2FpdCB0aGlzLnByZXBhcmVDb21wbGV0ZURldGFjaGVkSXRlbVNoYXJlTXV0YXRpb24oe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBpc0RpcmVjdG9yeTogZmFsc2UsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNvbXBsZXRlRGV0YWNoZWRJdGVtU2hhcmVNdXRhdGlvbihcbiAgICBvcHRpb25zOiBDb21wbGV0ZURldGFjaGVkSXRlbVNoYXJlT3B0aW9ucyAmIHsgaXNEaXJlY3Rvcnk6IGJvb2xlYW4gfVxuICApIHtcbiAgICBjb25zdCB7IGl0ZW1TaGFyZUlkLCBpdGVtS2V5SWQsIGlzRGlyZWN0b3J5IH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgaXRlbUtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KGl0ZW1LZXlJZCwgKCkgPT5cbiAgICAgIGlzRGlyZWN0b3J5XG4gICAgICAgID8gdGhpcy5pdGVtU2VydmljZS5nZXREaXJlY3RvcnlLZXlJZEZyb21EaXJlY3RvcnlTaGFyZShpdGVtU2hhcmVJZClcbiAgICAgICAgOiB0aGlzLml0ZW1TZXJ2aWNlLmdldEZpbGVLZXlJZEZyb21GaWxlU2hhcmUoaXRlbVNoYXJlSWQpXG4gICAgKTtcblxuICAgIGNvbnN0IHJvb3RLZXkgPSB0aGlzLmtleVNlcnZpY2UuY3VycmVudFJvb3RLZXk7XG5cbiAgICBjb25zdCB3cmFwcGVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC53cmFwS2V5KHJvb3RLZXksIGl0ZW1LZXkuandrKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpbnB1dDoge1xuICAgICAgICBpZDogaXRlbVNoYXJlSWQsXG4gICAgICAgIGtleUlkOiBpdGVtS2V5LmlkLFxuICAgICAgICB3cmFwcGluZ0tleUlkOiByb290S2V5LmlkLFxuICAgICAgICB3cmFwcGVkS2V5LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgcmVxdWVzdE1rUmVzaGFyZU11dGF0aW9uKHRwSWQ6IExyUmVsYXlJZElucHV0KSB7XG4gICAgY29uc3QgdXNlclNoYXJlZEtleSA9IGF3YWl0IHRoaXMuZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkKTtcblxuICAgIGlmICh1c2VyU2hhcmVkS2V5Lm1rU2hhcmVkS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRTdGF0ZUV4Y2VwdGlvbignVFAgYWxyZWFkeSBoYXMgbWtTaGFyZWRLZXknKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXN0ZXJLZXkgPSB0aGlzLmtleVNlcnZpY2UuY3VycmVudE1hc3RlcktleTtcbiAgICBjb25zdCBwcmsgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlUGtjS2V5KCk7XG4gICAgY29uc3QgbWtXcmFwcGVkTWtQcmsgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICBwcmsudG9KU09OKHRydWUpXG4gICAgKTtcblxuICAgIGNvbnN0IHNoYXJlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHVzZXJTaGFyZWRLZXkuc2hhcmVkS2V5LmlkKTtcbiAgICBjb25zdCBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBzaGFyZWRLZXkuandrLFxuICAgICAge1xuICAgICAgICBwYms6IHByay50b0pTT04oKSxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgcmV0dXJuIGF3YWl0IG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBSZXF1ZXN0VHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIHRwSWQsXG4gICAgICAgICAgbWFzdGVyS2V5SWQ6IG1hc3RlcktleS5pZCxcbiAgICAgICAgICBta1BiazogSlNPTi5zdHJpbmdpZnkocHJrLnRvSlNPTigpKSxcbiAgICAgICAgICBta1dyYXBwZWRNa1ByayxcbiAgICAgICAgICBzaGFyZWRLZXlJZDogc2hhcmVkS2V5LmlkLFxuICAgICAgICAgIG1rUmVzaGFyZVJlcXVlc3RDaXBoZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmVzcG9uZE1rUmVzaGFyZSh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIGNvbnN0IHVzZXJTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZCk7XG5cbiAgICBpZiAoIXVzZXJTaGFyZWRLZXkubWtTaGFyZWRLZXkpIHtcbiAgICAgIHRocm93IG5ldyBLY0JhZFN0YXRlRXhjZXB0aW9uKFxuICAgICAgICAnTm8gYWNjZXNzIHRvIHRoZSBta1NoYXJlZEtleSBzbyBjYW5ub3QgcmVzaGFyZSBpdCB3aXRoIFRQJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh1c2VyU2hhcmVkS2V5LnNoYXJlZEtleS5pZCk7XG4gICAgY29uc3QgcGxhaW5Na1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgc2hhcmVkS2V5LFxuICAgICAgdXNlclNoYXJlZEtleS5ta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyXG4gICAgKTtcbiAgICBjb25zdCBwYmsgPSBhd2FpdCBKV0suYXNLZXkocGxhaW5Na1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyLnBiayk7XG4gICAgY29uc3QgbWtTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleShcbiAgICAgIHVzZXJTaGFyZWRLZXkubWtTaGFyZWRLZXkuaWRcbiAgICApO1xuXG4gICAgY29uc3QgcGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlciA9IHtcbiAgICAgIG1rU2hhcmVkS2V5OiB7XG4gICAgICAgIGlkOiBta1NoYXJlZEtleS5pZCxcbiAgICAgICAgandrOiBta1NoYXJlZEtleS5qd2sudG9KU09OKHRydWUpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gV3JhcCB3aXRoIHNoYXJlZEtleSB0aGVuIGFnYWluIHdpdGggUGJrXG4gICAgY29uc3QgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIgPVxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICAgIHBiayxcbiAgICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICAgICAgc2hhcmVkS2V5Lmp3ayxcbiAgICAgICAgICBwbGFpbk1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFJlc3BvbmRUcE1rUmVzaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgdHBJZCxcbiAgICAgICAgICBta1NoYXJlZEtleUlkOiBta1NoYXJlZEtleS5pZCxcbiAgICAgICAgICBta1Jlc2hhcmVSZXNwb25zZUNpcGhlcixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb21wbGV0ZU1rUmVzaGFyZSh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIGNvbnN0IHVzZXJTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZCk7XG5cbiAgICBjb25zdCBzaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh1c2VyU2hhcmVkS2V5LnNoYXJlZEtleS5pZCk7XG4gICAgY29uc3QgcHJrID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodXNlclNoYXJlZEtleS5ta1B4ay5pZCk7XG4gICAgY29uc3QgcGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlciA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgIHNoYXJlZEtleSxcbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgICAgcHJrLFxuICAgICAgICB1c2VyU2hhcmVkS2V5Lm1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyXG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIERvdWJsZSBjaGVjayBpdCdzIGEgdmFsaWQga2V5LlxuICAgIGNvbnN0IG1rU2hhcmVkS2V5OiBLZXkgPSB7XG4gICAgICBpZDogcGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlci5ta1NoYXJlZEtleS5pZCxcbiAgICAgIGp3azogYXdhaXQgSldLLmFzS2V5KHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIubWtTaGFyZWRLZXkuandrKSxcbiAgICB9O1xuXG4gICAgY29uc3QgbWFzdGVyS2V5ID0gdGhpcy5rZXlTZXJ2aWNlLmN1cnJlbnRNYXN0ZXJLZXk7XG4gICAgY29uc3QgbWtXcmFwcGVkTWtTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICBta1NoYXJlZEtleS5qd2sudG9KU09OKHRydWUpXG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ29tcGxldGVUcE1rUmVzaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgdHBJZCxcbiAgICAgICAgICBtYXN0ZXJLZXlJZDogbWFzdGVyS2V5LmlkLFxuICAgICAgICAgIG1rU2hhcmVkS2V5SWQ6IG1rU2hhcmVkS2V5LmlkLFxuICAgICAgICAgIG1rV3JhcHBlZE1rU2hhcmVkS2V5LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSGVscGVyc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHByaXZhdGUgYXN5bmMgZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBUcEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkOiB0cElkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLnRwLmN1cnJlbnRVc2VyU2hhcmVkS2V5LnVzZXJTaGFyZWRLZXk7XG4gIH1cbn1cbiJdfQ==
|
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3RydXN0ZWQtcGFydHkvdHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdEMsaUNBQWlDLEVBQ2pDLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFDdkIsZ0JBQWdCLEVBQ2hCLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIsNEJBQTRCLEVBQzVCLHVCQUF1QixHQUN4QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7O0lBYTdELG1CQUFtQixTQUFu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O3dCQUNMLElBQUk7d0JBQ0osV0FBVyxFQUFFLFNBQVMsQ0FBQyxFQUFFO3dCQUN6QixhQUFhLEVBQUUsV0FBVyxDQUFDLEVBQUU7d0JBQzdCLG9CQUFvQjtxQkFDckI7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFRCx1RkFBdUY7SUFDdkYsdUZBQXVGO0lBQ3ZGLFVBQVU7SUFDVix1RkFBdUY7SUFDdkYsdUZBQXVGO0lBQ3pFLHlCQUF5QixDQUFDLElBQW9COztZQUMxRCxPQUFPLENBQ0wsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztnQkFDekIsS0FBSyxFQUFFLDJCQUEyQjtnQkFDbEMsU0FBUyxFQUFFO29CQUNULEVBQUUsRUFBRSxJQUFJO2lCQUNUO2FBQ0YsQ0FBQyxDQUNILENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQztRQUMxQyxDQUFDO0tBQUE7Q0FDRixDQUFBOzs7WUFwV0EsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUF0QzhCLE1BQU07WUFBaEIsUUFBUTtZQU9wQixlQUFlO1lBRmYsV0FBVztZQUdYLFVBQVU7WUFGVixpQkFBaUI7WUFGakIsaUJBQWlCOztBQW1DYixtQkFBbUI7SUFOL0IsaUJBQWlCLENBQUM7UUFDakIsVUFBVSxFQUFFLFFBQVE7S0FDckIsQ0FBQztHQUlXLG1CQUFtQixDQWlXL0I7U0FqV1ksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IExyTXV0YXRpb24sIExyU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1ncmFwaHFsJztcbmltcG9ydCB7IExyUmVsYXlJZElucHV0IH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZW5jcnlwdGlvbi9lbmNyeXB0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSXRlbVNlcnZpY2UgfSBmcm9tICcuLi9pdGVtL2l0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleSB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuaW1wb3J0IHsgS2NCYWRTdGF0ZUV4Y2VwdGlvbiB9IGZyb20gJy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQge1xuICBDb21wbGV0ZURldGFjaGVkRGlyZWN0b3J5U2hhcmVNdXRhdGlvbixcbiAgQ29tcGxldGVEZXRhY2hlZEZpbGVTaGFyZU11dGF0aW9uLFxuICBDb21wbGV0ZVRwTWtSZXNoYXJlTXV0YXRpb24sXG4gIENyZWF0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24sXG4gIENyZWF0ZUZpbGVTaGFyZU11dGF0aW9uLFxuICBEZWxldGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uLFxuICBEZWxldGVGaWxlU2hhcmVNdXRhdGlvbixcbiAgRGVsZXRlVHBNdXRhdGlvbixcbiAgUmVxdWVzdFRwTWtSZXNoYXJlTXV0YXRpb24sXG4gIFJlc3BvbmRUcE1rUmVzaGFyZU11dGF0aW9uLFxuICBVcGRhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uLFxuICBVcGRhdGVGaWxlU2hhcmVNdXRhdGlvbixcbn0gZnJvbSAnLi90cnVzdGVkLXBhcnR5LmdxbCc7XG5pbXBvcnQgeyBUcEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnkgfSBmcm9tICcuL3RydXN0ZWQtcGFydHkuZ3FsLnByaXZhdGUnO1xuaW1wb3J0IHtcbiAgQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU9wdGlvbnMsXG4gIENyZWF0ZUl0ZW1TaGFyZU9wdGlvbnMsXG4gIFVwZGF0ZUl0ZW1TaGFyZU9wdGlvbnMsXG59IGZyb20gJy4vdHJ1c3RlZC1wYXJ0eS50eXBlcyc7XG5cbkBSdW5PdXRzaWRlQW5ndWxhcih7XG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcnVzdGVkUGFydHlTZXJ2aWNlIGV4dGVuZHMgTHJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpdGVtU2VydmljZTogSXRlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlTZXJ2aWNlOiBLZXlTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5RmFjdG9yeTogS2V5RmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgZGVsZXRlVHAodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5kZWxldGVUcE11dGF0aW9uKHRwSWQpKTtcbiAgfVxuXG4gIGRlbGV0ZVRwTXV0YXRpb24odHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZVRwTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZDogdHBJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVEaXJlY3RvcnlTaGFyZShvcHRpb25zOiBDcmVhdGVJdGVtU2hhcmVPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY3JlYXRlRGlyZWN0b3J5U2hhcmVNdXRhdGlvbihvcHRpb25zKSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uKG9wdGlvbnM6IENyZWF0ZUl0ZW1TaGFyZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENyZWF0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IGF3YWl0IHRoaXMucHJlcGFyZUNyZWF0ZUl0ZW1TaGFyZU11dGF0aW9uKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgaXNEaXJlY3Rvcnk6IHRydWUsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUZpbGVTaGFyZShvcHRpb25zOiBDcmVhdGVJdGVtU2hhcmVPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY3JlYXRlRmlsZVNoYXJlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRmlsZVNoYXJlTXV0YXRpb24ob3B0aW9uczogQ3JlYXRlSXRlbVNoYXJlT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ3JlYXRlRmlsZVNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IGF3YWl0IHRoaXMucHJlcGFyZUNyZWF0ZUl0ZW1TaGFyZU11dGF0aW9uKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgaXNEaXJlY3Rvcnk6IGZhbHNlLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDcmVhdGVJdGVtU2hhcmVNdXRhdGlvbihcbiAgICBvcHRpb25zOiBDcmVhdGVJdGVtU2hhcmVPcHRpb25zICYgeyBpc0RpcmVjdG9yeTogYm9vbGVhbiB9XG4gICkge1xuICAgIGNvbnN0IHtcbiAgICAgIGl0ZW1JZCxcbiAgICAgIGl0ZW1LZXlJZCxcbiAgICAgIHRwSWQsXG4gICAgICB0cFNoYXJlZEtleUlkLFxuICAgICAgYWNjZXNzUm9sZSxcbiAgICAgIGlzRGlyZWN0b3J5LFxuICAgICAgc2hhcmVUeXBlLFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgaXRlbUtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KGl0ZW1LZXlJZCwgKCkgPT5cbiAgICAgIGlzRGlyZWN0b3J5XG4gICAgICAgID8gdGhpcy5pdGVtU2VydmljZS5nZXREaXJlY3RvcnlLZXlJZChpdGVtSWQpXG4gICAgICAgIDogdGhpcy5pdGVtU2VydmljZS5nZXRGaWxlS2V5SWQoaXRlbUlkKVxuICAgICk7XG5cbiAgICBjb25zdCB3cmFwcGluZ0tleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHRwU2hhcmVkS2V5SWQsICgpID0+XG4gICAgICB0aGlzLmdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZCkudGhlbigocmVzKSA9PiByZXMuc2hhcmVkS2V5LmlkKVxuICAgICk7XG4gICAgY29uc3Qgd3JhcHBlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGgud3JhcEtleSh3cmFwcGluZ0tleSwgaXRlbUtleS5qd2spO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGlkOiBpdGVtSWQsXG4gICAgICAgIHRwSWQsXG4gICAgICAgIGFjY2Vzc1JvbGUsXG4gICAgICAgIGtleUlkOiBpdGVtS2V5LmlkLFxuICAgICAgICB3cmFwcGluZ0tleUlkOiB3cmFwcGluZ0tleS5pZCxcbiAgICAgICAgd3JhcHBlZEtleSxcbiAgICAgICAgc2hhcmVUeXBlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRGlyZWN0b3J5U2hhcmUob3B0aW9uczogVXBkYXRlSXRlbVNoYXJlT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLnVwZGF0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRGlyZWN0b3J5U2hhcmVNdXRhdGlvbihvcHRpb25zOiBVcGRhdGVJdGVtU2hhcmVPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVEaXJlY3RvcnlTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB0aGlzLnByZXBhcmVVcGRhdGVJdGVtU2hhcmVNdXRhdGlvbihvcHRpb25zKSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUZpbGVTaGFyZShvcHRpb25zOiBVcGRhdGVJdGVtU2hhcmVPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMudXBkYXRlRmlsZVNoYXJlTXV0YXRpb24ob3B0aW9ucykpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRmlsZVNoYXJlTXV0YXRpb24ob3B0aW9uczogVXBkYXRlSXRlbVNoYXJlT3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogVXBkYXRlRmlsZVNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHRoaXMucHJlcGFyZVVwZGF0ZUl0ZW1TaGFyZU11dGF0aW9uKG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlVXBkYXRlSXRlbVNoYXJlTXV0YXRpb24ob3B0aW9uczogVXBkYXRlSXRlbVNoYXJlT3B0aW9ucykge1xuICAgIGNvbnN0IHsgaXRlbVNoYXJlSWQsIGFjY2Vzc1JvbGUgfSA9IG9wdGlvbnM7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgaWQ6IGl0ZW1TaGFyZUlkLFxuICAgICAgICBhY2Nlc3NSb2xlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlRGlyZWN0b3J5U2hhcmUoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmRlbGV0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24oaWQpKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZURpcmVjdG9yeVNoYXJlTXV0YXRpb24oaWQ6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlRGlyZWN0b3J5U2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUZpbGVTaGFyZShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuZGVsZXRlRmlsZVNoYXJlTXV0YXRpb24oaWQpKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUZpbGVTaGFyZU11dGF0aW9uKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZUZpbGVTaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgaWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29tcGxldGVEZXRhY2hlZERpcmVjdG9yeVNoYXJlKFxuICAgIG9wdGlvbnM6IENvbXBsZXRlRGV0YWNoZWRJdGVtU2hhcmVPcHRpb25zXG4gICkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmNvbXBsZXRlRGV0YWNoZWREaXJlY3RvcnlTaGFyZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRlRGV0YWNoZWREaXJlY3RvcnlTaGFyZU11dGF0aW9uKFxuICAgIG9wdGlvbnM6IENvbXBsZXRlRGV0YWNoZWRJdGVtU2hhcmVPcHRpb25zXG4gICkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ29tcGxldGVEZXRhY2hlZERpcmVjdG9yeVNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IGF3YWl0IHRoaXMucHJlcGFyZUNvbXBsZXRlRGV0YWNoZWRJdGVtU2hhcmVNdXRhdGlvbih7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIGlzRGlyZWN0b3J5OiB0cnVlLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb21wbGV0ZURldGFjaGVkRmlsZVNoYXJlKG9wdGlvbnM6IENvbXBsZXRlRGV0YWNoZWRJdGVtU2hhcmVPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMuY29tcGxldGVEZXRhY2hlZEZpbGVTaGFyZU11dGF0aW9uKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRlRGV0YWNoZWRGaWxlU2hhcmVNdXRhdGlvbihcbiAgICBvcHRpb25zOiBDb21wbGV0ZURldGFjaGVkSXRlbVNoYXJlT3B0aW9uc1xuICApIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENvbXBsZXRlRGV0YWNoZWRGaWxlU2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczogYXdhaXQgdGhpcy5wcmVwYXJlQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU11dGF0aW9uKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgaXNEaXJlY3Rvcnk6IGZhbHNlLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDb21wbGV0ZURldGFjaGVkSXRlbVNoYXJlTXV0YXRpb24oXG4gICAgb3B0aW9uczogQ29tcGxldGVEZXRhY2hlZEl0ZW1TaGFyZU9wdGlvbnMgJiB7IGlzRGlyZWN0b3J5OiBib29sZWFuIH1cbiAgKSB7XG4gICAgY29uc3QgeyBpdGVtU2hhcmVJZCwgaXRlbUtleUlkLCBpc0RpcmVjdG9yeSB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGl0ZW1LZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleShpdGVtS2V5SWQsICgpID0+XG4gICAgICBpc0RpcmVjdG9yeVxuICAgICAgICA/IHRoaXMuaXRlbVNlcnZpY2UuZ2V0RGlyZWN0b3J5S2V5SWRGcm9tRGlyZWN0b3J5U2hhcmUoaXRlbVNoYXJlSWQpXG4gICAgICAgIDogdGhpcy5pdGVtU2VydmljZS5nZXRGaWxlS2V5SWRGcm9tRmlsZVNoYXJlKGl0ZW1TaGFyZUlkKVxuICAgICk7XG5cbiAgICBjb25zdCByb290S2V5ID0gdGhpcy5rZXlTZXJ2aWNlLmN1cnJlbnRSb290S2V5O1xuXG4gICAgY29uc3Qgd3JhcHBlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGgud3JhcEtleShyb290S2V5LCBpdGVtS2V5Lmp3ayk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgaWQ6IGl0ZW1TaGFyZUlkLFxuICAgICAgICBrZXlJZDogaXRlbUtleS5pZCxcbiAgICAgICAgd3JhcHBpbmdLZXlJZDogcm9vdEtleS5pZCxcbiAgICAgICAgd3JhcHBlZEtleSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHJlcXVlc3RNa1Jlc2hhcmVNdXRhdGlvbih0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIGNvbnN0IHVzZXJTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZCk7XG5cbiAgICBpZiAodXNlclNoYXJlZEtleS5ta1NoYXJlZEtleSkge1xuICAgICAgdGhyb3cgbmV3IEtjQmFkU3RhdGVFeGNlcHRpb24oJ1RQIGFscmVhZHkgaGFzIG1rU2hhcmVkS2V5Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgbWFzdGVyS2V5ID0gdGhpcy5rZXlTZXJ2aWNlLmN1cnJlbnRNYXN0ZXJLZXk7XG4gICAgY29uc3QgcHJrID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZVBrY0tleSgpO1xuICAgIGNvbnN0IG1rV3JhcHBlZE1rUHJrID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBtYXN0ZXJLZXkuandrLFxuICAgICAgcHJrLnRvSlNPTih0cnVlKVxuICAgICk7XG5cbiAgICBjb25zdCBzaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh1c2VyU2hhcmVkS2V5LnNoYXJlZEtleS5pZCk7XG4gICAgY29uc3QgbWtSZXNoYXJlUmVxdWVzdENpcGhlciA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgc2hhcmVkS2V5Lmp3ayxcbiAgICAgIHtcbiAgICAgICAgcGJrOiBwcmsudG9KU09OKCksXG4gICAgICB9XG4gICAgKTtcblxuICAgIHJldHVybiBhd2FpdCBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogUmVxdWVzdFRwTWtSZXNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICB0cElkLFxuICAgICAgICAgIG1hc3RlcktleUlkOiBtYXN0ZXJLZXkuaWQsXG4gICAgICAgICAgbWtQYms6IEpTT04uc3RyaW5naWZ5KHByay50b0pTT04oKSksXG4gICAgICAgICAgbWtXcmFwcGVkTWtQcmssXG4gICAgICAgICAgc2hhcmVkS2V5SWQ6IHNoYXJlZEtleS5pZCxcbiAgICAgICAgICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHJlc3BvbmRNa1Jlc2hhcmUodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICBjb25zdCB1c2VyU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5nZXRUcEN1cnJlbnRVc2VyU2hhcmVkS2V5KHRwSWQpO1xuXG4gICAgaWYgKCF1c2VyU2hhcmVkS2V5Lm1rU2hhcmVkS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgS2NCYWRTdGF0ZUV4Y2VwdGlvbihcbiAgICAgICAgJ05vIGFjY2VzcyB0byB0aGUgbWtTaGFyZWRLZXkgc28gY2Fubm90IHJlc2hhcmUgaXQgd2l0aCBUUCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodXNlclNoYXJlZEtleS5zaGFyZWRLZXkuaWQpO1xuICAgIGNvbnN0IHBsYWluTWtSZXNoYXJlUmVxdWVzdENpcGhlciA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgIHNoYXJlZEtleSxcbiAgICAgIHVzZXJTaGFyZWRLZXkubWtSZXNoYXJlUmVxdWVzdENpcGhlclxuICAgICk7XG4gICAgY29uc3QgcGJrID0gYXdhaXQgSldLLmFzS2V5KHBsYWluTWtSZXNoYXJlUmVxdWVzdENpcGhlci5wYmspO1xuICAgIGNvbnN0IG1rU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkoXG4gICAgICB1c2VyU2hhcmVkS2V5Lm1rU2hhcmVkS2V5LmlkXG4gICAgKTtcblxuICAgIGNvbnN0IHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIgPSB7XG4gICAgICBta1NoYXJlZEtleToge1xuICAgICAgICBpZDogbWtTaGFyZWRLZXkuaWQsXG4gICAgICAgIGp3azogbWtTaGFyZWRLZXkuandrLnRvSlNPTih0cnVlKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIFdyYXAgd2l0aCBzaGFyZWRLZXkgdGhlbiBhZ2FpbiB3aXRoIFBia1xuICAgIGNvbnN0IG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyID1cbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgICBwYmssXG4gICAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgICAgIHNoYXJlZEtleS5qd2ssXG4gICAgICAgICAgcGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlclxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBSZXNwb25kVHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIHRwSWQsXG4gICAgICAgICAgbWtTaGFyZWRLZXlJZDogbWtTaGFyZWRLZXkuaWQsXG4gICAgICAgICAgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29tcGxldGVNa1Jlc2hhcmUodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICBjb25zdCB1c2VyU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5nZXRUcEN1cnJlbnRVc2VyU2hhcmVkS2V5KHRwSWQpO1xuXG4gICAgY29uc3Qgc2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodXNlclNoYXJlZEtleS5zaGFyZWRLZXkuaWQpO1xuICAgIGNvbnN0IHByayA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHVzZXJTaGFyZWRLZXkubWtQeGsuaWQpO1xuICAgIGNvbnN0IHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICBzaGFyZWRLZXksXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICAgIHByayxcbiAgICAgICAgdXNlclNoYXJlZEtleS5ta1Jlc2hhcmVSZXNwb25zZUNpcGhlclxuICAgICAgKVxuICAgICk7XG5cbiAgICAvLyBEb3VibGUgY2hlY2sgaXQncyBhIHZhbGlkIGtleS5cbiAgICBjb25zdCBta1NoYXJlZEtleTogS2V5ID0ge1xuICAgICAgaWQ6IHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIubWtTaGFyZWRLZXkuaWQsXG4gICAgICBqd2s6IGF3YWl0IEpXSy5hc0tleShwbGFpbk1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyLm1rU2hhcmVkS2V5Lmp3ayksXG4gICAgfTtcblxuICAgIGNvbnN0IG1hc3RlcktleSA9IHRoaXMua2V5U2VydmljZS5jdXJyZW50TWFzdGVyS2V5O1xuICAgIGNvbnN0IG1rV3JhcHBlZE1rU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBtYXN0ZXJLZXkuandrLFxuICAgICAgbWtTaGFyZWRLZXkuandrLnRvSlNPTih0cnVlKVxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENvbXBsZXRlVHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIHRwSWQsXG4gICAgICAgICAgbWFzdGVyS2V5SWQ6IG1hc3RlcktleS5pZCxcbiAgICAgICAgICBta1NoYXJlZEtleUlkOiBta1NoYXJlZEtleS5pZCxcbiAgICAgICAgICBta1dyYXBwZWRNa1NoYXJlZEtleSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEhlbHBlcnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBwcml2YXRlIGFzeW5jIGdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5sckdyYXBoUUwucXVlcnkoe1xuICAgICAgICBxdWVyeTogVHBDdXJyZW50VXNlclNoYXJlZEtleVF1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBpZDogdHBJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS50cC5jdXJyZW50VXNlclNoYXJlZEtleS51c2VyU2hhcmVkS2V5O1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi90cnVzdGVkLXBhcnR5L3RydXN0ZWQtcGFydHkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjY2Vzc1JvbGVDaG9pY2UsXG4gIExyUmVsYXlJZElucHV0LFxuICBTaGFyZVR5cGVDaG9pY2UsXG59IGZyb20gJy4uL2FwaS90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlSXRlbVNoYXJlT3B0aW9ucyB7XG4gIGl0ZW1JZDogTHJSZWxheUlkSW5wdXQ7XG4gIGl0ZW1LZXlJZD86IExyUmVsYXlJZElucHV0O1xuICB0cElkOiBMclJlbGF5SWRJbnB1dDtcbiAgdHBTaGFyZWRLZXlJZD86IExyUmVsYXlJZElucHV0O1xuICBhY2Nlc3NSb2xlOiBBY2Nlc3NSb2xlQ2hvaWNlO1xuICBzaGFyZVR5cGU6IFNoYXJlVHlwZUNob2ljZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVJdGVtU2hhcmVPcHRpb25zIHtcbiAgaXRlbVNoYXJlSWQ6IExyUmVsYXlJZElucHV0O1xuICBhY2Nlc3NSb2xlOiBBY2Nlc3NSb2xlQ2hvaWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXRlRGV0YWNoZWRJdGVtU2hhcmVPcHRpb25zIHtcbiAgaXRlbVNoYXJlSWQ6IExyUmVsYXlJZElucHV0O1xuICBpdGVtS2V5SWQ/OiBMclJlbGF5SWRJbnB1dDtcbn1cbiJdfQ==
|
|
@@ -2844,6 +2844,7 @@ var LinkTypeField;
|
|
|
2844
2844
|
(function (LinkTypeField) {
|
|
2845
2845
|
LinkTypeField["HARD"] = "HARD";
|
|
2846
2846
|
LinkTypeField["SOFT"] = "SOFT";
|
|
2847
|
+
LinkTypeField["REFERENCE"] = "REFERENCE";
|
|
2847
2848
|
})(LinkTypeField || (LinkTypeField = {}));
|
|
2848
2849
|
var PlanStateField;
|
|
2849
2850
|
(function (PlanStateField) {
|
|
@@ -6452,15 +6453,27 @@ let ItemService = ItemService_1 = class ItemService extends LrService {
|
|
|
6452
6453
|
// ------------------------------------------------------------------------------
|
|
6453
6454
|
prepareParentDirectory(options, newKey) {
|
|
6454
6455
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6455
|
-
|
|
6456
|
-
|
|
6457
|
-
|
|
6458
|
-
|
|
6459
|
-
|
|
6460
|
-
|
|
6461
|
-
|
|
6462
|
-
|
|
6463
|
-
|
|
6456
|
+
const { directoryId, linkType, wrappingKeyId } = options;
|
|
6457
|
+
if (linkType == LinkTypeField.REFERENCE) {
|
|
6458
|
+
if (wrappingKeyId) {
|
|
6459
|
+
throw new KcBadArgumentException('Do not specify wrappingKeyId when link type is REFERENCE.');
|
|
6460
|
+
}
|
|
6461
|
+
return {
|
|
6462
|
+
directoryId,
|
|
6463
|
+
linkType,
|
|
6464
|
+
};
|
|
6465
|
+
}
|
|
6466
|
+
else {
|
|
6467
|
+
// If directory's key is not already in the key graph, then need to
|
|
6468
|
+
// fetch the directory's key.
|
|
6469
|
+
const wrappingKey = yield this.getDirectoryKey(directoryId, wrappingKeyId);
|
|
6470
|
+
return {
|
|
6471
|
+
directoryId,
|
|
6472
|
+
wrappingKeyId: wrappingKey.id,
|
|
6473
|
+
wrappedKey: yield this.keyGraph.wrapKey(wrappingKey, newKey),
|
|
6474
|
+
linkType,
|
|
6475
|
+
};
|
|
6476
|
+
}
|
|
6464
6477
|
});
|
|
6465
6478
|
}
|
|
6466
6479
|
getFileStateKeyId(fileStateNodeId) {
|
|
@@ -6550,16 +6563,7 @@ let ItemService = ItemService_1 = class ItemService extends LrService {
|
|
|
6550
6563
|
prepareCreateFile(options) {
|
|
6551
6564
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6552
6565
|
const fileKey = yield this.keyFactory.createKey();
|
|
6553
|
-
const parentDirectories = yield Promise.all(options.parentDirectories.map((t) =>
|
|
6554
|
-
const { directoryId, wrappingKeyId, wrappedKey } = yield this.prepareParentDirectory(t, fileKey);
|
|
6555
|
-
// remap from ParentDirectoryInput to FileParentDirectoryInput
|
|
6556
|
-
// TODO the server should really just use wrappedKey instead of wrappedFileKey
|
|
6557
|
-
return {
|
|
6558
|
-
directoryId,
|
|
6559
|
-
wrappingKeyId,
|
|
6560
|
-
wrappedFileKey: wrappedKey,
|
|
6561
|
-
};
|
|
6562
|
-
})));
|
|
6566
|
+
const parentDirectories = yield Promise.all(options.parentDirectories.map((t) => this.prepareParentDirectory(t, fileKey)));
|
|
6563
6567
|
const input = yield this.prepareCreateFileState(fileKey, options);
|
|
6564
6568
|
return Object.assign(Object.assign({}, input), { parentDirectories });
|
|
6565
6569
|
});
|
|
@@ -9986,42 +9990,6 @@ mutation DeleteTpMutation($input: DeleteTpInput!) {
|
|
|
9986
9990
|
}
|
|
9987
9991
|
}
|
|
9988
9992
|
`;
|
|
9989
|
-
const ShareDirectoryMutation = gqlTyped `
|
|
9990
|
-
mutation ShareDirectoryMutation($input: ShareDirectoryInput!) {
|
|
9991
|
-
shareDirectory(input: $input) {
|
|
9992
|
-
directoryShare {
|
|
9993
|
-
id
|
|
9994
|
-
}
|
|
9995
|
-
}
|
|
9996
|
-
}
|
|
9997
|
-
`;
|
|
9998
|
-
const UnshareDirectoryMutation = gqlTyped `
|
|
9999
|
-
mutation UnshareDirectoryMutation($input: UnshareDirectoryInput!) {
|
|
10000
|
-
unshareDirectory(input: $input) {
|
|
10001
|
-
directoryShare {
|
|
10002
|
-
id
|
|
10003
|
-
}
|
|
10004
|
-
}
|
|
10005
|
-
}
|
|
10006
|
-
`;
|
|
10007
|
-
const ShareFileMutation = gqlTyped `
|
|
10008
|
-
mutation ShareFileMutation($input: ShareFileInput!) {
|
|
10009
|
-
shareFile(input: $input) {
|
|
10010
|
-
fileShare {
|
|
10011
|
-
id
|
|
10012
|
-
}
|
|
10013
|
-
}
|
|
10014
|
-
}
|
|
10015
|
-
`;
|
|
10016
|
-
const UnshareFileMutation = gqlTyped `
|
|
10017
|
-
mutation UnshareFileMutation($input: UnshareFileInput!) {
|
|
10018
|
-
unshareFile(input: $input) {
|
|
10019
|
-
fileShare {
|
|
10020
|
-
id
|
|
10021
|
-
}
|
|
10022
|
-
}
|
|
10023
|
-
}
|
|
10024
|
-
`;
|
|
10025
9993
|
const CreateDirectoryShareMutation = gqlTyped `
|
|
10026
9994
|
mutation CreateDirectoryShareMutation($input: CreateDirectoryShareInput!) {
|
|
10027
9995
|
createDirectoryShare(input: $input) {
|
|
@@ -10158,85 +10126,6 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
10158
10126
|
},
|
|
10159
10127
|
});
|
|
10160
10128
|
}
|
|
10161
|
-
shareDirectory(options) {
|
|
10162
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
10163
|
-
return this.mutate(this.shareDirectoryMutation(options));
|
|
10164
|
-
});
|
|
10165
|
-
}
|
|
10166
|
-
shareDirectoryMutation(options) {
|
|
10167
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
10168
|
-
return new LrMutation({
|
|
10169
|
-
mutation: ShareDirectoryMutation,
|
|
10170
|
-
variables: yield this.prepareShareItemMutation(Object.assign(Object.assign({}, options), { isDirectory: true })),
|
|
10171
|
-
});
|
|
10172
|
-
});
|
|
10173
|
-
}
|
|
10174
|
-
shareFile(options) {
|
|
10175
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
10176
|
-
return this.mutate(this.shareFileMutation(options));
|
|
10177
|
-
});
|
|
10178
|
-
}
|
|
10179
|
-
shareFileMutation(options) {
|
|
10180
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
10181
|
-
return new LrMutation({
|
|
10182
|
-
mutation: ShareFileMutation,
|
|
10183
|
-
variables: yield this.prepareShareItemMutation(Object.assign(Object.assign({}, options), { isDirectory: false })),
|
|
10184
|
-
});
|
|
10185
|
-
});
|
|
10186
|
-
}
|
|
10187
|
-
prepareShareItemMutation(options) {
|
|
10188
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
10189
|
-
const { itemId, itemKeyId, tpId, tpSharedKeyId, accessRole, isDirectory } = options;
|
|
10190
|
-
const itemKey = yield this.keyGraph.getKey(itemKeyId, () => isDirectory
|
|
10191
|
-
? this.itemService.getDirectoryKeyId(itemId)
|
|
10192
|
-
: this.itemService.getFileKeyId(itemId));
|
|
10193
|
-
const wrappingKey = yield this.keyGraph.getKey(tpSharedKeyId, () => this.getTpCurrentUserSharedKey(tpId).then((res) => res.sharedKey.id));
|
|
10194
|
-
const wrappedKey = yield this.keyGraph.wrapKey(wrappingKey, itemKey.jwk);
|
|
10195
|
-
return {
|
|
10196
|
-
input: {
|
|
10197
|
-
id: itemId,
|
|
10198
|
-
tpId,
|
|
10199
|
-
accessRole,
|
|
10200
|
-
keyId: itemKey.id,
|
|
10201
|
-
wrappingKeyId: wrappingKey.id,
|
|
10202
|
-
wrappedKey,
|
|
10203
|
-
},
|
|
10204
|
-
};
|
|
10205
|
-
});
|
|
10206
|
-
}
|
|
10207
|
-
unshareDirectory(options) {
|
|
10208
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
10209
|
-
return this.mutate(this.unshareDirectoryMutation(options));
|
|
10210
|
-
});
|
|
10211
|
-
}
|
|
10212
|
-
unshareDirectoryMutation(options) {
|
|
10213
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
10214
|
-
return this.unshareItemMutation(Object.assign(Object.assign({}, options), { isDirectory: true }));
|
|
10215
|
-
});
|
|
10216
|
-
}
|
|
10217
|
-
unshareFile(options) {
|
|
10218
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
10219
|
-
return this.mutate(this.unshareFileMutation(options));
|
|
10220
|
-
});
|
|
10221
|
-
}
|
|
10222
|
-
unshareFileMutation(options) {
|
|
10223
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
10224
|
-
return this.unshareItemMutation(Object.assign(Object.assign({}, options), { isDirectory: false }));
|
|
10225
|
-
});
|
|
10226
|
-
}
|
|
10227
|
-
unshareItemMutation({ itemId, tpId, isDirectory, }) {
|
|
10228
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
10229
|
-
return new LrMutation({
|
|
10230
|
-
mutation: isDirectory ? UnshareDirectoryMutation : UnshareFileMutation,
|
|
10231
|
-
variables: {
|
|
10232
|
-
input: {
|
|
10233
|
-
id: itemId,
|
|
10234
|
-
tpId,
|
|
10235
|
-
},
|
|
10236
|
-
},
|
|
10237
|
-
});
|
|
10238
|
-
});
|
|
10239
|
-
}
|
|
10240
10129
|
createDirectoryShare(options) {
|
|
10241
10130
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10242
10131
|
return this.mutate(this.createDirectoryShareMutation(options));
|
|
@@ -10336,6 +10225,23 @@ let TrustedPartyService = class TrustedPartyService extends LrService {
|
|
|
10336
10225
|
});
|
|
10337
10226
|
});
|
|
10338
10227
|
}
|
|
10228
|
+
deleteFileShare(id) {
|
|
10229
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
10230
|
+
return this.mutate(this.deleteFileShareMutation(id));
|
|
10231
|
+
});
|
|
10232
|
+
}
|
|
10233
|
+
deleteFileShareMutation(id) {
|
|
10234
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
10235
|
+
return new LrMutation({
|
|
10236
|
+
mutation: DeleteFileShareMutation,
|
|
10237
|
+
variables: {
|
|
10238
|
+
input: {
|
|
10239
|
+
id,
|
|
10240
|
+
},
|
|
10241
|
+
},
|
|
10242
|
+
});
|
|
10243
|
+
});
|
|
10244
|
+
}
|
|
10339
10245
|
completeDetachedDirectoryShare(options) {
|
|
10340
10246
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10341
10247
|
return this.mutate(this.completeDetachedDirectoryShareMutation(options));
|