@atlaskit/media-client 29.1.0 → 31.0.0

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 (69) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/cjs/client/file-fetcher/error.js +12 -10
  3. package/dist/cjs/client/file-fetcher/index.js +54 -61
  4. package/dist/cjs/client/media-store/error.js +4 -5
  5. package/dist/cjs/index.js +18 -0
  6. package/dist/cjs/models/errors/index.js +68 -5
  7. package/dist/cjs/models/errors/types.js +5 -1
  8. package/dist/cjs/models/file-state.js +4 -1
  9. package/dist/cjs/uploader/error.js +11 -9
  10. package/dist/cjs/uploader/index.js +2 -1
  11. package/dist/cjs/utils/mobileUpload/error.js +12 -10
  12. package/dist/cjs/utils/mobileUpload/helpers.js +4 -2
  13. package/dist/cjs/utils/polling/errors.js +6 -7
  14. package/dist/cjs/utils/polling/index.js +6 -2
  15. package/dist/cjs/utils/request/errors.js +4 -6
  16. package/dist/cjs/utils/request/helpers.js +8 -3
  17. package/dist/es2019/client/file-fetcher/error.js +10 -7
  18. package/dist/es2019/client/file-fetcher/index.js +36 -48
  19. package/dist/es2019/client/media-store/error.js +4 -3
  20. package/dist/es2019/index.js +2 -2
  21. package/dist/es2019/models/errors/index.js +62 -5
  22. package/dist/es2019/models/errors/types.js +1 -0
  23. package/dist/es2019/models/file-state.js +1 -0
  24. package/dist/es2019/uploader/error.js +10 -7
  25. package/dist/es2019/uploader/index.js +2 -1
  26. package/dist/es2019/utils/mobileUpload/error.js +10 -7
  27. package/dist/es2019/utils/mobileUpload/helpers.js +4 -2
  28. package/dist/es2019/utils/polling/errors.js +8 -5
  29. package/dist/es2019/utils/polling/index.js +6 -2
  30. package/dist/es2019/utils/request/errors.js +4 -4
  31. package/dist/es2019/utils/request/helpers.js +8 -3
  32. package/dist/esm/client/file-fetcher/error.js +12 -10
  33. package/dist/esm/client/file-fetcher/index.js +55 -62
  34. package/dist/esm/client/media-store/error.js +4 -5
  35. package/dist/esm/index.js +2 -2
  36. package/dist/esm/models/errors/index.js +67 -4
  37. package/dist/esm/models/errors/types.js +1 -0
  38. package/dist/esm/models/file-state.js +3 -0
  39. package/dist/esm/uploader/error.js +11 -9
  40. package/dist/esm/uploader/index.js +2 -1
  41. package/dist/esm/utils/mobileUpload/error.js +12 -10
  42. package/dist/esm/utils/mobileUpload/helpers.js +4 -2
  43. package/dist/esm/utils/polling/errors.js +6 -7
  44. package/dist/esm/utils/polling/index.js +6 -2
  45. package/dist/esm/utils/request/errors.js +4 -6
  46. package/dist/esm/utils/request/helpers.js +8 -3
  47. package/dist/types/client/file-fetcher/error.d.ts +9 -12
  48. package/dist/types/client/media-store/error.d.ts +3 -4
  49. package/dist/types/index.d.ts +2 -2
  50. package/dist/types/models/errors/index.d.ts +17 -4
  51. package/dist/types/models/errors/types.d.ts +7 -0
  52. package/dist/types/models/file-state.d.ts +2 -0
  53. package/dist/types/uploader/error.d.ts +8 -10
  54. package/dist/types/utils/mobileUpload/error.d.ts +9 -12
  55. package/dist/types/utils/polling/errors.d.ts +4 -5
  56. package/dist/types/utils/polling/types.d.ts +3 -0
  57. package/dist/types/utils/request/errors.d.ts +3 -5
  58. package/dist/types-ts4.5/client/file-fetcher/error.d.ts +9 -12
  59. package/dist/types-ts4.5/client/media-store/error.d.ts +3 -4
  60. package/dist/types-ts4.5/index.d.ts +2 -2
  61. package/dist/types-ts4.5/models/errors/index.d.ts +17 -4
  62. package/dist/types-ts4.5/models/errors/types.d.ts +7 -0
  63. package/dist/types-ts4.5/models/file-state.d.ts +2 -0
  64. package/dist/types-ts4.5/uploader/error.d.ts +8 -10
  65. package/dist/types-ts4.5/utils/mobileUpload/error.d.ts +9 -12
  66. package/dist/types-ts4.5/utils/polling/errors.d.ts +4 -5
  67. package/dist/types-ts4.5/utils/polling/types.d.ts +3 -0
  68. package/dist/types-ts4.5/utils/request/errors.d.ts +3 -5
  69. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # @atlaskit/media-client
2
2
 
3
+ ## 31.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#104917](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/104917)
8
+ [`f5b9e90ce5043`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/f5b9e90ce5043) -
9
+ changed useFileHashes to take an array of identifiers which it will then pre-emptively fetch
10
+ metadata when it detects duplicates with missing hashes
11
+
12
+ ### Minor Changes
13
+
14
+ - [#104917](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/104917)
15
+ [`4c1c65faff476`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/4c1c65faff476) -
16
+ Adding forceRefresh to fileState request to enable removing cache and forcing the refetching of
17
+ meta-data
18
+
19
+ ## 30.0.0
20
+
21
+ ### Major Changes
22
+
23
+ - [#102527](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/102527)
24
+ [`a90d34cd14faf`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a90d34cd14faf) -
25
+ Updated the constructor of the following classes. Consult the type definitions for details.
26
+
27
+ - `RequestError`
28
+
29
+ - `PollingError`
30
+
31
+ - `FileFetcherError`
32
+
33
+ ### Minor Changes
34
+
35
+ - [#102527](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/102527)
36
+ [`a90d34cd14faf`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a90d34cd14faf) - -
37
+ New error verification helper `isCommonMediaClientError`
38
+
39
+ - `ErrorFileState` is now deserializable into a `CommonMediaClientError` using new export
40
+ `toCommonMediaClientError`
41
+
3
42
  ## 29.1.0
4
43
 
5
44
  ### Minor Changes
@@ -18,26 +18,28 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
18
18
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
19
19
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
20
20
  var FileFetcherError = exports.FileFetcherError = /*#__PURE__*/function (_BaseMediaClientError) {
21
- function FileFetcherError(reason, id, metadata) {
21
+ // Legacy Attribute. Should be removed
22
+
23
+ function FileFetcherError(reason, metadata) {
22
24
  var _this;
23
25
  (0, _classCallCheck2.default)(this, FileFetcherError);
24
- _this = _callSuper(this, FileFetcherError, [reason]);
25
- _this.reason = reason;
26
- _this.id = id;
27
- _this.metadata = metadata;
26
+ _this = _callSuper(this, FileFetcherError, [reason, metadata, undefined]);
27
+ _this.id = metadata.id;
28
28
  return _this;
29
29
  }
30
+
31
+ // TODO: Deprecate this getter https://product-fabric.atlassian.net/browse/CXP-4665
32
+ /** Will be deprecated. Use the properties `reason` and `metadata` instead */
30
33
  (0, _inherits2.default)(FileFetcherError, _BaseMediaClientError);
31
34
  return (0, _createClass2.default)(FileFetcherError, [{
32
35
  key: "attributes",
33
36
  get: function get() {
34
37
  var reason = this.reason,
35
- id = this.id,
36
38
  _this$metadata = this.metadata,
37
- _this$metadata2 = _this$metadata === void 0 ? {} : _this$metadata,
38
- collectionName = _this$metadata2.collectionName,
39
- occurrenceKey = _this$metadata2.occurrenceKey,
40
- traceContext = _this$metadata2.traceContext;
39
+ id = _this$metadata.id,
40
+ collectionName = _this$metadata.collectionName,
41
+ occurrenceKey = _this$metadata.occurrenceKey,
42
+ traceContext = _this$metadata.traceContext;
41
43
  return _objectSpread({
42
44
  reason: reason,
43
45
  id: id,
@@ -19,7 +19,6 @@ Object.defineProperty(exports, "isFileFetcherError", {
19
19
  });
20
20
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
21
21
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
22
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
23
22
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
24
23
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
25
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -51,8 +50,7 @@ var _detectEmptyFile = require("../../utils/detectEmptyFile");
51
50
  var _mediaState = require("@atlaskit/media-state");
52
51
  var _createCopyIntentRegisterationBatcher = require("../../utils/createCopyIntentRegisterationBatcher");
53
52
  var _helpers = require("../../utils/request/helpers");
54
- var _excluded = ["metadata"],
55
- _excluded2 = ["metadata"];
53
+ var _errors = require("../../models/errors");
56
54
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
57
55
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
58
56
  var isCopySourceFileWithToken = function isCopySourceFileWithToken(token) {
@@ -67,26 +65,20 @@ var FileFetcherImpl = exports.FileFetcherImpl = /*#__PURE__*/function () {
67
65
  var store = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _mediaState.mediaStore;
68
66
  (0, _classCallCheck2.default)(this, FileFetcherImpl);
69
67
  (0, _defineProperty2.default)(this, "getErrorFileState", function (error, id, occurrenceKey) {
70
- var _error$attributes;
71
- var _ref = (_error$attributes = error === null || error === void 0 ? void 0 : error.attributes) !== null && _error$attributes !== void 0 ? _error$attributes : {},
72
- metadata = _ref.metadata,
73
- attributes = (0, _objectWithoutProperties2.default)(_ref, _excluded);
74
- return typeof error === 'string' ? {
75
- status: 'error',
76
- id: id,
77
- reason: error,
78
- occurrenceKey: occurrenceKey,
79
- message: error
80
- } : {
81
- status: 'error',
82
- id: id,
83
- reason: error === null || error === void 0 ? void 0 : error.reason,
84
- details: _objectSpread(_objectSpread({}, attributes), (metadata === null || metadata === void 0 ? void 0 : metadata.traceContext) && {
85
- metadata: metadata
86
- }),
87
- occurrenceKey: occurrenceKey,
88
- message: error === null || error === void 0 ? void 0 : error.message
89
- };
68
+ if ((0, _errors.isCommonMediaClientError)(error)) {
69
+ return (0, _errors.fromCommonMediaClientError)(id, occurrenceKey, error);
70
+ }
71
+ // ________________________________________________
72
+ // Legacy serializers
73
+ // We need to revisit all the incoming error types and ensure all the "reason" values are known
74
+ // We need to change the input error: any for a known type.
75
+ if (typeof error === 'string') {
76
+ var err = new _errors.CommonMediaClientError(error);
77
+ return (0, _errors.fromCommonMediaClientError)(id, occurrenceKey, err);
78
+ } else {
79
+ var _err = new _errors.CommonMediaClientError((error === null || error === void 0 ? void 0 : error.reason) || 'unknown', error === null || error === void 0 ? void 0 : error.metadata, error === null || error === void 0 ? void 0 : error.innerError);
80
+ return (0, _errors.fromCommonMediaClientError)(id, occurrenceKey, _err);
81
+ }
90
82
  });
91
83
  (0, _defineProperty2.default)(this, "setFileState", function (id, fileState) {
92
84
  _this.store.setState(function (state) {
@@ -94,7 +86,7 @@ var FileFetcherImpl = exports.FileFetcherImpl = /*#__PURE__*/function () {
94
86
  });
95
87
  });
96
88
  // TODO: ----- ADD TICKET TO PASS TRACE ID to this.dataloader.load
97
- (0, _defineProperty2.default)(this, "createDownloadFileStream", function (id, collectionName, occurrenceKey, includeHashForDuplicateFiles) {
89
+ (0, _defineProperty2.default)(this, "createDownloadFileStream", function (id, collectionName, occurrenceKey, includeHashForDuplicateFiles, forceRefresh) {
98
90
  var subject = (0, _createMediaSubject.createMediaSubject)();
99
91
  var poll = new _polling.PollingFunction();
100
92
 
@@ -107,47 +99,56 @@ var FileFetcherImpl = exports.FileFetcherImpl = /*#__PURE__*/function () {
107
99
  return _regenerator.default.wrap(function _callee$(_context) {
108
100
  while (1) switch (_context.prev = _context.next) {
109
101
  case 0:
110
- _context.next = 2;
102
+ if (forceRefresh) {
103
+ _this.dataloader.clear({
104
+ id: id,
105
+ collectionName: collectionName,
106
+ includeHashForDuplicateFiles: includeHashForDuplicateFiles
107
+ });
108
+ }
109
+ _context.next = 3;
111
110
  return _this.dataloader.load({
112
111
  id: id,
113
112
  collectionName: collectionName,
114
113
  includeHashForDuplicateFiles: includeHashForDuplicateFiles
115
114
  });
116
- case 2:
115
+ case 3:
117
116
  response = _context.sent;
118
117
  if (!(0, _media.isNotFoundMediaItemDetails)(response)) {
119
- _context.next = 5;
118
+ _context.next = 6;
120
119
  break;
121
120
  }
122
- throw new _error.FileFetcherError('emptyItems', id, {
121
+ throw new _error.FileFetcherError('emptyItems', {
122
+ id: id,
123
123
  collectionName: collectionName,
124
124
  occurrenceKey: occurrenceKey,
125
125
  traceContext: response.metadataTraceContext
126
126
  });
127
- case 5:
127
+ case 6:
128
128
  if (!(0, _detectEmptyFile.isEmptyFile)(response)) {
129
- _context.next = 7;
129
+ _context.next = 8;
130
130
  break;
131
131
  }
132
- throw new _error.FileFetcherError('zeroVersionFile', id, {
132
+ throw new _error.FileFetcherError('zeroVersionFile', {
133
+ id: id,
133
134
  collectionName: collectionName,
134
135
  occurrenceKey: occurrenceKey,
135
136
  traceContext: response.metadataTraceContext
136
137
  });
137
- case 7:
138
+ case 8:
138
139
  fileState = (0, _fileState2.mapMediaItemToFileState)(id, response);
139
140
  subject.next(fileState);
140
141
  _context.t0 = fileState.status;
141
- _context.next = _context.t0 === 'processing' ? 12 : _context.t0 === 'processed' ? 14 : 16;
142
+ _context.next = _context.t0 === 'processing' ? 13 : _context.t0 === 'processed' ? 15 : 17;
142
143
  break;
143
- case 12:
144
+ case 13:
144
145
  // the only case for continuing polling, otherwise this function is run once only
145
146
  poll.next();
146
- return _context.abrupt("break", 16);
147
- case 14:
147
+ return _context.abrupt("break", 17);
148
+ case 15:
148
149
  subject.complete();
149
- return _context.abrupt("break", 16);
150
- case 16:
150
+ return _context.abrupt("break", 17);
151
+ case 17:
151
152
  case "end":
152
153
  return _context.stop();
153
154
  }
@@ -200,33 +201,25 @@ var FileFetcherImpl = exports.FileFetcherImpl = /*#__PURE__*/function () {
200
201
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
201
202
  var collectionName = options.collectionName,
202
203
  occurrenceKey = options.occurrenceKey,
203
- includeHashForDuplicateFiles = options.includeHashForDuplicateFiles;
204
+ includeHashForDuplicateFiles = options.includeHashForDuplicateFiles,
205
+ forceRefresh = options.forceRefresh;
204
206
  if (!(0, _uuidValidate.default)(id)) {
205
- var _err$attributes;
206
207
  var subject = (0, _createMediaSubject.createMediaSubject)();
207
- var err = new _error.FileFetcherError('invalidFileId', id, {
208
+ var err = new _error.FileFetcherError('invalidFileId', {
209
+ id: id,
208
210
  collectionName: collectionName,
209
211
  occurrenceKey: occurrenceKey
210
212
  });
211
- var _ref3 = (_err$attributes = err === null || err === void 0 ? void 0 : err.attributes) !== null && _err$attributes !== void 0 ? _err$attributes : {},
212
- metadata = _ref3.metadata,
213
- attributes = (0, _objectWithoutProperties2.default)(_ref3, _excluded2);
214
- var errorFileState = {
215
- status: 'error',
216
- id: id,
217
- reason: err === null || err === void 0 ? void 0 : err.reason,
218
- message: err === null || err === void 0 ? void 0 : err.message,
219
- occurrenceKey: occurrenceKey,
220
- details: _objectSpread(_objectSpread({}, attributes), (metadata === null || metadata === void 0 ? void 0 : metadata.traceContext) && {
221
- metadata: metadata
222
- })
223
- };
213
+ var errorFileState = this.getErrorFileState(err, id, occurrenceKey);
224
214
  subject.error(err);
225
215
  this.setFileState(id, errorFileState);
226
216
  return (0, _mediaSubscribable.fromObservable)(subject);
227
217
  }
218
+ if (forceRefresh) {
219
+ (0, _fileStreamsCache.getFileStreamsCache)().remove(id);
220
+ }
228
221
  return (0, _mediaSubscribable.fromObservable)((0, _fileStreamsCache.getFileStreamsCache)().getOrInsert(id, function () {
229
- var subject = _this2.createDownloadFileStream(id, collectionName, undefined, includeHashForDuplicateFiles);
222
+ var subject = _this2.createDownloadFileStream(id, collectionName, undefined, includeHashForDuplicateFiles, forceRefresh);
230
223
  subject.subscribe({
231
224
  next: function next(fileState) {
232
225
  _this2.setFileState(id, fileState);
@@ -261,8 +254,8 @@ var FileFetcherImpl = exports.FileFetcherImpl = /*#__PURE__*/function () {
261
254
  descriptors: descriptors
262
255
  }, {
263
256
  collection: collection
264
- }, traceContext).then(function (_ref4) {
265
- var data = _ref4.data;
257
+ }, traceContext).then(function (_ref2) {
258
+ var data = _ref2.data;
266
259
  return data;
267
260
  });
268
261
  }
@@ -303,7 +296,7 @@ var FileFetcherImpl = exports.FileFetcherImpl = /*#__PURE__*/function () {
303
296
  return undefined;
304
297
  });
305
298
  preview = new Promise( /*#__PURE__*/function () {
306
- var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(resolve, reject) {
299
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(resolve, reject) {
307
300
  var blob;
308
301
  return _regenerator.default.wrap(function _callee2$(_context2) {
309
302
  while (1) switch (_context2.prev = _context2.next) {
@@ -326,7 +319,7 @@ var FileFetcherImpl = exports.FileFetcherImpl = /*#__PURE__*/function () {
326
319
  }, _callee2);
327
320
  }));
328
321
  return function (_x4, _x5) {
329
- return _ref5.apply(this, arguments);
322
+ return _ref3.apply(this, arguments);
330
323
  };
331
324
  }());
332
325
  name = url.split('/').pop() || ''; // we create a initial fileState with the minimum info that we have at this point
@@ -345,7 +338,7 @@ var FileFetcherImpl = exports.FileFetcherImpl = /*#__PURE__*/function () {
345
338
  (0, _fileStreamsCache.getFileStreamsCache)().set(id, subject);
346
339
  this.setFileState(id, fileState);
347
340
  return _context4.abrupt("return", new Promise( /*#__PURE__*/function () {
348
- var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(resolve, reject) {
341
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(resolve, reject) {
349
342
  var blob, type, size, file, mediaType, dimensions;
350
343
  return _regenerator.default.wrap(function _callee3$(_context3) {
351
344
  while (1) switch (_context3.prev = _context3.next) {
@@ -406,7 +399,7 @@ var FileFetcherImpl = exports.FileFetcherImpl = /*#__PURE__*/function () {
406
399
  }, _callee3, null, [[10, 16]]);
407
400
  }));
408
401
  return function (_x6, _x7) {
409
- return _ref6.apply(this, arguments);
402
+ return _ref4.apply(this, arguments);
410
403
  };
411
404
  }()));
412
405
  case 11:
@@ -16,13 +16,12 @@ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0,
16
16
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
17
17
  var MediaStoreError = exports.MediaStoreError = /*#__PURE__*/function (_BaseMediaClientError) {
18
18
  function MediaStoreError(reason, innerError) {
19
- var _this;
20
19
  (0, _classCallCheck2.default)(this, MediaStoreError);
21
- _this = _callSuper(this, MediaStoreError, [reason]);
22
- _this.reason = reason;
23
- _this.innerError = innerError;
24
- return _this;
20
+ return _callSuper(this, MediaStoreError, [reason, undefined, innerError]);
25
21
  }
22
+
23
+ // TODO: Deprecate this getter https://product-fabric.atlassian.net/browse/CXP-4665
24
+ /** Will be deprecated. Use the properties `reason` and `metadata` instead */
26
25
  (0, _inherits2.default)(MediaStoreError, _BaseMediaClientError);
27
26
  return (0, _createClass2.default)(MediaStoreError, [{
28
27
  key: "attributes",
package/dist/cjs/index.js CHANGED
@@ -183,6 +183,12 @@ Object.defineProperty(exports, "isAbortedRequestError", {
183
183
  return _helpers.isAbortedRequestError;
184
184
  }
185
185
  });
186
+ Object.defineProperty(exports, "isCommonMediaClientError", {
187
+ enumerable: true,
188
+ get: function get() {
189
+ return _errors.isCommonMediaClientError;
190
+ }
191
+ });
186
192
  Object.defineProperty(exports, "isDifferentIdentifier", {
187
193
  enumerable: true,
188
194
  get: function get() {
@@ -243,6 +249,12 @@ Object.defineProperty(exports, "isMediaStoreError", {
243
249
  return _mediaStore.isMediaStoreError;
244
250
  }
245
251
  });
252
+ Object.defineProperty(exports, "isNonErrorFinalFileState", {
253
+ enumerable: true,
254
+ get: function get() {
255
+ return _fileState.isNonErrorFinalFileState;
256
+ }
257
+ });
246
258
  Object.defineProperty(exports, "isPollingError", {
247
259
  enumerable: true,
248
260
  get: function get() {
@@ -315,6 +327,12 @@ Object.defineProperty(exports, "request", {
315
327
  return _request.request;
316
328
  }
317
329
  });
330
+ Object.defineProperty(exports, "toCommonMediaClientError", {
331
+ enumerable: true,
332
+ get: function get() {
333
+ return _errors.toCommonMediaClientError;
334
+ }
335
+ });
318
336
  Object.defineProperty(exports, "uploadFile", {
319
337
  enumerable: true,
320
338
  get: function get() {
@@ -4,19 +4,22 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.BaseMediaClientError = void 0;
7
+ exports.fromCommonMediaClientError = exports.CommonMediaClientError = exports.BaseMediaClientError = void 0;
8
8
  Object.defineProperty(exports, "getMediaClientErrorReason", {
9
9
  enumerable: true,
10
10
  get: function get() {
11
11
  return _helpers.getMediaClientErrorReason;
12
12
  }
13
13
  });
14
+ exports.isCommonMediaClientError = isCommonMediaClientError;
14
15
  Object.defineProperty(exports, "isMediaClientError", {
15
16
  enumerable: true,
16
17
  get: function get() {
17
18
  return _helpers.isMediaClientError;
18
19
  }
19
20
  });
21
+ exports.toCommonMediaClientError = void 0;
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
23
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
24
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
22
25
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
@@ -24,19 +27,23 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
24
27
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
28
  var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
26
29
  var _helpers = require("./helpers");
30
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
31
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
32
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
28
33
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
29
34
  /**
30
35
  * Base class for media errors
31
36
  */
32
37
  var BaseMediaClientError = exports.BaseMediaClientError = /*#__PURE__*/function (_Error) {
33
- function BaseMediaClientError(message) {
38
+ function BaseMediaClientError(reason, metadata, innerError) {
34
39
  var _this;
35
40
  (0, _classCallCheck2.default)(this, BaseMediaClientError);
36
- _this = _callSuper(this, BaseMediaClientError, [message]);
41
+ _this = _callSuper(this, BaseMediaClientError, [reason]);
37
42
 
38
43
  // https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#support-for-newtarget
39
- _this.message = message;
44
+ _this.reason = reason;
45
+ _this.metadata = metadata;
46
+ _this.innerError = innerError;
40
47
  Object.setPrototypeOf(_this, (this instanceof BaseMediaClientError ? this.constructor : void 0).prototype);
41
48
 
42
49
  // https://v8.dev/docs/stack-trace-api
@@ -45,6 +52,62 @@ var BaseMediaClientError = exports.BaseMediaClientError = /*#__PURE__*/function
45
52
  }
46
53
  return _this;
47
54
  }
55
+
56
+ // TODO: Deprecate attributes getter https://product-fabric.atlassian.net/browse/CXP-4665
48
57
  (0, _inherits2.default)(BaseMediaClientError, _Error);
49
58
  return (0, _createClass2.default)(BaseMediaClientError);
50
- }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
59
+ }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error
60
+ // TODO: Deprecate attributes getter https://product-fabric.atlassian.net/browse/CXP-4665
61
+ )); // The only reason why this class exists is because BaseMediaClientError is abstract class, so it can't be used to deserialize ErrorFileState. We can refactor and simplify this later.
62
+ /** Generic Media Client Erorr. All errors extending BaseMediaClientError match CommonMediaClientError attributes. Used to deserialize ErrorFileState */
63
+ var CommonMediaClientError = exports.CommonMediaClientError = /*#__PURE__*/function (_BaseMediaClientError) {
64
+ function CommonMediaClientError(reason, metadata, innerError) {
65
+ (0, _classCallCheck2.default)(this, CommonMediaClientError);
66
+ return _callSuper(this, CommonMediaClientError, [reason, metadata, innerError]);
67
+ }
68
+ (0, _inherits2.default)(CommonMediaClientError, _BaseMediaClientError);
69
+ return (0, _createClass2.default)(CommonMediaClientError, [{
70
+ key: "attributes",
71
+ get: function get() {
72
+ return {
73
+ reason: this.reason
74
+ };
75
+ }
76
+ }]);
77
+ }(BaseMediaClientError);
78
+ function isCommonMediaClientError(error) {
79
+ if (!error) {
80
+ return false;
81
+ }
82
+ // Check if the error is an instance of Error
83
+ if (error instanceof CommonMediaClientError) {
84
+ return true;
85
+ }
86
+ return typeof error.reason === 'string' && ('metadata' in error || error.metadata === undefined) && ('innerError' in error || error.innerError === undefined);
87
+ }
88
+
89
+ /** Deserializer ErrorFileState -> CommonMediaClientError */
90
+ var toCommonMediaClientError = exports.toCommonMediaClientError = function toCommonMediaClientError(errorFileState) {
91
+ var _errorFileState$detai;
92
+ var error = (_errorFileState$detai = errorFileState.details) === null || _errorFileState$detai === void 0 ? void 0 : _errorFileState$detai.error;
93
+ return new CommonMediaClientError((error === null || error === void 0 ? void 0 : error.reason) || 'unknown-reason', error.metadata, error.innerError);
94
+ };
95
+
96
+ /** Serializer CommonMediaClientError -> ErrorFileState */
97
+ var fromCommonMediaClientError = exports.fromCommonMediaClientError = function fromCommonMediaClientError(id, occurrenceKey, error) {
98
+ return {
99
+ status: 'error',
100
+ id: id,
101
+ occurrenceKey: occurrenceKey,
102
+ reason: error.reason,
103
+ details: _objectSpread({
104
+ /** Use this attr to translate back into CommonMediaClientError (toCommonMediaClientError) */
105
+ error: {
106
+ reason: error === null || error === void 0 ? void 0 : error.reason,
107
+ metadata: error === null || error === void 0 ? void 0 : error.metadata,
108
+ innerError: error === null || error === void 0 ? void 0 : error.innerError
109
+ }
110
+ }, error === null || error === void 0 ? void 0 : error.attributes),
111
+ message: error === null || error === void 0 ? void 0 : error.message
112
+ };
113
+ };
@@ -1 +1,5 @@
1
- "use strict";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.mapMediaItemToFileState = exports.mapMediaFileToFileState = exports.isUploadingFileState = exports.isProcessingFileState = exports.isProcessedFileState = exports.isPreviewableFileState = exports.isImageRepresentationReady = exports.isFinalFileState = exports.isErrorFileState = void 0;
7
+ exports.mapMediaItemToFileState = exports.mapMediaFileToFileState = exports.isUploadingFileState = exports.isProcessingFileState = exports.isProcessedFileState = exports.isPreviewableFileState = exports.isNonErrorFinalFileState = exports.isImageRepresentationReady = exports.isFinalFileState = exports.isErrorFileState = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
10
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -26,6 +26,9 @@ var isPreviewableFileState = exports.isPreviewableFileState = function isPreview
26
26
  var isFinalFileState = exports.isFinalFileState = function isFinalFileState(fileState) {
27
27
  return ['processed', 'failed-processing', 'error'].includes(fileState.status);
28
28
  };
29
+ var isNonErrorFinalFileState = exports.isNonErrorFinalFileState = function isNonErrorFinalFileState(fileState) {
30
+ return ['processed', 'failed-processing'].includes(fileState.status);
31
+ };
29
32
  var isImageRepresentationReady = exports.isImageRepresentationReady = function isImageRepresentationReady(fileState) {
30
33
  switch (fileState.status) {
31
34
  case 'processing':
@@ -15,25 +15,27 @@ var _errors = require("../models/errors");
15
15
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
16
16
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
17
17
  var UploaderError = exports.UploaderError = /*#__PURE__*/function (_BaseMediaClientError) {
18
- function UploaderError(reason, id, metadata) {
18
+ // Legacy Attribute. Should be removed
19
+
20
+ function UploaderError(reason, metadata) {
19
21
  var _this;
20
22
  (0, _classCallCheck2.default)(this, UploaderError);
21
- _this = _callSuper(this, UploaderError, [reason]);
22
- _this.reason = reason;
23
- _this.id = id;
24
- _this.metadata = metadata;
23
+ _this = _callSuper(this, UploaderError, [reason, metadata, undefined]);
24
+ _this.id = metadata.id;
25
25
  return _this;
26
26
  }
27
+
28
+ // TODO: Deprecate this getter https://product-fabric.atlassian.net/browse/CXP-4665
29
+ /** Will be deprecated. Use the properties `reason` and `metadata` instead */
27
30
  (0, _inherits2.default)(UploaderError, _BaseMediaClientError);
28
31
  return (0, _createClass2.default)(UploaderError, [{
29
32
  key: "attributes",
30
33
  get: function get() {
31
34
  var reason = this.reason,
32
- id = this.id,
33
35
  _this$metadata = this.metadata,
34
- _this$metadata2 = _this$metadata === void 0 ? {} : _this$metadata,
35
- collectionName = _this$metadata2.collectionName,
36
- occurrenceKey = _this$metadata2.occurrenceKey;
36
+ id = _this$metadata.id,
37
+ collectionName = _this$metadata.collectionName,
38
+ occurrenceKey = _this$metadata.occurrenceKey;
37
39
  return {
38
40
  reason: reason,
39
41
  id: id,
@@ -149,7 +149,8 @@ var uploadFile = exports.uploadFile = function uploadFile(file, store, uploadabl
149
149
  }
150
150
  } catch (err) {
151
151
  if (err instanceof Error && err.message === _calculateChunkSize.fileSizeError) {
152
- callbacks === null || callbacks === void 0 || callbacks.onUploadFinish(new _error.UploaderError(err.message, id, {
152
+ callbacks === null || callbacks === void 0 || callbacks.onUploadFinish(new _error.UploaderError(err.message, {
153
+ id: id,
153
154
  collectionName: collection,
154
155
  occurrenceKey: occurrenceKey
155
156
  }));
@@ -15,26 +15,28 @@ var _errors = require("../../models/errors");
15
15
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
16
16
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
17
17
  var MobileUploadError = exports.MobileUploadError = /*#__PURE__*/function (_BaseMediaClientError) {
18
- function MobileUploadError(reason, id, metadata) {
18
+ // Legacy Attribute. Should be removed
19
+
20
+ function MobileUploadError(reason, metadata) {
19
21
  var _this;
20
22
  (0, _classCallCheck2.default)(this, MobileUploadError);
21
- _this = _callSuper(this, MobileUploadError, [reason]);
22
- _this.reason = reason;
23
- _this.id = id;
24
- _this.metadata = metadata;
23
+ _this = _callSuper(this, MobileUploadError, [reason, metadata, undefined]);
24
+ _this.id = metadata.id;
25
25
  return _this;
26
26
  }
27
+
28
+ // TODO: Deprecate this getter https://product-fabric.atlassian.net/browse/CXP-4665
29
+ /** Will be deprecated. Use the properties `reason` and `metadata` instead */
27
30
  (0, _inherits2.default)(MobileUploadError, _BaseMediaClientError);
28
31
  return (0, _createClass2.default)(MobileUploadError, [{
29
32
  key: "attributes",
30
33
  get: function get() {
31
34
  var reason = this.reason,
32
- id = this.id,
33
35
  _this$metadata = this.metadata,
34
- _this$metadata2 = _this$metadata === void 0 ? {} : _this$metadata,
35
- collectionName = _this$metadata2.collectionName,
36
- occurrenceKey = _this$metadata2.occurrenceKey,
37
- traceContext = _this$metadata2.traceContext;
36
+ id = _this$metadata.id,
37
+ collectionName = _this$metadata.collectionName,
38
+ occurrenceKey = _this$metadata.occurrenceKey,
39
+ traceContext = _this$metadata.traceContext;
38
40
  return {
39
41
  reason: reason,
40
42
  id: id,
@@ -47,7 +47,8 @@ var createMobileDownloadFileStream = exports.createMobileDownloadFileStream = fu
47
47
  _context.next = 5;
48
48
  break;
49
49
  }
50
- throw new _error.MobileUploadError('emptyItems', id, {
50
+ throw new _error.MobileUploadError('emptyItems', {
51
+ id: id,
51
52
  collectionName: collectionName,
52
53
  occurrenceKey: occurrenceKey,
53
54
  traceContext: response.metadataTraceContext
@@ -57,7 +58,8 @@ var createMobileDownloadFileStream = exports.createMobileDownloadFileStream = fu
57
58
  _context.next = 7;
58
59
  break;
59
60
  }
60
- throw new _error.MobileUploadError('zeroVersionFile', id, {
61
+ throw new _error.MobileUploadError('zeroVersionFile', {
62
+ id: id,
61
63
  collectionName: collectionName,
62
64
  occurrenceKey: occurrenceKey,
63
65
  traceContext: response.metadataTraceContext