@atlaskit/media-client 20.0.1 → 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 (161) hide show
  1. package/CHANGELOG.md +6 -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 +72 -191
  5. package/dist/cjs/client/media-client.js +2 -26
  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 +49 -91
  66. package/dist/es2019/client/media-client.js +3 -13
  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 +74 -161
  115. package/dist/esm/client/media-client.js +3 -16
  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/package.json +7 -5
@@ -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
  });
@@ -25,52 +24,37 @@ exports.mapResponseToBlob = mapResponseToBlob;
25
24
  exports.mapResponseToJson = mapResponseToJson;
26
25
  exports.mapResponseToVoid = mapResponseToVoid;
27
26
  exports.waitPromise = waitPromise;
28
-
29
27
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
30
-
31
28
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
32
-
33
29
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
34
-
35
30
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
36
-
37
31
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
38
-
39
32
  var _mediaCore = require("@atlaskit/media-core");
40
-
41
33
  var _authQueryParameters = require("../../models/auth-query-parameters");
42
-
43
34
  var _errors = require("./errors");
44
-
45
35
  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; }
46
-
47
36
  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; }
48
-
49
37
  function clientTimeoutPromise(timeout) {
50
38
  return new Promise(function (resolve, reject) {
51
39
  setTimeout(reject, timeout, new _errors.RequestError('clientTimeoutRequest'));
52
40
  });
53
41
  }
54
-
55
42
  function waitPromise(timeout) {
56
43
  return new Promise(function (resolve) {
57
44
  return setTimeout(resolve, timeout);
58
45
  });
59
46
  }
60
-
61
47
  function isAbortedRequestError(err) {
62
48
  return err instanceof Error && err.message === 'request_cancelled' || !!err && err.name === 'AbortError';
63
- } // fetch throws TypeError for network errors
64
-
49
+ }
65
50
 
51
+ // fetch throws TypeError for network errors
66
52
  function isFetchNetworkError(err) {
67
53
  return err instanceof TypeError;
68
54
  }
69
-
70
55
  function isRateLimitedError(error) {
71
56
  return !!error && (0, _errors.isRequestError)(error) && error.attributes.statusCode === 429 || !!error && !!error.message && error.message.includes('429');
72
57
  }
73
-
74
58
  var ZipkinHeaderKeys = {
75
59
  traceId: 'x-b3-traceid',
76
60
  spanId: 'x-b3-spanid',
@@ -79,67 +63,54 @@ var ZipkinHeaderKeys = {
79
63
  flags: 'x-b3-flags'
80
64
  };
81
65
  exports.ZipkinHeaderKeys = ZipkinHeaderKeys;
82
-
83
66
  var mapTraceIdToRequestHeaders = function mapTraceIdToRequestHeaders(traceContext) {
84
67
  var _ref;
85
-
86
68
  return traceContext ? (_ref = {}, (0, _defineProperty2.default)(_ref, ZipkinHeaderKeys.traceId, traceContext.traceId), (0, _defineProperty2.default)(_ref, ZipkinHeaderKeys.spanId, traceContext.spanId), _ref) : {};
87
69
  };
88
-
89
70
  function mapAuthToRequestHeaders(auth) {
90
71
  if (!auth) {
91
72
  return {};
92
73
  }
93
-
94
74
  if ((0, _mediaCore.isClientBasedAuth)(auth)) {
95
75
  return {
96
76
  'X-Client-Id': auth.clientId,
97
77
  Authorization: "Bearer ".concat(auth.token)
98
78
  };
99
79
  }
100
-
101
80
  return {
102
81
  'X-Issuer': auth.asapIssuer,
103
82
  Authorization: "Bearer ".concat(auth.token)
104
83
  };
105
84
  }
106
-
107
85
  function createUrl(url, _ref2) {
108
86
  var params = _ref2.params,
109
- auth = _ref2.auth;
87
+ auth = _ref2.auth;
110
88
  var parsedUrl = new URL(url);
111
89
  var authParams = auth && (0, _authQueryParameters.mapAuthToQueryParameters)(auth) || {};
112
-
113
90
  var paramsToAppend = _objectSpread(_objectSpread({}, params), authParams);
114
-
115
91
  Object.entries(paramsToAppend).filter(function (_ref3) {
116
92
  var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
117
- _ = _ref4[0],
118
- value = _ref4[1];
119
-
93
+ _ = _ref4[0],
94
+ value = _ref4[1];
120
95
  return value != null;
121
96
  }).forEach(function (pair) {
122
97
  var _parsedUrl$searchPara;
123
-
124
98
  (_parsedUrl$searchPara = parsedUrl.searchParams).append.apply(_parsedUrl$searchPara, (0, _toConsumableArray2.default)(pair));
125
99
  });
126
100
  parsedUrl.searchParams.sort();
127
101
  return parsedUrl.toString();
128
102
  }
129
-
130
103
  function extendHeaders(headers, auth, traceContext) {
131
104
  if (!auth && !traceContext && !headers) {
132
105
  return undefined;
133
106
  }
134
-
135
107
  return _objectSpread(_objectSpread(_objectSpread({}, headers !== null && headers !== void 0 ? headers : {}), mapAuthToRequestHeaders(auth)), mapTraceIdToRequestHeaders(traceContext));
136
108
  }
109
+
137
110
  /**
138
111
  * @deprecated Helper is deprecated and will be removed in the next major version.
139
112
  * TODO: https://product-fabric.atlassian.net/browse/BMPT-1354
140
113
  */
141
-
142
-
143
114
  function mapResponseToJson(_x) {
144
115
  return _mapResponseToJson.apply(this, arguments);
145
116
  }
@@ -147,8 +118,6 @@ function mapResponseToJson(_x) {
147
118
  * @deprecated Helper is deprecated and will be removed in the next major version.
148
119
  * TODO: https://product-fabric.atlassian.net/browse/BMPT-1354
149
120
  */
150
-
151
-
152
121
  function _mapResponseToJson() {
153
122
  _mapResponseToJson = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(response) {
154
123
  return _regenerator.default.wrap(function _callee3$(_context3) {
@@ -160,17 +129,14 @@ function _mapResponseToJson() {
160
129
  _context3.prev = 1;
161
130
  _context3.next = 4;
162
131
  return response.json();
163
-
164
132
  case 4:
165
133
  return _context3.abrupt("return", _context3.sent);
166
-
167
134
  case 7:
168
135
  _context3.prev = 7;
169
136
  _context3.t0 = _context3["catch"](1);
170
137
  throw new _errors.RequestError('serverInvalidBody', {
171
138
  statusCode: response.status
172
139
  }, _context3.t0 instanceof Error ? _context3.t0 : undefined);
173
-
174
140
  case 10:
175
141
  case "end":
176
142
  return _context3.stop();
@@ -180,7 +146,6 @@ function _mapResponseToJson() {
180
146
  }));
181
147
  return _mapResponseToJson.apply(this, arguments);
182
148
  }
183
-
184
149
  function mapResponseToBlob(_x2) {
185
150
  return _mapResponseToBlob.apply(this, arguments);
186
151
  }
@@ -188,8 +153,6 @@ function mapResponseToBlob(_x2) {
188
153
  * @deprecated Helper is deprecated and will be removed in the next major version.
189
154
  * TODO: https://product-fabric.atlassian.net/browse/BMPT-1354
190
155
  */
191
-
192
-
193
156
  function _mapResponseToBlob() {
194
157
  _mapResponseToBlob = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(response) {
195
158
  return _regenerator.default.wrap(function _callee4$(_context4) {
@@ -201,17 +164,14 @@ function _mapResponseToBlob() {
201
164
  _context4.prev = 1;
202
165
  _context4.next = 4;
203
166
  return response.blob();
204
-
205
167
  case 4:
206
168
  return _context4.abrupt("return", _context4.sent);
207
-
208
169
  case 7:
209
170
  _context4.prev = 7;
210
171
  _context4.t0 = _context4["catch"](1);
211
172
  throw new _errors.RequestError('serverInvalidBody', {
212
173
  statusCode: response.status
213
174
  }, _context4.t0 instanceof Error ? _context4.t0 : undefined);
214
-
215
175
  case 10:
216
176
  case "end":
217
177
  return _context4.stop();
@@ -221,13 +181,11 @@ function _mapResponseToBlob() {
221
181
  }));
222
182
  return _mapResponseToBlob.apply(this, arguments);
223
183
  }
224
-
225
184
  function mapResponseToVoid() {
226
185
  // eslint-disable-next-line no-console
227
186
  console.warn('Helper is deprecated and will be remove in the next major version');
228
187
  return Promise.resolve();
229
188
  }
230
-
231
189
  function createMapResponseToJson(metadata) {
232
190
  return /*#__PURE__*/function () {
233
191
  var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(response) {
@@ -238,17 +196,14 @@ function createMapResponseToJson(metadata) {
238
196
  _context.prev = 0;
239
197
  _context.next = 3;
240
198
  return response.json();
241
-
242
199
  case 3:
243
200
  return _context.abrupt("return", _context.sent);
244
-
245
201
  case 6:
246
202
  _context.prev = 6;
247
203
  _context.t0 = _context["catch"](0);
248
204
  throw new _errors.RequestError('serverInvalidBody', _objectSpread(_objectSpread(_objectSpread({}, metadata), extractMediaHeaders(response)), {}, {
249
205
  statusCode: response.status
250
206
  }), _context.t0 instanceof Error ? _context.t0 : undefined);
251
-
252
207
  case 9:
253
208
  case "end":
254
209
  return _context.stop();
@@ -256,13 +211,11 @@ function createMapResponseToJson(metadata) {
256
211
  }
257
212
  }, _callee, null, [[0, 6]]);
258
213
  }));
259
-
260
214
  return function (_x3) {
261
215
  return _ref5.apply(this, arguments);
262
216
  };
263
217
  }();
264
218
  }
265
-
266
219
  function createMapResponseToBlob(metadata) {
267
220
  return /*#__PURE__*/function () {
268
221
  var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(response) {
@@ -273,17 +226,14 @@ function createMapResponseToBlob(metadata) {
273
226
  _context2.prev = 0;
274
227
  _context2.next = 3;
275
228
  return response.blob();
276
-
277
229
  case 3:
278
230
  return _context2.abrupt("return", _context2.sent);
279
-
280
231
  case 6:
281
232
  _context2.prev = 6;
282
233
  _context2.t0 = _context2["catch"](0);
283
234
  throw new _errors.RequestError('serverInvalidBody', _objectSpread(_objectSpread(_objectSpread({}, metadata), extractMediaHeaders(response)), {}, {
284
235
  statusCode: response.status
285
236
  }), _context2.t0 instanceof Error ? _context2.t0 : undefined);
286
-
287
237
  case 9:
288
238
  case "end":
289
239
  return _context2.stop();
@@ -291,46 +241,40 @@ function createMapResponseToBlob(metadata) {
291
241
  }
292
242
  }, _callee2, null, [[0, 6]]);
293
243
  }));
294
-
295
244
  return function (_x4) {
296
245
  return _ref6.apply(this, arguments);
297
246
  };
298
247
  }();
299
248
  }
300
-
301
249
  var DEFAULT_RETRY_OPTIONS = {
302
250
  startTimeoutInMs: 1000,
303
251
  // 1 second is generally a good timeout to start
304
252
  maxAttempts: 5,
305
253
  // Current test delay is 60s, so retries should finish before if a promise takes < 1s
306
254
  factor: 2 // Good for polling, which is out main use case
307
-
308
255
  };
309
256
  exports.DEFAULT_RETRY_OPTIONS = DEFAULT_RETRY_OPTIONS;
310
-
311
257
  function cloneRequestError(error, extraMetadata) {
312
258
  var reason = error.reason,
313
- metadata = error.metadata,
314
- innerError = error.innerError;
259
+ metadata = error.metadata,
260
+ innerError = error.innerError;
315
261
  return new _errors.RequestError(reason, _objectSpread(_objectSpread({}, metadata), extraMetadata), innerError);
316
262
  }
317
-
318
263
  function fetchRetry(_x5, _x6) {
319
264
  return _fetchRetry.apply(this, arguments);
320
265
  }
321
-
322
266
  function _fetchRetry() {
323
267
  _fetchRetry = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(functionToRetry, metadata) {
324
268
  var overwriteOptions,
325
- options,
326
- startTimeoutInMs,
327
- maxAttempts,
328
- factor,
329
- attempts,
330
- timeoutInMs,
331
- lastError,
332
- waitAndBumpTimeout,
333
- _args6 = arguments;
269
+ options,
270
+ startTimeoutInMs,
271
+ maxAttempts,
272
+ factor,
273
+ attempts,
274
+ timeoutInMs,
275
+ lastError,
276
+ waitAndBumpTimeout,
277
+ _args6 = arguments;
334
278
  return _regenerator.default.wrap(function _callee6$(_context6) {
335
279
  while (1) {
336
280
  switch (_context6.prev = _context6.next) {
@@ -340,7 +284,6 @@ function _fetchRetry() {
340
284
  startTimeoutInMs = options.startTimeoutInMs, maxAttempts = options.maxAttempts, factor = options.factor;
341
285
  attempts = 0;
342
286
  timeoutInMs = startTimeoutInMs;
343
-
344
287
  waitAndBumpTimeout = /*#__PURE__*/function () {
345
288
  var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
346
289
  return _regenerator.default.wrap(function _callee5$(_context5) {
@@ -349,11 +292,9 @@ function _fetchRetry() {
349
292
  case 0:
350
293
  _context5.next = 2;
351
294
  return waitPromise(timeoutInMs);
352
-
353
295
  case 2:
354
296
  timeoutInMs *= factor;
355
297
  attempts += 1;
356
-
357
298
  case 4:
358
299
  case "end":
359
300
  return _context5.stop();
@@ -361,70 +302,57 @@ function _fetchRetry() {
361
302
  }
362
303
  }, _callee5);
363
304
  }));
364
-
365
305
  return function waitAndBumpTimeout() {
366
306
  return _ref7.apply(this, arguments);
367
307
  };
368
308
  }();
369
-
370
309
  case 6:
371
310
  if (!(attempts < maxAttempts)) {
372
311
  _context6.next = 24;
373
312
  break;
374
313
  }
375
-
376
314
  _context6.prev = 7;
377
315
  _context6.next = 10;
378
316
  return functionToRetry();
379
-
380
317
  case 10:
381
318
  return _context6.abrupt("return", _context6.sent);
382
-
383
319
  case 13:
384
320
  _context6.prev = 13;
385
321
  _context6.t0 = _context6["catch"](7);
386
- lastError = _context6.t0; // don't retry if request was aborted by user
322
+ lastError = _context6.t0;
387
323
 
324
+ // don't retry if request was aborted by user
388
325
  if (!isAbortedRequestError(_context6.t0)) {
389
326
  _context6.next = 18;
390
327
  break;
391
328
  }
392
-
393
329
  throw new _errors.RequestError('clientAbortedRequest', metadata, _context6.t0);
394
-
395
330
  case 18:
396
331
  if (!(!isFetchNetworkError(_context6.t0) && !(0, _errors.isRequestError)(_context6.t0) || (0, _errors.isRequestError)(_context6.t0) && (!_context6.t0.metadata || !_context6.t0.metadata.statusCode || _context6.t0.metadata.statusCode < 500))) {
397
332
  _context6.next = 20;
398
333
  break;
399
334
  }
400
-
401
335
  throw _context6.t0;
402
-
403
336
  case 20:
404
337
  _context6.next = 22;
405
338
  return waitAndBumpTimeout();
406
-
407
339
  case 22:
408
340
  _context6.next = 6;
409
341
  break;
410
-
411
342
  case 24:
412
343
  if (!(0, _errors.isRequestError)(lastError)) {
413
344
  _context6.next = 26;
414
345
  break;
415
346
  }
416
-
417
347
  throw cloneRequestError(lastError, {
418
348
  attempts: attempts,
419
349
  clientExhaustedRetries: true
420
350
  });
421
-
422
351
  case 26:
423
352
  throw new _errors.RequestError('serverUnexpectedError', _objectSpread(_objectSpread({}, metadata), {}, {
424
353
  attempts: attempts,
425
354
  clientExhaustedRetries: true
426
355
  }), lastError);
427
-
428
356
  case 27:
429
357
  case "end":
430
358
  return _context6.stop();
@@ -434,35 +362,26 @@ function _fetchRetry() {
434
362
  }));
435
363
  return _fetchRetry.apply(this, arguments);
436
364
  }
437
-
438
365
  function createRequestErrorReason(statusCode) {
439
366
  switch (statusCode) {
440
367
  case 400:
441
368
  return 'serverBadRequest';
442
-
443
369
  case 401:
444
370
  return 'serverUnauthorized';
445
-
446
371
  case 403:
447
372
  return 'serverForbidden';
448
-
449
373
  case 404:
450
374
  return 'serverNotFound';
451
-
452
375
  case 429:
453
376
  return 'serverRateLimited';
454
-
455
377
  case 500:
456
378
  return 'serverInternalError';
457
-
458
379
  case 502:
459
380
  return 'serverBadGateway';
460
-
461
381
  default:
462
382
  return 'serverUnexpectedError';
463
383
  }
464
384
  }
465
-
466
385
  function createRequestErrorFromResponse(metadata, response) {
467
386
  var statusCode = response.status;
468
387
  var reason = createRequestErrorReason(statusCode);
@@ -470,18 +389,15 @@ function createRequestErrorFromResponse(metadata, response) {
470
389
  statusCode: statusCode
471
390
  }));
472
391
  }
473
-
474
392
  function createProcessFetchResponse(metadata) {
475
393
  return function (response) {
476
394
  if (response.ok || response.status < 400) {
477
395
  return response;
478
396
  }
479
-
480
397
  var requestError = createRequestErrorFromResponse(metadata, response);
481
398
  throw requestError;
482
399
  };
483
400
  }
484
-
485
401
  function extractMediaHeaders(response) {
486
402
  var headers = response.headers;
487
403
  var mediaRegion = headers.get('x-media-region') || 'unknown';
@@ -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
  });
@@ -24,38 +23,31 @@ Object.defineProperty(exports, "isRequestError", {
24
23
  }
25
24
  });
26
25
  exports.request = request;
27
-
28
26
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
29
-
30
27
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
31
-
32
28
  var _errors = require("./errors");
33
-
34
29
  var _helpers = require("./helpers");
35
-
36
30
  function request(_x) {
37
31
  return _request.apply(this, arguments);
38
32
  }
39
-
40
33
  function _request() {
41
34
  _request = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url) {
42
35
  var options,
43
- controller,
44
- _options$method,
45
- method,
46
- endpoint,
47
- auth,
48
- params,
49
- headers,
50
- body,
51
- _options$clientOption,
52
- clientOptions,
53
- traceContext,
54
- retryOptions,
55
- metadata,
56
- doFetch,
57
- _args = arguments;
58
-
36
+ controller,
37
+ _options$method,
38
+ method,
39
+ endpoint,
40
+ auth,
41
+ params,
42
+ headers,
43
+ body,
44
+ _options$clientOption,
45
+ clientOptions,
46
+ traceContext,
47
+ retryOptions,
48
+ metadata,
49
+ doFetch,
50
+ _args = arguments;
59
51
  return _regenerator.default.wrap(function _callee$(_context) {
60
52
  while (1) {
61
53
  switch (_context.prev = _context.next) {
@@ -69,7 +61,6 @@ function _request() {
69
61
  endpoint: endpoint,
70
62
  traceContext: traceContext
71
63
  }; // TODO BMPT-918: add client timeout feature behing a FF (using clientOptions.clientTimeout + Promise.race)
72
-
73
64
  doFetch = function doFetch() {
74
65
  return fetch((0, _helpers.createUrl)(url, {
75
66
  params: params
@@ -80,9 +71,7 @@ function _request() {
80
71
  signal: controller && controller.signal
81
72
  }).then((0, _helpers.createProcessFetchResponse)(metadata));
82
73
  };
83
-
84
74
  return _context.abrupt("return", (0, _helpers.fetchRetry)(doFetch, metadata, retryOptions));
85
-
86
75
  case 7:
87
76
  case "end":
88
77
  return _context.stop();
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.safeUnsubscribe = void 0;
7
-
8
7
  // TODO: remove this in next major version
9
8
  var safeUnsubscribe = function safeUnsubscribe(subscription) {
10
9
  // eslint-disable-next-line no-console
@@ -13,5 +12,4 @@ var safeUnsubscribe = function safeUnsubscribe(subscription) {
13
12
  return subscription && subscription.unsubscribe();
14
13
  }, 0);
15
14
  };
16
-
17
15
  exports.safeUnsubscribe = safeUnsubscribe;
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.resolveTimeout = exports.rejectTimeout = void 0;
7
-
8
7
  var resolveTimeout = function resolveTimeout(timeout, resolveWith) {
9
8
  return new Promise(function (resolve, _reject) {
10
9
  setTimeout(resolve, timeout, resolveWith);
11
10
  });
12
11
  };
13
-
14
12
  exports.resolveTimeout = resolveTimeout;
15
-
16
13
  var rejectTimeout = function rejectTimeout(timeout, rejectWith) {
17
14
  return new Promise(function (_resolve, reject) {
18
15
  setTimeout(reject, timeout, rejectWith);
19
16
  });
20
17
  };
21
-
22
18
  exports.rejectTimeout = rejectTimeout;
@@ -1,23 +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.shouldFetchRemoteFileStates = shouldFetchRemoteFileStates;
9
8
  exports.shouldFetchRemoteFileStatesObservable = shouldFetchRemoteFileStatesObservable;
10
-
11
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
-
13
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
-
15
11
  var _from = require("rxjs/observable/from");
16
-
17
12
  var _mediaTypeUtils = require("@atlaskit/media-common/mediaTypeUtils");
18
-
19
13
  var _getVideoDimensionsFromBlob = require("./getVideoDimensionsFromBlob");
20
-
21
14
  /**
22
15
  * Async helper determining if we should fetch remote fileStates from the backend:
23
16
  * - we poll the backend for all supported documents,
@@ -32,11 +25,9 @@ var _getVideoDimensionsFromBlob = require("./getVideoDimensionsFromBlob");
32
25
  function shouldFetchRemoteFileStates(_x, _x2, _x3) {
33
26
  return _shouldFetchRemoteFileStates.apply(this, arguments);
34
27
  }
35
-
36
28
  function _shouldFetchRemoteFileStates() {
37
29
  _shouldFetchRemoteFileStates = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(mediaType, mimeType, preview) {
38
30
  var content, _yield$getVideoDimens, width, height;
39
-
40
31
  return _regenerator.default.wrap(function _callee$(_context) {
41
32
  while (1) {
42
33
  switch (_context.prev = _context.next) {
@@ -45,47 +36,36 @@ function _shouldFetchRemoteFileStates() {
45
36
  _context.next = 2;
46
37
  break;
47
38
  }
48
-
49
39
  return _context.abrupt("return", true);
50
-
51
40
  case 2:
52
41
  if (!(mediaType === 'video' && !!preview)) {
53
42
  _context.next = 20;
54
43
  break;
55
44
  }
56
-
57
45
  _context.next = 5;
58
46
  return preview;
59
-
60
47
  case 5:
61
48
  content = _context.sent.value;
62
-
63
49
  if (content instanceof Blob) {
64
50
  _context.next = 8;
65
51
  break;
66
52
  }
67
-
68
53
  return _context.abrupt("return", false);
69
-
70
54
  case 8:
71
55
  _context.prev = 8;
72
56
  _context.next = 11;
73
57
  return (0, _getVideoDimensionsFromBlob.getVideoDimensionsFromBlob)(content);
74
-
75
58
  case 11:
76
59
  _yield$getVideoDimens = _context.sent;
77
60
  width = _yield$getVideoDimens.width;
78
61
  height = _yield$getVideoDimens.height;
79
62
  return _context.abrupt("return", !width && !height);
80
-
81
63
  case 17:
82
64
  _context.prev = 17;
83
65
  _context.t0 = _context["catch"](8);
84
66
  return _context.abrupt("return", true);
85
-
86
67
  case 20:
87
68
  return _context.abrupt("return", false);
88
-
89
69
  case 21:
90
70
  case "end":
91
71
  return _context.stop();
@@ -95,7 +75,6 @@ function _shouldFetchRemoteFileStates() {
95
75
  }));
96
76
  return _shouldFetchRemoteFileStates.apply(this, arguments);
97
77
  }
98
-
99
78
  function shouldFetchRemoteFileStatesObservable(mediaType, mimeType, preview) {
100
79
  return (0, _from.from)(shouldFetchRemoteFileStates(mediaType, mimeType, preview));
101
80
  }