@eluvio/elv-client-js 4.0.9 → 4.0.10

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 (40) hide show
  1. package/dist/ElvClient-min.js +11 -10
  2. package/dist/ElvClient-node-min.js +11 -10
  3. package/dist/ElvFrameClient-min.js +11 -10
  4. package/dist/ElvPermissionsClient-min.js +10 -9
  5. package/dist/ElvWalletClient-min.js +10 -9
  6. package/dist/ElvWalletClient-node-min.js +10 -9
  7. package/dist/src/AuthorizationClient.js +1556 -2077
  8. package/dist/src/ContentObjectVerification.js +134 -185
  9. package/dist/src/Crypto.js +224 -319
  10. package/dist/src/ElvClient.js +822 -1114
  11. package/dist/src/ElvWallet.js +64 -106
  12. package/dist/src/EthClient.js +719 -974
  13. package/dist/src/FrameClient.js +222 -318
  14. package/dist/src/HttpClient.js +112 -154
  15. package/dist/src/Id.js +1 -6
  16. package/dist/src/LogMessage.js +4 -8
  17. package/dist/src/PermissionsClient.js +973 -1271
  18. package/dist/src/RemoteSigner.js +161 -232
  19. package/dist/src/UserProfileClient.js +781 -1038
  20. package/dist/src/Utils.js +159 -299
  21. package/dist/src/Validation.js +2 -17
  22. package/dist/src/client/ABRPublishing.js +772 -942
  23. package/dist/src/client/AccessGroups.js +849 -1095
  24. package/dist/src/client/ContentAccess.js +3322 -4195
  25. package/dist/src/client/ContentManagement.js +1817 -2286
  26. package/dist/src/client/Contracts.js +468 -614
  27. package/dist/src/client/Files.js +1505 -1845
  28. package/dist/src/client/NFT.js +94 -116
  29. package/dist/src/client/NTP.js +326 -425
  30. package/dist/src/index.js +2 -5
  31. package/dist/src/walletClient/ClientMethods.js +1368 -1763
  32. package/dist/src/walletClient/Configuration.js +4 -2
  33. package/dist/src/walletClient/Notifications.js +98 -127
  34. package/dist/src/walletClient/Profile.js +184 -246
  35. package/dist/src/walletClient/Utils.js +76 -122
  36. package/dist/src/walletClient/index.js +1171 -1496
  37. package/package.json +1 -1
  38. package/src/client/ContentManagement.js +24 -29
  39. package/testScripts/CreateMezMonolithic.js +779 -0
  40. package/utilities/ListAccessGroups.js +34 -0
@@ -1,36 +1,29 @@
1
1
  var _defineProperty = require("@babel/runtime/helpers/defineProperty");
2
-
3
2
  var _regeneratorRuntime = require("@babel/runtime/regenerator");
4
-
5
3
  var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
6
-
7
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
-
9
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
-
11
6
  /**
12
7
  * Methods for accessing and managing access groups
13
8
  *
14
9
  * @module ElvClient/Files+Parts
15
10
  */
16
- var Utils = require("../Utils");
17
11
 
12
+ var Utils = require("../Utils");
18
13
  var fs;
19
-
20
14
  if (Utils.Platform() === Utils.PLATFORM_NODE) {
21
15
  // Define Response in node
22
16
  // eslint-disable-next-line no-global-assign
23
17
  globalThis.Response = require("node-fetch").Response;
24
18
  fs = require("fs");
25
19
  }
26
-
27
20
  var UrlJoin = require("url-join");
28
-
29
21
  var _require = require("../Validation"),
30
- ValidatePresence = _require.ValidatePresence,
31
- ValidateWriteToken = _require.ValidateWriteToken,
32
- ValidatePartHash = _require.ValidatePartHash,
33
- ValidateParameters = _require.ValidateParameters;
22
+ ValidatePresence = _require.ValidatePresence,
23
+ ValidateWriteToken = _require.ValidateWriteToken,
24
+ ValidatePartHash = _require.ValidatePartHash,
25
+ ValidateParameters = _require.ValidateParameters;
26
+
34
27
  /* Files */
35
28
 
36
29
  /**
@@ -43,59 +36,51 @@ var _require = require("../Validation"),
43
36
  * @param {string=} objectId - ID of the object
44
37
  * @param {string=} versionHash - Hash of the object version - if not specified, most recent version will be used
45
38
  */
46
-
47
-
48
39
  exports.ListFiles = /*#__PURE__*/function () {
49
40
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
50
41
  var libraryId, objectId, versionHash, path;
51
42
  return _regeneratorRuntime.wrap(function _callee$(_context) {
52
- while (1) {
53
- switch (_context.prev = _context.next) {
54
- case 0:
55
- libraryId = _ref.libraryId, objectId = _ref.objectId, versionHash = _ref.versionHash;
56
- ValidateParameters({
57
- libraryId: libraryId,
58
- objectId: objectId,
59
- versionHash: versionHash
60
- });
61
-
62
- if (versionHash) {
63
- objectId = this.utils.DecodeVersionHash(versionHash).objectId;
64
- }
65
-
66
- path = UrlJoin("q", versionHash || objectId, "meta", "files");
67
- _context.t0 = this.utils;
68
- _context.t1 = this.HttpClient;
69
- _context.next = 8;
70
- return this.authClient.AuthorizationHeader({
71
- libraryId: libraryId,
72
- objectId: objectId,
73
- versionHash: versionHash
74
- });
75
-
76
- case 8:
77
- _context.t2 = _context.sent;
78
- _context.t3 = path;
79
- _context.t4 = {
80
- headers: _context.t2,
81
- method: "GET",
82
- path: _context.t3
83
- };
84
- _context.t5 = _context.t1.Request.call(_context.t1, _context.t4);
85
- return _context.abrupt("return", _context.t0.ResponseToJson.call(_context.t0, _context.t5));
86
-
87
- case 13:
88
- case "end":
89
- return _context.stop();
90
- }
43
+ while (1) switch (_context.prev = _context.next) {
44
+ case 0:
45
+ libraryId = _ref.libraryId, objectId = _ref.objectId, versionHash = _ref.versionHash;
46
+ ValidateParameters({
47
+ libraryId: libraryId,
48
+ objectId: objectId,
49
+ versionHash: versionHash
50
+ });
51
+ if (versionHash) {
52
+ objectId = this.utils.DecodeVersionHash(versionHash).objectId;
53
+ }
54
+ path = UrlJoin("q", versionHash || objectId, "meta", "files");
55
+ _context.t0 = this.utils;
56
+ _context.t1 = this.HttpClient;
57
+ _context.next = 8;
58
+ return this.authClient.AuthorizationHeader({
59
+ libraryId: libraryId,
60
+ objectId: objectId,
61
+ versionHash: versionHash
62
+ });
63
+ case 8:
64
+ _context.t2 = _context.sent;
65
+ _context.t3 = path;
66
+ _context.t4 = {
67
+ headers: _context.t2,
68
+ method: "GET",
69
+ path: _context.t3
70
+ };
71
+ _context.t5 = _context.t1.Request.call(_context.t1, _context.t4);
72
+ return _context.abrupt("return", _context.t0.ResponseToJson.call(_context.t0, _context.t5));
73
+ case 13:
74
+ case "end":
75
+ return _context.stop();
91
76
  }
92
77
  }, _callee, this);
93
78
  }));
94
-
95
79
  return function (_x) {
96
80
  return _ref2.apply(this, arguments);
97
81
  };
98
82
  }();
83
+
99
84
  /**
100
85
  * Copy/reference files from S3 to a content object.
101
86
  *
@@ -130,243 +115,202 @@ exports.ListFiles = /*#__PURE__*/function () {
130
115
  * - Arguments (copy): { done: boolean, uploaded: number, total: number, uploadedFiles: number, totalFiles: number, fileStatus: Object }
131
116
  * - Arguments (reference): { done: boolean, uploadedFiles: number, totalFiles: number }
132
117
  */
133
-
134
-
135
118
  exports.UploadFilesFromS3 = /*#__PURE__*/function () {
136
119
  var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3) {
137
120
  var libraryId, objectId, writeToken, region, bucket, fileInfo, accessKey, secret, signedUrl, _ref3$encryption, encryption, _ref3$copy, copy, callback, s3prefixRegex, i, fileSourcePath, s3prefixMatch, bucketName, encryption_key, conk, cloudCredentials, defaults, ops, _yield$this$CreateFil, id, status, done, progress, _progress;
138
-
139
121
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
140
- while (1) {
141
- switch (_context2.prev = _context2.next) {
142
- case 0:
143
- libraryId = _ref3.libraryId, objectId = _ref3.objectId, writeToken = _ref3.writeToken, region = _ref3.region, bucket = _ref3.bucket, fileInfo = _ref3.fileInfo, accessKey = _ref3.accessKey, secret = _ref3.secret, signedUrl = _ref3.signedUrl, _ref3$encryption = _ref3.encryption, encryption = _ref3$encryption === void 0 ? "none" : _ref3$encryption, _ref3$copy = _ref3.copy, copy = _ref3$copy === void 0 ? false : _ref3$copy, callback = _ref3.callback;
144
- ValidateParameters({
145
- libraryId: libraryId,
146
- objectId: objectId
147
- });
148
- ValidateWriteToken(writeToken);
149
- s3prefixRegex = /^s3:\/\/([^/]+)\//i; // for matching and extracting bucket name when full s3:// path is specified
150
- // if fileInfo source paths start with s3://bucketName/, check against bucket arg passed in, and strip
151
-
152
- i = 0;
153
-
154
- case 5:
155
- if (!(i < fileInfo.length)) {
156
- _context2.next = 18;
157
- break;
158
- }
159
-
160
- fileSourcePath = fileInfo[i].source;
161
- s3prefixMatch = s3prefixRegex.exec(fileSourcePath);
162
-
163
- if (!s3prefixMatch) {
164
- _context2.next = 15;
165
- break;
166
- }
167
-
168
- bucketName = s3prefixMatch[1];
169
-
170
- if (!(bucketName !== bucket)) {
171
- _context2.next = 14;
172
- break;
173
- }
174
-
175
- throw Error("Full S3 file path \"" + fileSourcePath + "\" specified, but does not match provided bucket name '" + bucket + "'");
176
-
177
- case 14:
178
- // strip prefix
179
- fileInfo[i].source = fileSourcePath.replace(s3prefixRegex, "");
180
-
181
- case 15:
182
- i++;
183
- _context2.next = 5;
122
+ while (1) switch (_context2.prev = _context2.next) {
123
+ case 0:
124
+ libraryId = _ref3.libraryId, objectId = _ref3.objectId, writeToken = _ref3.writeToken, region = _ref3.region, bucket = _ref3.bucket, fileInfo = _ref3.fileInfo, accessKey = _ref3.accessKey, secret = _ref3.secret, signedUrl = _ref3.signedUrl, _ref3$encryption = _ref3.encryption, encryption = _ref3$encryption === void 0 ? "none" : _ref3$encryption, _ref3$copy = _ref3.copy, copy = _ref3$copy === void 0 ? false : _ref3$copy, callback = _ref3.callback;
125
+ ValidateParameters({
126
+ libraryId: libraryId,
127
+ objectId: objectId
128
+ });
129
+ ValidateWriteToken(writeToken);
130
+ s3prefixRegex = /^s3:\/\/([^/]+)\//i; // for matching and extracting bucket name when full s3:// path is specified
131
+ // if fileInfo source paths start with s3://bucketName/, check against bucket arg passed in, and strip
132
+ i = 0;
133
+ case 5:
134
+ if (!(i < fileInfo.length)) {
135
+ _context2.next = 18;
184
136
  break;
185
-
186
- case 18:
187
- this.Log("Uploading files from S3: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
188
-
189
- if (!(encryption === "cgck")) {
190
- _context2.next = 25;
191
- break;
192
- }
193
-
194
- _context2.next = 22;
195
- return this.EncryptionConk({
196
- libraryId: libraryId,
197
- objectId: objectId,
198
- writeToken: writeToken
199
- });
200
-
201
- case 22:
202
- conk = _context2.sent;
203
- conk = _objectSpread(_objectSpread({}, conk), {}, {
204
- secret_key: ""
205
- });
206
- encryption_key = "kp__".concat(this.utils.B58(Buffer.from(JSON.stringify(conk))));
207
-
208
- case 25:
137
+ }
138
+ fileSourcePath = fileInfo[i].source;
139
+ s3prefixMatch = s3prefixRegex.exec(fileSourcePath);
140
+ if (!s3prefixMatch) {
141
+ _context2.next = 15;
142
+ break;
143
+ }
144
+ bucketName = s3prefixMatch[1];
145
+ if (!(bucketName !== bucket)) {
146
+ _context2.next = 14;
147
+ break;
148
+ }
149
+ throw Error("Full S3 file path \"" + fileSourcePath + "\" specified, but does not match provided bucket name '" + bucket + "'");
150
+ case 14:
151
+ // strip prefix
152
+ fileInfo[i].source = fileSourcePath.replace(s3prefixRegex, "");
153
+ case 15:
154
+ i++;
155
+ _context2.next = 5;
156
+ break;
157
+ case 18:
158
+ this.Log("Uploading files from S3: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
159
+ if (!(encryption === "cgck")) {
160
+ _context2.next = 25;
161
+ break;
162
+ }
163
+ _context2.next = 22;
164
+ return this.EncryptionConk({
165
+ libraryId: libraryId,
166
+ objectId: objectId,
167
+ writeToken: writeToken
168
+ });
169
+ case 22:
170
+ conk = _context2.sent;
171
+ conk = _objectSpread(_objectSpread({}, conk), {}, {
172
+ secret_key: ""
173
+ });
174
+ encryption_key = "kp__".concat(this.utils.B58(Buffer.from(JSON.stringify(conk))));
175
+ case 25:
176
+ cloudCredentials = {
177
+ access_key_id: accessKey,
178
+ secret_access_key: secret
179
+ };
180
+ if (signedUrl) {
209
181
  cloudCredentials = {
210
- access_key_id: accessKey,
211
- secret_access_key: secret
212
- };
213
-
214
- if (signedUrl) {
215
- cloudCredentials = {
216
- signed_url: signedUrl
217
- };
218
- }
219
-
220
- defaults = {
221
- encryption_key: encryption_key,
222
- access: {
223
- protocol: "s3",
224
- platform: "aws",
225
- path: bucket,
226
- storage_endpoint: {
227
- region: region
228
- },
229
- cloud_credentials: cloudCredentials
230
- }
182
+ signed_url: signedUrl
231
183
  };
232
- ops = fileInfo.map(function (info) {
233
- if (copy) {
234
- return {
235
- op: "ingest-copy",
236
- path: info.path,
237
- encryption: {
238
- scheme: encryption === "cgck" ? "cgck" : "none"
239
- },
240
- ingest: {
241
- type: "key",
242
- path: info.source
243
- }
244
- };
245
- } else {
246
- return {
247
- op: "add-reference",
248
- path: info.path,
249
- reference: {
250
- type: "key",
251
- path: info.source
252
- }
253
- };
254
- }
255
- }); // eslint-disable-next-line no-unused-vars
256
-
257
- _context2.next = 31;
258
- return this.CreateFileUploadJob({
259
- libraryId: libraryId,
260
- objectId: objectId,
261
- writeToken: writeToken,
262
- ops: ops,
263
- defaults: defaults
264
- });
265
-
266
- case 31:
267
- _yield$this$CreateFil = _context2.sent;
268
- id = _yield$this$CreateFil.id;
269
-
270
- case 33:
271
- if (!true) {
272
- _context2.next = 56;
273
- break;
274
- }
275
-
276
- _context2.next = 36;
277
- return new Promise(function (resolve) {
278
- return setTimeout(resolve, 1000);
279
- });
280
-
281
- case 36:
282
- _context2.next = 38;
283
- return this.UploadStatus({
284
- libraryId: libraryId,
285
- objectId: objectId,
286
- writeToken: writeToken,
287
- uploadId: id
288
- });
289
-
290
- case 38:
291
- status = _context2.sent;
292
-
293
- if (!(status.errors && status.errors.length > 1)) {
294
- _context2.next = 43;
295
- break;
296
- }
297
-
298
- throw status.errors.join("\n");
299
-
300
- case 43:
301
- if (!status.error) {
302
- _context2.next = 48;
303
- break;
304
- }
305
-
306
- this.Log("S3 file upload failed:\n".concat(JSON.stringify(status, null, 2)));
307
- throw status.error;
308
-
309
- case 48:
310
- if (!(status.status.toLowerCase() === "failed")) {
311
- _context2.next = 50;
312
- break;
184
+ }
185
+ defaults = {
186
+ encryption_key: encryption_key,
187
+ access: {
188
+ protocol: "s3",
189
+ platform: "aws",
190
+ path: bucket,
191
+ storage_endpoint: {
192
+ region: region
193
+ },
194
+ cloud_credentials: cloudCredentials
313
195
  }
314
-
315
- throw "File upload failed";
316
-
317
- case 50:
318
- done = false;
319
-
196
+ };
197
+ ops = fileInfo.map(function (info) {
320
198
  if (copy) {
321
- done = status.ingest_copy.done;
322
-
323
- if (callback) {
324
- progress = status.ingest_copy.progress;
325
- callback({
326
- done: done,
327
- uploaded: progress.bytes.completed,
328
- total: progress.bytes.total,
329
- uploadedFiles: progress.files.completed,
330
- totalFiles: progress.files.total,
331
- fileStatus: progress.files.details
332
- });
333
- }
199
+ return {
200
+ op: "ingest-copy",
201
+ path: info.path,
202
+ encryption: {
203
+ scheme: encryption === "cgck" ? "cgck" : "none"
204
+ },
205
+ ingest: {
206
+ type: "key",
207
+ path: info.source
208
+ }
209
+ };
334
210
  } else {
335
- done = status.add_reference.done;
336
-
337
- if (callback) {
338
- _progress = status.add_reference.progress;
339
- callback({
340
- done: done,
341
- uploadedFiles: _progress.completed,
342
- totalFiles: _progress.total
343
- });
344
- }
211
+ return {
212
+ op: "add-reference",
213
+ path: info.path,
214
+ reference: {
215
+ type: "key",
216
+ path: info.source
217
+ }
218
+ };
345
219
  }
346
-
347
- if (!done) {
348
- _context2.next = 54;
349
- break;
220
+ }); // eslint-disable-next-line no-unused-vars
221
+ _context2.next = 31;
222
+ return this.CreateFileUploadJob({
223
+ libraryId: libraryId,
224
+ objectId: objectId,
225
+ writeToken: writeToken,
226
+ ops: ops,
227
+ defaults: defaults
228
+ });
229
+ case 31:
230
+ _yield$this$CreateFil = _context2.sent;
231
+ id = _yield$this$CreateFil.id;
232
+ case 33:
233
+ if (!true) {
234
+ _context2.next = 56;
235
+ break;
236
+ }
237
+ _context2.next = 36;
238
+ return new Promise(function (resolve) {
239
+ return setTimeout(resolve, 1000);
240
+ });
241
+ case 36:
242
+ _context2.next = 38;
243
+ return this.UploadStatus({
244
+ libraryId: libraryId,
245
+ objectId: objectId,
246
+ writeToken: writeToken,
247
+ uploadId: id
248
+ });
249
+ case 38:
250
+ status = _context2.sent;
251
+ if (!(status.errors && status.errors.length > 1)) {
252
+ _context2.next = 43;
253
+ break;
254
+ }
255
+ throw status.errors.join("\n");
256
+ case 43:
257
+ if (!status.error) {
258
+ _context2.next = 48;
259
+ break;
260
+ }
261
+ this.Log("S3 file upload failed:\n".concat(JSON.stringify(status, null, 2)));
262
+ throw status.error;
263
+ case 48:
264
+ if (!(status.status.toLowerCase() === "failed")) {
265
+ _context2.next = 50;
266
+ break;
267
+ }
268
+ throw "File upload failed";
269
+ case 50:
270
+ done = false;
271
+ if (copy) {
272
+ done = status.ingest_copy.done;
273
+ if (callback) {
274
+ progress = status.ingest_copy.progress;
275
+ callback({
276
+ done: done,
277
+ uploaded: progress.bytes.completed,
278
+ total: progress.bytes.total,
279
+ uploadedFiles: progress.files.completed,
280
+ totalFiles: progress.files.total,
281
+ fileStatus: progress.files.details
282
+ });
350
283
  }
351
-
352
- return _context2.abrupt("break", 56);
353
-
354
- case 54:
355
- _context2.next = 33;
284
+ } else {
285
+ done = status.add_reference.done;
286
+ if (callback) {
287
+ _progress = status.add_reference.progress;
288
+ callback({
289
+ done: done,
290
+ uploadedFiles: _progress.completed,
291
+ totalFiles: _progress.total
292
+ });
293
+ }
294
+ }
295
+ if (!done) {
296
+ _context2.next = 54;
356
297
  break;
357
-
358
- case 56:
359
- case "end":
360
- return _context2.stop();
361
- }
298
+ }
299
+ return _context2.abrupt("break", 56);
300
+ case 54:
301
+ _context2.next = 33;
302
+ break;
303
+ case 56:
304
+ case "end":
305
+ return _context2.stop();
362
306
  }
363
307
  }, _callee2, this);
364
308
  }));
365
-
366
309
  return function (_x2) {
367
310
  return _ref4.apply(this, arguments);
368
311
  };
369
312
  }();
313
+
370
314
  /**
371
315
  * Upload files to a content object.
372
316
  *
@@ -393,629 +337,530 @@ exports.UploadFilesFromS3 = /*#__PURE__*/function () {
393
337
  * @param {function=} callback - If specified, will be called after each job segment is finished with the current upload progress
394
338
  * - Format: {"filename1": {uploaded: number, total: number}, ...}
395
339
  */
396
-
397
-
398
340
  exports.UploadFiles = /*#__PURE__*/function () {
399
341
  var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref5) {
400
342
  var _this = this;
401
-
402
343
  var libraryId, objectId, writeToken, fileInfo, _ref5$encryption, encryption, callback, conk, progress, fileDataMap, i, entry, _yield$this$CreateFil2, id, jobs, bufferSize, jobSpecs, prepared, uploaded, PrepareJobs, UploadJob, rateTestJobs, rates, j, start, elapsed, size, averageRate, concurrentUploads;
403
-
404
344
  return _regeneratorRuntime.wrap(function _callee6$(_context6) {
405
- while (1) {
406
- switch (_context6.prev = _context6.next) {
407
- case 0:
408
- libraryId = _ref5.libraryId, objectId = _ref5.objectId, writeToken = _ref5.writeToken, fileInfo = _ref5.fileInfo, _ref5$encryption = _ref5.encryption, encryption = _ref5$encryption === void 0 ? "none" : _ref5$encryption, callback = _ref5.callback;
409
- ValidateParameters({
410
- libraryId: libraryId,
411
- objectId: objectId
412
- });
413
- ValidateWriteToken(writeToken);
414
- this.Log("Uploading files: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
415
-
416
- if (!(encryption === "cgck")) {
417
- _context6.next = 8;
418
- break;
419
- }
420
-
421
- _context6.next = 7;
422
- return this.EncryptionConk({
423
- libraryId: libraryId,
424
- objectId: objectId,
425
- writeToken: writeToken
345
+ while (1) switch (_context6.prev = _context6.next) {
346
+ case 0:
347
+ libraryId = _ref5.libraryId, objectId = _ref5.objectId, writeToken = _ref5.writeToken, fileInfo = _ref5.fileInfo, _ref5$encryption = _ref5.encryption, encryption = _ref5$encryption === void 0 ? "none" : _ref5$encryption, callback = _ref5.callback;
348
+ ValidateParameters({
349
+ libraryId: libraryId,
350
+ objectId: objectId
351
+ });
352
+ ValidateWriteToken(writeToken);
353
+ this.Log("Uploading files: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
354
+ if (!(encryption === "cgck")) {
355
+ _context6.next = 8;
356
+ break;
357
+ }
358
+ _context6.next = 7;
359
+ return this.EncryptionConk({
360
+ libraryId: libraryId,
361
+ objectId: objectId,
362
+ writeToken: writeToken
363
+ });
364
+ case 7:
365
+ conk = _context6.sent;
366
+ case 8:
367
+ // Extract file data into easily accessible hash while removing the data from the fileinfo for upload job creation
368
+ progress = {};
369
+ fileDataMap = {};
370
+ for (i = 0; i < fileInfo.length; i++) {
371
+ entry = _objectSpread(_objectSpread({}, fileInfo[i]), {}, {
372
+ data: undefined
426
373
  });
427
-
428
- case 7:
429
- conk = _context6.sent;
430
-
431
- case 8:
432
- // Extract file data into easily accessible hash while removing the data from the fileinfo for upload job creation
433
- progress = {};
434
- fileDataMap = {};
435
-
436
- for (i = 0; i < fileInfo.length; i++) {
437
- entry = _objectSpread(_objectSpread({}, fileInfo[i]), {}, {
438
- data: undefined
439
- });
440
- entry.path = entry.path.replace(/^\/+/, "");
441
-
442
- if (encryption === "cgck") {
443
- entry.encryption = {
444
- scheme: "cgck"
445
- };
446
- }
447
-
448
- fileDataMap[entry.path] = fileInfo[i].data;
449
- delete entry.data;
450
- entry.type = "file";
451
- progress[entry.path] = {
452
- uploaded: 0,
453
- total: entry.size
374
+ entry.path = entry.path.replace(/^\/+/, "");
375
+ if (encryption === "cgck") {
376
+ entry.encryption = {
377
+ scheme: "cgck"
454
378
  };
455
- fileInfo[i] = entry;
456
379
  }
457
-
458
- this.Log(fileInfo);
459
-
460
- if (callback) {
461
- callback(progress);
462
- }
463
-
464
- _context6.next = 15;
465
- return this.CreateFileUploadJob({
466
- libraryId: libraryId,
467
- objectId: objectId,
468
- writeToken: writeToken,
469
- ops: fileInfo,
470
- encryption: encryption
471
- });
472
-
473
- case 15:
474
- _yield$this$CreateFil2 = _context6.sent;
475
- id = _yield$this$CreateFil2.id;
476
- jobs = _yield$this$CreateFil2.jobs;
477
- this.Log("Upload ID: ".concat(id));
478
- this.Log(jobs); // How far encryption can get ahead of upload
479
-
480
- bufferSize = 100 * 1024 * 1024;
481
- jobSpecs = [];
482
- prepared = 0;
483
- uploaded = 0; // Insert the data to upload into the job spec, encrypting if necessary
484
-
485
- PrepareJobs = /*#__PURE__*/function () {
486
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
487
- var j, jobId, job, f, _fileInfo, data;
488
-
489
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
490
- while (1) {
491
- switch (_context3.prev = _context3.next) {
492
- case 0:
493
- j = 0;
494
-
495
- case 1:
496
- if (!(j < jobs.length)) {
497
- _context3.next = 31;
498
- break;
499
- }
500
-
501
- case 2:
502
- if (!(prepared - uploaded > bufferSize)) {
503
- _context3.next = 7;
504
- break;
505
- }
506
-
507
- _context3.next = 5;
508
- return new Promise(function (resolve) {
509
- return setTimeout(resolve, 500);
510
- });
511
-
512
- case 5:
513
- _context3.next = 2;
514
- break;
515
-
516
- case 7:
517
- // Retrieve job info
518
- jobId = jobs[j];
519
- _context3.next = 10;
520
- return _this.UploadJobStatus({
521
- libraryId: libraryId,
522
- objectId: objectId,
523
- writeToken: writeToken,
524
- uploadId: id,
525
- jobId: jobId
526
- });
527
-
528
- case 10:
529
- job = _context3.sent;
530
- f = 0;
531
-
532
- case 12:
533
- if (!(f < job.files.length)) {
534
- _context3.next = 25;
535
- break;
536
- }
537
-
538
- _fileInfo = job.files[f];
539
- data = void 0;
540
-
541
- if (typeof fileDataMap[_fileInfo.path] === "number") {
542
- // File descriptor - Read data from file
543
- data = Buffer.alloc(_fileInfo.len);
544
- fs.readSync(fileDataMap[_fileInfo.path], data, 0, _fileInfo.len, _fileInfo.off);
545
- } else {
546
- // Full data - Slice requested chunk
547
- data = fileDataMap[_fileInfo.path].slice(_fileInfo.off, _fileInfo.off + _fileInfo.len);
548
- }
549
-
550
- if (!(encryption === "cgck")) {
551
- _context3.next = 20;
552
- break;
553
- }
554
-
555
- _context3.next = 19;
556
- return _this.Crypto.Encrypt(conk, data);
557
-
558
- case 19:
559
- data = _context3.sent;
560
-
561
- case 20:
562
- job.files[f].data = data;
563
- prepared += _fileInfo.len;
564
-
565
- case 22:
566
- f++;
567
- _context3.next = 12;
568
- break;
569
-
570
- case 25:
571
- jobSpecs[j] = job; // Wait for a bit to let upload start
572
-
573
- _context3.next = 28;
574
- return new Promise(function (resolve) {
575
- return setTimeout(resolve, 50);
576
- });
577
-
578
- case 28:
579
- j++;
580
- _context3.next = 1;
581
- break;
582
-
583
- case 31:
584
- case "end":
585
- return _context3.stop();
380
+ fileDataMap[entry.path] = fileInfo[i].data;
381
+ delete entry.data;
382
+ entry.type = "file";
383
+ progress[entry.path] = {
384
+ uploaded: 0,
385
+ total: entry.size
386
+ };
387
+ fileInfo[i] = entry;
388
+ }
389
+ this.Log(fileInfo);
390
+ if (callback) {
391
+ callback(progress);
392
+ }
393
+ _context6.next = 15;
394
+ return this.CreateFileUploadJob({
395
+ libraryId: libraryId,
396
+ objectId: objectId,
397
+ writeToken: writeToken,
398
+ ops: fileInfo,
399
+ encryption: encryption
400
+ });
401
+ case 15:
402
+ _yield$this$CreateFil2 = _context6.sent;
403
+ id = _yield$this$CreateFil2.id;
404
+ jobs = _yield$this$CreateFil2.jobs;
405
+ this.Log("Upload ID: ".concat(id));
406
+ this.Log(jobs);
407
+
408
+ // How far encryption can get ahead of upload
409
+ bufferSize = 100 * 1024 * 1024;
410
+ jobSpecs = [];
411
+ prepared = 0;
412
+ uploaded = 0; // Insert the data to upload into the job spec, encrypting if necessary
413
+ PrepareJobs = /*#__PURE__*/function () {
414
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
415
+ var j, jobId, job, f, _fileInfo, data;
416
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
417
+ while (1) switch (_context3.prev = _context3.next) {
418
+ case 0:
419
+ j = 0;
420
+ case 1:
421
+ if (!(j < jobs.length)) {
422
+ _context3.next = 31;
423
+ break;
586
424
  }
587
- }
588
- }, _callee3);
589
- }));
590
-
591
- return function PrepareJobs() {
592
- return _ref7.apply(this, arguments);
593
- };
594
- }();
595
-
596
- UploadJob = /*#__PURE__*/function () {
597
- var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(jobId, j) {
598
- var jobSpec, files, f, _fileInfo2;
599
-
600
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
601
- while (1) {
602
- switch (_context4.prev = _context4.next) {
603
- case 0:
604
- if (jobSpecs[j]) {
605
- _context4.next = 5;
606
- break;
607
- }
608
-
609
- _context4.next = 3;
610
- return new Promise(function (resolve) {
611
- return setTimeout(resolve, 500);
612
- });
613
-
614
- case 3:
615
- _context4.next = 0;
616
- break;
617
-
618
- case 5:
619
- jobSpec = jobSpecs[j];
620
- files = jobSpec.files; // Upload each item
621
-
622
- f = 0;
623
-
624
- case 8:
625
- if (!(f < files.length)) {
626
- _context4.next = 18;
627
- break;
628
- }
629
-
630
- _fileInfo2 = files[f];
631
- _context4.next = 12;
632
- return _this.UploadFileData({
633
- libraryId: libraryId,
634
- objectId: objectId,
635
- writeToken: writeToken,
636
- uploadId: id,
637
- jobId: jobId,
638
- fileData: _fileInfo2.data
639
- });
640
-
641
- case 12:
642
- delete jobSpecs[j].files[f].data;
643
- uploaded += _fileInfo2.len;
644
-
645
- if (callback) {
646
- progress[_fileInfo2.path] = _objectSpread(_objectSpread({}, progress[_fileInfo2.path]), {}, {
647
- uploaded: progress[_fileInfo2.path].uploaded + _fileInfo2.len
648
- });
649
- callback(progress);
650
- }
651
-
652
- case 15:
653
- f++;
654
- _context4.next = 8;
655
- break;
656
-
657
- case 18:
658
- case "end":
659
- return _context4.stop();
425
+ case 2:
426
+ if (!(prepared - uploaded > bufferSize)) {
427
+ _context3.next = 7;
428
+ break;
660
429
  }
661
- }
662
- }, _callee4);
663
- }));
664
-
665
- return function UploadJob(_x4, _x5) {
666
- return _ref8.apply(this, arguments);
667
- };
668
- }(); // Preparing jobs is done asyncronously
669
-
670
-
671
- PrepareJobs(); // Upload the first several chunks in sequence, to determine average upload rate
672
-
673
- rateTestJobs = Math.min(3, jobs.length);
674
- rates = [];
675
- j = 0;
676
-
677
- case 30:
678
- if (!(j < rateTestJobs)) {
679
- _context6.next = 40;
680
- break;
681
- }
682
-
683
- start = new Date().getTime();
684
- _context6.next = 34;
685
- return UploadJob(jobs[j], j);
686
-
687
- case 34:
688
- elapsed = (new Date().getTime() - start) / 1000;
689
- size = jobSpecs[j].files.map(function (file) {
690
- return file.len;
691
- }).reduce(function (length, total) {
692
- return length + total;
693
- }, 0);
694
- rates.push(size / elapsed / (1024 * 1024));
695
-
696
- case 37:
697
- j++;
698
- _context6.next = 30;
430
+ _context3.next = 5;
431
+ return new Promise(function (resolve) {
432
+ return setTimeout(resolve, 500);
433
+ });
434
+ case 5:
435
+ _context3.next = 2;
436
+ break;
437
+ case 7:
438
+ // Retrieve job info
439
+ jobId = jobs[j];
440
+ _context3.next = 10;
441
+ return _this.UploadJobStatus({
442
+ libraryId: libraryId,
443
+ objectId: objectId,
444
+ writeToken: writeToken,
445
+ uploadId: id,
446
+ jobId: jobId
447
+ });
448
+ case 10:
449
+ job = _context3.sent;
450
+ f = 0;
451
+ case 12:
452
+ if (!(f < job.files.length)) {
453
+ _context3.next = 25;
454
+ break;
455
+ }
456
+ _fileInfo = job.files[f];
457
+ data = void 0;
458
+ if (typeof fileDataMap[_fileInfo.path] === "number") {
459
+ // File descriptor - Read data from file
460
+ data = Buffer.alloc(_fileInfo.len);
461
+ fs.readSync(fileDataMap[_fileInfo.path], data, 0, _fileInfo.len, _fileInfo.off);
462
+ } else {
463
+ // Full data - Slice requested chunk
464
+ data = fileDataMap[_fileInfo.path].slice(_fileInfo.off, _fileInfo.off + _fileInfo.len);
465
+ }
466
+ if (!(encryption === "cgck")) {
467
+ _context3.next = 20;
468
+ break;
469
+ }
470
+ _context3.next = 19;
471
+ return _this.Crypto.Encrypt(conk, data);
472
+ case 19:
473
+ data = _context3.sent;
474
+ case 20:
475
+ job.files[f].data = data;
476
+ prepared += _fileInfo.len;
477
+ case 22:
478
+ f++;
479
+ _context3.next = 12;
480
+ break;
481
+ case 25:
482
+ jobSpecs[j] = job;
483
+
484
+ // Wait for a bit to let upload start
485
+ _context3.next = 28;
486
+ return new Promise(function (resolve) {
487
+ return setTimeout(resolve, 50);
488
+ });
489
+ case 28:
490
+ j++;
491
+ _context3.next = 1;
492
+ break;
493
+ case 31:
494
+ case "end":
495
+ return _context3.stop();
496
+ }
497
+ }, _callee3);
498
+ }));
499
+ return function PrepareJobs() {
500
+ return _ref7.apply(this, arguments);
501
+ };
502
+ }();
503
+ UploadJob = /*#__PURE__*/function () {
504
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(jobId, j) {
505
+ var jobSpec, files, f, _fileInfo2;
506
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
507
+ while (1) switch (_context4.prev = _context4.next) {
508
+ case 0:
509
+ if (jobSpecs[j]) {
510
+ _context4.next = 5;
511
+ break;
512
+ }
513
+ _context4.next = 3;
514
+ return new Promise(function (resolve) {
515
+ return setTimeout(resolve, 500);
516
+ });
517
+ case 3:
518
+ _context4.next = 0;
519
+ break;
520
+ case 5:
521
+ jobSpec = jobSpecs[j];
522
+ files = jobSpec.files; // Upload each item
523
+ f = 0;
524
+ case 8:
525
+ if (!(f < files.length)) {
526
+ _context4.next = 18;
527
+ break;
528
+ }
529
+ _fileInfo2 = files[f];
530
+ _context4.next = 12;
531
+ return _this.UploadFileData({
532
+ libraryId: libraryId,
533
+ objectId: objectId,
534
+ writeToken: writeToken,
535
+ uploadId: id,
536
+ jobId: jobId,
537
+ fileData: _fileInfo2.data
538
+ });
539
+ case 12:
540
+ delete jobSpecs[j].files[f].data;
541
+ uploaded += _fileInfo2.len;
542
+ if (callback) {
543
+ progress[_fileInfo2.path] = _objectSpread(_objectSpread({}, progress[_fileInfo2.path]), {}, {
544
+ uploaded: progress[_fileInfo2.path].uploaded + _fileInfo2.len
545
+ });
546
+ callback(progress);
547
+ }
548
+ case 15:
549
+ f++;
550
+ _context4.next = 8;
551
+ break;
552
+ case 18:
553
+ case "end":
554
+ return _context4.stop();
555
+ }
556
+ }, _callee4);
557
+ }));
558
+ return function UploadJob(_x4, _x5) {
559
+ return _ref8.apply(this, arguments);
560
+ };
561
+ }(); // Preparing jobs is done asyncronously
562
+ PrepareJobs();
563
+
564
+ // Upload the first several chunks in sequence, to determine average upload rate
565
+ rateTestJobs = Math.min(3, jobs.length);
566
+ rates = [];
567
+ j = 0;
568
+ case 30:
569
+ if (!(j < rateTestJobs)) {
570
+ _context6.next = 40;
699
571
  break;
700
-
701
- case 40:
702
- averageRate = rates.reduce(function (mbps, total) {
703
- return mbps + total;
704
- }, 0) / rateTestJobs; // Upload remaining jobs in parallel
705
-
706
- concurrentUploads = Math.min(5, Math.ceil(averageRate / 2));
707
- _context6.next = 44;
708
- return this.utils.LimitedMap(concurrentUploads, jobs, /*#__PURE__*/function () {
709
- var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(jobId, j) {
710
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
711
- while (1) {
712
- switch (_context5.prev = _context5.next) {
713
- case 0:
714
- if (!(j < rateTestJobs)) {
715
- _context5.next = 2;
716
- break;
717
- }
718
-
719
- return _context5.abrupt("return");
720
-
721
- case 2:
722
- _context5.next = 4;
723
- return UploadJob(jobId, j);
724
-
725
- case 4:
726
- case "end":
727
- return _context5.stop();
572
+ }
573
+ start = new Date().getTime();
574
+ _context6.next = 34;
575
+ return UploadJob(jobs[j], j);
576
+ case 34:
577
+ elapsed = (new Date().getTime() - start) / 1000;
578
+ size = jobSpecs[j].files.map(function (file) {
579
+ return file.len;
580
+ }).reduce(function (length, total) {
581
+ return length + total;
582
+ }, 0);
583
+ rates.push(size / elapsed / (1024 * 1024));
584
+ case 37:
585
+ j++;
586
+ _context6.next = 30;
587
+ break;
588
+ case 40:
589
+ averageRate = rates.reduce(function (mbps, total) {
590
+ return mbps + total;
591
+ }, 0) / rateTestJobs; // Upload remaining jobs in parallel
592
+ concurrentUploads = Math.min(5, Math.ceil(averageRate / 2));
593
+ _context6.next = 44;
594
+ return this.utils.LimitedMap(concurrentUploads, jobs, /*#__PURE__*/function () {
595
+ var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(jobId, j) {
596
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
597
+ while (1) switch (_context5.prev = _context5.next) {
598
+ case 0:
599
+ if (!(j < rateTestJobs)) {
600
+ _context5.next = 2;
601
+ break;
728
602
  }
729
- }
730
- }, _callee5);
731
- }));
732
-
733
- return function (_x6, _x7) {
734
- return _ref9.apply(this, arguments);
735
- };
736
- }());
737
-
738
- case 44:
739
- case "end":
740
- return _context6.stop();
741
- }
603
+ return _context5.abrupt("return");
604
+ case 2:
605
+ _context5.next = 4;
606
+ return UploadJob(jobId, j);
607
+ case 4:
608
+ case "end":
609
+ return _context5.stop();
610
+ }
611
+ }, _callee5);
612
+ }));
613
+ return function (_x6, _x7) {
614
+ return _ref9.apply(this, arguments);
615
+ };
616
+ }());
617
+ case 44:
618
+ case "end":
619
+ return _context6.stop();
742
620
  }
743
621
  }, _callee6, this);
744
622
  }));
745
-
746
623
  return function (_x3) {
747
624
  return _ref6.apply(this, arguments);
748
625
  };
749
626
  }();
750
-
751
627
  exports.CreateFileUploadJob = /*#__PURE__*/function () {
752
628
  var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(_ref10) {
753
629
  var libraryId, objectId, writeToken, ops, _ref10$defaults, defaults, _ref10$encryption, encryption, body, path;
754
-
755
630
  return _regeneratorRuntime.wrap(function _callee7$(_context7) {
756
- while (1) {
757
- switch (_context7.prev = _context7.next) {
758
- case 0:
759
- libraryId = _ref10.libraryId, objectId = _ref10.objectId, writeToken = _ref10.writeToken, ops = _ref10.ops, _ref10$defaults = _ref10.defaults, defaults = _ref10$defaults === void 0 ? {} : _ref10$defaults, _ref10$encryption = _ref10.encryption, encryption = _ref10$encryption === void 0 ? "none" : _ref10$encryption;
760
- ValidateParameters({
761
- libraryId: libraryId,
762
- objectId: objectId
763
- });
764
- ValidateWriteToken(writeToken);
765
- this.Log("Creating file upload job: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
766
- this.Log(ops);
767
-
768
- if (encryption === "cgck") {
769
- defaults.encryption = {
770
- scheme: "cgck"
771
- };
772
- }
773
-
774
- body = {
775
- seq: 0,
776
- seq_complete: true,
777
- defaults: defaults,
778
- ops: ops
631
+ while (1) switch (_context7.prev = _context7.next) {
632
+ case 0:
633
+ libraryId = _ref10.libraryId, objectId = _ref10.objectId, writeToken = _ref10.writeToken, ops = _ref10.ops, _ref10$defaults = _ref10.defaults, defaults = _ref10$defaults === void 0 ? {} : _ref10$defaults, _ref10$encryption = _ref10.encryption, encryption = _ref10$encryption === void 0 ? "none" : _ref10$encryption;
634
+ ValidateParameters({
635
+ libraryId: libraryId,
636
+ objectId: objectId
637
+ });
638
+ ValidateWriteToken(writeToken);
639
+ this.Log("Creating file upload job: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
640
+ this.Log(ops);
641
+ if (encryption === "cgck") {
642
+ defaults.encryption = {
643
+ scheme: "cgck"
779
644
  };
780
- path = UrlJoin("q", writeToken, "file_jobs");
781
- _context7.t0 = this.utils;
782
- _context7.t1 = this.HttpClient;
783
- _context7.next = 12;
784
- return this.authClient.AuthorizationHeader({
785
- libraryId: libraryId,
786
- objectId: objectId,
787
- update: true,
788
- encryption: encryption
789
- });
790
-
791
- case 12:
792
- _context7.t2 = _context7.sent;
793
- _context7.t3 = path;
794
- _context7.t4 = body;
795
- _context7.t5 = {
796
- headers: _context7.t2,
797
- method: "POST",
798
- path: _context7.t3,
799
- body: _context7.t4,
800
- failover: false
801
- };
802
- _context7.t6 = _context7.t1.Request.call(_context7.t1, _context7.t5);
803
- return _context7.abrupt("return", _context7.t0.ResponseToJson.call(_context7.t0, _context7.t6));
804
-
805
- case 18:
806
- case "end":
807
- return _context7.stop();
808
- }
645
+ }
646
+ body = {
647
+ seq: 0,
648
+ seq_complete: true,
649
+ defaults: defaults,
650
+ ops: ops
651
+ };
652
+ path = UrlJoin("q", writeToken, "file_jobs");
653
+ _context7.t0 = this.utils;
654
+ _context7.t1 = this.HttpClient;
655
+ _context7.next = 12;
656
+ return this.authClient.AuthorizationHeader({
657
+ libraryId: libraryId,
658
+ objectId: objectId,
659
+ update: true,
660
+ encryption: encryption
661
+ });
662
+ case 12:
663
+ _context7.t2 = _context7.sent;
664
+ _context7.t3 = path;
665
+ _context7.t4 = body;
666
+ _context7.t5 = {
667
+ headers: _context7.t2,
668
+ method: "POST",
669
+ path: _context7.t3,
670
+ body: _context7.t4,
671
+ failover: false
672
+ };
673
+ _context7.t6 = _context7.t1.Request.call(_context7.t1, _context7.t5);
674
+ return _context7.abrupt("return", _context7.t0.ResponseToJson.call(_context7.t0, _context7.t6));
675
+ case 18:
676
+ case "end":
677
+ return _context7.stop();
809
678
  }
810
679
  }, _callee7, this);
811
680
  }));
812
-
813
681
  return function (_x8) {
814
682
  return _ref11.apply(this, arguments);
815
683
  };
816
684
  }();
817
-
818
685
  exports.UploadStatus = /*#__PURE__*/function () {
819
686
  var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(_ref12) {
820
687
  var libraryId, objectId, writeToken, uploadId, path;
821
688
  return _regeneratorRuntime.wrap(function _callee8$(_context8) {
822
- while (1) {
823
- switch (_context8.prev = _context8.next) {
824
- case 0:
825
- libraryId = _ref12.libraryId, objectId = _ref12.objectId, writeToken = _ref12.writeToken, uploadId = _ref12.uploadId;
826
- ValidateParameters({
827
- libraryId: libraryId,
828
- objectId: objectId
829
- });
830
- ValidateWriteToken(writeToken);
831
- path = UrlJoin("q", writeToken, "file_jobs", uploadId);
832
- _context8.t0 = this.utils;
833
- _context8.t1 = this.HttpClient;
834
- _context8.next = 8;
835
- return this.authClient.AuthorizationHeader({
836
- libraryId: libraryId,
837
- objectId: objectId,
838
- update: true
839
- });
840
-
841
- case 8:
842
- _context8.t2 = _context8.sent;
843
- _context8.t3 = path;
844
- _context8.t4 = {
845
- headers: _context8.t2,
846
- method: "GET",
847
- path: _context8.t3,
848
- failover: false
849
- };
850
- _context8.t5 = _context8.t1.Request.call(_context8.t1, _context8.t4);
851
- return _context8.abrupt("return", _context8.t0.ResponseToJson.call(_context8.t0, _context8.t5));
852
-
853
- case 13:
854
- case "end":
855
- return _context8.stop();
856
- }
689
+ while (1) switch (_context8.prev = _context8.next) {
690
+ case 0:
691
+ libraryId = _ref12.libraryId, objectId = _ref12.objectId, writeToken = _ref12.writeToken, uploadId = _ref12.uploadId;
692
+ ValidateParameters({
693
+ libraryId: libraryId,
694
+ objectId: objectId
695
+ });
696
+ ValidateWriteToken(writeToken);
697
+ path = UrlJoin("q", writeToken, "file_jobs", uploadId);
698
+ _context8.t0 = this.utils;
699
+ _context8.t1 = this.HttpClient;
700
+ _context8.next = 8;
701
+ return this.authClient.AuthorizationHeader({
702
+ libraryId: libraryId,
703
+ objectId: objectId,
704
+ update: true
705
+ });
706
+ case 8:
707
+ _context8.t2 = _context8.sent;
708
+ _context8.t3 = path;
709
+ _context8.t4 = {
710
+ headers: _context8.t2,
711
+ method: "GET",
712
+ path: _context8.t3,
713
+ failover: false
714
+ };
715
+ _context8.t5 = _context8.t1.Request.call(_context8.t1, _context8.t4);
716
+ return _context8.abrupt("return", _context8.t0.ResponseToJson.call(_context8.t0, _context8.t5));
717
+ case 13:
718
+ case "end":
719
+ return _context8.stop();
857
720
  }
858
721
  }, _callee8, this);
859
722
  }));
860
-
861
723
  return function (_x9) {
862
724
  return _ref13.apply(this, arguments);
863
725
  };
864
726
  }();
865
-
866
727
  exports.UploadJobStatus = /*#__PURE__*/function () {
867
728
  var _ref15 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(_ref14) {
868
729
  var libraryId, objectId, writeToken, uploadId, jobId, path;
869
730
  return _regeneratorRuntime.wrap(function _callee9$(_context9) {
870
- while (1) {
871
- switch (_context9.prev = _context9.next) {
872
- case 0:
873
- libraryId = _ref14.libraryId, objectId = _ref14.objectId, writeToken = _ref14.writeToken, uploadId = _ref14.uploadId, jobId = _ref14.jobId;
874
- ValidateParameters({
875
- libraryId: libraryId,
876
- objectId: objectId
877
- });
878
- ValidateWriteToken(writeToken);
879
- path = UrlJoin("q", writeToken, "file_jobs", uploadId, "uploads", jobId);
880
- _context9.t0 = this.utils;
881
- _context9.t1 = this.HttpClient;
882
- _context9.next = 8;
883
- return this.authClient.AuthorizationHeader({
884
- libraryId: libraryId,
885
- objectId: objectId,
886
- update: true
887
- });
888
-
889
- case 8:
890
- _context9.t2 = _context9.sent;
891
- _context9.t3 = path;
892
- _context9.t4 = {
893
- headers: _context9.t2,
894
- method: "GET",
895
- path: _context9.t3,
896
- failover: false
897
- };
898
- _context9.t5 = _context9.t1.Request.call(_context9.t1, _context9.t4);
899
- return _context9.abrupt("return", _context9.t0.ResponseToJson.call(_context9.t0, _context9.t5));
900
-
901
- case 13:
902
- case "end":
903
- return _context9.stop();
904
- }
731
+ while (1) switch (_context9.prev = _context9.next) {
732
+ case 0:
733
+ libraryId = _ref14.libraryId, objectId = _ref14.objectId, writeToken = _ref14.writeToken, uploadId = _ref14.uploadId, jobId = _ref14.jobId;
734
+ ValidateParameters({
735
+ libraryId: libraryId,
736
+ objectId: objectId
737
+ });
738
+ ValidateWriteToken(writeToken);
739
+ path = UrlJoin("q", writeToken, "file_jobs", uploadId, "uploads", jobId);
740
+ _context9.t0 = this.utils;
741
+ _context9.t1 = this.HttpClient;
742
+ _context9.next = 8;
743
+ return this.authClient.AuthorizationHeader({
744
+ libraryId: libraryId,
745
+ objectId: objectId,
746
+ update: true
747
+ });
748
+ case 8:
749
+ _context9.t2 = _context9.sent;
750
+ _context9.t3 = path;
751
+ _context9.t4 = {
752
+ headers: _context9.t2,
753
+ method: "GET",
754
+ path: _context9.t3,
755
+ failover: false
756
+ };
757
+ _context9.t5 = _context9.t1.Request.call(_context9.t1, _context9.t4);
758
+ return _context9.abrupt("return", _context9.t0.ResponseToJson.call(_context9.t0, _context9.t5));
759
+ case 13:
760
+ case "end":
761
+ return _context9.stop();
905
762
  }
906
763
  }, _callee9, this);
907
764
  }));
908
-
909
765
  return function (_x10) {
910
766
  return _ref15.apply(this, arguments);
911
767
  };
912
768
  }();
913
-
914
769
  exports.UploadFileData = /*#__PURE__*/function () {
915
770
  var _ref17 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(_ref16) {
916
771
  var libraryId, objectId, writeToken, uploadId, jobId, fileData, path;
917
772
  return _regeneratorRuntime.wrap(function _callee10$(_context10) {
918
- while (1) {
919
- switch (_context10.prev = _context10.next) {
920
- case 0:
921
- libraryId = _ref16.libraryId, objectId = _ref16.objectId, writeToken = _ref16.writeToken, uploadId = _ref16.uploadId, jobId = _ref16.jobId, fileData = _ref16.fileData;
922
- ValidateParameters({
923
- libraryId: libraryId,
924
- objectId: objectId
925
- });
926
- ValidateWriteToken(writeToken);
927
- path = UrlJoin("q", writeToken, "file_jobs", uploadId, jobId);
928
- _context10.t0 = this.utils;
929
- _context10.t1 = this.HttpClient;
930
- _context10.t2 = path;
931
- _context10.t3 = fileData;
932
- _context10.t4 = _objectSpread;
933
- _context10.t5 = {
934
- "Content-type": "application/octet-stream"
935
- };
936
- _context10.next = 12;
937
- return this.authClient.AuthorizationHeader({
938
- libraryId: libraryId,
939
- objectId: objectId,
940
- update: true
941
- });
942
-
943
- case 12:
944
- _context10.t6 = _context10.sent;
945
- _context10.t7 = (0, _context10.t4)(_context10.t5, _context10.t6);
946
- _context10.t8 = {
947
- method: "POST",
948
- path: _context10.t2,
949
- body: _context10.t3,
950
- bodyType: "BINARY",
951
- headers: _context10.t7,
952
- failover: false
953
- };
954
- _context10.t9 = _context10.t1.Request.call(_context10.t1, _context10.t8);
955
- _context10.next = 18;
956
- return _context10.t0.ResponseToJson.call(_context10.t0, _context10.t9);
957
-
958
- case 18:
959
- case "end":
960
- return _context10.stop();
961
- }
773
+ while (1) switch (_context10.prev = _context10.next) {
774
+ case 0:
775
+ libraryId = _ref16.libraryId, objectId = _ref16.objectId, writeToken = _ref16.writeToken, uploadId = _ref16.uploadId, jobId = _ref16.jobId, fileData = _ref16.fileData;
776
+ ValidateParameters({
777
+ libraryId: libraryId,
778
+ objectId: objectId
779
+ });
780
+ ValidateWriteToken(writeToken);
781
+ path = UrlJoin("q", writeToken, "file_jobs", uploadId, jobId);
782
+ _context10.t0 = this.utils;
783
+ _context10.t1 = this.HttpClient;
784
+ _context10.t2 = path;
785
+ _context10.t3 = fileData;
786
+ _context10.t4 = _objectSpread;
787
+ _context10.t5 = {
788
+ "Content-type": "application/octet-stream"
789
+ };
790
+ _context10.next = 12;
791
+ return this.authClient.AuthorizationHeader({
792
+ libraryId: libraryId,
793
+ objectId: objectId,
794
+ update: true
795
+ });
796
+ case 12:
797
+ _context10.t6 = _context10.sent;
798
+ _context10.t7 = (0, _context10.t4)(_context10.t5, _context10.t6);
799
+ _context10.t8 = {
800
+ method: "POST",
801
+ path: _context10.t2,
802
+ body: _context10.t3,
803
+ bodyType: "BINARY",
804
+ headers: _context10.t7,
805
+ failover: false
806
+ };
807
+ _context10.t9 = _context10.t1.Request.call(_context10.t1, _context10.t8);
808
+ _context10.next = 18;
809
+ return _context10.t0.ResponseToJson.call(_context10.t0, _context10.t9);
810
+ case 18:
811
+ case "end":
812
+ return _context10.stop();
962
813
  }
963
814
  }, _callee10, this);
964
815
  }));
965
-
966
816
  return function (_x11) {
967
817
  return _ref17.apply(this, arguments);
968
818
  };
969
819
  }();
970
-
971
820
  exports.FinalizeUploadJob = /*#__PURE__*/function () {
972
821
  var _ref19 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(_ref18) {
973
822
  var libraryId, objectId, writeToken, path;
974
823
  return _regeneratorRuntime.wrap(function _callee11$(_context11) {
975
- while (1) {
976
- switch (_context11.prev = _context11.next) {
977
- case 0:
978
- libraryId = _ref18.libraryId, objectId = _ref18.objectId, writeToken = _ref18.writeToken;
979
- ValidateParameters({
980
- libraryId: libraryId,
981
- objectId: objectId
982
- });
983
- ValidateWriteToken(writeToken);
984
- this.Log("Finalizing upload job: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
985
- path = UrlJoin("q", writeToken, "files");
986
- _context11.t0 = this.HttpClient;
987
- _context11.t1 = path;
988
- _context11.next = 9;
989
- return this.authClient.AuthorizationHeader({
990
- libraryId: libraryId,
991
- objectId: objectId,
992
- update: true
993
- });
994
-
995
- case 9:
996
- _context11.t2 = _context11.sent;
997
- _context11.t3 = {
998
- method: "POST",
999
- path: _context11.t1,
1000
- bodyType: "BINARY",
1001
- headers: _context11.t2,
1002
- failover: false
1003
- };
1004
- _context11.next = 13;
1005
- return _context11.t0.Request.call(_context11.t0, _context11.t3);
1006
-
1007
- case 13:
1008
- case "end":
1009
- return _context11.stop();
1010
- }
824
+ while (1) switch (_context11.prev = _context11.next) {
825
+ case 0:
826
+ libraryId = _ref18.libraryId, objectId = _ref18.objectId, writeToken = _ref18.writeToken;
827
+ ValidateParameters({
828
+ libraryId: libraryId,
829
+ objectId: objectId
830
+ });
831
+ ValidateWriteToken(writeToken);
832
+ this.Log("Finalizing upload job: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
833
+ path = UrlJoin("q", writeToken, "files");
834
+ _context11.t0 = this.HttpClient;
835
+ _context11.t1 = path;
836
+ _context11.next = 9;
837
+ return this.authClient.AuthorizationHeader({
838
+ libraryId: libraryId,
839
+ objectId: objectId,
840
+ update: true
841
+ });
842
+ case 9:
843
+ _context11.t2 = _context11.sent;
844
+ _context11.t3 = {
845
+ method: "POST",
846
+ path: _context11.t1,
847
+ bodyType: "BINARY",
848
+ headers: _context11.t2,
849
+ failover: false
850
+ };
851
+ _context11.next = 13;
852
+ return _context11.t0.Request.call(_context11.t0, _context11.t3);
853
+ case 13:
854
+ case "end":
855
+ return _context11.stop();
1011
856
  }
1012
857
  }, _callee11, this);
1013
858
  }));
1014
-
1015
859
  return function (_x12) {
1016
860
  return _ref19.apply(this, arguments);
1017
861
  };
1018
862
  }();
863
+
1019
864
  /**
1020
865
  * Create the specified directories on the specified object
1021
866
  *
@@ -1027,50 +872,45 @@ exports.FinalizeUploadJob = /*#__PURE__*/function () {
1027
872
  * @param {string} writeToken - Write token of the draft
1028
873
  * @param {Array<string>} filePaths - List of file paths to create
1029
874
  */
1030
-
1031
-
1032
875
  exports.CreateFileDirectories = /*#__PURE__*/function () {
1033
876
  var _ref21 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(_ref20) {
1034
877
  var libraryId, objectId, writeToken, filePaths, ops;
1035
878
  return _regeneratorRuntime.wrap(function _callee12$(_context12) {
1036
- while (1) {
1037
- switch (_context12.prev = _context12.next) {
1038
- case 0:
1039
- libraryId = _ref20.libraryId, objectId = _ref20.objectId, writeToken = _ref20.writeToken, filePaths = _ref20.filePaths;
1040
- ValidateParameters({
1041
- libraryId: libraryId,
1042
- objectId: objectId
1043
- });
1044
- ValidateWriteToken(writeToken);
1045
- this.Log("Creating Directories: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
1046
- this.Log(filePaths);
1047
- ops = filePaths.map(function (path) {
1048
- return {
1049
- op: "add",
1050
- type: "directory",
1051
- path: path
1052
- };
1053
- });
1054
- _context12.next = 8;
1055
- return this.CreateFileUploadJob({
1056
- libraryId: libraryId,
1057
- objectId: objectId,
1058
- writeToken: writeToken,
1059
- ops: ops
1060
- });
1061
-
1062
- case 8:
1063
- case "end":
1064
- return _context12.stop();
1065
- }
879
+ while (1) switch (_context12.prev = _context12.next) {
880
+ case 0:
881
+ libraryId = _ref20.libraryId, objectId = _ref20.objectId, writeToken = _ref20.writeToken, filePaths = _ref20.filePaths;
882
+ ValidateParameters({
883
+ libraryId: libraryId,
884
+ objectId: objectId
885
+ });
886
+ ValidateWriteToken(writeToken);
887
+ this.Log("Creating Directories: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
888
+ this.Log(filePaths);
889
+ ops = filePaths.map(function (path) {
890
+ return {
891
+ op: "add",
892
+ type: "directory",
893
+ path: path
894
+ };
895
+ });
896
+ _context12.next = 8;
897
+ return this.CreateFileUploadJob({
898
+ libraryId: libraryId,
899
+ objectId: objectId,
900
+ writeToken: writeToken,
901
+ ops: ops
902
+ });
903
+ case 8:
904
+ case "end":
905
+ return _context12.stop();
1066
906
  }
1067
907
  }, _callee12, this);
1068
908
  }));
1069
-
1070
909
  return function (_x13) {
1071
910
  return _ref21.apply(this, arguments);
1072
911
  };
1073
912
  }();
913
+
1074
914
  /**
1075
915
  * Delete the specified list of files/directories
1076
916
  *
@@ -1082,49 +922,44 @@ exports.CreateFileDirectories = /*#__PURE__*/function () {
1082
922
  * @param {string} writeToken - Write token of the draft
1083
923
  * @param {Array<string>} filePaths - List of file paths to delete
1084
924
  */
1085
-
1086
-
1087
925
  exports.DeleteFiles = /*#__PURE__*/function () {
1088
926
  var _ref23 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(_ref22) {
1089
927
  var libraryId, objectId, writeToken, filePaths, ops;
1090
928
  return _regeneratorRuntime.wrap(function _callee13$(_context13) {
1091
- while (1) {
1092
- switch (_context13.prev = _context13.next) {
1093
- case 0:
1094
- libraryId = _ref22.libraryId, objectId = _ref22.objectId, writeToken = _ref22.writeToken, filePaths = _ref22.filePaths;
1095
- ValidateParameters({
1096
- libraryId: libraryId,
1097
- objectId: objectId
1098
- });
1099
- ValidateWriteToken(writeToken);
1100
- this.Log("Deleting Files: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
1101
- this.Log(filePaths);
1102
- ops = filePaths.map(function (path) {
1103
- return {
1104
- op: "del",
1105
- path: path
1106
- };
1107
- });
1108
- _context13.next = 8;
1109
- return this.CreateFileUploadJob({
1110
- libraryId: libraryId,
1111
- objectId: objectId,
1112
- writeToken: writeToken,
1113
- ops: ops
1114
- });
1115
-
1116
- case 8:
1117
- case "end":
1118
- return _context13.stop();
1119
- }
929
+ while (1) switch (_context13.prev = _context13.next) {
930
+ case 0:
931
+ libraryId = _ref22.libraryId, objectId = _ref22.objectId, writeToken = _ref22.writeToken, filePaths = _ref22.filePaths;
932
+ ValidateParameters({
933
+ libraryId: libraryId,
934
+ objectId: objectId
935
+ });
936
+ ValidateWriteToken(writeToken);
937
+ this.Log("Deleting Files: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
938
+ this.Log(filePaths);
939
+ ops = filePaths.map(function (path) {
940
+ return {
941
+ op: "del",
942
+ path: path
943
+ };
944
+ });
945
+ _context13.next = 8;
946
+ return this.CreateFileUploadJob({
947
+ libraryId: libraryId,
948
+ objectId: objectId,
949
+ writeToken: writeToken,
950
+ ops: ops
951
+ });
952
+ case 8:
953
+ case "end":
954
+ return _context13.stop();
1120
955
  }
1121
956
  }, _callee13, this);
1122
957
  }));
1123
-
1124
958
  return function (_x14) {
1125
959
  return _ref23.apply(this, arguments);
1126
960
  };
1127
961
  }();
962
+
1128
963
  /**
1129
964
  * Download a file from a content object
1130
965
  *
@@ -1138,229 +973,198 @@ exports.DeleteFiles = /*#__PURE__*/function () {
1138
973
  * @param {string} filePath - Path to the file to download
1139
974
  * @param {string=} format="blob" - Format in which to return the data ("blob" | "arraybuffer" | "buffer)
1140
975
  * @param {boolean=} chunked=false - If specified, file will be downloaded and decrypted in chunks. The
1141
- * specified callback will be invoked on completion of each chunk. This is recommended for large files.
1142
- * @param {number=} chunkSize=1000000 - Size of file chunks to request for download
1143
- * - NOTE: If the file is encrypted, the size of the chunks returned via the callback function will not be affected by this value
1144
- * @param {boolean=} clientSideDecryption=false - If specified, decryption of the file (if necessary) will be done by the client
1145
- * instead of on the fabric node
1146
- * @param {function=} callback - If specified, will be periodically called with current download status - Required if `chunked` is true
1147
- * - Signature: ({bytesFinished, bytesTotal}) => {}
1148
- * - Signature (chunked): ({bytesFinished, bytesTotal, chunk}) => {}
1149
- *
1150
- * @returns {Promise<ArrayBuffer> | undefined} - No return if chunked is specified, file data in the requested format otherwise
1151
- */
1152
-
1153
-
1154
- exports.DownloadFile = /*#__PURE__*/function () {
1155
- var _ref25 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(_ref24) {
1156
- var libraryId,
1157
- objectId,
1158
- versionHash,
1159
- writeToken,
1160
- filePath,
1161
- _ref24$format,
1162
- format,
1163
- _ref24$chunked,
1164
- chunked,
1165
- chunkSize,
1166
- _ref24$clientSideDecr,
1167
- clientSideDecryption,
1168
- callback,
1169
- fileInfo,
1170
- encrypted,
1171
- encryption,
1172
- path,
1173
- headers,
1174
- ownerCapKey,
1175
- ownerCap,
1176
- bytesTotal,
1177
- _args14 = arguments;
1178
-
1179
- return _regeneratorRuntime.wrap(function _callee14$(_context14) {
1180
- while (1) {
1181
- switch (_context14.prev = _context14.next) {
1182
- case 0:
1183
- libraryId = _ref24.libraryId, objectId = _ref24.objectId, versionHash = _ref24.versionHash, writeToken = _ref24.writeToken, filePath = _ref24.filePath, _ref24$format = _ref24.format, format = _ref24$format === void 0 ? "arrayBuffer" : _ref24$format, _ref24$chunked = _ref24.chunked, chunked = _ref24$chunked === void 0 ? false : _ref24$chunked, chunkSize = _ref24.chunkSize, _ref24$clientSideDecr = _ref24.clientSideDecryption, clientSideDecryption = _ref24$clientSideDecr === void 0 ? false : _ref24$clientSideDecr, callback = _ref24.callback;
1184
- ValidateParameters({
1185
- libraryId: libraryId,
1186
- objectId: objectId,
1187
- versionHash: versionHash
1188
- });
1189
- ValidatePresence("filePath", filePath);
1190
-
1191
- if (versionHash) {
1192
- objectId = this.utils.DecodeVersionHash(versionHash).objectId;
1193
- }
1194
-
1195
- _context14.next = 6;
1196
- return this.ContentObjectMetadata({
1197
- libraryId: libraryId,
1198
- objectId: objectId,
1199
- versionHash: versionHash,
1200
- writeToken: writeToken,
1201
- metadataSubtree: UrlJoin("files", filePath)
1202
- });
1203
-
1204
- case 6:
1205
- fileInfo = _context14.sent;
1206
- encrypted = fileInfo && fileInfo["."].encryption && fileInfo["."].encryption.scheme === "cgck";
1207
- encryption = encrypted ? "cgck" : undefined;
1208
- path = encrypted && !clientSideDecryption ? UrlJoin("q", writeToken || versionHash || objectId, "rep", "files_download", filePath) : UrlJoin("q", writeToken || versionHash || objectId, "files", filePath);
1209
- _context14.next = 12;
1210
- return this.authClient.AuthorizationHeader({
1211
- libraryId: libraryId,
1212
- objectId: objectId,
1213
- versionHash: versionHash,
1214
- encryption: encryption
1215
- });
1216
-
1217
- case 12:
1218
- headers = _context14.sent;
1219
- headers.Accept = "*/*"; // If not owner, indicate re-encryption
1220
-
1221
- ownerCapKey = "eluv.caps.iusr".concat(this.utils.AddressToHash(this.signer.address));
1222
- _context14.next = 17;
1223
- return this.ContentObjectMetadata({
1224
- libraryId: libraryId,
1225
- objectId: objectId,
1226
- metadataSubtree: ownerCapKey
1227
- });
1228
-
1229
- case 17:
1230
- ownerCap = _context14.sent;
1231
- _context14.t1 = encrypted;
1232
-
1233
- if (!_context14.t1) {
1234
- _context14.next = 26;
1235
- break;
1236
- }
1237
-
1238
- _context14.t2 = this.utils;
1239
- _context14.t3 = this.signer.address;
1240
- _context14.next = 24;
1241
- return this.ContentObjectOwner({
1242
- objectId: objectId
1243
- });
1244
-
1245
- case 24:
1246
- _context14.t4 = _context14.sent;
1247
- _context14.t1 = !_context14.t2.EqualAddress.call(_context14.t2, _context14.t3, _context14.t4);
1248
-
1249
- case 26:
1250
- _context14.t0 = _context14.t1;
1251
-
1252
- if (!_context14.t0) {
1253
- _context14.next = 29;
1254
- break;
1255
- }
1256
-
1257
- _context14.t0 = !ownerCap;
1258
-
1259
- case 29:
1260
- if (!_context14.t0) {
1261
- _context14.next = 31;
1262
- break;
1263
- }
1264
-
1265
- headers["X-Content-Fabric-Decryption-Mode"] = "reencrypt";
1266
-
1267
- case 31:
1268
- // If using server side decryption, specify in header
1269
- if (encrypted && !clientSideDecryption) {
1270
- headers["X-Content-Fabric-Decryption-Mode"] = "decrypt"; // rep/files_download endpoint doesn't currently support Range header
1271
-
1272
- chunkSize = Number.MAX_SAFE_INTEGER;
1273
- }
1274
-
1275
- bytesTotal = fileInfo["."].size;
1276
-
1277
- if (!(encrypted && clientSideDecryption)) {
1278
- _context14.next = 51;
1279
- break;
1280
- }
1281
-
1282
- _context14.t5 = this;
1283
- _context14.next = 37;
1284
- return this.EncryptionConk({
1285
- libraryId: libraryId,
1286
- objectId: objectId,
1287
- versionHash: versionHash,
1288
- download: true
1289
- });
1290
-
1291
- case 37:
1292
- _context14.t6 = _context14.sent;
1293
- _context14.t7 = path;
1294
- _context14.t8 = bytesTotal;
1295
- _context14.t9 = headers;
1296
- _context14.t10 = callback;
1297
- _context14.t11 = format;
1298
- _context14.t12 = clientSideDecryption;
1299
- _context14.t13 = chunked;
1300
- _context14.t14 = {
1301
- conk: _context14.t6,
1302
- downloadPath: _context14.t7,
1303
- bytesTotal: _context14.t8,
1304
- headers: _context14.t9,
1305
- callback: _context14.t10,
1306
- format: _context14.t11,
1307
- clientSideDecryption: _context14.t12,
1308
- chunked: _context14.t13
1309
- };
1310
- _context14.next = 48;
1311
- return _context14.t5.DownloadEncrypted.call(_context14.t5, _context14.t14);
1312
-
1313
- case 48:
1314
- return _context14.abrupt("return", _context14.sent);
1315
-
1316
- case 51:
1317
- if (!chunkSize) {
1318
- chunkSize = 10000000;
1319
- }
1320
-
1321
- _context14.prev = 52;
1322
- _context14.next = 55;
1323
- return this.Download({
1324
- downloadPath: path,
1325
- bytesTotal: bytesTotal,
1326
- headers: headers,
1327
- callback: callback,
1328
- format: format,
1329
- chunked: chunked,
1330
- chunkSize: chunkSize
1331
- });
1332
-
1333
- case 55:
1334
- return _context14.abrupt("return", _context14.sent);
1335
-
1336
- case 58:
1337
- _context14.prev = 58;
1338
- _context14.t15 = _context14["catch"](52);
1339
-
1340
- if (!(encrypted && !clientSideDecryption)) {
1341
- _context14.next = 62;
1342
- break;
1343
- }
1344
-
1345
- return _context14.abrupt("return", this.DownloadFile(_objectSpread(_objectSpread({}, _args14[0]), {}, {
1346
- clientSideDecryption: true
1347
- })));
1348
-
1349
- case 62:
1350
- throw _context14.t15;
1351
-
1352
- case 63:
1353
- case "end":
1354
- return _context14.stop();
1355
- }
976
+ * specified callback will be invoked on completion of each chunk. This is recommended for large files.
977
+ * @param {number=} chunkSize=1000000 - Size of file chunks to request for download
978
+ * - NOTE: If the file is encrypted, the size of the chunks returned via the callback function will not be affected by this value
979
+ * @param {boolean=} clientSideDecryption=false - If specified, decryption of the file (if necessary) will be done by the client
980
+ * instead of on the fabric node
981
+ * @param {function=} callback - If specified, will be periodically called with current download status - Required if `chunked` is true
982
+ * - Signature: ({bytesFinished, bytesTotal}) => {}
983
+ * - Signature (chunked): ({bytesFinished, bytesTotal, chunk}) => {}
984
+ *
985
+ * @returns {Promise<ArrayBuffer> | undefined} - No return if chunked is specified, file data in the requested format otherwise
986
+ */
987
+ exports.DownloadFile = /*#__PURE__*/function () {
988
+ var _ref25 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(_ref24) {
989
+ var libraryId,
990
+ objectId,
991
+ versionHash,
992
+ writeToken,
993
+ filePath,
994
+ _ref24$format,
995
+ format,
996
+ _ref24$chunked,
997
+ chunked,
998
+ chunkSize,
999
+ _ref24$clientSideDecr,
1000
+ clientSideDecryption,
1001
+ callback,
1002
+ fileInfo,
1003
+ encrypted,
1004
+ encryption,
1005
+ path,
1006
+ headers,
1007
+ ownerCapKey,
1008
+ ownerCap,
1009
+ bytesTotal,
1010
+ _args14 = arguments;
1011
+ return _regeneratorRuntime.wrap(function _callee14$(_context14) {
1012
+ while (1) switch (_context14.prev = _context14.next) {
1013
+ case 0:
1014
+ libraryId = _ref24.libraryId, objectId = _ref24.objectId, versionHash = _ref24.versionHash, writeToken = _ref24.writeToken, filePath = _ref24.filePath, _ref24$format = _ref24.format, format = _ref24$format === void 0 ? "arrayBuffer" : _ref24$format, _ref24$chunked = _ref24.chunked, chunked = _ref24$chunked === void 0 ? false : _ref24$chunked, chunkSize = _ref24.chunkSize, _ref24$clientSideDecr = _ref24.clientSideDecryption, clientSideDecryption = _ref24$clientSideDecr === void 0 ? false : _ref24$clientSideDecr, callback = _ref24.callback;
1015
+ ValidateParameters({
1016
+ libraryId: libraryId,
1017
+ objectId: objectId,
1018
+ versionHash: versionHash
1019
+ });
1020
+ ValidatePresence("filePath", filePath);
1021
+ if (versionHash) {
1022
+ objectId = this.utils.DecodeVersionHash(versionHash).objectId;
1023
+ }
1024
+ _context14.next = 6;
1025
+ return this.ContentObjectMetadata({
1026
+ libraryId: libraryId,
1027
+ objectId: objectId,
1028
+ versionHash: versionHash,
1029
+ writeToken: writeToken,
1030
+ metadataSubtree: UrlJoin("files", filePath)
1031
+ });
1032
+ case 6:
1033
+ fileInfo = _context14.sent;
1034
+ encrypted = fileInfo && fileInfo["."].encryption && fileInfo["."].encryption.scheme === "cgck";
1035
+ encryption = encrypted ? "cgck" : undefined;
1036
+ path = encrypted && !clientSideDecryption ? UrlJoin("q", writeToken || versionHash || objectId, "rep", "files_download", filePath) : UrlJoin("q", writeToken || versionHash || objectId, "files", filePath);
1037
+ _context14.next = 12;
1038
+ return this.authClient.AuthorizationHeader({
1039
+ libraryId: libraryId,
1040
+ objectId: objectId,
1041
+ versionHash: versionHash,
1042
+ encryption: encryption
1043
+ });
1044
+ case 12:
1045
+ headers = _context14.sent;
1046
+ headers.Accept = "*/*";
1047
+
1048
+ // If not owner, indicate re-encryption
1049
+ ownerCapKey = "eluv.caps.iusr".concat(this.utils.AddressToHash(this.signer.address));
1050
+ _context14.next = 17;
1051
+ return this.ContentObjectMetadata({
1052
+ libraryId: libraryId,
1053
+ objectId: objectId,
1054
+ metadataSubtree: ownerCapKey
1055
+ });
1056
+ case 17:
1057
+ ownerCap = _context14.sent;
1058
+ _context14.t1 = encrypted;
1059
+ if (!_context14.t1) {
1060
+ _context14.next = 26;
1061
+ break;
1062
+ }
1063
+ _context14.t2 = this.utils;
1064
+ _context14.t3 = this.signer.address;
1065
+ _context14.next = 24;
1066
+ return this.ContentObjectOwner({
1067
+ objectId: objectId
1068
+ });
1069
+ case 24:
1070
+ _context14.t4 = _context14.sent;
1071
+ _context14.t1 = !_context14.t2.EqualAddress.call(_context14.t2, _context14.t3, _context14.t4);
1072
+ case 26:
1073
+ _context14.t0 = _context14.t1;
1074
+ if (!_context14.t0) {
1075
+ _context14.next = 29;
1076
+ break;
1077
+ }
1078
+ _context14.t0 = !ownerCap;
1079
+ case 29:
1080
+ if (!_context14.t0) {
1081
+ _context14.next = 31;
1082
+ break;
1083
+ }
1084
+ headers["X-Content-Fabric-Decryption-Mode"] = "reencrypt";
1085
+ case 31:
1086
+ // If using server side decryption, specify in header
1087
+ if (encrypted && !clientSideDecryption) {
1088
+ headers["X-Content-Fabric-Decryption-Mode"] = "decrypt";
1089
+ // rep/files_download endpoint doesn't currently support Range header
1090
+ chunkSize = Number.MAX_SAFE_INTEGER;
1091
+ }
1092
+ bytesTotal = fileInfo["."].size;
1093
+ if (!(encrypted && clientSideDecryption)) {
1094
+ _context14.next = 51;
1095
+ break;
1096
+ }
1097
+ _context14.t5 = this;
1098
+ _context14.next = 37;
1099
+ return this.EncryptionConk({
1100
+ libraryId: libraryId,
1101
+ objectId: objectId,
1102
+ versionHash: versionHash,
1103
+ download: true
1104
+ });
1105
+ case 37:
1106
+ _context14.t6 = _context14.sent;
1107
+ _context14.t7 = path;
1108
+ _context14.t8 = bytesTotal;
1109
+ _context14.t9 = headers;
1110
+ _context14.t10 = callback;
1111
+ _context14.t11 = format;
1112
+ _context14.t12 = clientSideDecryption;
1113
+ _context14.t13 = chunked;
1114
+ _context14.t14 = {
1115
+ conk: _context14.t6,
1116
+ downloadPath: _context14.t7,
1117
+ bytesTotal: _context14.t8,
1118
+ headers: _context14.t9,
1119
+ callback: _context14.t10,
1120
+ format: _context14.t11,
1121
+ clientSideDecryption: _context14.t12,
1122
+ chunked: _context14.t13
1123
+ };
1124
+ _context14.next = 48;
1125
+ return _context14.t5.DownloadEncrypted.call(_context14.t5, _context14.t14);
1126
+ case 48:
1127
+ return _context14.abrupt("return", _context14.sent);
1128
+ case 51:
1129
+ if (!chunkSize) {
1130
+ chunkSize = 10000000;
1131
+ }
1132
+ _context14.prev = 52;
1133
+ _context14.next = 55;
1134
+ return this.Download({
1135
+ downloadPath: path,
1136
+ bytesTotal: bytesTotal,
1137
+ headers: headers,
1138
+ callback: callback,
1139
+ format: format,
1140
+ chunked: chunked,
1141
+ chunkSize: chunkSize
1142
+ });
1143
+ case 55:
1144
+ return _context14.abrupt("return", _context14.sent);
1145
+ case 58:
1146
+ _context14.prev = 58;
1147
+ _context14.t15 = _context14["catch"](52);
1148
+ if (!(encrypted && !clientSideDecryption)) {
1149
+ _context14.next = 62;
1150
+ break;
1151
+ }
1152
+ return _context14.abrupt("return", this.DownloadFile(_objectSpread(_objectSpread({}, _args14[0]), {}, {
1153
+ clientSideDecryption: true
1154
+ })));
1155
+ case 62:
1156
+ throw _context14.t15;
1157
+ case 63:
1158
+ case "end":
1159
+ return _context14.stop();
1356
1160
  }
1357
1161
  }, _callee14, this, [[52, 58]]);
1358
1162
  }));
1359
-
1360
1163
  return function (_x15) {
1361
1164
  return _ref25.apply(this, arguments);
1362
1165
  };
1363
1166
  }();
1167
+
1364
1168
  /* Parts */
1365
1169
 
1366
1170
  /**
@@ -1375,65 +1179,56 @@ exports.DownloadFile = /*#__PURE__*/function () {
1375
1179
  *
1376
1180
  * @returns {Promise<Object>} - Response containing list of parts of the object
1377
1181
  */
1378
-
1379
-
1380
1182
  exports.ContentParts = /*#__PURE__*/function () {
1381
1183
  var _ref27 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(_ref26) {
1382
1184
  var libraryId, objectId, versionHash, path, response;
1383
1185
  return _regeneratorRuntime.wrap(function _callee15$(_context15) {
1384
- while (1) {
1385
- switch (_context15.prev = _context15.next) {
1386
- case 0:
1387
- libraryId = _ref26.libraryId, objectId = _ref26.objectId, versionHash = _ref26.versionHash;
1388
- ValidateParameters({
1389
- libraryId: libraryId,
1390
- objectId: objectId,
1391
- versionHash: versionHash
1392
- });
1393
- this.Log("Retrieving parts: ".concat(libraryId, " ").concat(objectId || versionHash));
1394
-
1395
- if (versionHash) {
1396
- objectId = this.utils.DecodeVersionHash(versionHash).objectId;
1397
- }
1398
-
1399
- path = UrlJoin("q", versionHash || objectId, "parts");
1400
- _context15.t0 = this.utils;
1401
- _context15.t1 = this.HttpClient;
1402
- _context15.next = 9;
1403
- return this.authClient.AuthorizationHeader({
1404
- libraryId: libraryId,
1405
- objectId: objectId,
1406
- versionHash: versionHash
1407
- });
1408
-
1409
- case 9:
1410
- _context15.t2 = _context15.sent;
1411
- _context15.t3 = path;
1412
- _context15.t4 = {
1413
- headers: _context15.t2,
1414
- method: "GET",
1415
- path: _context15.t3
1416
- };
1417
- _context15.t5 = _context15.t1.Request.call(_context15.t1, _context15.t4);
1418
- _context15.next = 15;
1419
- return _context15.t0.ResponseToJson.call(_context15.t0, _context15.t5);
1420
-
1421
- case 15:
1422
- response = _context15.sent;
1423
- return _context15.abrupt("return", response.parts);
1424
-
1425
- case 17:
1426
- case "end":
1427
- return _context15.stop();
1428
- }
1186
+ while (1) switch (_context15.prev = _context15.next) {
1187
+ case 0:
1188
+ libraryId = _ref26.libraryId, objectId = _ref26.objectId, versionHash = _ref26.versionHash;
1189
+ ValidateParameters({
1190
+ libraryId: libraryId,
1191
+ objectId: objectId,
1192
+ versionHash: versionHash
1193
+ });
1194
+ this.Log("Retrieving parts: ".concat(libraryId, " ").concat(objectId || versionHash));
1195
+ if (versionHash) {
1196
+ objectId = this.utils.DecodeVersionHash(versionHash).objectId;
1197
+ }
1198
+ path = UrlJoin("q", versionHash || objectId, "parts");
1199
+ _context15.t0 = this.utils;
1200
+ _context15.t1 = this.HttpClient;
1201
+ _context15.next = 9;
1202
+ return this.authClient.AuthorizationHeader({
1203
+ libraryId: libraryId,
1204
+ objectId: objectId,
1205
+ versionHash: versionHash
1206
+ });
1207
+ case 9:
1208
+ _context15.t2 = _context15.sent;
1209
+ _context15.t3 = path;
1210
+ _context15.t4 = {
1211
+ headers: _context15.t2,
1212
+ method: "GET",
1213
+ path: _context15.t3
1214
+ };
1215
+ _context15.t5 = _context15.t1.Request.call(_context15.t1, _context15.t4);
1216
+ _context15.next = 15;
1217
+ return _context15.t0.ResponseToJson.call(_context15.t0, _context15.t5);
1218
+ case 15:
1219
+ response = _context15.sent;
1220
+ return _context15.abrupt("return", response.parts);
1221
+ case 17:
1222
+ case "end":
1223
+ return _context15.stop();
1429
1224
  }
1430
1225
  }, _callee15, this);
1431
1226
  }));
1432
-
1433
1227
  return function (_x16) {
1434
1228
  return _ref27.apply(this, arguments);
1435
1229
  };
1436
1230
  }();
1231
+
1437
1232
  /**
1438
1233
  * Get information on a specific part
1439
1234
  *
@@ -1447,65 +1242,56 @@ exports.ContentParts = /*#__PURE__*/function () {
1447
1242
  *
1448
1243
  * @returns {Promise<Object>} - Response containing information about the specified part
1449
1244
  */
1450
-
1451
-
1452
1245
  exports.ContentPart = /*#__PURE__*/function () {
1453
1246
  var _ref29 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(_ref28) {
1454
1247
  var libraryId, objectId, versionHash, partHash, path;
1455
1248
  return _regeneratorRuntime.wrap(function _callee16$(_context16) {
1456
- while (1) {
1457
- switch (_context16.prev = _context16.next) {
1458
- case 0:
1459
- libraryId = _ref28.libraryId, objectId = _ref28.objectId, versionHash = _ref28.versionHash, partHash = _ref28.partHash;
1460
- ValidateParameters({
1461
- libraryId: libraryId,
1462
- objectId: objectId,
1463
- versionHash: versionHash
1464
- });
1465
- ValidatePartHash(partHash);
1466
- this.Log("Retrieving part: ".concat(libraryId, " ").concat(objectId || versionHash, " ").concat(partHash));
1467
-
1468
- if (versionHash) {
1469
- objectId = this.utils.DecodeVersionHash(versionHash).objectId;
1470
- }
1471
-
1472
- path = UrlJoin("q", versionHash || objectId, "parts", partHash);
1473
- _context16.t0 = this.utils;
1474
- _context16.t1 = this.HttpClient;
1475
- _context16.next = 10;
1476
- return this.authClient.AuthorizationHeader({
1477
- libraryId: libraryId,
1478
- objectId: objectId,
1479
- versionHash: versionHash
1480
- });
1481
-
1482
- case 10:
1483
- _context16.t2 = _context16.sent;
1484
- _context16.t3 = path;
1485
- _context16.t4 = {
1486
- headers: _context16.t2,
1487
- method: "GET",
1488
- path: _context16.t3
1489
- };
1490
- _context16.t5 = _context16.t1.Request.call(_context16.t1, _context16.t4);
1491
- _context16.next = 16;
1492
- return _context16.t0.ResponseToJson.call(_context16.t0, _context16.t5);
1493
-
1494
- case 16:
1495
- return _context16.abrupt("return", _context16.sent);
1496
-
1497
- case 17:
1498
- case "end":
1499
- return _context16.stop();
1500
- }
1249
+ while (1) switch (_context16.prev = _context16.next) {
1250
+ case 0:
1251
+ libraryId = _ref28.libraryId, objectId = _ref28.objectId, versionHash = _ref28.versionHash, partHash = _ref28.partHash;
1252
+ ValidateParameters({
1253
+ libraryId: libraryId,
1254
+ objectId: objectId,
1255
+ versionHash: versionHash
1256
+ });
1257
+ ValidatePartHash(partHash);
1258
+ this.Log("Retrieving part: ".concat(libraryId, " ").concat(objectId || versionHash, " ").concat(partHash));
1259
+ if (versionHash) {
1260
+ objectId = this.utils.DecodeVersionHash(versionHash).objectId;
1261
+ }
1262
+ path = UrlJoin("q", versionHash || objectId, "parts", partHash);
1263
+ _context16.t0 = this.utils;
1264
+ _context16.t1 = this.HttpClient;
1265
+ _context16.next = 10;
1266
+ return this.authClient.AuthorizationHeader({
1267
+ libraryId: libraryId,
1268
+ objectId: objectId,
1269
+ versionHash: versionHash
1270
+ });
1271
+ case 10:
1272
+ _context16.t2 = _context16.sent;
1273
+ _context16.t3 = path;
1274
+ _context16.t4 = {
1275
+ headers: _context16.t2,
1276
+ method: "GET",
1277
+ path: _context16.t3
1278
+ };
1279
+ _context16.t5 = _context16.t1.Request.call(_context16.t1, _context16.t4);
1280
+ _context16.next = 16;
1281
+ return _context16.t0.ResponseToJson.call(_context16.t0, _context16.t5);
1282
+ case 16:
1283
+ return _context16.abrupt("return", _context16.sent);
1284
+ case 17:
1285
+ case "end":
1286
+ return _context16.stop();
1501
1287
  }
1502
1288
  }, _callee16, this);
1503
1289
  }));
1504
-
1505
1290
  return function (_x17) {
1506
1291
  return _ref29.apply(this, arguments);
1507
1292
  };
1508
1293
  }();
1294
+
1509
1295
  /**
1510
1296
  * Download a part from a content object. The fromByte and range parameters can be used to specify a
1511
1297
  * specific section of the part to download.
@@ -1530,418 +1316,340 @@ exports.ContentPart = /*#__PURE__*/function () {
1530
1316
  *
1531
1317
  * @returns {Promise<ArrayBuffer> | undefined} - No return if chunked is specified, part data in the requested format otherwise
1532
1318
  */
1533
-
1534
-
1535
1319
  exports.DownloadPart = /*#__PURE__*/function () {
1536
1320
  var _ref31 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(_ref30) {
1537
1321
  var libraryId, objectId, versionHash, writeToken, partHash, _ref30$format, format, _ref30$chunked, chunked, _ref30$chunkSize, chunkSize, callback, encrypted, encryption, path, headers, bytesTotal;
1538
-
1539
1322
  return _regeneratorRuntime.wrap(function _callee17$(_context17) {
1540
- while (1) {
1541
- switch (_context17.prev = _context17.next) {
1542
- case 0:
1543
- libraryId = _ref30.libraryId, objectId = _ref30.objectId, versionHash = _ref30.versionHash, writeToken = _ref30.writeToken, partHash = _ref30.partHash, _ref30$format = _ref30.format, format = _ref30$format === void 0 ? "arrayBuffer" : _ref30$format, _ref30$chunked = _ref30.chunked, chunked = _ref30$chunked === void 0 ? false : _ref30$chunked, _ref30$chunkSize = _ref30.chunkSize, chunkSize = _ref30$chunkSize === void 0 ? 10000000 : _ref30$chunkSize, callback = _ref30.callback;
1544
- ValidateParameters({
1545
- libraryId: libraryId,
1546
- objectId: objectId,
1547
- versionHash: versionHash
1548
- });
1549
- ValidatePartHash(partHash);
1550
-
1551
- if (versionHash) {
1552
- objectId = this.utils.DecodeVersionHash(versionHash).objectId;
1553
- }
1554
-
1555
- encrypted = partHash.startsWith("hqpe");
1556
- encryption = encrypted ? "cgck" : undefined;
1557
- path = UrlJoin("q", writeToken || versionHash || objectId, "data", partHash);
1558
- _context17.next = 9;
1559
- return this.authClient.AuthorizationHeader({
1560
- libraryId: libraryId,
1561
- objectId: objectId,
1562
- versionHash: versionHash,
1563
- encryption: encryption
1564
- });
1565
-
1566
- case 9:
1567
- headers = _context17.sent;
1568
- _context17.next = 12;
1569
- return this.ContentPart({
1570
- libraryId: libraryId,
1571
- objectId: objectId,
1572
- versionHash: versionHash,
1573
- partHash: partHash
1574
- });
1575
-
1576
- case 12:
1577
- bytesTotal = _context17.sent.part.size;
1578
-
1579
- if (!encrypted) {
1580
- _context17.next = 37;
1581
- break;
1582
- }
1583
-
1584
- _context17.t0 = this.utils;
1585
- _context17.t1 = this.signer.address;
1586
- _context17.next = 18;
1587
- return this.ContentObjectOwner({
1588
- objectId: objectId
1589
- });
1590
-
1591
- case 18:
1592
- _context17.t2 = _context17.sent;
1593
-
1594
- if (_context17.t0.EqualAddress.call(_context17.t0, _context17.t1, _context17.t2)) {
1595
- _context17.next = 21;
1596
- break;
1597
- }
1598
-
1599
- headers["X-Content-Fabric-Decryption-Mode"] = "reencrypt";
1600
-
1601
- case 21:
1602
- _context17.t3 = this;
1603
- _context17.next = 24;
1604
- return this.EncryptionConk({
1605
- libraryId: libraryId,
1606
- objectId: objectId,
1607
- download: true
1608
- });
1609
-
1610
- case 24:
1611
- _context17.t4 = _context17.sent;
1612
- _context17.t5 = path;
1613
- _context17.t6 = bytesTotal;
1614
- _context17.t7 = headers;
1615
- _context17.t8 = callback;
1616
- _context17.t9 = format;
1617
- _context17.t10 = chunked;
1618
- _context17.t11 = {
1619
- conk: _context17.t4,
1620
- downloadPath: _context17.t5,
1621
- bytesTotal: _context17.t6,
1622
- headers: _context17.t7,
1623
- callback: _context17.t8,
1624
- format: _context17.t9,
1625
- chunked: _context17.t10
1626
- };
1627
- _context17.next = 34;
1628
- return _context17.t3.DownloadEncrypted.call(_context17.t3, _context17.t11);
1629
-
1630
- case 34:
1631
- return _context17.abrupt("return", _context17.sent);
1632
-
1633
- case 37:
1634
- _context17.next = 39;
1635
- return this.Download({
1636
- downloadPath: path,
1637
- bytesTotal: bytesTotal,
1638
- headers: headers,
1639
- callback: callback,
1640
- format: format,
1641
- chunked: chunked,
1642
- chunkSize: chunkSize
1643
- });
1644
-
1645
- case 39:
1646
- return _context17.abrupt("return", _context17.sent);
1647
-
1648
- case 40:
1649
- case "end":
1650
- return _context17.stop();
1651
- }
1323
+ while (1) switch (_context17.prev = _context17.next) {
1324
+ case 0:
1325
+ libraryId = _ref30.libraryId, objectId = _ref30.objectId, versionHash = _ref30.versionHash, writeToken = _ref30.writeToken, partHash = _ref30.partHash, _ref30$format = _ref30.format, format = _ref30$format === void 0 ? "arrayBuffer" : _ref30$format, _ref30$chunked = _ref30.chunked, chunked = _ref30$chunked === void 0 ? false : _ref30$chunked, _ref30$chunkSize = _ref30.chunkSize, chunkSize = _ref30$chunkSize === void 0 ? 10000000 : _ref30$chunkSize, callback = _ref30.callback;
1326
+ ValidateParameters({
1327
+ libraryId: libraryId,
1328
+ objectId: objectId,
1329
+ versionHash: versionHash
1330
+ });
1331
+ ValidatePartHash(partHash);
1332
+ if (versionHash) {
1333
+ objectId = this.utils.DecodeVersionHash(versionHash).objectId;
1334
+ }
1335
+ encrypted = partHash.startsWith("hqpe");
1336
+ encryption = encrypted ? "cgck" : undefined;
1337
+ path = UrlJoin("q", writeToken || versionHash || objectId, "data", partHash);
1338
+ _context17.next = 9;
1339
+ return this.authClient.AuthorizationHeader({
1340
+ libraryId: libraryId,
1341
+ objectId: objectId,
1342
+ versionHash: versionHash,
1343
+ encryption: encryption
1344
+ });
1345
+ case 9:
1346
+ headers = _context17.sent;
1347
+ _context17.next = 12;
1348
+ return this.ContentPart({
1349
+ libraryId: libraryId,
1350
+ objectId: objectId,
1351
+ versionHash: versionHash,
1352
+ partHash: partHash
1353
+ });
1354
+ case 12:
1355
+ bytesTotal = _context17.sent.part.size;
1356
+ if (!encrypted) {
1357
+ _context17.next = 37;
1358
+ break;
1359
+ }
1360
+ _context17.t0 = this.utils;
1361
+ _context17.t1 = this.signer.address;
1362
+ _context17.next = 18;
1363
+ return this.ContentObjectOwner({
1364
+ objectId: objectId
1365
+ });
1366
+ case 18:
1367
+ _context17.t2 = _context17.sent;
1368
+ if (_context17.t0.EqualAddress.call(_context17.t0, _context17.t1, _context17.t2)) {
1369
+ _context17.next = 21;
1370
+ break;
1371
+ }
1372
+ headers["X-Content-Fabric-Decryption-Mode"] = "reencrypt";
1373
+ case 21:
1374
+ _context17.t3 = this;
1375
+ _context17.next = 24;
1376
+ return this.EncryptionConk({
1377
+ libraryId: libraryId,
1378
+ objectId: objectId,
1379
+ download: true
1380
+ });
1381
+ case 24:
1382
+ _context17.t4 = _context17.sent;
1383
+ _context17.t5 = path;
1384
+ _context17.t6 = bytesTotal;
1385
+ _context17.t7 = headers;
1386
+ _context17.t8 = callback;
1387
+ _context17.t9 = format;
1388
+ _context17.t10 = chunked;
1389
+ _context17.t11 = {
1390
+ conk: _context17.t4,
1391
+ downloadPath: _context17.t5,
1392
+ bytesTotal: _context17.t6,
1393
+ headers: _context17.t7,
1394
+ callback: _context17.t8,
1395
+ format: _context17.t9,
1396
+ chunked: _context17.t10
1397
+ };
1398
+ _context17.next = 34;
1399
+ return _context17.t3.DownloadEncrypted.call(_context17.t3, _context17.t11);
1400
+ case 34:
1401
+ return _context17.abrupt("return", _context17.sent);
1402
+ case 37:
1403
+ _context17.next = 39;
1404
+ return this.Download({
1405
+ downloadPath: path,
1406
+ bytesTotal: bytesTotal,
1407
+ headers: headers,
1408
+ callback: callback,
1409
+ format: format,
1410
+ chunked: chunked,
1411
+ chunkSize: chunkSize
1412
+ });
1413
+ case 39:
1414
+ return _context17.abrupt("return", _context17.sent);
1415
+ case 40:
1416
+ case "end":
1417
+ return _context17.stop();
1652
1418
  }
1653
1419
  }, _callee17, this);
1654
1420
  }));
1655
-
1656
1421
  return function (_x18) {
1657
1422
  return _ref31.apply(this, arguments);
1658
1423
  };
1659
1424
  }();
1660
-
1661
1425
  exports.Download = /*#__PURE__*/function () {
1662
1426
  var _ref33 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(_ref32) {
1663
1427
  var downloadPath, headers, bytesTotal, _ref32$chunked, chunked, _ref32$chunkSize, chunkSize, callback, _ref32$format, format, outputChunks, bytesFinished, totalChunks, i, response;
1664
-
1665
1428
  return _regeneratorRuntime.wrap(function _callee18$(_context18) {
1666
- while (1) {
1667
- switch (_context18.prev = _context18.next) {
1668
- case 0:
1669
- downloadPath = _ref32.downloadPath, headers = _ref32.headers, bytesTotal = _ref32.bytesTotal, _ref32$chunked = _ref32.chunked, chunked = _ref32$chunked === void 0 ? false : _ref32$chunked, _ref32$chunkSize = _ref32.chunkSize, chunkSize = _ref32$chunkSize === void 0 ? 2000000 : _ref32$chunkSize, callback = _ref32.callback, _ref32$format = _ref32.format, format = _ref32$format === void 0 ? "arrayBuffer" : _ref32$format;
1670
-
1671
- if (!(chunked && !callback)) {
1672
- _context18.next = 3;
1673
- break;
1674
- }
1675
-
1676
- throw Error("No callback specified for chunked download");
1677
-
1678
- case 3:
1679
- if (!chunked) {
1680
- outputChunks = [];
1681
- } // Download file in chunks
1682
-
1683
-
1684
- bytesFinished = 0;
1685
- totalChunks = Math.ceil(bytesTotal / chunkSize);
1686
- i = 0;
1687
-
1688
- case 7:
1689
- if (!(i < totalChunks)) {
1690
- _context18.next = 35;
1691
- break;
1692
- }
1693
-
1694
- headers["Range"] = "bytes=".concat(bytesFinished, "-").concat(bytesFinished + chunkSize - 1);
1695
- _context18.next = 11;
1696
- return this.HttpClient.Request({
1697
- path: downloadPath,
1698
- headers: headers,
1699
- method: "GET"
1700
- });
1701
-
1702
- case 11:
1703
- response = _context18.sent;
1704
- bytesFinished = Math.min(bytesFinished + chunkSize, bytesTotal);
1705
-
1706
- if (!chunked) {
1707
- _context18.next = 24;
1708
- break;
1709
- }
1710
-
1711
- _context18.t0 = callback;
1712
- _context18.t1 = bytesFinished;
1713
- _context18.t2 = bytesTotal;
1714
- _context18.next = 19;
1715
- return this.utils.ResponseToFormat(format, response);
1716
-
1717
- case 19:
1718
- _context18.t3 = _context18.sent;
1719
- _context18.t4 = {
1720
- bytesFinished: _context18.t1,
1721
- bytesTotal: _context18.t2,
1722
- chunk: _context18.t3
1723
- };
1724
- (0, _context18.t0)(_context18.t4);
1725
- _context18.next = 32;
1429
+ while (1) switch (_context18.prev = _context18.next) {
1430
+ case 0:
1431
+ downloadPath = _ref32.downloadPath, headers = _ref32.headers, bytesTotal = _ref32.bytesTotal, _ref32$chunked = _ref32.chunked, chunked = _ref32$chunked === void 0 ? false : _ref32$chunked, _ref32$chunkSize = _ref32.chunkSize, chunkSize = _ref32$chunkSize === void 0 ? 2000000 : _ref32$chunkSize, callback = _ref32.callback, _ref32$format = _ref32.format, format = _ref32$format === void 0 ? "arrayBuffer" : _ref32$format;
1432
+ if (!(chunked && !callback)) {
1433
+ _context18.next = 3;
1726
1434
  break;
1435
+ }
1436
+ throw Error("No callback specified for chunked download");
1437
+ case 3:
1438
+ if (!chunked) {
1439
+ outputChunks = [];
1440
+ }
1727
1441
 
1728
- case 24:
1729
- _context18.t5 = outputChunks;
1730
- _context18.t6 = Buffer;
1731
- _context18.next = 28;
1732
- return response.arrayBuffer();
1733
-
1734
- case 28:
1735
- _context18.t7 = _context18.sent;
1736
- _context18.t8 = _context18.t6.from.call(_context18.t6, _context18.t7);
1737
-
1738
- _context18.t5.push.call(_context18.t5, _context18.t8);
1739
-
1740
- if (callback) {
1741
- callback({
1742
- bytesFinished: bytesFinished,
1743
- bytesTotal: bytesTotal
1744
- });
1745
- }
1746
-
1747
- case 32:
1748
- i++;
1749
- _context18.next = 7;
1442
+ // Download file in chunks
1443
+ bytesFinished = 0;
1444
+ totalChunks = Math.ceil(bytesTotal / chunkSize);
1445
+ i = 0;
1446
+ case 7:
1447
+ if (!(i < totalChunks)) {
1448
+ _context18.next = 35;
1750
1449
  break;
1751
-
1752
- case 35:
1753
- if (chunked) {
1754
- _context18.next = 39;
1755
- break;
1756
- }
1757
-
1758
- _context18.next = 38;
1759
- return this.utils.ResponseToFormat(format, new Response(Buffer.concat(outputChunks)));
1760
-
1761
- case 38:
1762
- return _context18.abrupt("return", _context18.sent);
1763
-
1764
- case 39:
1765
- case "end":
1766
- return _context18.stop();
1767
- }
1450
+ }
1451
+ headers["Range"] = "bytes=".concat(bytesFinished, "-").concat(bytesFinished + chunkSize - 1);
1452
+ _context18.next = 11;
1453
+ return this.HttpClient.Request({
1454
+ path: downloadPath,
1455
+ headers: headers,
1456
+ method: "GET"
1457
+ });
1458
+ case 11:
1459
+ response = _context18.sent;
1460
+ bytesFinished = Math.min(bytesFinished + chunkSize, bytesTotal);
1461
+ if (!chunked) {
1462
+ _context18.next = 24;
1463
+ break;
1464
+ }
1465
+ _context18.t0 = callback;
1466
+ _context18.t1 = bytesFinished;
1467
+ _context18.t2 = bytesTotal;
1468
+ _context18.next = 19;
1469
+ return this.utils.ResponseToFormat(format, response);
1470
+ case 19:
1471
+ _context18.t3 = _context18.sent;
1472
+ _context18.t4 = {
1473
+ bytesFinished: _context18.t1,
1474
+ bytesTotal: _context18.t2,
1475
+ chunk: _context18.t3
1476
+ };
1477
+ (0, _context18.t0)(_context18.t4);
1478
+ _context18.next = 32;
1479
+ break;
1480
+ case 24:
1481
+ _context18.t5 = outputChunks;
1482
+ _context18.t6 = Buffer;
1483
+ _context18.next = 28;
1484
+ return response.arrayBuffer();
1485
+ case 28:
1486
+ _context18.t7 = _context18.sent;
1487
+ _context18.t8 = _context18.t6.from.call(_context18.t6, _context18.t7);
1488
+ _context18.t5.push.call(_context18.t5, _context18.t8);
1489
+ if (callback) {
1490
+ callback({
1491
+ bytesFinished: bytesFinished,
1492
+ bytesTotal: bytesTotal
1493
+ });
1494
+ }
1495
+ case 32:
1496
+ i++;
1497
+ _context18.next = 7;
1498
+ break;
1499
+ case 35:
1500
+ if (chunked) {
1501
+ _context18.next = 39;
1502
+ break;
1503
+ }
1504
+ _context18.next = 38;
1505
+ return this.utils.ResponseToFormat(format, new Response(Buffer.concat(outputChunks)));
1506
+ case 38:
1507
+ return _context18.abrupt("return", _context18.sent);
1508
+ case 39:
1509
+ case "end":
1510
+ return _context18.stop();
1768
1511
  }
1769
1512
  }, _callee18, this);
1770
1513
  }));
1771
-
1772
1514
  return function (_x19) {
1773
1515
  return _ref33.apply(this, arguments);
1774
1516
  };
1775
1517
  }();
1776
-
1777
1518
  exports.DownloadEncrypted = /*#__PURE__*/function () {
1778
1519
  var _ref35 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(_ref34) {
1779
1520
  var _this2 = this;
1780
-
1781
1521
  var conk, downloadPath, bytesTotal, headers, callback, _ref34$format, format, _ref34$chunked, chunked, isReencryption, chunkSize, bytesFinished, outputChunks, stream, totalChunks, i, response;
1782
-
1783
1522
  return _regeneratorRuntime.wrap(function _callee20$(_context20) {
1784
- while (1) {
1785
- switch (_context20.prev = _context20.next) {
1786
- case 0:
1787
- conk = _ref34.conk, downloadPath = _ref34.downloadPath, bytesTotal = _ref34.bytesTotal, headers = _ref34.headers, callback = _ref34.callback, _ref34$format = _ref34.format, format = _ref34$format === void 0 ? "arrayBuffer" : _ref34$format, _ref34$chunked = _ref34.chunked, chunked = _ref34$chunked === void 0 ? false : _ref34$chunked;
1788
-
1789
- if (!(chunked && !callback)) {
1790
- _context20.next = 3;
1791
- break;
1792
- }
1793
-
1794
- throw Error("No callback specified for chunked download");
1795
-
1796
- case 3:
1797
- // Must align chunk size with encryption block size
1798
- isReencryption = conk.public_key.startsWith("ktpk");
1799
- chunkSize = this.Crypto.EncryptedBlockSize(1000000, isReencryption);
1800
- bytesFinished = 0;
1801
- format = format.toLowerCase();
1802
- outputChunks = []; // Set up decryption stream
1803
-
1804
- _context20.next = 10;
1805
- return this.Crypto.OpenDecryptionStream(conk);
1806
-
1807
- case 10:
1808
- stream = _context20.sent;
1809
- stream.on("data", /*#__PURE__*/function () {
1810
- var _ref36 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(chunk) {
1811
- var arrayBuffer;
1812
- return _regeneratorRuntime.wrap(function _callee19$(_context19) {
1813
- while (1) {
1814
- switch (_context19.prev = _context19.next) {
1815
- case 0:
1816
- if (!chunked) {
1817
- _context19.next = 13;
1818
- break;
1819
- }
1820
-
1821
- if (!(format !== "buffer")) {
1822
- _context19.next = 10;
1823
- break;
1824
- }
1825
-
1826
- arrayBuffer = chunk.buffer.slice(chunk.byteOffset, chunk.byteOffset + chunk.byteLength);
1827
-
1828
- if (!(format === "arraybuffer")) {
1829
- _context19.next = 7;
1830
- break;
1831
- }
1832
-
1833
- chunk = arrayBuffer;
1834
- _context19.next = 10;
1835
- break;
1836
-
1837
- case 7:
1838
- _context19.next = 9;
1839
- return _this2.utils.ResponseToFormat(format, new Response(arrayBuffer));
1840
-
1841
- case 9:
1842
- chunk = _context19.sent;
1843
-
1844
- case 10:
1845
- callback({
1846
- bytesFinished: bytesFinished,
1847
- bytesTotal: bytesTotal,
1848
- chunk: chunk
1849
- });
1850
- _context19.next = 15;
1851
- break;
1852
-
1853
- case 13:
1854
- if (callback) {
1855
- callback({
1856
- bytesFinished: bytesFinished,
1857
- bytesTotal: bytesTotal
1858
- });
1859
- }
1860
-
1861
- outputChunks.push(chunk);
1862
-
1863
- case 15:
1864
- case "end":
1865
- return _context19.stop();
1523
+ while (1) switch (_context20.prev = _context20.next) {
1524
+ case 0:
1525
+ conk = _ref34.conk, downloadPath = _ref34.downloadPath, bytesTotal = _ref34.bytesTotal, headers = _ref34.headers, callback = _ref34.callback, _ref34$format = _ref34.format, format = _ref34$format === void 0 ? "arrayBuffer" : _ref34$format, _ref34$chunked = _ref34.chunked, chunked = _ref34$chunked === void 0 ? false : _ref34$chunked;
1526
+ if (!(chunked && !callback)) {
1527
+ _context20.next = 3;
1528
+ break;
1529
+ }
1530
+ throw Error("No callback specified for chunked download");
1531
+ case 3:
1532
+ // Must align chunk size with encryption block size
1533
+ isReencryption = conk.public_key.startsWith("ktpk");
1534
+ chunkSize = this.Crypto.EncryptedBlockSize(1000000, isReencryption);
1535
+ bytesFinished = 0;
1536
+ format = format.toLowerCase();
1537
+ outputChunks = []; // Set up decryption stream
1538
+ _context20.next = 10;
1539
+ return this.Crypto.OpenDecryptionStream(conk);
1540
+ case 10:
1541
+ stream = _context20.sent;
1542
+ stream.on("data", /*#__PURE__*/function () {
1543
+ var _ref36 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(chunk) {
1544
+ var arrayBuffer;
1545
+ return _regeneratorRuntime.wrap(function _callee19$(_context19) {
1546
+ while (1) switch (_context19.prev = _context19.next) {
1547
+ case 0:
1548
+ if (!chunked) {
1549
+ _context19.next = 13;
1550
+ break;
1866
1551
  }
1867
- }
1868
- }, _callee19);
1869
- }));
1870
-
1871
- return function (_x21) {
1872
- return _ref36.apply(this, arguments);
1873
- };
1874
- }());
1875
- totalChunks = Math.ceil(bytesTotal / chunkSize);
1876
- i = 0;
1877
-
1878
- case 14:
1879
- if (!(i < totalChunks)) {
1880
- _context20.next = 30;
1881
- break;
1882
- }
1883
-
1884
- headers["Range"] = "bytes=".concat(bytesFinished, "-").concat(bytesFinished + chunkSize - 1);
1885
- _context20.next = 18;
1886
- return this.HttpClient.Request({
1887
- headers: headers,
1888
- method: "GET",
1889
- path: downloadPath
1890
- });
1891
-
1892
- case 18:
1893
- response = _context20.sent;
1894
- bytesFinished = Math.min(bytesFinished + chunkSize, bytesTotal);
1895
- _context20.t0 = stream;
1896
- _context20.t1 = Uint8Array;
1897
- _context20.next = 24;
1898
- return response.arrayBuffer();
1899
-
1900
- case 24:
1901
- _context20.t2 = _context20.sent;
1902
- _context20.t3 = new _context20.t1(_context20.t2);
1903
-
1904
- _context20.t0.write.call(_context20.t0, _context20.t3);
1905
-
1906
- case 27:
1907
- i++;
1908
- _context20.next = 14;
1552
+ if (!(format !== "buffer")) {
1553
+ _context19.next = 10;
1554
+ break;
1555
+ }
1556
+ arrayBuffer = chunk.buffer.slice(chunk.byteOffset, chunk.byteOffset + chunk.byteLength);
1557
+ if (!(format === "arraybuffer")) {
1558
+ _context19.next = 7;
1559
+ break;
1560
+ }
1561
+ chunk = arrayBuffer;
1562
+ _context19.next = 10;
1563
+ break;
1564
+ case 7:
1565
+ _context19.next = 9;
1566
+ return _this2.utils.ResponseToFormat(format, new Response(arrayBuffer));
1567
+ case 9:
1568
+ chunk = _context19.sent;
1569
+ case 10:
1570
+ callback({
1571
+ bytesFinished: bytesFinished,
1572
+ bytesTotal: bytesTotal,
1573
+ chunk: chunk
1574
+ });
1575
+ _context19.next = 15;
1576
+ break;
1577
+ case 13:
1578
+ if (callback) {
1579
+ callback({
1580
+ bytesFinished: bytesFinished,
1581
+ bytesTotal: bytesTotal
1582
+ });
1583
+ }
1584
+ outputChunks.push(chunk);
1585
+ case 15:
1586
+ case "end":
1587
+ return _context19.stop();
1588
+ }
1589
+ }, _callee19);
1590
+ }));
1591
+ return function (_x21) {
1592
+ return _ref36.apply(this, arguments);
1593
+ };
1594
+ }());
1595
+ totalChunks = Math.ceil(bytesTotal / chunkSize);
1596
+ i = 0;
1597
+ case 14:
1598
+ if (!(i < totalChunks)) {
1599
+ _context20.next = 30;
1909
1600
  break;
1910
-
1911
- case 30:
1912
- // Wait for decryption to complete
1913
- stream.end();
1914
- _context20.next = 33;
1915
- return new Promise(function (resolve) {
1916
- return stream.on("finish", function () {
1917
- resolve();
1918
- });
1601
+ }
1602
+ headers["Range"] = "bytes=".concat(bytesFinished, "-").concat(bytesFinished + chunkSize - 1);
1603
+ _context20.next = 18;
1604
+ return this.HttpClient.Request({
1605
+ headers: headers,
1606
+ method: "GET",
1607
+ path: downloadPath
1608
+ });
1609
+ case 18:
1610
+ response = _context20.sent;
1611
+ bytesFinished = Math.min(bytesFinished + chunkSize, bytesTotal);
1612
+ _context20.t0 = stream;
1613
+ _context20.t1 = Uint8Array;
1614
+ _context20.next = 24;
1615
+ return response.arrayBuffer();
1616
+ case 24:
1617
+ _context20.t2 = _context20.sent;
1618
+ _context20.t3 = new _context20.t1(_context20.t2);
1619
+ _context20.t0.write.call(_context20.t0, _context20.t3);
1620
+ case 27:
1621
+ i++;
1622
+ _context20.next = 14;
1623
+ break;
1624
+ case 30:
1625
+ // Wait for decryption to complete
1626
+ stream.end();
1627
+ _context20.next = 33;
1628
+ return new Promise(function (resolve) {
1629
+ return stream.on("finish", function () {
1630
+ resolve();
1919
1631
  });
1920
-
1921
- case 33:
1922
- if (chunked) {
1923
- _context20.next = 37;
1924
- break;
1925
- }
1926
-
1927
- _context20.next = 36;
1928
- return this.utils.ResponseToFormat(format, new Response(Buffer.concat(outputChunks)));
1929
-
1930
- case 36:
1931
- return _context20.abrupt("return", _context20.sent);
1932
-
1933
- case 37:
1934
- case "end":
1935
- return _context20.stop();
1936
- }
1632
+ });
1633
+ case 33:
1634
+ if (chunked) {
1635
+ _context20.next = 37;
1636
+ break;
1637
+ }
1638
+ _context20.next = 36;
1639
+ return this.utils.ResponseToFormat(format, new Response(Buffer.concat(outputChunks)));
1640
+ case 36:
1641
+ return _context20.abrupt("return", _context20.sent);
1642
+ case 37:
1643
+ case "end":
1644
+ return _context20.stop();
1937
1645
  }
1938
1646
  }, _callee20, this);
1939
1647
  }));
1940
-
1941
1648
  return function (_x20) {
1942
1649
  return _ref35.apply(this, arguments);
1943
1650
  };
1944
1651
  }();
1652
+
1945
1653
  /**
1946
1654
  * Create a part upload draft
1947
1655
  *
@@ -1955,63 +1663,56 @@ exports.DownloadEncrypted = /*#__PURE__*/function () {
1955
1663
  *
1956
1664
  * @returns {Promise<string>} - The part write token for the part draft
1957
1665
  */
1958
-
1959
-
1960
1666
  exports.CreatePart = /*#__PURE__*/function () {
1961
1667
  var _ref38 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee21(_ref37) {
1962
1668
  var libraryId, objectId, writeToken, encryption, path, openResponse;
1963
1669
  return _regeneratorRuntime.wrap(function _callee21$(_context21) {
1964
- while (1) {
1965
- switch (_context21.prev = _context21.next) {
1966
- case 0:
1967
- libraryId = _ref37.libraryId, objectId = _ref37.objectId, writeToken = _ref37.writeToken, encryption = _ref37.encryption;
1968
- ValidateParameters({
1969
- libraryId: libraryId,
1970
- objectId: objectId
1971
- });
1972
- ValidateWriteToken(writeToken);
1973
- path = UrlJoin("q", writeToken, "parts");
1974
- _context21.t0 = this.utils;
1975
- _context21.t1 = this.HttpClient;
1976
- _context21.next = 8;
1977
- return this.authClient.AuthorizationHeader({
1978
- libraryId: libraryId,
1979
- objectId: objectId,
1980
- update: true,
1981
- encryption: encryption
1982
- });
1983
-
1984
- case 8:
1985
- _context21.t2 = _context21.sent;
1986
- _context21.t3 = path;
1987
- _context21.t4 = {
1988
- headers: _context21.t2,
1989
- method: "POST",
1990
- path: _context21.t3,
1991
- bodyType: "BINARY",
1992
- body: "",
1993
- failover: false
1994
- };
1995
- _context21.t5 = _context21.t1.Request.call(_context21.t1, _context21.t4);
1996
- _context21.next = 14;
1997
- return _context21.t0.ResponseToJson.call(_context21.t0, _context21.t5);
1998
-
1999
- case 14:
2000
- openResponse = _context21.sent;
2001
- return _context21.abrupt("return", openResponse.part.write_token);
2002
-
2003
- case 16:
2004
- case "end":
2005
- return _context21.stop();
2006
- }
1670
+ while (1) switch (_context21.prev = _context21.next) {
1671
+ case 0:
1672
+ libraryId = _ref37.libraryId, objectId = _ref37.objectId, writeToken = _ref37.writeToken, encryption = _ref37.encryption;
1673
+ ValidateParameters({
1674
+ libraryId: libraryId,
1675
+ objectId: objectId
1676
+ });
1677
+ ValidateWriteToken(writeToken);
1678
+ path = UrlJoin("q", writeToken, "parts");
1679
+ _context21.t0 = this.utils;
1680
+ _context21.t1 = this.HttpClient;
1681
+ _context21.next = 8;
1682
+ return this.authClient.AuthorizationHeader({
1683
+ libraryId: libraryId,
1684
+ objectId: objectId,
1685
+ update: true,
1686
+ encryption: encryption
1687
+ });
1688
+ case 8:
1689
+ _context21.t2 = _context21.sent;
1690
+ _context21.t3 = path;
1691
+ _context21.t4 = {
1692
+ headers: _context21.t2,
1693
+ method: "POST",
1694
+ path: _context21.t3,
1695
+ bodyType: "BINARY",
1696
+ body: "",
1697
+ failover: false
1698
+ };
1699
+ _context21.t5 = _context21.t1.Request.call(_context21.t1, _context21.t4);
1700
+ _context21.next = 14;
1701
+ return _context21.t0.ResponseToJson.call(_context21.t0, _context21.t5);
1702
+ case 14:
1703
+ openResponse = _context21.sent;
1704
+ return _context21.abrupt("return", openResponse.part.write_token);
1705
+ case 16:
1706
+ case "end":
1707
+ return _context21.stop();
2007
1708
  }
2008
1709
  }, _callee21, this);
2009
1710
  }));
2010
-
2011
1711
  return function (_x22) {
2012
1712
  return _ref38.apply(this, arguments);
2013
1713
  };
2014
1714
  }();
1715
+
2015
1716
  /**
2016
1717
  * Upload data to an open part draft
2017
1718
  *
@@ -2027,82 +1728,71 @@ exports.CreatePart = /*#__PURE__*/function () {
2027
1728
  *
2028
1729
  * @returns {Promise<string>} - The part write token for the part draft
2029
1730
  */
2030
-
2031
-
2032
1731
  exports.UploadPartChunk = /*#__PURE__*/function () {
2033
1732
  var _ref40 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(_ref39) {
2034
1733
  var libraryId, objectId, writeToken, partWriteToken, chunk, encryption, conk, path;
2035
1734
  return _regeneratorRuntime.wrap(function _callee22$(_context22) {
2036
- while (1) {
2037
- switch (_context22.prev = _context22.next) {
2038
- case 0:
2039
- libraryId = _ref39.libraryId, objectId = _ref39.objectId, writeToken = _ref39.writeToken, partWriteToken = _ref39.partWriteToken, chunk = _ref39.chunk, encryption = _ref39.encryption;
2040
- ValidateParameters({
2041
- libraryId: libraryId,
2042
- objectId: objectId
2043
- });
2044
- ValidateWriteToken(writeToken);
2045
-
2046
- if (!(encryption && encryption !== "none")) {
2047
- _context22.next = 10;
2048
- break;
2049
- }
2050
-
2051
- _context22.next = 6;
2052
- return this.EncryptionConk({
2053
- libraryId: libraryId,
2054
- objectId: objectId,
2055
- writeToken: writeToken
2056
- });
2057
-
2058
- case 6:
2059
- conk = _context22.sent;
2060
- _context22.next = 9;
2061
- return this.Crypto.Encrypt(conk, chunk);
2062
-
2063
- case 9:
2064
- chunk = _context22.sent;
2065
-
2066
- case 10:
2067
- path = UrlJoin("q", writeToken, "parts");
2068
- _context22.t0 = this.utils;
2069
- _context22.t1 = this.HttpClient;
2070
- _context22.next = 15;
2071
- return this.authClient.AuthorizationHeader({
2072
- libraryId: libraryId,
2073
- objectId: objectId,
2074
- update: true,
2075
- encryption: encryption
2076
- });
2077
-
2078
- case 15:
2079
- _context22.t2 = _context22.sent;
2080
- _context22.t3 = UrlJoin(path, partWriteToken);
2081
- _context22.t4 = chunk;
2082
- _context22.t5 = {
2083
- headers: _context22.t2,
2084
- method: "POST",
2085
- path: _context22.t3,
2086
- body: _context22.t4,
2087
- bodyType: "BINARY",
2088
- failover: false
2089
- };
2090
- _context22.t6 = _context22.t1.Request.call(_context22.t1, _context22.t5);
2091
- _context22.next = 22;
2092
- return _context22.t0.ResponseToJson.call(_context22.t0, _context22.t6);
2093
-
2094
- case 22:
2095
- case "end":
2096
- return _context22.stop();
2097
- }
1735
+ while (1) switch (_context22.prev = _context22.next) {
1736
+ case 0:
1737
+ libraryId = _ref39.libraryId, objectId = _ref39.objectId, writeToken = _ref39.writeToken, partWriteToken = _ref39.partWriteToken, chunk = _ref39.chunk, encryption = _ref39.encryption;
1738
+ ValidateParameters({
1739
+ libraryId: libraryId,
1740
+ objectId: objectId
1741
+ });
1742
+ ValidateWriteToken(writeToken);
1743
+ if (!(encryption && encryption !== "none")) {
1744
+ _context22.next = 10;
1745
+ break;
1746
+ }
1747
+ _context22.next = 6;
1748
+ return this.EncryptionConk({
1749
+ libraryId: libraryId,
1750
+ objectId: objectId,
1751
+ writeToken: writeToken
1752
+ });
1753
+ case 6:
1754
+ conk = _context22.sent;
1755
+ _context22.next = 9;
1756
+ return this.Crypto.Encrypt(conk, chunk);
1757
+ case 9:
1758
+ chunk = _context22.sent;
1759
+ case 10:
1760
+ path = UrlJoin("q", writeToken, "parts");
1761
+ _context22.t0 = this.utils;
1762
+ _context22.t1 = this.HttpClient;
1763
+ _context22.next = 15;
1764
+ return this.authClient.AuthorizationHeader({
1765
+ libraryId: libraryId,
1766
+ objectId: objectId,
1767
+ update: true,
1768
+ encryption: encryption
1769
+ });
1770
+ case 15:
1771
+ _context22.t2 = _context22.sent;
1772
+ _context22.t3 = UrlJoin(path, partWriteToken);
1773
+ _context22.t4 = chunk;
1774
+ _context22.t5 = {
1775
+ headers: _context22.t2,
1776
+ method: "POST",
1777
+ path: _context22.t3,
1778
+ body: _context22.t4,
1779
+ bodyType: "BINARY",
1780
+ failover: false
1781
+ };
1782
+ _context22.t6 = _context22.t1.Request.call(_context22.t1, _context22.t5);
1783
+ _context22.next = 22;
1784
+ return _context22.t0.ResponseToJson.call(_context22.t0, _context22.t6);
1785
+ case 22:
1786
+ case "end":
1787
+ return _context22.stop();
2098
1788
  }
2099
1789
  }, _callee22, this);
2100
1790
  }));
2101
-
2102
1791
  return function (_x23) {
2103
1792
  return _ref40.apply(this, arguments);
2104
1793
  };
2105
1794
  }();
1795
+
2106
1796
  /**
2107
1797
  * Finalize an open part draft
2108
1798
  *
@@ -2117,66 +1807,58 @@ exports.UploadPartChunk = /*#__PURE__*/function () {
2117
1807
  *
2118
1808
  * @returns {Promise<object>} - The finalize response for the new part
2119
1809
  */
2120
-
2121
-
2122
1810
  exports.FinalizePart = /*#__PURE__*/function () {
2123
1811
  var _ref42 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23(_ref41) {
2124
1812
  var libraryId, objectId, writeToken, partWriteToken, encryption, path;
2125
1813
  return _regeneratorRuntime.wrap(function _callee23$(_context23) {
2126
- while (1) {
2127
- switch (_context23.prev = _context23.next) {
2128
- case 0:
2129
- libraryId = _ref41.libraryId, objectId = _ref41.objectId, writeToken = _ref41.writeToken, partWriteToken = _ref41.partWriteToken, encryption = _ref41.encryption;
2130
- ValidateParameters({
2131
- libraryId: libraryId,
2132
- objectId: objectId
2133
- });
2134
- ValidateWriteToken(writeToken);
2135
- path = UrlJoin("q", writeToken, "parts");
2136
- _context23.t0 = this.utils;
2137
- _context23.t1 = this.HttpClient;
2138
- _context23.next = 8;
2139
- return this.authClient.AuthorizationHeader({
2140
- libraryId: libraryId,
2141
- objectId: objectId,
2142
- update: true,
2143
- encryption: encryption
2144
- });
2145
-
2146
- case 8:
2147
- _context23.t2 = _context23.sent;
2148
- _context23.t3 = UrlJoin(path, partWriteToken);
2149
- _context23.t4 = {
2150
- headers: _context23.t2,
2151
- method: "POST",
2152
- path: _context23.t3,
2153
- bodyType: "BINARY",
2154
- body: "",
2155
- failover: false
2156
- };
2157
- _context23.next = 13;
2158
- return _context23.t1.Request.call(_context23.t1, _context23.t4);
2159
-
2160
- case 13:
2161
- _context23.t5 = _context23.sent;
2162
- _context23.next = 16;
2163
- return _context23.t0.ResponseToJson.call(_context23.t0, _context23.t5);
2164
-
2165
- case 16:
2166
- return _context23.abrupt("return", _context23.sent);
2167
-
2168
- case 17:
2169
- case "end":
2170
- return _context23.stop();
2171
- }
1814
+ while (1) switch (_context23.prev = _context23.next) {
1815
+ case 0:
1816
+ libraryId = _ref41.libraryId, objectId = _ref41.objectId, writeToken = _ref41.writeToken, partWriteToken = _ref41.partWriteToken, encryption = _ref41.encryption;
1817
+ ValidateParameters({
1818
+ libraryId: libraryId,
1819
+ objectId: objectId
1820
+ });
1821
+ ValidateWriteToken(writeToken);
1822
+ path = UrlJoin("q", writeToken, "parts");
1823
+ _context23.t0 = this.utils;
1824
+ _context23.t1 = this.HttpClient;
1825
+ _context23.next = 8;
1826
+ return this.authClient.AuthorizationHeader({
1827
+ libraryId: libraryId,
1828
+ objectId: objectId,
1829
+ update: true,
1830
+ encryption: encryption
1831
+ });
1832
+ case 8:
1833
+ _context23.t2 = _context23.sent;
1834
+ _context23.t3 = UrlJoin(path, partWriteToken);
1835
+ _context23.t4 = {
1836
+ headers: _context23.t2,
1837
+ method: "POST",
1838
+ path: _context23.t3,
1839
+ bodyType: "BINARY",
1840
+ body: "",
1841
+ failover: false
1842
+ };
1843
+ _context23.next = 13;
1844
+ return _context23.t1.Request.call(_context23.t1, _context23.t4);
1845
+ case 13:
1846
+ _context23.t5 = _context23.sent;
1847
+ _context23.next = 16;
1848
+ return _context23.t0.ResponseToJson.call(_context23.t0, _context23.t5);
1849
+ case 16:
1850
+ return _context23.abrupt("return", _context23.sent);
1851
+ case 17:
1852
+ case "end":
1853
+ return _context23.stop();
2172
1854
  }
2173
1855
  }, _callee23, this);
2174
1856
  }));
2175
-
2176
1857
  return function (_x24) {
2177
1858
  return _ref42.apply(this, arguments);
2178
1859
  };
2179
1860
  }();
1861
+
2180
1862
  /**
2181
1863
  * Upload part to an object draft
2182
1864
  *
@@ -2198,98 +1880,83 @@ exports.FinalizePart = /*#__PURE__*/function () {
2198
1880
  *
2199
1881
  * @returns {Promise<Object>} - Response containing information about the uploaded part
2200
1882
  */
2201
-
2202
-
2203
1883
  exports.UploadPart = /*#__PURE__*/function () {
2204
1884
  var _ref44 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee24(_ref43) {
2205
1885
  var libraryId, objectId, writeToken, data, _ref43$encryption, encryption, _ref43$chunkSize, chunkSize, callback, partWriteToken, size, i, chunk;
2206
-
2207
1886
  return _regeneratorRuntime.wrap(function _callee24$(_context24) {
2208
- while (1) {
2209
- switch (_context24.prev = _context24.next) {
2210
- case 0:
2211
- libraryId = _ref43.libraryId, objectId = _ref43.objectId, writeToken = _ref43.writeToken, data = _ref43.data, _ref43$encryption = _ref43.encryption, encryption = _ref43$encryption === void 0 ? "none" : _ref43$encryption, _ref43$chunkSize = _ref43.chunkSize, chunkSize = _ref43$chunkSize === void 0 ? 10000000 : _ref43$chunkSize, callback = _ref43.callback;
2212
- ValidateParameters({
2213
- libraryId: libraryId,
2214
- objectId: objectId
2215
- });
2216
- ValidateWriteToken(writeToken);
2217
- _context24.next = 5;
2218
- return this.CreatePart({
2219
- libraryId: libraryId,
2220
- objectId: objectId,
2221
- writeToken: writeToken,
2222
- encryption: encryption
2223
- });
2224
-
2225
- case 5:
2226
- partWriteToken = _context24.sent;
2227
- size = data.length || data.byteLength || data.size;
2228
-
2229
- if (callback) {
2230
- callback({
2231
- bytesFinished: 0,
2232
- bytesTotal: size
2233
- });
2234
- }
2235
-
2236
- i = 0;
2237
-
2238
- case 9:
2239
- if (!(i < size)) {
2240
- _context24.next = 17;
2241
- break;
2242
- }
2243
-
2244
- chunk = data.slice(i, i + chunkSize);
2245
- _context24.next = 13;
2246
- return this.UploadPartChunk({
2247
- libraryId: libraryId,
2248
- objectId: objectId,
2249
- writeToken: writeToken,
2250
- partWriteToken: partWriteToken,
2251
- chunk: chunk,
2252
- encryption: encryption
1887
+ while (1) switch (_context24.prev = _context24.next) {
1888
+ case 0:
1889
+ libraryId = _ref43.libraryId, objectId = _ref43.objectId, writeToken = _ref43.writeToken, data = _ref43.data, _ref43$encryption = _ref43.encryption, encryption = _ref43$encryption === void 0 ? "none" : _ref43$encryption, _ref43$chunkSize = _ref43.chunkSize, chunkSize = _ref43$chunkSize === void 0 ? 10000000 : _ref43$chunkSize, callback = _ref43.callback;
1890
+ ValidateParameters({
1891
+ libraryId: libraryId,
1892
+ objectId: objectId
1893
+ });
1894
+ ValidateWriteToken(writeToken);
1895
+ _context24.next = 5;
1896
+ return this.CreatePart({
1897
+ libraryId: libraryId,
1898
+ objectId: objectId,
1899
+ writeToken: writeToken,
1900
+ encryption: encryption
1901
+ });
1902
+ case 5:
1903
+ partWriteToken = _context24.sent;
1904
+ size = data.length || data.byteLength || data.size;
1905
+ if (callback) {
1906
+ callback({
1907
+ bytesFinished: 0,
1908
+ bytesTotal: size
2253
1909
  });
2254
-
2255
- case 13:
2256
- if (callback) {
2257
- callback({
2258
- bytesFinished: Math.min(i + chunkSize, size),
2259
- bytesTotal: size
2260
- });
2261
- }
2262
-
2263
- case 14:
2264
- i += chunkSize;
2265
- _context24.next = 9;
1910
+ }
1911
+ i = 0;
1912
+ case 9:
1913
+ if (!(i < size)) {
1914
+ _context24.next = 17;
2266
1915
  break;
2267
-
2268
- case 17:
2269
- _context24.next = 19;
2270
- return this.FinalizePart({
2271
- libraryId: libraryId,
2272
- objectId: objectId,
2273
- writeToken: writeToken,
2274
- partWriteToken: partWriteToken,
2275
- encryption: encryption
1916
+ }
1917
+ chunk = data.slice(i, i + chunkSize);
1918
+ _context24.next = 13;
1919
+ return this.UploadPartChunk({
1920
+ libraryId: libraryId,
1921
+ objectId: objectId,
1922
+ writeToken: writeToken,
1923
+ partWriteToken: partWriteToken,
1924
+ chunk: chunk,
1925
+ encryption: encryption
1926
+ });
1927
+ case 13:
1928
+ if (callback) {
1929
+ callback({
1930
+ bytesFinished: Math.min(i + chunkSize, size),
1931
+ bytesTotal: size
2276
1932
  });
2277
-
2278
- case 19:
2279
- return _context24.abrupt("return", _context24.sent);
2280
-
2281
- case 20:
2282
- case "end":
2283
- return _context24.stop();
2284
- }
1933
+ }
1934
+ case 14:
1935
+ i += chunkSize;
1936
+ _context24.next = 9;
1937
+ break;
1938
+ case 17:
1939
+ _context24.next = 19;
1940
+ return this.FinalizePart({
1941
+ libraryId: libraryId,
1942
+ objectId: objectId,
1943
+ writeToken: writeToken,
1944
+ partWriteToken: partWriteToken,
1945
+ encryption: encryption
1946
+ });
1947
+ case 19:
1948
+ return _context24.abrupt("return", _context24.sent);
1949
+ case 20:
1950
+ case "end":
1951
+ return _context24.stop();
2285
1952
  }
2286
1953
  }, _callee24, this);
2287
1954
  }));
2288
-
2289
1955
  return function (_x25) {
2290
1956
  return _ref44.apply(this, arguments);
2291
1957
  };
2292
1958
  }();
1959
+
2293
1960
  /**
2294
1961
  * Delete the specified part from a content draft
2295
1962
  *
@@ -2301,51 +1968,44 @@ exports.UploadPart = /*#__PURE__*/function () {
2301
1968
  * @param {string} writeToken - Write token of the content object draft
2302
1969
  * @param {string} partHash - Hash of the part to delete
2303
1970
  */
2304
-
2305
-
2306
1971
  exports.DeletePart = /*#__PURE__*/function () {
2307
1972
  var _ref46 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee25(_ref45) {
2308
1973
  var libraryId, objectId, writeToken, partHash, path;
2309
1974
  return _regeneratorRuntime.wrap(function _callee25$(_context25) {
2310
- while (1) {
2311
- switch (_context25.prev = _context25.next) {
2312
- case 0:
2313
- libraryId = _ref45.libraryId, objectId = _ref45.objectId, writeToken = _ref45.writeToken, partHash = _ref45.partHash;
2314
- ValidateParameters({
2315
- libraryId: libraryId,
2316
- objectId: objectId
2317
- });
2318
- ValidateWriteToken(writeToken);
2319
- ValidatePartHash(partHash);
2320
- path = UrlJoin("q", writeToken, "parts", partHash);
2321
- _context25.t0 = this.HttpClient;
2322
- _context25.next = 8;
2323
- return this.authClient.AuthorizationHeader({
2324
- libraryId: libraryId,
2325
- objectId: objectId,
2326
- update: true
2327
- });
2328
-
2329
- case 8:
2330
- _context25.t1 = _context25.sent;
2331
- _context25.t2 = path;
2332
- _context25.t3 = {
2333
- headers: _context25.t1,
2334
- method: "DELETE",
2335
- path: _context25.t2,
2336
- failover: false
2337
- };
2338
- _context25.next = 13;
2339
- return _context25.t0.Request.call(_context25.t0, _context25.t3);
2340
-
2341
- case 13:
2342
- case "end":
2343
- return _context25.stop();
2344
- }
1975
+ while (1) switch (_context25.prev = _context25.next) {
1976
+ case 0:
1977
+ libraryId = _ref45.libraryId, objectId = _ref45.objectId, writeToken = _ref45.writeToken, partHash = _ref45.partHash;
1978
+ ValidateParameters({
1979
+ libraryId: libraryId,
1980
+ objectId: objectId
1981
+ });
1982
+ ValidateWriteToken(writeToken);
1983
+ ValidatePartHash(partHash);
1984
+ path = UrlJoin("q", writeToken, "parts", partHash);
1985
+ _context25.t0 = this.HttpClient;
1986
+ _context25.next = 8;
1987
+ return this.authClient.AuthorizationHeader({
1988
+ libraryId: libraryId,
1989
+ objectId: objectId,
1990
+ update: true
1991
+ });
1992
+ case 8:
1993
+ _context25.t1 = _context25.sent;
1994
+ _context25.t2 = path;
1995
+ _context25.t3 = {
1996
+ headers: _context25.t1,
1997
+ method: "DELETE",
1998
+ path: _context25.t2,
1999
+ failover: false
2000
+ };
2001
+ _context25.next = 13;
2002
+ return _context25.t0.Request.call(_context25.t0, _context25.t3);
2003
+ case 13:
2004
+ case "end":
2005
+ return _context25.stop();
2345
2006
  }
2346
2007
  }, _callee25, this);
2347
2008
  }));
2348
-
2349
2009
  return function (_x26) {
2350
2010
  return _ref46.apply(this, arguments);
2351
2011
  };