@scality/data-browser-library 1.0.0-preview.8 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/dist/components/DataBrowserUI.d.ts +12 -0
  2. package/dist/components/DataBrowserUI.js +99 -0
  3. package/dist/components/Editor.d.ts +1 -1
  4. package/dist/components/Editor.js +3 -3
  5. package/dist/components/__tests__/BucketAccessor.test.js +214 -0
  6. package/dist/components/__tests__/BucketCorsPage.test.d.ts +1 -0
  7. package/dist/components/__tests__/BucketCorsPage.test.js +263 -0
  8. package/dist/components/__tests__/BucketCreate.test.d.ts +1 -0
  9. package/dist/components/__tests__/BucketCreate.test.js +574 -0
  10. package/dist/components/__tests__/BucketDetails.test.d.ts +1 -0
  11. package/dist/components/__tests__/BucketDetails.test.js +421 -0
  12. package/dist/components/__tests__/BucketLifecycleFormPage.test.d.ts +14 -0
  13. package/dist/components/__tests__/BucketLifecycleFormPage.test.js +618 -0
  14. package/dist/components/__tests__/BucketLifecycleList.test.d.ts +1 -0
  15. package/dist/components/__tests__/BucketLifecycleList.test.js +325 -0
  16. package/dist/components/__tests__/BucketList.test.js +495 -81
  17. package/dist/components/__tests__/BucketNotificationFormPage.test.d.ts +1 -0
  18. package/dist/components/__tests__/BucketNotificationFormPage.test.js +348 -0
  19. package/dist/components/__tests__/BucketNotificationList.test.d.ts +1 -0
  20. package/dist/components/__tests__/BucketNotificationList.test.js +379 -0
  21. package/dist/components/__tests__/BucketOverview.test.js +484 -179
  22. package/dist/components/__tests__/BucketPolicyPage.test.js +151 -99
  23. package/dist/components/__tests__/BucketReplicationFormPage.test.d.ts +16 -0
  24. package/dist/components/__tests__/BucketReplicationFormPage.test.js +1757 -0
  25. package/dist/components/__tests__/BucketReplicationList.test.d.ts +1 -0
  26. package/dist/components/__tests__/BucketReplicationList.test.js +344 -0
  27. package/dist/components/__tests__/CreateFolderButton.test.js +56 -56
  28. package/dist/components/__tests__/DeleteBucketButton.test.js +64 -64
  29. package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.d.ts +1 -0
  30. package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.js +196 -0
  31. package/dist/components/__tests__/DeleteObjectButton.test.js +64 -64
  32. package/dist/components/__tests__/EmptyBucketButton.test.d.ts +1 -0
  33. package/dist/components/__tests__/EmptyBucketButton.test.js +302 -0
  34. package/dist/components/__tests__/MetadataSearch.test.js +65 -65
  35. package/dist/components/__tests__/ObjectList.test.js +741 -240
  36. package/dist/components/__tests__/UploadButton.test.js +45 -45
  37. package/dist/components/breadcrumb/Breadcrumb.d.ts +6 -0
  38. package/dist/components/breadcrumb/Breadcrumb.js +37 -0
  39. package/dist/components/breadcrumb/DataBrowserBreadcrumb.d.ts +1 -0
  40. package/dist/components/breadcrumb/DataBrowserBreadcrumb.js +10 -0
  41. package/dist/components/breadcrumb/__tests__/Breadcrumb.test.d.ts +1 -0
  42. package/dist/components/breadcrumb/__tests__/Breadcrumb.test.js +196 -0
  43. package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.d.ts +1 -0
  44. package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.js +153 -0
  45. package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.d.ts +1 -0
  46. package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.js +134 -0
  47. package/dist/components/breadcrumb/index.d.ts +8 -0
  48. package/dist/components/breadcrumb/index.js +4 -0
  49. package/dist/components/breadcrumb/useBreadcrumbPaths.d.ts +2 -0
  50. package/dist/components/breadcrumb/useBreadcrumbPaths.js +82 -0
  51. package/dist/components/buckets/BucketAccessor.d.ts +2 -0
  52. package/dist/components/buckets/BucketAccessor.js +125 -0
  53. package/dist/components/buckets/BucketConfigEditButton.d.ts +8 -0
  54. package/dist/components/buckets/{BucketPolicyButton.js → BucketConfigEditButton.js} +9 -5
  55. package/dist/components/buckets/BucketCorsPage.d.ts +1 -0
  56. package/dist/components/buckets/BucketCorsPage.js +234 -0
  57. package/dist/components/buckets/BucketCreate.d.ts +50 -0
  58. package/dist/components/buckets/BucketCreate.js +279 -0
  59. package/dist/components/buckets/BucketDetails.d.ts +42 -0
  60. package/dist/components/buckets/BucketDetails.js +256 -40
  61. package/dist/components/buckets/BucketLifecycleFormPage.d.ts +15 -0
  62. package/dist/components/buckets/BucketLifecycleFormPage.js +1086 -0
  63. package/dist/components/buckets/BucketLifecycleList.d.ts +10 -0
  64. package/dist/components/buckets/BucketLifecycleList.js +270 -0
  65. package/dist/components/buckets/BucketList.d.ts +6 -4
  66. package/dist/components/buckets/BucketList.js +161 -94
  67. package/dist/components/buckets/BucketLocation.js +4 -4
  68. package/dist/components/buckets/BucketOverview.d.ts +86 -5
  69. package/dist/components/buckets/BucketOverview.js +481 -192
  70. package/dist/components/buckets/BucketPage.js +44 -22
  71. package/dist/components/buckets/BucketPolicyPage.js +155 -127
  72. package/dist/components/buckets/BucketReplicationFormPage.d.ts +1 -0
  73. package/dist/components/buckets/BucketReplicationFormPage.js +835 -0
  74. package/dist/components/buckets/BucketReplicationList.d.ts +11 -0
  75. package/dist/components/buckets/BucketReplicationList.js +189 -0
  76. package/dist/components/buckets/BucketVersioning.d.ts +4 -0
  77. package/dist/components/buckets/BucketVersioning.js +76 -0
  78. package/dist/components/buckets/DeleteBucketButton.js +8 -8
  79. package/dist/components/buckets/DeleteBucketConfigRuleButton.d.ts +18 -0
  80. package/dist/components/buckets/DeleteBucketConfigRuleButton.js +53 -0
  81. package/dist/components/buckets/EmptyBucketButton.d.ts +5 -0
  82. package/dist/components/buckets/EmptyBucketButton.js +232 -0
  83. package/dist/components/buckets/EmptyBucketSummary.d.ts +9 -0
  84. package/dist/components/buckets/EmptyBucketSummary.js +60 -0
  85. package/dist/components/buckets/EmptyBucketSummaryList.d.ts +13 -0
  86. package/dist/components/buckets/EmptyBucketSummaryList.js +140 -0
  87. package/dist/components/buckets/__tests__/BucketVersioning.test.d.ts +1 -0
  88. package/dist/components/buckets/__tests__/BucketVersioning.test.js +163 -0
  89. package/dist/components/buckets/notifications/BucketNotificationFormPage.d.ts +1 -0
  90. package/dist/components/buckets/notifications/BucketNotificationFormPage.js +316 -0
  91. package/dist/components/buckets/notifications/BucketNotificationList.d.ts +10 -0
  92. package/dist/components/buckets/notifications/BucketNotificationList.js +267 -0
  93. package/dist/components/buckets/notifications/EventsSection.js +145 -29
  94. package/dist/components/buckets/notifications/__tests__/events.test.d.ts +1 -0
  95. package/dist/components/buckets/notifications/__tests__/events.test.js +56 -0
  96. package/dist/components/buckets/notifications/events.d.ts +71 -7
  97. package/dist/components/buckets/notifications/events.js +98 -16
  98. package/dist/components/index.d.ts +27 -13
  99. package/dist/components/index.js +20 -6
  100. package/dist/components/layouts/ArrowNavigation.d.ts +3 -0
  101. package/dist/components/layouts/ArrowNavigation.js +28 -0
  102. package/dist/components/layouts/BrowserPageLayout.d.ts +5 -1
  103. package/dist/components/layouts/BrowserPageLayout.js +10 -5
  104. package/dist/components/objects/CreateFolderButton.d.ts +2 -2
  105. package/dist/components/objects/CreateFolderButton.js +12 -12
  106. package/dist/components/objects/DeleteObjectButton.d.ts +1 -1
  107. package/dist/components/objects/DeleteObjectButton.js +19 -21
  108. package/dist/components/objects/GetPresignedUrlButton.d.ts +7 -0
  109. package/dist/components/objects/GetPresignedUrlButton.js +255 -0
  110. package/dist/components/objects/ObjectDetails/ObjectMetadata.d.ts +2 -2
  111. package/dist/components/objects/ObjectDetails/ObjectMetadata.js +263 -230
  112. package/dist/components/objects/ObjectDetails/ObjectSummary.d.ts +2 -2
  113. package/dist/components/objects/ObjectDetails/ObjectSummary.js +540 -138
  114. package/dist/components/objects/ObjectDetails/ObjectTags.d.ts +2 -2
  115. package/dist/components/objects/ObjectDetails/ObjectTags.js +95 -123
  116. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.d.ts +1 -0
  117. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.js +516 -0
  118. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.d.ts +1 -0
  119. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.js +1064 -0
  120. package/dist/components/objects/ObjectDetails/index.d.ts +18 -2
  121. package/dist/components/objects/ObjectDetails/index.js +152 -40
  122. package/dist/components/objects/ObjectList.d.ts +12 -10
  123. package/dist/components/objects/ObjectList.js +590 -263
  124. package/dist/components/objects/ObjectLock/EditRetentionButton.d.ts +4 -0
  125. package/dist/components/objects/ObjectLock/EditRetentionButton.js +32 -0
  126. package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.d.ts +3 -0
  127. package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.js +211 -0
  128. package/dist/components/objects/ObjectLock/ObjectLockSettings.d.ts +9 -0
  129. package/dist/components/objects/ObjectLock/ObjectLockSettings.js +159 -0
  130. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.d.ts +8 -0
  131. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.js +39 -0
  132. package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.d.ts +1 -0
  133. package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.js +204 -0
  134. package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.d.ts +1 -0
  135. package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.js +374 -0
  136. package/dist/components/objects/ObjectPage.js +12 -8
  137. package/dist/components/objects/UploadButton.d.ts +3 -3
  138. package/dist/components/objects/UploadButton.js +10 -10
  139. package/dist/components/objects/__tests__/GetPresignedUrlButton.test.d.ts +1 -0
  140. package/dist/components/objects/__tests__/GetPresignedUrlButton.test.js +531 -0
  141. package/dist/components/providers/DataBrowserProvider.d.ts +23 -12
  142. package/dist/components/providers/DataBrowserProvider.js +60 -38
  143. package/dist/components/providers/QueryProvider.d.ts +9 -0
  144. package/dist/components/providers/QueryProvider.js +21 -0
  145. package/dist/components/search/MetadataSearch.js +29 -28
  146. package/dist/components/search/SearchHints.js +1 -1
  147. package/dist/components/ui/ArrayFieldActions.d.ts +36 -0
  148. package/dist/components/ui/ArrayFieldActions.js +43 -0
  149. package/dist/components/ui/ConfirmDeleteRuleModal.d.ts +16 -0
  150. package/dist/components/ui/ConfirmDeleteRuleModal.js +48 -0
  151. package/dist/components/ui/DeleteObjectModalContent.d.ts +1 -1
  152. package/dist/components/ui/DeleteObjectModalContent.js +12 -12
  153. package/dist/components/ui/FilterFormSection.d.ts +44 -0
  154. package/dist/components/ui/FilterFormSection.js +159 -0
  155. package/dist/components/ui/Search.elements.d.ts +2 -2
  156. package/dist/components/ui/Search.elements.js +7 -7
  157. package/dist/components/ui/Table.elements.d.ts +2 -1
  158. package/dist/components/ui/Table.elements.js +18 -12
  159. package/dist/config/__tests__/factory.test.d.ts +1 -0
  160. package/dist/config/__tests__/factory.test.js +311 -0
  161. package/dist/config/factory.d.ts +14 -49
  162. package/dist/config/factory.js +23 -68
  163. package/dist/config/types.d.ts +212 -34
  164. package/dist/contexts/DataBrowserUICustomizationContext.d.ts +27 -0
  165. package/dist/contexts/DataBrowserUICustomizationContext.js +13 -0
  166. package/dist/hooks/__tests__/useAccessibleBuckets.test.d.ts +1 -0
  167. package/dist/hooks/__tests__/useAccessibleBuckets.test.js +145 -0
  168. package/dist/hooks/__tests__/useISVBucketDetection.test.d.ts +1 -0
  169. package/dist/hooks/__tests__/useISVBucketDetection.test.js +188 -0
  170. package/dist/hooks/__tests__/useIsBucketEmpty.test.js +27 -27
  171. package/dist/hooks/__tests__/useLoginMutation.test.d.ts +1 -0
  172. package/dist/hooks/__tests__/useLoginMutation.test.js +194 -0
  173. package/dist/hooks/bucketConfiguration.d.ts +8 -1
  174. package/dist/hooks/bucketConfiguration.js +52 -51
  175. package/dist/hooks/bucketOperations.d.ts +10 -1
  176. package/dist/hooks/bucketOperations.js +10 -9
  177. package/dist/hooks/factories/__tests__/useCreateS3FunctionMutationHook.test.js +80 -80
  178. package/dist/hooks/factories/__tests__/useCreateS3InfiniteQueryHook.test.js +80 -80
  179. package/dist/hooks/factories/__tests__/useCreateS3LoginHook.test.js +44 -44
  180. package/dist/hooks/factories/__tests__/useCreateS3MutationHook.test.js +63 -63
  181. package/dist/hooks/factories/__tests__/useCreateS3QueryHook.test.js +95 -52
  182. package/dist/hooks/factories/index.d.ts +4 -4
  183. package/dist/hooks/factories/index.js +2 -2
  184. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.d.ts +2 -2
  185. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.js +16 -13
  186. package/dist/hooks/factories/useCreateS3LoginHook.d.ts +2 -2
  187. package/dist/hooks/factories/useCreateS3LoginHook.js +1 -1
  188. package/dist/hooks/factories/useCreateS3MutationHook.d.ts +3 -3
  189. package/dist/hooks/factories/useCreateS3MutationHook.js +7 -2
  190. package/dist/hooks/factories/useCreateS3QueryHook.d.ts +2 -2
  191. package/dist/hooks/factories/useCreateS3QueryHook.js +29 -3
  192. package/dist/hooks/index.d.ts +19 -8
  193. package/dist/hooks/index.js +16 -5
  194. package/dist/hooks/loginOperations.d.ts +1 -1
  195. package/dist/hooks/loginOperations.js +1 -1
  196. package/dist/hooks/objectOperations.d.ts +2 -2
  197. package/dist/hooks/objectOperations.js +50 -49
  198. package/dist/hooks/presignedOperations.d.ts +4 -4
  199. package/dist/hooks/presignedOperations.js +5 -5
  200. package/dist/hooks/useAccessibleBuckets.d.ts +11 -0
  201. package/dist/hooks/useAccessibleBuckets.js +115 -0
  202. package/dist/hooks/useBatchObjectLegalHold.d.ts +11 -0
  203. package/dist/hooks/useBatchObjectLegalHold.js +48 -0
  204. package/dist/hooks/useBucketConfigEditor.d.ts +31 -0
  205. package/dist/hooks/useBucketConfigEditor.js +82 -0
  206. package/dist/hooks/useDataBrowserNavigate.d.ts +28 -0
  207. package/dist/hooks/useDataBrowserNavigate.js +24 -0
  208. package/dist/hooks/useDeleteBucketConfigRule.d.ts +26 -0
  209. package/dist/hooks/useDeleteBucketConfigRule.js +46 -0
  210. package/dist/hooks/useEmptyBucket.d.ts +27 -0
  211. package/dist/hooks/useEmptyBucket.js +116 -0
  212. package/dist/hooks/useFeatures.d.ts +7 -0
  213. package/dist/hooks/useFeatures.js +8 -0
  214. package/dist/hooks/useISVBucketDetection.d.ts +15 -0
  215. package/dist/hooks/useISVBucketDetection.js +27 -0
  216. package/dist/hooks/useIsBucketEmpty.js +4 -4
  217. package/dist/hooks/useLimitedAccessFlow.d.ts +48 -0
  218. package/dist/hooks/useLimitedAccessFlow.js +23 -0
  219. package/dist/hooks/useS3Client.d.ts +6 -0
  220. package/dist/hooks/useS3Client.js +3 -2
  221. package/dist/hooks/useS3ConfigSwitch.d.ts +11 -0
  222. package/dist/hooks/useS3ConfigSwitch.js +37 -0
  223. package/dist/hooks/useSupportedNotificationEvents.d.ts +6 -0
  224. package/dist/hooks/useSupportedNotificationEvents.js +8 -0
  225. package/dist/hooks/useTableRowSelection.d.ts +9 -0
  226. package/dist/hooks/useTableRowSelection.js +45 -0
  227. package/dist/index.d.ts +6 -6
  228. package/dist/index.js +2 -2
  229. package/dist/schemas/bucketPolicySchema.json +3 -13
  230. package/dist/test/msw/handlers/deleteBucket.d.ts +1 -1
  231. package/dist/test/msw/handlers/deleteBucket.js +20 -10
  232. package/dist/test/msw/handlers/getBucketAcl.d.ts +1 -1
  233. package/dist/test/msw/handlers/getBucketAcl.js +29 -17
  234. package/dist/test/msw/handlers/getBucketLocation.d.ts +1 -1
  235. package/dist/test/msw/handlers/getBucketLocation.js +29 -15
  236. package/dist/test/msw/handlers/getBucketPolicy.d.ts +1 -1
  237. package/dist/test/msw/handlers/getBucketPolicy.js +52 -32
  238. package/dist/test/msw/handlers/headObject.d.ts +1 -1
  239. package/dist/test/msw/handlers/headObject.js +31 -13
  240. package/dist/test/msw/handlers/listBuckets.d.ts +1 -1
  241. package/dist/test/msw/handlers/listBuckets.js +5 -3
  242. package/dist/test/msw/handlers/listObjectVersions.d.ts +1 -1
  243. package/dist/test/msw/handlers/listObjectVersions.js +38 -26
  244. package/dist/test/msw/handlers/listObjects.d.ts +1 -1
  245. package/dist/test/msw/handlers/listObjects.js +35 -23
  246. package/dist/test/msw/handlers/objectLegalHold.d.ts +1 -1
  247. package/dist/test/msw/handlers/objectLegalHold.js +32 -17
  248. package/dist/test/msw/handlers/objectRetention.d.ts +1 -1
  249. package/dist/test/msw/handlers/objectRetention.js +31 -17
  250. package/dist/test/msw/handlers/putBucketAcl.d.ts +1 -1
  251. package/dist/test/msw/handlers/putBucketAcl.js +29 -14
  252. package/dist/test/msw/handlers/putObject.d.ts +1 -1
  253. package/dist/test/msw/handlers/putObject.js +27 -12
  254. package/dist/test/msw/handlers.d.ts +3 -3
  255. package/dist/test/msw/handlers.js +77 -54
  256. package/dist/test/msw/index.d.ts +2 -2
  257. package/dist/test/msw/index.js +1 -1
  258. package/dist/test/msw/server.d.ts +1 -1
  259. package/dist/test/msw/server.js +1 -1
  260. package/dist/test/msw/utils.js +2 -2
  261. package/dist/test/setup.d.ts +1 -1
  262. package/dist/test/setup.js +13 -30
  263. package/dist/test/testUtils.d.ts +170 -36
  264. package/dist/test/testUtils.js +229 -116
  265. package/dist/test/utils/errorHandling.test.js +146 -108
  266. package/dist/types/index.d.ts +49 -36
  267. package/dist/types/monaco.d.ts +13 -0
  268. package/dist/types/monaco.js +0 -0
  269. package/dist/utils/__tests__/proxyMiddleware.test.d.ts +1 -0
  270. package/dist/utils/__tests__/proxyMiddleware.test.js +579 -0
  271. package/dist/utils/__tests__/s3Client.test.d.ts +1 -0
  272. package/dist/utils/__tests__/s3Client.test.js +340 -0
  273. package/dist/utils/__tests__/s3ConfigIdentifier.test.d.ts +1 -0
  274. package/dist/utils/__tests__/s3ConfigIdentifier.test.js +437 -0
  275. package/dist/utils/constants.d.ts +22 -0
  276. package/dist/utils/constants.js +19 -0
  277. package/dist/utils/deletion/index.d.ts +2 -2
  278. package/dist/utils/deletion/index.js +1 -1
  279. package/dist/utils/deletion/messages.d.ts +1 -1
  280. package/dist/utils/deletion/messages.js +4 -4
  281. package/dist/utils/errorHandling.d.ts +12 -3
  282. package/dist/utils/errorHandling.js +12 -7
  283. package/dist/utils/hooks.js +8 -8
  284. package/dist/utils/index.d.ts +5 -2
  285. package/dist/utils/index.js +5 -1
  286. package/dist/utils/proxyMiddleware.d.ts +32 -13
  287. package/dist/utils/proxyMiddleware.js +90 -36
  288. package/dist/utils/s3Client.d.ts +14 -4
  289. package/dist/utils/s3Client.js +5 -26
  290. package/dist/utils/s3ConfigIdentifier.d.ts +79 -0
  291. package/dist/utils/s3ConfigIdentifier.js +57 -0
  292. package/dist/utils/s3RuleUtils.d.ts +53 -0
  293. package/dist/utils/s3RuleUtils.js +101 -0
  294. package/package.json +10 -8
  295. package/dist/components/__tests__/BucketNotificationCreatePage.test.js +0 -316
  296. package/dist/components/buckets/BucketPolicyButton.d.ts +0 -7
  297. package/dist/components/buckets/notifications/BucketNotificationCreatePage.d.ts +0 -1
  298. package/dist/components/buckets/notifications/BucketNotificationCreatePage.js +0 -234
  299. package/dist/hooks/useLoginMutation.d.ts +0 -21
  300. package/dist/hooks/useLoginMutation.js +0 -9
  301. package/dist/utils/useFeatures.d.ts +0 -1
  302. package/dist/utils/useFeatures.js +0 -7
  303. /package/dist/components/__tests__/{BucketNotificationCreatePage.test.d.ts → BucketAccessor.test.d.ts} +0 -0
@@ -1,67 +1,68 @@
1
- import { DeleteBucketCorsCommand, DeleteBucketLifecycleCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, GetBucketAclCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketNotificationConfigurationCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetObjectLockConfigurationCommand, PutBucketAclCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketLifecycleConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutObjectLockConfigurationCommand } from "@aws-sdk/client-s3";
2
- import { useCreateS3QueryHook } from "./factories/useCreateS3QueryHook.js";
1
+ import { DeleteBucketCorsCommand, DeleteBucketLifecycleCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, GetBucketAclCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketNotificationConfigurationCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, PutBucketAclCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketLifecycleConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutObjectLockConfigurationCommand } from "@aws-sdk/client-s3";
3
2
  import { useCreateS3MutationHook } from "./factories/useCreateS3MutationHook.js";
4
- const useGetBucketAcl = useCreateS3QueryHook(GetBucketAclCommand, "GetBucketAcl");
5
- const useSetBucketAcl = useCreateS3MutationHook(PutBucketAclCommand, "PutBucketAcl", [
6
- "GetBucketAcl",
7
- "ListBuckets"
3
+ import { useCreateS3QueryHook } from "./factories/useCreateS3QueryHook.js";
4
+ const useGetBucketAcl = useCreateS3QueryHook(GetBucketAclCommand, 'GetBucketAcl');
5
+ const useSetBucketAcl = useCreateS3MutationHook(PutBucketAclCommand, 'PutBucketAcl', [
6
+ 'GetBucketAcl',
7
+ 'ListBuckets'
8
8
  ]);
9
- const useGetBucketPolicy = useCreateS3QueryHook(GetBucketPolicyCommand, "GetBucketPolicy");
10
- const useSetBucketPolicy = useCreateS3MutationHook(PutBucketPolicyCommand, "PutBucketPolicy", [
11
- "GetBucketPolicy",
12
- "ListBuckets"
9
+ const useGetBucketPolicy = useCreateS3QueryHook(GetBucketPolicyCommand, 'GetBucketPolicy');
10
+ const useSetBucketPolicy = useCreateS3MutationHook(PutBucketPolicyCommand, 'PutBucketPolicy', [
11
+ 'GetBucketPolicy',
12
+ 'ListBuckets'
13
13
  ]);
14
- const useDeleteBucketPolicy = useCreateS3MutationHook(DeleteBucketPolicyCommand, "DeleteBucketPolicy", [
15
- "GetBucketPolicy"
14
+ const useDeleteBucketPolicy = useCreateS3MutationHook(DeleteBucketPolicyCommand, 'DeleteBucketPolicy', [
15
+ 'GetBucketPolicy'
16
16
  ]);
17
- const useGetBucketVersioning = useCreateS3QueryHook(GetBucketVersioningCommand, "GetBucketVersioning");
18
- const useSetBucketVersioning = useCreateS3MutationHook(PutBucketVersioningCommand, "PutBucketVersioning", [
19
- "GetBucketVersioning"
17
+ const useGetBucketVersioning = useCreateS3QueryHook(GetBucketVersioningCommand, 'GetBucketVersioning');
18
+ const useSetBucketVersioning = useCreateS3MutationHook(PutBucketVersioningCommand, 'PutBucketVersioning', [
19
+ 'GetBucketVersioning'
20
20
  ]);
21
- const useGetBucketCors = useCreateS3QueryHook(GetBucketCorsCommand, "GetBucketCors");
22
- const useSetBucketCors = useCreateS3MutationHook(PutBucketCorsCommand, "PutBucketCors", [
23
- "GetBucketCors",
24
- "ListBuckets"
21
+ const useGetBucketCors = useCreateS3QueryHook(GetBucketCorsCommand, 'GetBucketCors');
22
+ const useSetBucketCors = useCreateS3MutationHook(PutBucketCorsCommand, 'PutBucketCors', [
23
+ 'GetBucketCors',
24
+ 'ListBuckets'
25
25
  ]);
26
- const useDeleteBucketCors = useCreateS3MutationHook(DeleteBucketCorsCommand, "DeleteBucketCors", [
27
- "GetBucketCors"
26
+ const useDeleteBucketCors = useCreateS3MutationHook(DeleteBucketCorsCommand, 'DeleteBucketCors', [
27
+ 'GetBucketCors'
28
28
  ]);
29
- const useGetBucketLifecycle = useCreateS3QueryHook(GetBucketLifecycleConfigurationCommand, "GetBucketLifecycleConfiguration");
30
- const useSetBucketLifecycle = useCreateS3MutationHook(PutBucketLifecycleConfigurationCommand, "PutBucketLifecycleConfiguration", [
31
- "GetBucketLifecycleConfiguration",
32
- "ListBuckets"
29
+ const useGetBucketLifecycle = useCreateS3QueryHook(GetBucketLifecycleConfigurationCommand, 'GetBucketLifecycleConfiguration');
30
+ const useSetBucketLifecycle = useCreateS3MutationHook(PutBucketLifecycleConfigurationCommand, 'PutBucketLifecycleConfiguration', [
31
+ 'GetBucketLifecycleConfiguration',
32
+ 'ListBuckets'
33
33
  ]);
34
- const useDeleteBucketLifecycle = useCreateS3MutationHook(DeleteBucketLifecycleCommand, "DeleteBucketLifecycle", [
35
- "GetBucketLifecycleConfiguration"
34
+ const useDeleteBucketLifecycle = useCreateS3MutationHook(DeleteBucketLifecycleCommand, 'DeleteBucketLifecycle', [
35
+ 'GetBucketLifecycleConfiguration'
36
36
  ]);
37
- const useGetBucketNotification = useCreateS3QueryHook(GetBucketNotificationConfigurationCommand, "GetBucketNotificationConfiguration");
38
- const useSetBucketNotification = useCreateS3MutationHook(PutBucketNotificationConfigurationCommand, "PutBucketNotificationConfiguration", [
39
- "GetBucketNotificationConfiguration",
40
- "ListBuckets"
37
+ const useGetBucketNotification = useCreateS3QueryHook(GetBucketNotificationConfigurationCommand, 'GetBucketNotificationConfiguration');
38
+ const useSetBucketNotification = useCreateS3MutationHook(PutBucketNotificationConfigurationCommand, 'PutBucketNotificationConfiguration', [
39
+ 'GetBucketNotificationConfiguration',
40
+ 'ListBuckets'
41
41
  ]);
42
- const useGetBucketEncryption = useCreateS3QueryHook(GetBucketEncryptionCommand, "GetBucketEncryption");
43
- const useSetBucketEncryption = useCreateS3MutationHook(PutBucketEncryptionCommand, "PutBucketEncryption", [
44
- "GetBucketEncryption",
45
- "ListBuckets"
42
+ const useGetBucketEncryption = useCreateS3QueryHook(GetBucketEncryptionCommand, 'GetBucketEncryption');
43
+ const useSetBucketEncryption = useCreateS3MutationHook(PutBucketEncryptionCommand, 'PutBucketEncryption', [
44
+ 'GetBucketEncryption',
45
+ 'ListBuckets'
46
46
  ]);
47
- const useGetBucketTagging = useCreateS3QueryHook(GetBucketTaggingCommand, "GetBucketTagging");
48
- const useSetBucketTagging = useCreateS3MutationHook(PutBucketTaggingCommand, "PutBucketTagging", [
49
- "GetBucketTagging",
50
- "ListBuckets"
47
+ const useGetBucketTagging = useCreateS3QueryHook(GetBucketTaggingCommand, 'GetBucketTagging');
48
+ const useSetBucketTagging = useCreateS3MutationHook(PutBucketTaggingCommand, 'PutBucketTagging', [
49
+ 'GetBucketTagging',
50
+ 'ListBuckets'
51
51
  ]);
52
- const useDeleteBucketTagging = useCreateS3MutationHook(DeleteBucketTaggingCommand, "DeleteBucketTagging", [
53
- "GetBucketTagging"
52
+ const useDeleteBucketTagging = useCreateS3MutationHook(DeleteBucketTaggingCommand, 'DeleteBucketTagging', [
53
+ 'GetBucketTagging'
54
54
  ]);
55
- const useGetBucketObjectLockConfiguration = useCreateS3QueryHook(GetObjectLockConfigurationCommand, "GetObjectLockConfiguration");
56
- const useSetBucketObjectLockConfiguration = useCreateS3MutationHook(PutObjectLockConfigurationCommand, "PutObjectLockConfiguration", [
57
- "GetObjectLockConfiguration"
55
+ const useGetBucketObjectLockConfiguration = useCreateS3QueryHook(GetObjectLockConfigurationCommand, 'GetObjectLockConfiguration');
56
+ const useSetBucketObjectLockConfiguration = useCreateS3MutationHook(PutObjectLockConfigurationCommand, 'PutObjectLockConfiguration', [
57
+ 'GetObjectLockConfiguration'
58
58
  ]);
59
- const useGetBucketReplication = useCreateS3QueryHook(GetBucketReplicationCommand, "GetBucketReplication");
60
- const useSetBucketReplication = useCreateS3MutationHook(PutBucketReplicationCommand, "PutBucketReplication", [
61
- "GetBucketReplication",
62
- "ListBuckets"
59
+ const useGetBucketReplication = useCreateS3QueryHook(GetBucketReplicationCommand, 'GetBucketReplication');
60
+ const useSetBucketReplication = useCreateS3MutationHook(PutBucketReplicationCommand, 'PutBucketReplication', [
61
+ 'GetBucketReplication',
62
+ 'ListBuckets'
63
63
  ]);
64
- const useDeleteBucketReplication = useCreateS3MutationHook(DeleteBucketReplicationCommand, "DeleteBucketReplication", [
65
- "GetBucketReplication"
64
+ const useDeleteBucketReplication = useCreateS3MutationHook(DeleteBucketReplicationCommand, 'DeleteBucketReplication', [
65
+ 'GetBucketReplication'
66
66
  ]);
67
- export { useDeleteBucketCors, useDeleteBucketLifecycle, useDeleteBucketPolicy, useDeleteBucketReplication, useDeleteBucketTagging, useGetBucketAcl, useGetBucketCors, useGetBucketEncryption, useGetBucketLifecycle, useGetBucketNotification, useGetBucketObjectLockConfiguration, useGetBucketPolicy, useGetBucketReplication, useGetBucketTagging, useGetBucketVersioning, useSetBucketAcl, useSetBucketCors, useSetBucketEncryption, useSetBucketLifecycle, useSetBucketNotification, useSetBucketObjectLockConfiguration, useSetBucketPolicy, useSetBucketReplication, useSetBucketTagging, useSetBucketVersioning };
67
+ const useGetPublicAccessBlock = useCreateS3QueryHook(GetPublicAccessBlockCommand, 'GetPublicAccessBlock');
68
+ export { useDeleteBucketCors, useDeleteBucketLifecycle, useDeleteBucketPolicy, useDeleteBucketReplication, useDeleteBucketTagging, useGetBucketAcl, useGetBucketCors, useGetBucketEncryption, useGetBucketLifecycle, useGetBucketNotification, useGetBucketObjectLockConfiguration, useGetBucketPolicy, useGetBucketReplication, useGetBucketTagging, useGetBucketVersioning, useGetPublicAccessBlock, useSetBucketAcl, useSetBucketCors, useSetBucketEncryption, useSetBucketLifecycle, useSetBucketNotification, useSetBucketObjectLockConfiguration, useSetBucketPolicy, useSetBucketReplication, useSetBucketTagging, useSetBucketVersioning };
@@ -4,7 +4,7 @@
4
4
  * This file contains hooks for fundamental bucket operations like
5
5
  * listing, creating, and deleting buckets.
6
6
  */
7
- import { ListBucketsCommandInput, ListBucketsCommandOutput, CreateBucketCommandInput, CreateBucketCommandOutput, DeleteBucketCommandInput, DeleteBucketCommandOutput, GetBucketLocationCommandInput, GetBucketLocationCommandOutput } from "@aws-sdk/client-s3";
7
+ import { type CreateBucketCommandInput, type CreateBucketCommandOutput, type DeleteBucketCommandInput, type DeleteBucketCommandOutput, type GetBucketLocationCommandInput, type GetBucketLocationCommandOutput, type ListBucketsCommandInput, type ListBucketsCommandOutput, type ListObjectsV2CommandInput, type ListObjectsV2CommandOutput } from '@aws-sdk/client-s3';
8
8
  /**
9
9
  * Hook for listing all S3 buckets
10
10
  *
@@ -34,3 +34,12 @@ export declare const useCreateBucket: (options?: Omit<import("@tanstack/react-qu
34
34
  * Automatically invalidates the buckets list after successful deletion.
35
35
  */
36
36
  export declare const useDeleteBucket: (options?: Omit<import("@tanstack/react-query").UseMutationOptions<DeleteBucketCommandOutput, import("..").EnhancedS3Error, DeleteBucketCommandInput, unknown>, "mutationFn"> | undefined) => import("@tanstack/react-query").UseMutationResult<DeleteBucketCommandOutput, import("..").EnhancedS3Error, DeleteBucketCommandInput>;
37
+ /**
38
+ * Hook for validating access to a specific S3 bucket.
39
+ *
40
+ * Attempts to list objects in a given bucket to verify user permissions.
41
+ * Used for users with limited permissions who cannot use ListBuckets.
42
+ *
43
+ * The hook is disabled by default and must be manually triggered via refetch().
44
+ */
45
+ export declare const useValidateBucketAccess: (params?: ListObjectsV2CommandInput | undefined, options?: Omit<import("@tanstack/react-query").UseQueryOptions<ListObjectsV2CommandOutput, import("..").EnhancedS3Error, ListObjectsV2CommandOutput, readonly unknown[]>, "queryKey" | "queryFn"> | undefined) => import("@tanstack/react-query").UseQueryResult<ListObjectsV2CommandOutput, import("..").EnhancedS3Error>;
@@ -1,12 +1,13 @@
1
- import { CreateBucketCommand, DeleteBucketCommand, GetBucketLocationCommand, ListBucketsCommand } from "@aws-sdk/client-s3";
2
- import { useCreateS3QueryHook } from "./factories/useCreateS3QueryHook.js";
1
+ import { CreateBucketCommand, DeleteBucketCommand, GetBucketLocationCommand, ListBucketsCommand, ListObjectsV2Command } from "@aws-sdk/client-s3";
3
2
  import { useCreateS3MutationHook } from "./factories/useCreateS3MutationHook.js";
4
- const useBuckets = useCreateS3QueryHook(ListBucketsCommand, "ListBuckets");
5
- const useGetBucketLocation = useCreateS3QueryHook(GetBucketLocationCommand, "GetBucketLocation");
6
- const useCreateBucket = useCreateS3MutationHook(CreateBucketCommand, "CreateBucket", [
7
- "ListBuckets"
3
+ import { useCreateS3QueryHook } from "./factories/useCreateS3QueryHook.js";
4
+ const useBuckets = useCreateS3QueryHook(ListBucketsCommand, 'ListBuckets');
5
+ const useGetBucketLocation = useCreateS3QueryHook(GetBucketLocationCommand, 'GetBucketLocation');
6
+ const useCreateBucket = useCreateS3MutationHook(CreateBucketCommand, 'CreateBucket', [
7
+ 'ListBuckets'
8
8
  ]);
9
- const useDeleteBucket = useCreateS3MutationHook(DeleteBucketCommand, "DeleteBucket", [
10
- "ListBuckets"
9
+ const useDeleteBucket = useCreateS3MutationHook(DeleteBucketCommand, 'DeleteBucket', [
10
+ 'ListBuckets'
11
11
  ]);
12
- export { useBuckets, useCreateBucket, useDeleteBucket, useGetBucketLocation };
12
+ const useValidateBucketAccess = useCreateS3QueryHook(ListObjectsV2Command, 'ValidateBucketAccess');
13
+ export { useBuckets, useCreateBucket, useDeleteBucket, useGetBucketLocation, useValidateBucketAccess };
@@ -1,56 +1,56 @@
1
1
  import { renderHook, waitFor } from "@testing-library/react";
2
- import { useCreateS3FunctionMutationHook } from "../useCreateS3MutationHook.js";
3
- import { useS3Client } from "../../useS3Client.js";
2
+ import { createTestWrapper, validateFactoryHook, validateHookResult } from "../../../test/testUtils.js";
4
3
  import { createS3OperationError } from "../../../utils/errorHandling.js";
5
- import { createQueryWrapper, validateFactoryHook, validateHookResult } from "../../../test/testUtils.js";
6
- jest.mock("../../useS3Client");
7
- jest.mock("../../../utils/errorHandling");
4
+ import { useS3Client } from "../../useS3Client.js";
5
+ import { useCreateS3FunctionMutationHook } from "../useCreateS3MutationHook.js";
6
+ jest.mock('../../useS3Client');
7
+ jest.mock('../../../utils/errorHandling');
8
8
  const mockUseS3Client = useS3Client;
9
9
  const mockCreateS3OperationError = createS3OperationError;
10
10
  const mockS3Client = {
11
11
  config: {}
12
12
  };
13
13
  const mockOperation = jest.fn();
14
- describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
14
+ describe('useCreateS3FunctionMutationHook - Factory Specific', ()=>{
15
15
  beforeEach(()=>{
16
16
  jest.clearAllMocks();
17
17
  mockUseS3Client.mockReturnValue(mockS3Client);
18
18
  mockOperation.mockReset();
19
19
  });
20
- it("should create a functioning mutation hook", ()=>{
20
+ it('should create a functioning mutation hook', ()=>{
21
21
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
22
- validateFactoryHook(useMutation, "function-based mutation");
22
+ validateFactoryHook(useMutation, 'function-based mutation');
23
23
  const { result } = renderHook(()=>useMutation(), {
24
- wrapper: createQueryWrapper()
24
+ wrapper: createTestWrapper()
25
25
  });
26
- validateHookResult(result.current, "mutation");
26
+ validateHookResult(result.current, 'mutation');
27
27
  });
28
- it("should accept invalidation keys parameter", ()=>{
28
+ it('should accept invalidation keys parameter', ()=>{
29
29
  const useMutation = useCreateS3FunctionMutationHook(mockOperation, [
30
- "PresignedUrls",
31
- "TestQuery"
30
+ 'PresignedUrls',
31
+ 'TestQuery'
32
32
  ]);
33
- validateFactoryHook(useMutation, "function-based mutation");
33
+ validateFactoryHook(useMutation, 'function-based mutation');
34
34
  const { result } = renderHook(()=>useMutation(), {
35
- wrapper: createQueryWrapper()
35
+ wrapper: createTestWrapper()
36
36
  });
37
- validateHookResult(result.current, "mutation");
37
+ validateHookResult(result.current, 'mutation');
38
38
  });
39
- it("should execute function operation successfully", async ()=>{
39
+ it('should execute function operation successfully', async ()=>{
40
40
  const mockResponse = {
41
- Url: "https://presigned.url",
41
+ Url: 'https://presigned.url',
42
42
  ExpiresAt: new Date(),
43
- Bucket: "test-bucket",
44
- Key: "test-key"
43
+ Bucket: 'test-bucket',
44
+ Key: 'test-key'
45
45
  };
46
46
  mockOperation.mockResolvedValue(mockResponse);
47
47
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
48
48
  const { result } = renderHook(()=>useMutation(), {
49
- wrapper: createQueryWrapper()
49
+ wrapper: createTestWrapper()
50
50
  });
51
51
  const inputParams = {
52
- Bucket: "test-bucket",
53
- Key: "test-key",
52
+ Bucket: 'test-bucket',
53
+ Key: 'test-key',
54
54
  expiresIn: 3600
55
55
  };
56
56
  result.current.mutate(inputParams);
@@ -61,30 +61,30 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
61
61
  expect(mockOperation).toHaveBeenCalledWith(mockS3Client, inputParams);
62
62
  expect(mockOperation).toHaveBeenCalledTimes(1);
63
63
  });
64
- it("should handle function operation errors", async ()=>{
65
- const mockError = new Error("Presigned URL generation failed");
64
+ it('should handle function operation errors', async ()=>{
65
+ const mockError = new Error('Presigned URL generation failed');
66
66
  mockOperation.mockRejectedValue(mockError);
67
67
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
68
68
  const { result } = renderHook(()=>useMutation(), {
69
- wrapper: createQueryWrapper()
69
+ wrapper: createTestWrapper()
70
70
  });
71
71
  result.current.mutate({
72
- Bucket: "test-bucket",
73
- Key: "test-key"
72
+ Bucket: 'test-bucket',
73
+ Key: 'test-key'
74
74
  });
75
75
  await waitFor(()=>{
76
76
  expect(result.current.isError).toBe(true);
77
77
  });
78
78
  expect(result.current.error).toBe(mockError);
79
79
  expect(mockOperation).toHaveBeenCalledWith(mockS3Client, {
80
- Bucket: "test-bucket",
81
- Key: "test-key"
80
+ Bucket: 'test-bucket',
81
+ Key: 'test-key'
82
82
  });
83
83
  expect(mockCreateS3OperationError).not.toHaveBeenCalled();
84
84
  });
85
- it("should handle function operation with internal error wrapping", async ()=>{
86
- const mockInternalError = new Error("Internal operation error");
87
- const mockWrappedError = new Error("Wrapped operation error");
85
+ it('should handle function operation with internal error wrapping', async ()=>{
86
+ const mockInternalError = new Error('Internal operation error');
87
+ const mockWrappedError = new Error('Wrapped operation error');
88
88
  const mockOperationWithErrorHandling = jest.fn().mockImplementation(async ()=>{
89
89
  try {
90
90
  throw mockInternalError;
@@ -95,24 +95,24 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
95
95
  });
96
96
  const useMutation = useCreateS3FunctionMutationHook(mockOperationWithErrorHandling);
97
97
  const { result } = renderHook(()=>useMutation(), {
98
- wrapper: createQueryWrapper()
98
+ wrapper: createTestWrapper()
99
99
  });
100
100
  result.current.mutate({
101
- Bucket: "test-bucket",
102
- Key: "test-key"
101
+ Bucket: 'test-bucket',
102
+ Key: 'test-key'
103
103
  });
104
104
  await waitFor(()=>{
105
105
  expect(result.current.isError).toBe(true);
106
106
  });
107
107
  expect(result.current.error).toBe(mockWrappedError);
108
108
  expect(mockOperationWithErrorHandling).toHaveBeenCalledWith(mockS3Client, {
109
- Bucket: "test-bucket",
110
- Key: "test-key"
109
+ Bucket: 'test-bucket',
110
+ Key: 'test-key'
111
111
  });
112
112
  });
113
- it("should handle mutation callbacks correctly", async ()=>{
113
+ it('should handle mutation callbacks correctly', async ()=>{
114
114
  const mockResponse = {
115
- Url: "https://presigned.url",
115
+ Url: 'https://presigned.url',
116
116
  ExpiresAt: new Date()
117
117
  };
118
118
  const onSuccess = jest.fn();
@@ -125,11 +125,11 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
125
125
  onError,
126
126
  onSettled
127
127
  }), {
128
- wrapper: createQueryWrapper()
128
+ wrapper: createTestWrapper()
129
129
  });
130
130
  const variables = {
131
- Bucket: "test-bucket",
132
- Key: "test-key"
131
+ Bucket: 'test-bucket',
132
+ Key: 'test-key'
133
133
  };
134
134
  result.current.mutate(variables);
135
135
  await waitFor(()=>{
@@ -139,38 +139,38 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
139
139
  expect(onError).not.toHaveBeenCalled();
140
140
  expect(onSettled).toHaveBeenCalledWith(mockResponse, null, variables, void 0, expect.any(Object));
141
141
  });
142
- it("should handle function operation with invalidation keys", async ()=>{
142
+ it('should handle function operation with invalidation keys', async ()=>{
143
143
  const mockResponse = {
144
144
  success: true
145
145
  };
146
146
  mockOperation.mockResolvedValue(mockResponse);
147
147
  const useMutation = useCreateS3FunctionMutationHook(mockOperation, [
148
- "PresignedUrls",
149
- "ObjectList"
148
+ 'PresignedUrls',
149
+ 'ObjectList'
150
150
  ]);
151
151
  const { result } = renderHook(()=>useMutation(), {
152
- wrapper: createQueryWrapper()
152
+ wrapper: createTestWrapper()
153
153
  });
154
154
  result.current.mutate({
155
- Bucket: "test-bucket",
156
- Key: "test-key"
155
+ Bucket: 'test-bucket',
156
+ Key: 'test-key'
157
157
  });
158
158
  await waitFor(()=>{
159
159
  expect(result.current.isSuccess).toBe(true);
160
160
  });
161
161
  expect(result.current.data).toEqual(mockResponse);
162
162
  expect(mockOperation).toHaveBeenCalledWith(mockS3Client, {
163
- Bucket: "test-bucket",
164
- Key: "test-key"
163
+ Bucket: 'test-bucket',
164
+ Key: 'test-key'
165
165
  });
166
166
  });
167
- it("should handle concurrent function operations correctly", async ()=>{
167
+ it('should handle concurrent function operations correctly', async ()=>{
168
168
  const mockResponse1 = {
169
- Url: "https://presigned1.url",
169
+ Url: 'https://presigned1.url',
170
170
  ExpiresAt: new Date()
171
171
  };
172
172
  const mockResponse2 = {
173
- Url: "https://presigned2.url",
173
+ Url: 'https://presigned2.url',
174
174
  ExpiresAt: new Date()
175
175
  };
176
176
  let callCount = 0;
@@ -180,18 +180,18 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
180
180
  });
181
181
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
182
182
  const { result: result1 } = renderHook(()=>useMutation(), {
183
- wrapper: createQueryWrapper()
183
+ wrapper: createTestWrapper()
184
184
  });
185
185
  const { result: result2 } = renderHook(()=>useMutation(), {
186
- wrapper: createQueryWrapper()
186
+ wrapper: createTestWrapper()
187
187
  });
188
188
  result1.current.mutate({
189
- Bucket: "test-bucket",
190
- Key: "file1.txt"
189
+ Bucket: 'test-bucket',
190
+ Key: 'file1.txt'
191
191
  });
192
192
  result2.current.mutate({
193
- Bucket: "test-bucket",
194
- Key: "file2.txt"
193
+ Bucket: 'test-bucket',
194
+ Key: 'file2.txt'
195
195
  });
196
196
  await waitFor(()=>{
197
197
  expect(result1.current.isSuccess).toBe(true);
@@ -201,7 +201,7 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
201
201
  expect(result2.current.data).toEqual(mockResponse2);
202
202
  expect(mockOperation).toHaveBeenCalledTimes(2);
203
203
  });
204
- it("should pass correct parameters to function operation", async ()=>{
204
+ it('should pass correct parameters to function operation', async ()=>{
205
205
  const mockResponse = {
206
206
  success: true
207
207
  };
@@ -214,12 +214,12 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
214
214
  });
215
215
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
216
216
  const { result } = renderHook(()=>useMutation(), {
217
- wrapper: createQueryWrapper()
217
+ wrapper: createTestWrapper()
218
218
  });
219
219
  const inputParams = {
220
- Bucket: "test-bucket",
221
- Key: "test-key",
222
- ContentType: "text/plain",
220
+ Bucket: 'test-bucket',
221
+ Key: 'test-key',
222
+ ContentType: 'text/plain',
223
223
  expiresIn: 1800
224
224
  };
225
225
  result.current.mutate(inputParams);
@@ -229,25 +229,25 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
229
229
  expect(capturedClient).toBe(mockS3Client);
230
230
  expect(capturedParams).toEqual(inputParams);
231
231
  });
232
- it("should handle complex function operations with metadata", async ()=>{
232
+ it('should handle complex function operations with metadata', async ()=>{
233
233
  const mockResponse = {
234
- Url: "https://complex-presigned.url",
235
- ExpiresAt: new Date("2024-01-01T12:00:00Z"),
236
- Bucket: "complex-bucket",
237
- Key: "complex/path/file.txt",
238
- VersionId: "version123"
234
+ Url: 'https://complex-presigned.url',
235
+ ExpiresAt: new Date('2024-01-01T12:00:00Z'),
236
+ Bucket: 'complex-bucket',
237
+ Key: 'complex/path/file.txt',
238
+ VersionId: 'version123'
239
239
  };
240
240
  mockOperation.mockResolvedValue(mockResponse);
241
241
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
242
242
  const { result } = renderHook(()=>useMutation(), {
243
- wrapper: createQueryWrapper()
243
+ wrapper: createTestWrapper()
244
244
  });
245
245
  const complexParams = {
246
- Bucket: "complex-bucket",
247
- Key: "complex/path/file.txt",
248
- VersionId: "version123",
249
- ResponseContentType: "application/json",
250
- ResponseContentDisposition: "attachment; filename=data.json",
246
+ Bucket: 'complex-bucket',
247
+ Key: 'complex/path/file.txt',
248
+ VersionId: 'version123',
249
+ ResponseContentType: 'application/json',
250
+ ResponseContentDisposition: 'attachment; filename=data.json',
251
251
  expiresIn: 7200
252
252
  };
253
253
  result.current.mutate(complexParams);
@@ -257,14 +257,14 @@ describe("useCreateS3FunctionMutationHook - Factory Specific", ()=>{
257
257
  expect(result.current.data).toEqual(mockResponse);
258
258
  expect(mockOperation).toHaveBeenCalledWith(mockS3Client, complexParams);
259
259
  });
260
- it("should handle function operations without parameters", async ()=>{
260
+ it('should handle function operations without parameters', async ()=>{
261
261
  const mockResponse = {
262
- status: "operation completed"
262
+ status: 'operation completed'
263
263
  };
264
264
  mockOperation.mockResolvedValue(mockResponse);
265
265
  const useMutation = useCreateS3FunctionMutationHook(mockOperation);
266
266
  const { result } = renderHook(()=>useMutation(), {
267
- wrapper: createQueryWrapper()
267
+ wrapper: createTestWrapper()
268
268
  });
269
269
  result.current.mutate(void 0);
270
270
  await waitFor(()=>{