@secrecy/lib 0.1.436 → 0.1.440
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/lib/BaseClient.js +4 -24
- package/lib/cache.d.ts +2 -2
- package/lib/cache.js +1 -1
- package/lib/client/convert/folder.d.ts +5 -4
- package/lib/client/convert/folder.js +158 -108
- package/lib/client/convert/vFile.js +2 -1
- package/lib/client/index.d.ts +4 -4
- package/lib/client/index.js +5 -5
- package/lib/client/types/Folder.d.ts +16 -16
- package/lib/client/types/Folder.js +5 -2
- package/lib/client/types/index.d.ts +1 -1
- package/lib/client/types/index.js +1 -1
- package/lib/client/types/queries.d.ts +2 -290
- package/lib/client/types/queries.js +5 -5
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/worker/__mock__/sodium.worker.d.ts +19 -0
- package/lib/worker/__mock__/sodium.worker.js +57 -0
- package/lib/zeus/index.js +2 -2
- package/package.json +1 -1
|
@@ -37,90 +37,75 @@ function _gqlFolderToInternal() {
|
|
|
37
37
|
throw "Can't access folder " + gql.id;
|
|
38
38
|
|
|
39
39
|
case 2:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}).map(function (vFile) {
|
|
54
|
-
return gqlVFileToInternal(vFile, keyPair);
|
|
55
|
-
}));
|
|
56
|
-
|
|
57
|
-
case 12:
|
|
58
|
-
_context.t8 = _context.sent;
|
|
59
|
-
_context.t9 = {
|
|
60
|
-
createdBy: _context.t3,
|
|
61
|
-
createdAt: _context.t4,
|
|
62
|
-
updatedAt: _context.t5,
|
|
63
|
-
deletedAt: _context.t6,
|
|
64
|
-
users: _context.t7,
|
|
65
|
-
vFiles: _context.t8
|
|
40
|
+
internal = {
|
|
41
|
+
id: gql.id,
|
|
42
|
+
userApp: gql.userApp,
|
|
43
|
+
name: gql.name,
|
|
44
|
+
isFavorite: gql.isFavorite,
|
|
45
|
+
breadcrumb: gql.breadcrumb,
|
|
46
|
+
createdBy: gql.createdBy.user,
|
|
47
|
+
createdAt: new Date(gql.createdAt),
|
|
48
|
+
updatedAt: new Date(gql.updatedAt),
|
|
49
|
+
deletedAt: gql.deletedAt ? new Date(gql.deletedAt) : null,
|
|
50
|
+
users: gql.userApps.map(function (u) {
|
|
51
|
+
return [u.userApp.user, u.rights];
|
|
52
|
+
})
|
|
66
53
|
};
|
|
67
|
-
internal = (0, _context.t0)(_context.t1, _context.t2, _context.t9);
|
|
68
54
|
internal.userApp = _objectSpread({}, gql.userApp);
|
|
69
55
|
|
|
70
56
|
if (!gql.userApp.nameKey) {
|
|
71
|
-
_context.next =
|
|
57
|
+
_context.next = 12;
|
|
72
58
|
break;
|
|
73
59
|
}
|
|
74
60
|
|
|
75
61
|
key = decryptCryptoBox(sodium.from_hex(gql.userApp.nameKey), gql.createdBy.user.publicKey, keyPair.privateKey);
|
|
76
|
-
_context.
|
|
77
|
-
_context.next =
|
|
62
|
+
_context.t0 = sodium;
|
|
63
|
+
_context.next = 9;
|
|
78
64
|
return decryptSecretstream(key, sodium.from_hex(internal.name));
|
|
79
65
|
|
|
80
|
-
case
|
|
81
|
-
_context.
|
|
82
|
-
internal.name = _context.
|
|
66
|
+
case 9:
|
|
67
|
+
_context.t1 = _context.sent;
|
|
68
|
+
internal.name = _context.t0.to_string.call(_context.t0, _context.t1);
|
|
83
69
|
internal.userApp.nameKey = sodium.to_hex(key);
|
|
84
70
|
|
|
85
|
-
case
|
|
71
|
+
case 12:
|
|
86
72
|
_iterator2 = _createForOfIteratorHelperLoose(internal.breadcrumb);
|
|
87
73
|
|
|
88
|
-
case
|
|
74
|
+
case 13:
|
|
89
75
|
if ((_step2 = _iterator2()).done) {
|
|
90
|
-
_context.next =
|
|
76
|
+
_context.next = 26;
|
|
91
77
|
break;
|
|
92
78
|
}
|
|
93
79
|
|
|
94
80
|
b = _step2.value;
|
|
95
81
|
|
|
96
82
|
if (b.nameKey) {
|
|
97
|
-
_context.next =
|
|
83
|
+
_context.next = 17;
|
|
98
84
|
break;
|
|
99
85
|
}
|
|
100
86
|
|
|
101
|
-
return _context.abrupt("continue",
|
|
87
|
+
return _context.abrupt("continue", 24);
|
|
102
88
|
|
|
103
|
-
case
|
|
89
|
+
case 17:
|
|
104
90
|
_key = decryptCryptoBox(sodium.from_hex(b.nameKey), b.pubKey, keyPair.privateKey);
|
|
105
91
|
b.nameKey = sodium.to_hex(_key);
|
|
106
|
-
_context.
|
|
107
|
-
_context.next =
|
|
92
|
+
_context.t2 = sodium;
|
|
93
|
+
_context.next = 22;
|
|
108
94
|
return decryptSecretstream(_key, sodium.from_hex(b.name));
|
|
109
95
|
|
|
110
|
-
case
|
|
111
|
-
_context.
|
|
112
|
-
b.name = _context.
|
|
96
|
+
case 22:
|
|
97
|
+
_context.t3 = _context.sent;
|
|
98
|
+
b.name = _context.t2.to_string.call(_context.t2, _context.t3);
|
|
113
99
|
|
|
114
|
-
case
|
|
115
|
-
_context.next =
|
|
100
|
+
case 24:
|
|
101
|
+
_context.next = 13;
|
|
116
102
|
break;
|
|
117
103
|
|
|
118
|
-
case
|
|
119
|
-
delete internal.userApps;
|
|
104
|
+
case 26:
|
|
120
105
|
foldersCache.set(internal.id, internal);
|
|
121
106
|
return _context.abrupt("return", internal);
|
|
122
107
|
|
|
123
|
-
case
|
|
108
|
+
case 28:
|
|
124
109
|
case "end":
|
|
125
110
|
return _context.stop();
|
|
126
111
|
}
|
|
@@ -130,72 +115,136 @@ function _gqlFolderToInternal() {
|
|
|
130
115
|
return _gqlFolderToInternal.apply(this, arguments);
|
|
131
116
|
}
|
|
132
117
|
|
|
133
|
-
export function
|
|
134
|
-
return
|
|
118
|
+
export function gqlFolderFullToInternal(_x3, _x4) {
|
|
119
|
+
return _gqlFolderFullToInternal.apply(this, arguments);
|
|
135
120
|
}
|
|
136
121
|
|
|
137
|
-
function
|
|
138
|
-
|
|
122
|
+
function _gqlFolderFullToInternal() {
|
|
123
|
+
_gqlFolderFullToInternal = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(gql, keyPair) {
|
|
124
|
+
var f;
|
|
139
125
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
140
126
|
while (1) {
|
|
141
127
|
switch (_context2.prev = _context2.next) {
|
|
142
128
|
case 0:
|
|
129
|
+
_context2.next = 2;
|
|
130
|
+
return gqlFolderToInternal(gql, keyPair);
|
|
131
|
+
|
|
132
|
+
case 2:
|
|
133
|
+
f = _context2.sent;
|
|
143
134
|
_context2.t0 = _objectSpread;
|
|
144
|
-
_context2.t1 = _objectSpread;
|
|
135
|
+
_context2.t1 = _objectSpread({}, f);
|
|
145
136
|
_context2.t2 = {};
|
|
146
|
-
_context2.next =
|
|
147
|
-
return
|
|
137
|
+
_context2.next = 8;
|
|
138
|
+
return Promise.all(gql.vFiles.filter(function (f) {
|
|
139
|
+
return f.userApp;
|
|
140
|
+
}).map(function (vFile) {
|
|
141
|
+
return gqlVFileToInternal(vFile, keyPair);
|
|
142
|
+
}));
|
|
148
143
|
|
|
149
|
-
case
|
|
144
|
+
case 8:
|
|
150
145
|
_context2.t3 = _context2.sent;
|
|
151
|
-
_context2.t4 = (0, _context2.t1)(_context2.t2, _context2.t3);
|
|
152
|
-
_context2.t5 = {};
|
|
153
146
|
|
|
154
147
|
if (!gql.parentFolder) {
|
|
155
|
-
_context2.next =
|
|
148
|
+
_context2.next = 15;
|
|
156
149
|
break;
|
|
157
150
|
}
|
|
158
151
|
|
|
159
|
-
_context2.next =
|
|
152
|
+
_context2.next = 12;
|
|
160
153
|
return gqlFolderToInternal(gql.parentFolder, keyPair);
|
|
161
154
|
|
|
162
|
-
case
|
|
163
|
-
_context2.
|
|
164
|
-
_context2.next =
|
|
155
|
+
case 12:
|
|
156
|
+
_context2.t4 = _context2.sent;
|
|
157
|
+
_context2.next = 16;
|
|
165
158
|
break;
|
|
166
159
|
|
|
167
|
-
case 14:
|
|
168
|
-
_context2.t6 = null;
|
|
169
|
-
|
|
170
160
|
case 15:
|
|
171
|
-
_context2.
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
161
|
+
_context2.t4 = null;
|
|
162
|
+
|
|
163
|
+
case 16:
|
|
164
|
+
_context2.t5 = _context2.t4;
|
|
165
|
+
_context2.next = 19;
|
|
166
|
+
return Promise.all(gql.subfolders.map(function (s) {
|
|
167
|
+
return gqlFolderToInternal(s, keyPair);
|
|
175
168
|
}));
|
|
176
169
|
|
|
177
|
-
case
|
|
178
|
-
_context2.
|
|
179
|
-
_context2.
|
|
180
|
-
|
|
181
|
-
|
|
170
|
+
case 19:
|
|
171
|
+
_context2.t6 = _context2.sent;
|
|
172
|
+
_context2.t7 = {
|
|
173
|
+
vFiles: _context2.t3,
|
|
174
|
+
parentFolder: _context2.t5,
|
|
175
|
+
subfolders: _context2.t6
|
|
182
176
|
};
|
|
183
|
-
return _context2.abrupt("return", (0, _context2.t0)(_context2.
|
|
177
|
+
return _context2.abrupt("return", (0, _context2.t0)(_context2.t1, _context2.t2, _context2.t7));
|
|
184
178
|
|
|
185
|
-
case
|
|
179
|
+
case 22:
|
|
186
180
|
case "end":
|
|
187
181
|
return _context2.stop();
|
|
188
182
|
}
|
|
189
183
|
}
|
|
190
184
|
}, _callee2);
|
|
191
185
|
}));
|
|
192
|
-
return
|
|
186
|
+
return _gqlFolderFullToInternal.apply(this, arguments);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export function gqlFolderFullToInternalFolderFull(_x5, _x6) {
|
|
190
|
+
return _gqlFolderFullToInternalFolderFull.apply(this, arguments);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
function _gqlFolderFullToInternalFolderFull() {
|
|
194
|
+
_gqlFolderFullToInternalFolderFull = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(gql, keyPair) {
|
|
195
|
+
var f, subfolders, parentFolder;
|
|
196
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
197
|
+
while (1) {
|
|
198
|
+
switch (_context3.prev = _context3.next) {
|
|
199
|
+
case 0:
|
|
200
|
+
_context3.next = 2;
|
|
201
|
+
return gqlFolderFullToInternal(gql, keyPair);
|
|
202
|
+
|
|
203
|
+
case 2:
|
|
204
|
+
f = _context3.sent;
|
|
205
|
+
_context3.next = 5;
|
|
206
|
+
return Promise.all(gql.subfolders.map(function (f) {
|
|
207
|
+
return gqlFolderToInternal(f, keyPair);
|
|
208
|
+
}));
|
|
209
|
+
|
|
210
|
+
case 5:
|
|
211
|
+
subfolders = _context3.sent;
|
|
212
|
+
|
|
213
|
+
if (!gql.parentFolder) {
|
|
214
|
+
_context3.next = 12;
|
|
215
|
+
break;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
_context3.next = 9;
|
|
219
|
+
return gqlFolderToInternal(gql.parentFolder, keyPair);
|
|
220
|
+
|
|
221
|
+
case 9:
|
|
222
|
+
_context3.t0 = _context3.sent;
|
|
223
|
+
_context3.next = 13;
|
|
224
|
+
break;
|
|
225
|
+
|
|
226
|
+
case 12:
|
|
227
|
+
_context3.t0 = null;
|
|
228
|
+
|
|
229
|
+
case 13:
|
|
230
|
+
parentFolder = _context3.t0;
|
|
231
|
+
return _context3.abrupt("return", _objectSpread(_objectSpread({}, f), {}, {
|
|
232
|
+
parentFolder: parentFolder,
|
|
233
|
+
subfolders: subfolders
|
|
234
|
+
}));
|
|
235
|
+
|
|
236
|
+
case 15:
|
|
237
|
+
case "end":
|
|
238
|
+
return _context3.stop();
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}, _callee3);
|
|
242
|
+
}));
|
|
243
|
+
return _gqlFolderFullToInternalFolderFull.apply(this, arguments);
|
|
193
244
|
}
|
|
194
245
|
|
|
195
246
|
export function internalFolderToFolder(internal) {
|
|
196
|
-
var folder = _objectSpread(
|
|
197
|
-
vFiles: internal.vFiles.map(internalVFileToVFile)
|
|
198
|
-
});
|
|
247
|
+
var folder = _objectSpread({}, internal);
|
|
199
248
|
|
|
200
249
|
for (var _iterator = _createForOfIteratorHelperLoose(folder.breadcrumb), _step; !(_step = _iterator()).done;) {
|
|
201
250
|
var b = _step.value;
|
|
@@ -207,65 +256,66 @@ export function internalFolderToFolder(internal) {
|
|
|
207
256
|
delete folder.nameKey;
|
|
208
257
|
return folder;
|
|
209
258
|
}
|
|
210
|
-
export function
|
|
259
|
+
export function internalFolderFullToFolderFull(internal) {
|
|
211
260
|
return _objectSpread(_objectSpread({}, internalFolderToFolder(internal)), {}, {
|
|
261
|
+
vFiles: internal.vFiles.map(internalVFileToVFile),
|
|
212
262
|
parentFolder: internal.parentFolder ? internalFolderToFolder(internal.parentFolder) : null,
|
|
213
263
|
subfolders: internal.subfolders.map(internalFolderToFolder)
|
|
214
264
|
});
|
|
215
265
|
}
|
|
216
|
-
export function
|
|
217
|
-
return
|
|
266
|
+
export function gqlFolderToExternalFolderFull(_x7, _x8) {
|
|
267
|
+
return _gqlFolderToExternalFolderFull.apply(this, arguments);
|
|
218
268
|
}
|
|
219
269
|
|
|
220
|
-
function
|
|
221
|
-
|
|
222
|
-
return _regeneratorRuntime.wrap(function
|
|
270
|
+
function _gqlFolderToExternalFolderFull() {
|
|
271
|
+
_gqlFolderToExternalFolderFull = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(gql, keyPair) {
|
|
272
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
223
273
|
while (1) {
|
|
224
|
-
switch (
|
|
274
|
+
switch (_context4.prev = _context4.next) {
|
|
225
275
|
case 0:
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
return
|
|
276
|
+
_context4.t0 = internalFolderFullToFolderFull;
|
|
277
|
+
_context4.next = 3;
|
|
278
|
+
return gqlFolderFullToInternalFolderFull(gql, keyPair);
|
|
229
279
|
|
|
230
280
|
case 3:
|
|
231
|
-
|
|
232
|
-
return
|
|
281
|
+
_context4.t1 = _context4.sent;
|
|
282
|
+
return _context4.abrupt("return", (0, _context4.t0)(_context4.t1));
|
|
233
283
|
|
|
234
284
|
case 5:
|
|
235
285
|
case "end":
|
|
236
|
-
return
|
|
286
|
+
return _context4.stop();
|
|
237
287
|
}
|
|
238
288
|
}
|
|
239
|
-
},
|
|
289
|
+
}, _callee4);
|
|
240
290
|
}));
|
|
241
|
-
return
|
|
291
|
+
return _gqlFolderToExternalFolderFull.apply(this, arguments);
|
|
242
292
|
}
|
|
243
293
|
|
|
244
|
-
export function gqlFolderToExternal(
|
|
294
|
+
export function gqlFolderToExternal(_x9, _x10) {
|
|
245
295
|
return _gqlFolderToExternal.apply(this, arguments);
|
|
246
296
|
}
|
|
247
297
|
|
|
248
298
|
function _gqlFolderToExternal() {
|
|
249
|
-
_gqlFolderToExternal = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function
|
|
250
|
-
return _regeneratorRuntime.wrap(function
|
|
299
|
+
_gqlFolderToExternal = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(gql, keyPair) {
|
|
300
|
+
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
251
301
|
while (1) {
|
|
252
|
-
switch (
|
|
302
|
+
switch (_context5.prev = _context5.next) {
|
|
253
303
|
case 0:
|
|
254
|
-
|
|
255
|
-
|
|
304
|
+
_context5.t0 = internalFolderToFolder;
|
|
305
|
+
_context5.next = 3;
|
|
256
306
|
return gqlFolderToInternal(gql, keyPair);
|
|
257
307
|
|
|
258
308
|
case 3:
|
|
259
|
-
|
|
260
|
-
return
|
|
309
|
+
_context5.t1 = _context5.sent;
|
|
310
|
+
return _context5.abrupt("return", (0, _context5.t0)(_context5.t1));
|
|
261
311
|
|
|
262
312
|
case 5:
|
|
263
313
|
case "end":
|
|
264
|
-
return
|
|
314
|
+
return _context5.stop();
|
|
265
315
|
}
|
|
266
316
|
}
|
|
267
|
-
},
|
|
317
|
+
}, _callee5);
|
|
268
318
|
}));
|
|
269
319
|
return _gqlFolderToExternal.apply(this, arguments);
|
|
270
320
|
}
|
|
271
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29udmVydC9mb2xkZXIudHMiXSwibmFtZXMiOlsic29kaXVtIiwiZGVjcnlwdENyeXB0b0JveCIsImdxbFZGaWxlVG9JbnRlcm5hbCIsImludGVybmFsVkZpbGVUb1ZGaWxlIiwiZm9sZGVyc0NhY2hlIiwiZGVjcnlwdFNlY3JldHN0cmVhbSIsImdxbEZvbGRlclRvSW50ZXJuYWwiLCJncWwiLCJrZXlQYWlyIiwidXNlckFwcCIsImlkIiwiY3JlYXRlZEJ5IiwidXNlciIsIkRhdGUiLCJjcmVhdGVkQXQiLCJ1cGRhdGVkQXQiLCJkZWxldGVkQXQiLCJ1c2VyQXBwcyIsIm1hcCIsInUiLCJyaWdodHMiLCJQcm9taXNlIiwiYWxsIiwidkZpbGVzIiwiZmlsdGVyIiwiZiIsInZGaWxlIiwidXNlcnMiLCJpbnRlcm5hbCIsIm5hbWVLZXkiLCJrZXkiLCJmcm9tX2hleCIsInB1YmxpY0tleSIsInByaXZhdGVLZXkiLCJuYW1lIiwidG9fc3RyaW5nIiwidG9faGV4IiwiYnJlYWRjcnVtYiIsImIiLCJwdWJLZXkiLCJzZXQiLCJncWxGb2xkZXJXaXRoTGlua3NUb0ludGVybmFsV2l0aExpbmtzIiwicGFyZW50Rm9sZGVyIiwic3ViZm9sZGVycyIsImludGVybmFsRm9sZGVyVG9Gb2xkZXIiLCJmb2xkZXIiLCJpbnRlcm5hbEZvbGRlcldpdGhMaW5rc1RvRm9sZGVyV2l0aExpbmtzIiwiZ3FsRm9sZGVyVG9FeHRlcm5hbFdpdGhMaW5rcyIsImdxbEZvbGRlclRvRXh0ZXJuYWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBU0EsTUFBVCxRQUF1QixpQkFBdkI7QUFFQSxTQUFTQyxnQkFBVCxRQUFpQyx1QkFBakM7QUFTQSxTQUFTQyxrQkFBVCxFQUE2QkMsb0JBQTdCLFFBQXlELFlBQXpEO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QixnQkFBN0I7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxzQkFBcEM7QUFFQSxnQkFB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THpDLEdBREssRUFFTEMsT0FGSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBSUVvQyxzQkFKRjtBQUFBO0FBQUEsbUJBSStCdEMsbUJBQW1CLENBQUNDLEdBQUQsRUFBTUMsT0FBTixDQUpsRDs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNvZGl1bSB9IGZyb20gXCIuLi8uLi9zb2RpdW0uanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5UGFpciB9IGZyb20gXCIuLi8uLi9jcnlwdG8vaW5kZXguanNcIjtcbmltcG9ydCB7IGRlY3J5cHRDcnlwdG9Cb3ggfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEdRTEZvbGRlcixcbiAgSW50ZXJuYWxGb2xkZXIsXG4gIEZvbGRlcixcbiAgR1FMRm9sZGVyV2l0aExpbmtzLFxuICBJbnRlcm5hbEZvbGRlcldpdGhMaW5rcyxcbiAgRm9sZGVyV2l0aExpbmtzXG59IGZyb20gXCIuLi90eXBlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgZ3FsVkZpbGVUb0ludGVybmFsLCBpbnRlcm5hbFZGaWxlVG9WRmlsZSB9IGZyb20gXCIuL3ZGaWxlLmpzXCI7XG5pbXBvcnQgeyBmb2xkZXJzQ2FjaGUgfSBmcm9tIFwiLi4vLi4vY2FjaGUuanNcIjtcbmltcG9ydCB7IGRlY3J5cHRTZWNyZXRzdHJlYW0gfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2ZpbGUuanNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbEZvbGRlclRvSW50ZXJuYWwoXG4gIGdxbDogR1FMRm9sZGVyLFxuICBrZXlQYWlyOiBLZXlQYWlyXG4pOiBQcm9taXNlPEludGVybmFsRm9sZGVyPiB7XG4gIGlmICghZ3FsLnVzZXJBcHApIHtcbiAgICB0aHJvdyBgQ2FuJ3QgYWNjZXNzIGZvbGRlciAke2dxbC5pZH1gO1xuICB9XG4gIGNvbnN0IGludGVybmFsOiBJbnRlcm5hbEZvbGRlciA9IHtcbiAgICAuLi5ncWwsXG4gICAgY3JlYXRlZEJ5OiBncWwuY3JlYXRlZEJ5LnVzZXIsXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShncWwuY3JlYXRlZEF0KSxcbiAgICB1cGRhdGVkQXQ6IG5ldyBEYXRlKGdxbC51cGRhdGVkQXQpLFxuICAgIGRlbGV0ZWRBdDogZ3FsLmRlbGV0ZWRBdCA/IG5ldyBEYXRlKGdxbC5kZWxldGVkQXQpIDogbnVsbCxcbiAgICB1c2VyczogZ3FsLnVzZXJBcHBzLm1hcCh1ID0+IFt1LnVzZXJBcHAudXNlciwgdS5yaWdodHNdKSxcbiAgICB2RmlsZXM6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgZ3FsLnZGaWxlc1xuICAgICAgICAuZmlsdGVyKGYgPT4gZi51c2VyQXBwICE9PSBudWxsKVxuICAgICAgICAubWFwKHZGaWxlID0+IGdxbFZGaWxlVG9JbnRlcm5hbCh2RmlsZSwga2V5UGFpcikpXG4gICAgKVxuICB9O1xuXG4gIGludGVybmFsLnVzZXJBcHAgPSB7IC4uLmdxbC51c2VyQXBwIH07XG5cbiAgaWYgKGdxbC51c2VyQXBwLm5hbWVLZXkpIHtcbiAgICBjb25zdCBrZXkgPSBkZWNyeXB0Q3J5cHRvQm94KFxuICAgICAgc29kaXVtLmZyb21faGV4KGdxbC51c2VyQXBwLm5hbWVLZXkpLFxuICAgICAgZ3FsLmNyZWF0ZWRCeS51c2VyLnB1YmxpY0tleSxcbiAgICAgIGtleVBhaXIucHJpdmF0ZUtleVxuICAgICk7XG4gICAgaW50ZXJuYWwubmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICBhd2FpdCBkZWNyeXB0U2VjcmV0c3RyZWFtKGtleSwgc29kaXVtLmZyb21faGV4KGludGVybmFsLm5hbWUpKVxuICAgICk7XG5cbiAgICBpbnRlcm5hbC51c2VyQXBwLm5hbWVLZXkgPSBzb2RpdW0udG9faGV4KGtleSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGIgb2YgaW50ZXJuYWwuYnJlYWRjcnVtYikge1xuICAgIGlmICghYi5uYW1lS2V5KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSBkZWNyeXB0Q3J5cHRvQm94KFxuICAgICAgc29kaXVtLmZyb21faGV4KGIubmFtZUtleSksXG4gICAgICBiLnB1YktleSxcbiAgICAgIGtleVBhaXIucHJpdmF0ZUtleVxuICAgICk7XG4gICAgYi5uYW1lS2V5ID0gc29kaXVtLnRvX2hleChrZXkpO1xuXG4gICAgYi5uYW1lID0gc29kaXVtLnRvX3N0cmluZyhcbiAgICAgIGF3YWl0IGRlY3J5cHRTZWNyZXRzdHJlYW0oa2V5LCBzb2RpdW0uZnJvbV9oZXgoYi5uYW1lKSlcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlIGludGVybmFsLnVzZXJBcHBzO1xuXG4gIGZvbGRlcnNDYWNoZS5zZXQoaW50ZXJuYWwuaWQsIGludGVybmFsKTtcbiAgcmV0dXJuIGludGVybmFsO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsRm9sZGVyV2l0aExpbmtzVG9JbnRlcm5hbFdpdGhMaW5rcyhcbiAgZ3FsOiBHUUxGb2xkZXJXaXRoTGlua3MsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxGb2xkZXJXaXRoTGlua3M+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi4oYXdhaXQgZ3FsRm9sZGVyVG9JbnRlcm5hbChncWwsIGtleVBhaXIpKSxcbiAgICBwYXJlbnRGb2xkZXI6IGdxbC5wYXJlbnRGb2xkZXJcbiAgICAgID8gYXdhaXQgZ3FsRm9sZGVyVG9JbnRlcm5hbChncWwucGFyZW50Rm9sZGVyLCBrZXlQYWlyKVxuICAgICAgOiBudWxsLFxuICAgIHN1YmZvbGRlcnM6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgZ3FsLnN1YmZvbGRlcnMubWFwKGYgPT4gZ3FsRm9sZGVyVG9JbnRlcm5hbChmLCBrZXlQYWlyKSlcbiAgICApXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlcm5hbEZvbGRlclRvRm9sZGVyKGludGVybmFsOiBJbnRlcm5hbEZvbGRlcik6IEZvbGRlciB7XG4gIGNvbnN0IGZvbGRlcjogRm9sZGVyID0ge1xuICAgIC4uLmludGVybmFsLFxuICAgIHZGaWxlczogaW50ZXJuYWwudkZpbGVzLm1hcChpbnRlcm5hbFZGaWxlVG9WRmlsZSlcbiAgfTtcblxuICBmb3IgKGNvbnN0IGIgb2YgZm9sZGVyLmJyZWFkY3J1bWIpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgZGVsZXRlIGIubmFtZUtleTtcbiAgfVxuICAvLyBAdHMtaWdub3JlXG4gIGRlbGV0ZSBmb2xkZXIubmFtZUtleTtcbiAgcmV0dXJuIGZvbGRlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludGVybmFsRm9sZGVyV2l0aExpbmtzVG9Gb2xkZXJXaXRoTGlua3MoXG4gIGludGVybmFsOiBJbnRlcm5hbEZvbGRlcldpdGhMaW5rc1xuKTogRm9sZGVyV2l0aExpbmtzIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnRlcm5hbEZvbGRlclRvRm9sZGVyKGludGVybmFsKSxcbiAgICBwYXJlbnRGb2xkZXI6IGludGVybmFsLnBhcmVudEZvbGRlclxuICAgICAgPyBpbnRlcm5hbEZvbGRlclRvRm9sZGVyKGludGVybmFsLnBhcmVudEZvbGRlcilcbiAgICAgIDogbnVsbCxcbiAgICBzdWJmb2xkZXJzOiBpbnRlcm5hbC5zdWJmb2xkZXJzLm1hcChpbnRlcm5hbEZvbGRlclRvRm9sZGVyKVxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsRm9sZGVyVG9FeHRlcm5hbFdpdGhMaW5rcyhcbiAgZ3FsOiBHUUxGb2xkZXJXaXRoTGlua3MsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8Rm9sZGVyV2l0aExpbmtzPiB7XG4gIHJldHVybiBpbnRlcm5hbEZvbGRlcldpdGhMaW5rc1RvRm9sZGVyV2l0aExpbmtzKFxuICAgIGF3YWl0IGdxbEZvbGRlcldpdGhMaW5rc1RvSW50ZXJuYWxXaXRoTGlua3MoZ3FsLCBrZXlQYWlyKVxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsRm9sZGVyVG9FeHRlcm5hbChcbiAgZ3FsOiBHUUxGb2xkZXIsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8Rm9sZGVyPiB7XG4gIHJldHVybiBpbnRlcm5hbEZvbGRlclRvRm9sZGVyKGF3YWl0IGdxbEZvbGRlclRvSW50ZXJuYWwoZ3FsLCBrZXlQYWlyKSk7XG59XG4iXX0=
|
|
321
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29udmVydC9mb2xkZXIudHMiXSwibmFtZXMiOlsic29kaXVtIiwiZGVjcnlwdENyeXB0b0JveCIsImdxbFZGaWxlVG9JbnRlcm5hbCIsImludGVybmFsVkZpbGVUb1ZGaWxlIiwiZm9sZGVyc0NhY2hlIiwiZGVjcnlwdFNlY3JldHN0cmVhbSIsImdxbEZvbGRlclRvSW50ZXJuYWwiLCJncWwiLCJrZXlQYWlyIiwidXNlckFwcCIsImlkIiwiaW50ZXJuYWwiLCJuYW1lIiwiaXNGYXZvcml0ZSIsImJyZWFkY3J1bWIiLCJjcmVhdGVkQnkiLCJ1c2VyIiwiY3JlYXRlZEF0IiwiRGF0ZSIsInVwZGF0ZWRBdCIsImRlbGV0ZWRBdCIsInVzZXJzIiwidXNlckFwcHMiLCJtYXAiLCJ1IiwicmlnaHRzIiwibmFtZUtleSIsImtleSIsImZyb21faGV4IiwicHVibGljS2V5IiwicHJpdmF0ZUtleSIsInRvX3N0cmluZyIsInRvX2hleCIsImIiLCJwdWJLZXkiLCJzZXQiLCJncWxGb2xkZXJGdWxsVG9JbnRlcm5hbCIsImYiLCJQcm9taXNlIiwiYWxsIiwidkZpbGVzIiwiZmlsdGVyIiwidkZpbGUiLCJwYXJlbnRGb2xkZXIiLCJzdWJmb2xkZXJzIiwicyIsImdxbEZvbGRlckZ1bGxUb0ludGVybmFsRm9sZGVyRnVsbCIsImludGVybmFsRm9sZGVyVG9Gb2xkZXIiLCJmb2xkZXIiLCJpbnRlcm5hbEZvbGRlckZ1bGxUb0ZvbGRlckZ1bGwiLCJncWxGb2xkZXJUb0V4dGVybmFsRm9sZGVyRnVsbCIsImdxbEZvbGRlclRvRXh0ZXJuYWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBU0EsTUFBVCxRQUF1QixpQkFBdkI7QUFFQSxTQUFTQyxnQkFBVCxRQUFpQyx1QkFBakM7QUFTQSxTQUFTQyxrQkFBVCxFQUE2QkMsb0JBQTdCLFFBQXlELFlBQXpEO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QixnQkFBN0I7QUFDQSxTQUFT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QUFBQSxtQkFJK0J6QyxtQkFBbUIsQ0FBQ0MsR0FBRCxFQUFNQyxPQUFOLENBSmxEOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc29kaXVtIH0gZnJvbSBcIi4uLy4uL3NvZGl1bS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXlQYWlyIH0gZnJvbSBcIi4uLy4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHsgZGVjcnlwdENyeXB0b0JveCB9IGZyb20gXCIuLi8uLi9jcnlwdG8vaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgR1FMRm9sZGVyLFxuICBJbnRlcm5hbEZvbGRlcixcbiAgRm9sZGVyLFxuICBHUUxGb2xkZXJGdWxsLFxuICBJbnRlcm5hbEZvbGRlckZ1bGwsXG4gIEZvbGRlckZ1bGxcbn0gZnJvbSBcIi4uL3R5cGVzL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBncWxWRmlsZVRvSW50ZXJuYWwsIGludGVybmFsVkZpbGVUb1ZGaWxlIH0gZnJvbSBcIi4vdkZpbGUuanNcIjtcbmltcG9ydCB7IGZvbGRlcnNDYWNoZSB9IGZyb20gXCIuLi8uLi9jYWNoZS5qc1wiO1xuaW1wb3J0IHsgZGVjcnlwdFNlY3JldHN0cmVhbSB9IGZyb20gXCIuLi8uLi9jcnlwdG8vZmlsZS5qc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsRm9sZGVyVG9JbnRlcm5hbChcbiAgZ3FsOiBHUUxGb2xkZXIsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxGb2xkZXI+IHtcbiAgaWYgKCFncWwudXNlckFwcCkge1xuICAgIHRocm93IGBDYW4ndCBhY2Nlc3MgZm9sZGVyICR7Z3FsLmlkfWA7XG4gIH1cbiAgY29uc3QgaW50ZXJuYWw6IEludGVybmFsRm9sZGVyID0ge1xuICAgIGlkOiBncWwuaWQsXG4gICAgdXNlckFwcDogZ3FsLnVzZXJBcHAsXG4gICAgbmFtZTogZ3FsLm5hbWUsXG4gICAgaXNGYXZvcml0ZTogZ3FsLmlzRmF2b3JpdGUsXG4gICAgYnJlYWRjcnVtYjogZ3FsLmJyZWFkY3J1bWIsXG4gICAgY3JlYXRlZEJ5OiBncWwuY3JlYXRlZEJ5LnVzZXIsXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZShncWwuY3JlYXRlZEF0KSxcbiAgICB1cGRhdGVkQXQ6IG5ldyBEYXRlKGdxbC51cGRhdGVkQXQpLFxuICAgIGRlbGV0ZWRBdDogZ3FsLmRlbGV0ZWRBdCA/IG5ldyBEYXRlKGdxbC5kZWxldGVkQXQpIDogbnVsbCxcbiAgICB1c2VyczogZ3FsLnVzZXJBcHBzLm1hcCh1ID0+IFt1LnVzZXJBcHAudXNlciwgdS5yaWdodHNdKVxuICB9O1xuXG4gIGludGVybmFsLnVzZXJBcHAgPSB7IC4uLmdxbC51c2VyQXBwIH07XG5cbiAgaWYgKGdxbC51c2VyQXBwLm5hbWVLZXkpIHtcbiAgICBjb25zdCBrZXkgPSBkZWNyeXB0Q3J5cHRvQm94KFxuICAgICAgc29kaXVtLmZyb21faGV4KGdxbC51c2VyQXBwLm5hbWVLZXkpLFxuICAgICAgZ3FsLmNyZWF0ZWRCeS51c2VyLnB1YmxpY0tleSxcbiAgICAgIGtleVBhaXIucHJpdmF0ZUtleVxuICAgICk7XG4gICAgaW50ZXJuYWwubmFtZSA9IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICBhd2FpdCBkZWNyeXB0U2VjcmV0c3RyZWFtKGtleSwgc29kaXVtLmZyb21faGV4KGludGVybmFsLm5hbWUpKVxuICAgICk7XG5cbiAgICBpbnRlcm5hbC51c2VyQXBwLm5hbWVLZXkgPSBzb2RpdW0udG9faGV4KGtleSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGIgb2YgaW50ZXJuYWwuYnJlYWRjcnVtYikge1xuICAgIGlmICghYi5uYW1lS2V5KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSBkZWNyeXB0Q3J5cHRvQm94KFxuICAgICAgc29kaXVtLmZyb21faGV4KGIubmFtZUtleSksXG4gICAgICBiLnB1YktleSxcbiAgICAgIGtleVBhaXIucHJpdmF0ZUtleVxuICAgICk7XG4gICAgYi5uYW1lS2V5ID0gc29kaXVtLnRvX2hleChrZXkpO1xuXG4gICAgYi5uYW1lID0gc29kaXVtLnRvX3N0cmluZyhcbiAgICAgIGF3YWl0IGRlY3J5cHRTZWNyZXRzdHJlYW0oa2V5LCBzb2RpdW0uZnJvbV9oZXgoYi5uYW1lKSlcbiAgICApO1xuICB9XG5cbiAgZm9sZGVyc0NhY2hlLnNldChpbnRlcm5hbC5pZCwgaW50ZXJuYWwpO1xuICByZXR1cm4gaW50ZXJuYWw7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBncWxGb2xkZXJGdWxsVG9JbnRlcm5hbChcbiAgZ3FsOiBHUUxGb2xkZXJGdWxsLFxuICBrZXlQYWlyOiBLZXlQYWlyXG4pOiBQcm9taXNlPEludGVybmFsRm9sZGVyRnVsbD4ge1xuICBjb25zdCBmID0gYXdhaXQgZ3FsRm9sZGVyVG9JbnRlcm5hbChncWwsIGtleVBhaXIpO1xuICByZXR1cm4ge1xuICAgIC4uLmYsXG4gICAgdkZpbGVzOiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGdxbC52RmlsZXNcbiAgICAgICAgLmZpbHRlcihmID0+IGYudXNlckFwcClcbiAgICAgICAgLm1hcCh2RmlsZSA9PiBncWxWRmlsZVRvSW50ZXJuYWwodkZpbGUsIGtleVBhaXIpKVxuICAgICksXG4gICAgcGFyZW50Rm9sZGVyOiBncWwucGFyZW50Rm9sZGVyXG4gICAgICA/IGF3YWl0IGdxbEZvbGRlclRvSW50ZXJuYWwoZ3FsLnBhcmVudEZvbGRlciwga2V5UGFpcilcbiAgICAgIDogbnVsbCxcbiAgICBzdWJmb2xkZXJzOiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGdxbC5zdWJmb2xkZXJzLm1hcChzID0+IGdxbEZvbGRlclRvSW50ZXJuYWwocywga2V5UGFpcikpXG4gICAgKVxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsRm9sZGVyRnVsbFRvSW50ZXJuYWxGb2xkZXJGdWxsKFxuICBncWw6IEdRTEZvbGRlckZ1bGwsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxGb2xkZXJGdWxsPiB7XG4gIGNvbnN0IGYgPSBhd2FpdCBncWxGb2xkZXJGdWxsVG9JbnRlcm5hbChncWwsIGtleVBhaXIpO1xuICBjb25zdCBzdWJmb2xkZXJzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgZ3FsLnN1YmZvbGRlcnMubWFwKGYgPT4gZ3FsRm9sZGVyVG9JbnRlcm5hbChmLCBrZXlQYWlyKSlcbiAgKTtcbiAgY29uc3QgcGFyZW50Rm9sZGVyID0gZ3FsLnBhcmVudEZvbGRlclxuICAgID8gYXdhaXQgZ3FsRm9sZGVyVG9JbnRlcm5hbChncWwucGFyZW50Rm9sZGVyLCBrZXlQYWlyKVxuICAgIDogbnVsbDtcblxuICByZXR1cm4ge1xuICAgIC4uLmYsXG4gICAgcGFyZW50Rm9sZGVyLFxuICAgIHN1YmZvbGRlcnNcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludGVybmFsRm9sZGVyVG9Gb2xkZXIoaW50ZXJuYWw6IEludGVybmFsRm9sZGVyKTogRm9sZGVyIHtcbiAgY29uc3QgZm9sZGVyOiBGb2xkZXIgPSB7XG4gICAgLi4uaW50ZXJuYWxcbiAgfTtcblxuICBmb3IgKGNvbnN0IGIgb2YgZm9sZGVyLmJyZWFkY3J1bWIpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgZGVsZXRlIGIubmFtZUtleTtcbiAgfVxuICAvLyBAdHMtaWdub3JlXG4gIGRlbGV0ZSBmb2xkZXIubmFtZUtleTtcbiAgcmV0dXJuIGZvbGRlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludGVybmFsRm9sZGVyRnVsbFRvRm9sZGVyRnVsbChcbiAgaW50ZXJuYWw6IEludGVybmFsRm9sZGVyRnVsbFxuKTogRm9sZGVyRnVsbCB7XG4gIHJldHVybiB7XG4gICAgLi4uaW50ZXJuYWxGb2xkZXJUb0ZvbGRlcihpbnRlcm5hbCksXG4gICAgdkZpbGVzOiBpbnRlcm5hbC52RmlsZXMubWFwKGludGVybmFsVkZpbGVUb1ZGaWxlKSxcbiAgICBwYXJlbnRGb2xkZXI6IGludGVybmFsLnBhcmVudEZvbGRlclxuICAgICAgPyBpbnRlcm5hbEZvbGRlclRvRm9sZGVyKGludGVybmFsLnBhcmVudEZvbGRlcilcbiAgICAgIDogbnVsbCxcbiAgICBzdWJmb2xkZXJzOiBpbnRlcm5hbC5zdWJmb2xkZXJzLm1hcChpbnRlcm5hbEZvbGRlclRvRm9sZGVyKVxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3FsRm9sZGVyVG9FeHRlcm5hbEZvbGRlckZ1bGwoXG4gIGdxbDogR1FMRm9sZGVyRnVsbCxcbiAga2V5UGFpcjogS2V5UGFpclxuKTogUHJvbWlzZTxGb2xkZXJGdWxsPiB7XG4gIHJldHVybiBpbnRlcm5hbEZvbGRlckZ1bGxUb0ZvbGRlckZ1bGwoXG4gICAgYXdhaXQgZ3FsRm9sZGVyRnVsbFRvSW50ZXJuYWxGb2xkZXJGdWxsKGdxbCwga2V5UGFpcilcbiAgKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbEZvbGRlclRvRXh0ZXJuYWwoXG4gIGdxbDogR1FMRm9sZGVyLFxuICBrZXlQYWlyOiBLZXlQYWlyXG4pOiBQcm9taXNlPEZvbGRlcj4ge1xuICByZXR1cm4gaW50ZXJuYWxGb2xkZXJUb0ZvbGRlcihhd2FpdCBncWxGb2xkZXJUb0ludGVybmFsKGdxbCwga2V5UGFpcikpO1xufVxuIl19
|
|
@@ -39,6 +39,7 @@ function _gqlVFileToInternal() {
|
|
|
39
39
|
throw "VFile " + gql.id + " doesn't have userApp";
|
|
40
40
|
|
|
41
41
|
case 4:
|
|
42
|
+
// console.dir(gql, { depth: Infinity })
|
|
42
43
|
nameKey = decryptCryptoBox(sodium.from_hex(gql.userApp.nameKey), gql.createdBy.user.publicKey, keyPair.privateKey);
|
|
43
44
|
_context.t0 = _objectSpread;
|
|
44
45
|
_context.t1 = _objectSpread({}, gql);
|
|
@@ -160,4 +161,4 @@ function _gqlVFileToExternal() {
|
|
|
160
161
|
}));
|
|
161
162
|
return _gqlVFileToExternal.apply(this, arguments);
|
|
162
163
|
}
|
|
163
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
164
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvY29udmVydC92RmlsZS50cyJdLCJuYW1lcyI6WyJ2RmlsZXNDYWNoZSIsImRlY3J5cHRDcnlwdG9Cb3giLCJkZWNyeXB0U2VjcmV0c3RyZWFtIiwic29kaXVtIiwiZ3FsRmlsZVRvSW50ZXJuYWwiLCJpbnRlcm5hbEZpbGVUb0ZpbGUiLCJncWxGb2xkZXJUb0ludGVybmFsIiwiaW50ZXJuYWxGb2xkZXJUb0ZvbGRlciIsImdxbFZGaWxlVG9JbnRlcm5hbCIsImdxbCIsImtleVBhaXIiLCJjdXJyZW50IiwiaWQiLCJ1c2VyQXBwIiwibmFtZUtleSIsImZyb21faGV4IiwiY3JlYXRlZEJ5IiwidXNlciIsInB1YmxpY0tleSIsInByaXZhdGVLZXkiLCJmaWxlbmFtZSIsInRvX3N0cmluZyIsInJpZ2h0cyIsImlzUm9vdCIsInRvX2hleCIsInVzZXJBcHBzIiwibWFwIiwidSIsIkRhdGUiLCJjcmVhdGVkQXQiLCJ1cGRhdGVkQXQiLCJkZWxldGVkQXQiLCJoaXN0b3J5IiwiZiIsInVzZXJzIiwiaW50ZXJuYWwiLCJmb2xkZXIiLCJpbnRlcm5hbFdpdGhGb2xkZXIiLCJzZXQiLCJpbnRlcm5hbFZGaWxlVG9WRmlsZSIsInZGaWxlIiwiZ3FsVkZpbGVUb0V4dGVybmFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLFNBQVNBLFdBQVQsUUFBNEIsZ0JBQTVCO0FBRUEsU0FBU0MsZ0JBQVQsUUFBaUMsdUJBQWpDO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0Msc0JBQXBDO0FBQ0EsU0FBU0MsTUFBVCxRQUF1QixpQkFBdkI7QUFTQSxTQUFTQyxpQkFBVCxFQUE0QkMsa0JBQTVCLFFBQXNELFdBQXREO0FBQ0EsU0FBU0MsbUJBQVQsRUFBOEJDLHNCQUE5QixRQUE0RCxhQUE1RDtBQUVBLGdCQUFzQkMsa0JBQXRCO0FBQUE7QUFBQTs7O2lGQUFPLGlCQUNMQyxHQURLLEVBRUxDLE9BRks7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FB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QTtBQStDTDtBQUNBLG1CQUFPRixRQUFRLENBQUNWLFFBQWhCO0FBRUF6QixZQUFBQSxXQUFXLENBQUNzQyxHQUFaLENBQWdCSCxRQUFRLENBQUN2QixFQUF6QixFQUE2QnVCLFFBQTdCO0FBbERLLDZDQW1ERUEsUUFuREY7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRzs7OztBQXNEUCxPQUFPLFNBQVNJLG9CQUFULENBQ0xKLFFBREssRUFFb0I7QUFDekIsTUFBTUssS0FBWSxtQ0FDYkwsUUFEYTtBQUVoQnhCLElBQUFBLE9BQU8sRUFBRU4sa0JBQWtCLENBQUM4QixRQUFRLENBQUN4QixPQUFWLENBRlg7QUFHaEJxQixJQUFBQSxPQUFPLEVBQUVHLFFBQVEsQ0FBQ0gsT0FBVCxDQUFpQk4sR0FBakIsQ0FBcUJyQixrQkFBckI7QUFITyxJQUFsQixDQUR5QixDQU16Qjs7O0FBQ0EsU0FBT21DLEtBQUssQ0FBQzFCLE9BQWI7O0FBRUEsTUFBSSxZQUFZcUIsUUFBaEIsRUFBMEI7QUFDeEIsMkNBQ0tBLFFBREw7QUFFRUMsTUFBQUEsTUFBTSxFQUFFN0Isc0JBQXNCLENBQUM0QixRQUFRLENBQUNDLE1BQVY7QUFGaEM7QUFJRDs7QUFFRCxTQUFPSSxLQUFQO0FBQ0Q7QUFFRCxnQkFBc0JDLGtCQUF0QjtBQUFBO0FBQUE7OztpRkFBTyxrQkFDTGhDLEdBREssRUFFTEMsT0FGSztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsMkJBSUU2QixvQkFKRjtBQUFBO0FBQUEsbUJBSTZCL0Isa0JBQWtCLENBQUNDLEdBQUQsRUFBTUMsT0FBTixDQUovQzs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZGaWxlc0NhY2hlIH0gZnJvbSBcIi4uLy4uL2NhY2hlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleVBhaXIgfSBmcm9tIFwiLi4vLi4vY3J5cHRvL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBkZWNyeXB0Q3J5cHRvQm94IH0gZnJvbSBcIi4uLy4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHsgZGVjcnlwdFNlY3JldHN0cmVhbSB9IGZyb20gXCIuLi8uLi9jcnlwdG8vZmlsZS5qc1wiO1xuaW1wb3J0IHsgc29kaXVtIH0gZnJvbSBcIi4uLy4uL3NvZGl1bS5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBHUUxWRmlsZSxcbiAgR1FMVkZpbGVXaXRoRm9sZGVyLFxuICBJbnRlcm5hbFZGaWxlLFxuICBJbnRlcm5hbFZGaWxlV2l0aEZvbGRlcixcbiAgVkZpbGUsXG4gIFZGaWxlV2l0aEZvbGRlclxufSBmcm9tIFwiLi4vdHlwZXMvaW5kZXguanNcIjtcbmltcG9ydCB7IGdxbEZpbGVUb0ludGVybmFsLCBpbnRlcm5hbEZpbGVUb0ZpbGUgfSBmcm9tIFwiLi9maWxlLmpzXCI7XG5pbXBvcnQgeyBncWxGb2xkZXJUb0ludGVybmFsLCBpbnRlcm5hbEZvbGRlclRvRm9sZGVyIH0gZnJvbSBcIi4vZm9sZGVyLmpzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBncWxWRmlsZVRvSW50ZXJuYWwoXG4gIGdxbDogR1FMVkZpbGUgfCBHUUxWRmlsZVdpdGhGb2xkZXIsXG4gIGtleVBhaXI6IEtleVBhaXJcbik6IFByb21pc2U8SW50ZXJuYWxWRmlsZSB8IEludGVybmFsVkZpbGVXaXRoRm9sZGVyPiB7XG4gIGlmICghZ3FsLmN1cnJlbnQpIHtcbiAgICB0aHJvdyBgVkZpbGUgJHtncWwuaWR9IGRvZXNuJ3QgaGF2ZSBjdXJyZW50IGZpbGVgO1xuICB9XG5cbiAgaWYgKCFncWwudXNlckFwcCkge1xuICAgIHRocm93IGBWRmlsZSAke2dxbC5pZH0gZG9lc24ndCBoYXZlIHVzZXJBcHBgO1xuICB9XG5cbiAgLy8gY29uc29sZS5kaXIoZ3FsLCB7IGRlcHRoOiBJbmZpbml0eSB9KVxuXG4gIGNvbnN0IG5hbWVLZXkgPSBkZWNyeXB0Q3J5cHRvQm94KFxuICAgIHNvZGl1bS5mcm9tX2hleChncWwudXNlckFwcC5uYW1lS2V5KSxcbiAgICBncWwuY3JlYXRlZEJ5LnVzZXIucHVibGljS2V5LFxuICAgIGtleVBhaXIucHJpdmF0ZUtleVxuICApO1xuICBjb25zdCBpbnRlcm5hbDogSW50ZXJuYWxWRmlsZSA9IHtcbiAgICAuLi5ncWwsXG4gICAgY3JlYXRlZEJ5OiBncWwuY3JlYXRlZEJ5LnVzZXIsXG4gICAgZmlsZW5hbWU6IHNvZGl1bS50b19zdHJpbmcoXG4gICAgICBhd2FpdCBkZWNyeXB0U2VjcmV0c3RyZWFtKG5hbWVLZXksIHNvZGl1bS5mcm9tX2hleChncWwuZmlsZW5hbWUpKVxuICAgICksXG4gICAgdXNlckFwcDoge1xuICAgICAgdXNlckFwcDogZ3FsLnVzZXJBcHAudXNlckFwcCxcbiAgICAgIHJpZ2h0czogZ3FsLnVzZXJBcHAucmlnaHRzLFxuICAgICAgaXNSb290OiBncWwudXNlckFwcC5pc1Jvb3QsXG4gICAgICBuYW1lS2V5OiBzb2RpdW0udG9faGV4KG5hbWVLZXkpXG4gICAgfSxcbiAgICB1c2VyczogZ3FsLnVzZXJBcHBzLm1hcCh1ID0+IFt1LnVzZXJBcHAudXNlciwgdS5yaWdodHNdKSxcbiAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKGdxbC5jcmVhdGVkQXQpLFxuICAgIHVwZGF0ZWRBdDogbmV3IERhdGUoZ3FsLnVwZGF0ZWRBdCksXG4gICAgZGVsZXRlZEF0OiBncWwuZGVsZXRlZEF0ID8gbmV3IERhdGUoZ3FsLmRlbGV0ZWRBdCkgOiBudWxsLFxuICAgIGN1cnJlbnQ6IGdxbEZpbGVUb0ludGVybmFsKGdxbC5jdXJyZW50LCBrZXlQYWlyKSxcbiAgICBoaXN0b3J5OiBncWwuaGlzdG9yeS5tYXAoZiA9PiBncWxGaWxlVG9JbnRlcm5hbChmLCBrZXlQYWlyKSlcbiAgfTtcbiAgaWYgKFwiZm9sZGVyXCIgaW4gZ3FsKSB7XG4gICAgY29uc3QgaW50ZXJuYWxXaXRoRm9sZGVyOiBJbnRlcm5hbFZGaWxlV2l0aEZvbGRlciA9IHtcbiAgICAgIC4uLmludGVybmFsLFxuICAgICAgZm9sZGVyOiBhd2FpdCBncWxGb2xkZXJUb0ludGVybmFsKGdxbC5mb2xkZXIsIGtleVBhaXIpXG4gICAgfTtcbiAgICB2RmlsZXNDYWNoZS5zZXQoaW50ZXJuYWwuaWQsIGludGVybmFsV2l0aEZvbGRlcik7XG4gICAgcmV0dXJuIGludGVybmFsV2l0aEZvbGRlcjtcbiAgfVxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgZGVsZXRlIGludGVybmFsLnVzZXJBcHBzO1xuXG4gIHZGaWxlc0NhY2hlLnNldChpbnRlcm5hbC5pZCwgaW50ZXJuYWwpO1xuICByZXR1cm4gaW50ZXJuYWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlcm5hbFZGaWxlVG9WRmlsZShcbiAgaW50ZXJuYWw6IEludGVybmFsVkZpbGUgfCBJbnRlcm5hbFZGaWxlV2l0aEZvbGRlclxuKTogVkZpbGUgfCBWRmlsZVdpdGhGb2xkZXIge1xuICBjb25zdCB2RmlsZTogVkZpbGUgPSB7XG4gICAgLi4uaW50ZXJuYWwsXG4gICAgY3VycmVudDogaW50ZXJuYWxGaWxlVG9GaWxlKGludGVybmFsLmN1cnJlbnQpLFxuICAgIGhpc3Rvcnk6IGludGVybmFsLmhpc3RvcnkubWFwKGludGVybmFsRmlsZVRvRmlsZSlcbiAgfTtcbiAgLy8gQHRzLWlnbm9yZVxuICBkZWxldGUgdkZpbGUubmFtZUtleTtcblxuICBpZiAoXCJmb2xkZXJcIiBpbiBpbnRlcm5hbCkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5pbnRlcm5hbCxcbiAgICAgIGZvbGRlcjogaW50ZXJuYWxGb2xkZXJUb0ZvbGRlcihpbnRlcm5hbC5mb2xkZXIpXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB2RmlsZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdxbFZGaWxlVG9FeHRlcm5hbChcbiAgZ3FsOiBHUUxWRmlsZSB8IEdRTFZGaWxlV2l0aEZvbGRlcixcbiAga2V5UGFpcjogS2V5UGFpclxuKTogUHJvbWlzZTxWRmlsZSB8IFZGaWxlV2l0aEZvbGRlcj4ge1xuICByZXR1cm4gaW50ZXJuYWxWRmlsZVRvVkZpbGUoYXdhaXQgZ3FsVkZpbGVUb0ludGVybmFsKGdxbCwga2V5UGFpcikpO1xufVxuIl19
|
package/lib/client/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { DownloadProgress } from "ky";
|
|
|
2
2
|
import type { CancelToken } from "axios";
|
|
3
3
|
import { BaseClient } from "../BaseClient.js";
|
|
4
4
|
import type { Progress } from "../crypto/file.js";
|
|
5
|
-
import type { ReceivedMail, SentMail, Folder, VFileWithFolder,
|
|
5
|
+
import type { ReceivedMail, SentMail, Folder, VFileWithFolder, FolderFull, UserAppSettings, File as SecrecyFile, WaitingReceivedMail, DraftMail, VFile, Mail } from "./types/index.js";
|
|
6
6
|
import type { KeyPair } from "../crypto/index.js";
|
|
7
7
|
import type { SecrecyEnv } from "./helpers.js";
|
|
8
8
|
import type { Rights } from "../zeus/index.js";
|
|
@@ -43,11 +43,11 @@ export declare class SecrecyClient extends BaseClient {
|
|
|
43
43
|
createFolder({ name, parentFolderId }: {
|
|
44
44
|
name: string;
|
|
45
45
|
parentFolderId?: string | null;
|
|
46
|
-
}): Promise<
|
|
46
|
+
}): Promise<FolderFull>;
|
|
47
47
|
folder({ id, deleted }?: {
|
|
48
48
|
id?: string | null | undefined;
|
|
49
49
|
deleted?: boolean | null | undefined;
|
|
50
|
-
}): Promise<
|
|
50
|
+
}): Promise<FolderFull | null>;
|
|
51
51
|
file({ id }: {
|
|
52
52
|
id: string;
|
|
53
53
|
}): Promise<SecrecyFile | null>;
|
|
@@ -78,7 +78,7 @@ export declare class SecrecyClient extends BaseClient {
|
|
|
78
78
|
name?: string | null | undefined;
|
|
79
79
|
isFavorite?: boolean | null | undefined;
|
|
80
80
|
deletedAt?: Date | null | undefined;
|
|
81
|
-
}): Promise<
|
|
81
|
+
}): Promise<FolderFull>;
|
|
82
82
|
createMail(data: NewMail, customMessage?: string | null | undefined): Promise<boolean>;
|
|
83
83
|
waitingReceivedMails(): Promise<WaitingReceivedMail[]>;
|
|
84
84
|
updateDraftMail(draftId: string, { body, subject, files, recipientsIds, replyTo }: Partial<NewMail>): Promise<DraftMail | null>;
|