@atlaskit/media-client 15.1.0 → 16.0.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.
- package/CHANGELOG.md +33 -0
- package/constants/package.json +1 -0
- package/dist/cjs/client/file-fetcher/index.js +0 -2
- package/dist/cjs/client/media-store/index.js +28 -8
- package/dist/cjs/index.js +12 -6
- package/dist/cjs/uploader.js +4 -2
- package/dist/cjs/utils/request/errors.js +4 -0
- package/dist/cjs/utils/request/helpers.js +40 -34
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/client/media-store/index.js +21 -7
- package/dist/es2019/index.js +2 -2
- package/dist/es2019/uploader.js +3 -3
- package/dist/es2019/utils/request/errors.js +4 -0
- package/dist/es2019/utils/request/helpers.js +22 -24
- package/dist/es2019/version.json +1 -1
- package/dist/esm/client/file-fetcher/index.js +0 -2
- package/dist/esm/client/media-store/index.js +22 -8
- package/dist/esm/index.js +2 -2
- package/dist/esm/uploader.js +4 -2
- package/dist/esm/utils/request/errors.js +4 -0
- package/dist/esm/utils/request/helpers.js +36 -31
- package/dist/esm/version.json +1 -1
- package/dist/types/client/media-store/index.d.ts +2 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/uploader.d.ts +1 -1
- package/dist/types/utils/request/errors.d.ts +2 -0
- package/dist/types/utils/request/helpers.d.ts +4 -4
- package/dist/types/utils/request/types.d.ts +2 -0
- package/package.json +7 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# @atlaskit/media-client
|
|
2
2
|
|
|
3
|
+
## 16.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`12d0af77572`](https://bitbucket.org/atlassian/atlassian-frontend/commits/12d0af77572) - Store media environment in session storage
|
|
8
|
+
- [`325e210e59f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/325e210e59f) - Revert changes made in MEX-1638-revert-update-media-store-class-with-new-endpoint-parameters
|
|
9
|
+
- [`b73f20ed703`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b73f20ed703) - EDM-3073: Fix collab for media inline and copy-paste regression
|
|
10
|
+
- [`c2ede50a80a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c2ede50a80a) - Add media region and environment returned from media API response into failed analytic events.
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
|
|
13
|
+
## 16.0.0
|
|
14
|
+
|
|
15
|
+
### Major Changes
|
|
16
|
+
|
|
17
|
+
- [`b6d47de3fd9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b6d47de3fd9) - [MEX-1417] remove access to media file streams cache
|
|
18
|
+
|
|
19
|
+
### Minor Changes
|
|
20
|
+
|
|
21
|
+
- [`5e249d1ad05`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5e249d1ad05) - Exposed media environment
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- [`bde94d1a336`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bde94d1a336) - When chunkinator has multiple processing batches of chunks, file will only be finalised uploading for once.
|
|
26
|
+
- [`567b33b2eeb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/567b33b2eeb) - stripe out null and undefined params when calling media server
|
|
27
|
+
- [`c4c75f5a769`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c4c75f5a769) - Removed query string from media client
|
|
28
|
+
- Updated dependencies
|
|
29
|
+
|
|
30
|
+
## 15.1.1
|
|
31
|
+
|
|
32
|
+
### Patch Changes
|
|
33
|
+
|
|
34
|
+
- [`a424e62b264`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a424e62b264) - Changes to support Node 16 Typescript definitions from `@types/node`.
|
|
35
|
+
|
|
3
36
|
## 15.1.0
|
|
4
37
|
|
|
5
38
|
### Minor Changes
|
package/constants/package.json
CHANGED
|
@@ -333,7 +333,6 @@ var FileFetcherImpl = /*#__PURE__*/function () {
|
|
|
333
333
|
};
|
|
334
334
|
mediaType = (0, _mediaTypeUtils.getMediaTypeFromMimeType)(type); // we emit a richer state after the blob is fetched
|
|
335
335
|
|
|
336
|
-
// we emit a richer state after the blob is fetched
|
|
337
336
|
subject.next({
|
|
338
337
|
status: 'processing',
|
|
339
338
|
name: name,
|
|
@@ -345,7 +344,6 @@ var FileFetcherImpl = /*#__PURE__*/function () {
|
|
|
345
344
|
preview: preview
|
|
346
345
|
}); // we don't want to wait for the file to be upload
|
|
347
346
|
|
|
348
|
-
// we don't want to wait for the file to be upload
|
|
349
347
|
_this3.upload(file, undefined, uploadableFileUpfrontIds);
|
|
350
348
|
|
|
351
349
|
_context3.next = 12;
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "MediaStoreError", {
|
|
|
12
12
|
return _error.MediaStoreError;
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
|
+
exports.getMediaRegion = exports.getMediaEnvironment = void 0;
|
|
15
16
|
Object.defineProperty(exports, "isMediaStoreError", {
|
|
16
17
|
enumerable: true,
|
|
17
18
|
get: function get() {
|
|
@@ -45,6 +46,8 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
45
46
|
|
|
46
47
|
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; }
|
|
47
48
|
|
|
49
|
+
var MEDIA_API_REGION = 'media-api-region';
|
|
50
|
+
var MEDIA_API_ENVIRONMENT = 'media-api-environment';
|
|
48
51
|
var defaultImageOptions = {
|
|
49
52
|
'max-age': _constants.FILE_CACHE_MAX_AGE,
|
|
50
53
|
allowAnimated: true,
|
|
@@ -699,10 +702,11 @@ var MediaStore = /*#__PURE__*/function () {
|
|
|
699
702
|
|
|
700
703
|
case 8:
|
|
701
704
|
response = _context11.sent;
|
|
702
|
-
|
|
705
|
+
setKeyValueInSessionStorage(MEDIA_API_REGION, response.headers.get('x-media-region'));
|
|
706
|
+
setKeyValueInSessionStorage(MEDIA_API_ENVIRONMENT, response.headers.get('x-media-env'));
|
|
703
707
|
return _context11.abrupt("return", response);
|
|
704
708
|
|
|
705
|
-
case
|
|
709
|
+
case 12:
|
|
706
710
|
case "end":
|
|
707
711
|
return _context11.stop();
|
|
708
712
|
}
|
|
@@ -722,14 +726,30 @@ var MediaStore = /*#__PURE__*/function () {
|
|
|
722
726
|
|
|
723
727
|
exports.MediaStore = MediaStore;
|
|
724
728
|
|
|
725
|
-
function
|
|
726
|
-
|
|
729
|
+
var getValueFromSessionStorage = function getValueFromSessionStorage(key) {
|
|
730
|
+
return window && window.sessionStorage && window.sessionStorage.getItem(key) || undefined;
|
|
731
|
+
};
|
|
732
|
+
|
|
733
|
+
var setKeyValueInSessionStorage = function setKeyValueInSessionStorage(key, value) {
|
|
734
|
+
if (!value || !(window && window.sessionStorage)) {
|
|
727
735
|
return;
|
|
728
736
|
}
|
|
729
737
|
|
|
730
|
-
var
|
|
738
|
+
var currentValue = window.sessionStorage.getItem(key);
|
|
731
739
|
|
|
732
|
-
if (
|
|
733
|
-
window.sessionStorage.setItem(
|
|
740
|
+
if (currentValue !== value) {
|
|
741
|
+
window.sessionStorage.setItem(key, value);
|
|
734
742
|
}
|
|
735
|
-
}
|
|
743
|
+
};
|
|
744
|
+
|
|
745
|
+
var getMediaEnvironment = function getMediaEnvironment() {
|
|
746
|
+
return getValueFromSessionStorage(MEDIA_API_ENVIRONMENT);
|
|
747
|
+
};
|
|
748
|
+
|
|
749
|
+
exports.getMediaEnvironment = getMediaEnvironment;
|
|
750
|
+
|
|
751
|
+
var getMediaRegion = function getMediaRegion() {
|
|
752
|
+
return getValueFromSessionStorage(MEDIA_API_REGION);
|
|
753
|
+
};
|
|
754
|
+
|
|
755
|
+
exports.getMediaRegion = getMediaRegion;
|
package/dist/cjs/index.js
CHANGED
|
@@ -135,12 +135,6 @@ Object.defineProperty(exports, "getDimensionsFromBlob", {
|
|
|
135
135
|
return _getDimensionsFromBlob.getDimensionsFromBlob;
|
|
136
136
|
}
|
|
137
137
|
});
|
|
138
|
-
Object.defineProperty(exports, "getFileStreamsCache", {
|
|
139
|
-
enumerable: true,
|
|
140
|
-
get: function get() {
|
|
141
|
-
return _fileStreamsCache.getFileStreamsCache;
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
138
|
Object.defineProperty(exports, "getMediaClient", {
|
|
145
139
|
enumerable: true,
|
|
146
140
|
get: function get() {
|
|
@@ -153,6 +147,18 @@ Object.defineProperty(exports, "getMediaClientErrorReason", {
|
|
|
153
147
|
return _errors.getMediaClientErrorReason;
|
|
154
148
|
}
|
|
155
149
|
});
|
|
150
|
+
Object.defineProperty(exports, "getMediaEnvironment", {
|
|
151
|
+
enumerable: true,
|
|
152
|
+
get: function get() {
|
|
153
|
+
return _mediaStore.getMediaEnvironment;
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
Object.defineProperty(exports, "getMediaRegion", {
|
|
157
|
+
enumerable: true,
|
|
158
|
+
get: function get() {
|
|
159
|
+
return _mediaStore.getMediaRegion;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
156
162
|
exports.getMediaTypeFromMimeType = void 0;
|
|
157
163
|
Object.defineProperty(exports, "globalMediaEventEmitter", {
|
|
158
164
|
enumerable: true,
|
package/dist/cjs/uploader.js
CHANGED
|
@@ -156,6 +156,8 @@ var createFileFromUpload = /*#__PURE__*/function () {
|
|
|
156
156
|
}();
|
|
157
157
|
|
|
158
158
|
var uploadFile = function uploadFile(file, store, uploadableFileUpfrontIds, callbacks) {
|
|
159
|
+
var chunkSize = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 4 * 1024 * 1024;
|
|
160
|
+
var processingBatchSize = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1000;
|
|
159
161
|
var content = file.content,
|
|
160
162
|
collection = file.collection;
|
|
161
163
|
var deferredUploadId = uploadableFileUpfrontIds.deferredUploadId;
|
|
@@ -163,11 +165,11 @@ var uploadFile = function uploadFile(file, store, uploadableFileUpfrontIds, call
|
|
|
163
165
|
hashingFunction: hashingFunction,
|
|
164
166
|
hashingConcurrency: 5,
|
|
165
167
|
probingBatchSize: 100,
|
|
166
|
-
chunkSize:
|
|
168
|
+
chunkSize: chunkSize,
|
|
167
169
|
uploadingConcurrency: 3,
|
|
168
170
|
uploadingFunction: createUploadingFunction(store, collection),
|
|
169
171
|
probingFunction: createProbingFunction(store, collection),
|
|
170
|
-
processingBatchSize:
|
|
172
|
+
processingBatchSize: processingBatchSize,
|
|
171
173
|
processingFunction: createProcessingFunction(store, deferredUploadId, collection)
|
|
172
174
|
}, {
|
|
173
175
|
onProgress: function onProgress(progress) {
|
|
@@ -48,6 +48,8 @@ var RequestError = /*#__PURE__*/function (_BaseMediaClientError) {
|
|
|
48
48
|
_this$metadata = _this$metadata === void 0 ? {} : _this$metadata;
|
|
49
49
|
var method = _this$metadata.method,
|
|
50
50
|
endpoint = _this$metadata.endpoint,
|
|
51
|
+
mediaRegion = _this$metadata.mediaRegion,
|
|
52
|
+
mediaEnv = _this$metadata.mediaEnv,
|
|
51
53
|
attempts = _this$metadata.attempts,
|
|
52
54
|
clientExhaustedRetries = _this$metadata.clientExhaustedRetries,
|
|
53
55
|
statusCode = _this$metadata.statusCode,
|
|
@@ -56,6 +58,8 @@ var RequestError = /*#__PURE__*/function (_BaseMediaClientError) {
|
|
|
56
58
|
reason: reason,
|
|
57
59
|
method: method,
|
|
58
60
|
endpoint: endpoint,
|
|
61
|
+
mediaRegion: mediaRegion,
|
|
62
|
+
mediaEnv: mediaEnv,
|
|
59
63
|
attempts: attempts,
|
|
60
64
|
clientExhaustedRetries: clientExhaustedRetries,
|
|
61
65
|
statusCode: statusCode,
|
|
@@ -14,7 +14,7 @@ exports.createProcessFetchResponse = createProcessFetchResponse;
|
|
|
14
14
|
exports.createRequestErrorFromResponse = createRequestErrorFromResponse;
|
|
15
15
|
exports.createRequestErrorReason = createRequestErrorReason;
|
|
16
16
|
exports.createUrl = createUrl;
|
|
17
|
-
exports.
|
|
17
|
+
exports.extractMediaHeaders = extractMediaHeaders;
|
|
18
18
|
exports.fetchRetry = fetchRetry;
|
|
19
19
|
exports.isAbortedRequestError = isAbortedRequestError;
|
|
20
20
|
exports.isFetchNetworkError = isFetchNetworkError;
|
|
@@ -30,12 +30,14 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
30
30
|
|
|
31
31
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
32
32
|
|
|
33
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
34
|
+
|
|
35
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
36
|
+
|
|
33
37
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
34
38
|
|
|
35
39
|
var _mediaCore = require("@atlaskit/media-core");
|
|
36
40
|
|
|
37
|
-
var _queryString = require("query-string");
|
|
38
|
-
|
|
39
41
|
var _authQueryParameters = require("../../models/auth-query-parameters");
|
|
40
42
|
|
|
41
43
|
var _errors = require("./errors");
|
|
@@ -69,21 +71,6 @@ function isRateLimitedError(error) {
|
|
|
69
71
|
return !!error && (0, _errors.isRequestError)(error) && error.attributes.statusCode === 429 || !!error && !!error.message && error.message.includes('429');
|
|
70
72
|
}
|
|
71
73
|
|
|
72
|
-
function extract(url) {
|
|
73
|
-
var index = url.indexOf('?');
|
|
74
|
-
|
|
75
|
-
if (index > 0) {
|
|
76
|
-
return {
|
|
77
|
-
baseUrl: url.substring(0, index),
|
|
78
|
-
queryParams: (0, _queryString.parse)(url.substring(index + 1, url.length))
|
|
79
|
-
};
|
|
80
|
-
} else {
|
|
81
|
-
return {
|
|
82
|
-
baseUrl: url
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
74
|
function mapAuthToRequestHeaders(auth) {
|
|
88
75
|
if ((0, _mediaCore.isClientBasedAuth)(auth)) {
|
|
89
76
|
return {
|
|
@@ -101,15 +88,24 @@ function mapAuthToRequestHeaders(auth) {
|
|
|
101
88
|
function createUrl(url, _ref) {
|
|
102
89
|
var params = _ref.params,
|
|
103
90
|
auth = _ref.auth;
|
|
91
|
+
var parsedUrl = new URL(url);
|
|
92
|
+
var authParams = auth && (0, _authQueryParameters.mapAuthToQueryParameters)(auth) || {};
|
|
93
|
+
|
|
94
|
+
var paramsToAppend = _objectSpread(_objectSpread({}, params), authParams);
|
|
104
95
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
96
|
+
Object.entries(paramsToAppend).filter(function (_ref2) {
|
|
97
|
+
var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
|
|
98
|
+
_ = _ref3[0],
|
|
99
|
+
value = _ref3[1];
|
|
108
100
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
101
|
+
return value != null;
|
|
102
|
+
}).forEach(function (pair) {
|
|
103
|
+
var _parsedUrl$searchPara;
|
|
104
|
+
|
|
105
|
+
(_parsedUrl$searchPara = parsedUrl.searchParams).append.apply(_parsedUrl$searchPara, (0, _toConsumableArray2.default)(pair));
|
|
106
|
+
});
|
|
107
|
+
parsedUrl.searchParams.sort();
|
|
108
|
+
return parsedUrl.toString();
|
|
113
109
|
}
|
|
114
110
|
|
|
115
111
|
function withAuth(auth) {
|
|
@@ -217,7 +213,7 @@ function mapResponseToVoid() {
|
|
|
217
213
|
|
|
218
214
|
function createMapResponseToJson(metadata) {
|
|
219
215
|
return /*#__PURE__*/function () {
|
|
220
|
-
var
|
|
216
|
+
var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(response) {
|
|
221
217
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
222
218
|
while (1) {
|
|
223
219
|
switch (_context.prev = _context.next) {
|
|
@@ -232,7 +228,7 @@ function createMapResponseToJson(metadata) {
|
|
|
232
228
|
case 6:
|
|
233
229
|
_context.prev = 6;
|
|
234
230
|
_context.t0 = _context["catch"](0);
|
|
235
|
-
throw new _errors.RequestError('serverInvalidBody', _objectSpread(_objectSpread({}, metadata), {}, {
|
|
231
|
+
throw new _errors.RequestError('serverInvalidBody', _objectSpread(_objectSpread(_objectSpread({}, metadata), extractMediaHeaders(response)), {}, {
|
|
236
232
|
statusCode: response.status
|
|
237
233
|
}), _context.t0);
|
|
238
234
|
|
|
@@ -245,14 +241,14 @@ function createMapResponseToJson(metadata) {
|
|
|
245
241
|
}));
|
|
246
242
|
|
|
247
243
|
return function (_x3) {
|
|
248
|
-
return
|
|
244
|
+
return _ref4.apply(this, arguments);
|
|
249
245
|
};
|
|
250
246
|
}();
|
|
251
247
|
}
|
|
252
248
|
|
|
253
249
|
function createMapResponseToBlob(metadata) {
|
|
254
250
|
return /*#__PURE__*/function () {
|
|
255
|
-
var
|
|
251
|
+
var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(response) {
|
|
256
252
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
257
253
|
while (1) {
|
|
258
254
|
switch (_context2.prev = _context2.next) {
|
|
@@ -267,7 +263,7 @@ function createMapResponseToBlob(metadata) {
|
|
|
267
263
|
case 6:
|
|
268
264
|
_context2.prev = 6;
|
|
269
265
|
_context2.t0 = _context2["catch"](0);
|
|
270
|
-
throw new _errors.RequestError('serverInvalidBody', _objectSpread(_objectSpread({}, metadata), {}, {
|
|
266
|
+
throw new _errors.RequestError('serverInvalidBody', _objectSpread(_objectSpread(_objectSpread({}, metadata), extractMediaHeaders(response)), {}, {
|
|
271
267
|
statusCode: response.status
|
|
272
268
|
}), _context2.t0);
|
|
273
269
|
|
|
@@ -280,7 +276,7 @@ function createMapResponseToBlob(metadata) {
|
|
|
280
276
|
}));
|
|
281
277
|
|
|
282
278
|
return function (_x4) {
|
|
283
|
-
return
|
|
279
|
+
return _ref5.apply(this, arguments);
|
|
284
280
|
};
|
|
285
281
|
}();
|
|
286
282
|
}
|
|
@@ -329,7 +325,7 @@ function _fetchRetry() {
|
|
|
329
325
|
timeoutInMs = startTimeoutInMs;
|
|
330
326
|
|
|
331
327
|
waitAndBumpTimeout = /*#__PURE__*/function () {
|
|
332
|
-
var
|
|
328
|
+
var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
333
329
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
334
330
|
while (1) {
|
|
335
331
|
switch (_context5.prev = _context5.next) {
|
|
@@ -350,7 +346,7 @@ function _fetchRetry() {
|
|
|
350
346
|
}));
|
|
351
347
|
|
|
352
348
|
return function waitAndBumpTimeout() {
|
|
353
|
-
return
|
|
349
|
+
return _ref6.apply(this, arguments);
|
|
354
350
|
};
|
|
355
351
|
}();
|
|
356
352
|
|
|
@@ -453,7 +449,7 @@ function createRequestErrorReason(statusCode) {
|
|
|
453
449
|
function createRequestErrorFromResponse(metadata, response) {
|
|
454
450
|
var statusCode = response.status;
|
|
455
451
|
var reason = createRequestErrorReason(statusCode);
|
|
456
|
-
return new _errors.RequestError(reason, _objectSpread(_objectSpread({}, metadata), {}, {
|
|
452
|
+
return new _errors.RequestError(reason, _objectSpread(_objectSpread(_objectSpread({}, metadata), extractMediaHeaders(response)), {}, {
|
|
457
453
|
statusCode: statusCode
|
|
458
454
|
}));
|
|
459
455
|
}
|
|
@@ -467,4 +463,14 @@ function createProcessFetchResponse(metadata) {
|
|
|
467
463
|
var requestError = createRequestErrorFromResponse(metadata, response);
|
|
468
464
|
throw requestError;
|
|
469
465
|
};
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
function extractMediaHeaders(response) {
|
|
469
|
+
var headers = response.headers;
|
|
470
|
+
var mediaRegion = headers.get('x-media-region') || 'unknown';
|
|
471
|
+
var mediaEnv = headers.get('x-media-env') || 'unknown';
|
|
472
|
+
return {
|
|
473
|
+
mediaRegion: mediaRegion,
|
|
474
|
+
mediaEnv: mediaEnv
|
|
475
|
+
};
|
|
470
476
|
}
|
package/dist/cjs/version.json
CHANGED
|
@@ -5,6 +5,8 @@ import { request } from '../../utils/request';
|
|
|
5
5
|
import { createUrl, createMapResponseToJson, createMapResponseToBlob } from '../../utils/request/helpers';
|
|
6
6
|
import { resolveAuth, resolveInitialAuth } from './resolveAuth';
|
|
7
7
|
export { MediaStoreError, isMediaStoreError } from './error';
|
|
8
|
+
const MEDIA_API_REGION = 'media-api-region';
|
|
9
|
+
const MEDIA_API_ENVIRONMENT = 'media-api-environment';
|
|
8
10
|
const defaultImageOptions = {
|
|
9
11
|
'max-age': FILE_CACHE_MAX_AGE,
|
|
10
12
|
allowAnimated: true,
|
|
@@ -373,20 +375,32 @@ export class MediaStore {
|
|
|
373
375
|
body,
|
|
374
376
|
clientOptions
|
|
375
377
|
}, controller);
|
|
376
|
-
|
|
378
|
+
setKeyValueInSessionStorage(MEDIA_API_REGION, response.headers.get('x-media-region'));
|
|
379
|
+
setKeyValueInSessionStorage(MEDIA_API_ENVIRONMENT, response.headers.get('x-media-env'));
|
|
377
380
|
return response;
|
|
378
381
|
}
|
|
379
382
|
|
|
380
383
|
}
|
|
381
384
|
|
|
382
|
-
|
|
383
|
-
|
|
385
|
+
const getValueFromSessionStorage = key => {
|
|
386
|
+
return window && window.sessionStorage && window.sessionStorage.getItem(key) || undefined;
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
const setKeyValueInSessionStorage = (key, value) => {
|
|
390
|
+
if (!value || !(window && window.sessionStorage)) {
|
|
384
391
|
return;
|
|
385
392
|
}
|
|
386
393
|
|
|
387
|
-
const
|
|
394
|
+
const currentValue = window.sessionStorage.getItem(key);
|
|
388
395
|
|
|
389
|
-
if (
|
|
390
|
-
window.sessionStorage.setItem(
|
|
396
|
+
if (currentValue !== value) {
|
|
397
|
+
window.sessionStorage.setItem(key, value);
|
|
391
398
|
}
|
|
392
|
-
}
|
|
399
|
+
};
|
|
400
|
+
|
|
401
|
+
export const getMediaEnvironment = () => {
|
|
402
|
+
return getValueFromSessionStorage(MEDIA_API_ENVIRONMENT);
|
|
403
|
+
};
|
|
404
|
+
export const getMediaRegion = () => {
|
|
405
|
+
return getValueFromSessionStorage(MEDIA_API_REGION);
|
|
406
|
+
};
|
package/dist/es2019/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { MediaStore, MediaStoreError, isMediaStoreError } from './client/media-store';
|
|
1
|
+
export { MediaStore, MediaStoreError, isMediaStoreError, getMediaEnvironment, getMediaRegion } from './client/media-store';
|
|
2
2
|
export { UploadController } from './upload-controller';
|
|
3
3
|
export { isPreviewableType, isMediaCollectionItemFullDetails } from './models/media';
|
|
4
4
|
export { getArtifactUrl } from './models/artifacts';
|
|
5
5
|
export { isMediaClientError, getMediaClientErrorReason } from './models/errors';
|
|
6
6
|
export { isUploadingFileState, isProcessingFileState, isProcessedFileState, isErrorFileState, isPreviewableFileState, isFinalFileState, isImageRepresentationReady, mapMediaFileToFileState, mapMediaItemToFileState } from './models/file-state';
|
|
7
7
|
// TODO: remove access to media file stream cache https://product-fabric.atlassian.net/browse/MEX-1417
|
|
8
|
-
export {
|
|
8
|
+
export { StreamsCache } from './file-streams-cache';
|
|
9
9
|
export { uploadFile } from './uploader';
|
|
10
10
|
export { request, RequestError, isRequestError, isRateLimitedError } from './utils/request';
|
|
11
11
|
export { isAbortedRequestError, mapResponseToJson, mapResponseToBlob, mapResponseToVoid, createUrl } from './utils/request/helpers';
|
package/dist/es2019/uploader.js
CHANGED
|
@@ -50,7 +50,7 @@ const createFileFromUpload = async (file, store, uploadableFileUpfrontIds, uploa
|
|
|
50
50
|
});
|
|
51
51
|
};
|
|
52
52
|
|
|
53
|
-
export const uploadFile = (file, store, uploadableFileUpfrontIds, callbacks) => {
|
|
53
|
+
export const uploadFile = (file, store, uploadableFileUpfrontIds, callbacks, chunkSize = 4 * 1024 * 1024, processingBatchSize = 1000) => {
|
|
54
54
|
const {
|
|
55
55
|
content,
|
|
56
56
|
collection
|
|
@@ -62,11 +62,11 @@ export const uploadFile = (file, store, uploadableFileUpfrontIds, callbacks) =>
|
|
|
62
62
|
hashingFunction,
|
|
63
63
|
hashingConcurrency: 5,
|
|
64
64
|
probingBatchSize: 100,
|
|
65
|
-
chunkSize
|
|
65
|
+
chunkSize,
|
|
66
66
|
uploadingConcurrency: 3,
|
|
67
67
|
uploadingFunction: createUploadingFunction(store, collection),
|
|
68
68
|
probingFunction: createProbingFunction(store, collection),
|
|
69
|
-
processingBatchSize
|
|
69
|
+
processingBatchSize,
|
|
70
70
|
processingFunction: createProcessingFunction(store, deferredUploadId, collection)
|
|
71
71
|
}, {
|
|
72
72
|
onProgress(progress) {
|
|
@@ -13,6 +13,8 @@ export class RequestError extends BaseMediaClientError {
|
|
|
13
13
|
metadata: {
|
|
14
14
|
method,
|
|
15
15
|
endpoint,
|
|
16
|
+
mediaRegion,
|
|
17
|
+
mediaEnv,
|
|
16
18
|
attempts,
|
|
17
19
|
clientExhaustedRetries,
|
|
18
20
|
statusCode
|
|
@@ -23,6 +25,8 @@ export class RequestError extends BaseMediaClientError {
|
|
|
23
25
|
reason,
|
|
24
26
|
method,
|
|
25
27
|
endpoint,
|
|
28
|
+
mediaRegion,
|
|
29
|
+
mediaEnv,
|
|
26
30
|
attempts,
|
|
27
31
|
clientExhaustedRetries,
|
|
28
32
|
statusCode,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { isClientBasedAuth } from '@atlaskit/media-core';
|
|
2
|
-
import { parse, stringify } from 'query-string';
|
|
3
2
|
import { mapAuthToQueryParameters } from '../../models/auth-query-parameters';
|
|
4
3
|
import { RequestError, isRequestError } from './errors';
|
|
5
4
|
export function clientTimeoutPromise(timeout) {
|
|
@@ -20,20 +19,6 @@ export function isFetchNetworkError(err) {
|
|
|
20
19
|
export function isRateLimitedError(error) {
|
|
21
20
|
return !!error && isRequestError(error) && error.attributes.statusCode === 429 || !!error && !!error.message && error.message.includes('429');
|
|
22
21
|
}
|
|
23
|
-
export function extract(url) {
|
|
24
|
-
const index = url.indexOf('?');
|
|
25
|
-
|
|
26
|
-
if (index > 0) {
|
|
27
|
-
return {
|
|
28
|
-
baseUrl: url.substring(0, index),
|
|
29
|
-
queryParams: parse(url.substring(index + 1, url.length))
|
|
30
|
-
};
|
|
31
|
-
} else {
|
|
32
|
-
return {
|
|
33
|
-
baseUrl: url
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
22
|
export function mapAuthToRequestHeaders(auth) {
|
|
38
23
|
if (isClientBasedAuth(auth)) {
|
|
39
24
|
return {
|
|
@@ -51,17 +36,16 @@ export function createUrl(url, {
|
|
|
51
36
|
params,
|
|
52
37
|
auth
|
|
53
38
|
}) {
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
} = extract(url);
|
|
58
|
-
const authParams = auth && mapAuthToQueryParameters(auth);
|
|
59
|
-
const queryString = stringify({ ...queryParams,
|
|
60
|
-
...params,
|
|
39
|
+
const parsedUrl = new URL(url);
|
|
40
|
+
const authParams = auth && mapAuthToQueryParameters(auth) || {};
|
|
41
|
+
const paramsToAppend = { ...params,
|
|
61
42
|
...authParams
|
|
43
|
+
};
|
|
44
|
+
Object.entries(paramsToAppend).filter(([_, value]) => value != null).forEach(pair => {
|
|
45
|
+
parsedUrl.searchParams.append(...pair);
|
|
62
46
|
});
|
|
63
|
-
|
|
64
|
-
return
|
|
47
|
+
parsedUrl.searchParams.sort();
|
|
48
|
+
return parsedUrl.toString();
|
|
65
49
|
}
|
|
66
50
|
export function withAuth(auth) {
|
|
67
51
|
return headers => {
|
|
@@ -124,6 +108,7 @@ export function createMapResponseToJson(metadata) {
|
|
|
124
108
|
return await response.json();
|
|
125
109
|
} catch (err) {
|
|
126
110
|
throw new RequestError('serverInvalidBody', { ...metadata,
|
|
111
|
+
...extractMediaHeaders(response),
|
|
127
112
|
statusCode: response.status
|
|
128
113
|
}, err);
|
|
129
114
|
}
|
|
@@ -135,6 +120,7 @@ export function createMapResponseToBlob(metadata) {
|
|
|
135
120
|
return await response.blob();
|
|
136
121
|
} catch (err) {
|
|
137
122
|
throw new RequestError('serverInvalidBody', { ...metadata,
|
|
123
|
+
...extractMediaHeaders(response),
|
|
138
124
|
statusCode: response.status
|
|
139
125
|
}, err);
|
|
140
126
|
}
|
|
@@ -240,6 +226,7 @@ export function createRequestErrorFromResponse(metadata, response) {
|
|
|
240
226
|
} = response;
|
|
241
227
|
const reason = createRequestErrorReason(statusCode);
|
|
242
228
|
return new RequestError(reason, { ...metadata,
|
|
229
|
+
...extractMediaHeaders(response),
|
|
243
230
|
statusCode
|
|
244
231
|
});
|
|
245
232
|
}
|
|
@@ -252,4 +239,15 @@ export function createProcessFetchResponse(metadata) {
|
|
|
252
239
|
const requestError = createRequestErrorFromResponse(metadata, response);
|
|
253
240
|
throw requestError;
|
|
254
241
|
};
|
|
242
|
+
}
|
|
243
|
+
export function extractMediaHeaders(response) {
|
|
244
|
+
const {
|
|
245
|
+
headers
|
|
246
|
+
} = response;
|
|
247
|
+
const mediaRegion = headers.get('x-media-region') || 'unknown';
|
|
248
|
+
const mediaEnv = headers.get('x-media-env') || 'unknown';
|
|
249
|
+
return {
|
|
250
|
+
mediaRegion,
|
|
251
|
+
mediaEnv
|
|
252
|
+
};
|
|
255
253
|
}
|
package/dist/es2019/version.json
CHANGED
|
@@ -285,7 +285,6 @@ export var FileFetcherImpl = /*#__PURE__*/function () {
|
|
|
285
285
|
};
|
|
286
286
|
mediaType = getMediaTypeFromMimeType(type); // we emit a richer state after the blob is fetched
|
|
287
287
|
|
|
288
|
-
// we emit a richer state after the blob is fetched
|
|
289
288
|
subject.next({
|
|
290
289
|
status: 'processing',
|
|
291
290
|
name: name,
|
|
@@ -297,7 +296,6 @@ export var FileFetcherImpl = /*#__PURE__*/function () {
|
|
|
297
296
|
preview: preview
|
|
298
297
|
}); // we don't want to wait for the file to be upload
|
|
299
298
|
|
|
300
|
-
// we don't want to wait for the file to be upload
|
|
301
299
|
_this3.upload(file, undefined, uploadableFileUpfrontIds);
|
|
302
300
|
|
|
303
301
|
_context3.next = 12;
|
|
@@ -14,6 +14,8 @@ import { request as _request } from '../../utils/request';
|
|
|
14
14
|
import { createUrl, createMapResponseToJson, createMapResponseToBlob } from '../../utils/request/helpers';
|
|
15
15
|
import { resolveAuth, resolveInitialAuth } from './resolveAuth';
|
|
16
16
|
export { MediaStoreError, isMediaStoreError } from './error';
|
|
17
|
+
var MEDIA_API_REGION = 'media-api-region';
|
|
18
|
+
var MEDIA_API_ENVIRONMENT = 'media-api-environment';
|
|
17
19
|
var defaultImageOptions = {
|
|
18
20
|
'max-age': FILE_CACHE_MAX_AGE,
|
|
19
21
|
allowAnimated: true,
|
|
@@ -670,10 +672,11 @@ export var MediaStore = /*#__PURE__*/function () {
|
|
|
670
672
|
|
|
671
673
|
case 8:
|
|
672
674
|
response = _context11.sent;
|
|
673
|
-
|
|
675
|
+
setKeyValueInSessionStorage(MEDIA_API_REGION, response.headers.get('x-media-region'));
|
|
676
|
+
setKeyValueInSessionStorage(MEDIA_API_ENVIRONMENT, response.headers.get('x-media-env'));
|
|
674
677
|
return _context11.abrupt("return", response);
|
|
675
678
|
|
|
676
|
-
case
|
|
679
|
+
case 12:
|
|
677
680
|
case "end":
|
|
678
681
|
return _context11.stop();
|
|
679
682
|
}
|
|
@@ -692,14 +695,25 @@ export var MediaStore = /*#__PURE__*/function () {
|
|
|
692
695
|
return MediaStore;
|
|
693
696
|
}();
|
|
694
697
|
|
|
695
|
-
function
|
|
696
|
-
|
|
698
|
+
var getValueFromSessionStorage = function getValueFromSessionStorage(key) {
|
|
699
|
+
return window && window.sessionStorage && window.sessionStorage.getItem(key) || undefined;
|
|
700
|
+
};
|
|
701
|
+
|
|
702
|
+
var setKeyValueInSessionStorage = function setKeyValueInSessionStorage(key, value) {
|
|
703
|
+
if (!value || !(window && window.sessionStorage)) {
|
|
697
704
|
return;
|
|
698
705
|
}
|
|
699
706
|
|
|
700
|
-
var
|
|
707
|
+
var currentValue = window.sessionStorage.getItem(key);
|
|
701
708
|
|
|
702
|
-
if (
|
|
703
|
-
window.sessionStorage.setItem(
|
|
709
|
+
if (currentValue !== value) {
|
|
710
|
+
window.sessionStorage.setItem(key, value);
|
|
704
711
|
}
|
|
705
|
-
}
|
|
712
|
+
};
|
|
713
|
+
|
|
714
|
+
export var getMediaEnvironment = function getMediaEnvironment() {
|
|
715
|
+
return getValueFromSessionStorage(MEDIA_API_ENVIRONMENT);
|
|
716
|
+
};
|
|
717
|
+
export var getMediaRegion = function getMediaRegion() {
|
|
718
|
+
return getValueFromSessionStorage(MEDIA_API_REGION);
|
|
719
|
+
};
|
package/dist/esm/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { MediaStore, MediaStoreError, isMediaStoreError } from './client/media-store';
|
|
1
|
+
export { MediaStore, MediaStoreError, isMediaStoreError, getMediaEnvironment, getMediaRegion } from './client/media-store';
|
|
2
2
|
export { UploadController } from './upload-controller';
|
|
3
3
|
export { isPreviewableType, isMediaCollectionItemFullDetails } from './models/media';
|
|
4
4
|
export { getArtifactUrl } from './models/artifacts';
|
|
5
5
|
export { isMediaClientError, getMediaClientErrorReason } from './models/errors';
|
|
6
6
|
export { isUploadingFileState, isProcessingFileState, isProcessedFileState, isErrorFileState, isPreviewableFileState, isFinalFileState, isImageRepresentationReady, mapMediaFileToFileState, mapMediaItemToFileState } from './models/file-state';
|
|
7
7
|
// TODO: remove access to media file stream cache https://product-fabric.atlassian.net/browse/MEX-1417
|
|
8
|
-
export {
|
|
8
|
+
export { StreamsCache } from './file-streams-cache';
|
|
9
9
|
export { uploadFile } from './uploader';
|
|
10
10
|
export { request, RequestError, isRequestError, isRateLimitedError } from './utils/request';
|
|
11
11
|
export { isAbortedRequestError, mapResponseToJson, mapResponseToBlob, mapResponseToVoid, createUrl } from './utils/request/helpers';
|
package/dist/esm/uploader.js
CHANGED
|
@@ -142,6 +142,8 @@ var createFileFromUpload = /*#__PURE__*/function () {
|
|
|
142
142
|
}();
|
|
143
143
|
|
|
144
144
|
export var uploadFile = function uploadFile(file, store, uploadableFileUpfrontIds, callbacks) {
|
|
145
|
+
var chunkSize = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 4 * 1024 * 1024;
|
|
146
|
+
var processingBatchSize = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1000;
|
|
145
147
|
var content = file.content,
|
|
146
148
|
collection = file.collection;
|
|
147
149
|
var deferredUploadId = uploadableFileUpfrontIds.deferredUploadId;
|
|
@@ -149,11 +151,11 @@ export var uploadFile = function uploadFile(file, store, uploadableFileUpfrontId
|
|
|
149
151
|
hashingFunction: hashingFunction,
|
|
150
152
|
hashingConcurrency: 5,
|
|
151
153
|
probingBatchSize: 100,
|
|
152
|
-
chunkSize:
|
|
154
|
+
chunkSize: chunkSize,
|
|
153
155
|
uploadingConcurrency: 3,
|
|
154
156
|
uploadingFunction: createUploadingFunction(store, collection),
|
|
155
157
|
probingFunction: createProbingFunction(store, collection),
|
|
156
|
-
processingBatchSize:
|
|
158
|
+
processingBatchSize: processingBatchSize,
|
|
157
159
|
processingFunction: createProcessingFunction(store, deferredUploadId, collection)
|
|
158
160
|
}, {
|
|
159
161
|
onProgress: function onProgress(progress) {
|
|
@@ -34,6 +34,8 @@ export var RequestError = /*#__PURE__*/function (_BaseMediaClientError) {
|
|
|
34
34
|
_this$metadata = _this$metadata === void 0 ? {} : _this$metadata;
|
|
35
35
|
var method = _this$metadata.method,
|
|
36
36
|
endpoint = _this$metadata.endpoint,
|
|
37
|
+
mediaRegion = _this$metadata.mediaRegion,
|
|
38
|
+
mediaEnv = _this$metadata.mediaEnv,
|
|
37
39
|
attempts = _this$metadata.attempts,
|
|
38
40
|
clientExhaustedRetries = _this$metadata.clientExhaustedRetries,
|
|
39
41
|
statusCode = _this$metadata.statusCode,
|
|
@@ -42,6 +44,8 @@ export var RequestError = /*#__PURE__*/function (_BaseMediaClientError) {
|
|
|
42
44
|
reason: reason,
|
|
43
45
|
method: method,
|
|
44
46
|
endpoint: endpoint,
|
|
47
|
+
mediaRegion: mediaRegion,
|
|
48
|
+
mediaEnv: mediaEnv,
|
|
45
49
|
attempts: attempts,
|
|
46
50
|
clientExhaustedRetries: clientExhaustedRetries,
|
|
47
51
|
statusCode: statusCode,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
4
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
5
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
6
|
|
|
5
7
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -7,7 +9,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
7
9
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
8
10
|
|
|
9
11
|
import { isClientBasedAuth } from '@atlaskit/media-core';
|
|
10
|
-
import { parse, stringify } from 'query-string';
|
|
11
12
|
import { mapAuthToQueryParameters } from '../../models/auth-query-parameters';
|
|
12
13
|
import { RequestError, isRequestError } from './errors';
|
|
13
14
|
export function clientTimeoutPromise(timeout) {
|
|
@@ -30,20 +31,6 @@ export function isFetchNetworkError(err) {
|
|
|
30
31
|
export function isRateLimitedError(error) {
|
|
31
32
|
return !!error && isRequestError(error) && error.attributes.statusCode === 429 || !!error && !!error.message && error.message.includes('429');
|
|
32
33
|
}
|
|
33
|
-
export function extract(url) {
|
|
34
|
-
var index = url.indexOf('?');
|
|
35
|
-
|
|
36
|
-
if (index > 0) {
|
|
37
|
-
return {
|
|
38
|
-
baseUrl: url.substring(0, index),
|
|
39
|
-
queryParams: parse(url.substring(index + 1, url.length))
|
|
40
|
-
};
|
|
41
|
-
} else {
|
|
42
|
-
return {
|
|
43
|
-
baseUrl: url
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
34
|
export function mapAuthToRequestHeaders(auth) {
|
|
48
35
|
if (isClientBasedAuth(auth)) {
|
|
49
36
|
return {
|
|
@@ -60,15 +47,24 @@ export function mapAuthToRequestHeaders(auth) {
|
|
|
60
47
|
export function createUrl(url, _ref) {
|
|
61
48
|
var params = _ref.params,
|
|
62
49
|
auth = _ref.auth;
|
|
50
|
+
var parsedUrl = new URL(url);
|
|
51
|
+
var authParams = auth && mapAuthToQueryParameters(auth) || {};
|
|
63
52
|
|
|
64
|
-
var
|
|
65
|
-
baseUrl = _extract.baseUrl,
|
|
66
|
-
queryParams = _extract.queryParams;
|
|
53
|
+
var paramsToAppend = _objectSpread(_objectSpread({}, params), authParams);
|
|
67
54
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
55
|
+
Object.entries(paramsToAppend).filter(function (_ref2) {
|
|
56
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
57
|
+
_ = _ref3[0],
|
|
58
|
+
value = _ref3[1];
|
|
59
|
+
|
|
60
|
+
return value != null;
|
|
61
|
+
}).forEach(function (pair) {
|
|
62
|
+
var _parsedUrl$searchPara;
|
|
63
|
+
|
|
64
|
+
(_parsedUrl$searchPara = parsedUrl.searchParams).append.apply(_parsedUrl$searchPara, _toConsumableArray(pair));
|
|
65
|
+
});
|
|
66
|
+
parsedUrl.searchParams.sort();
|
|
67
|
+
return parsedUrl.toString();
|
|
72
68
|
}
|
|
73
69
|
export function withAuth(auth) {
|
|
74
70
|
return function (headers) {
|
|
@@ -171,7 +167,7 @@ export function mapResponseToVoid() {
|
|
|
171
167
|
}
|
|
172
168
|
export function createMapResponseToJson(metadata) {
|
|
173
169
|
return /*#__PURE__*/function () {
|
|
174
|
-
var
|
|
170
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(response) {
|
|
175
171
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
176
172
|
while (1) {
|
|
177
173
|
switch (_context.prev = _context.next) {
|
|
@@ -186,7 +182,7 @@ export function createMapResponseToJson(metadata) {
|
|
|
186
182
|
case 6:
|
|
187
183
|
_context.prev = 6;
|
|
188
184
|
_context.t0 = _context["catch"](0);
|
|
189
|
-
throw new RequestError('serverInvalidBody', _objectSpread(_objectSpread({}, metadata), {}, {
|
|
185
|
+
throw new RequestError('serverInvalidBody', _objectSpread(_objectSpread(_objectSpread({}, metadata), extractMediaHeaders(response)), {}, {
|
|
190
186
|
statusCode: response.status
|
|
191
187
|
}), _context.t0);
|
|
192
188
|
|
|
@@ -199,13 +195,13 @@ export function createMapResponseToJson(metadata) {
|
|
|
199
195
|
}));
|
|
200
196
|
|
|
201
197
|
return function (_x3) {
|
|
202
|
-
return
|
|
198
|
+
return _ref4.apply(this, arguments);
|
|
203
199
|
};
|
|
204
200
|
}();
|
|
205
201
|
}
|
|
206
202
|
export function createMapResponseToBlob(metadata) {
|
|
207
203
|
return /*#__PURE__*/function () {
|
|
208
|
-
var
|
|
204
|
+
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(response) {
|
|
209
205
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
210
206
|
while (1) {
|
|
211
207
|
switch (_context2.prev = _context2.next) {
|
|
@@ -220,7 +216,7 @@ export function createMapResponseToBlob(metadata) {
|
|
|
220
216
|
case 6:
|
|
221
217
|
_context2.prev = 6;
|
|
222
218
|
_context2.t0 = _context2["catch"](0);
|
|
223
|
-
throw new RequestError('serverInvalidBody', _objectSpread(_objectSpread({}, metadata), {}, {
|
|
219
|
+
throw new RequestError('serverInvalidBody', _objectSpread(_objectSpread(_objectSpread({}, metadata), extractMediaHeaders(response)), {}, {
|
|
224
220
|
statusCode: response.status
|
|
225
221
|
}), _context2.t0);
|
|
226
222
|
|
|
@@ -233,7 +229,7 @@ export function createMapResponseToBlob(metadata) {
|
|
|
233
229
|
}));
|
|
234
230
|
|
|
235
231
|
return function (_x4) {
|
|
236
|
-
return
|
|
232
|
+
return _ref5.apply(this, arguments);
|
|
237
233
|
};
|
|
238
234
|
}();
|
|
239
235
|
}
|
|
@@ -278,7 +274,7 @@ function _fetchRetry() {
|
|
|
278
274
|
timeoutInMs = startTimeoutInMs;
|
|
279
275
|
|
|
280
276
|
waitAndBumpTimeout = /*#__PURE__*/function () {
|
|
281
|
-
var
|
|
277
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
|
|
282
278
|
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
283
279
|
while (1) {
|
|
284
280
|
switch (_context5.prev = _context5.next) {
|
|
@@ -299,7 +295,7 @@ function _fetchRetry() {
|
|
|
299
295
|
}));
|
|
300
296
|
|
|
301
297
|
return function waitAndBumpTimeout() {
|
|
302
|
-
return
|
|
298
|
+
return _ref6.apply(this, arguments);
|
|
303
299
|
};
|
|
304
300
|
}();
|
|
305
301
|
|
|
@@ -401,7 +397,7 @@ export function createRequestErrorReason(statusCode) {
|
|
|
401
397
|
export function createRequestErrorFromResponse(metadata, response) {
|
|
402
398
|
var statusCode = response.status;
|
|
403
399
|
var reason = createRequestErrorReason(statusCode);
|
|
404
|
-
return new RequestError(reason, _objectSpread(_objectSpread({}, metadata), {}, {
|
|
400
|
+
return new RequestError(reason, _objectSpread(_objectSpread(_objectSpread({}, metadata), extractMediaHeaders(response)), {}, {
|
|
405
401
|
statusCode: statusCode
|
|
406
402
|
}));
|
|
407
403
|
}
|
|
@@ -414,4 +410,13 @@ export function createProcessFetchResponse(metadata) {
|
|
|
414
410
|
var requestError = createRequestErrorFromResponse(metadata, response);
|
|
415
411
|
throw requestError;
|
|
416
412
|
};
|
|
413
|
+
}
|
|
414
|
+
export function extractMediaHeaders(response) {
|
|
415
|
+
var headers = response.headers;
|
|
416
|
+
var mediaRegion = headers.get('x-media-region') || 'unknown';
|
|
417
|
+
var mediaEnv = headers.get('x-media-env') || 'unknown';
|
|
418
|
+
return {
|
|
419
|
+
mediaRegion: mediaRegion,
|
|
420
|
+
mediaEnv: mediaEnv
|
|
421
|
+
};
|
|
417
422
|
}
|
package/dist/esm/version.json
CHANGED
|
@@ -33,6 +33,8 @@ export declare class MediaStore {
|
|
|
33
33
|
resolveAuth: (authContext?: AuthContext | undefined) => Promise<Auth>;
|
|
34
34
|
resolveInitialAuth: () => Auth;
|
|
35
35
|
}
|
|
36
|
+
export declare const getMediaEnvironment: () => string | undefined;
|
|
37
|
+
export declare const getMediaRegion: () => string | undefined;
|
|
36
38
|
export interface ResponseFileItem {
|
|
37
39
|
id: string;
|
|
38
40
|
type: 'file';
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { MediaStore, MediaStoreError, isMediaStoreError, } from './client/media-store';
|
|
1
|
+
export { MediaStore, MediaStoreError, isMediaStoreError, getMediaEnvironment, getMediaRegion, } from './client/media-store';
|
|
2
2
|
export type { ResponseFileItem, ItemsPayload, ImageMetadataArtifact, ImageMetadata, MediaStoreResponse, MediaStoreRequestOptions, MediaStoreCreateFileFromUploadParams, MediaStoreCreateFileParams, MediaStoreTouchFileParams, TouchFileDescriptor, MediaStoreTouchFileBody, MediaStoreCreateFileFromBinaryParams, MediaStoreCreateFileFromUploadConditions, MediaStoreCreateFileFromUploadBody, MediaStoreGetFileParams, MediaStoreGetFileImageParams, MediaStoreGetCollectionItemsParams, SourceFile, MediaStoreCopyFileWithTokenBody, MediaStoreCopyFileWithTokenParams, AppendChunksToUploadRequestBody, CreatedTouchedFile, TouchedFiles, EmptyFile, MediaStoreErrorReason, MediaStoreErrorAttributes, } from './client/media-store';
|
|
3
3
|
export { UploadController } from './upload-controller';
|
|
4
4
|
export type { AbortFunction } from './upload-controller';
|
|
@@ -13,7 +13,7 @@ export type { MediaClientError, MediaClientErrorReason, MediaClientErrorAttribut
|
|
|
13
13
|
export { isUploadingFileState, isProcessingFileState, isProcessedFileState, isErrorFileState, isPreviewableFileState, isFinalFileState, isImageRepresentationReady, mapMediaFileToFileState, mapMediaItemToFileState, } from './models/file-state';
|
|
14
14
|
export type { FileStatus, FilePreview, PreviewOptions, GetFileOptions, UploadingFileState, ProcessingFileState, ProcessedFileState, ProcessingFailedState, ErrorFileState, NonErrorFileState, PreviewableFileState, FileState, } from './models/file-state';
|
|
15
15
|
export type { MobileUploadStartEvent, MobileUploadProgressEvent, MobileUploadEndEvent, MobileUploadErrorEvent, } from './models/mobile-upload';
|
|
16
|
-
export {
|
|
16
|
+
export { StreamsCache } from './file-streams-cache';
|
|
17
17
|
export { uploadFile } from './uploader';
|
|
18
18
|
export type { UploadableFile, UploadableFileUpfrontIds, UploadFileCallbacks, UploadFileResult, } from './uploader';
|
|
19
19
|
export { request, RequestError, isRequestError, isRateLimitedError, } from './utils/request';
|
package/dist/types/uploader.d.ts
CHANGED
|
@@ -18,4 +18,4 @@ export declare type UploadFileCallbacks = {
|
|
|
18
18
|
export interface UploadFileResult {
|
|
19
19
|
cancel: () => void;
|
|
20
20
|
}
|
|
21
|
-
export declare const uploadFile: (file: UploadableFile, store: MediaStore, uploadableFileUpfrontIds: UploadableFileUpfrontIds, callbacks?: UploadFileCallbacks | undefined) => UploadFileResult;
|
|
21
|
+
export declare const uploadFile: (file: UploadableFile, store: MediaStore, uploadableFileUpfrontIds: UploadableFileUpfrontIds, callbacks?: UploadFileCallbacks | undefined, chunkSize?: number, processingBatchSize?: number) => UploadFileResult;
|
|
@@ -9,6 +9,8 @@ export declare class RequestError extends BaseMediaClientError<RequestErrorAttri
|
|
|
9
9
|
reason: RequestErrorReason;
|
|
10
10
|
method: import("./types").RequestMethod | undefined;
|
|
11
11
|
endpoint: string | undefined;
|
|
12
|
+
mediaRegion: string | undefined;
|
|
13
|
+
mediaEnv: string | undefined;
|
|
12
14
|
attempts: number | undefined;
|
|
13
15
|
clientExhaustedRetries: boolean | undefined;
|
|
14
16
|
statusCode: number | undefined;
|
|
@@ -6,10 +6,6 @@ export declare function waitPromise(timeout: number): Promise<void>;
|
|
|
6
6
|
export declare function isAbortedRequestError(err: any): boolean;
|
|
7
7
|
export declare function isFetchNetworkError(err: any): err is TypeError;
|
|
8
8
|
export declare function isRateLimitedError(error: Error | undefined): boolean;
|
|
9
|
-
export declare function extract(url: string): {
|
|
10
|
-
baseUrl: string;
|
|
11
|
-
queryParams?: any;
|
|
12
|
-
};
|
|
13
9
|
export declare function mapAuthToRequestHeaders(auth: Auth): RequestHeaders;
|
|
14
10
|
export declare function createUrl(url: string, { params, auth }: CreateUrlOptions): string;
|
|
15
11
|
export declare function withAuth(auth?: Auth): (headers?: RequestHeaders | undefined) => RequestHeaders | undefined;
|
|
@@ -36,3 +32,7 @@ export declare function fetchRetry(functionToRetry: () => Promise<Response>, met
|
|
|
36
32
|
export declare function createRequestErrorReason(statusCode: number): RequestErrorReason;
|
|
37
33
|
export declare function createRequestErrorFromResponse(metadata: RequestErrorMetadata, response: Response): RequestError;
|
|
38
34
|
export declare function createProcessFetchResponse(metadata: RequestMetadata): (response: Response) => Response;
|
|
35
|
+
export declare function extractMediaHeaders(response: Response): {
|
|
36
|
+
mediaRegion: string;
|
|
37
|
+
mediaEnv: string;
|
|
38
|
+
};
|
|
@@ -18,6 +18,8 @@ export declare type ClientOptions = {
|
|
|
18
18
|
export declare type RequestMetadata = {
|
|
19
19
|
readonly method?: RequestMethod;
|
|
20
20
|
readonly endpoint?: string;
|
|
21
|
+
readonly mediaRegion?: string;
|
|
22
|
+
readonly mediaEnv?: string;
|
|
21
23
|
};
|
|
22
24
|
export declare type RequestOptions = RequestMetadata & {
|
|
23
25
|
readonly auth?: Auth;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/media-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "16.0.1",
|
|
4
4
|
"description": "Media API Web Client Library",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -27,14 +27,13 @@
|
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@atlaskit/chunkinator": "^
|
|
31
|
-
"@atlaskit/media-common": "^2.
|
|
30
|
+
"@atlaskit/chunkinator": "^4.0.0",
|
|
31
|
+
"@atlaskit/media-common": "^2.14.0",
|
|
32
32
|
"@babel/runtime": "^7.0.0",
|
|
33
33
|
"dataloader": "^2.0.0",
|
|
34
34
|
"deep-equal": "^1.0.1",
|
|
35
35
|
"eventemitter2": "^4.1.0",
|
|
36
36
|
"lru-fast": "^0.2.2",
|
|
37
|
-
"query-string": "^6.14.1",
|
|
38
37
|
"rusha": "^0.8.13",
|
|
39
38
|
"rxjs": "^5.5.0",
|
|
40
39
|
"setimmediate": "^1.0.5",
|
|
@@ -44,23 +43,21 @@
|
|
|
44
43
|
"xstate": "^4.20.0"
|
|
45
44
|
},
|
|
46
45
|
"peerDependencies": {
|
|
47
|
-
"@atlaskit/media-core": "^
|
|
46
|
+
"@atlaskit/media-core": "^33.0.0",
|
|
48
47
|
"react": "^16.8.0"
|
|
49
48
|
},
|
|
50
49
|
"devDependencies": {
|
|
51
50
|
"@atlaskit/button": "^16.3.0",
|
|
52
51
|
"@atlaskit/docs": "*",
|
|
53
|
-
"@atlaskit/media-card": "^73.
|
|
54
|
-
"@atlaskit/media-core": "^
|
|
55
|
-
"@atlaskit/media-test-helpers": "^
|
|
52
|
+
"@atlaskit/media-card": "^73.7.0",
|
|
53
|
+
"@atlaskit/media-core": "^33.0.0",
|
|
54
|
+
"@atlaskit/media-test-helpers": "^30.0.0",
|
|
56
55
|
"@atlaskit/ssr": "*",
|
|
57
56
|
"@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
|
|
58
57
|
"@types/deep-equal": "^1.0.1",
|
|
59
|
-
"@types/query-string": "^4.3.1",
|
|
60
58
|
"@types/uuid-validate": "^0.0.0",
|
|
61
59
|
"enzyme": "^3.10.0",
|
|
62
60
|
"fetch-mock": "^8.0.0",
|
|
63
|
-
"jest-fetch-mock": "^3.0.3",
|
|
64
61
|
"react": "^16.8.0",
|
|
65
62
|
"react-dom": "^16.8.0",
|
|
66
63
|
"styled-components": "^3.2.6",
|