@scality/data-browser-library 1.0.0-preview.9 → 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.
- package/dist/components/DataBrowserUI.d.ts +12 -0
- package/dist/components/DataBrowserUI.js +99 -0
- package/dist/components/Editor.d.ts +1 -1
- package/dist/components/Editor.js +3 -3
- package/dist/components/__tests__/BucketAccessor.test.js +214 -0
- package/dist/components/__tests__/BucketCorsPage.test.d.ts +1 -0
- package/dist/components/__tests__/BucketCorsPage.test.js +263 -0
- package/dist/components/__tests__/BucketCreate.test.js +271 -105
- package/dist/components/__tests__/BucketDetails.test.d.ts +1 -0
- package/dist/components/__tests__/BucketDetails.test.js +421 -0
- package/dist/components/__tests__/BucketLifecycleFormPage.test.d.ts +13 -0
- package/dist/components/__tests__/BucketLifecycleFormPage.test.js +178 -178
- package/dist/components/__tests__/BucketLifecycleList.test.js +85 -85
- package/dist/components/__tests__/BucketList.test.js +463 -239
- package/dist/components/__tests__/BucketNotificationFormPage.test.d.ts +1 -0
- package/dist/components/__tests__/BucketNotificationFormPage.test.js +348 -0
- package/dist/components/__tests__/BucketNotificationList.test.d.ts +1 -0
- package/dist/components/__tests__/BucketNotificationList.test.js +379 -0
- package/dist/components/__tests__/BucketOverview.test.js +281 -266
- package/dist/components/__tests__/BucketPolicyPage.test.js +151 -99
- package/dist/components/__tests__/BucketReplicationFormPage.test.d.ts +15 -0
- package/dist/components/__tests__/BucketReplicationFormPage.test.js +544 -544
- package/dist/components/__tests__/BucketReplicationList.test.js +106 -106
- package/dist/components/__tests__/CreateFolderButton.test.js +56 -56
- package/dist/components/__tests__/DeleteBucketButton.test.js +64 -64
- package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.js +47 -47
- package/dist/components/__tests__/DeleteObjectButton.test.js +64 -64
- package/dist/components/__tests__/EmptyBucketButton.test.js +59 -59
- package/dist/components/__tests__/MetadataSearch.test.js +65 -65
- package/dist/components/__tests__/ObjectList.test.js +741 -240
- package/dist/components/__tests__/UploadButton.test.js +45 -45
- package/dist/components/breadcrumb/Breadcrumb.d.ts +6 -0
- package/dist/components/breadcrumb/Breadcrumb.js +37 -0
- package/dist/components/breadcrumb/DataBrowserBreadcrumb.d.ts +1 -0
- package/dist/components/breadcrumb/DataBrowserBreadcrumb.js +10 -0
- package/dist/components/breadcrumb/__tests__/Breadcrumb.test.d.ts +1 -0
- package/dist/components/breadcrumb/__tests__/Breadcrumb.test.js +196 -0
- package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.d.ts +1 -0
- package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.js +153 -0
- package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.d.ts +1 -0
- package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.js +134 -0
- package/dist/components/breadcrumb/index.d.ts +8 -0
- package/dist/components/breadcrumb/index.js +4 -0
- package/dist/components/breadcrumb/useBreadcrumbPaths.d.ts +2 -0
- package/dist/components/breadcrumb/useBreadcrumbPaths.js +82 -0
- package/dist/components/buckets/BucketAccessor.d.ts +2 -0
- package/dist/components/buckets/BucketAccessor.js +125 -0
- package/dist/components/buckets/BucketConfigEditButton.d.ts +8 -0
- package/dist/components/buckets/{BucketPolicyButton.js → BucketConfigEditButton.js} +9 -5
- package/dist/components/buckets/BucketCorsPage.d.ts +1 -0
- package/dist/components/buckets/BucketCorsPage.js +234 -0
- package/dist/components/buckets/BucketCreate.d.ts +3 -2
- package/dist/components/buckets/BucketCreate.js +89 -47
- package/dist/components/buckets/BucketDetails.d.ts +42 -0
- package/dist/components/buckets/BucketDetails.js +249 -85
- package/dist/components/buckets/BucketLifecycleFormPage.js +206 -190
- package/dist/components/buckets/BucketLifecycleList.d.ts +2 -2
- package/dist/components/buckets/BucketLifecycleList.js +47 -47
- package/dist/components/buckets/BucketList.d.ts +7 -8
- package/dist/components/buckets/BucketList.js +158 -101
- package/dist/components/buckets/BucketLocation.js +4 -4
- package/dist/components/buckets/BucketOverview.d.ts +22 -2
- package/dist/components/buckets/BucketOverview.js +394 -187
- package/dist/components/buckets/BucketPage.js +43 -21
- package/dist/components/buckets/BucketPolicyPage.js +155 -127
- package/dist/components/buckets/BucketReplicationFormPage.js +134 -133
- package/dist/components/buckets/BucketReplicationList.d.ts +2 -2
- package/dist/components/buckets/BucketReplicationList.js +42 -42
- package/dist/components/buckets/BucketVersioning.d.ts +4 -0
- package/dist/components/buckets/BucketVersioning.js +76 -0
- package/dist/components/buckets/DeleteBucketButton.js +8 -8
- package/dist/components/buckets/DeleteBucketConfigRuleButton.d.ts +2 -2
- package/dist/components/buckets/DeleteBucketConfigRuleButton.js +2 -2
- package/dist/components/buckets/EmptyBucketButton.js +24 -24
- package/dist/components/buckets/EmptyBucketSummary.d.ts +2 -2
- package/dist/components/buckets/EmptyBucketSummary.js +1 -1
- package/dist/components/buckets/EmptyBucketSummaryList.d.ts +1 -1
- package/dist/components/buckets/EmptyBucketSummaryList.js +22 -22
- package/dist/components/buckets/__tests__/BucketVersioning.test.d.ts +1 -0
- package/dist/components/buckets/__tests__/BucketVersioning.test.js +163 -0
- package/dist/components/buckets/notifications/BucketNotificationFormPage.d.ts +1 -0
- package/dist/components/buckets/notifications/BucketNotificationFormPage.js +316 -0
- package/dist/components/buckets/notifications/BucketNotificationList.d.ts +10 -0
- package/dist/components/buckets/notifications/BucketNotificationList.js +267 -0
- package/dist/components/buckets/notifications/EventsSection.js +145 -29
- package/dist/components/buckets/notifications/__tests__/events.test.d.ts +1 -0
- package/dist/components/buckets/notifications/__tests__/events.test.js +56 -0
- package/dist/components/buckets/notifications/events.d.ts +71 -7
- package/dist/components/buckets/notifications/events.js +98 -16
- package/dist/components/index.d.ts +27 -20
- package/dist/components/index.js +17 -10
- package/dist/components/layouts/ArrowNavigation.d.ts +3 -0
- package/dist/components/layouts/ArrowNavigation.js +28 -0
- package/dist/components/layouts/BrowserPageLayout.d.ts +5 -1
- package/dist/components/layouts/BrowserPageLayout.js +10 -5
- package/dist/components/objects/CreateFolderButton.d.ts +2 -2
- package/dist/components/objects/CreateFolderButton.js +12 -12
- package/dist/components/objects/DeleteObjectButton.d.ts +1 -1
- package/dist/components/objects/DeleteObjectButton.js +19 -21
- package/dist/components/objects/GetPresignedUrlButton.d.ts +7 -0
- package/dist/components/objects/GetPresignedUrlButton.js +255 -0
- package/dist/components/objects/ObjectDetails/ObjectMetadata.d.ts +2 -2
- package/dist/components/objects/ObjectDetails/ObjectMetadata.js +263 -230
- package/dist/components/objects/ObjectDetails/ObjectSummary.d.ts +2 -2
- package/dist/components/objects/ObjectDetails/ObjectSummary.js +540 -138
- package/dist/components/objects/ObjectDetails/ObjectTags.d.ts +2 -2
- package/dist/components/objects/ObjectDetails/ObjectTags.js +95 -123
- package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.d.ts +1 -0
- package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.js +516 -0
- package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.d.ts +1 -0
- package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.js +1064 -0
- package/dist/components/objects/ObjectDetails/index.d.ts +18 -2
- package/dist/components/objects/ObjectDetails/index.js +152 -40
- package/dist/components/objects/ObjectList.d.ts +12 -10
- package/dist/components/objects/ObjectList.js +590 -263
- package/dist/components/objects/ObjectLock/EditRetentionButton.js +4 -4
- package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.js +15 -15
- package/dist/components/objects/ObjectLock/ObjectLockSettings.d.ts +1 -1
- package/dist/components/objects/ObjectLock/ObjectLockSettings.js +32 -31
- package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.d.ts +1 -1
- package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.js +6 -6
- package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.js +51 -51
- package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.js +78 -78
- package/dist/components/objects/ObjectPage.js +12 -8
- package/dist/components/objects/UploadButton.d.ts +3 -3
- package/dist/components/objects/UploadButton.js +10 -10
- package/dist/components/objects/__tests__/GetPresignedUrlButton.test.d.ts +1 -0
- package/dist/components/objects/__tests__/GetPresignedUrlButton.test.js +531 -0
- package/dist/components/providers/DataBrowserProvider.d.ts +23 -12
- package/dist/components/providers/DataBrowserProvider.js +60 -38
- package/dist/components/providers/QueryProvider.d.ts +9 -0
- package/dist/components/providers/QueryProvider.js +21 -0
- package/dist/components/search/MetadataSearch.js +29 -28
- package/dist/components/search/SearchHints.js +1 -1
- package/dist/components/ui/ArrayFieldActions.js +12 -7
- package/dist/components/ui/ConfirmDeleteRuleModal.d.ts +2 -2
- package/dist/components/ui/ConfirmDeleteRuleModal.js +6 -1
- package/dist/components/ui/DeleteObjectModalContent.d.ts +1 -1
- package/dist/components/ui/DeleteObjectModalContent.js +12 -12
- package/dist/components/ui/FilterFormSection.d.ts +2 -2
- package/dist/components/ui/FilterFormSection.js +29 -29
- package/dist/components/ui/Search.elements.d.ts +2 -2
- package/dist/components/ui/Search.elements.js +7 -7
- package/dist/components/ui/Table.elements.d.ts +2 -1
- package/dist/components/ui/Table.elements.js +18 -12
- package/dist/config/__tests__/factory.test.d.ts +1 -0
- package/dist/config/__tests__/factory.test.js +311 -0
- package/dist/config/factory.d.ts +10 -56
- package/dist/config/factory.js +23 -71
- package/dist/config/types.d.ts +212 -34
- package/dist/contexts/DataBrowserUICustomizationContext.d.ts +27 -0
- package/dist/contexts/DataBrowserUICustomizationContext.js +13 -0
- package/dist/hooks/__tests__/useAccessibleBuckets.test.d.ts +1 -0
- package/dist/hooks/__tests__/useAccessibleBuckets.test.js +145 -0
- package/dist/hooks/__tests__/useISVBucketDetection.test.js +45 -45
- package/dist/hooks/__tests__/useIsBucketEmpty.test.js +27 -27
- package/dist/hooks/__tests__/useLoginMutation.test.d.ts +1 -0
- package/dist/hooks/__tests__/useLoginMutation.test.js +194 -0
- package/dist/hooks/bucketConfiguration.d.ts +8 -1
- package/dist/hooks/bucketConfiguration.js +52 -51
- package/dist/hooks/bucketOperations.d.ts +10 -1
- package/dist/hooks/bucketOperations.js +10 -9
- package/dist/hooks/factories/__tests__/useCreateS3FunctionMutationHook.test.js +80 -80
- package/dist/hooks/factories/__tests__/useCreateS3InfiniteQueryHook.test.js +80 -80
- package/dist/hooks/factories/__tests__/useCreateS3LoginHook.test.js +44 -44
- package/dist/hooks/factories/__tests__/useCreateS3MutationHook.test.js +63 -63
- package/dist/hooks/factories/__tests__/useCreateS3QueryHook.test.js +65 -65
- package/dist/hooks/factories/index.d.ts +4 -4
- package/dist/hooks/factories/index.js +2 -2
- package/dist/hooks/factories/useCreateS3InfiniteQueryHook.d.ts +2 -2
- package/dist/hooks/factories/useCreateS3InfiniteQueryHook.js +16 -13
- package/dist/hooks/factories/useCreateS3LoginHook.d.ts +2 -2
- package/dist/hooks/factories/useCreateS3LoginHook.js +1 -1
- package/dist/hooks/factories/useCreateS3MutationHook.d.ts +3 -3
- package/dist/hooks/factories/useCreateS3MutationHook.js +7 -2
- package/dist/hooks/factories/useCreateS3QueryHook.d.ts +2 -2
- package/dist/hooks/factories/useCreateS3QueryHook.js +11 -6
- package/dist/hooks/index.d.ts +19 -12
- package/dist/hooks/index.js +16 -9
- package/dist/hooks/loginOperations.d.ts +1 -1
- package/dist/hooks/loginOperations.js +1 -1
- package/dist/hooks/objectOperations.d.ts +2 -2
- package/dist/hooks/objectOperations.js +50 -49
- package/dist/hooks/presignedOperations.d.ts +4 -4
- package/dist/hooks/presignedOperations.js +5 -5
- package/dist/hooks/useAccessibleBuckets.d.ts +11 -0
- package/dist/hooks/useAccessibleBuckets.js +115 -0
- package/dist/hooks/useBatchObjectLegalHold.d.ts +11 -0
- package/dist/hooks/useBatchObjectLegalHold.js +48 -0
- package/dist/hooks/useBucketConfigEditor.d.ts +31 -0
- package/dist/hooks/useBucketConfigEditor.js +82 -0
- package/dist/hooks/useDataBrowserNavigate.d.ts +28 -0
- package/dist/hooks/useDataBrowserNavigate.js +24 -0
- package/dist/hooks/useDeleteBucketConfigRule.d.ts +2 -2
- package/dist/hooks/useDeleteBucketConfigRule.js +4 -4
- package/dist/hooks/useEmptyBucket.js +11 -11
- package/dist/hooks/useFeatures.d.ts +7 -0
- package/dist/hooks/useFeatures.js +8 -0
- package/dist/hooks/useISVBucketDetection.js +6 -6
- package/dist/hooks/useIsBucketEmpty.js +4 -4
- package/dist/hooks/useLimitedAccessFlow.d.ts +48 -0
- package/dist/hooks/useLimitedAccessFlow.js +23 -0
- package/dist/hooks/useS3Client.d.ts +6 -0
- package/dist/hooks/useS3Client.js +3 -2
- package/dist/hooks/useS3ConfigSwitch.d.ts +11 -0
- package/dist/hooks/useS3ConfigSwitch.js +37 -0
- package/dist/hooks/useSupportedNotificationEvents.d.ts +6 -0
- package/dist/hooks/useSupportedNotificationEvents.js +8 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +2 -2
- package/dist/schemas/bucketPolicySchema.json +3 -13
- package/dist/test/msw/handlers/deleteBucket.d.ts +1 -1
- package/dist/test/msw/handlers/deleteBucket.js +20 -10
- package/dist/test/msw/handlers/getBucketAcl.d.ts +1 -1
- package/dist/test/msw/handlers/getBucketAcl.js +29 -17
- package/dist/test/msw/handlers/getBucketLocation.d.ts +1 -1
- package/dist/test/msw/handlers/getBucketLocation.js +29 -15
- package/dist/test/msw/handlers/getBucketPolicy.d.ts +1 -1
- package/dist/test/msw/handlers/getBucketPolicy.js +52 -32
- package/dist/test/msw/handlers/headObject.d.ts +1 -1
- package/dist/test/msw/handlers/headObject.js +31 -13
- package/dist/test/msw/handlers/listBuckets.d.ts +1 -1
- package/dist/test/msw/handlers/listBuckets.js +5 -3
- package/dist/test/msw/handlers/listObjectVersions.d.ts +1 -1
- package/dist/test/msw/handlers/listObjectVersions.js +38 -26
- package/dist/test/msw/handlers/listObjects.d.ts +1 -1
- package/dist/test/msw/handlers/listObjects.js +35 -23
- package/dist/test/msw/handlers/objectLegalHold.d.ts +1 -1
- package/dist/test/msw/handlers/objectLegalHold.js +32 -17
- package/dist/test/msw/handlers/objectRetention.d.ts +1 -1
- package/dist/test/msw/handlers/objectRetention.js +31 -17
- package/dist/test/msw/handlers/putBucketAcl.d.ts +1 -1
- package/dist/test/msw/handlers/putBucketAcl.js +29 -14
- package/dist/test/msw/handlers/putObject.d.ts +1 -1
- package/dist/test/msw/handlers/putObject.js +27 -12
- package/dist/test/msw/handlers.d.ts +3 -3
- package/dist/test/msw/handlers.js +77 -54
- package/dist/test/msw/index.d.ts +2 -2
- package/dist/test/msw/index.js +1 -1
- package/dist/test/msw/server.d.ts +1 -1
- package/dist/test/msw/server.js +1 -1
- package/dist/test/msw/utils.js +2 -2
- package/dist/test/setup.d.ts +1 -1
- package/dist/test/setup.js +13 -30
- package/dist/test/testUtils.d.ts +85 -33
- package/dist/test/testUtils.js +176 -111
- package/dist/test/utils/errorHandling.test.js +119 -119
- package/dist/types/index.d.ts +49 -36
- package/dist/types/monaco.d.ts +13 -0
- package/dist/types/monaco.js +0 -0
- package/dist/utils/__tests__/proxyMiddleware.test.d.ts +1 -0
- package/dist/utils/__tests__/proxyMiddleware.test.js +579 -0
- package/dist/utils/__tests__/s3Client.test.d.ts +1 -0
- package/dist/utils/__tests__/s3Client.test.js +340 -0
- package/dist/utils/__tests__/s3ConfigIdentifier.test.d.ts +1 -0
- package/dist/utils/__tests__/s3ConfigIdentifier.test.js +437 -0
- package/dist/utils/constants.d.ts +10 -0
- package/dist/utils/constants.js +19 -9
- package/dist/utils/deletion/index.d.ts +2 -2
- package/dist/utils/deletion/index.js +1 -1
- package/dist/utils/deletion/messages.d.ts +1 -1
- package/dist/utils/deletion/messages.js +4 -4
- package/dist/utils/errorHandling.d.ts +3 -3
- package/dist/utils/errorHandling.js +6 -6
- package/dist/utils/hooks.js +8 -8
- package/dist/utils/index.d.ts +5 -4
- package/dist/utils/index.js +4 -2
- package/dist/utils/proxyMiddleware.d.ts +32 -13
- package/dist/utils/proxyMiddleware.js +90 -36
- package/dist/utils/s3Client.d.ts +14 -4
- package/dist/utils/s3Client.js +5 -26
- package/dist/utils/s3ConfigIdentifier.d.ts +79 -0
- package/dist/utils/s3ConfigIdentifier.js +57 -0
- package/dist/utils/s3RuleUtils.d.ts +5 -5
- package/dist/utils/s3RuleUtils.js +17 -17
- package/package.json +10 -8
- package/dist/components/__tests__/BucketNotificationCreatePage.test.js +0 -316
- package/dist/components/buckets/BucketPolicyButton.d.ts +0 -7
- package/dist/components/buckets/notifications/BucketNotificationCreatePage.d.ts +0 -1
- package/dist/components/buckets/notifications/BucketNotificationCreatePage.js +0 -234
- package/dist/hooks/useLoginMutation.d.ts +0 -21
- package/dist/hooks/useLoginMutation.js +0 -9
- package/dist/utils/useFeatures.d.ts +0 -1
- package/dist/utils/useFeatures.js +0 -7
- /package/dist/components/__tests__/{BucketNotificationCreatePage.test.d.ts → BucketAccessor.test.d.ts} +0 -0
|
@@ -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
|
-
|
|
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(
|
|
6
|
+
describe('useIsBucketEmpty', ()=>{
|
|
7
7
|
beforeEach(()=>{
|
|
8
8
|
jest.clearAllMocks();
|
|
9
9
|
});
|
|
10
|
-
it(
|
|
10
|
+
it('returns loading state when checking bucket', ()=>{
|
|
11
11
|
mockUseListObjects.mockReturnValue({
|
|
12
12
|
data: void 0,
|
|
13
|
-
status:
|
|
13
|
+
status: 'pending',
|
|
14
14
|
error: null
|
|
15
15
|
});
|
|
16
|
-
const { result } = renderHookWithWrapper(()=>useIsBucketEmpty(
|
|
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(
|
|
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:
|
|
31
|
+
status: 'success',
|
|
32
32
|
error: null
|
|
33
33
|
});
|
|
34
|
-
const { result } = renderHookWithWrapper(()=>useIsBucketEmpty(
|
|
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(
|
|
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:
|
|
45
|
+
Key: 'file.txt'
|
|
46
46
|
}
|
|
47
47
|
],
|
|
48
48
|
CommonPrefixes: []
|
|
49
49
|
}
|
|
50
50
|
]
|
|
51
51
|
},
|
|
52
|
-
status:
|
|
52
|
+
status: 'success',
|
|
53
53
|
error: null
|
|
54
54
|
});
|
|
55
|
-
const { result } = renderHookWithWrapper(()=>useIsBucketEmpty(
|
|
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(
|
|
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:
|
|
67
|
+
Prefix: 'folder/'
|
|
68
68
|
}
|
|
69
69
|
]
|
|
70
70
|
}
|
|
71
71
|
]
|
|
72
72
|
},
|
|
73
|
-
status:
|
|
73
|
+
status: 'success',
|
|
74
74
|
error: null
|
|
75
75
|
});
|
|
76
|
-
const { result } = renderHookWithWrapper(()=>useIsBucketEmpty(
|
|
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(
|
|
81
|
-
const testError = new Error(
|
|
80
|
+
it('handles error state', ()=>{
|
|
81
|
+
const testError = new Error('Access denied');
|
|
82
82
|
mockUseListObjects.mockReturnValue({
|
|
83
83
|
data: void 0,
|
|
84
|
-
status:
|
|
84
|
+
status: 'error',
|
|
85
85
|
error: testError
|
|
86
86
|
});
|
|
87
|
-
const { result } = renderHookWithWrapper(()=>useIsBucketEmpty(
|
|
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(
|
|
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:
|
|
116
|
+
status: 'success',
|
|
117
117
|
error: null
|
|
118
118
|
});
|
|
119
|
-
const { result } = renderHookWithWrapper(()=>useIsBucketEmpty(
|
|
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 {
|
|
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>;
|
|
@@ -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
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
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,
|
|
10
|
-
const useSetBucketPolicy = useCreateS3MutationHook(PutBucketPolicyCommand,
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
const useGetBucketPolicy = useCreateS3QueryHook(GetBucketPolicyCommand, 'GetBucketPolicy');
|
|
10
|
+
const useSetBucketPolicy = useCreateS3MutationHook(PutBucketPolicyCommand, 'PutBucketPolicy', [
|
|
11
|
+
'GetBucketPolicy',
|
|
12
|
+
'ListBuckets'
|
|
13
13
|
]);
|
|
14
|
-
const useDeleteBucketPolicy = useCreateS3MutationHook(DeleteBucketPolicyCommand,
|
|
15
|
-
|
|
14
|
+
const useDeleteBucketPolicy = useCreateS3MutationHook(DeleteBucketPolicyCommand, 'DeleteBucketPolicy', [
|
|
15
|
+
'GetBucketPolicy'
|
|
16
16
|
]);
|
|
17
|
-
const useGetBucketVersioning = useCreateS3QueryHook(GetBucketVersioningCommand,
|
|
18
|
-
const useSetBucketVersioning = useCreateS3MutationHook(PutBucketVersioningCommand,
|
|
19
|
-
|
|
17
|
+
const useGetBucketVersioning = useCreateS3QueryHook(GetBucketVersioningCommand, 'GetBucketVersioning');
|
|
18
|
+
const useSetBucketVersioning = useCreateS3MutationHook(PutBucketVersioningCommand, 'PutBucketVersioning', [
|
|
19
|
+
'GetBucketVersioning'
|
|
20
20
|
]);
|
|
21
|
-
const useGetBucketCors = useCreateS3QueryHook(GetBucketCorsCommand,
|
|
22
|
-
const useSetBucketCors = useCreateS3MutationHook(PutBucketCorsCommand,
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
const useGetBucketCors = useCreateS3QueryHook(GetBucketCorsCommand, 'GetBucketCors');
|
|
22
|
+
const useSetBucketCors = useCreateS3MutationHook(PutBucketCorsCommand, 'PutBucketCors', [
|
|
23
|
+
'GetBucketCors',
|
|
24
|
+
'ListBuckets'
|
|
25
25
|
]);
|
|
26
|
-
const useDeleteBucketCors = useCreateS3MutationHook(DeleteBucketCorsCommand,
|
|
27
|
-
|
|
26
|
+
const useDeleteBucketCors = useCreateS3MutationHook(DeleteBucketCorsCommand, 'DeleteBucketCors', [
|
|
27
|
+
'GetBucketCors'
|
|
28
28
|
]);
|
|
29
|
-
const useGetBucketLifecycle = useCreateS3QueryHook(GetBucketLifecycleConfigurationCommand,
|
|
30
|
-
const useSetBucketLifecycle = useCreateS3MutationHook(PutBucketLifecycleConfigurationCommand,
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
const useGetBucketLifecycle = useCreateS3QueryHook(GetBucketLifecycleConfigurationCommand, 'GetBucketLifecycleConfiguration');
|
|
30
|
+
const useSetBucketLifecycle = useCreateS3MutationHook(PutBucketLifecycleConfigurationCommand, 'PutBucketLifecycleConfiguration', [
|
|
31
|
+
'GetBucketLifecycleConfiguration',
|
|
32
|
+
'ListBuckets'
|
|
33
33
|
]);
|
|
34
|
-
const useDeleteBucketLifecycle = useCreateS3MutationHook(DeleteBucketLifecycleCommand,
|
|
35
|
-
|
|
34
|
+
const useDeleteBucketLifecycle = useCreateS3MutationHook(DeleteBucketLifecycleCommand, 'DeleteBucketLifecycle', [
|
|
35
|
+
'GetBucketLifecycleConfiguration'
|
|
36
36
|
]);
|
|
37
|
-
const useGetBucketNotification = useCreateS3QueryHook(GetBucketNotificationConfigurationCommand,
|
|
38
|
-
const useSetBucketNotification = useCreateS3MutationHook(PutBucketNotificationConfigurationCommand,
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
const useGetBucketNotification = useCreateS3QueryHook(GetBucketNotificationConfigurationCommand, 'GetBucketNotificationConfiguration');
|
|
38
|
+
const useSetBucketNotification = useCreateS3MutationHook(PutBucketNotificationConfigurationCommand, 'PutBucketNotificationConfiguration', [
|
|
39
|
+
'GetBucketNotificationConfiguration',
|
|
40
|
+
'ListBuckets'
|
|
41
41
|
]);
|
|
42
|
-
const useGetBucketEncryption = useCreateS3QueryHook(GetBucketEncryptionCommand,
|
|
43
|
-
const useSetBucketEncryption = useCreateS3MutationHook(PutBucketEncryptionCommand,
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
const useGetBucketEncryption = useCreateS3QueryHook(GetBucketEncryptionCommand, 'GetBucketEncryption');
|
|
43
|
+
const useSetBucketEncryption = useCreateS3MutationHook(PutBucketEncryptionCommand, 'PutBucketEncryption', [
|
|
44
|
+
'GetBucketEncryption',
|
|
45
|
+
'ListBuckets'
|
|
46
46
|
]);
|
|
47
|
-
const useGetBucketTagging = useCreateS3QueryHook(GetBucketTaggingCommand,
|
|
48
|
-
const useSetBucketTagging = useCreateS3MutationHook(PutBucketTaggingCommand,
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
const useGetBucketTagging = useCreateS3QueryHook(GetBucketTaggingCommand, 'GetBucketTagging');
|
|
48
|
+
const useSetBucketTagging = useCreateS3MutationHook(PutBucketTaggingCommand, 'PutBucketTagging', [
|
|
49
|
+
'GetBucketTagging',
|
|
50
|
+
'ListBuckets'
|
|
51
51
|
]);
|
|
52
|
-
const useDeleteBucketTagging = useCreateS3MutationHook(DeleteBucketTaggingCommand,
|
|
53
|
-
|
|
52
|
+
const useDeleteBucketTagging = useCreateS3MutationHook(DeleteBucketTaggingCommand, 'DeleteBucketTagging', [
|
|
53
|
+
'GetBucketTagging'
|
|
54
54
|
]);
|
|
55
|
-
const useGetBucketObjectLockConfiguration = useCreateS3QueryHook(GetObjectLockConfigurationCommand,
|
|
56
|
-
const useSetBucketObjectLockConfiguration = useCreateS3MutationHook(PutObjectLockConfigurationCommand,
|
|
57
|
-
|
|
55
|
+
const useGetBucketObjectLockConfiguration = useCreateS3QueryHook(GetObjectLockConfigurationCommand, 'GetObjectLockConfiguration');
|
|
56
|
+
const useSetBucketObjectLockConfiguration = useCreateS3MutationHook(PutObjectLockConfigurationCommand, 'PutObjectLockConfiguration', [
|
|
57
|
+
'GetObjectLockConfiguration'
|
|
58
58
|
]);
|
|
59
|
-
const useGetBucketReplication = useCreateS3QueryHook(GetBucketReplicationCommand,
|
|
60
|
-
const useSetBucketReplication = useCreateS3MutationHook(PutBucketReplicationCommand,
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
const useGetBucketReplication = useCreateS3QueryHook(GetBucketReplicationCommand, 'GetBucketReplication');
|
|
60
|
+
const useSetBucketReplication = useCreateS3MutationHook(PutBucketReplicationCommand, 'PutBucketReplication', [
|
|
61
|
+
'GetBucketReplication',
|
|
62
|
+
'ListBuckets'
|
|
63
63
|
]);
|
|
64
|
-
const useDeleteBucketReplication = useCreateS3MutationHook(DeleteBucketReplicationCommand,
|
|
65
|
-
|
|
64
|
+
const useDeleteBucketReplication = useCreateS3MutationHook(DeleteBucketReplicationCommand, 'DeleteBucketReplication', [
|
|
65
|
+
'GetBucketReplication'
|
|
66
66
|
]);
|
|
67
|
-
|
|
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 {
|
|
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
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
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,
|
|
10
|
-
|
|
9
|
+
const useDeleteBucket = useCreateS3MutationHook(DeleteBucketCommand, 'DeleteBucket', [
|
|
10
|
+
'ListBuckets'
|
|
11
11
|
]);
|
|
12
|
-
|
|
12
|
+
const useValidateBucketAccess = useCreateS3QueryHook(ListObjectsV2Command, 'ValidateBucketAccess');
|
|
13
|
+
export { useBuckets, useCreateBucket, useDeleteBucket, useGetBucketLocation, useValidateBucketAccess };
|