@aws-amplify/storage 6.0.28 → 6.0.29-gen2-storage.e54bfa9.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 (194) hide show
  1. package/dist/cjs/errors/types/validation.js +22 -2
  2. package/dist/cjs/errors/types/validation.js.map +1 -1
  3. package/dist/cjs/providers/s3/apis/copy.js +2 -12
  4. package/dist/cjs/providers/s3/apis/copy.js.map +1 -1
  5. package/dist/cjs/providers/s3/apis/downloadData.js +13 -38
  6. package/dist/cjs/providers/s3/apis/downloadData.js.map +1 -1
  7. package/dist/cjs/providers/s3/apis/getProperties.js +2 -11
  8. package/dist/cjs/providers/s3/apis/getProperties.js.map +1 -1
  9. package/dist/cjs/providers/s3/apis/getUrl.js +2 -18
  10. package/dist/cjs/providers/s3/apis/getUrl.js.map +1 -1
  11. package/dist/cjs/providers/s3/apis/internal/copy.js +41 -7
  12. package/dist/cjs/providers/s3/apis/internal/copy.js.map +1 -1
  13. package/dist/cjs/providers/s3/apis/internal/getProperties.js +10 -6
  14. package/dist/cjs/providers/s3/apis/internal/getProperties.js.map +1 -1
  15. package/dist/cjs/providers/s3/apis/internal/getUrl.js +8 -6
  16. package/dist/cjs/providers/s3/apis/internal/getUrl.js.map +1 -1
  17. package/dist/cjs/providers/s3/apis/internal/list.js +86 -16
  18. package/dist/cjs/providers/s3/apis/internal/list.js.map +1 -1
  19. package/dist/cjs/providers/s3/apis/internal/remove.js +20 -7
  20. package/dist/cjs/providers/s3/apis/internal/remove.js.map +1 -1
  21. package/dist/cjs/providers/s3/apis/list.js +4 -4
  22. package/dist/cjs/providers/s3/apis/list.js.map +1 -1
  23. package/dist/cjs/providers/s3/apis/remove.js +2 -9
  24. package/dist/cjs/providers/s3/apis/remove.js.map +1 -1
  25. package/dist/cjs/providers/s3/apis/server/copy.js +4 -4
  26. package/dist/cjs/providers/s3/apis/server/copy.js.map +1 -1
  27. package/dist/cjs/providers/s3/apis/server/getProperties.js +2 -2
  28. package/dist/cjs/providers/s3/apis/server/getProperties.js.map +1 -1
  29. package/dist/cjs/providers/s3/apis/server/getUrl.js +2 -2
  30. package/dist/cjs/providers/s3/apis/server/getUrl.js.map +1 -1
  31. package/dist/cjs/providers/s3/apis/server/list.js +4 -4
  32. package/dist/cjs/providers/s3/apis/server/list.js.map +1 -1
  33. package/dist/cjs/providers/s3/apis/server/remove.js +2 -2
  34. package/dist/cjs/providers/s3/apis/server/remove.js.map +1 -1
  35. package/dist/cjs/providers/s3/apis/uploadData/index.js +4 -50
  36. package/dist/cjs/providers/s3/apis/uploadData/index.js.map +1 -1
  37. package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js +1 -1
  38. package/dist/cjs/providers/s3/apis/uploadData/multipart/initialUpload.js.map +1 -1
  39. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadCache.js +8 -1
  40. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadCache.js.map +1 -1
  41. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js +28 -13
  42. package/dist/cjs/providers/s3/apis/uploadData/multipart/uploadHandlers.js.map +1 -1
  43. package/dist/cjs/providers/s3/apis/uploadData/putObjectJob.js +10 -5
  44. package/dist/cjs/providers/s3/apis/uploadData/putObjectJob.js.map +1 -1
  45. package/dist/cjs/providers/s3/utils/client/utils/parsePayload.js +1 -1
  46. package/dist/cjs/providers/s3/utils/client/utils/parsePayload.js.map +1 -1
  47. package/dist/cjs/providers/s3/utils/constants.js +4 -1
  48. package/dist/cjs/providers/s3/utils/constants.js.map +1 -1
  49. package/dist/cjs/providers/s3/utils/index.js +7 -1
  50. package/dist/cjs/providers/s3/utils/index.js.map +1 -1
  51. package/dist/cjs/providers/s3/utils/isInputWithPath.js +11 -0
  52. package/dist/cjs/providers/s3/utils/isInputWithPath.js.map +1 -0
  53. package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js +2 -1
  54. package/dist/cjs/providers/s3/utils/resolveS3ConfigAndInput.js.map +1 -1
  55. package/dist/cjs/providers/s3/utils/validateStorageOperationInput.js +31 -0
  56. package/dist/cjs/providers/s3/utils/validateStorageOperationInput.js.map +1 -0
  57. package/dist/cjs/providers/s3/utils/validateStorageOperationInputWithPrefix.js +32 -0
  58. package/dist/cjs/providers/s3/utils/validateStorageOperationInputWithPrefix.js.map +1 -0
  59. package/dist/esm/errors/types/validation.d.ts +7 -2
  60. package/dist/esm/errors/types/validation.mjs +22 -2
  61. package/dist/esm/errors/types/validation.mjs.map +1 -1
  62. package/dist/esm/index.d.ts +2 -2
  63. package/dist/esm/providers/s3/apis/copy.d.ts +22 -9
  64. package/dist/esm/providers/s3/apis/copy.mjs +2 -12
  65. package/dist/esm/providers/s3/apis/copy.mjs.map +1 -1
  66. package/dist/esm/providers/s3/apis/downloadData.d.ts +41 -7
  67. package/dist/esm/providers/s3/apis/downloadData.mjs +15 -39
  68. package/dist/esm/providers/s3/apis/downloadData.mjs.map +1 -1
  69. package/dist/esm/providers/s3/apis/getProperties.d.ts +18 -5
  70. package/dist/esm/providers/s3/apis/getProperties.mjs +2 -11
  71. package/dist/esm/providers/s3/apis/getProperties.mjs.map +1 -1
  72. package/dist/esm/providers/s3/apis/getUrl.d.ts +27 -7
  73. package/dist/esm/providers/s3/apis/getUrl.mjs +2 -18
  74. package/dist/esm/providers/s3/apis/getUrl.mjs.map +1 -1
  75. package/dist/esm/providers/s3/apis/internal/copy.d.ts +4 -2
  76. package/dist/esm/providers/s3/apis/internal/copy.mjs +41 -6
  77. package/dist/esm/providers/s3/apis/internal/copy.mjs.map +1 -1
  78. package/dist/esm/providers/s3/apis/internal/getProperties.d.ts +2 -2
  79. package/dist/esm/providers/s3/apis/internal/getProperties.mjs +11 -6
  80. package/dist/esm/providers/s3/apis/internal/getProperties.mjs.map +1 -1
  81. package/dist/esm/providers/s3/apis/internal/getUrl.d.ts +2 -2
  82. package/dist/esm/providers/s3/apis/internal/getUrl.mjs +10 -7
  83. package/dist/esm/providers/s3/apis/internal/getUrl.mjs.map +1 -1
  84. package/dist/esm/providers/s3/apis/internal/list.d.ts +2 -2
  85. package/dist/esm/providers/s3/apis/internal/list.mjs +87 -16
  86. package/dist/esm/providers/s3/apis/internal/list.mjs.map +1 -1
  87. package/dist/esm/providers/s3/apis/internal/remove.d.ts +2 -2
  88. package/dist/esm/providers/s3/apis/internal/remove.mjs +21 -7
  89. package/dist/esm/providers/s3/apis/internal/remove.mjs.map +1 -1
  90. package/dist/esm/providers/s3/apis/list.d.ts +39 -22
  91. package/dist/esm/providers/s3/apis/list.mjs +2 -2
  92. package/dist/esm/providers/s3/apis/list.mjs.map +1 -1
  93. package/dist/esm/providers/s3/apis/remove.d.ts +18 -5
  94. package/dist/esm/providers/s3/apis/remove.mjs +2 -9
  95. package/dist/esm/providers/s3/apis/remove.mjs.map +1 -1
  96. package/dist/esm/providers/s3/apis/server/copy.d.ts +27 -2
  97. package/dist/esm/providers/s3/apis/server/copy.mjs +2 -2
  98. package/dist/esm/providers/s3/apis/server/copy.mjs.map +1 -1
  99. package/dist/esm/providers/s3/apis/server/getProperties.d.ts +26 -2
  100. package/dist/esm/providers/s3/apis/server/getProperties.mjs +2 -2
  101. package/dist/esm/providers/s3/apis/server/getProperties.mjs.map +1 -1
  102. package/dist/esm/providers/s3/apis/server/getUrl.d.ts +40 -2
  103. package/dist/esm/providers/s3/apis/server/getUrl.mjs +2 -2
  104. package/dist/esm/providers/s3/apis/server/getUrl.mjs.map +1 -1
  105. package/dist/esm/providers/s3/apis/server/list.d.ts +41 -22
  106. package/dist/esm/providers/s3/apis/server/list.mjs +2 -2
  107. package/dist/esm/providers/s3/apis/server/list.mjs.map +1 -1
  108. package/dist/esm/providers/s3/apis/server/remove.d.ts +24 -2
  109. package/dist/esm/providers/s3/apis/server/remove.mjs +2 -2
  110. package/dist/esm/providers/s3/apis/server/remove.mjs.map +1 -1
  111. package/dist/esm/providers/s3/apis/uploadData/index.d.ts +64 -7
  112. package/dist/esm/providers/s3/apis/uploadData/index.mjs +4 -50
  113. package/dist/esm/providers/s3/apis/uploadData/index.mjs.map +1 -1
  114. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.d.ts +2 -2
  115. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs +1 -1
  116. package/dist/esm/providers/s3/apis/uploadData/multipart/initialUpload.mjs.map +1 -1
  117. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.d.ts +1 -1
  118. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.mjs +8 -1
  119. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadCache.mjs.map +1 -1
  120. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.d.ts +4 -4
  121. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs +30 -14
  122. package/dist/esm/providers/s3/apis/uploadData/multipart/uploadHandlers.mjs.map +1 -1
  123. package/dist/esm/providers/s3/apis/uploadData/putObjectJob.d.ts +3 -3
  124. package/dist/esm/providers/s3/apis/uploadData/putObjectJob.mjs +11 -5
  125. package/dist/esm/providers/s3/apis/uploadData/putObjectJob.mjs.map +1 -1
  126. package/dist/esm/providers/s3/index.d.ts +2 -2
  127. package/dist/esm/providers/s3/types/index.d.ts +3 -3
  128. package/dist/esm/providers/s3/types/inputs.d.ts +51 -11
  129. package/dist/esm/providers/s3/types/options.d.ts +41 -10
  130. package/dist/esm/providers/s3/types/outputs.d.ts +68 -13
  131. package/dist/esm/providers/s3/utils/client/utils/parsePayload.mjs +1 -1
  132. package/dist/esm/providers/s3/utils/client/utils/parsePayload.mjs.map +1 -1
  133. package/dist/esm/providers/s3/utils/constants.d.ts +3 -0
  134. package/dist/esm/providers/s3/utils/constants.mjs +4 -1
  135. package/dist/esm/providers/s3/utils/constants.mjs.map +1 -1
  136. package/dist/esm/providers/s3/utils/index.d.ts +3 -0
  137. package/dist/esm/providers/s3/utils/index.mjs +3 -0
  138. package/dist/esm/providers/s3/utils/index.mjs.map +1 -1
  139. package/dist/esm/providers/s3/utils/isInputWithPath.d.ts +2 -0
  140. package/dist/esm/providers/s3/utils/isInputWithPath.mjs +8 -0
  141. package/dist/esm/providers/s3/utils/isInputWithPath.mjs.map +1 -0
  142. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.d.ts +2 -1
  143. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs +2 -1
  144. package/dist/esm/providers/s3/utils/resolveS3ConfigAndInput.mjs.map +1 -1
  145. package/dist/esm/providers/s3/utils/validateStorageOperationInput.d.ts +5 -0
  146. package/dist/esm/providers/s3/utils/validateStorageOperationInput.mjs +29 -0
  147. package/dist/esm/providers/s3/utils/validateStorageOperationInput.mjs.map +1 -0
  148. package/dist/esm/providers/s3/utils/validateStorageOperationInputWithPrefix.d.ts +5 -0
  149. package/dist/esm/providers/s3/utils/validateStorageOperationInputWithPrefix.mjs +30 -0
  150. package/dist/esm/providers/s3/utils/validateStorageOperationInputWithPrefix.mjs.map +1 -0
  151. package/dist/esm/types/index.d.ts +2 -2
  152. package/dist/esm/types/inputs.d.ts +41 -13
  153. package/dist/esm/types/options.d.ts +1 -0
  154. package/dist/esm/types/outputs.d.ts +26 -6
  155. package/package.json +107 -107
  156. package/src/errors/types/validation.ts +23 -2
  157. package/src/index.ts +16 -0
  158. package/src/providers/s3/apis/copy.ts +30 -11
  159. package/src/providers/s3/apis/downloadData.ts +78 -19
  160. package/src/providers/s3/apis/getProperties.ts +31 -8
  161. package/src/providers/s3/apis/getUrl.ts +37 -10
  162. package/src/providers/s3/apis/internal/copy.ts +89 -8
  163. package/src/providers/s3/apis/internal/getProperties.ts +27 -12
  164. package/src/providers/s3/apis/internal/getUrl.ts +28 -14
  165. package/src/providers/s3/apis/internal/list.ts +135 -29
  166. package/src/providers/s3/apis/internal/remove.ts +36 -13
  167. package/src/providers/s3/apis/list.ts +54 -26
  168. package/src/providers/s3/apis/remove.ts +28 -7
  169. package/src/providers/s3/apis/server/copy.ts +42 -5
  170. package/src/providers/s3/apis/server/getProperties.ts +41 -4
  171. package/src/providers/s3/apis/server/getUrl.ts +55 -4
  172. package/src/providers/s3/apis/server/list.ts +64 -32
  173. package/src/providers/s3/apis/server/remove.ts +39 -4
  174. package/src/providers/s3/apis/uploadData/index.ts +77 -8
  175. package/src/providers/s3/apis/uploadData/multipart/initialUpload.ts +4 -3
  176. package/src/providers/s3/apis/uploadData/multipart/uploadCache.ts +11 -2
  177. package/src/providers/s3/apis/uploadData/multipart/uploadHandlers.ts +50 -20
  178. package/src/providers/s3/apis/uploadData/putObjectJob.ts +23 -9
  179. package/src/providers/s3/index.ts +16 -0
  180. package/src/providers/s3/types/index.ts +37 -14
  181. package/src/providers/s3/types/inputs.ts +95 -26
  182. package/src/providers/s3/types/options.ts +73 -27
  183. package/src/providers/s3/types/outputs.ts +80 -13
  184. package/src/providers/s3/utils/client/utils/parsePayload.ts +1 -1
  185. package/src/providers/s3/utils/constants.ts +4 -0
  186. package/src/providers/s3/utils/index.ts +3 -0
  187. package/src/providers/s3/utils/isInputWithPath.ts +13 -0
  188. package/src/providers/s3/utils/resolveS3ConfigAndInput.ts +3 -2
  189. package/src/providers/s3/utils/validateStorageOperationInput.ts +39 -0
  190. package/src/providers/s3/utils/validateStorageOperationInputWithPrefix.ts +46 -0
  191. package/src/types/index.ts +16 -8
  192. package/src/types/inputs.ts +73 -20
  193. package/src/types/options.ts +1 -0
  194. package/src/types/outputs.ts +29 -6
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","sources":["../../../../../src/providers/s3/utils/constants.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const LOCAL_TESTING_S3_ENDPOINT = 'http://localhost:20005';\nexport const DEFAULT_ACCESS_LEVEL = 'guest';\nexport const DEFAULT_PRESIGN_EXPIRATION = 900;\nexport const MAX_URL_EXPIRATION = 7 * 24 * 60 * 60 * 1000;\nconst MiB = 1024 * 1024;\nconst GiB = 1024 * MiB;\nconst TiB = 1024 * GiB;\nexport const DEFAULT_PART_SIZE = 5 * MiB;\nexport const MAX_OBJECT_SIZE = 5 * TiB;\nexport const MAX_PARTS_COUNT = 10000;\nexport const DEFAULT_QUEUE_SIZE = 4;\nexport const UPLOADS_STORAGE_KEY = '__uploadInProgress';\n"],"names":[],"mappings":"AAAA;AACA;AACY,MAAC,yBAAyB,GAAG,yBAAyB;AACtD,MAAC,oBAAoB,GAAG,QAAQ;AAChC,MAAC,0BAA0B,GAAG,IAAI;AAClC,MAAC,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK;AAC1D,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AACxB,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACvB,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACX,MAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI;AAC7B,MAAC,eAAe,GAAG,CAAC,GAAG,IAAI;AAC3B,MAAC,eAAe,GAAG,MAAM;AACzB,MAAC,kBAAkB,GAAG,EAAE;AACxB,MAAC,mBAAmB,GAAG;;;;"}
1
+ {"version":3,"file":"constants.mjs","sources":["../../../../../src/providers/s3/utils/constants.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const LOCAL_TESTING_S3_ENDPOINT = 'http://localhost:20005';\nexport const DEFAULT_ACCESS_LEVEL = 'guest';\nexport const DEFAULT_PRESIGN_EXPIRATION = 900;\nexport const MAX_URL_EXPIRATION = 7 * 24 * 60 * 60 * 1000;\nconst MiB = 1024 * 1024;\nconst GiB = 1024 * MiB;\nconst TiB = 1024 * GiB;\nexport const DEFAULT_PART_SIZE = 5 * MiB;\nexport const MAX_OBJECT_SIZE = 5 * TiB;\nexport const MAX_PARTS_COUNT = 10000;\nexport const DEFAULT_QUEUE_SIZE = 4;\nexport const UPLOADS_STORAGE_KEY = '__uploadInProgress';\nexport const STORAGE_INPUT_PREFIX = 'prefix';\nexport const STORAGE_INPUT_KEY = 'key';\nexport const STORAGE_INPUT_PATH = 'path';\n"],"names":[],"mappings":"AAAA;AACA;AACY,MAAC,yBAAyB,GAAG,yBAAyB;AACtD,MAAC,oBAAoB,GAAG,QAAQ;AAChC,MAAC,0BAA0B,GAAG,IAAI;AAClC,MAAC,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK;AAC1D,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AACxB,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACvB,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AACX,MAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI;AAC7B,MAAC,eAAe,GAAG,CAAC,GAAG,IAAI;AAC3B,MAAC,eAAe,GAAG,MAAM;AACzB,MAAC,kBAAkB,GAAG,EAAE;AACxB,MAAC,mBAAmB,GAAG,qBAAqB;AAC5C,MAAC,oBAAoB,GAAG,SAAS;AACjC,MAAC,iBAAiB,GAAG,MAAM;AAC3B,MAAC,kBAAkB,GAAG;;;;"}
@@ -1,3 +1,6 @@
1
1
  export { calculateContentMd5 } from './md5';
2
2
  export { resolveS3ConfigAndInput } from './resolveS3ConfigAndInput';
3
3
  export { createDownloadTask, createUploadTask } from './transferTask';
4
+ export { validateStorageOperationInput } from './validateStorageOperationInput';
5
+ export { validateStorageOperationInputWithPrefix } from './validateStorageOperationInputWithPrefix';
6
+ export { isInputWithPath } from './isInputWithPath';
@@ -1,4 +1,7 @@
1
1
  export { calculateContentMd5 } from './md5.mjs';
2
2
  export { resolveS3ConfigAndInput } from './resolveS3ConfigAndInput.mjs';
3
3
  export { createDownloadTask, createUploadTask } from './transferTask.mjs';
4
+ export { validateStorageOperationInput } from './validateStorageOperationInput.mjs';
5
+ export { validateStorageOperationInputWithPrefix } from './validateStorageOperationInputWithPrefix.mjs';
6
+ export { isInputWithPath } from './isInputWithPath.mjs';
4
7
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,2 @@
1
+ import { StorageOperationInput, StorageOperationInputWithPath } from '../../../types/inputs';
2
+ export declare const isInputWithPath: (input: StorageOperationInput) => input is StorageOperationInputWithPath;
@@ -0,0 +1,8 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ const isInputWithPath = (input) => {
4
+ return input.path !== undefined;
5
+ };
6
+
7
+ export { isInputWithPath };
8
+ //# sourceMappingURL=isInputWithPath.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isInputWithPath.mjs","sources":["../../../../../src/providers/s3/utils/isInputWithPath.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const isInputWithPath = (input) => {\n return input.path !== undefined;\n};\n"],"names":[],"mappings":"AAAA;AACA;AACY,MAAC,eAAe,GAAG,CAAC,KAAK,KAAK;AAC1C,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;AACpC;;;;"}
@@ -10,6 +10,7 @@ interface ResolvedS3ConfigAndInput {
10
10
  bucket: string;
11
11
  keyPrefix: string;
12
12
  isObjectLockEnabled?: boolean;
13
+ identityId?: string;
13
14
  }
14
15
  /**
15
16
  * resolve the common input options for S3 API handlers from Amplify configuration and library options.
@@ -17,7 +18,7 @@ interface ResolvedS3ConfigAndInput {
17
18
  * @param {AmplifyClassV6} amplify The Amplify instance.
18
19
  * @param {S3ApiOptions} apiOptions The input options for S3 provider.
19
20
  * @returns {Promise<ResolvedS3ConfigAndInput>} The resolved common input options for S3 API handlers.
20
- * @throws A {@link StorageError} with `error.name` from {@link StorageValidationErrorCode} indicating invalid
21
+ * @throws A `StorageError` with `error.name` from `StorageValidationErrorCode` indicating invalid
21
22
  * configurations or Amplify library options.
22
23
  *
23
24
  * @internal
@@ -11,7 +11,7 @@ import { DEFAULT_ACCESS_LEVEL, LOCAL_TESTING_S3_ENDPOINT } from './constants.mjs
11
11
  * @param {AmplifyClassV6} amplify The Amplify instance.
12
12
  * @param {S3ApiOptions} apiOptions The input options for S3 provider.
13
13
  * @returns {Promise<ResolvedS3ConfigAndInput>} The resolved common input options for S3 API handlers.
14
- * @throws A {@link StorageError} with `error.name` from {@link StorageValidationErrorCode} indicating invalid
14
+ * @throws A `StorageError` with `error.name` from `StorageValidationErrorCode` indicating invalid
15
15
  * configurations or Amplify library options.
16
16
  *
17
17
  * @internal
@@ -48,6 +48,7 @@ const resolveS3ConfigAndInput = async (amplify, apiOptions) => {
48
48
  },
49
49
  bucket,
50
50
  keyPrefix,
51
+ identityId,
51
52
  isObjectLockEnabled,
52
53
  };
53
54
  };
@@ -1 +1 @@
1
- {"version":3,"file":"resolveS3ConfigAndInput.mjs","sources":["../../../../../src/providers/s3/utils/resolveS3ConfigAndInput.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { StorageValidationErrorCode } from '../../../errors/types/validation';\nimport { resolvePrefix as defaultPrefixResolver } from '../../../utils/resolvePrefix';\nimport { DEFAULT_ACCESS_LEVEL, LOCAL_TESTING_S3_ENDPOINT } from './constants';\n/**\n * resolve the common input options for S3 API handlers from Amplify configuration and library options.\n *\n * @param {AmplifyClassV6} amplify The Amplify instance.\n * @param {S3ApiOptions} apiOptions The input options for S3 provider.\n * @returns {Promise<ResolvedS3ConfigAndInput>} The resolved common input options for S3 API handlers.\n * @throws A {@link StorageError} with `error.name` from {@link StorageValidationErrorCode} indicating invalid\n * configurations or Amplify library options.\n *\n * @internal\n */\nexport const resolveS3ConfigAndInput = async (amplify, apiOptions) => {\n // identityId is always cached in memory if forceRefresh is not set. So we can safely make calls here.\n const { credentials, identityId } = await amplify.Auth.fetchAuthSession({\n forceRefresh: false,\n });\n assertValidationError(!!credentials, StorageValidationErrorCode.NoCredentials);\n assertValidationError(!!identityId, StorageValidationErrorCode.NoIdentityId);\n const { bucket, region, dangerouslyConnectToHttpEndpointForTesting } = amplify.getConfig()?.Storage?.S3 ?? {};\n assertValidationError(!!bucket, StorageValidationErrorCode.NoBucket);\n assertValidationError(!!region, StorageValidationErrorCode.NoRegion);\n const { defaultAccessLevel, prefixResolver = defaultPrefixResolver, isObjectLockEnabled, } = amplify.libraryOptions?.Storage?.S3 ?? {};\n const keyPrefix = await prefixResolver({\n accessLevel: apiOptions?.accessLevel ?? defaultAccessLevel ?? DEFAULT_ACCESS_LEVEL,\n // use conditional assign to make tsc happy because StorageOptions is a union type that may not have targetIdentityId\n targetIdentityId: apiOptions?.accessLevel === 'protected'\n ? apiOptions?.targetIdentityId ?? identityId\n : identityId,\n });\n return {\n s3Config: {\n credentials,\n region,\n useAccelerateEndpoint: apiOptions?.useAccelerateEndpoint,\n ...(dangerouslyConnectToHttpEndpointForTesting\n ? {\n customEndpoint: LOCAL_TESTING_S3_ENDPOINT,\n forcePathStyle: true,\n }\n : {}),\n },\n bucket,\n keyPrefix,\n isObjectLockEnabled,\n };\n};\n"],"names":["defaultPrefixResolver"],"mappings":";;;;;AAAA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,uBAAuB,GAAG,OAAO,OAAO,EAAE,UAAU,KAAK;AACtE;AACA,IAAI,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC5E,QAAQ,YAAY,EAAE,KAAK;AAC3B,KAAK,CAAC,CAAC;AACP,IAAI,qBAAqB,CAAC,CAAC,CAAC,WAAW,EAAE,0BAA0B,CAAC,aAAa,CAAC,CAAC;AACnF,IAAI,qBAAqB,CAAC,CAAC,CAAC,UAAU,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;AACjF,IAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,0CAA0C,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC;AAClH,IAAI,qBAAqB,CAAC,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AACzE,IAAI,qBAAqB,CAAC,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AACzE,IAAI,MAAM,EAAE,kBAAkB,EAAE,cAAc,GAAGA,aAAqB,EAAE,mBAAmB,GAAG,GAAG,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3I,IAAI,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC;AAC3C,QAAQ,WAAW,EAAE,UAAU,EAAE,WAAW,IAAI,kBAAkB,IAAI,oBAAoB;AAC1F;AACA,QAAQ,gBAAgB,EAAE,UAAU,EAAE,WAAW,KAAK,WAAW;AACjE,cAAc,UAAU,EAAE,gBAAgB,IAAI,UAAU;AACxD,cAAc,UAAU;AACxB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE;AAClB,YAAY,WAAW;AACvB,YAAY,MAAM;AAClB,YAAY,qBAAqB,EAAE,UAAU,EAAE,qBAAqB;AACpE,YAAY,IAAI,0CAA0C;AAC1D,kBAAkB;AAClB,oBAAoB,cAAc,EAAE,yBAAyB;AAC7D,oBAAoB,cAAc,EAAE,IAAI;AACxC,iBAAiB;AACjB,kBAAkB,EAAE;AACpB,SAAS;AACT,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,mBAAmB;AAC3B,KAAK,CAAC;AACN;;;;"}
1
+ {"version":3,"file":"resolveS3ConfigAndInput.mjs","sources":["../../../../../src/providers/s3/utils/resolveS3ConfigAndInput.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { StorageValidationErrorCode } from '../../../errors/types/validation';\nimport { resolvePrefix as defaultPrefixResolver } from '../../../utils/resolvePrefix';\nimport { DEFAULT_ACCESS_LEVEL, LOCAL_TESTING_S3_ENDPOINT } from './constants';\n/**\n * resolve the common input options for S3 API handlers from Amplify configuration and library options.\n *\n * @param {AmplifyClassV6} amplify The Amplify instance.\n * @param {S3ApiOptions} apiOptions The input options for S3 provider.\n * @returns {Promise<ResolvedS3ConfigAndInput>} The resolved common input options for S3 API handlers.\n * @throws A `StorageError` with `error.name` from `StorageValidationErrorCode` indicating invalid\n * configurations or Amplify library options.\n *\n * @internal\n */\nexport const resolveS3ConfigAndInput = async (amplify, apiOptions) => {\n // identityId is always cached in memory if forceRefresh is not set. So we can safely make calls here.\n const { credentials, identityId } = await amplify.Auth.fetchAuthSession({\n forceRefresh: false,\n });\n assertValidationError(!!credentials, StorageValidationErrorCode.NoCredentials);\n assertValidationError(!!identityId, StorageValidationErrorCode.NoIdentityId);\n const { bucket, region, dangerouslyConnectToHttpEndpointForTesting } = amplify.getConfig()?.Storage?.S3 ?? {};\n assertValidationError(!!bucket, StorageValidationErrorCode.NoBucket);\n assertValidationError(!!region, StorageValidationErrorCode.NoRegion);\n const { defaultAccessLevel, prefixResolver = defaultPrefixResolver, isObjectLockEnabled, } = amplify.libraryOptions?.Storage?.S3 ?? {};\n const keyPrefix = await prefixResolver({\n accessLevel: apiOptions?.accessLevel ?? defaultAccessLevel ?? DEFAULT_ACCESS_LEVEL,\n // use conditional assign to make tsc happy because StorageOptions is a union type that may not have targetIdentityId\n targetIdentityId: apiOptions?.accessLevel === 'protected'\n ? apiOptions?.targetIdentityId ?? identityId\n : identityId,\n });\n return {\n s3Config: {\n credentials,\n region,\n useAccelerateEndpoint: apiOptions?.useAccelerateEndpoint,\n ...(dangerouslyConnectToHttpEndpointForTesting\n ? {\n customEndpoint: LOCAL_TESTING_S3_ENDPOINT,\n forcePathStyle: true,\n }\n : {}),\n },\n bucket,\n keyPrefix,\n identityId,\n isObjectLockEnabled,\n };\n};\n"],"names":["defaultPrefixResolver"],"mappings":";;;;;AAAA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,uBAAuB,GAAG,OAAO,OAAO,EAAE,UAAU,KAAK;AACtE;AACA,IAAI,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC5E,QAAQ,YAAY,EAAE,KAAK;AAC3B,KAAK,CAAC,CAAC;AACP,IAAI,qBAAqB,CAAC,CAAC,CAAC,WAAW,EAAE,0BAA0B,CAAC,aAAa,CAAC,CAAC;AACnF,IAAI,qBAAqB,CAAC,CAAC,CAAC,UAAU,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;AACjF,IAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,0CAA0C,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC;AAClH,IAAI,qBAAqB,CAAC,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AACzE,IAAI,qBAAqB,CAAC,CAAC,CAAC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AACzE,IAAI,MAAM,EAAE,kBAAkB,EAAE,cAAc,GAAGA,aAAqB,EAAE,mBAAmB,GAAG,GAAG,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3I,IAAI,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC;AAC3C,QAAQ,WAAW,EAAE,UAAU,EAAE,WAAW,IAAI,kBAAkB,IAAI,oBAAoB;AAC1F;AACA,QAAQ,gBAAgB,EAAE,UAAU,EAAE,WAAW,KAAK,WAAW;AACjE,cAAc,UAAU,EAAE,gBAAgB,IAAI,UAAU;AACxD,cAAc,UAAU;AACxB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE;AAClB,YAAY,WAAW;AACvB,YAAY,MAAM;AAClB,YAAY,qBAAqB,EAAE,UAAU,EAAE,qBAAqB;AACpE,YAAY,IAAI,0CAA0C;AAC1D,kBAAkB;AAClB,oBAAoB,cAAc,EAAE,yBAAyB;AAC7D,oBAAoB,cAAc,EAAE,IAAI;AACxC,iBAAiB;AACjB,kBAAkB,EAAE;AACpB,SAAS;AACT,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,UAAU;AAClB,QAAQ,mBAAmB;AAC3B,KAAK,CAAC;AACN;;;;"}
@@ -0,0 +1,5 @@
1
+ import { StorageOperationInput as Input } from '../../../types/inputs';
2
+ export declare const validateStorageOperationInput: (input: Input, identityId?: string) => {
3
+ inputType: string;
4
+ objectKey: string;
5
+ };
@@ -0,0 +1,29 @@
1
+ import { assertValidationError } from '../../../errors/utils/assertValidationError.mjs';
2
+ import { StorageValidationErrorCode } from '../../../errors/types/validation.mjs';
3
+ import { isInputWithPath } from './isInputWithPath.mjs';
4
+ import { STORAGE_INPUT_PATH, STORAGE_INPUT_KEY } from './constants.mjs';
5
+
6
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
+ // SPDX-License-Identifier: Apache-2.0
8
+ const validateStorageOperationInput = (input, identityId) => {
9
+ assertValidationError(
10
+ // Key present without a path
11
+ (!!input.key && !input.path) ||
12
+ // Path present without a key
13
+ (!input.key && !!input.path), StorageValidationErrorCode.InvalidStorageOperationInput);
14
+ if (isInputWithPath(input)) {
15
+ const { path } = input;
16
+ const objectKey = typeof path === 'string' ? path : path({ identityId });
17
+ assertValidationError(!objectKey.startsWith('/'), StorageValidationErrorCode.InvalidStoragePathInput);
18
+ return {
19
+ inputType: STORAGE_INPUT_PATH,
20
+ objectKey,
21
+ };
22
+ }
23
+ else {
24
+ return { inputType: STORAGE_INPUT_KEY, objectKey: input.key };
25
+ }
26
+ };
27
+
28
+ export { validateStorageOperationInput };
29
+ //# sourceMappingURL=validateStorageOperationInput.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateStorageOperationInput.mjs","sources":["../../../../../src/providers/s3/utils/validateStorageOperationInput.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { StorageValidationErrorCode } from '../../../errors/types/validation';\nimport { isInputWithPath } from './isInputWithPath';\nimport { STORAGE_INPUT_KEY, STORAGE_INPUT_PATH } from './constants';\nexport const validateStorageOperationInput = (input, identityId) => {\n assertValidationError(\n // Key present without a path\n (!!input.key && !input.path) ||\n // Path present without a key\n (!input.key && !!input.path), StorageValidationErrorCode.InvalidStorageOperationInput);\n if (isInputWithPath(input)) {\n const { path } = input;\n const objectKey = typeof path === 'string' ? path : path({ identityId });\n assertValidationError(!objectKey.startsWith('/'), StorageValidationErrorCode.InvalidStoragePathInput);\n return {\n inputType: STORAGE_INPUT_PATH,\n objectKey,\n };\n }\n else {\n return { inputType: STORAGE_INPUT_KEY, objectKey: input.key };\n }\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAKY,MAAC,6BAA6B,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK;AACpE,IAAI,qBAAqB;AACzB;AACA,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;AAC/B;AACA,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,0BAA0B,CAAC,4BAA4B,CAAC,CAAC;AAC/F,IAAI,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;AAChC,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAC/B,QAAQ,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;AACjF,QAAQ,qBAAqB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;AAC9G,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,kBAAkB;AACzC,YAAY,SAAS;AACrB,SAAS,CAAC;AACV,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AACtE,KAAK;AACL;;;;"}
@@ -0,0 +1,5 @@
1
+ import { StorageOperationInputWithPrefixPath } from '../../../types/inputs';
2
+ export declare const validateStorageOperationInputWithPrefix: (input: StorageOperationInputWithPrefixPath, identityId?: string) => {
3
+ inputType: string;
4
+ objectKey: string;
5
+ };
@@ -0,0 +1,30 @@
1
+ import { assertValidationError } from '../../../errors/utils/assertValidationError.mjs';
2
+ import { StorageValidationErrorCode } from '../../../errors/types/validation.mjs';
3
+ import { STORAGE_INPUT_PATH, STORAGE_INPUT_PREFIX } from './constants.mjs';
4
+
5
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
6
+ // SPDX-License-Identifier: Apache-2.0
7
+ // Local assertion function with StorageOperationInputWithPrefixPath as Input
8
+ const _isInputWithPath = (input) => {
9
+ return input.path !== undefined;
10
+ };
11
+ const validateStorageOperationInputWithPrefix = (input, identityId) => {
12
+ // Validate prefix & path not present at the same time
13
+ assertValidationError(!(input.prefix && input.path), StorageValidationErrorCode.InvalidStorageOperationPrefixInput);
14
+ if (_isInputWithPath(input)) {
15
+ const { path } = input;
16
+ const objectKey = typeof path === 'string' ? path : path({ identityId });
17
+ // Assert on no leading slash in the path parameter
18
+ assertValidationError(!objectKey.startsWith('/'), StorageValidationErrorCode.InvalidStoragePathInput);
19
+ return {
20
+ inputType: STORAGE_INPUT_PATH,
21
+ objectKey,
22
+ };
23
+ }
24
+ else {
25
+ return { inputType: STORAGE_INPUT_PREFIX, objectKey: input.prefix ?? '' };
26
+ }
27
+ };
28
+
29
+ export { validateStorageOperationInputWithPrefix };
30
+ //# sourceMappingURL=validateStorageOperationInputWithPrefix.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateStorageOperationInputWithPrefix.mjs","sources":["../../../../../src/providers/s3/utils/validateStorageOperationInputWithPrefix.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { StorageValidationErrorCode } from '../../../errors/types/validation';\nimport { STORAGE_INPUT_PATH, STORAGE_INPUT_PREFIX } from './constants';\n// Local assertion function with StorageOperationInputWithPrefixPath as Input\nconst _isInputWithPath = (input) => {\n return input.path !== undefined;\n};\nexport const validateStorageOperationInputWithPrefix = (input, identityId) => {\n // Validate prefix & path not present at the same time\n assertValidationError(!(input.prefix && input.path), StorageValidationErrorCode.InvalidStorageOperationPrefixInput);\n if (_isInputWithPath(input)) {\n const { path } = input;\n const objectKey = typeof path === 'string' ? path : path({ identityId });\n // Assert on no leading slash in the path parameter\n assertValidationError(!objectKey.startsWith('/'), StorageValidationErrorCode.InvalidStoragePathInput);\n return {\n inputType: STORAGE_INPUT_PATH,\n objectKey,\n };\n }\n else {\n return { inputType: STORAGE_INPUT_PREFIX, objectKey: input.prefix ?? '' };\n }\n};\n"],"names":[],"mappings":";;;;AAAA;AACA;AAIA;AACA,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK;AACpC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;AACpC,CAAC,CAAC;AACU,MAAC,uCAAuC,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK;AAC9E;AACA,IAAI,qBAAqB,CAAC,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,0BAA0B,CAAC,kCAAkC,CAAC,CAAC;AACxH,IAAI,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;AACjC,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAC/B,QAAQ,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;AACjF;AACA,QAAQ,qBAAqB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;AAC9G,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,kBAAkB;AACzC,YAAY,SAAS;AACrB,SAAS,CAAC;AACV,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;AAClF,KAAK;AACL;;;;"}
@@ -1,4 +1,4 @@
1
1
  export { DownloadTask, TransferProgressEvent, TransferTaskState, UploadTask, } from './common';
2
- export { StorageOperationInput, StorageListInput, StorageGetPropertiesInput, StorageRemoveInput, StorageDownloadDataInput, StorageUploadDataInput, StorageCopyInput, StorageGetUrlInput, StorageUploadDataPayload, } from './inputs';
2
+ export { StorageGetPropertiesInputWithKey, StorageGetPropertiesInputWithPath, StorageListInputWithPrefix, StorageListInputWithPath, StorageRemoveInputWithPath, StorageRemoveInputWithKey, StorageDownloadDataInputWithKey, StorageDownloadDataInputWithPath, StorageUploadDataInputWithKey, StorageUploadDataInputWithPath, StorageCopyInputWithKey, StorageCopyInputWithPath, StorageGetUrlInputWithKey, StorageGetUrlInputWithPath, StorageUploadDataPayload, } from './inputs';
3
3
  export { StorageOptions, StorageRemoveOptions, StorageListAllOptions, StorageListPaginateOptions, } from './options';
4
- export { StorageItem, StorageListOutput, StorageDownloadDataOutput, StorageGetUrlOutput, StorageUploadOutput, } from './outputs';
4
+ export { StorageItem, StorageItemWithKey, StorageItemWithPath, StorageListOutput, StorageDownloadDataOutput, StorageGetUrlOutput, StorageUploadOutput, } from './outputs';
@@ -1,27 +1,55 @@
1
+ import { StrictUnion } from '@aws-amplify/core/internals/utils';
1
2
  import { StorageListAllOptions, StorageListPaginateOptions, StorageOptions } from './options';
2
- export interface StorageOperationInput<Options extends StorageOptions> {
3
+ export type StorageOperationInput = StrictUnion<StorageOperationInputWithKey | StorageOperationInputWithPath>;
4
+ export type StorageOperationInputWithPrefixPath = StrictUnion<StorageOperationInputWithPath | StorageOperationInputWithPrefix>;
5
+ /** @deprecated Use {@link StorageOperationInputWithPath} instead. */
6
+ export interface StorageOperationInputWithKey {
7
+ /** @deprecated Use `path` instead. */
3
8
  key: string;
4
- options?: Options;
5
9
  }
6
- export type StorageGetPropertiesInput<Options extends StorageOptions> = StorageOperationInput<Options>;
7
- export interface StorageRemoveInput<Options extends StorageOptions> {
8
- key: string;
9
- options?: Options;
10
+ export interface StorageOperationInputWithPath {
11
+ path: string | (({ identityId }: {
12
+ identityId?: string;
13
+ }) => string);
10
14
  }
11
- export interface StorageListInput<Options extends StorageListAllOptions | StorageListPaginateOptions> {
15
+ /** @deprecated Use {@link StorageOperationInputWithPath} instead. */
16
+ export interface StorageOperationInputWithPrefix {
17
+ /** @deprecated Use `path` instead. */
12
18
  prefix?: string;
19
+ }
20
+ export interface StorageOperationOptionsInput<Options> {
13
21
  options?: Options;
14
22
  }
15
- export type StorageGetUrlInput<Options extends StorageOptions> = StorageOperationInput<Options>;
16
- export type StorageDownloadDataInput<Options extends StorageOptions> = StorageOperationInput<Options>;
17
- export type StorageUploadDataInput<Options extends StorageOptions> = StorageOperationInput<Options> & {
18
- data: StorageUploadDataPayload;
19
- };
20
- export interface StorageCopyInput<SourceOptions extends StorageOptions, DestinationOptions extends StorageOptions> {
23
+ /** @deprecated Use {@link StorageDownloadDataInputWithPath} instead. */
24
+ export type StorageDownloadDataInputWithKey<Options extends StorageOptions> = StorageOperationInputWithKey & StorageOperationOptionsInput<Options>;
25
+ export type StorageDownloadDataInputWithPath<Options> = StorageOperationInputWithPath & StorageOperationOptionsInput<Options>;
26
+ /** @deprecated Use {@link StorageGetPropertiesInputWithPath} instead. */
27
+ export type StorageGetPropertiesInputWithKey<Options extends StorageOptions> = StorageOperationInputWithKey & StorageOperationOptionsInput<Options>;
28
+ export type StorageGetPropertiesInputWithPath<Options> = StorageOperationInputWithPath & StorageOperationOptionsInput<Options>;
29
+ export type StorageRemoveInputWithKey<Options> = StorageOperationInputWithKey & StorageOperationOptionsInput<Options>;
30
+ export type StorageRemoveInputWithPath<Options> = StorageOperationInputWithPath & StorageOperationOptionsInput<Options>;
31
+ /** @deprecated Use {@link StorageListInputWithPath} instead. */
32
+ export type StorageListInputWithPrefix<Options extends StorageListAllOptions | StorageListPaginateOptions> = StorageOperationInputWithPrefix & StorageOperationOptionsInput<Options>;
33
+ export type StorageListInputWithPath<Options extends StorageListAllOptions | StorageListPaginateOptions> = StorageOperationInputWithPath & StorageOperationOptionsInput<Options>;
34
+ /** @deprecated Use {@link StorageGetUrlInputWithPath} instead. */
35
+ export type StorageGetUrlInputWithKey<Options extends StorageOptions> = StorageOperationInputWithKey & StorageOperationOptionsInput<Options>;
36
+ export type StorageGetUrlInputWithPath<Options> = StorageOperationInputWithPath & StorageOperationOptionsInput<Options>;
37
+ /** @deprecated Use {@link StorageUploadDataInputWithPath} instead. */
38
+ export type StorageUploadDataInputWithKey<Options extends StorageOptions> = StorageOperationInputWithKey & StorageOperationOptionsInput<Options> & StorageUploadDataInputPayload;
39
+ export type StorageUploadDataInputWithPath<Options> = StorageOperationInputWithPath & StorageOperationOptionsInput<Options> & StorageUploadDataInputPayload;
40
+ /** @deprecated Use {@link StorageCopyInputWithPath} instead. */
41
+ export interface StorageCopyInputWithKey<SourceOptions extends StorageOptions, DestinationOptions extends StorageOptions> {
21
42
  source: SourceOptions;
22
43
  destination: DestinationOptions;
23
44
  }
45
+ export interface StorageCopyInputWithPath {
46
+ source: StorageOperationInputWithPath;
47
+ destination: StorageOperationInputWithPath;
48
+ }
24
49
  /**
25
50
  * The data payload type for upload operation.
26
51
  */
27
52
  export type StorageUploadDataPayload = Blob | ArrayBufferView | ArrayBuffer | string;
53
+ export interface StorageUploadDataInputPayload {
54
+ data: StorageUploadDataPayload;
55
+ }
@@ -1,5 +1,6 @@
1
1
  import { StorageAccessLevel } from '@aws-amplify/core';
2
2
  export interface StorageOptions {
3
+ /** @deprecated This may be removed in the next major version. */
3
4
  accessLevel?: StorageAccessLevel;
4
5
  }
5
6
  export type StorageListAllOptions = StorageOptions & {
@@ -1,9 +1,8 @@
1
1
  import { ResponseBodyMixin } from '@aws-amplify/core/internals/aws-client-utils';
2
- export interface StorageItem {
3
- /**
4
- * Key of the object
5
- */
6
- key: string;
2
+ /**
3
+ * Base type for a storage item.
4
+ */
5
+ export interface StorageItemBase {
7
6
  /**
8
7
  * Creation date of the object.
9
8
  */
@@ -23,7 +22,25 @@ export interface StorageItem {
23
22
  */
24
23
  metadata?: Record<string, string>;
25
24
  }
26
- export type StorageDownloadDataOutput<T extends StorageItem> = T & {
25
+ /** @deprecated Use {@link StorageItemWithPath} instead. */
26
+ export type StorageItemWithKey = StorageItemBase & {
27
+ /**
28
+ * @deprecated This may be removed in next major version.
29
+ * Key of the object.
30
+ */
31
+ key: string;
32
+ };
33
+ export type StorageItemWithPath = StorageItemBase & {
34
+ /**
35
+ * Path of the object.
36
+ */
37
+ path: string;
38
+ };
39
+ /**
40
+ * A storage item can be identified either by a key or a path.
41
+ */
42
+ export type StorageItem = StorageItemWithKey | StorageItemWithPath;
43
+ export type StorageDownloadDataOutput<Item extends StorageItem> = Item & {
27
44
  body: ResponseBodyMixin;
28
45
  };
29
46
  export interface StorageGetUrlOutput {
@@ -38,5 +55,8 @@ export interface StorageGetUrlOutput {
38
55
  }
39
56
  export type StorageUploadOutput<Item extends StorageItem> = Item;
40
57
  export interface StorageListOutput<Item extends StorageItem> {
58
+ /**
59
+ * List of items returned by the list API.
60
+ */
41
61
  items: Item[];
42
62
  }
package/package.json CHANGED
@@ -1,109 +1,109 @@
1
1
  {
2
- "name": "@aws-amplify/storage",
3
- "version": "6.0.28",
4
- "description": "Storage category of aws-amplify",
5
- "main": "./dist/cjs/index.js",
6
- "module": "./dist/esm/index.mjs",
7
- "react-native": {
8
- "./dist/cjs/index": "./src/index.ts",
9
- "fast-xml-parser": "fast-xml-parser",
10
- "buffer": "buffer"
11
- },
12
- "typings": "./dist/esm/index.d.ts",
13
- "browser": {
14
- "./dist/esm/providers/s3/utils/client/runtime/base64/index.native.mjs": "./dist/esm/providers/s3/utils/client/runtime/base64/index.browser.mjs",
15
- "./dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/fetch.mjs": "./dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.mjs",
16
- "./dist/esm/providers/s3/utils/client/runtime/xmlParser/pureJs.mjs": "./dist/esm/providers/s3/utils/client/runtime/xmlParser/dom.mjs",
17
- "fast-xml-parser": false,
18
- "buffer": false
19
- },
20
- "sideEffects": false,
21
- "publishConfig": {
22
- "access": "public"
23
- },
24
- "scripts": {
25
- "test": "npm run lint && jest -w 1 --coverage --logHeapUsage",
26
- "build-with-test": "npm test && npm run build",
27
- "build:umd": "webpack && webpack --config ./webpack.config.dev.js",
28
- "build:esm-cjs": "rollup -c rollup.config.mjs",
29
- "build:watch": "npm run build:esm-cjs -- --watch",
30
- "build": "npm run clean && npm run build:esm-cjs && npm run build:umd",
31
- "clean": "npm run clean:size && rimraf lib-esm lib dist",
32
- "clean:size": "rimraf dual-publish-tmp tmp*",
33
- "format": "echo \"Not implemented\"",
34
- "lint": "eslint '**/*.{ts,tsx}' && npm run ts-coverage",
35
- "lint:fix": "eslint '**/*.{ts,tsx}' --fix",
36
- "ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 90.31"
37
- },
38
- "typesVersions": {
39
- ">=4.2": {
40
- "s3": [
41
- "./dist/esm/providers/s3/index.d.ts"
42
- ],
43
- "server": [
44
- "./dist/esm/server.d.ts"
45
- ],
46
- "s3/server": [
47
- "./dist/esm/providers/s3/server.d.ts"
48
- ]
49
- }
50
- },
51
- "repository": {
52
- "type": "git",
53
- "url": "https://github.com/aws-amplify/amplify-js.git"
54
- },
55
- "author": "Amazon Web Services",
56
- "license": "Apache-2.0",
57
- "bugs": {
58
- "url": "https://github.com/aws/aws-amplify/issues"
59
- },
60
- "homepage": "https://aws-amplify.github.io/",
61
- "files": [
62
- "dist/cjs",
63
- "dist/esm",
64
- "src",
65
- "server",
66
- "s3"
67
- ],
68
- "dependencies": {
69
- "@aws-sdk/types": "3.398.0",
70
- "@smithy/md5-js": "2.0.7",
71
- "buffer": "4.9.2",
72
- "fast-xml-parser": "^4.2.5",
73
- "tslib": "^2.5.0"
74
- },
75
- "exports": {
76
- ".": {
77
- "types": "./dist/esm/index.d.ts",
78
- "import": "./dist/esm/index.mjs",
79
- "require": "./dist/cjs/index.js",
80
- "react-native": "./src/index.ts"
81
- },
82
- "./server": {
83
- "types": "./dist/esm/server.d.ts",
84
- "import": "./dist/esm/server.mjs",
85
- "require": "./dist/cjs/server.js"
86
- },
87
- "./s3": {
88
- "types": "./dist/esm/providers/s3/index.d.ts",
89
- "import": "./dist/esm/providers/s3/index.mjs",
90
- "require": "./dist/cjs/providers/s3/index.js",
91
- "react-native": "./src/providers/s3/index.ts"
92
- },
93
- "./s3/server": {
94
- "types": "./dist/esm/providers/s3/server.d.ts",
95
- "import": "./dist/esm/providers/s3/server.mjs",
96
- "require": "./dist/cjs/providers/s3/server.js"
97
- },
98
- "./package.json": "./package.json"
99
- },
100
- "peerDependencies": {
101
- "@aws-amplify/core": "^6.0.0"
102
- },
103
- "devDependencies": {
104
- "@aws-amplify/core": "6.0.28",
105
- "@aws-amplify/react-native": "1.0.28",
106
- "typescript": "5.0.2"
107
- },
108
- "gitHead": "672417ff6e9823f8b92c5d43585acf6ad9e43264"
2
+ "name": "@aws-amplify/storage",
3
+ "version": "6.0.29-gen2-storage.e54bfa9.0+e54bfa9",
4
+ "description": "Storage category of aws-amplify",
5
+ "main": "./dist/cjs/index.js",
6
+ "module": "./dist/esm/index.mjs",
7
+ "react-native": {
8
+ "./dist/cjs/index": "./src/index.ts",
9
+ "fast-xml-parser": "fast-xml-parser",
10
+ "buffer": "buffer"
11
+ },
12
+ "typings": "./dist/esm/index.d.ts",
13
+ "browser": {
14
+ "./dist/esm/providers/s3/utils/client/runtime/base64/index.native.mjs": "./dist/esm/providers/s3/utils/client/runtime/base64/index.browser.mjs",
15
+ "./dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/fetch.mjs": "./dist/esm/providers/s3/utils/client/runtime/s3TransferHandler/xhr.mjs",
16
+ "./dist/esm/providers/s3/utils/client/runtime/xmlParser/pureJs.mjs": "./dist/esm/providers/s3/utils/client/runtime/xmlParser/dom.mjs",
17
+ "fast-xml-parser": false,
18
+ "buffer": false
19
+ },
20
+ "sideEffects": false,
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
24
+ "scripts": {
25
+ "test": "npm run lint && jest -w 1 --coverage --logHeapUsage",
26
+ "build-with-test": "npm test && npm run build",
27
+ "build:umd": "webpack && webpack --config ./webpack.config.dev.js",
28
+ "build:esm-cjs": "rollup -c rollup.config.mjs",
29
+ "build:watch": "npm run build:esm-cjs -- --watch",
30
+ "build": "npm run clean && npm run build:esm-cjs && npm run build:umd",
31
+ "clean": "npm run clean:size && rimraf lib-esm lib dist",
32
+ "clean:size": "rimraf dual-publish-tmp tmp*",
33
+ "format": "echo \"Not implemented\"",
34
+ "lint": "eslint '**/*.{ts,tsx}' && npm run ts-coverage",
35
+ "lint:fix": "eslint '**/*.{ts,tsx}' --fix",
36
+ "ts-coverage": "typescript-coverage-report -p ./tsconfig.build.json -t 90.31"
37
+ },
38
+ "typesVersions": {
39
+ ">=4.2": {
40
+ "s3": [
41
+ "./dist/esm/providers/s3/index.d.ts"
42
+ ],
43
+ "server": [
44
+ "./dist/esm/server.d.ts"
45
+ ],
46
+ "s3/server": [
47
+ "./dist/esm/providers/s3/server.d.ts"
48
+ ]
49
+ }
50
+ },
51
+ "repository": {
52
+ "type": "git",
53
+ "url": "https://github.com/aws-amplify/amplify-js.git"
54
+ },
55
+ "author": "Amazon Web Services",
56
+ "license": "Apache-2.0",
57
+ "bugs": {
58
+ "url": "https://github.com/aws/aws-amplify/issues"
59
+ },
60
+ "homepage": "https://aws-amplify.github.io/",
61
+ "files": [
62
+ "dist/cjs",
63
+ "dist/esm",
64
+ "src",
65
+ "server",
66
+ "s3"
67
+ ],
68
+ "dependencies": {
69
+ "@aws-sdk/types": "3.398.0",
70
+ "@smithy/md5-js": "2.0.7",
71
+ "buffer": "4.9.2",
72
+ "fast-xml-parser": "^4.2.5",
73
+ "tslib": "^2.5.0"
74
+ },
75
+ "exports": {
76
+ ".": {
77
+ "types": "./dist/esm/index.d.ts",
78
+ "import": "./dist/esm/index.mjs",
79
+ "require": "./dist/cjs/index.js",
80
+ "react-native": "./src/index.ts"
81
+ },
82
+ "./server": {
83
+ "types": "./dist/esm/server.d.ts",
84
+ "import": "./dist/esm/server.mjs",
85
+ "require": "./dist/cjs/server.js"
86
+ },
87
+ "./s3": {
88
+ "types": "./dist/esm/providers/s3/index.d.ts",
89
+ "import": "./dist/esm/providers/s3/index.mjs",
90
+ "require": "./dist/cjs/providers/s3/index.js",
91
+ "react-native": "./src/providers/s3/index.ts"
92
+ },
93
+ "./s3/server": {
94
+ "types": "./dist/esm/providers/s3/server.d.ts",
95
+ "import": "./dist/esm/providers/s3/server.mjs",
96
+ "require": "./dist/cjs/providers/s3/server.js"
97
+ },
98
+ "./package.json": "./package.json"
99
+ },
100
+ "peerDependencies": {
101
+ "@aws-amplify/core": "6.0.29-gen2-storage.e54bfa9.0+e54bfa9"
102
+ },
103
+ "devDependencies": {
104
+ "@aws-amplify/core": "6.0.29-gen2-storage.e54bfa9.0+e54bfa9",
105
+ "@aws-amplify/react-native": "1.0.29-gen2-storage.e54bfa9.0+e54bfa9",
106
+ "typescript": "5.0.2"
107
+ },
108
+ "gitHead": "e54bfa991dbe75b7c7691bf0504a0b1616362837"
109
109
  }
@@ -9,11 +9,16 @@ export enum StorageValidationErrorCode {
9
9
  NoKey = 'NoKey',
10
10
  NoSourceKey = 'NoSourceKey',
11
11
  NoDestinationKey = 'NoDestinationKey',
12
+ NoSourcePath = 'NoSourcePath',
13
+ NoDestinationPath = 'NoDestinationPath',
12
14
  NoBucket = 'NoBucket',
13
15
  NoRegion = 'NoRegion',
14
- UrlExpirationMaxLimitExceed = 'UrlExpirationMaxLimitExceed',
15
- ObjectIsTooLarge = 'ObjectIsTooLarge',
16
+ InvalidStorageOperationPrefixInput = 'InvalidStorageOperationPrefixInput',
17
+ InvalidStorageOperationInput = 'InvalidStorageOperationInput',
18
+ InvalidStoragePathInput = 'InvalidStoragePathInput',
16
19
  InvalidUploadSource = 'InvalidUploadSource',
20
+ ObjectIsTooLarge = 'ObjectIsTooLarge',
21
+ UrlExpirationMaxLimitExceed = 'UrlExpirationMaxLimitExceed',
17
22
  }
18
23
 
19
24
  export const validationErrorMap: AmplifyErrorMap<StorageValidationErrorCode> = {
@@ -33,6 +38,12 @@ export const validationErrorMap: AmplifyErrorMap<StorageValidationErrorCode> = {
33
38
  [StorageValidationErrorCode.NoDestinationKey]: {
34
39
  message: 'Missing destination key in copy api call.',
35
40
  },
41
+ [StorageValidationErrorCode.NoSourcePath]: {
42
+ message: 'Missing source path in copy api call.',
43
+ },
44
+ [StorageValidationErrorCode.NoDestinationPath]: {
45
+ message: 'Missing destination path in copy api call.',
46
+ },
36
47
  [StorageValidationErrorCode.NoBucket]: {
37
48
  message: 'Missing bucket name while accessing object.',
38
49
  },
@@ -49,4 +60,14 @@ export const validationErrorMap: AmplifyErrorMap<StorageValidationErrorCode> = {
49
60
  message:
50
61
  'Upload source type can only be a `Blob`, `File`, `ArrayBuffer`, or `string`.',
51
62
  },
63
+ [StorageValidationErrorCode.InvalidStorageOperationInput]: {
64
+ message:
65
+ 'Path or key parameter must be specified in the input. Both can not be specified at the same time.',
66
+ },
67
+ [StorageValidationErrorCode.InvalidStorageOperationPrefixInput]: {
68
+ message: 'Both path and prefix can not be specified at the same time.',
69
+ },
70
+ [StorageValidationErrorCode.InvalidStoragePathInput]: {
71
+ message: 'Input `path` does not allow a leading slash (/).',
72
+ },
52
73
  };