@atlaskit/media-client 16.0.1 → 17.1.1

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 (79) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/cjs/client/collection-fetcher.js +4 -4
  3. package/dist/cjs/client/file-fetcher/index.js +5 -7
  4. package/dist/cjs/client/media-store/index.js +35 -16
  5. package/dist/cjs/constants.js +11 -2
  6. package/dist/cjs/index.js +2 -2
  7. package/dist/cjs/models/media.js +10 -2
  8. package/dist/cjs/uploader/calculateChunkSize.js +45 -0
  9. package/dist/cjs/uploader/error.js +67 -0
  10. package/dist/cjs/uploader/index.js +318 -0
  11. package/dist/cjs/utils/{toMediaSubscribable.js → mediaSubscribable/fromObservable.js} +4 -4
  12. package/dist/cjs/utils/mediaSubscribable/index.js +27 -0
  13. package/dist/cjs/utils/{mediaSubscribableToPromise.js → mediaSubscribable/toPromise.js} +3 -3
  14. package/dist/cjs/utils/mediaSubscribable/types.js +5 -0
  15. package/dist/cjs/version.json +1 -1
  16. package/dist/es2019/client/collection-fetcher.js +2 -2
  17. package/dist/es2019/client/file-fetcher/index.js +5 -6
  18. package/dist/es2019/client/media-store/index.js +16 -2
  19. package/dist/es2019/constants.js +5 -1
  20. package/dist/es2019/index.js +1 -1
  21. package/dist/es2019/models/media.js +8 -1
  22. package/dist/es2019/uploader/calculateChunkSize.js +32 -0
  23. package/dist/es2019/uploader/error.js +30 -0
  24. package/dist/es2019/{uploader.js → uploader/index.js} +47 -10
  25. package/dist/es2019/utils/{toMediaSubscribable.js → mediaSubscribable/fromObservable.js} +3 -3
  26. package/dist/es2019/utils/mediaSubscribable/index.js +2 -0
  27. package/dist/es2019/utils/{mediaSubscribableToPromise.js → mediaSubscribable/toPromise.js} +1 -1
  28. package/dist/es2019/utils/mediaSubscribable/types.js +1 -0
  29. package/dist/es2019/version.json +1 -1
  30. package/dist/esm/client/collection-fetcher.js +3 -3
  31. package/dist/esm/client/file-fetcher/index.js +6 -7
  32. package/dist/esm/client/media-client.js +1 -1
  33. package/dist/esm/client/media-store/index.js +36 -17
  34. package/dist/esm/client/media-store/resolveAuth.js +1 -1
  35. package/dist/esm/client/stargate-client.js +1 -1
  36. package/dist/esm/constants.js +5 -1
  37. package/dist/esm/index.js +1 -1
  38. package/dist/esm/models/media.js +8 -1
  39. package/dist/esm/uploader/calculateChunkSize.js +32 -0
  40. package/dist/esm/uploader/error.js +51 -0
  41. package/dist/esm/uploader/index.js +298 -0
  42. package/dist/esm/utils/createFileDataLoader.js +1 -1
  43. package/dist/esm/utils/getDimensionsFromBlob.js +1 -1
  44. package/dist/esm/utils/getVideoDimensionsFromBlob.js +1 -1
  45. package/dist/esm/utils/hashing/hasherCreator.js +1 -1
  46. package/dist/esm/utils/{toMediaSubscribable.js → mediaSubscribable/fromObservable.js} +3 -3
  47. package/dist/esm/utils/mediaSubscribable/index.js +2 -0
  48. package/dist/esm/utils/{mediaSubscribableToPromise.js → mediaSubscribable/toPromise.js} +1 -1
  49. package/dist/esm/utils/mediaSubscribable/types.js +1 -0
  50. package/dist/esm/utils/mobileUpload/helpers.js +1 -1
  51. package/dist/esm/utils/mobileUpload/stateMachine/index.js +1 -1
  52. package/dist/esm/utils/polling/index.js +1 -1
  53. package/dist/esm/utils/request/helpers.js +1 -1
  54. package/dist/esm/utils/request/index.js +1 -1
  55. package/dist/esm/utils/shouldFetchRemoteFileStates.js +1 -1
  56. package/dist/esm/version.json +1 -1
  57. package/dist/types/client/collection-fetcher.d.ts +1 -1
  58. package/dist/types/client/file-fetcher/index.d.ts +1 -1
  59. package/dist/types/client/media-store/index.d.ts +9 -2
  60. package/dist/types/constants.d.ts +3 -0
  61. package/dist/types/index.d.ts +2 -2
  62. package/dist/types/models/errors/types.d.ts +1 -1
  63. package/dist/types/models/media.d.ts +5 -0
  64. package/dist/types/uploader/calculateChunkSize.d.ts +11 -0
  65. package/dist/types/uploader/error.d.ts +29 -0
  66. package/dist/types/{uploader.d.ts → uploader/index.d.ts} +2 -2
  67. package/dist/types/utils/mediaSubscribable/fromObservable.d.ts +5 -0
  68. package/dist/types/utils/mediaSubscribable/index.d.ts +3 -0
  69. package/dist/types/utils/{mediaSubscribableToPromise.d.ts → mediaSubscribable/toPromise.d.ts} +3 -3
  70. package/dist/types/utils/mediaSubscribable/types.d.ts +16 -0
  71. package/dist/types/utils/safeUnsubscribe.d.ts +1 -1
  72. package/example-helpers/styles.ts +99 -0
  73. package/example-helpers/stylesWrapper.tsx +82 -0
  74. package/package.json +8 -7
  75. package/report.api.md +1389 -0
  76. package/dist/cjs/uploader.js +0 -210
  77. package/dist/esm/uploader.js +0 -194
  78. package/dist/types/utils/toMediaSubscribable.d.ts +0 -20
  79. package/example-helpers/styled.ts +0 -77
package/CHANGELOG.md CHANGED
@@ -1,5 +1,46 @@
1
1
  # @atlaskit/media-client
2
2
 
3
+ ## 17.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`8d4228767b0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8d4228767b0) - Upgrade Typescript from `4.2.4` to `4.3.5`.
8
+ - Updated dependencies
9
+
10
+ ## 17.1.0
11
+
12
+ ### Minor Changes
13
+
14
+ - [`c07a8176ddf`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c07a8176ddf) - New BlobType SlicedBlob that includes partnumber introduced and used for uploading chunks
15
+ - [`a2e6bd37426`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a2e6bd37426) - add uploadId to prob function to support new media upload api
16
+
17
+ ### Patch Changes
18
+
19
+ - [`e80f52696fe`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e80f52696fe) - Migrated styled-components to emotion
20
+ - [`de9dc9e7cbd`](https://bitbucket.org/atlassian/atlassian-frontend/commits/de9dc9e7cbd) - Renamed internal helpers and files
21
+ - Updated dependencies
22
+
23
+ ## 17.0.0
24
+
25
+ ### Major Changes
26
+
27
+ - [`a718050239e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a718050239e) - Media Client Uploader enforces a hard limit of 2Tb files.
28
+
29
+ To mitigate these changes:
30
+
31
+ - Set the feature flag mediaUploadApiV2 as false or Revert to a previous version for affected consumers and methods;
32
+ Media Client uploadFile method.
33
+ Media Client File Fetcher upload method.
34
+ Media Picker.
35
+
36
+ - [`e4d0b89cd8b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e4d0b89cd8b) - Additional parameters and changes to the way parameters are passed to MediaStore.uploadChunk and MediaStore.probeChunks.
37
+ - [`d07442a7ff7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d07442a7ff7) - Breaking change to media-client uploadFile method, chunkSize and processingBatchSize as parameters removed from uploadFile.
38
+
39
+ ### Patch Changes
40
+
41
+ - [`61cf857a95a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/61cf857a95a) - A util function for dynamically calculating chunkSizes.
42
+ - Updated dependencies
43
+
3
44
  ## 16.0.1
4
45
 
5
46
  ### Patch Changes
@@ -7,10 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.collectionCache = exports.CollectionFetcher = void 0;
9
9
 
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
11
 
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
15
 
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -25,7 +25,7 @@ var _fileStreamsCache = require("../file-streams-cache");
25
25
 
26
26
  var _fileState = require("../models/file-state");
27
27
 
28
- var _toMediaSubscribable = require("../utils/toMediaSubscribable");
28
+ var _mediaSubscribable = require("../utils/mediaSubscribable");
29
29
 
30
30
  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; }
31
31
 
@@ -116,7 +116,7 @@ var CollectionFetcher = /*#__PURE__*/function () {
116
116
  }).catch(function (error) {
117
117
  return subject.error(error);
118
118
  });
119
- return (0, _toMediaSubscribable.toMediaSubscribable)(subject);
119
+ return (0, _mediaSubscribable.fromObservable)(subject);
120
120
  }
121
121
  }, {
122
122
  key: "removeFile",
@@ -69,7 +69,7 @@ var _overrideMediaTypeIfUnknown = require("../../utils/overrideMediaTypeIfUnknow
69
69
 
70
70
  var _convertBase64ToBlob = require("../../utils/convertBase64ToBlob");
71
71
 
72
- var _mediaSubscribableToPromise = require("../../utils/mediaSubscribableToPromise");
72
+ var _mediaSubscribable = require("../../utils/mediaSubscribable");
73
73
 
74
74
  var _getDimensionsFromBlob = require("../../utils/getDimensionsFromBlob");
75
75
 
@@ -83,8 +83,6 @@ var _polling = require("../../utils/polling");
83
83
 
84
84
  var _detectEmptyFile = require("../../utils/detectEmptyFile");
85
85
 
86
- var _toMediaSubscribable = require("../../utils/toMediaSubscribable");
87
-
88
86
  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; }
89
87
 
90
88
  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) { (0, _defineProperty2.default)(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; }
@@ -182,17 +180,17 @@ var FileFetcherImpl = /*#__PURE__*/function () {
182
180
  collectionName: collectionName,
183
181
  occurrenceKey: occurrenceKey
184
182
  }));
185
- return (0, _toMediaSubscribable.toMediaSubscribable)(subject);
183
+ return (0, _mediaSubscribable.fromObservable)(subject);
186
184
  }
187
185
 
188
- return (0, _toMediaSubscribable.toMediaSubscribable)((0, _fileStreamsCache.getFileStreamsCache)().getOrInsert(id, function () {
186
+ return (0, _mediaSubscribable.fromObservable)((0, _fileStreamsCache.getFileStreamsCache)().getOrInsert(id, function () {
189
187
  return _this2.createDownloadFileStream(id, collectionName);
190
188
  }));
191
189
  }
192
190
  }, {
193
191
  key: "getCurrentState",
194
192
  value: function getCurrentState(id, options) {
195
- return (0, _mediaSubscribableToPromise.mediaSubscribableToPromise)(this.getFileState(id, options));
193
+ return (0, _mediaSubscribable.toPromise)(this.getFileState(id, options));
196
194
  }
197
195
  }, {
198
196
  key: "getArtifactURL",
@@ -480,7 +478,7 @@ var FileFetcherImpl = /*#__PURE__*/function () {
480
478
  });
481
479
  }
482
480
 
483
- return (0, _toMediaSubscribable.toMediaSubscribable)(subject);
481
+ return (0, _mediaSubscribable.fromObservable)(subject);
484
482
  }
485
483
  }, {
486
484
  key: "downloadBinary",
@@ -225,26 +225,38 @@ var MediaStore = /*#__PURE__*/function () {
225
225
  }, {
226
226
  key: "uploadChunk",
227
227
  value: function () {
228
- var _uploadChunk = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(etag, blob, collectionName) {
229
- var metadata, options;
228
+ var _uploadChunk = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(etag, blob) {
229
+ var _ref,
230
+ collectionName,
231
+ uploadId,
232
+ partNumber,
233
+ metadata,
234
+ options,
235
+ _args3 = arguments;
236
+
230
237
  return _regenerator.default.wrap(function _callee3$(_context3) {
231
238
  while (1) {
232
239
  switch (_context3.prev = _context3.next) {
233
240
  case 0:
241
+ _ref = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {}, collectionName = _ref.collectionName, uploadId = _ref.uploadId, partNumber = _ref.partNumber;
234
242
  metadata = {
235
243
  method: 'PUT',
236
244
  endpoint: '/chunk/{etag}'
237
245
  };
238
246
  options = _objectSpread(_objectSpread({}, metadata), {}, {
247
+ params: {
248
+ uploadId: uploadId,
249
+ partNumber: partNumber
250
+ },
239
251
  authContext: {
240
252
  collectionName: collectionName
241
253
  },
242
254
  body: blob
243
255
  });
244
- _context3.next = 4;
256
+ _context3.next = 5;
245
257
  return this.request("/chunk/".concat(etag), options);
246
258
 
247
- case 4:
259
+ case 5:
248
260
  case "end":
249
261
  return _context3.stop();
250
262
  }
@@ -252,7 +264,7 @@ var MediaStore = /*#__PURE__*/function () {
252
264
  }, _callee3, this);
253
265
  }));
254
266
 
255
- function uploadChunk(_x6, _x7, _x8) {
267
+ function uploadChunk(_x6, _x7) {
256
268
  return _uploadChunk.apply(this, arguments);
257
269
  }
258
270
 
@@ -260,13 +272,20 @@ var MediaStore = /*#__PURE__*/function () {
260
272
  }()
261
273
  }, {
262
274
  key: "probeChunks",
263
- value: function probeChunks(chunks, collectionName) {
275
+ value: function probeChunks(chunks) {
276
+ var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
277
+ collectionName = _ref2.collectionName,
278
+ uploadId = _ref2.uploadId;
279
+
264
280
  var metadata = {
265
281
  method: 'POST',
266
282
  endpoint: '/chunk/probe'
267
283
  };
268
284
 
269
285
  var options = _objectSpread(_objectSpread({}, metadata), {}, {
286
+ params: {
287
+ uploadId: uploadId
288
+ },
270
289
  authContext: {
271
290
  collectionName: collectionName
272
291
  },
@@ -339,13 +358,13 @@ var MediaStore = /*#__PURE__*/function () {
339
358
  key: "getFileImageURL",
340
359
  value: function () {
341
360
  var _getFileImageURL = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(id, params) {
342
- var _ref, collectionName, auth;
361
+ var _ref3, collectionName, auth;
343
362
 
344
363
  return _regenerator.default.wrap(function _callee4$(_context4) {
345
364
  while (1) {
346
365
  switch (_context4.prev = _context4.next) {
347
366
  case 0:
348
- _ref = params || {}, collectionName = _ref.collection;
367
+ _ref3 = params || {}, collectionName = _ref3.collection;
349
368
  _context4.next = 3;
350
369
  return this.resolveAuth({
351
370
  collectionName: collectionName
@@ -363,7 +382,7 @@ var MediaStore = /*#__PURE__*/function () {
363
382
  }, _callee4, this);
364
383
  }));
365
384
 
366
- function getFileImageURL(_x9, _x10) {
385
+ function getFileImageURL(_x8, _x9) {
367
386
  return _getFileImageURL.apply(this, arguments);
368
387
  }
369
388
 
@@ -418,7 +437,7 @@ var MediaStore = /*#__PURE__*/function () {
418
437
  }, _callee5, this);
419
438
  }));
420
439
 
421
- function getFileBinaryURL(_x11, _x12) {
440
+ function getFileBinaryURL(_x10, _x11) {
422
441
  return _getFileBinaryURL.apply(this, arguments);
423
442
  }
424
443
 
@@ -467,7 +486,7 @@ var MediaStore = /*#__PURE__*/function () {
467
486
  }, _callee6, this);
468
487
  }));
469
488
 
470
- function getArtifactURL(_x13, _x14, _x15) {
489
+ function getArtifactURL(_x12, _x13, _x14) {
471
490
  return _getArtifactURL.apply(this, arguments);
472
491
  }
473
492
 
@@ -512,7 +531,7 @@ var MediaStore = /*#__PURE__*/function () {
512
531
  }, _callee7, this);
513
532
  }));
514
533
 
515
- function getImage(_x16, _x17, _x18, _x19) {
534
+ function getImage(_x15, _x16, _x17, _x18) {
516
535
  return _getImage.apply(this, arguments);
517
536
  }
518
537
 
@@ -557,7 +576,7 @@ var MediaStore = /*#__PURE__*/function () {
557
576
  }, _callee8, this);
558
577
  }));
559
578
 
560
- function getItems(_x20, _x21) {
579
+ function getItems(_x19, _x20) {
561
580
  return _getItems.apply(this, arguments);
562
581
  }
563
582
 
@@ -592,7 +611,7 @@ var MediaStore = /*#__PURE__*/function () {
592
611
  }, _callee9, this);
593
612
  }));
594
613
 
595
- function getImageMetadata(_x22, _x23) {
614
+ function getImageMetadata(_x21, _x22) {
596
615
  return _getImageMetadata.apply(this, arguments);
597
616
  }
598
617
 
@@ -629,7 +648,7 @@ var MediaStore = /*#__PURE__*/function () {
629
648
  }, _callee10, this);
630
649
  }));
631
650
 
632
- function appendChunksToUpload(_x24, _x25, _x26) {
651
+ function appendChunksToUpload(_x23, _x24, _x25) {
633
652
  return _appendChunksToUpload.apply(this, arguments);
634
653
  }
635
654
 
@@ -714,7 +733,7 @@ var MediaStore = /*#__PURE__*/function () {
714
733
  }, _callee11, this);
715
734
  }));
716
735
 
717
- function request(_x27) {
736
+ function request(_x26) {
718
737
  return _request2.apply(this, arguments);
719
738
  }
720
739
 
@@ -3,11 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.RECENTS_COLLECTION = exports.MAX_RESOLUTION = exports.FILE_CACHE_MAX_AGE = void 0;
6
+ exports.RECENTS_COLLECTION = exports.PROCESSING_BATCH_SIZE = exports.MAX_UPLOAD_FILE_SIZE = exports.MAX_RESOLUTION = exports.FILE_CACHE_MAX_AGE = exports.CHUNK_SIZE = void 0;
7
+
8
+ var _media = require("./models/media");
9
+
7
10
  var RECENTS_COLLECTION = 'recents';
8
11
  exports.RECENTS_COLLECTION = RECENTS_COLLECTION;
9
12
  var FILE_CACHE_MAX_AGE = 60 * 60 * 24 * 30; // Retain for 30 days
10
13
 
11
14
  exports.FILE_CACHE_MAX_AGE = FILE_CACHE_MAX_AGE;
12
15
  var MAX_RESOLUTION = 4096;
13
- exports.MAX_RESOLUTION = MAX_RESOLUTION;
16
+ exports.MAX_RESOLUTION = MAX_RESOLUTION;
17
+ var CHUNK_SIZE = 4 * _media.DATA_UNIT.MB;
18
+ exports.CHUNK_SIZE = CHUNK_SIZE;
19
+ var PROCESSING_BATCH_SIZE = 1000;
20
+ exports.PROCESSING_BATCH_SIZE = PROCESSING_BATCH_SIZE;
21
+ var MAX_UPLOAD_FILE_SIZE = 2 * _media.DATA_UNIT.TB;
22
+ exports.MAX_UPLOAD_FILE_SIZE = MAX_UPLOAD_FILE_SIZE;
package/dist/cjs/index.js CHANGED
@@ -108,7 +108,7 @@ Object.defineProperty(exports, "createMediaSubject", {
108
108
  Object.defineProperty(exports, "createMediaSubscribable", {
109
109
  enumerable: true,
110
110
  get: function get() {
111
- return _toMediaSubscribable.createMediaSubscribable;
111
+ return _mediaSubscribable.createMediaSubscribable;
112
112
  }
113
113
  });
114
114
  Object.defineProperty(exports, "createUrl", {
@@ -417,7 +417,7 @@ var _globalMediaEventEmitter = require("./globalMediaEventEmitter");
417
417
 
418
418
  var _url = require("./utils/url");
419
419
 
420
- var _toMediaSubscribable = require("./utils/toMediaSubscribable");
420
+ var _mediaSubscribable = require("./utils/mediaSubscribable");
421
421
 
422
422
  var _constants = require("./constants");
423
423
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isPreviewableType = exports.isMediaCollectionItemFullDetails = void 0;
6
+ exports.isPreviewableType = exports.isMediaCollectionItemFullDetails = exports.DATA_UNIT = void 0;
7
7
 
8
8
  var _mediaCommon = require("@atlaskit/media-common");
9
9
 
@@ -24,4 +24,12 @@ var isMediaCollectionItemFullDetails = function isMediaCollectionItemFullDetails
24
24
  return !!mediaCollectionItem['mediaType'] && !!mediaCollectionItem['mimeType'] && !!mediaCollectionItem['processingStatus'];
25
25
  };
26
26
 
27
- exports.isMediaCollectionItemFullDetails = isMediaCollectionItemFullDetails;
27
+ exports.isMediaCollectionItemFullDetails = isMediaCollectionItemFullDetails;
28
+ var DATA_UNIT;
29
+ exports.DATA_UNIT = DATA_UNIT;
30
+
31
+ (function (DATA_UNIT) {
32
+ DATA_UNIT[DATA_UNIT["MB"] = 1048576] = "MB";
33
+ DATA_UNIT[DATA_UNIT["GB"] = 1073741824] = "GB";
34
+ DATA_UNIT[DATA_UNIT["TB"] = 1099511627776] = "TB";
35
+ })(DATA_UNIT || (exports.DATA_UNIT = DATA_UNIT = {}));
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fileSizeError = exports.calculateChunkSize = void 0;
7
+
8
+ var _media = require("../models/media");
9
+
10
+ var _constants = require("../constants");
11
+
12
+ var fileSizeError = 'fileSizeExceedsLimit';
13
+ /**
14
+ * This is a helper to dynamically calculate the chunk size for a given file size.
15
+ *
16
+ * @param fileSize The size of a file to calculate the chunk size for.
17
+ * @returns A number of bytes per chunk or Throws an Error if the file size exceeds 2TB
18
+ *
19
+ * @see {@link https://product-fabric.atlassian.net/wiki/spaces/FIL/pages/3221881143/Rule+of+thumb+for+chunk+sizes#Given-the-following-conditions}
20
+ *
21
+ */
22
+
23
+ exports.fileSizeError = fileSizeError;
24
+
25
+ var calculateChunkSize = function calculateChunkSize(fileSize) {
26
+ if (fileSize > _constants.MAX_UPLOAD_FILE_SIZE) {
27
+ throw new Error(fileSizeError);
28
+ }
29
+
30
+ if (fileSize <= 5 * _media.DATA_UNIT.GB) {
31
+ return 5 * _media.DATA_UNIT.MB;
32
+ }
33
+
34
+ if (fileSize > 5 * _media.DATA_UNIT.GB && fileSize <= 50 * _media.DATA_UNIT.GB) {
35
+ return 50 * _media.DATA_UNIT.MB;
36
+ }
37
+
38
+ if (fileSize > 50 * _media.DATA_UNIT.GB && fileSize <= 0.95 * _media.DATA_UNIT.TB) {
39
+ return 100 * _media.DATA_UNIT.MB;
40
+ }
41
+
42
+ return 210 * _media.DATA_UNIT.MB;
43
+ };
44
+
45
+ exports.calculateChunkSize = calculateChunkSize;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.UploaderError = void 0;
9
+ exports.isUploaderError = isUploaderError;
10
+
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+
13
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
+
15
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
+
17
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
18
+
19
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
20
+
21
+ var _errors = require("../models/errors");
22
+
23
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
24
+
25
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
26
+
27
+ var UploaderError = /*#__PURE__*/function (_BaseMediaClientError) {
28
+ (0, _inherits2.default)(UploaderError, _BaseMediaClientError);
29
+
30
+ var _super = _createSuper(UploaderError);
31
+
32
+ function UploaderError(reason, id, metadata) {
33
+ var _this;
34
+
35
+ (0, _classCallCheck2.default)(this, UploaderError);
36
+ _this = _super.call(this, reason);
37
+ _this.reason = reason;
38
+ _this.id = id;
39
+ _this.metadata = metadata;
40
+ return _this;
41
+ }
42
+
43
+ (0, _createClass2.default)(UploaderError, [{
44
+ key: "attributes",
45
+ get: function get() {
46
+ var reason = this.reason,
47
+ id = this.id,
48
+ _this$metadata = this.metadata;
49
+ _this$metadata = _this$metadata === void 0 ? {} : _this$metadata;
50
+ var collectionName = _this$metadata.collectionName,
51
+ occurrenceKey = _this$metadata.occurrenceKey;
52
+ return {
53
+ reason: reason,
54
+ id: id,
55
+ collectionName: collectionName,
56
+ occurrenceKey: occurrenceKey
57
+ };
58
+ }
59
+ }]);
60
+ return UploaderError;
61
+ }(_errors.BaseMediaClientError);
62
+
63
+ exports.UploaderError = UploaderError;
64
+
65
+ function isUploaderError(err) {
66
+ return err instanceof UploaderError;
67
+ }