@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
@@ -0,0 +1,188 @@
1
+ import { renderHook } from "@testing-library/react";
2
+ import { createTestWrapper } from "../../test/testUtils.js";
3
+ import { BUCKET_TAG_APPLICATION, BUCKET_TAG_VEEAM_APPLICATION, COMMVAULT_APPLICATION, VEEAM_BACKUP_REPLICATION, VEEAM_OFFICE_365, VEEAM_OFFICE_365_V8, VEEAM_VBO_APPLICATION } from "../../utils/constants.js";
4
+ import { useGetBucketTagging } from "../bucketConfiguration.js";
5
+ import { useFeatures } from "../useFeatures.js";
6
+ import { useISVBucketStatus } from "../useISVBucketDetection.js";
7
+ jest.mock('../bucketConfiguration');
8
+ jest.mock('../useFeatures');
9
+ const mockUseGetBucketTagging = useGetBucketTagging;
10
+ const mockUseFeatures = useFeatures;
11
+ describe('useISVBucketStatus', ()=>{
12
+ beforeEach(()=>{
13
+ jest.clearAllMocks();
14
+ mockUseFeatures.mockReturnValue(true);
15
+ });
16
+ it('should return false for all flags when ISV feature is disabled', ()=>{
17
+ mockUseFeatures.mockReturnValue(false);
18
+ mockUseGetBucketTagging.mockReturnValue({
19
+ data: void 0,
20
+ status: 'success'
21
+ });
22
+ const { result } = renderHook(()=>useISVBucketStatus('test-bucket'), {
23
+ wrapper: createTestWrapper()
24
+ });
25
+ expect(result.current.isVeeamBucket).toBe(false);
26
+ expect(result.current.isCommvaultBucket).toBe(false);
27
+ expect(result.current.isISVManaged).toBe(false);
28
+ expect(result.current.isvApplication).toBeUndefined();
29
+ expect(result.current.isLoading).toBe(false);
30
+ });
31
+ it('should detect Veeam Backup & Replication bucket', ()=>{
32
+ mockUseGetBucketTagging.mockReturnValue({
33
+ data: {
34
+ TagSet: [
35
+ {
36
+ Key: BUCKET_TAG_VEEAM_APPLICATION,
37
+ Value: VEEAM_BACKUP_REPLICATION
38
+ }
39
+ ]
40
+ },
41
+ status: 'success'
42
+ });
43
+ const { result } = renderHook(()=>useISVBucketStatus('test-bucket'), {
44
+ wrapper: createTestWrapper()
45
+ });
46
+ expect(result.current.isVeeamBucket).toBe(true);
47
+ expect(result.current.isCommvaultBucket).toBe(false);
48
+ expect(result.current.isISVManaged).toBe(true);
49
+ expect(result.current.isvApplication).toBe('Veeam');
50
+ });
51
+ it('should detect Veeam Office 365 v6/v7 bucket', ()=>{
52
+ mockUseGetBucketTagging.mockReturnValue({
53
+ data: {
54
+ TagSet: [
55
+ {
56
+ Key: BUCKET_TAG_VEEAM_APPLICATION,
57
+ Value: VEEAM_OFFICE_365
58
+ }
59
+ ]
60
+ },
61
+ status: 'success'
62
+ });
63
+ const { result } = renderHook(()=>useISVBucketStatus('test-bucket'), {
64
+ wrapper: createTestWrapper()
65
+ });
66
+ expect(result.current.isVeeamBucket).toBe(true);
67
+ expect(result.current.isISVManaged).toBe(true);
68
+ expect(result.current.isvApplication).toBe('Veeam');
69
+ });
70
+ it('should detect Veeam Office 365 v8+ bucket', ()=>{
71
+ mockUseGetBucketTagging.mockReturnValue({
72
+ data: {
73
+ TagSet: [
74
+ {
75
+ Key: BUCKET_TAG_VEEAM_APPLICATION,
76
+ Value: VEEAM_OFFICE_365_V8
77
+ }
78
+ ]
79
+ },
80
+ status: 'success'
81
+ });
82
+ const { result } = renderHook(()=>useISVBucketStatus('test-bucket'), {
83
+ wrapper: createTestWrapper()
84
+ });
85
+ expect(result.current.isVeeamBucket).toBe(true);
86
+ expect(result.current.isISVManaged).toBe(true);
87
+ expect(result.current.isvApplication).toBe('Veeam');
88
+ });
89
+ it('should detect ISV bucket tagged as Veeam Backup & Replication', ()=>{
90
+ mockUseGetBucketTagging.mockReturnValue({
91
+ data: {
92
+ TagSet: [
93
+ {
94
+ Key: BUCKET_TAG_APPLICATION,
95
+ Value: VEEAM_BACKUP_REPLICATION
96
+ }
97
+ ]
98
+ },
99
+ status: 'success'
100
+ });
101
+ const { result } = renderHook(()=>useISVBucketStatus('test-bucket'), {
102
+ wrapper: createTestWrapper()
103
+ });
104
+ expect(result.current.isVeeamBucket).toBe(true);
105
+ expect(result.current.isISVManaged).toBe(true);
106
+ expect(result.current.isvApplication).toBe('Veeam');
107
+ });
108
+ it('should detect ISV bucket tagged as Veeam VBO', ()=>{
109
+ mockUseGetBucketTagging.mockReturnValue({
110
+ data: {
111
+ TagSet: [
112
+ {
113
+ Key: BUCKET_TAG_APPLICATION,
114
+ Value: VEEAM_VBO_APPLICATION
115
+ }
116
+ ]
117
+ },
118
+ status: 'success'
119
+ });
120
+ const { result } = renderHook(()=>useISVBucketStatus('test-bucket'), {
121
+ wrapper: createTestWrapper()
122
+ });
123
+ expect(result.current.isVeeamBucket).toBe(true);
124
+ expect(result.current.isISVManaged).toBe(true);
125
+ expect(result.current.isvApplication).toBe('Veeam');
126
+ });
127
+ it('should detect Commvault bucket', ()=>{
128
+ mockUseGetBucketTagging.mockReturnValue({
129
+ data: {
130
+ TagSet: [
131
+ {
132
+ Key: BUCKET_TAG_APPLICATION,
133
+ Value: COMMVAULT_APPLICATION
134
+ }
135
+ ]
136
+ },
137
+ status: 'success'
138
+ });
139
+ const { result } = renderHook(()=>useISVBucketStatus('test-bucket'), {
140
+ wrapper: createTestWrapper()
141
+ });
142
+ expect(result.current.isVeeamBucket).toBe(false);
143
+ expect(result.current.isCommvaultBucket).toBe(true);
144
+ expect(result.current.isISVManaged).toBe(true);
145
+ expect(result.current.isvApplication).toBe('Commvault');
146
+ });
147
+ it('should return false for non-ISV bucket', ()=>{
148
+ mockUseGetBucketTagging.mockReturnValue({
149
+ data: {
150
+ TagSet: [
151
+ {
152
+ Key: 'SomeOtherTag',
153
+ Value: 'SomeValue'
154
+ }
155
+ ]
156
+ },
157
+ status: 'success'
158
+ });
159
+ const { result } = renderHook(()=>useISVBucketStatus('test-bucket'), {
160
+ wrapper: createTestWrapper()
161
+ });
162
+ expect(result.current.isVeeamBucket).toBe(false);
163
+ expect(result.current.isCommvaultBucket).toBe(false);
164
+ expect(result.current.isISVManaged).toBe(false);
165
+ expect(result.current.isvApplication).toBeUndefined();
166
+ });
167
+ it('should return loading state when fetching bucket tags', ()=>{
168
+ mockUseGetBucketTagging.mockReturnValue({
169
+ data: void 0,
170
+ status: 'pending'
171
+ });
172
+ const { result } = renderHook(()=>useISVBucketStatus('test-bucket'), {
173
+ wrapper: createTestWrapper()
174
+ });
175
+ expect(result.current.isLoading).toBe(true);
176
+ });
177
+ it('should not be loading when ISV feature is disabled', ()=>{
178
+ mockUseFeatures.mockReturnValue(false);
179
+ mockUseGetBucketTagging.mockReturnValue({
180
+ data: void 0,
181
+ status: 'pending'
182
+ });
183
+ const { result } = renderHook(()=>useISVBucketStatus('test-bucket'), {
184
+ wrapper: createTestWrapper()
185
+ });
186
+ expect(result.current.isLoading).toBe(false);
187
+ });
188
+ });
@@ -1,24 +1,24 @@
1
- import { useIsBucketEmpty } from "../useIsBucketEmpty.js";
2
- import { useListObjects } from "../objectOperations.js";
3
1
  import { renderHookWithWrapper } from "../../test/testUtils.js";
4
- jest.mock("../objectOperations");
2
+ import { useListObjects } from "../objectOperations.js";
3
+ import { useIsBucketEmpty } from "../useIsBucketEmpty.js";
4
+ jest.mock('../objectOperations');
5
5
  const mockUseListObjects = jest.mocked(useListObjects);
6
- describe("useIsBucketEmpty", ()=>{
6
+ describe('useIsBucketEmpty', ()=>{
7
7
  beforeEach(()=>{
8
8
  jest.clearAllMocks();
9
9
  });
10
- it("returns loading state when checking bucket", ()=>{
10
+ it('returns loading state when checking bucket', ()=>{
11
11
  mockUseListObjects.mockReturnValue({
12
12
  data: void 0,
13
- status: "pending",
13
+ status: 'pending',
14
14
  error: null
15
15
  });
16
- const { result } = renderHookWithWrapper(()=>useIsBucketEmpty("test-bucket"));
16
+ const { result } = renderHookWithWrapper(()=>useIsBucketEmpty('test-bucket'));
17
17
  expect(result.current.isEmpty).toBe(null);
18
18
  expect(result.current.isLoading).toBe(true);
19
19
  expect(result.current.error).toBe(null);
20
20
  });
21
- it("returns true when bucket is empty", ()=>{
21
+ it('returns true when bucket is empty', ()=>{
22
22
  mockUseListObjects.mockReturnValue({
23
23
  data: {
24
24
  pages: [
@@ -28,35 +28,35 @@ describe("useIsBucketEmpty", ()=>{
28
28
  }
29
29
  ]
30
30
  },
31
- status: "success",
31
+ status: 'success',
32
32
  error: null
33
33
  });
34
- const { result } = renderHookWithWrapper(()=>useIsBucketEmpty("test-bucket"));
34
+ const { result } = renderHookWithWrapper(()=>useIsBucketEmpty('test-bucket'));
35
35
  expect(result.current.isEmpty).toBe(true);
36
36
  expect(result.current.isLoading).toBe(false);
37
37
  });
38
- it("returns false when bucket has objects", ()=>{
38
+ it('returns false when bucket has objects', ()=>{
39
39
  mockUseListObjects.mockReturnValue({
40
40
  data: {
41
41
  pages: [
42
42
  {
43
43
  Contents: [
44
44
  {
45
- Key: "file.txt"
45
+ Key: 'file.txt'
46
46
  }
47
47
  ],
48
48
  CommonPrefixes: []
49
49
  }
50
50
  ]
51
51
  },
52
- status: "success",
52
+ status: 'success',
53
53
  error: null
54
54
  });
55
- const { result } = renderHookWithWrapper(()=>useIsBucketEmpty("test-bucket"));
55
+ const { result } = renderHookWithWrapper(()=>useIsBucketEmpty('test-bucket'));
56
56
  expect(result.current.isEmpty).toBe(false);
57
57
  expect(result.current.isLoading).toBe(false);
58
58
  });
59
- it("returns false when bucket has folders", ()=>{
59
+ it('returns false when bucket has folders', ()=>{
60
60
  mockUseListObjects.mockReturnValue({
61
61
  data: {
62
62
  pages: [
@@ -64,32 +64,32 @@ describe("useIsBucketEmpty", ()=>{
64
64
  Contents: [],
65
65
  CommonPrefixes: [
66
66
  {
67
- Prefix: "folder/"
67
+ Prefix: 'folder/'
68
68
  }
69
69
  ]
70
70
  }
71
71
  ]
72
72
  },
73
- status: "success",
73
+ status: 'success',
74
74
  error: null
75
75
  });
76
- const { result } = renderHookWithWrapper(()=>useIsBucketEmpty("test-bucket"));
76
+ const { result } = renderHookWithWrapper(()=>useIsBucketEmpty('test-bucket'));
77
77
  expect(result.current.isEmpty).toBe(false);
78
78
  expect(result.current.isLoading).toBe(false);
79
79
  });
80
- it("handles error state", ()=>{
81
- const testError = new Error("Access denied");
80
+ it('handles error state', ()=>{
81
+ const testError = new Error('Access denied');
82
82
  mockUseListObjects.mockReturnValue({
83
83
  data: void 0,
84
- status: "error",
84
+ status: 'error',
85
85
  error: testError
86
86
  });
87
- const { result } = renderHookWithWrapper(()=>useIsBucketEmpty("test-bucket"));
87
+ const { result } = renderHookWithWrapper(()=>useIsBucketEmpty('test-bucket'));
88
88
  expect(result.current.isEmpty).toBe(null);
89
89
  expect(result.current.isLoading).toBe(false);
90
90
  expect(result.current.error).toBe(testError);
91
91
  });
92
- it("ignores invalid objects and prefixes", ()=>{
92
+ it('ignores invalid objects and prefixes', ()=>{
93
93
  mockUseListObjects.mockReturnValue({
94
94
  data: {
95
95
  pages: [
@@ -99,7 +99,7 @@ describe("useIsBucketEmpty", ()=>{
99
99
  Key: void 0
100
100
  },
101
101
  {
102
- Key: ""
102
+ Key: ''
103
103
  }
104
104
  ],
105
105
  CommonPrefixes: [
@@ -107,16 +107,16 @@ describe("useIsBucketEmpty", ()=>{
107
107
  Prefix: null
108
108
  },
109
109
  {
110
- Prefix: ""
110
+ Prefix: ''
111
111
  }
112
112
  ]
113
113
  }
114
114
  ]
115
115
  },
116
- status: "success",
116
+ status: 'success',
117
117
  error: null
118
118
  });
119
- const { result } = renderHookWithWrapper(()=>useIsBucketEmpty("test-bucket"));
119
+ const { result } = renderHookWithWrapper(()=>useIsBucketEmpty('test-bucket'));
120
120
  expect(result.current.isEmpty).toBe(true);
121
121
  });
122
122
  });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,194 @@
1
+ import { waitFor } from "@testing-library/react";
2
+ import { mockS3Client, renderHookWithWrapper, setupCommonMocks } from "../../test/testUtils.js";
3
+ import { useLoginMutation } from "../loginOperations.js";
4
+ jest.mock('@aws-sdk/client-s3');
5
+ describe('useLoginMutation', ()=>{
6
+ beforeEach(()=>{
7
+ setupCommonMocks();
8
+ jest.clearAllMocks();
9
+ });
10
+ it('calls onSuccess when login is successful', async ()=>{
11
+ const onSuccess = jest.fn();
12
+ mockS3Client.send.mockResolvedValue({
13
+ Buckets: []
14
+ });
15
+ const { result } = renderHookWithWrapper(()=>useLoginMutation({
16
+ onSuccess
17
+ }));
18
+ const config = {
19
+ endpoint: 'https://s3.amazonaws.com',
20
+ region: 'us-east-1',
21
+ forcePathStyle: true,
22
+ credentials: {
23
+ accessKeyId: 'test-key',
24
+ secretAccessKey: 'test-secret'
25
+ }
26
+ };
27
+ result.current.mutate(config);
28
+ await waitFor(()=>{
29
+ expect(result.current.isSuccess).toBe(true);
30
+ });
31
+ expect(onSuccess).toHaveBeenCalled();
32
+ expect(result.current.data).toEqual({
33
+ authenticated: true,
34
+ config
35
+ });
36
+ });
37
+ it('calls onError when user lacks ListBuckets permission', async ()=>{
38
+ const onError = jest.fn();
39
+ class AccessDeniedError extends Error {
40
+ constructor(message){
41
+ super(message);
42
+ this.name = 'AccessDenied';
43
+ }
44
+ $metadata = {
45
+ httpStatusCode: 403
46
+ };
47
+ }
48
+ const accessDeniedError = new AccessDeniedError('Access Denied');
49
+ mockS3Client.send.mockRejectedValue(accessDeniedError);
50
+ const { result } = renderHookWithWrapper(()=>useLoginMutation({
51
+ onError
52
+ }));
53
+ const config = {
54
+ endpoint: 'https://s3.amazonaws.com',
55
+ region: 'us-east-1',
56
+ forcePathStyle: true,
57
+ credentials: {
58
+ accessKeyId: 'test-key',
59
+ secretAccessKey: 'test-secret'
60
+ }
61
+ };
62
+ result.current.mutate(config);
63
+ await waitFor(()=>{
64
+ expect(result.current.isError).toBe(true);
65
+ });
66
+ expect(onError).toHaveBeenCalled();
67
+ expect(result.current.error?.name).toBe('AccessDenied');
68
+ });
69
+ it('calls onError for other errors', async ()=>{
70
+ const onError = jest.fn();
71
+ class InvalidAccessKeyIdError extends Error {
72
+ constructor(message){
73
+ super(message);
74
+ this.name = 'InvalidAccessKeyId';
75
+ }
76
+ $metadata = {
77
+ httpStatusCode: 403
78
+ };
79
+ }
80
+ const invalidCredentialsError = new InvalidAccessKeyIdError('The access key ID you provided does not exist');
81
+ mockS3Client.send.mockRejectedValue(invalidCredentialsError);
82
+ const { result } = renderHookWithWrapper(()=>useLoginMutation({
83
+ onError
84
+ }));
85
+ const config = {
86
+ endpoint: 'https://s3.amazonaws.com',
87
+ region: 'us-east-1',
88
+ forcePathStyle: true,
89
+ credentials: {
90
+ accessKeyId: 'invalid-key',
91
+ secretAccessKey: 'invalid-secret'
92
+ }
93
+ };
94
+ result.current.mutate(config);
95
+ await waitFor(()=>{
96
+ expect(result.current.isError).toBe(true);
97
+ });
98
+ expect(onError).toHaveBeenCalled();
99
+ expect(result.current.error?.name).toBe('InvalidAccessKeyId');
100
+ });
101
+ it('works without onError callback', async ()=>{
102
+ class AccessDeniedError extends Error {
103
+ constructor(message){
104
+ super(message);
105
+ this.name = 'AccessDenied';
106
+ }
107
+ $metadata = {
108
+ httpStatusCode: 403
109
+ };
110
+ }
111
+ const accessDeniedError = new AccessDeniedError('Access Denied');
112
+ mockS3Client.send.mockRejectedValue(accessDeniedError);
113
+ const { result } = renderHookWithWrapper(()=>useLoginMutation());
114
+ const config = {
115
+ endpoint: 'https://s3.amazonaws.com',
116
+ region: 'us-east-1',
117
+ forcePathStyle: true,
118
+ credentials: {
119
+ accessKeyId: 'test-key',
120
+ secretAccessKey: 'test-secret'
121
+ }
122
+ };
123
+ result.current.mutate(config);
124
+ await waitFor(()=>{
125
+ expect(result.current.isError).toBe(true);
126
+ });
127
+ expect(result.current.error?.name).toBe('AccessDenied');
128
+ });
129
+ it('returns authenticated config on successful login', async ()=>{
130
+ mockS3Client.send.mockResolvedValue({
131
+ Buckets: []
132
+ });
133
+ const { result } = renderHookWithWrapper(()=>useLoginMutation());
134
+ const config = {
135
+ endpoint: 'https://s3.amazonaws.com',
136
+ region: 'us-east-1',
137
+ forcePathStyle: true,
138
+ credentials: {
139
+ accessKeyId: 'test-key',
140
+ secretAccessKey: 'test-secret'
141
+ }
142
+ };
143
+ result.current.mutate(config);
144
+ await waitFor(()=>{
145
+ expect(result.current.isSuccess).toBe(true);
146
+ });
147
+ expect(result.current.data).toEqual({
148
+ authenticated: true,
149
+ config
150
+ });
151
+ });
152
+ it('handles network errors appropriately', async ()=>{
153
+ const onError = jest.fn();
154
+ const networkError = new Error('Network request failed');
155
+ mockS3Client.send.mockRejectedValue(networkError);
156
+ const { result } = renderHookWithWrapper(()=>useLoginMutation({
157
+ onError
158
+ }));
159
+ const config = {
160
+ endpoint: 'https://s3.amazonaws.com',
161
+ region: 'us-east-1',
162
+ forcePathStyle: true,
163
+ credentials: {
164
+ accessKeyId: 'test-key',
165
+ secretAccessKey: 'test-secret'
166
+ }
167
+ };
168
+ result.current.mutate(config);
169
+ await waitFor(()=>{
170
+ expect(result.current.isError).toBe(true);
171
+ });
172
+ expect(onError).toHaveBeenCalled();
173
+ });
174
+ it('validates credentials by calling ListBuckets command', async ()=>{
175
+ mockS3Client.send.mockResolvedValue({
176
+ Buckets: []
177
+ });
178
+ const { result } = renderHookWithWrapper(()=>useLoginMutation());
179
+ const config = {
180
+ endpoint: 'https://s3.amazonaws.com',
181
+ region: 'us-east-1',
182
+ forcePathStyle: true,
183
+ credentials: {
184
+ accessKeyId: 'test-key',
185
+ secretAccessKey: 'test-secret'
186
+ }
187
+ };
188
+ result.current.mutate(config);
189
+ await waitFor(()=>{
190
+ expect(result.current.isSuccess).toBe(true);
191
+ });
192
+ expect(mockS3Client.send).toHaveBeenCalled();
193
+ });
194
+ });
@@ -4,7 +4,7 @@
4
4
  * This file contains hooks for managing bucket configuration settings
5
5
  * like ACL, policies, versioning, CORS, lifecycle, etc.
6
6
  */
7
- import { GetBucketAclCommandInput, GetBucketAclCommandOutput, PutBucketAclCommandInput, PutBucketAclCommandOutput, GetBucketPolicyCommandInput, GetBucketPolicyCommandOutput, PutBucketPolicyCommandInput, PutBucketPolicyCommandOutput, DeleteBucketPolicyCommandInput, DeleteBucketPolicyCommandOutput, GetBucketVersioningCommandInput, GetBucketVersioningCommandOutput, PutBucketVersioningCommandInput, PutBucketVersioningCommandOutput, GetBucketCorsCommandInput, GetBucketCorsCommandOutput, PutBucketCorsCommandInput, PutBucketCorsCommandOutput, DeleteBucketCorsCommandInput, DeleteBucketCorsCommandOutput, GetBucketLifecycleConfigurationCommandInput, GetBucketLifecycleConfigurationCommandOutput, PutBucketLifecycleConfigurationCommandInput, PutBucketLifecycleConfigurationCommandOutput, DeleteBucketLifecycleCommandInput, DeleteBucketLifecycleCommandOutput, GetBucketNotificationConfigurationCommandInput, GetBucketNotificationConfigurationCommandOutput, PutBucketNotificationConfigurationCommandInput, PutBucketNotificationConfigurationCommandOutput, GetBucketEncryptionCommandInput, GetBucketEncryptionCommandOutput, PutBucketEncryptionCommandInput, PutBucketEncryptionCommandOutput, GetBucketTaggingCommandInput, GetBucketTaggingCommandOutput, PutBucketTaggingCommandInput, PutBucketTaggingCommandOutput, DeleteBucketTaggingCommandInput, DeleteBucketTaggingCommandOutput, GetObjectLockConfigurationCommandInput, GetObjectLockConfigurationCommandOutput, PutObjectLockConfigurationCommandInput, PutObjectLockConfigurationCommandOutput, GetBucketReplicationCommandInput, GetBucketReplicationCommandOutput, PutBucketReplicationCommandInput, PutBucketReplicationCommandOutput, DeleteBucketReplicationCommandInput, DeleteBucketReplicationCommandOutput } from "@aws-sdk/client-s3";
7
+ import { type DeleteBucketCorsCommandInput, type DeleteBucketCorsCommandOutput, type DeleteBucketLifecycleCommandInput, type DeleteBucketLifecycleCommandOutput, type DeleteBucketPolicyCommandInput, type DeleteBucketPolicyCommandOutput, type DeleteBucketReplicationCommandInput, type DeleteBucketReplicationCommandOutput, type DeleteBucketTaggingCommandInput, type DeleteBucketTaggingCommandOutput, type GetBucketAclCommandInput, type GetBucketAclCommandOutput, type GetBucketCorsCommandInput, type GetBucketCorsCommandOutput, type GetBucketEncryptionCommandInput, type GetBucketEncryptionCommandOutput, type GetBucketLifecycleConfigurationCommandInput, type GetBucketLifecycleConfigurationCommandOutput, type GetBucketNotificationConfigurationCommandInput, type GetBucketNotificationConfigurationCommandOutput, type GetBucketPolicyCommandInput, type GetBucketPolicyCommandOutput, type GetBucketReplicationCommandInput, type GetBucketReplicationCommandOutput, type GetBucketTaggingCommandInput, type GetBucketTaggingCommandOutput, type GetBucketVersioningCommandInput, type GetBucketVersioningCommandOutput, type GetObjectLockConfigurationCommandInput, type GetObjectLockConfigurationCommandOutput, type GetPublicAccessBlockCommandInput, type GetPublicAccessBlockCommandOutput, type PutBucketAclCommandInput, type PutBucketAclCommandOutput, type PutBucketCorsCommandInput, type PutBucketCorsCommandOutput, type PutBucketEncryptionCommandInput, type PutBucketEncryptionCommandOutput, type PutBucketLifecycleConfigurationCommandInput, type PutBucketLifecycleConfigurationCommandOutput, type PutBucketNotificationConfigurationCommandInput, type PutBucketNotificationConfigurationCommandOutput, type PutBucketPolicyCommandInput, type PutBucketPolicyCommandOutput, type PutBucketReplicationCommandInput, type PutBucketReplicationCommandOutput, type PutBucketTaggingCommandInput, type PutBucketTaggingCommandOutput, type PutBucketVersioningCommandInput, type PutBucketVersioningCommandOutput, type PutObjectLockConfigurationCommandInput, type PutObjectLockConfigurationCommandOutput } from '@aws-sdk/client-s3';
8
8
  /**
9
9
  * Hook for retrieving S3 bucket access control list (ACL) settings
10
10
  *
@@ -166,3 +166,10 @@ export declare const useSetBucketReplication: (options?: Omit<import("@tanstack/
166
166
  * been replicated remain in the destination bucket.
167
167
  */
168
168
  export declare const useDeleteBucketReplication: (options?: Omit<import("@tanstack/react-query").UseMutationOptions<DeleteBucketReplicationCommandOutput, import("..").EnhancedS3Error, DeleteBucketReplicationCommandInput, unknown>, "mutationFn"> | undefined) => import("@tanstack/react-query").UseMutationResult<DeleteBucketReplicationCommandOutput, import("..").EnhancedS3Error, DeleteBucketReplicationCommandInput>;
169
+ /**
170
+ * Hook for retrieving S3 bucket public access block configuration
171
+ *
172
+ * Fetches the public access block configuration for an S3 bucket.
173
+ * This configuration determines whether public access is blocked at the bucket level.
174
+ */
175
+ export declare const useGetPublicAccessBlock: (params?: GetPublicAccessBlockCommandInput | undefined, options?: Omit<import("@tanstack/react-query").UseQueryOptions<GetPublicAccessBlockCommandOutput, import("..").EnhancedS3Error, GetPublicAccessBlockCommandOutput, readonly unknown[]>, "queryKey" | "queryFn"> | undefined) => import("@tanstack/react-query").UseQueryResult<GetPublicAccessBlockCommandOutput, import("..").EnhancedS3Error>;