@eluvio/elv-client-js 4.0.8 → 4.0.9

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 +10 -11
  2. package/dist/ElvClient-node-min.js +10 -11
  3. package/dist/ElvFrameClient-min.js +10 -11
  4. package/dist/ElvPermissionsClient-min.js +9 -10
  5. package/dist/ElvWalletClient-min.js +10 -11
  6. package/dist/ElvWalletClient-node-min.js +9 -10
  7. package/dist/src/AuthorizationClient.js +2069 -1548
  8. package/dist/src/ContentObjectVerification.js +185 -134
  9. package/dist/src/Crypto.js +323 -226
  10. package/dist/src/ElvClient.js +1118 -824
  11. package/dist/src/ElvWallet.js +106 -64
  12. package/dist/src/EthClient.js +974 -719
  13. package/dist/src/FrameClient.js +318 -222
  14. package/dist/src/HttpClient.js +154 -112
  15. package/dist/src/Id.js +6 -1
  16. package/dist/src/LogMessage.js +8 -4
  17. package/dist/src/PermissionsClient.js +1271 -973
  18. package/dist/src/RemoteSigner.js +232 -161
  19. package/dist/src/UserProfileClient.js +1038 -781
  20. package/dist/src/Utils.js +302 -160
  21. package/dist/src/Validation.js +17 -2
  22. package/dist/src/client/ABRPublishing.js +942 -772
  23. package/dist/src/client/AccessGroups.js +1095 -849
  24. package/dist/src/client/ContentAccess.js +4198 -3272
  25. package/dist/src/client/ContentManagement.js +2284 -1812
  26. package/dist/src/client/Contracts.js +614 -468
  27. package/dist/src/client/Files.js +1831 -1491
  28. package/dist/src/client/NFT.js +116 -94
  29. package/dist/src/client/NTP.js +425 -326
  30. package/dist/src/index.js +5 -2
  31. package/dist/src/walletClient/ClientMethods.js +1766 -1350
  32. package/dist/src/walletClient/Configuration.js +2 -4
  33. package/dist/src/walletClient/Notifications.js +127 -98
  34. package/dist/src/walletClient/Profile.js +246 -184
  35. package/dist/src/walletClient/Utils.js +124 -78
  36. package/dist/src/walletClient/index.js +1498 -1169
  37. package/package.json +1 -1
  38. package/src/client/ContentAccess.js +27 -10
  39. package/src/walletClient/ClientMethods.js +18 -10
  40. package/src/walletClient/index.js +7 -2
@@ -1,29 +1,36 @@
1
1
  var _defineProperty = require("@babel/runtime/helpers/defineProperty");
2
+
2
3
  var _regeneratorRuntime = require("@babel/runtime/regenerator");
4
+
3
5
  var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
6
+
4
7
  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
+
5
9
  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
+
6
11
  /**
7
12
  * Methods for accessing and managing access groups
8
13
  *
9
14
  * @module ElvClient/Files+Parts
10
15
  */
11
-
12
16
  var Utils = require("../Utils");
17
+
13
18
  var fs;
19
+
14
20
  if (Utils.Platform() === Utils.PLATFORM_NODE) {
15
21
  // Define Response in node
16
22
  // eslint-disable-next-line no-global-assign
17
- global.Response = require("node-fetch").Response;
23
+ globalThis.Response = require("node-fetch").Response;
18
24
  fs = require("fs");
19
25
  }
26
+
20
27
  var UrlJoin = require("url-join");
21
- var _require = require("../Validation"),
22
- ValidatePresence = _require.ValidatePresence,
23
- ValidateWriteToken = _require.ValidateWriteToken,
24
- ValidatePartHash = _require.ValidatePartHash,
25
- ValidateParameters = _require.ValidateParameters;
26
28
 
29
+ var _require = require("../Validation"),
30
+ ValidatePresence = _require.ValidatePresence,
31
+ ValidateWriteToken = _require.ValidateWriteToken,
32
+ ValidatePartHash = _require.ValidatePartHash,
33
+ ValidateParameters = _require.ValidateParameters;
27
34
  /* Files */
28
35
 
29
36
  /**
@@ -36,51 +43,59 @@ var _require = require("../Validation"),
36
43
  * @param {string=} objectId - ID of the object
37
44
  * @param {string=} versionHash - Hash of the object version - if not specified, most recent version will be used
38
45
  */
46
+
47
+
39
48
  exports.ListFiles = /*#__PURE__*/function () {
40
49
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
41
50
  var libraryId, objectId, versionHash, path;
42
51
  return _regeneratorRuntime.wrap(function _callee$(_context) {
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();
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
+ }
76
91
  }
77
92
  }, _callee, this);
78
93
  }));
94
+
79
95
  return function (_x) {
80
96
  return _ref2.apply(this, arguments);
81
97
  };
82
98
  }();
83
-
84
99
  /**
85
100
  * Copy/reference files from S3 to a content object.
86
101
  *
@@ -115,202 +130,243 @@ exports.ListFiles = /*#__PURE__*/function () {
115
130
  * - Arguments (copy): { done: boolean, uploaded: number, total: number, uploadedFiles: number, totalFiles: number, fileStatus: Object }
116
131
  * - Arguments (reference): { done: boolean, uploadedFiles: number, totalFiles: number }
117
132
  */
133
+
134
+
118
135
  exports.UploadFilesFromS3 = /*#__PURE__*/function () {
119
136
  var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3) {
120
137
  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
+
121
139
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
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;
136
- break;
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;
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;
161
184
  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) {
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:
181
209
  cloudCredentials = {
182
- signed_url: signedUrl
210
+ access_key_id: accessKey,
211
+ secret_access_key: secret
183
212
  };
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
213
+
214
+ if (signedUrl) {
215
+ cloudCredentials = {
216
+ signed_url: signedUrl
217
+ };
195
218
  }
196
- };
197
- ops = fileInfo.map(function (info) {
198
- if (copy) {
199
- return {
200
- op: "ingest-copy",
201
- path: info.path,
202
- encryption: {
203
- scheme: encryption === "cgck" ? "cgck" : "none"
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
204
228
  },
205
- ingest: {
206
- type: "key",
207
- path: info.source
208
- }
209
- };
210
- } else {
211
- return {
212
- op: "add-reference",
213
- path: info.path,
214
- reference: {
215
- type: "key",
216
- path: info.source
217
- }
218
- };
229
+ cloud_credentials: cloudCredentials
230
+ }
231
+ };
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;
219
274
  }
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
- });
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;
283
296
  }
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
- });
297
+
298
+ throw status.errors.join("\n");
299
+
300
+ case 43:
301
+ if (!status.error) {
302
+ _context2.next = 48;
303
+ break;
293
304
  }
294
- }
295
- if (!done) {
296
- _context2.next = 54;
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;
313
+ }
314
+
315
+ throw "File upload failed";
316
+
317
+ case 50:
318
+ done = false;
319
+
320
+ 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
+ }
334
+ } 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
+ }
345
+ }
346
+
347
+ if (!done) {
348
+ _context2.next = 54;
349
+ break;
350
+ }
351
+
352
+ return _context2.abrupt("break", 56);
353
+
354
+ case 54:
355
+ _context2.next = 33;
297
356
  break;
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();
357
+
358
+ case 56:
359
+ case "end":
360
+ return _context2.stop();
361
+ }
306
362
  }
307
363
  }, _callee2, this);
308
364
  }));
365
+
309
366
  return function (_x2) {
310
367
  return _ref4.apply(this, arguments);
311
368
  };
312
369
  }();
313
-
314
370
  /**
315
371
  * Upload files to a content object.
316
372
  *
@@ -337,530 +393,629 @@ exports.UploadFilesFromS3 = /*#__PURE__*/function () {
337
393
  * @param {function=} callback - If specified, will be called after each job segment is finished with the current upload progress
338
394
  * - Format: {"filename1": {uploaded: number, total: number}, ...}
339
395
  */
396
+
397
+
340
398
  exports.UploadFiles = /*#__PURE__*/function () {
341
399
  var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref5) {
342
400
  var _this = this;
401
+
343
402
  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
+
344
404
  return _regeneratorRuntime.wrap(function _callee6$(_context6) {
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
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
373
412
  });
374
- entry.path = entry.path.replace(/^\/+/, "");
375
- if (encryption === "cgck") {
376
- entry.encryption = {
377
- scheme: "cgck"
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
426
+ });
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
378
454
  };
455
+ fileInfo[i] = entry;
379
456
  }
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;
424
- }
425
- case 2:
426
- if (!(prepared - uploaded > bufferSize)) {
427
- _context3.next = 7;
428
- break;
429
- }
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;
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();
528
586
  }
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);
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();
547
660
  }
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;
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;
571
699
  break;
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;
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();
602
728
  }
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();
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
+ }
620
742
  }
621
743
  }, _callee6, this);
622
744
  }));
745
+
623
746
  return function (_x3) {
624
747
  return _ref6.apply(this, arguments);
625
748
  };
626
749
  }();
750
+
627
751
  exports.CreateFileUploadJob = /*#__PURE__*/function () {
628
752
  var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(_ref10) {
629
753
  var libraryId, objectId, writeToken, ops, _ref10$defaults, defaults, _ref10$encryption, encryption, body, path;
754
+
630
755
  return _regeneratorRuntime.wrap(function _callee7$(_context7) {
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"
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
644
779
  };
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();
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
+ }
678
809
  }
679
810
  }, _callee7, this);
680
811
  }));
812
+
681
813
  return function (_x8) {
682
814
  return _ref11.apply(this, arguments);
683
815
  };
684
816
  }();
817
+
685
818
  exports.UploadStatus = /*#__PURE__*/function () {
686
819
  var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(_ref12) {
687
820
  var libraryId, objectId, writeToken, uploadId, path;
688
821
  return _regeneratorRuntime.wrap(function _callee8$(_context8) {
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();
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
+ }
720
857
  }
721
858
  }, _callee8, this);
722
859
  }));
860
+
723
861
  return function (_x9) {
724
862
  return _ref13.apply(this, arguments);
725
863
  };
726
864
  }();
865
+
727
866
  exports.UploadJobStatus = /*#__PURE__*/function () {
728
867
  var _ref15 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(_ref14) {
729
868
  var libraryId, objectId, writeToken, uploadId, jobId, path;
730
869
  return _regeneratorRuntime.wrap(function _callee9$(_context9) {
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();
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
+ }
762
905
  }
763
906
  }, _callee9, this);
764
907
  }));
908
+
765
909
  return function (_x10) {
766
910
  return _ref15.apply(this, arguments);
767
911
  };
768
912
  }();
913
+
769
914
  exports.UploadFileData = /*#__PURE__*/function () {
770
915
  var _ref17 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(_ref16) {
771
916
  var libraryId, objectId, writeToken, uploadId, jobId, fileData, path;
772
917
  return _regeneratorRuntime.wrap(function _callee10$(_context10) {
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();
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
+ }
813
962
  }
814
963
  }, _callee10, this);
815
964
  }));
965
+
816
966
  return function (_x11) {
817
967
  return _ref17.apply(this, arguments);
818
968
  };
819
969
  }();
970
+
820
971
  exports.FinalizeUploadJob = /*#__PURE__*/function () {
821
972
  var _ref19 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(_ref18) {
822
973
  var libraryId, objectId, writeToken, path;
823
974
  return _regeneratorRuntime.wrap(function _callee11$(_context11) {
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();
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
+ }
856
1011
  }
857
1012
  }, _callee11, this);
858
1013
  }));
1014
+
859
1015
  return function (_x12) {
860
1016
  return _ref19.apply(this, arguments);
861
1017
  };
862
1018
  }();
863
-
864
1019
  /**
865
1020
  * Create the specified directories on the specified object
866
1021
  *
@@ -872,45 +1027,50 @@ exports.FinalizeUploadJob = /*#__PURE__*/function () {
872
1027
  * @param {string} writeToken - Write token of the draft
873
1028
  * @param {Array<string>} filePaths - List of file paths to create
874
1029
  */
1030
+
1031
+
875
1032
  exports.CreateFileDirectories = /*#__PURE__*/function () {
876
1033
  var _ref21 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(_ref20) {
877
1034
  var libraryId, objectId, writeToken, filePaths, ops;
878
1035
  return _regeneratorRuntime.wrap(function _callee12$(_context12) {
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();
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
+ }
906
1066
  }
907
1067
  }, _callee12, this);
908
1068
  }));
1069
+
909
1070
  return function (_x13) {
910
1071
  return _ref21.apply(this, arguments);
911
1072
  };
912
1073
  }();
913
-
914
1074
  /**
915
1075
  * Delete the specified list of files/directories
916
1076
  *
@@ -922,44 +1082,49 @@ exports.CreateFileDirectories = /*#__PURE__*/function () {
922
1082
  * @param {string} writeToken - Write token of the draft
923
1083
  * @param {Array<string>} filePaths - List of file paths to delete
924
1084
  */
1085
+
1086
+
925
1087
  exports.DeleteFiles = /*#__PURE__*/function () {
926
1088
  var _ref23 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(_ref22) {
927
1089
  var libraryId, objectId, writeToken, filePaths, ops;
928
1090
  return _regeneratorRuntime.wrap(function _callee13$(_context13) {
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();
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
+ }
955
1120
  }
956
1121
  }, _callee13, this);
957
1122
  }));
1123
+
958
1124
  return function (_x14) {
959
1125
  return _ref23.apply(this, arguments);
960
1126
  };
961
1127
  }();
962
-
963
1128
  /**
964
1129
  * Download a file from a content object
965
1130
  *
@@ -984,187 +1149,218 @@ exports.DeleteFiles = /*#__PURE__*/function () {
984
1149
  *
985
1150
  * @returns {Promise<ArrayBuffer> | undefined} - No return if chunked is specified, file data in the requested format otherwise
986
1151
  */
1152
+
1153
+
987
1154
  exports.DownloadFile = /*#__PURE__*/function () {
988
1155
  var _ref25 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(_ref24) {
989
1156
  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;
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
+
1011
1179
  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();
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
+ }
1160
1356
  }
1161
1357
  }, _callee14, this, [[52, 58]]);
1162
1358
  }));
1359
+
1163
1360
  return function (_x15) {
1164
1361
  return _ref25.apply(this, arguments);
1165
1362
  };
1166
1363
  }();
1167
-
1168
1364
  /* Parts */
1169
1365
 
1170
1366
  /**
@@ -1179,56 +1375,65 @@ exports.DownloadFile = /*#__PURE__*/function () {
1179
1375
  *
1180
1376
  * @returns {Promise<Object>} - Response containing list of parts of the object
1181
1377
  */
1378
+
1379
+
1182
1380
  exports.ContentParts = /*#__PURE__*/function () {
1183
1381
  var _ref27 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(_ref26) {
1184
1382
  var libraryId, objectId, versionHash, path, response;
1185
1383
  return _regeneratorRuntime.wrap(function _callee15$(_context15) {
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();
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
+ }
1224
1429
  }
1225
1430
  }, _callee15, this);
1226
1431
  }));
1432
+
1227
1433
  return function (_x16) {
1228
1434
  return _ref27.apply(this, arguments);
1229
1435
  };
1230
1436
  }();
1231
-
1232
1437
  /**
1233
1438
  * Get information on a specific part
1234
1439
  *
@@ -1242,56 +1447,65 @@ exports.ContentParts = /*#__PURE__*/function () {
1242
1447
  *
1243
1448
  * @returns {Promise<Object>} - Response containing information about the specified part
1244
1449
  */
1450
+
1451
+
1245
1452
  exports.ContentPart = /*#__PURE__*/function () {
1246
1453
  var _ref29 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(_ref28) {
1247
1454
  var libraryId, objectId, versionHash, partHash, path;
1248
1455
  return _regeneratorRuntime.wrap(function _callee16$(_context16) {
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();
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
+ }
1287
1501
  }
1288
1502
  }, _callee16, this);
1289
1503
  }));
1504
+
1290
1505
  return function (_x17) {
1291
1506
  return _ref29.apply(this, arguments);
1292
1507
  };
1293
1508
  }();
1294
-
1295
1509
  /**
1296
1510
  * Download a part from a content object. The fromByte and range parameters can be used to specify a
1297
1511
  * specific section of the part to download.
@@ -1316,340 +1530,418 @@ exports.ContentPart = /*#__PURE__*/function () {
1316
1530
  *
1317
1531
  * @returns {Promise<ArrayBuffer> | undefined} - No return if chunked is specified, part data in the requested format otherwise
1318
1532
  */
1533
+
1534
+
1319
1535
  exports.DownloadPart = /*#__PURE__*/function () {
1320
1536
  var _ref31 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(_ref30) {
1321
1537
  var libraryId, objectId, versionHash, writeToken, partHash, _ref30$format, format, _ref30$chunked, chunked, _ref30$chunkSize, chunkSize, callback, encrypted, encryption, path, headers, bytesTotal;
1538
+
1322
1539
  return _regeneratorRuntime.wrap(function _callee17$(_context17) {
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();
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
+ }
1418
1652
  }
1419
1653
  }, _callee17, this);
1420
1654
  }));
1655
+
1421
1656
  return function (_x18) {
1422
1657
  return _ref31.apply(this, arguments);
1423
1658
  };
1424
1659
  }();
1660
+
1425
1661
  exports.Download = /*#__PURE__*/function () {
1426
1662
  var _ref33 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(_ref32) {
1427
1663
  var downloadPath, headers, bytesTotal, _ref32$chunked, chunked, _ref32$chunkSize, chunkSize, callback, _ref32$format, format, outputChunks, bytesFinished, totalChunks, i, response;
1664
+
1428
1665
  return _regeneratorRuntime.wrap(function _callee18$(_context18) {
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;
1434
- break;
1435
- }
1436
- throw Error("No callback specified for chunked download");
1437
- case 3:
1438
- if (!chunked) {
1439
- outputChunks = [];
1440
- }
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;
1441
1670
 
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;
1449
- break;
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
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"
1493
1700
  });
1494
- }
1495
- case 32:
1496
- i++;
1497
- _context18.next = 7;
1498
- break;
1499
- case 35:
1500
- if (chunked) {
1501
- _context18.next = 39;
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;
1502
1726
  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();
1727
+
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;
1750
+ 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
+ }
1511
1768
  }
1512
1769
  }, _callee18, this);
1513
1770
  }));
1771
+
1514
1772
  return function (_x19) {
1515
1773
  return _ref33.apply(this, arguments);
1516
1774
  };
1517
1775
  }();
1776
+
1518
1777
  exports.DownloadEncrypted = /*#__PURE__*/function () {
1519
1778
  var _ref35 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(_ref34) {
1520
1779
  var _this2 = this;
1780
+
1521
1781
  var conk, downloadPath, bytesTotal, headers, callback, _ref34$format, format, _ref34$chunked, chunked, isReencryption, chunkSize, bytesFinished, outputChunks, stream, totalChunks, i, response;
1782
+
1522
1783
  return _regeneratorRuntime.wrap(function _callee20$(_context20) {
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;
1551
- }
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
- });
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();
1583
1866
  }
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;
1600
- break;
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();
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
1631
1890
  });
1632
- });
1633
- case 33:
1634
- if (chunked) {
1635
- _context20.next = 37;
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;
1636
1909
  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();
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
+ });
1919
+ });
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
+ }
1645
1937
  }
1646
1938
  }, _callee20, this);
1647
1939
  }));
1940
+
1648
1941
  return function (_x20) {
1649
1942
  return _ref35.apply(this, arguments);
1650
1943
  };
1651
1944
  }();
1652
-
1653
1945
  /**
1654
1946
  * Create a part upload draft
1655
1947
  *
@@ -1663,56 +1955,63 @@ exports.DownloadEncrypted = /*#__PURE__*/function () {
1663
1955
  *
1664
1956
  * @returns {Promise<string>} - The part write token for the part draft
1665
1957
  */
1958
+
1959
+
1666
1960
  exports.CreatePart = /*#__PURE__*/function () {
1667
1961
  var _ref38 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee21(_ref37) {
1668
1962
  var libraryId, objectId, writeToken, encryption, path, openResponse;
1669
1963
  return _regeneratorRuntime.wrap(function _callee21$(_context21) {
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();
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
+ }
1708
2007
  }
1709
2008
  }, _callee21, this);
1710
2009
  }));
2010
+
1711
2011
  return function (_x22) {
1712
2012
  return _ref38.apply(this, arguments);
1713
2013
  };
1714
2014
  }();
1715
-
1716
2015
  /**
1717
2016
  * Upload data to an open part draft
1718
2017
  *
@@ -1728,71 +2027,82 @@ exports.CreatePart = /*#__PURE__*/function () {
1728
2027
  *
1729
2028
  * @returns {Promise<string>} - The part write token for the part draft
1730
2029
  */
2030
+
2031
+
1731
2032
  exports.UploadPartChunk = /*#__PURE__*/function () {
1732
2033
  var _ref40 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(_ref39) {
1733
2034
  var libraryId, objectId, writeToken, partWriteToken, chunk, encryption, conk, path;
1734
2035
  return _regeneratorRuntime.wrap(function _callee22$(_context22) {
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();
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
+ }
1788
2098
  }
1789
2099
  }, _callee22, this);
1790
2100
  }));
2101
+
1791
2102
  return function (_x23) {
1792
2103
  return _ref40.apply(this, arguments);
1793
2104
  };
1794
2105
  }();
1795
-
1796
2106
  /**
1797
2107
  * Finalize an open part draft
1798
2108
  *
@@ -1807,58 +2117,66 @@ exports.UploadPartChunk = /*#__PURE__*/function () {
1807
2117
  *
1808
2118
  * @returns {Promise<object>} - The finalize response for the new part
1809
2119
  */
2120
+
2121
+
1810
2122
  exports.FinalizePart = /*#__PURE__*/function () {
1811
2123
  var _ref42 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23(_ref41) {
1812
2124
  var libraryId, objectId, writeToken, partWriteToken, encryption, path;
1813
2125
  return _regeneratorRuntime.wrap(function _callee23$(_context23) {
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();
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
+ }
1854
2172
  }
1855
2173
  }, _callee23, this);
1856
2174
  }));
2175
+
1857
2176
  return function (_x24) {
1858
2177
  return _ref42.apply(this, arguments);
1859
2178
  };
1860
2179
  }();
1861
-
1862
2180
  /**
1863
2181
  * Upload part to an object draft
1864
2182
  *
@@ -1880,83 +2198,98 @@ exports.FinalizePart = /*#__PURE__*/function () {
1880
2198
  *
1881
2199
  * @returns {Promise<Object>} - Response containing information about the uploaded part
1882
2200
  */
2201
+
2202
+
1883
2203
  exports.UploadPart = /*#__PURE__*/function () {
1884
2204
  var _ref44 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee24(_ref43) {
1885
2205
  var libraryId, objectId, writeToken, data, _ref43$encryption, encryption, _ref43$chunkSize, chunkSize, callback, partWriteToken, size, i, chunk;
2206
+
1886
2207
  return _regeneratorRuntime.wrap(function _callee24$(_context24) {
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
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
1909
2215
  });
1910
- }
1911
- i = 0;
1912
- case 9:
1913
- if (!(i < size)) {
1914
- _context24.next = 17;
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
2253
+ });
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;
1915
2266
  break;
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
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
1932
2276
  });
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();
2277
+
2278
+ case 19:
2279
+ return _context24.abrupt("return", _context24.sent);
2280
+
2281
+ case 20:
2282
+ case "end":
2283
+ return _context24.stop();
2284
+ }
1952
2285
  }
1953
2286
  }, _callee24, this);
1954
2287
  }));
2288
+
1955
2289
  return function (_x25) {
1956
2290
  return _ref44.apply(this, arguments);
1957
2291
  };
1958
2292
  }();
1959
-
1960
2293
  /**
1961
2294
  * Delete the specified part from a content draft
1962
2295
  *
@@ -1968,44 +2301,51 @@ exports.UploadPart = /*#__PURE__*/function () {
1968
2301
  * @param {string} writeToken - Write token of the content object draft
1969
2302
  * @param {string} partHash - Hash of the part to delete
1970
2303
  */
2304
+
2305
+
1971
2306
  exports.DeletePart = /*#__PURE__*/function () {
1972
2307
  var _ref46 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee25(_ref45) {
1973
2308
  var libraryId, objectId, writeToken, partHash, path;
1974
2309
  return _regeneratorRuntime.wrap(function _callee25$(_context25) {
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();
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
+ }
2006
2345
  }
2007
2346
  }, _callee25, this);
2008
2347
  }));
2348
+
2009
2349
  return function (_x26) {
2010
2350
  return _ref46.apply(this, arguments);
2011
2351
  };