@atlaskit/media-client 20.0.0 → 20.0.2

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 (163) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/client/collection-fetcher.js +4 -44
  3. package/dist/cjs/client/file-fetcher/error.js +3 -19
  4. package/dist/cjs/client/file-fetcher/index.js +152 -167
  5. package/dist/cjs/client/media-client.js +3 -27
  6. package/dist/cjs/client/media-store/error.js +1 -17
  7. package/dist/cjs/client/media-store/index.js +13 -103
  8. package/dist/cjs/client/media-store/resolveAuth.js +2 -23
  9. package/dist/cjs/client/mobile-upload.js +9 -22
  10. package/dist/cjs/client/stargate-client.js +0 -12
  11. package/dist/cjs/constants.js +0 -3
  12. package/dist/cjs/file-streams-cache.js +0 -11
  13. package/dist/cjs/globalMediaEventEmitter.js +0 -3
  14. package/dist/cjs/identifier.js +0 -8
  15. package/dist/cjs/index.js +0 -38
  16. package/dist/cjs/models/artifacts.js +0 -4
  17. package/dist/cjs/models/auth-headers.js +0 -2
  18. package/dist/cjs/models/auth-query-parameters.js +0 -2
  19. package/dist/cjs/models/errors/helpers.js +0 -2
  20. package/dist/cjs/models/errors/index.js +4 -20
  21. package/dist/cjs/models/file-state.js +10 -36
  22. package/dist/cjs/models/media.js +2 -8
  23. package/dist/cjs/upload-controller.js +0 -6
  24. package/dist/cjs/uploader/calculateChunkSize.js +1 -10
  25. package/dist/cjs/uploader/error.js +3 -19
  26. package/dist/cjs/uploader/index.js +3 -43
  27. package/dist/cjs/utils/checkWebpSupport.js +3 -7
  28. package/dist/cjs/utils/convertBase64ToBlob.js +0 -5
  29. package/dist/cjs/utils/createFileDataLoader.js +4 -28
  30. package/dist/cjs/utils/createMediaSubject.js +0 -4
  31. package/dist/cjs/utils/detectEmptyFile.js +8 -15
  32. package/dist/cjs/utils/getDimensionsFromBlob.js +0 -14
  33. package/dist/cjs/utils/getImageDimensionsFromBlob.js +0 -4
  34. package/dist/cjs/utils/getMediaTypeFromUploadableFile.js +0 -3
  35. package/dist/cjs/utils/getVideoDimensionsFromBlob.js +2 -8
  36. package/dist/cjs/utils/hashing/hasherCreator.js +0 -20
  37. package/dist/cjs/utils/hashing/simpleHasher.js +0 -12
  38. package/dist/cjs/utils/hashing/workerHasher.js +3 -24
  39. package/dist/cjs/utils/imageResizeModeToFileImageMode.js +0 -2
  40. package/dist/cjs/utils/isImageRemote.js +0 -5
  41. package/dist/cjs/utils/mediaSubscribable/fromObservable.js +2 -4
  42. package/dist/cjs/utils/mediaSubscribable/index.js +0 -2
  43. package/dist/cjs/utils/mediaSubscribable/toPromise.js +1 -3
  44. package/dist/cjs/utils/mobileUpload/error.js +3 -19
  45. package/dist/cjs/utils/mobileUpload/helpers.js +2 -26
  46. package/dist/cjs/utils/mobileUpload/index.js +0 -4
  47. package/dist/cjs/utils/mobileUpload/servicesCache.js +0 -2
  48. package/dist/cjs/utils/mobileUpload/stateMachine/index.js +0 -22
  49. package/dist/cjs/utils/mobileUpload/stateMachine/states/processing.js +0 -2
  50. package/dist/cjs/utils/mobileUpload/stateMachine/states/uploading.js +0 -7
  51. package/dist/cjs/utils/overrideMediaTypeIfUnknown.js +0 -4
  52. package/dist/cjs/utils/polling/errors.js +1 -17
  53. package/dist/cjs/utils/polling/index.js +1 -30
  54. package/dist/cjs/utils/request/errors.js +8 -24
  55. package/dist/cjs/utils/request/helpers.js +19 -103
  56. package/dist/cjs/utils/request/index.js +15 -26
  57. package/dist/cjs/utils/safeUnsubscribe.js +0 -2
  58. package/dist/cjs/utils/setTimeoutPromise.js +0 -4
  59. package/dist/cjs/utils/shouldFetchRemoteFileStates.js +0 -21
  60. package/dist/cjs/utils/url.js +4 -27
  61. package/dist/cjs/utils/with-media-client-hoc.js +12 -28
  62. package/dist/cjs/version.json +1 -1
  63. package/dist/es2019/client/collection-fetcher.js +6 -18
  64. package/dist/es2019/client/file-fetcher/error.js +0 -2
  65. package/dist/es2019/client/file-fetcher/index.js +138 -70
  66. package/dist/es2019/client/media-client.js +4 -14
  67. package/dist/es2019/client/media-store/error.js +0 -2
  68. package/dist/es2019/client/media-store/index.js +37 -52
  69. package/dist/es2019/client/media-store/resolveAuth.js +1 -5
  70. package/dist/es2019/client/mobile-upload.js +0 -8
  71. package/dist/es2019/client/stargate-client.js +0 -3
  72. package/dist/es2019/constants.js +0 -1
  73. package/dist/es2019/file-streams-cache.js +0 -11
  74. package/dist/es2019/globalMediaEventEmitter.js +0 -4
  75. package/dist/es2019/index.js +4 -11
  76. package/dist/es2019/models/artifacts.js +0 -2
  77. package/dist/es2019/models/errors/index.js +5 -4
  78. package/dist/es2019/models/file-state.js +6 -7
  79. package/dist/es2019/models/media.js +2 -3
  80. package/dist/es2019/upload-controller.js +0 -3
  81. package/dist/es2019/uploader/calculateChunkSize.js +1 -4
  82. package/dist/es2019/uploader/error.js +0 -2
  83. package/dist/es2019/uploader/index.js +0 -13
  84. package/dist/es2019/utils/checkWebpSupport.js +3 -4
  85. package/dist/es2019/utils/convertBase64ToBlob.js +0 -2
  86. package/dist/es2019/utils/createFileDataLoader.js +6 -9
  87. package/dist/es2019/utils/createMediaSubject.js +0 -2
  88. package/dist/es2019/utils/detectEmptyFile.js +1 -5
  89. package/dist/es2019/utils/getDimensionsFromBlob.js +0 -3
  90. package/dist/es2019/utils/getImageDimensionsFromBlob.js +0 -2
  91. package/dist/es2019/utils/getVideoDimensionsFromBlob.js +2 -1
  92. package/dist/es2019/utils/hashing/hasherCreator.js +0 -2
  93. package/dist/es2019/utils/hashing/simpleHasher.js +0 -3
  94. package/dist/es2019/utils/hashing/workerHasher.js +1 -16
  95. package/dist/es2019/utils/isImageRemote.js +0 -2
  96. package/dist/es2019/utils/mediaSubscribable/fromObservable.js +2 -1
  97. package/dist/es2019/utils/mediaSubscribable/toPromise.js +1 -1
  98. package/dist/es2019/utils/mobileUpload/error.js +0 -2
  99. package/dist/es2019/utils/mobileUpload/helpers.js +2 -7
  100. package/dist/es2019/utils/mobileUpload/stateMachine/index.js +0 -2
  101. package/dist/es2019/utils/mobileUpload/stateMachine/states/uploading.js +2 -1
  102. package/dist/es2019/utils/overrideMediaTypeIfUnknown.js +0 -1
  103. package/dist/es2019/utils/polling/errors.js +0 -2
  104. package/dist/es2019/utils/polling/index.js +3 -20
  105. package/dist/es2019/utils/request/errors.js +0 -2
  106. package/dist/es2019/utils/request/helpers.js +24 -35
  107. package/dist/es2019/utils/request/index.js +2 -2
  108. package/dist/es2019/utils/shouldFetchRemoteFileStates.js +1 -5
  109. package/dist/es2019/utils/url.js +6 -14
  110. package/dist/es2019/utils/with-media-client-hoc.js +10 -7
  111. package/dist/es2019/version.json +1 -1
  112. package/dist/esm/client/collection-fetcher.js +4 -34
  113. package/dist/esm/client/file-fetcher/error.js +3 -12
  114. package/dist/esm/client/file-fetcher/index.js +154 -137
  115. package/dist/esm/client/media-client.js +4 -17
  116. package/dist/esm/client/media-store/error.js +1 -10
  117. package/dist/esm/client/media-store/index.js +13 -89
  118. package/dist/esm/client/media-store/resolveAuth.js +2 -13
  119. package/dist/esm/client/mobile-upload.js +9 -15
  120. package/dist/esm/client/stargate-client.js +0 -7
  121. package/dist/esm/constants.js +0 -1
  122. package/dist/esm/file-streams-cache.js +0 -6
  123. package/dist/esm/globalMediaEventEmitter.js +0 -1
  124. package/dist/esm/index.js +4 -11
  125. package/dist/esm/models/artifacts.js +0 -2
  126. package/dist/esm/models/errors/index.js +5 -12
  127. package/dist/esm/models/file-state.js +10 -17
  128. package/dist/esm/models/media.js +2 -3
  129. package/dist/esm/upload-controller.js +0 -2
  130. package/dist/esm/uploader/calculateChunkSize.js +1 -4
  131. package/dist/esm/uploader/error.js +3 -12
  132. package/dist/esm/uploader/index.js +3 -32
  133. package/dist/esm/utils/checkWebpSupport.js +3 -4
  134. package/dist/esm/utils/convertBase64ToBlob.js +0 -3
  135. package/dist/esm/utils/createFileDataLoader.js +4 -18
  136. package/dist/esm/utils/createMediaSubject.js +0 -2
  137. package/dist/esm/utils/detectEmptyFile.js +8 -12
  138. package/dist/esm/utils/getDimensionsFromBlob.js +0 -7
  139. package/dist/esm/utils/getImageDimensionsFromBlob.js +0 -2
  140. package/dist/esm/utils/getVideoDimensionsFromBlob.js +2 -3
  141. package/dist/esm/utils/hashing/hasherCreator.js +0 -9
  142. package/dist/esm/utils/hashing/simpleHasher.js +0 -4
  143. package/dist/esm/utils/hashing/workerHasher.js +3 -18
  144. package/dist/esm/utils/isImageRemote.js +0 -3
  145. package/dist/esm/utils/mediaSubscribable/fromObservable.js +2 -1
  146. package/dist/esm/utils/mediaSubscribable/toPromise.js +1 -1
  147. package/dist/esm/utils/mobileUpload/error.js +3 -12
  148. package/dist/esm/utils/mobileUpload/helpers.js +2 -11
  149. package/dist/esm/utils/mobileUpload/stateMachine/index.js +0 -6
  150. package/dist/esm/utils/mobileUpload/stateMachine/states/uploading.js +0 -3
  151. package/dist/esm/utils/overrideMediaTypeIfUnknown.js +0 -1
  152. package/dist/esm/utils/polling/errors.js +1 -10
  153. package/dist/esm/utils/polling/index.js +1 -27
  154. package/dist/esm/utils/request/errors.js +8 -17
  155. package/dist/esm/utils/request/helpers.js +22 -76
  156. package/dist/esm/utils/request/index.js +15 -20
  157. package/dist/esm/utils/shouldFetchRemoteFileStates.js +1 -15
  158. package/dist/esm/utils/url.js +4 -18
  159. package/dist/esm/utils/with-media-client-hoc.js +12 -17
  160. package/dist/esm/version.json +1 -1
  161. package/dist/types/client/file-fetcher/index.d.ts +6 -2
  162. package/package.json +8 -6
  163. package/report.api.md +4 -1
@@ -1,21 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.UploadController = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var UploadController = /*#__PURE__*/function () {
15
11
  function UploadController() {
16
12
  (0, _classCallCheck2.default)(this, UploadController);
17
13
  }
18
-
19
14
  (0, _createClass2.default)(UploadController, [{
20
15
  key: "setAbort",
21
16
  value: function setAbort(abortFunction) {
@@ -31,5 +26,4 @@ var UploadController = /*#__PURE__*/function () {
31
26
  }]);
32
27
  return UploadController;
33
28
  }();
34
-
35
29
  exports.UploadController = UploadController;
@@ -4,12 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.fileSizeError = exports.calculateChunkSize = void 0;
7
-
8
7
  var _media = require("../models/media");
9
-
10
8
  var _constants = require("../constants");
11
-
12
9
  var fileSizeError = 'fileSizeExceedsLimit';
10
+
13
11
  /**
14
12
  * This is a helper to dynamically calculate the chunk size for a given file size.
15
13
  *
@@ -19,27 +17,20 @@ var fileSizeError = 'fileSizeExceedsLimit';
19
17
  * @see {@link https://product-fabric.atlassian.net/wiki/spaces/FIL/pages/3221881143/Rule+of+thumb+for+chunk+sizes#Given-the-following-conditions}
20
18
  *
21
19
  */
22
-
23
20
  exports.fileSizeError = fileSizeError;
24
-
25
21
  var calculateChunkSize = function calculateChunkSize(fileSize) {
26
22
  if (fileSize > _constants.MAX_UPLOAD_FILE_SIZE) {
27
23
  throw new Error(fileSizeError);
28
24
  }
29
-
30
25
  if (fileSize <= 5 * _media.DATA_UNIT.GB) {
31
26
  return 5 * _media.DATA_UNIT.MB;
32
27
  }
33
-
34
28
  if (fileSize > 5 * _media.DATA_UNIT.GB && fileSize <= 50 * _media.DATA_UNIT.GB) {
35
29
  return 50 * _media.DATA_UNIT.MB;
36
30
  }
37
-
38
31
  if (fileSize > 50 * _media.DATA_UNIT.GB && fileSize <= 0.95 * _media.DATA_UNIT.TB) {
39
32
  return 100 * _media.DATA_UNIT.MB;
40
33
  }
41
-
42
34
  return 210 * _media.DATA_UNIT.MB;
43
35
  };
44
-
45
36
  exports.calculateChunkSize = calculateChunkSize;
@@ -1,37 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.UploaderError = void 0;
9
8
  exports.isUploaderError = isUploaderError;
10
-
11
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
-
13
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
-
15
11
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
-
17
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
18
-
19
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
20
-
21
14
  var _errors = require("../models/errors");
22
-
23
15
  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
16
  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
17
  var UploaderError = /*#__PURE__*/function (_BaseMediaClientError) {
28
18
  (0, _inherits2.default)(UploaderError, _BaseMediaClientError);
29
-
30
19
  var _super = _createSuper(UploaderError);
31
-
32
20
  function UploaderError(reason, id, metadata) {
33
21
  var _this;
34
-
35
22
  (0, _classCallCheck2.default)(this, UploaderError);
36
23
  _this = _super.call(this, reason);
37
24
  _this.reason = reason;
@@ -39,16 +26,15 @@ var UploaderError = /*#__PURE__*/function (_BaseMediaClientError) {
39
26
  _this.metadata = metadata;
40
27
  return _this;
41
28
  }
42
-
43
29
  (0, _createClass2.default)(UploaderError, [{
44
30
  key: "attributes",
45
31
  get: function get() {
46
32
  var reason = this.reason,
47
- id = this.id,
48
- _this$metadata = this.metadata;
33
+ id = this.id,
34
+ _this$metadata = this.metadata;
49
35
  _this$metadata = _this$metadata === void 0 ? {} : _this$metadata;
50
36
  var collectionName = _this$metadata.collectionName,
51
- occurrenceKey = _this$metadata.occurrenceKey;
37
+ occurrenceKey = _this$metadata.occurrenceKey;
52
38
  return {
53
39
  reason: reason,
54
40
  id: id,
@@ -59,9 +45,7 @@ var UploaderError = /*#__PURE__*/function (_BaseMediaClientError) {
59
45
  }]);
60
46
  return UploaderError;
61
47
  }(_errors.BaseMediaClientError);
62
-
63
48
  exports.UploaderError = UploaderError;
64
-
65
49
  function isUploaderError(err) {
66
50
  return err instanceof UploaderError;
67
51
  }
@@ -1,30 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.uploadFile = void 0;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
10
  var _chunkinator = require("@atlaskit/chunkinator");
15
-
16
11
  var _from = require("rxjs/observable/from");
17
-
18
12
  var _concatMap = require("rxjs/operators/concatMap");
19
-
20
13
  var _hasherCreator = require("../utils/hashing/hasherCreator");
21
-
22
14
  var _error = require("./error");
23
-
24
15
  var _constants = require("../constants");
25
-
26
16
  var _calculateChunkSize = require("./calculateChunkSize");
27
-
28
17
  var hashingFunction = /*#__PURE__*/function () {
29
18
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(blob) {
30
19
  var hasher;
@@ -34,11 +23,9 @@ var hashingFunction = /*#__PURE__*/function () {
34
23
  case 0:
35
24
  _context.next = 2;
36
25
  return (0, _hasherCreator.createHasher)();
37
-
38
26
  case 2:
39
27
  hasher = _context.sent;
40
28
  return _context.abrupt("return", hasher.hash(blob));
41
-
42
29
  case 4:
43
30
  case "end":
44
31
  return _context.stop();
@@ -46,12 +33,10 @@ var hashingFunction = /*#__PURE__*/function () {
46
33
  }
47
34
  }, _callee);
48
35
  }));
49
-
50
36
  return function hashingFunction(_x) {
51
37
  return _ref.apply(this, arguments);
52
38
  };
53
39
  }();
54
-
55
40
  var createProbingFunction = function createProbingFunction(store, deferredUploadId, collectionName, traceContext) {
56
41
  return /*#__PURE__*/function () {
57
42
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(chunks) {
@@ -64,21 +49,18 @@ var createProbingFunction = function createProbingFunction(store, deferredUpload
64
49
  _context2.t1 = hashedChunks(chunks);
65
50
  _context2.next = 4;
66
51
  return deferredUploadId;
67
-
68
52
  case 4:
69
53
  _context2.t2 = _context2.sent;
70
54
  _context2.t3 = collectionName;
71
55
  _context2.t4 = traceContext;
72
56
  _context2.next = 9;
73
57
  return _context2.t0.probeChunks.call(_context2.t0, _context2.t1, _context2.t2, _context2.t3, _context2.t4);
74
-
75
58
  case 9:
76
59
  response = _context2.sent;
77
60
  results = response.data.results;
78
61
  return _context2.abrupt("return", Object.values(results).map(function (result) {
79
62
  return result.exists;
80
63
  }));
81
-
82
64
  case 12:
83
65
  case "end":
84
66
  return _context2.stop();
@@ -86,13 +68,11 @@ var createProbingFunction = function createProbingFunction(store, deferredUpload
86
68
  }
87
69
  }, _callee2);
88
70
  }));
89
-
90
71
  return function (_x2) {
91
72
  return _ref2.apply(this, arguments);
92
73
  };
93
74
  }();
94
75
  };
95
-
96
76
  var createUploadingFunction = function createUploadingFunction(store, deferredUploadId, collectionName, traceContext) {
97
77
  return /*#__PURE__*/function () {
98
78
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(chunk) {
@@ -105,7 +85,6 @@ var createUploadingFunction = function createUploadingFunction(store, deferredUp
105
85
  _context3.t2 = chunk.blob;
106
86
  _context3.next = 5;
107
87
  return deferredUploadId;
108
-
109
88
  case 5:
110
89
  _context3.t3 = _context3.sent;
111
90
  _context3.t4 = chunk.partNumber;
@@ -113,10 +92,8 @@ var createUploadingFunction = function createUploadingFunction(store, deferredUp
113
92
  _context3.t6 = traceContext;
114
93
  _context3.next = 11;
115
94
  return _context3.t0.uploadChunk.call(_context3.t0, _context3.t1, _context3.t2, _context3.t3, _context3.t4, _context3.t5, _context3.t6);
116
-
117
95
  case 11:
118
96
  return _context3.abrupt("return", _context3.sent);
119
-
120
97
  case 12:
121
98
  case "end":
122
99
  return _context3.stop();
@@ -124,13 +101,11 @@ var createUploadingFunction = function createUploadingFunction(store, deferredUp
124
101
  }
125
102
  }, _callee3);
126
103
  }));
127
-
128
104
  return function (_x3) {
129
105
  return _ref3.apply(this, arguments);
130
106
  };
131
107
  }();
132
108
  };
133
-
134
109
  var createProcessingFunction = function createProcessingFunction(store, deferredUploadId, collection, traceContext) {
135
110
  var offset = 0;
136
111
  return /*#__PURE__*/function () {
@@ -142,7 +117,6 @@ var createProcessingFunction = function createProcessingFunction(store, deferred
142
117
  _context4.t0 = store;
143
118
  _context4.next = 3;
144
119
  return deferredUploadId;
145
-
146
120
  case 3:
147
121
  _context4.t1 = _context4.sent;
148
122
  _context4.t2 = {
@@ -153,10 +127,8 @@ var createProcessingFunction = function createProcessingFunction(store, deferred
153
127
  _context4.t4 = traceContext;
154
128
  _context4.next = 9;
155
129
  return _context4.t0.appendChunksToUpload.call(_context4.t0, _context4.t1, _context4.t2, _context4.t3, _context4.t4);
156
-
157
130
  case 9:
158
131
  offset += chunks.length;
159
-
160
132
  case 10:
161
133
  case "end":
162
134
  return _context4.stop();
@@ -164,13 +136,11 @@ var createProcessingFunction = function createProcessingFunction(store, deferred
164
136
  }
165
137
  }, _callee4);
166
138
  }));
167
-
168
139
  return function (_x4) {
169
140
  return _ref4.apply(this, arguments);
170
141
  };
171
142
  }();
172
143
  };
173
-
174
144
  var createFileFromUpload = /*#__PURE__*/function () {
175
145
  var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(file, store, uploadableFileUpfrontIds, uploadId, traceContext) {
176
146
  var collection, name, mimeType, id, occurrenceKey;
@@ -189,7 +159,6 @@ var createFileFromUpload = /*#__PURE__*/function () {
189
159
  collection: collection,
190
160
  replaceFileId: id
191
161
  }, traceContext));
192
-
193
162
  case 3:
194
163
  case "end":
195
164
  return _context5.stop();
@@ -197,20 +166,17 @@ var createFileFromUpload = /*#__PURE__*/function () {
197
166
  }
198
167
  }, _callee5);
199
168
  }));
200
-
201
169
  return function createFileFromUpload(_x5, _x6, _x7, _x8, _x9) {
202
170
  return _ref5.apply(this, arguments);
203
171
  };
204
172
  }();
205
-
206
173
  var uploadFile = function uploadFile(file, store, uploadableFileUpfrontIds, callbacks, traceContext) {
207
174
  var content = file.content,
208
- collection = file.collection;
175
+ collection = file.collection;
209
176
  var deferredUploadId = uploadableFileUpfrontIds.deferredUploadId,
210
- id = uploadableFileUpfrontIds.id,
211
- occurrenceKey = uploadableFileUpfrontIds.occurrenceKey;
177
+ id = uploadableFileUpfrontIds.id,
178
+ occurrenceKey = uploadableFileUpfrontIds.occurrenceKey;
212
179
  var chunkSize = _constants.CHUNK_SIZE;
213
-
214
180
  try {
215
181
  if (content instanceof Blob) {
216
182
  chunkSize = (0, _calculateChunkSize.calculateChunkSize)(content.size);
@@ -222,14 +188,12 @@ var uploadFile = function uploadFile(file, store, uploadableFileUpfrontIds, call
222
188
  occurrenceKey: occurrenceKey
223
189
  }));
224
190
  }
225
-
226
191
  return {
227
192
  cancel: function cancel() {
228
193
  callbacks === null || callbacks === void 0 ? void 0 : callbacks.onUploadFinish('canceled');
229
194
  }
230
195
  };
231
196
  }
232
-
233
197
  var chunkinatorObservable = (0, _chunkinator.chunkinator)(content, {
234
198
  hashingFunction: hashingFunction,
235
199
  hashingConcurrency: 5,
@@ -247,9 +211,7 @@ var uploadFile = function uploadFile(file, store, uploadableFileUpfrontIds, call
247
211
  }
248
212
  }
249
213
  });
250
-
251
214
  var onUploadFinish = callbacks && callbacks.onUploadFinish || function () {};
252
-
253
215
  var subscription = (0, _from.from)(deferredUploadId).pipe((0, _concatMap.concatMap)(function (uploadId) {
254
216
  return chunkinatorObservable.pipe((0, _concatMap.concatMap)(function () {
255
217
  return (0, _from.from)(createFileFromUpload(file, store, uploadableFileUpfrontIds, uploadId, traceContext));
@@ -269,9 +231,7 @@ var uploadFile = function uploadFile(file, store, uploadableFileUpfrontIds, call
269
231
  }
270
232
  };
271
233
  };
272
-
273
234
  exports.uploadFile = uploadFile;
274
-
275
235
  var hashedChunks = function hashedChunks(chunks) {
276
236
  return chunks.map(function (chunk) {
277
237
  return chunk.hash;
@@ -4,31 +4,27 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.checkWebpSupport = void 0;
7
-
8
7
  /**
9
8
  * Checks if Webp support is enabled in the browser.
10
9
  * We know that creating a new image in memory and checking its height,
11
10
  * later on we cache this value forever.
12
11
  */
13
12
  var isSupported;
14
-
15
13
  var checkWebpSupport = function checkWebpSupport() {
16
14
  if (isSupported !== undefined) {
17
15
  return Promise.resolve(isSupported);
18
16
  }
19
-
20
17
  return new Promise(function (resolve) {
21
- var img = new Image(); // Following base64 encoded binary content is in webp format. If browser supports this standard,
18
+ var img = new Image();
19
+
20
+ // Following base64 encoded binary content is in webp format. If browser supports this standard,
22
21
  // 2px height image will be displayed. If not, standard "not found" image placeholder will be
23
22
  // displayed and it will be not 2px height.
24
-
25
23
  img.src = 'data:image/webp;base64,UklGRi4AAABXRUJQVlA4TCEAAAAvAUAAEB8wAiMwAgSSNtse/cXjxyCCmrYNWPwmHRH9jwMA';
26
-
27
24
  img.onload = img.onerror = function () {
28
25
  isSupported = img.height === 2;
29
26
  resolve(isSupported);
30
27
  };
31
28
  });
32
29
  };
33
-
34
30
  exports.checkWebpSupport = checkWebpSupport;
@@ -4,13 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.convertBase64ToBlob = void 0;
7
-
8
7
  var convertBase64ToBlob = function convertBase64ToBlob(base64) {
9
8
  var sliceSize = 512;
10
9
  var base64Data = base64.split(',')[1];
11
10
  var byteCharacters = atob(base64Data);
12
11
  var byteArrays = [];
13
-
14
12
  var _loop = function _loop(offset) {
15
13
  var slice = byteCharacters.slice(offset, offset + sliceSize);
16
14
  var byteNumbers = slice.split('').map(function (_, i) {
@@ -19,14 +17,11 @@ var convertBase64ToBlob = function convertBase64ToBlob(base64) {
19
17
  var byteArray = new Uint8Array(byteNumbers);
20
18
  byteArrays.push(byteArray);
21
19
  };
22
-
23
20
  for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
24
21
  _loop(offset);
25
22
  }
26
-
27
23
  return new Blob(byteArrays, {
28
24
  type: 'image/jpeg'
29
25
  });
30
26
  };
31
-
32
27
  exports.convertBase64ToBlob = convertBase64ToBlob;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -9,40 +8,27 @@ exports.MAX_BATCH_SIZE = void 0;
9
8
  exports.createBatchLoadingFunc = createBatchLoadingFunc;
10
9
  exports.createFileDataloader = createFileDataloader;
11
10
  exports.getItemsFromKeys = void 0;
12
-
13
11
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
14
-
15
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
16
-
17
13
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
18
-
19
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
-
21
15
  require("setimmediate");
22
-
23
16
  var _dataloader = _interopRequireDefault(require("dataloader"));
24
-
25
17
  var _mediaCommon = require("@atlaskit/media-common");
26
-
27
18
  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; }
28
-
29
19
  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; }
30
-
31
20
  var MAX_BATCH_SIZE = 100;
32
21
  exports.MAX_BATCH_SIZE = MAX_BATCH_SIZE;
33
-
34
22
  var isBatchLoadingErrorResult = function isBatchLoadingErrorResult(result) {
35
23
  return result.error instanceof Error;
36
24
  };
37
-
38
25
  var makeCacheKey = function makeCacheKey(id, collection) {
39
26
  return collection ? "".concat(id, "-").concat(collection) : id;
40
27
  };
41
-
42
28
  var getItemsFromKeys = function getItemsFromKeys(dataloaderKeys, fileItems) {
43
29
  var itemsByKey = fileItems.reduce(function (prev, fileItem) {
44
30
  var id = fileItem.id,
45
- collection = fileItem.collection;
31
+ collection = fileItem.collection;
46
32
  var key = makeCacheKey(id, collection);
47
33
  prev[key] = isBatchLoadingErrorResult(fileItem) ? fileItem.error : _objectSpread(_objectSpread({}, fileItem.details), {}, {
48
34
  metadataTraceContext: fileItem.metadataTraceContext
@@ -51,14 +37,12 @@ var getItemsFromKeys = function getItemsFromKeys(dataloaderKeys, fileItems) {
51
37
  }, {});
52
38
  return dataloaderKeys.map(function (dataloaderKey) {
53
39
  var id = dataloaderKey.id,
54
- collectionName = dataloaderKey.collectionName;
40
+ collectionName = dataloaderKey.collectionName;
55
41
  var key = makeCacheKey(id, collectionName);
56
42
  return itemsByKey[key] || null;
57
43
  });
58
44
  };
59
-
60
45
  exports.getItemsFromKeys = getItemsFromKeys;
61
-
62
46
  /**
63
47
  * Returns a function that, given Array<DataloaderKey>, resolves to an array of same length containing either DataloaderResult or Error.
64
48
  * Such contract is formalised by Dataloader 1.0, @see https://github.com/graphql/dataloader
@@ -79,12 +63,12 @@ function createBatchLoadingFunc(mediaStore) {
79
63
  nonCollectionName = '__media-single-file-collection__';
80
64
  fileIdsByCollection = keys.reduce(function (acc, key) {
81
65
  var collectionName = key.collectionName || nonCollectionName;
82
- var fileIds = acc[collectionName] || []; // de-duplicate ids in collection
66
+ var fileIds = acc[collectionName] || [];
83
67
 
68
+ // de-duplicate ids in collection
84
69
  if (fileIds.indexOf(key.id) === -1) {
85
70
  fileIds.push(key.id);
86
71
  }
87
-
88
72
  acc[collectionName] = fileIds;
89
73
  return acc;
90
74
  }, {});
@@ -106,7 +90,6 @@ function createBatchLoadingFunc(mediaStore) {
106
90
  _context.prev = 3;
107
91
  _context.next = 6;
108
92
  return mediaStore.getItems(fileIds, collectionName, metadataTraceContext);
109
-
110
93
  case 6:
111
94
  response = _context.sent;
112
95
  itemsWithMetadataTraceContext = response.data.items.map(function (item) {
@@ -117,7 +100,6 @@ function createBatchLoadingFunc(mediaStore) {
117
100
  items.push.apply(items, (0, _toConsumableArray2.default)(itemsWithMetadataTraceContext));
118
101
  _context.next = 14;
119
102
  break;
120
-
121
103
  case 11:
122
104
  _context.prev = 11;
123
105
  _context.t0 = _context["catch"](3);
@@ -128,7 +110,6 @@ function createBatchLoadingFunc(mediaStore) {
128
110
  error: _context.t0
129
111
  });
130
112
  });
131
-
132
113
  case 14:
133
114
  case "end":
134
115
  return _context.stop();
@@ -136,15 +117,12 @@ function createBatchLoadingFunc(mediaStore) {
136
117
  }
137
118
  }, _callee, null, [[3, 11]]);
138
119
  }));
139
-
140
120
  return function (_x2) {
141
121
  return _ref2.apply(this, arguments);
142
122
  };
143
123
  }()));
144
-
145
124
  case 5:
146
125
  return _context2.abrupt("return", getItemsFromKeys(keys, items));
147
-
148
126
  case 6:
149
127
  case "end":
150
128
  return _context2.stop();
@@ -152,13 +130,11 @@ function createBatchLoadingFunc(mediaStore) {
152
130
  }
153
131
  }, _callee2);
154
132
  }));
155
-
156
133
  return function (_x) {
157
134
  return _ref.apply(this, arguments);
158
135
  };
159
136
  }();
160
137
  }
161
-
162
138
  function createFileDataloader(mediaStore) {
163
139
  return new _dataloader.default(createBatchLoadingFunc(mediaStore), {
164
140
  maxBatchSize: MAX_BATCH_SIZE
@@ -4,17 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createMediaSubject = createMediaSubject;
7
-
8
7
  var _ReplaySubject = require("rxjs/ReplaySubject");
9
-
10
8
  function createMediaSubject(initialState) {
11
9
  var subject = new _ReplaySubject.ReplaySubject(1);
12
-
13
10
  if (initialState instanceof Error) {
14
11
  subject.error(initialState);
15
12
  } else if (initialState) {
16
13
  subject.next(initialState);
17
14
  }
18
-
19
15
  return subject;
20
16
  }
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.EMPTY_FILE_HOURS_ELAPSED_TOLERANCE_MS = void 0;
7
7
  exports.isEmptyFile = isEmptyFile;
8
-
9
8
  /**
10
9
  * EMPTY_FILE_HOURS_ELAPSED_TOLERANCE - how many hours since this file was
11
10
  * created until we give up on expecting metadata?
@@ -19,29 +18,23 @@ exports.isEmptyFile = isEmptyFile;
19
18
  *
20
19
  * Being encapsulated in this function, we can always improve the detection transparently.
21
20
  */
22
- var EMPTY_FILE_HOURS_ELAPSED_TOLERANCE_MS = 12 * 1000 * 60 * 60;
23
- /* 12 hours */
24
-
21
+ var EMPTY_FILE_HOURS_ELAPSED_TOLERANCE_MS = 12 * 1000 * 60 * 60; /* 12 hours */
25
22
  exports.EMPTY_FILE_HOURS_ELAPSED_TOLERANCE_MS = EMPTY_FILE_HOURS_ELAPSED_TOLERANCE_MS;
26
-
27
23
  function isEmptyFile(fileDetails) {
28
24
  var now = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Date.now();
29
25
  var artifacts = fileDetails.artifacts,
30
- mediaType = fileDetails.mediaType,
31
- mimeType = fileDetails.mimeType,
32
- name = fileDetails.name,
33
- processingStatus = fileDetails.processingStatus,
34
- representations = fileDetails.representations,
35
- size = fileDetails.size,
36
- createdAt = fileDetails.createdAt;
37
-
26
+ mediaType = fileDetails.mediaType,
27
+ mimeType = fileDetails.mimeType,
28
+ name = fileDetails.name,
29
+ processingStatus = fileDetails.processingStatus,
30
+ representations = fileDetails.representations,
31
+ size = fileDetails.size,
32
+ createdAt = fileDetails.createdAt;
38
33
  if (!artifacts && !mediaType && !mimeType && !name && !processingStatus && !representations && !size && typeof createdAt === 'number') {
39
34
  var msSinceFileCreation = now - createdAt;
40
-
41
35
  if (msSinceFileCreation > EMPTY_FILE_HOURS_ELAPSED_TOLERANCE_MS) {
42
36
  return true;
43
37
  }
44
38
  }
45
-
46
39
  return false;
47
40
  }
@@ -1,20 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.getDimensionsFromBlob = void 0;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
10
  var _getImageDimensionsFromBlob = require("./getImageDimensionsFromBlob");
15
-
16
11
  var _getVideoDimensionsFromBlob = require("./getVideoDimensionsFromBlob");
17
-
18
12
  var getDimensionsFromBlob = /*#__PURE__*/function () {
19
13
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(mediaType, blob) {
20
14
  var url;
@@ -25,27 +19,21 @@ var getDimensionsFromBlob = /*#__PURE__*/function () {
25
19
  _context.t0 = mediaType;
26
20
  _context.next = _context.t0 === 'image' ? 3 : _context.t0 === 'video' ? 11 : 12;
27
21
  break;
28
-
29
22
  case 3:
30
23
  url = URL.createObjectURL(blob);
31
24
  _context.prev = 4;
32
25
  _context.next = 7;
33
26
  return (0, _getImageDimensionsFromBlob.getImageDimensionsFromBlob)(url);
34
-
35
27
  case 7:
36
28
  return _context.abrupt("return", _context.sent);
37
-
38
29
  case 8:
39
30
  _context.prev = 8;
40
31
  URL.revokeObjectURL(url);
41
32
  return _context.finish(8);
42
-
43
33
  case 11:
44
34
  return _context.abrupt("return", (0, _getVideoDimensionsFromBlob.getVideoDimensionsFromBlob)(blob));
45
-
46
35
  case 12:
47
36
  throw new Error("Can't extract dimensions from ".concat(mediaType));
48
-
49
37
  case 13:
50
38
  case "end":
51
39
  return _context.stop();
@@ -53,10 +41,8 @@ var getDimensionsFromBlob = /*#__PURE__*/function () {
53
41
  }
54
42
  }, _callee, null, [[4,, 8, 11]]);
55
43
  }));
56
-
57
44
  return function getDimensionsFromBlob(_x, _x2) {
58
45
  return _ref.apply(this, arguments);
59
46
  };
60
47
  }();
61
-
62
48
  exports.getDimensionsFromBlob = getDimensionsFromBlob;