@atlaskit/media-client 37.2.37 → 37.3.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 (459) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/cjs/client/file-fetcher/FileFetcherError.js +54 -0
  3. package/dist/cjs/client/file-fetcher/error.js +13 -52
  4. package/dist/cjs/client/file-fetcher/index.js +59 -46
  5. package/dist/cjs/client/file-fetcher/isFileFetcherError.js +10 -0
  6. package/dist/cjs/client/media-client.js +4 -4
  7. package/dist/cjs/client/media-store/MediaStore.js +100 -108
  8. package/dist/cjs/client/media-store/MediaStoreError.js +36 -0
  9. package/dist/cjs/client/media-store/cdnFeatureFlag.js +14 -0
  10. package/dist/cjs/client/media-store/decodeJwtToken.js +9 -0
  11. package/dist/cjs/client/media-store/error.js +13 -34
  12. package/dist/cjs/client/media-store/extendImageParams.js +23 -0
  13. package/dist/cjs/client/media-store/getMediaEnvironment.js +11 -0
  14. package/dist/cjs/client/media-store/getMediaRegion.js +11 -0
  15. package/dist/cjs/client/media-store/getValueFromSessionStorage.js +10 -0
  16. package/dist/cjs/client/media-store/isMediaStoreError.js +10 -0
  17. package/dist/cjs/client/media-store/jsonHeaders.js +10 -0
  18. package/dist/cjs/client/media-store/resolveAuth.js +10 -16
  19. package/dist/cjs/client/media-store/resolveInitialAuth.js +13 -0
  20. package/dist/cjs/client/media-store/setKeyValueInSessionStorage.js +19 -0
  21. package/dist/cjs/client/mobile-upload.js +9 -6
  22. package/dist/cjs/identifier.js +20 -15
  23. package/dist/cjs/index.js +60 -37
  24. package/dist/cjs/is-different-identifier.js +16 -0
  25. package/dist/cjs/is-external-image-identifier.js +9 -0
  26. package/dist/cjs/is-file-identifier.js +9 -0
  27. package/dist/cjs/models/artifacts.js +2 -2
  28. package/dist/cjs/models/errors/BaseMediaClientError.js +43 -0
  29. package/dist/cjs/models/errors/CommonMediaClientError.js +32 -0
  30. package/dist/cjs/models/errors/fromCommonMediaClientError.js +28 -0
  31. package/dist/cjs/models/errors/getMediaClientErrorReason.js +10 -0
  32. package/dist/cjs/models/errors/helpers.js +14 -8
  33. package/dist/cjs/models/errors/index.js +37 -96
  34. package/dist/cjs/models/errors/isCommonMediaClientError.js +17 -0
  35. package/dist/cjs/models/errors/isMediaClientError.js +9 -0
  36. package/dist/cjs/models/errors/toCommonMediaClientError.js +13 -0
  37. package/dist/cjs/models/file-state.js +75 -93
  38. package/dist/cjs/models/has-artifacts.js +9 -0
  39. package/dist/cjs/models/is-error-file-state.js +9 -0
  40. package/dist/cjs/models/is-final-file-state.js +9 -0
  41. package/dist/cjs/models/is-image-representation-ready.js +16 -0
  42. package/dist/cjs/models/is-non-error-final-file-state.js +9 -0
  43. package/dist/cjs/models/is-not-found-media-item-details.js +9 -0
  44. package/dist/cjs/models/is-previewable-file-state.js +10 -0
  45. package/dist/cjs/models/is-previewable-type.js +10 -0
  46. package/dist/cjs/models/is-processed-file-state.js +9 -0
  47. package/dist/cjs/models/is-processing-file-state.js +9 -0
  48. package/dist/cjs/models/is-uploading-file-state.js +9 -0
  49. package/dist/cjs/models/map-media-file-to-file-state.js +59 -0
  50. package/dist/cjs/models/map-media-item-to-file-state.js +18 -0
  51. package/dist/cjs/models/media.js +23 -10
  52. package/dist/cjs/uploader/{error.js → UploaderError.js} +2 -6
  53. package/dist/cjs/uploader/index.js +4 -4
  54. package/dist/cjs/uploader/isUploaderError.js +10 -0
  55. package/dist/cjs/utils/addFileAttrsToUrl.js +24 -0
  56. package/dist/cjs/utils/createBatchLoadingFunc.js +127 -0
  57. package/dist/cjs/utils/createFileDataLoader.js +1 -170
  58. package/dist/cjs/utils/createFileDataloader-2.js +15 -0
  59. package/dist/cjs/utils/getAttrsFromUrl.js +41 -0
  60. package/dist/cjs/utils/getItemsFromKeys.js +50 -0
  61. package/dist/cjs/utils/isCDNEnabled.js +15 -0
  62. package/dist/cjs/utils/isMediaBlobUrl.js +10 -0
  63. package/dist/cjs/utils/isPathBasedEnabled.js +14 -0
  64. package/dist/cjs/utils/mapRetryUrlToPathBasedUrl.js +24 -0
  65. package/dist/cjs/utils/mapToMediaCdnUrl.js +38 -0
  66. package/dist/cjs/utils/mapToPathBasedUrl.js +32 -0
  67. package/dist/cjs/utils/mediaCdn.js +2 -40
  68. package/dist/cjs/utils/mediaSubscribable/createMediaSubscribable.js +11 -0
  69. package/dist/cjs/utils/mediaSubscribable/fromObservable.js +13 -5
  70. package/dist/cjs/utils/mobileUpload/{error.js → MobileUploadError.js} +2 -6
  71. package/dist/cjs/utils/mobileUpload/{helpers.js → createMobileDownloadFileStream.js} +8 -18
  72. package/dist/cjs/utils/mobileUpload/createMobileFileStateSubject.js +16 -0
  73. package/dist/cjs/utils/mobileUpload/isMobileUploadError.js +10 -0
  74. package/dist/cjs/utils/mobileUpload/stateMachine/createMobileUploadService.js +10 -0
  75. package/dist/cjs/utils/mobileUpload/stateMachine/{index.js → createMobileUploadStateMachine.js} +8 -12
  76. package/dist/cjs/utils/mobileUpload/stateMachine/states/uploading.js +3 -3
  77. package/dist/cjs/utils/objectToQueryString.js +17 -0
  78. package/dist/cjs/utils/overrideMediaTypeIfUnknown.js +2 -2
  79. package/dist/cjs/utils/pathBasedUrl.js +2 -49
  80. package/dist/cjs/utils/polling/PollingError.js +36 -0
  81. package/dist/cjs/utils/polling/errors.js +13 -34
  82. package/dist/cjs/utils/polling/index.js +11 -6
  83. package/dist/cjs/utils/polling/isPollingError.js +10 -0
  84. package/dist/cjs/utils/rejectTimeout.js +11 -0
  85. package/dist/cjs/utils/request/RequestError.js +56 -0
  86. package/dist/cjs/utils/request/cloneRequestError.js +17 -0
  87. package/dist/cjs/utils/request/createMapResponseToBlob.js +43 -0
  88. package/dist/cjs/utils/request/createMapResponseToJson.js +43 -0
  89. package/dist/cjs/utils/request/createProcessFetchResponse.js +16 -0
  90. package/dist/cjs/utils/request/createRequestErrorFromResponse.js +20 -0
  91. package/dist/cjs/utils/request/createRequestErrorReason.js +30 -0
  92. package/dist/cjs/utils/request/createUrl.js +31 -0
  93. package/dist/cjs/utils/request/defaultShouldRetryError.js +12 -0
  94. package/dist/cjs/utils/request/errors.js +13 -54
  95. package/dist/cjs/utils/request/extendHeaders.js +21 -0
  96. package/dist/cjs/utils/request/extendTraceContext.js +16 -0
  97. package/dist/cjs/utils/request/extractMediaHeaders.js +15 -0
  98. package/dist/cjs/utils/request/fetchRetry.js +120 -0
  99. package/dist/cjs/utils/request/getStatusCode.js +11 -0
  100. package/dist/cjs/utils/request/helpers.js +198 -313
  101. package/dist/cjs/utils/request/index.js +36 -20
  102. package/dist/cjs/utils/request/isAbortedRequestError.js +9 -0
  103. package/dist/cjs/utils/request/isFetchNetworkError.js +10 -0
  104. package/dist/cjs/utils/request/isRateLimitedError.js +11 -0
  105. package/dist/cjs/utils/request/isRequestError.js +10 -0
  106. package/dist/cjs/utils/request/mapAuthToRequestHeaders.js +22 -0
  107. package/dist/cjs/utils/request/waitPromise.js +11 -0
  108. package/dist/cjs/utils/{setTimeoutPromise.js → resolveTimeout.js} +1 -6
  109. package/dist/cjs/utils/url.js +43 -63
  110. package/dist/es2019/client/file-fetcher/FileFetcherError.js +34 -0
  111. package/dist/es2019/client/file-fetcher/error.js +9 -37
  112. package/dist/es2019/client/file-fetcher/index.js +32 -17
  113. package/dist/es2019/client/file-fetcher/isFileFetcherError.js +4 -0
  114. package/dist/es2019/client/media-client.js +1 -1
  115. package/dist/es2019/client/media-store/MediaStore.js +35 -59
  116. package/dist/es2019/client/media-store/MediaStoreError.js +19 -0
  117. package/dist/es2019/client/media-store/cdnFeatureFlag.js +8 -0
  118. package/dist/es2019/client/media-store/decodeJwtToken.js +3 -0
  119. package/dist/es2019/client/media-store/error.js +9 -22
  120. package/dist/es2019/client/media-store/extendImageParams.js +14 -0
  121. package/dist/es2019/client/media-store/getMediaEnvironment.js +5 -0
  122. package/dist/es2019/client/media-store/getMediaRegion.js +5 -0
  123. package/dist/es2019/client/media-store/getValueFromSessionStorage.js +4 -0
  124. package/dist/es2019/client/media-store/isMediaStoreError.js +4 -0
  125. package/dist/es2019/client/media-store/jsonHeaders.js +4 -0
  126. package/dist/es2019/client/media-store/resolveAuth.js +2 -8
  127. package/dist/es2019/client/media-store/resolveInitialAuth.js +7 -0
  128. package/dist/es2019/client/media-store/setKeyValueInSessionStorage.js +13 -0
  129. package/dist/es2019/client/mobile-upload.js +5 -2
  130. package/dist/es2019/identifier.js +14 -14
  131. package/dist/es2019/index.js +31 -8
  132. package/dist/es2019/is-different-identifier.js +9 -0
  133. package/dist/es2019/is-external-image-identifier.js +3 -0
  134. package/dist/es2019/is-file-identifier.js +3 -0
  135. package/dist/es2019/models/artifacts.js +1 -1
  136. package/dist/es2019/models/errors/BaseMediaClientError.js +23 -0
  137. package/dist/es2019/models/errors/CommonMediaClientError.js +13 -0
  138. package/dist/es2019/models/errors/fromCommonMediaClientError.js +20 -0
  139. package/dist/es2019/models/errors/getMediaClientErrorReason.js +4 -0
  140. package/dist/es2019/models/errors/helpers.js +10 -6
  141. package/dist/es2019/models/errors/index.js +27 -72
  142. package/dist/es2019/models/errors/isCommonMediaClientError.js +11 -0
  143. package/dist/es2019/models/errors/isMediaClientError.js +3 -0
  144. package/dist/es2019/models/errors/toCommonMediaClientError.js +8 -0
  145. package/dist/es2019/models/file-state.js +46 -79
  146. package/dist/es2019/models/has-artifacts.js +1 -0
  147. package/dist/es2019/models/is-error-file-state.js +1 -0
  148. package/dist/es2019/models/is-final-file-state.js +1 -0
  149. package/dist/es2019/models/is-image-representation-ready.js +10 -0
  150. package/dist/es2019/models/is-non-error-final-file-state.js +1 -0
  151. package/dist/es2019/models/is-not-found-media-item-details.js +3 -0
  152. package/dist/es2019/models/is-previewable-file-state.js +2 -0
  153. package/dist/es2019/models/is-previewable-type.js +4 -0
  154. package/dist/es2019/models/is-processed-file-state.js +1 -0
  155. package/dist/es2019/models/is-processing-file-state.js +1 -0
  156. package/dist/es2019/models/is-uploading-file-state.js +1 -0
  157. package/dist/es2019/models/map-media-file-to-file-state.js +53 -0
  158. package/dist/es2019/models/map-media-item-to-file-state.js +9 -0
  159. package/dist/es2019/models/media.js +12 -8
  160. package/dist/es2019/uploader/{error.js → UploaderError.js} +1 -4
  161. package/dist/es2019/uploader/index.js +3 -3
  162. package/dist/es2019/uploader/isUploaderError.js +4 -0
  163. package/dist/es2019/utils/addFileAttrsToUrl.js +19 -0
  164. package/dist/es2019/utils/createBatchLoadingFunc.js +74 -0
  165. package/dist/es2019/utils/createFileDataLoader.js +1 -122
  166. package/dist/es2019/utils/createFileDataloader-2.js +8 -0
  167. package/dist/es2019/utils/getAttrsFromUrl.js +35 -0
  168. package/dist/es2019/utils/getItemsFromKeys.js +43 -0
  169. package/dist/es2019/utils/isCDNEnabled.js +9 -0
  170. package/dist/es2019/utils/isMediaBlobUrl.js +4 -0
  171. package/dist/es2019/utils/isPathBasedEnabled.js +7 -0
  172. package/dist/es2019/utils/mapRetryUrlToPathBasedUrl.js +17 -0
  173. package/dist/es2019/utils/mapToMediaCdnUrl.js +32 -0
  174. package/dist/es2019/utils/mapToPathBasedUrl.js +25 -0
  175. package/dist/es2019/utils/mediaCdn.js +1 -37
  176. package/dist/es2019/utils/mediaSubscribable/createMediaSubscribable.js +5 -0
  177. package/dist/es2019/utils/mediaSubscribable/fromObservable.js +7 -4
  178. package/dist/es2019/utils/mobileUpload/{error.js → MobileUploadError.js} +1 -4
  179. package/dist/es2019/utils/mobileUpload/{helpers.js → createMobileDownloadFileStream.js} +3 -11
  180. package/dist/es2019/utils/mobileUpload/createMobileFileStateSubject.js +8 -0
  181. package/dist/es2019/utils/mobileUpload/isMobileUploadError.js +4 -0
  182. package/dist/es2019/utils/mobileUpload/stateMachine/createMobileUploadService.js +4 -0
  183. package/dist/es2019/utils/mobileUpload/stateMachine/{index.js → createMobileUploadStateMachine.js} +7 -10
  184. package/dist/es2019/utils/mobileUpload/stateMachine/states/uploading.js +1 -1
  185. package/dist/es2019/utils/objectToQueryString.js +9 -0
  186. package/dist/es2019/utils/overrideMediaTypeIfUnknown.js +1 -1
  187. package/dist/es2019/utils/pathBasedUrl.js +1 -45
  188. package/dist/es2019/utils/polling/PollingError.js +21 -0
  189. package/dist/es2019/utils/polling/errors.js +9 -24
  190. package/dist/es2019/utils/polling/index.js +10 -2
  191. package/dist/es2019/utils/polling/isPollingError.js +4 -0
  192. package/dist/es2019/utils/rejectTimeout.js +3 -0
  193. package/dist/es2019/utils/request/RequestError.js +39 -0
  194. package/dist/es2019/utils/request/cloneRequestError.js +12 -0
  195. package/dist/es2019/utils/request/createMapResponseToBlob.js +15 -0
  196. package/dist/es2019/utils/request/createMapResponseToJson.js +15 -0
  197. package/dist/es2019/utils/request/createProcessFetchResponse.js +10 -0
  198. package/dist/es2019/utils/request/createRequestErrorFromResponse.js +14 -0
  199. package/dist/es2019/utils/request/createRequestErrorReason.js +24 -0
  200. package/dist/es2019/utils/request/createUrl.js +17 -0
  201. package/dist/es2019/utils/request/defaultShouldRetryError.js +6 -0
  202. package/dist/es2019/utils/request/errors.js +9 -42
  203. package/dist/es2019/utils/request/extendHeaders.js +18 -0
  204. package/dist/es2019/utils/request/extendTraceContext.js +5 -0
  205. package/dist/es2019/utils/request/extractMediaHeaders.js +11 -0
  206. package/dist/es2019/utils/request/fetchRetry.js +54 -0
  207. package/dist/es2019/utils/request/getStatusCode.js +5 -0
  208. package/dist/es2019/utils/request/helpers.js +73 -215
  209. package/dist/es2019/utils/request/index.js +25 -4
  210. package/dist/es2019/utils/request/isAbortedRequestError.js +3 -0
  211. package/dist/es2019/utils/request/isFetchNetworkError.js +4 -0
  212. package/dist/es2019/utils/request/isRateLimitedError.js +5 -0
  213. package/dist/es2019/utils/request/isRequestError.js +4 -0
  214. package/dist/es2019/utils/request/mapAuthToRequestHeaders.js +16 -0
  215. package/dist/es2019/utils/request/waitPromise.js +3 -0
  216. package/dist/es2019/utils/resolveTimeout.js +3 -0
  217. package/dist/es2019/utils/url.js +18 -65
  218. package/dist/esm/client/file-fetcher/FileFetcherError.js +47 -0
  219. package/dist/esm/client/file-fetcher/error.js +9 -50
  220. package/dist/esm/client/file-fetcher/index.js +32 -17
  221. package/dist/esm/client/file-fetcher/isFileFetcherError.js +4 -0
  222. package/dist/esm/client/media-client.js +1 -1
  223. package/dist/esm/client/media-store/MediaStore.js +35 -58
  224. package/dist/esm/client/media-store/MediaStoreError.js +29 -0
  225. package/dist/esm/client/media-store/cdnFeatureFlag.js +8 -0
  226. package/dist/esm/client/media-store/decodeJwtToken.js +3 -0
  227. package/dist/esm/client/media-store/error.js +9 -32
  228. package/dist/esm/client/media-store/extendImageParams.js +16 -0
  229. package/dist/esm/client/media-store/getMediaEnvironment.js +5 -0
  230. package/dist/esm/client/media-store/getMediaRegion.js +5 -0
  231. package/dist/esm/client/media-store/getValueFromSessionStorage.js +4 -0
  232. package/dist/esm/client/media-store/isMediaStoreError.js +4 -0
  233. package/dist/esm/client/media-store/jsonHeaders.js +4 -0
  234. package/dist/esm/client/media-store/resolveAuth.js +3 -9
  235. package/dist/esm/client/media-store/resolveInitialAuth.js +7 -0
  236. package/dist/esm/client/media-store/setKeyValueInSessionStorage.js +13 -0
  237. package/dist/esm/client/mobile-upload.js +5 -2
  238. package/dist/esm/identifier.js +14 -14
  239. package/dist/esm/index.js +31 -8
  240. package/dist/esm/is-different-identifier.js +9 -0
  241. package/dist/esm/is-external-image-identifier.js +3 -0
  242. package/dist/esm/is-file-identifier.js +3 -0
  243. package/dist/esm/models/artifacts.js +1 -1
  244. package/dist/esm/models/errors/BaseMediaClientError.js +36 -0
  245. package/dist/esm/models/errors/CommonMediaClientError.js +25 -0
  246. package/dist/esm/models/errors/fromCommonMediaClientError.js +21 -0
  247. package/dist/esm/models/errors/getMediaClientErrorReason.js +4 -0
  248. package/dist/esm/models/errors/helpers.js +10 -6
  249. package/dist/esm/models/errors/index.js +27 -91
  250. package/dist/esm/models/errors/isCommonMediaClientError.js +11 -0
  251. package/dist/esm/models/errors/isMediaClientError.js +3 -0
  252. package/dist/esm/models/errors/toCommonMediaClientError.js +8 -0
  253. package/dist/esm/models/file-state.js +46 -93
  254. package/dist/esm/models/has-artifacts.js +3 -0
  255. package/dist/esm/models/is-error-file-state.js +3 -0
  256. package/dist/esm/models/is-final-file-state.js +3 -0
  257. package/dist/esm/models/is-image-representation-ready.js +10 -0
  258. package/dist/esm/models/is-non-error-final-file-state.js +3 -0
  259. package/dist/esm/models/is-not-found-media-item-details.js +3 -0
  260. package/dist/esm/models/is-previewable-file-state.js +4 -0
  261. package/dist/esm/models/is-previewable-type.js +4 -0
  262. package/dist/esm/models/is-processed-file-state.js +3 -0
  263. package/dist/esm/models/is-processing-file-state.js +3 -0
  264. package/dist/esm/models/is-uploading-file-state.js +3 -0
  265. package/dist/esm/models/map-media-file-to-file-state.js +52 -0
  266. package/dist/esm/models/map-media-item-to-file-state.js +11 -0
  267. package/dist/esm/models/media.js +12 -8
  268. package/dist/esm/uploader/{error.js → UploaderError.js} +2 -5
  269. package/dist/esm/uploader/index.js +3 -3
  270. package/dist/esm/uploader/isUploaderError.js +4 -0
  271. package/dist/esm/utils/addFileAttrsToUrl.js +17 -0
  272. package/dist/esm/utils/createBatchLoadingFunc.js +121 -0
  273. package/dist/esm/utils/createFileDataLoader.js +1 -166
  274. package/dist/esm/utils/createFileDataloader-2.js +8 -0
  275. package/dist/esm/utils/getAttrsFromUrl.js +35 -0
  276. package/dist/esm/utils/getItemsFromKeys.js +43 -0
  277. package/dist/esm/utils/isCDNEnabled.js +9 -0
  278. package/dist/esm/utils/isMediaBlobUrl.js +4 -0
  279. package/dist/esm/utils/isPathBasedEnabled.js +7 -0
  280. package/dist/esm/utils/mapRetryUrlToPathBasedUrl.js +17 -0
  281. package/dist/esm/utils/mapToMediaCdnUrl.js +32 -0
  282. package/dist/esm/utils/mapToPathBasedUrl.js +25 -0
  283. package/dist/esm/utils/mediaCdn.js +1 -37
  284. package/dist/esm/utils/mediaSubscribable/createMediaSubscribable.js +5 -0
  285. package/dist/esm/utils/mediaSubscribable/fromObservable.js +7 -4
  286. package/dist/esm/utils/mobileUpload/{error.js → MobileUploadError.js} +2 -5
  287. package/dist/esm/utils/mobileUpload/{helpers.js → createMobileDownloadFileStream.js} +3 -13
  288. package/dist/esm/utils/mobileUpload/createMobileFileStateSubject.js +10 -0
  289. package/dist/esm/utils/mobileUpload/isMobileUploadError.js +4 -0
  290. package/dist/esm/utils/mobileUpload/stateMachine/createMobileUploadService.js +4 -0
  291. package/dist/esm/utils/mobileUpload/stateMachine/{index.js → createMobileUploadStateMachine.js} +7 -10
  292. package/dist/esm/utils/mobileUpload/stateMachine/states/uploading.js +1 -1
  293. package/dist/esm/utils/objectToQueryString.js +11 -0
  294. package/dist/esm/utils/overrideMediaTypeIfUnknown.js +1 -1
  295. package/dist/esm/utils/pathBasedUrl.js +1 -45
  296. package/dist/esm/utils/polling/PollingError.js +29 -0
  297. package/dist/esm/utils/polling/errors.js +9 -32
  298. package/dist/esm/utils/polling/index.js +10 -2
  299. package/dist/esm/utils/polling/isPollingError.js +4 -0
  300. package/dist/esm/utils/rejectTimeout.js +5 -0
  301. package/dist/esm/utils/request/RequestError.js +49 -0
  302. package/dist/esm/utils/request/cloneRequestError.js +10 -0
  303. package/dist/esm/utils/request/createMapResponseToBlob.js +36 -0
  304. package/dist/esm/utils/request/createMapResponseToJson.js +36 -0
  305. package/dist/esm/utils/request/createProcessFetchResponse.js +10 -0
  306. package/dist/esm/utils/request/createRequestErrorFromResponse.js +13 -0
  307. package/dist/esm/utils/request/createRequestErrorReason.js +24 -0
  308. package/dist/esm/utils/request/createUrl.js +24 -0
  309. package/dist/esm/utils/request/defaultShouldRetryError.js +6 -0
  310. package/dist/esm/utils/request/errors.js +9 -52
  311. package/dist/esm/utils/request/extendHeaders.js +14 -0
  312. package/dist/esm/utils/request/extendTraceContext.js +9 -0
  313. package/dist/esm/utils/request/extractMediaHeaders.js +9 -0
  314. package/dist/esm/utils/request/fetchRetry.js +113 -0
  315. package/dist/esm/utils/request/getStatusCode.js +5 -0
  316. package/dist/esm/utils/request/helpers.js +73 -295
  317. package/dist/esm/utils/request/index.js +25 -4
  318. package/dist/esm/utils/request/isAbortedRequestError.js +3 -0
  319. package/dist/esm/utils/request/isFetchNetworkError.js +4 -0
  320. package/dist/esm/utils/request/isRateLimitedError.js +5 -0
  321. package/dist/esm/utils/request/isRequestError.js +4 -0
  322. package/dist/esm/utils/request/mapAuthToRequestHeaders.js +16 -0
  323. package/dist/esm/utils/request/waitPromise.js +5 -0
  324. package/dist/esm/utils/{setTimeoutPromise.js → resolveTimeout.js} +0 -5
  325. package/dist/esm/utils/url.js +18 -65
  326. package/dist/types/client/file-fetcher/FileFetcherError.d.ts +32 -0
  327. package/dist/types/client/file-fetcher/error.d.ts +9 -33
  328. package/dist/types/client/file-fetcher/index.d.ts +15 -7
  329. package/dist/types/client/file-fetcher/isFileFetcherError.d.ts +2 -0
  330. package/dist/types/client/media-client.d.ts +4 -3
  331. package/dist/types/client/media-store/MediaStore.d.ts +18 -6
  332. package/dist/types/client/media-store/MediaStoreError.d.ts +14 -0
  333. package/dist/types/client/media-store/cdnFeatureFlag.d.ts +1 -0
  334. package/dist/types/client/media-store/decodeJwtToken.d.ts +3 -0
  335. package/dist/types/client/media-store/error.d.ts +9 -15
  336. package/dist/types/client/media-store/extendImageParams.d.ts +2 -0
  337. package/dist/types/client/media-store/getMediaEnvironment.d.ts +1 -0
  338. package/dist/types/client/media-store/getMediaRegion.d.ts +1 -0
  339. package/dist/types/client/media-store/getValueFromSessionStorage.d.ts +1 -0
  340. package/dist/types/client/media-store/isMediaStoreError.d.ts +2 -0
  341. package/dist/types/client/media-store/jsonHeaders.d.ts +1 -0
  342. package/dist/types/client/media-store/resolveAuth.d.ts +0 -1
  343. package/dist/types/client/media-store/resolveInitialAuth.d.ts +2 -0
  344. package/dist/types/client/media-store/setKeyValueInSessionStorage.d.ts +1 -0
  345. package/dist/types/client/mobile-upload.d.ts +1 -1
  346. package/dist/types/identifier.d.ts +12 -3
  347. package/dist/types/index.d.ts +34 -10
  348. package/dist/types/is-different-identifier.d.ts +2 -0
  349. package/dist/types/is-external-image-identifier.d.ts +2 -0
  350. package/dist/types/is-file-identifier.d.ts +2 -0
  351. package/dist/types/models/errors/BaseMediaClientError.d.ts +11 -0
  352. package/dist/types/models/errors/CommonMediaClientError.d.ts +7 -0
  353. package/dist/types/models/errors/fromCommonMediaClientError.d.ts +4 -0
  354. package/dist/types/models/errors/getMediaClientErrorReason.d.ts +2 -0
  355. package/dist/types/models/errors/helpers.d.ts +8 -5
  356. package/dist/types/models/errors/index.d.ts +26 -21
  357. package/dist/types/models/errors/isCommonMediaClientError.d.ts +3 -0
  358. package/dist/types/models/errors/isMediaClientError.d.ts +4 -0
  359. package/dist/types/models/errors/toCommonMediaClientError.d.ts +4 -0
  360. package/dist/types/models/file-state.d.ts +45 -16
  361. package/dist/types/models/has-artifacts.d.ts +4 -0
  362. package/dist/types/models/is-error-file-state.d.ts +2 -0
  363. package/dist/types/models/is-final-file-state.d.ts +2 -0
  364. package/dist/types/models/is-image-representation-ready.d.ts +2 -0
  365. package/dist/types/models/is-non-error-final-file-state.d.ts +2 -0
  366. package/dist/types/models/is-not-found-media-item-details.d.ts +2 -0
  367. package/dist/types/models/is-previewable-file-state.d.ts +3 -0
  368. package/dist/types/models/is-previewable-type.d.ts +2 -0
  369. package/dist/types/models/is-processed-file-state.d.ts +2 -0
  370. package/dist/types/models/is-processing-file-state.d.ts +2 -0
  371. package/dist/types/models/is-uploading-file-state.d.ts +2 -0
  372. package/dist/types/models/map-media-file-to-file-state.d.ts +4 -0
  373. package/dist/types/models/map-media-item-to-file-state.d.ts +3 -0
  374. package/dist/types/models/media.d.ts +8 -2
  375. package/dist/types/uploader/{error.d.ts → UploaderError.d.ts} +12 -13
  376. package/dist/types/uploader/index.d.ts +1 -1
  377. package/dist/types/uploader/isUploaderError.d.ts +2 -0
  378. package/dist/types/utils/addFileAttrsToUrl.d.ts +2 -0
  379. package/dist/types/utils/createBatchLoadingFunc.d.ts +11 -0
  380. package/dist/types/utils/createCopyIntentRegisterationBatcher.d.ts +1 -1
  381. package/dist/types/utils/createFileDataLoader.d.ts +0 -14
  382. package/dist/types/utils/createFileDataloader-2.d.ts +4 -0
  383. package/dist/types/utils/getAttrsFromUrl.d.ts +2 -0
  384. package/dist/types/utils/getItemsFromKeys.d.ts +3 -0
  385. package/dist/types/utils/imageResizeModeToFileImageMode.d.ts +1 -1
  386. package/dist/types/utils/isCDNEnabled.d.ts +1 -0
  387. package/dist/types/utils/isMediaBlobUrl.d.ts +1 -0
  388. package/dist/types/utils/isPathBasedEnabled.d.ts +1 -0
  389. package/dist/types/utils/mapRetryUrlToPathBasedUrl.d.ts +1 -0
  390. package/dist/types/utils/mapToMediaCdnUrl.d.ts +1 -0
  391. package/dist/types/utils/mapToPathBasedUrl.d.ts +1 -0
  392. package/dist/types/utils/mediaCdn.d.ts +1 -2
  393. package/dist/types/utils/mediaSubscribable/createMediaSubscribable.d.ts +3 -0
  394. package/dist/types/utils/mediaSubscribable/fromObservable.d.ts +4 -1
  395. package/dist/types/utils/mobileUpload/{error.d.ts → MobileUploadError.d.ts} +15 -16
  396. package/dist/types/utils/mobileUpload/createMobileDownloadFileStream.d.ts +5 -0
  397. package/dist/types/utils/mobileUpload/{helpers.d.ts → createMobileFileStateSubject.d.ts} +0 -3
  398. package/dist/types/utils/mobileUpload/isMobileUploadError.d.ts +2 -0
  399. package/dist/types/utils/mobileUpload/stateMachine/createMobileUploadService.d.ts +3 -0
  400. package/dist/types/utils/mobileUpload/stateMachine/{index.d.ts → createMobileUploadStateMachine.d.ts} +2 -3
  401. package/dist/types/utils/objectToQueryString.d.ts +3 -0
  402. package/dist/types/utils/pathBasedUrl.d.ts +1 -3
  403. package/dist/types/utils/polling/PollingError.d.ts +10 -0
  404. package/dist/types/utils/polling/errors.d.ts +8 -11
  405. package/dist/types/utils/polling/index.d.ts +8 -1
  406. package/dist/types/utils/polling/isPollingError.d.ts +2 -0
  407. package/dist/types/utils/{setTimeoutPromise.d.ts → rejectTimeout.d.ts} +0 -1
  408. package/dist/types/utils/request/RequestError.d.ts +21 -0
  409. package/dist/types/utils/request/cloneRequestError.d.ts +3 -0
  410. package/dist/types/utils/request/createMapResponseToBlob.d.ts +2 -0
  411. package/dist/types/utils/request/createMapResponseToJson.d.ts +2 -0
  412. package/dist/types/utils/request/createProcessFetchResponse.d.ts +2 -0
  413. package/dist/types/utils/request/createRequestErrorFromResponse.d.ts +3 -0
  414. package/dist/types/utils/request/createRequestErrorReason.d.ts +2 -0
  415. package/dist/types/utils/request/createUrl.d.ts +2 -0
  416. package/dist/types/utils/request/defaultShouldRetryError.d.ts +1 -0
  417. package/dist/types/utils/request/errors.d.ts +8 -22
  418. package/dist/types/utils/request/extendHeaders.d.ts +4 -0
  419. package/dist/types/utils/request/extendTraceContext.d.ts +2 -0
  420. package/dist/types/utils/request/extractMediaHeaders.d.ts +4 -0
  421. package/dist/types/utils/request/fetchRetry.d.ts +2 -0
  422. package/dist/types/utils/request/getStatusCode.d.ts +1 -0
  423. package/dist/types/utils/request/helpers.d.ts +73 -24
  424. package/dist/types/utils/request/index.d.ts +16 -2
  425. package/dist/types/utils/request/isAbortedRequestError.d.ts +1 -0
  426. package/dist/types/utils/request/isFetchNetworkError.d.ts +1 -0
  427. package/dist/types/utils/request/isRateLimitedError.d.ts +1 -0
  428. package/dist/types/utils/request/isRequestError.d.ts +2 -0
  429. package/dist/types/utils/request/mapAuthToRequestHeaders.d.ts +3 -0
  430. package/dist/types/utils/request/waitPromise.d.ts +1 -0
  431. package/dist/types/utils/resolveTimeout.d.ts +1 -0
  432. package/dist/types/utils/url.d.ts +17 -6
  433. package/example-helpers/CardsWrapper.tsx +15 -0
  434. package/example-helpers/FileInput.tsx +20 -0
  435. package/example-helpers/FileStateWrapper.tsx +15 -0
  436. package/example-helpers/FileWrapper.tsx +22 -0
  437. package/example-helpers/Header.tsx +15 -0
  438. package/example-helpers/ImagePreview.tsx +18 -0
  439. package/example-helpers/MetadataWrapper.tsx +15 -0
  440. package/example-helpers/PreviewWrapper.tsx +15 -0
  441. package/example-helpers/Response.tsx +15 -0
  442. package/example-helpers/Row.tsx +15 -0
  443. package/example-helpers/UploadTouchWrapper.tsx +15 -0
  444. package/example-helpers/Wrapper.tsx +15 -0
  445. package/package.json +2 -2
  446. package/dist/cjs/client/media-store/index.js +0 -37
  447. package/dist/cjs/utils/mediaSubscribable/index.js +0 -25
  448. package/dist/cjs/utils/mobileUpload/index.js +0 -45
  449. package/dist/es2019/client/media-store/index.js +0 -2
  450. package/dist/es2019/utils/mediaSubscribable/index.js +0 -2
  451. package/dist/es2019/utils/mobileUpload/index.js +0 -4
  452. package/dist/es2019/utils/setTimeoutPromise.js +0 -6
  453. package/dist/esm/client/media-store/index.js +0 -2
  454. package/dist/esm/utils/mediaSubscribable/index.js +0 -2
  455. package/dist/esm/utils/mobileUpload/index.js +0 -4
  456. package/dist/types/client/media-store/index.d.ts +0 -4
  457. package/dist/types/utils/mediaSubscribable/index.d.ts +0 -3
  458. package/dist/types/utils/mobileUpload/index.d.ts +0 -5
  459. package/example-helpers/stylesWrapper.tsx +0 -98
@@ -1,30 +1,5 @@
1
- import { isClientBasedAuth } from '@atlaskit/media-core';
2
- import { getRandomTelemetryId } from '@atlaskit/media-common';
3
- import { mapAuthToQueryParameters } from '../../models/auth-query-parameters';
4
- import { RequestError, isRequestError } from './errors';
5
- const getStatusCode = error => {
6
- var _error$metadata;
7
- return isRequestError(error) && ((_error$metadata = error.metadata) === null || _error$metadata === void 0 ? void 0 : _error$metadata.statusCode) && error.metadata.statusCode;
8
- };
9
- export function waitPromise(timeout) {
10
- return new Promise(resolve => setTimeout(resolve, timeout));
11
- }
12
- export function isAbortedRequestError(err) {
13
- return err instanceof Error && err.message === 'request_cancelled' || !!err && err.name === 'AbortError';
14
- }
1
+ /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
15
2
 
16
- // fetch throws TypeError for network errors
17
- export function isFetchNetworkError(err) {
18
- return err instanceof TypeError;
19
- }
20
- export function isRateLimitedError(error) {
21
- const statusCode = error && getStatusCode(error);
22
- return statusCode === 429 || !!error && !!error.message && error.message.includes('429');
23
- }
24
- export const extendTraceContext = traceContext => traceContext ? {
25
- ...traceContext,
26
- spanId: (traceContext === null || traceContext === void 0 ? void 0 : traceContext.spanId) || getRandomTelemetryId()
27
- } : undefined;
28
3
  export const ZipkinHeaderKeys = {
29
4
  traceId: 'x-b3-traceid',
30
5
  spanId: 'x-b3-spanid',
@@ -32,83 +7,6 @@ export const ZipkinHeaderKeys = {
32
7
  sampled: 'x-b3-sampled',
33
8
  flags: 'x-b3-flags'
34
9
  };
35
- const mapTraceIdToRequestHeaders = traceContext => {
36
- return traceContext ? {
37
- [ZipkinHeaderKeys.traceId]: traceContext.traceId,
38
- [ZipkinHeaderKeys.spanId]: traceContext.spanId
39
- } : {};
40
- };
41
- export function mapAuthToRequestHeaders(auth) {
42
- if (!auth) {
43
- return {};
44
- }
45
- if (isClientBasedAuth(auth)) {
46
- return {
47
- 'X-Client-Id': auth.clientId,
48
- Authorization: `Bearer ${auth.token}`
49
- };
50
- }
51
- return {
52
- 'X-Issuer': auth.asapIssuer,
53
- Authorization: `Bearer ${auth.token}`
54
- };
55
- }
56
- export function createUrl(url, {
57
- params,
58
- auth
59
- }) {
60
- const parsedUrl = new URL(url, auth === null || auth === void 0 ? void 0 : auth.baseUrl);
61
- const authParams = auth && mapAuthToQueryParameters(auth) || {};
62
- const paramsToAppend = {
63
- ...params,
64
- ...authParams
65
- };
66
- Object.entries(paramsToAppend).filter(([_, value]) => value != null).forEach(pair => {
67
- parsedUrl.searchParams.set(...pair);
68
- });
69
- parsedUrl.searchParams.sort();
70
- return parsedUrl.toString();
71
- }
72
- export function extendHeaders(headers, auth, traceContext) {
73
- if (!auth && !traceContext && !headers) {
74
- return undefined;
75
- }
76
- return {
77
- ...(headers !== null && headers !== void 0 ? headers : {}),
78
- ...mapAuthToRequestHeaders(auth),
79
- ...mapTraceIdToRequestHeaders(traceContext)
80
- };
81
- }
82
- export function createMapResponseToJson(metadata) {
83
- return async response => {
84
- try {
85
- return await response.json();
86
- } catch (err) {
87
- throw new RequestError('serverInvalidBody', {
88
- ...metadata,
89
- ...extractMediaHeaders(response),
90
- statusCode: response.status
91
- }, err instanceof Error ? err : undefined);
92
- }
93
- };
94
- }
95
- export function createMapResponseToBlob(metadata) {
96
- return async response => {
97
- try {
98
- return await response.blob();
99
- } catch (err) {
100
- throw new RequestError('serverInvalidBody', {
101
- ...metadata,
102
- ...extractMediaHeaders(response),
103
- statusCode: response.status
104
- }, err instanceof Error ? err : undefined);
105
- }
106
- };
107
- }
108
- export const defaultShouldRetryError = err => {
109
- const statusCode = getStatusCode(err);
110
- return isFetchNetworkError(err) || (statusCode ? statusCode >= 500 : false);
111
- };
112
10
  export const DEFAULT_RETRY_OPTIONS = {
113
11
  startTimeoutInMs: 1000,
114
12
  // 1 second is generally a good timeout to start
@@ -116,116 +14,76 @@ export const DEFAULT_RETRY_OPTIONS = {
116
14
  // Current test delay is 60s, so retries should finish before if a promise takes < 1s
117
15
  factor: 2 // Good for polling, which is out main use case
118
16
  };
119
- export function cloneRequestError(error, extraMetadata) {
120
- const {
121
- reason,
122
- metadata,
123
- innerError
124
- } = error;
125
- return new RequestError(reason, {
126
- ...metadata,
127
- ...extraMetadata
128
- }, innerError);
129
- }
130
- export async function fetchRetry(functionToRetry, metadata, overwriteOptions = {}) {
131
- const options = {
132
- ...DEFAULT_RETRY_OPTIONS,
133
- ...overwriteOptions
134
- };
135
- const {
136
- startTimeoutInMs,
137
- maxAttempts,
138
- factor,
139
- shouldRetryError = defaultShouldRetryError
140
- } = options;
141
- let attempts = 0;
142
- let timeoutInMs = startTimeoutInMs;
143
- let lastError;
144
- const waitAndBumpTimeout = async () => {
145
- await waitPromise(timeoutInMs);
146
- timeoutInMs *= factor;
147
- attempts += 1;
148
- };
149
- while (attempts < maxAttempts) {
150
- try {
151
- return await functionToRetry();
152
- } catch (err) {
153
- lastError = err;
154
17
 
155
- // don't retry if request was aborted by user
156
- if (isAbortedRequestError(err)) {
157
- throw new RequestError('clientAbortedRequest', metadata, err);
158
- }
159
- if (!shouldRetryError(err)) {
160
- throw err;
161
- }
162
- await waitAndBumpTimeout();
163
- }
164
- }
165
- if (isRequestError(lastError)) {
166
- throw cloneRequestError(lastError, {
167
- attempts,
168
- clientExhaustedRetries: true
169
- });
170
- }
171
- throw new RequestError('serverUnexpectedError', {
172
- ...metadata,
173
- attempts,
174
- clientExhaustedRetries: true
175
- }, lastError);
176
- }
177
- export function createRequestErrorReason(statusCode) {
178
- switch (statusCode) {
179
- case 400:
180
- return 'serverBadRequest';
181
- case 401:
182
- return 'serverUnauthorized';
183
- case 403:
184
- return 'serverForbidden';
185
- case 404:
186
- return 'serverNotFound';
187
- case 422:
188
- return 'serverUnprocessableEntity';
189
- case 423:
190
- return 'serverEntityLocked';
191
- case 429:
192
- return 'serverRateLimited';
193
- case 500:
194
- return 'serverInternalError';
195
- case 502:
196
- return 'serverBadGateway';
197
- default:
198
- return 'serverUnexpectedError';
199
- }
200
- }
201
- export function createRequestErrorFromResponse(metadata, response) {
202
- const {
203
- status: statusCode
204
- } = response;
205
- const reason = createRequestErrorReason(statusCode);
206
- return new RequestError(reason, {
207
- ...metadata,
208
- ...extractMediaHeaders(response),
209
- statusCode
210
- });
211
- }
212
- export function createProcessFetchResponse(metadata) {
213
- return response => {
214
- if (response.ok || response.status < 400) {
215
- return response;
216
- }
217
- const requestError = createRequestErrorFromResponse(metadata, response);
218
- throw requestError;
219
- };
220
- }
221
- export function extractMediaHeaders(response) {
222
- const {
223
- headers
224
- } = response;
225
- const mediaRegion = headers.get('x-media-region') || 'unknown';
226
- const mediaEnv = headers.get('x-media-env') || 'unknown';
227
- return {
228
- mediaRegion,
229
- mediaEnv
230
- };
231
- }
18
+ /**
19
+ * @deprecated Use `import { waitPromise } from '@atlaskit/media-client/request/helpers'` instead.
20
+ */
21
+ export { waitPromise } from './waitPromise';
22
+ /**
23
+ * @deprecated Use `import { isAbortedRequestError } from '@atlaskit/media-client'` instead.
24
+ */
25
+ export { isAbortedRequestError } from './isAbortedRequestError';
26
+ /**
27
+ * @deprecated Use `import { isFetchNetworkError } from '@atlaskit/media-client/request/helpers'` instead.
28
+ */
29
+ export { isFetchNetworkError } from './isFetchNetworkError';
30
+ /**
31
+ * @deprecated Use `import { isRateLimitedError } from '@atlaskit/media-client/request'` instead.
32
+ */
33
+ export { isRateLimitedError } from './isRateLimitedError';
34
+ /**
35
+ * @deprecated Use `import { extendTraceContext } from '@atlaskit/media-client/request/helpers'` instead.
36
+ */
37
+ export { extendTraceContext } from './extendTraceContext';
38
+ /**
39
+ * @deprecated Use `import { mapAuthToRequestHeaders } from '@atlaskit/media-client/request/helpers'` instead.
40
+ */
41
+ export { mapAuthToRequestHeaders } from './mapAuthToRequestHeaders';
42
+ /**
43
+ * @deprecated Use `import { createUrl } from '@atlaskit/media-client'` instead.
44
+ */
45
+ export { createUrl } from './createUrl';
46
+ /**
47
+ * @deprecated Use `import { extendHeaders } from '@atlaskit/media-client/request/helpers'` instead.
48
+ */
49
+ export { extendHeaders } from './extendHeaders';
50
+ /**
51
+ * @deprecated Use `import { createMapResponseToJson } from '@atlaskit/media-client/request/helpers'` instead.
52
+ */
53
+ export { createMapResponseToJson } from './createMapResponseToJson';
54
+ /**
55
+ * @deprecated Use `import { createMapResponseToBlob } from '@atlaskit/media-client/request/helpers'` instead.
56
+ */
57
+ export { createMapResponseToBlob } from './createMapResponseToBlob';
58
+ /**
59
+ * @deprecated Use `import { defaultShouldRetryError } from '@atlaskit/media-client/request/helpers'` instead.
60
+ */
61
+ export { defaultShouldRetryError } from './defaultShouldRetryError';
62
+ /**
63
+ * @deprecated Use `import { cloneRequestError } from '@atlaskit/media-client/request/helpers'` instead.
64
+ */
65
+ export { cloneRequestError } from './cloneRequestError';
66
+ /**
67
+ * @deprecated Use `import { fetchRetry } from '@atlaskit/media-client/request/helpers'` instead.
68
+ */
69
+ export { fetchRetry } from './fetchRetry';
70
+ /**
71
+ * @deprecated Use `import { createRequestErrorReason } from '@atlaskit/media-client/request'` instead.
72
+ */
73
+ export { createRequestErrorReason } from './createRequestErrorReason';
74
+ /**
75
+ * @deprecated Use `import { createRequestErrorFromResponse } from '@atlaskit/media-client/request/helpers'` instead.
76
+ */
77
+ export { createRequestErrorFromResponse } from './createRequestErrorFromResponse';
78
+ /**
79
+ * @deprecated Use `import { createProcessFetchResponse } from '@atlaskit/media-client/request/helpers'` instead.
80
+ */
81
+ export { createProcessFetchResponse } from './createProcessFetchResponse';
82
+ /**
83
+ * @deprecated Use `import { extractMediaHeaders } from '@atlaskit/media-client/request/helpers'` instead.
84
+ */
85
+ export { extractMediaHeaders } from './extractMediaHeaders';
86
+ /**
87
+ * @deprecated Use `import { getStatusCode } from '@atlaskit/media-client/request/helpers'` instead.
88
+ */
89
+ export { getStatusCode } from './getStatusCode';
@@ -1,9 +1,30 @@
1
- export { RequestError, isRequestError } from './errors';
2
- export { isRateLimitedError, createRequestErrorReason } from './helpers';
3
- import { createUrl, fetchRetry, createProcessFetchResponse, extendHeaders, isFetchNetworkError, defaultShouldRetryError } from './helpers';
1
+ /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
2
+
3
+ /**
4
+ * @deprecated Use `import { RequestError } from '@atlaskit/media-client/request/errors'` instead.
5
+ */
6
+ export { RequestError } from './RequestError';
7
+ /**
8
+ * @deprecated Use `import { isRequestError } from '@atlaskit/media-client/request/errors'` instead.
9
+ */
10
+ export { isRequestError } from './isRequestError';
11
+ /**
12
+ * @deprecated Use `import { createRequestErrorReason } from '@atlaskit/media-client/request/helpers'` instead.
13
+ */
14
+ export { createRequestErrorReason } from './createRequestErrorReason';
15
+ /**
16
+ * @deprecated Use `import { isRateLimitedError } from '@atlaskit/media-client/request/helpers'` instead.
17
+ */
18
+ export { isRateLimitedError } from './isRateLimitedError';
19
+ import { createProcessFetchResponse } from './createProcessFetchResponse';
20
+ import { createUrl } from './createUrl';
21
+ import { defaultShouldRetryError } from './defaultShouldRetryError';
22
+ import { extendHeaders } from './extendHeaders';
23
+ import { fetchRetry } from './fetchRetry';
24
+ import { isFetchNetworkError } from './isFetchNetworkError';
4
25
  import { fg } from '@atlaskit/platform-feature-flags';
5
- import { mapRetryUrlToPathBasedUrl } from '../pathBasedUrl';
6
26
  import getNavigator from '../getNavigator';
27
+ import { mapRetryUrlToPathBasedUrl } from '../mapRetryUrlToPathBasedUrl';
7
28
  export async function request(url, options = {}, controller) {
8
29
  const {
9
30
  method = 'GET',
@@ -0,0 +1,3 @@
1
+ export function isAbortedRequestError(err) {
2
+ return err instanceof Error && err.message === 'request_cancelled' || !!err && err.name === 'AbortError';
3
+ }
@@ -0,0 +1,4 @@
1
+ // fetch throws TypeError for network errors
2
+ export function isFetchNetworkError(err) {
3
+ return err instanceof TypeError;
4
+ }
@@ -0,0 +1,5 @@
1
+ import { getStatusCode } from './getStatusCode';
2
+ export function isRateLimitedError(error) {
3
+ const statusCode = error && getStatusCode(error);
4
+ return statusCode === 429 || !!error && !!error.message && error.message.includes('429');
5
+ }
@@ -0,0 +1,4 @@
1
+ import { RequestError } from './RequestError';
2
+ export function isRequestError(err) {
3
+ return err instanceof RequestError;
4
+ }
@@ -0,0 +1,16 @@
1
+ import { isClientBasedAuth } from '@atlaskit/media-core';
2
+ export function mapAuthToRequestHeaders(auth) {
3
+ if (!auth) {
4
+ return {};
5
+ }
6
+ if (isClientBasedAuth(auth)) {
7
+ return {
8
+ 'X-Client-Id': auth.clientId,
9
+ Authorization: `Bearer ${auth.token}`
10
+ };
11
+ }
12
+ return {
13
+ 'X-Issuer': auth.asapIssuer,
14
+ Authorization: `Bearer ${auth.token}`
15
+ };
16
+ }
@@ -0,0 +1,3 @@
1
+ export function waitPromise(timeout) {
2
+ return new Promise(resolve => setTimeout(resolve, timeout));
3
+ }
@@ -0,0 +1,3 @@
1
+ export const resolveTimeout = (timeout, resolveWith) => new Promise((resolve, _reject) => {
2
+ setTimeout(resolve, timeout, resolveWith);
3
+ });
@@ -1,65 +1,18 @@
1
- const mediaBlobUrlIdentifier = 'media-blob-url';
2
- export const isMediaBlobUrl = url => {
3
- return url.indexOf(`${mediaBlobUrlIdentifier}=true`) > -1;
4
- };
5
- const getNumberFromParams = (params, name) => {
6
- const value = params.get(name);
7
- return typeof value === 'string' && !isNaN(parseInt(value)) ? parseInt(value) : undefined;
8
- };
9
- const getStringFromParams = (params, name) => {
10
- const value = params.get(name);
11
- if (!value) {
12
- return;
13
- }
14
- return decodeURIComponent(value);
15
- };
16
- export const getAttrsFromUrl = blobUrl => {
17
- const url = new URL(blobUrl);
18
- const hash = url.hash.replace('#', '');
19
- const params = new URLSearchParams(hash);
20
- const id = params.get('id');
21
- const contextId = params.get('contextId');
22
- const clientId = params.get('clientId');
23
- // check if we have the required params (clientId is optional for backwards compatibility)
24
- if (!id || !contextId) {
25
- return;
26
- }
27
- return {
28
- id,
29
- contextId,
30
- clientId: clientId || undefined,
31
- collection: getStringFromParams(params, 'collection'),
32
- alt: getStringFromParams(params, 'alt'),
33
- height: getNumberFromParams(params, 'height'),
34
- width: getNumberFromParams(params, 'width'),
35
- size: getNumberFromParams(params, 'size'),
36
- name: getStringFromParams(params, 'name'),
37
- mimeType: getStringFromParams(params, 'mimeType')
38
- };
39
- };
40
- export const objectToQueryString = json => {
41
- return Object.keys(json).filter(attrName => typeof json[attrName] !== 'undefined' && json[attrName] !== null).map(key => {
42
- const value = json[key];
43
- if (typeof value === 'undefined' || value === null) {
44
- return;
45
- }
46
- return `${encodeURIComponent(key)}=${encodeURIComponent(value.toString())}`;
47
- }).join('&');
48
- };
49
- export const addFileAttrsToUrl = (url, fileAttrs) => {
50
- const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
51
- if (isSafari) {
52
- return url;
53
- }
54
- const mediaIdentifierAttr = {
55
- [mediaBlobUrlIdentifier]: 'true'
56
- };
57
- const mergedAttrs = {
58
- ...mediaIdentifierAttr,
59
- ...fileAttrs
60
- };
61
- const queryAttrs = objectToQueryString(mergedAttrs);
62
-
63
- // we can't use '?' separator for blob url params
64
- return `${url}#${queryAttrs}`;
65
- };
1
+ /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
2
+ export const mediaBlobUrlIdentifier = 'media-blob-url';
3
+ /**
4
+ * @deprecated Use `import { isMediaBlobUrl } from '@atlaskit/media-client'` instead.
5
+ */
6
+ export { isMediaBlobUrl } from './isMediaBlobUrl';
7
+ /**
8
+ * @deprecated Use `import { getAttrsFromUrl } from '@atlaskit/media-client'` instead.
9
+ */
10
+ export { getAttrsFromUrl } from './getAttrsFromUrl';
11
+ /**
12
+ * @deprecated Use `import { objectToQueryString } from '@atlaskit/media-client'` instead.
13
+ */
14
+ export { objectToQueryString } from './objectToQueryString';
15
+ /**
16
+ * @deprecated Use `import { addFileAttrsToUrl } from '@atlaskit/media-client'` instead.
17
+ */
18
+ export { addFileAttrsToUrl } from './addFileAttrsToUrl';
@@ -0,0 +1,47 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/createClass";
4
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
+ import _inherits from "@babel/runtime/helpers/inherits";
7
+ 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; }
8
+ 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) { _defineProperty(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; }
9
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
10
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
11
+ import { BaseMediaClientError } from '../../models/errors/BaseMediaClientError';
12
+ export var FileFetcherError = /*#__PURE__*/function (_BaseMediaClientError) {
13
+ // Legacy Attribute. Should be removed
14
+
15
+ function FileFetcherError(reason, metadata) {
16
+ var _this;
17
+ _classCallCheck(this, FileFetcherError);
18
+ _this = _callSuper(this, FileFetcherError, [reason, metadata, undefined]);
19
+ _this.id = metadata.id;
20
+ return _this;
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 */
25
+ _inherits(FileFetcherError, _BaseMediaClientError);
26
+ return _createClass(FileFetcherError, [{
27
+ key: "attributes",
28
+ get: function get() {
29
+ var reason = this.reason,
30
+ _this$metadata = this.metadata,
31
+ id = _this$metadata.id,
32
+ collectionName = _this$metadata.collectionName,
33
+ occurrenceKey = _this$metadata.occurrenceKey,
34
+ traceContext = _this$metadata.traceContext;
35
+ return _objectSpread({
36
+ reason: reason,
37
+ id: id,
38
+ collectionName: collectionName,
39
+ occurrenceKey: occurrenceKey
40
+ }, traceContext && {
41
+ metadata: {
42
+ traceContext: traceContext
43
+ }
44
+ });
45
+ }
46
+ }]);
47
+ }(BaseMediaClientError);
@@ -1,50 +1,9 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
- import _createClass from "@babel/runtime/helpers/createClass";
4
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
- import _inherits from "@babel/runtime/helpers/inherits";
7
- 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; }
8
- 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) { _defineProperty(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; }
9
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
10
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
11
- import { BaseMediaClientError } from '../../models/errors';
12
- export var FileFetcherError = /*#__PURE__*/function (_BaseMediaClientError) {
13
- // Legacy Attribute. Should be removed
14
-
15
- function FileFetcherError(reason, metadata) {
16
- var _this;
17
- _classCallCheck(this, FileFetcherError);
18
- _this = _callSuper(this, FileFetcherError, [reason, metadata, undefined]);
19
- _this.id = metadata.id;
20
- return _this;
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 */
25
- _inherits(FileFetcherError, _BaseMediaClientError);
26
- return _createClass(FileFetcherError, [{
27
- key: "attributes",
28
- get: function get() {
29
- var reason = this.reason,
30
- _this$metadata = this.metadata,
31
- id = _this$metadata.id,
32
- collectionName = _this$metadata.collectionName,
33
- occurrenceKey = _this$metadata.occurrenceKey,
34
- traceContext = _this$metadata.traceContext;
35
- return _objectSpread({
36
- reason: reason,
37
- id: id,
38
- collectionName: collectionName,
39
- occurrenceKey: occurrenceKey
40
- }, traceContext && {
41
- metadata: {
42
- traceContext: traceContext
43
- }
44
- });
45
- }
46
- }]);
47
- }(BaseMediaClientError);
48
- export function isFileFetcherError(err) {
49
- return err instanceof FileFetcherError;
50
- }
1
+ /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
2
+ /**
3
+ * @deprecated Use `import { FileFetcherError } from '@atlaskit/media-client/file-fetcher'` instead.
4
+ */
5
+ export { FileFetcherError } from './FileFetcherError';
6
+ /**
7
+ * @deprecated Use `import { isFileFetcherError } from '@atlaskit/media-client/file-fetcher'` instead.
8
+ */
9
+ export { isFileFetcherError } from './isFileFetcherError';