@scality/data-browser-library 1.0.0-preview.9 → 1.0.3
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 +93 -47
- package/dist/components/buckets/BucketDetails.d.ts +42 -0
- package/dist/components/buckets/BucketDetails.js +249 -85
- package/dist/components/buckets/BucketLifecycleFormPage.js +225 -191
- package/dist/components/buckets/BucketLifecycleList.d.ts +2 -2
- package/dist/components/buckets/BucketLifecycleList.js +59 -61
- 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 +48 -45
- 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 +289 -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 +103 -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/formUtils.d.ts +15 -0
- package/dist/components/objects/ObjectDetails/formUtils.js +7 -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 +50 -37
- 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,10 +1,10 @@
|
|
|
1
1
|
import { renderHook, waitFor } from "@testing-library/react";
|
|
2
|
-
import {
|
|
3
|
-
import { useS3Client } from "../../useS3Client.js";
|
|
2
|
+
import { createTestWrapper, validateFactoryHook, validateHookResult } from "../../../test/testUtils.js";
|
|
4
3
|
import { createS3OperationError, isNotFoundError } from "../../../utils/errorHandling.js";
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
jest.mock(
|
|
4
|
+
import { useS3Client } from "../../useS3Client.js";
|
|
5
|
+
import { useCreateS3QueryHook } from "../useCreateS3QueryHook.js";
|
|
6
|
+
jest.mock('../../useS3Client');
|
|
7
|
+
jest.mock('../../../utils/errorHandling');
|
|
8
8
|
const mockUseS3Client = useS3Client;
|
|
9
9
|
const mockCreateS3OperationError = createS3OperationError;
|
|
10
10
|
const mockIsNotFoundError = isNotFoundError;
|
|
@@ -17,48 +17,48 @@ class MockCommand {
|
|
|
17
17
|
const mockS3Client = {
|
|
18
18
|
send: jest.fn()
|
|
19
19
|
};
|
|
20
|
-
describe(
|
|
20
|
+
describe('useCreateS3QueryHook - Factory Specific', ()=>{
|
|
21
21
|
beforeEach(()=>{
|
|
22
22
|
jest.clearAllMocks();
|
|
23
23
|
mockUseS3Client.mockReturnValue(mockS3Client);
|
|
24
24
|
});
|
|
25
|
-
it(
|
|
26
|
-
const useTestQuery = useCreateS3QueryHook(MockCommand,
|
|
27
|
-
validateFactoryHook(useTestQuery,
|
|
25
|
+
it('should create a functioning query hook', ()=>{
|
|
26
|
+
const useTestQuery = useCreateS3QueryHook(MockCommand, 'testOperation');
|
|
27
|
+
validateFactoryHook(useTestQuery, 'testOperation');
|
|
28
28
|
const { result } = renderHook(()=>useTestQuery({
|
|
29
|
-
testParam:
|
|
29
|
+
testParam: 'value'
|
|
30
30
|
}), {
|
|
31
|
-
wrapper:
|
|
31
|
+
wrapper: createTestWrapper()
|
|
32
32
|
});
|
|
33
|
-
validateHookResult(result.current,
|
|
33
|
+
validateHookResult(result.current, 'query');
|
|
34
34
|
});
|
|
35
|
-
it(
|
|
36
|
-
const useTestQuery = useCreateS3QueryHook(MockCommand,
|
|
35
|
+
it('should accept and forward query options correctly', ()=>{
|
|
36
|
+
const useTestQuery = useCreateS3QueryHook(MockCommand, 'testOperation');
|
|
37
37
|
const customOptions = {
|
|
38
38
|
enabled: false,
|
|
39
39
|
staleTime: 5000,
|
|
40
40
|
refetchOnWindowFocus: false
|
|
41
41
|
};
|
|
42
42
|
const { result } = renderHook(()=>useTestQuery({
|
|
43
|
-
testParam:
|
|
43
|
+
testParam: 'value'
|
|
44
44
|
}, customOptions), {
|
|
45
|
-
wrapper:
|
|
45
|
+
wrapper: createTestWrapper()
|
|
46
46
|
});
|
|
47
|
-
expect(result.current.fetchStatus).toBe(
|
|
47
|
+
expect(result.current.fetchStatus).toBe('idle');
|
|
48
48
|
expect(result.current.isLoading).toBe(false);
|
|
49
49
|
});
|
|
50
|
-
it(
|
|
50
|
+
it('should handle successful query execution', async ()=>{
|
|
51
51
|
const mockResponse = {
|
|
52
|
-
data:
|
|
53
|
-
status:
|
|
52
|
+
data: 'test-response',
|
|
53
|
+
status: 'success'
|
|
54
54
|
};
|
|
55
55
|
mockS3Client.send.mockResolvedValue(mockResponse);
|
|
56
|
-
const useTestQuery = useCreateS3QueryHook(MockCommand,
|
|
56
|
+
const useTestQuery = useCreateS3QueryHook(MockCommand, 'testOperation');
|
|
57
57
|
const { result } = renderHook(()=>useTestQuery({
|
|
58
|
-
Bucket:
|
|
59
|
-
Key:
|
|
58
|
+
Bucket: 'test-bucket',
|
|
59
|
+
Key: 'test-key'
|
|
60
60
|
}), {
|
|
61
|
-
wrapper:
|
|
61
|
+
wrapper: createTestWrapper()
|
|
62
62
|
});
|
|
63
63
|
await waitFor(()=>{
|
|
64
64
|
expect(result.current.isSuccess).toBe(true);
|
|
@@ -68,52 +68,52 @@ describe("useCreateS3QueryHook - Factory Specific", ()=>{
|
|
|
68
68
|
abortSignal: expect.any(AbortSignal)
|
|
69
69
|
}));
|
|
70
70
|
});
|
|
71
|
-
it(
|
|
72
|
-
const mockError = new Error(
|
|
73
|
-
const enhancedError = new Error(
|
|
71
|
+
it('should handle query errors with proper context', async ()=>{
|
|
72
|
+
const mockError = new Error('S3 Service Error');
|
|
73
|
+
const enhancedError = new Error('Enhanced S3 Service Error');
|
|
74
74
|
mockS3Client.send.mockRejectedValue(mockError);
|
|
75
75
|
mockCreateS3OperationError.mockReturnValue(enhancedError);
|
|
76
|
-
const useTestQuery = useCreateS3QueryHook(MockCommand,
|
|
76
|
+
const useTestQuery = useCreateS3QueryHook(MockCommand, 'testOperation');
|
|
77
77
|
const { result } = renderHook(()=>useTestQuery({
|
|
78
|
-
Bucket:
|
|
79
|
-
Key:
|
|
78
|
+
Bucket: 'test-bucket',
|
|
79
|
+
Key: 'test-key'
|
|
80
80
|
}), {
|
|
81
|
-
wrapper:
|
|
81
|
+
wrapper: createTestWrapper()
|
|
82
82
|
});
|
|
83
83
|
await waitFor(()=>{
|
|
84
84
|
expect(result.current.isError).toBe(true);
|
|
85
85
|
});
|
|
86
86
|
expect(result.current.error).toBe(enhancedError);
|
|
87
|
-
expect(mockCreateS3OperationError).toHaveBeenCalledWith(mockError,
|
|
87
|
+
expect(mockCreateS3OperationError).toHaveBeenCalledWith(mockError, 'testOperation', 'test-bucket');
|
|
88
88
|
});
|
|
89
|
-
it(
|
|
90
|
-
const useTestQuery = useCreateS3QueryHook(MockCommand,
|
|
89
|
+
it('should handle parameter validation correctly', ()=>{
|
|
90
|
+
const useTestQuery = useCreateS3QueryHook(MockCommand, 'testOperation');
|
|
91
91
|
const { result: invalidResult } = renderHook(()=>useTestQuery({
|
|
92
|
-
Bucket:
|
|
92
|
+
Bucket: 'test',
|
|
93
93
|
Key: void 0
|
|
94
94
|
}), {
|
|
95
|
-
wrapper:
|
|
95
|
+
wrapper: createTestWrapper()
|
|
96
96
|
});
|
|
97
|
-
expect(invalidResult.current.fetchStatus).toBe(
|
|
97
|
+
expect(invalidResult.current.fetchStatus).toBe('idle');
|
|
98
98
|
const { result: validResult } = renderHook(()=>useTestQuery({
|
|
99
|
-
Bucket:
|
|
100
|
-
Key:
|
|
99
|
+
Bucket: 'test',
|
|
100
|
+
Key: 'valid-key'
|
|
101
101
|
}), {
|
|
102
|
-
wrapper:
|
|
102
|
+
wrapper: createTestWrapper()
|
|
103
103
|
});
|
|
104
|
-
expect(validResult.current.fetchStatus).not.toBe(
|
|
104
|
+
expect(validResult.current.fetchStatus).not.toBe('idle');
|
|
105
105
|
});
|
|
106
|
-
it(
|
|
107
|
-
const useTestQuery = useCreateS3QueryHook(MockCommand,
|
|
106
|
+
it('should handle empty string parameters correctly', ()=>{
|
|
107
|
+
const useTestQuery = useCreateS3QueryHook(MockCommand, 'testOperation');
|
|
108
108
|
const { result: emptyResult } = renderHook(()=>useTestQuery({
|
|
109
|
-
Bucket:
|
|
110
|
-
Key:
|
|
109
|
+
Bucket: 'test',
|
|
110
|
+
Key: ''
|
|
111
111
|
}), {
|
|
112
|
-
wrapper:
|
|
112
|
+
wrapper: createTestWrapper()
|
|
113
113
|
});
|
|
114
|
-
expect(emptyResult.current.fetchStatus).not.toBe(
|
|
114
|
+
expect(emptyResult.current.fetchStatus).not.toBe('idle');
|
|
115
115
|
});
|
|
116
|
-
it(
|
|
116
|
+
it('should pass AbortSignal correctly to S3 client', async ()=>{
|
|
117
117
|
let capturedAbortSignal;
|
|
118
118
|
mockS3Client.send.mockImplementation((_command, options)=>{
|
|
119
119
|
capturedAbortSignal = options?.abortSignal;
|
|
@@ -121,12 +121,12 @@ describe("useCreateS3QueryHook - Factory Specific", ()=>{
|
|
|
121
121
|
success: true
|
|
122
122
|
});
|
|
123
123
|
});
|
|
124
|
-
const useTestQuery = useCreateS3QueryHook(MockCommand,
|
|
124
|
+
const useTestQuery = useCreateS3QueryHook(MockCommand, 'testOperation');
|
|
125
125
|
const { result } = renderHook(()=>useTestQuery({
|
|
126
|
-
Bucket:
|
|
127
|
-
Key:
|
|
126
|
+
Bucket: 'test',
|
|
127
|
+
Key: 'test'
|
|
128
128
|
}), {
|
|
129
|
-
wrapper:
|
|
129
|
+
wrapper: createTestWrapper()
|
|
130
130
|
});
|
|
131
131
|
await waitFor(()=>{
|
|
132
132
|
expect(result.current.isSuccess).toBe(true);
|
|
@@ -134,19 +134,19 @@ describe("useCreateS3QueryHook - Factory Specific", ()=>{
|
|
|
134
134
|
expect(capturedAbortSignal).toBeInstanceOf(AbortSignal);
|
|
135
135
|
expect(capturedAbortSignal?.aborted).toBe(false);
|
|
136
136
|
});
|
|
137
|
-
it(
|
|
138
|
-
const error = new Error(
|
|
139
|
-
error.name =
|
|
137
|
+
it('should return empty config for supported operations when NOT_FOUND error occurs', async ()=>{
|
|
138
|
+
const error = new Error('Configuration does not exist');
|
|
139
|
+
error.name = 'NoSuchConfiguration';
|
|
140
140
|
error.$metadata = {
|
|
141
141
|
httpStatusCode: 404
|
|
142
142
|
};
|
|
143
143
|
mockS3Client.send.mockRejectedValueOnce(error);
|
|
144
144
|
mockIsNotFoundError.mockReturnValueOnce(true);
|
|
145
|
-
const useTestQuery = useCreateS3QueryHook(MockCommand,
|
|
145
|
+
const useTestQuery = useCreateS3QueryHook(MockCommand, 'GetBucketLifecycleConfiguration');
|
|
146
146
|
const { result } = renderHook(()=>useTestQuery({
|
|
147
|
-
Bucket:
|
|
147
|
+
Bucket: 'test-bucket'
|
|
148
148
|
}), {
|
|
149
|
-
wrapper:
|
|
149
|
+
wrapper: createTestWrapper()
|
|
150
150
|
});
|
|
151
151
|
await waitFor(()=>{
|
|
152
152
|
expect(result.current.isSuccess).toBe(true);
|
|
@@ -154,21 +154,21 @@ describe("useCreateS3QueryHook - Factory Specific", ()=>{
|
|
|
154
154
|
expect(result.current.data).toBeDefined();
|
|
155
155
|
expect(mockIsNotFoundError).toHaveBeenCalledWith(error);
|
|
156
156
|
});
|
|
157
|
-
it(
|
|
158
|
-
const error = new Error(
|
|
159
|
-
error.name =
|
|
157
|
+
it('should throw error when NOT_FOUND occurs for unsupported operations', async ()=>{
|
|
158
|
+
const error = new Error('Bucket not found');
|
|
159
|
+
error.name = 'NoSuchBucket';
|
|
160
160
|
error.$metadata = {
|
|
161
161
|
httpStatusCode: 404
|
|
162
162
|
};
|
|
163
|
-
const enhancedError = new Error(
|
|
163
|
+
const enhancedError = new Error('Enhanced error');
|
|
164
164
|
mockS3Client.send.mockRejectedValueOnce(error);
|
|
165
165
|
mockIsNotFoundError.mockReturnValueOnce(true);
|
|
166
166
|
mockCreateS3OperationError.mockReturnValueOnce(enhancedError);
|
|
167
|
-
const useTestQuery = useCreateS3QueryHook(MockCommand,
|
|
167
|
+
const useTestQuery = useCreateS3QueryHook(MockCommand, 'GetBucketAcl');
|
|
168
168
|
const { result } = renderHook(()=>useTestQuery({
|
|
169
|
-
Bucket:
|
|
169
|
+
Bucket: 'test-bucket'
|
|
170
170
|
}), {
|
|
171
|
-
wrapper:
|
|
171
|
+
wrapper: createTestWrapper()
|
|
172
172
|
});
|
|
173
173
|
await waitFor(()=>{
|
|
174
174
|
expect(result.current.isError).toBe(true);
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - AbortSignal support for cancellation
|
|
13
13
|
* - Bucket/object context extraction for errors
|
|
14
14
|
*/
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
15
|
+
export { useCreateS3InfiniteQueryHook } from './useCreateS3InfiniteQueryHook';
|
|
16
|
+
export { useCreateS3LoginHook } from './useCreateS3LoginHook';
|
|
17
|
+
export { useCreateS3FunctionMutationHook, useCreateS3MutationHook, } from './useCreateS3MutationHook';
|
|
18
|
+
export { useCreateS3QueryHook } from './useCreateS3QueryHook';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useCreateS3QueryHook } from "./useCreateS3QueryHook.js";
|
|
2
|
-
import { useCreateS3FunctionMutationHook, useCreateS3MutationHook } from "./useCreateS3MutationHook.js";
|
|
3
1
|
import { useCreateS3InfiniteQueryHook } from "./useCreateS3InfiniteQueryHook.js";
|
|
4
2
|
import { useCreateS3LoginHook } from "./useCreateS3LoginHook.js";
|
|
3
|
+
import { useCreateS3FunctionMutationHook, useCreateS3MutationHook } from "./useCreateS3MutationHook.js";
|
|
4
|
+
import { useCreateS3QueryHook } from "./useCreateS3QueryHook.js";
|
|
5
5
|
export { useCreateS3FunctionMutationHook, useCreateS3InfiniteQueryHook, useCreateS3LoginHook, useCreateS3MutationHook, useCreateS3QueryHook };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UseInfiniteQueryOptions, UseInfiniteQueryResult } from
|
|
2
|
-
import { EnhancedS3Error } from
|
|
1
|
+
import { type UseInfiniteQueryOptions, type UseInfiniteQueryResult } from '@tanstack/react-query';
|
|
2
|
+
import { type EnhancedS3Error } from '../../utils/errorHandling';
|
|
3
3
|
/**
|
|
4
4
|
* Factory function for creating S3 infinite query hooks
|
|
5
5
|
*
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { useInfiniteQuery } from "@tanstack/react-query";
|
|
2
|
-
import {
|
|
2
|
+
import { useDataBrowserContext } from "../../components/providers/DataBrowserProvider.js";
|
|
3
3
|
import { createS3OperationError, shouldRetryError } from "../../utils/errorHandling.js";
|
|
4
|
+
import { useS3Client } from "../useS3Client.js";
|
|
4
5
|
function useCreateS3InfiniteQueryHook(Command, operationName) {
|
|
5
6
|
return (params, options)=>{
|
|
7
|
+
const { s3ConfigIdentifier } = useDataBrowserContext();
|
|
6
8
|
const s3Client = useS3Client();
|
|
7
9
|
const queryOptions = {
|
|
8
10
|
queryKey: [
|
|
11
|
+
s3ConfigIdentifier,
|
|
9
12
|
operationName,
|
|
10
13
|
params
|
|
11
14
|
],
|
|
@@ -20,7 +23,7 @@ function useCreateS3InfiniteQueryHook(Command, operationName) {
|
|
|
20
23
|
});
|
|
21
24
|
return response;
|
|
22
25
|
} catch (error) {
|
|
23
|
-
const bucketName =
|
|
26
|
+
const bucketName = 'Bucket' in params ? params.Bucket : void 0;
|
|
24
27
|
throw createS3OperationError(error, operationName, bucketName);
|
|
25
28
|
}
|
|
26
29
|
},
|
|
@@ -28,8 +31,8 @@ function useCreateS3InfiniteQueryHook(Command, operationName) {
|
|
|
28
31
|
initialPageParam: void 0,
|
|
29
32
|
getNextPageParam: (lastPage)=>getNextPageToken(operationName, lastPage),
|
|
30
33
|
enabled: params ? Object.entries(params).every(([key, value])=>{
|
|
31
|
-
if (
|
|
32
|
-
return void 0 !== value &&
|
|
34
|
+
if ('Prefix' === key) return void 0 !== value;
|
|
35
|
+
return void 0 !== value && '' !== value;
|
|
33
36
|
}) : true,
|
|
34
37
|
...options
|
|
35
38
|
};
|
|
@@ -38,18 +41,18 @@ function useCreateS3InfiniteQueryHook(Command, operationName) {
|
|
|
38
41
|
}
|
|
39
42
|
function getPaginationParams(operationName, pageParam) {
|
|
40
43
|
switch(operationName){
|
|
41
|
-
case
|
|
44
|
+
case 'ListObjects':
|
|
42
45
|
return {
|
|
43
46
|
ContinuationToken: pageParam
|
|
44
47
|
};
|
|
45
|
-
case
|
|
46
|
-
if (pageParam.includes(
|
|
47
|
-
const [keyMarker, versionIdMarker] = pageParam.split(
|
|
48
|
+
case 'ListObjectVersions':
|
|
49
|
+
if (pageParam.includes('|')) {
|
|
50
|
+
const [keyMarker, versionIdMarker] = pageParam.split('|');
|
|
48
51
|
return {
|
|
49
|
-
...keyMarker &&
|
|
52
|
+
...keyMarker && '' !== keyMarker ? {
|
|
50
53
|
KeyMarker: keyMarker
|
|
51
54
|
} : {},
|
|
52
|
-
...versionIdMarker &&
|
|
55
|
+
...versionIdMarker && '' !== versionIdMarker ? {
|
|
53
56
|
VersionIdMarker: versionIdMarker
|
|
54
57
|
} : {}
|
|
55
58
|
};
|
|
@@ -65,10 +68,10 @@ function getPaginationParams(operationName, pageParam) {
|
|
|
65
68
|
}
|
|
66
69
|
function getNextPageToken(operationName, lastPage) {
|
|
67
70
|
switch(operationName){
|
|
68
|
-
case
|
|
71
|
+
case 'ListObjects':
|
|
69
72
|
return lastPage.IsTruncated ? lastPage.NextContinuationToken : void 0;
|
|
70
|
-
case
|
|
71
|
-
return lastPage.IsTruncated && (lastPage.NextKeyMarker || lastPage.NextVersionIdMarker) ? `${lastPage.NextKeyMarker ||
|
|
73
|
+
case 'ListObjectVersions':
|
|
74
|
+
return lastPage.IsTruncated && (lastPage.NextKeyMarker || lastPage.NextVersionIdMarker) ? `${lastPage.NextKeyMarker || ''}|${lastPage.NextVersionIdMarker || ''}` : void 0;
|
|
72
75
|
default:
|
|
73
76
|
return lastPage.IsTruncated ? lastPage.NextContinuationToken : void 0;
|
|
74
77
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UseMutationOptions, UseMutationResult } from
|
|
2
|
-
import { EnhancedS3Error } from
|
|
1
|
+
import { type UseMutationOptions, type UseMutationResult } from '@tanstack/react-query';
|
|
2
|
+
import { type EnhancedS3Error } from '../../utils/errorHandling';
|
|
3
3
|
/**
|
|
4
4
|
* Factory function for creating S3 login mutation hooks
|
|
5
5
|
* This factory handles the special authentication case where we need
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useMutation } from "@tanstack/react-query";
|
|
2
1
|
import { ListBucketsCommand } from "@aws-sdk/client-s3";
|
|
2
|
+
import { useMutation } from "@tanstack/react-query";
|
|
3
3
|
import { createS3OperationError } from "../../utils/errorHandling.js";
|
|
4
4
|
import { createS3Client } from "../../utils/s3Client.js";
|
|
5
5
|
function useCreateS3LoginHook(_Command, operationName) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { S3Client } from '@aws-sdk/client-s3';
|
|
2
|
+
import { type UseMutationOptions, type UseMutationResult } from '@tanstack/react-query';
|
|
3
|
+
import { type EnhancedS3Error } from '../../utils/errorHandling';
|
|
4
4
|
export declare function useCreateS3MutationHook<TInput extends object, TOutput>(Command: new (input: TInput) => any, operationName: string, invalidationKeys?: string[]): (options?: Omit<UseMutationOptions<TOutput, EnhancedS3Error, TInput>, "mutationFn">) => UseMutationResult<TOutput, EnhancedS3Error, TInput>;
|
|
5
5
|
export declare function useCreateS3FunctionMutationHook<TInput, TOutput>(operation: (s3Client: S3Client, input: TInput) => Promise<TOutput>, invalidationKeys?: string[]): (options?: Omit<UseMutationOptions<TOutput, EnhancedS3Error, TInput>, "mutationFn">) => UseMutationResult<TOutput, EnhancedS3Error, TInput>;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
|
2
|
-
import {
|
|
2
|
+
import { useDataBrowserContext } from "../../components/providers/DataBrowserProvider.js";
|
|
3
3
|
import { createS3OperationError } from "../../utils/errorHandling.js";
|
|
4
|
+
import { useS3Client } from "../useS3Client.js";
|
|
4
5
|
function useCreateS3MutationHook(Command, operationName, invalidationKeys) {
|
|
5
6
|
return (options)=>{
|
|
7
|
+
const { s3ConfigIdentifier } = useDataBrowserContext();
|
|
6
8
|
const s3Client = useS3Client();
|
|
7
9
|
const queryClient = useQueryClient();
|
|
8
10
|
return useMutation({
|
|
@@ -11,7 +13,7 @@ function useCreateS3MutationHook(Command, operationName, invalidationKeys) {
|
|
|
11
13
|
const command = new Command(params);
|
|
12
14
|
return await s3Client.send(command);
|
|
13
15
|
} catch (error) {
|
|
14
|
-
const bucketName =
|
|
16
|
+
const bucketName = 'Bucket' in params ? params.Bucket : void 0;
|
|
15
17
|
throw createS3OperationError(error, operationName, bucketName);
|
|
16
18
|
}
|
|
17
19
|
},
|
|
@@ -19,6 +21,7 @@ function useCreateS3MutationHook(Command, operationName, invalidationKeys) {
|
|
|
19
21
|
if (invalidationKeys) invalidationKeys.forEach((key)=>{
|
|
20
22
|
queryClient.invalidateQueries({
|
|
21
23
|
queryKey: [
|
|
24
|
+
s3ConfigIdentifier,
|
|
22
25
|
key
|
|
23
26
|
]
|
|
24
27
|
});
|
|
@@ -30,6 +33,7 @@ function useCreateS3MutationHook(Command, operationName, invalidationKeys) {
|
|
|
30
33
|
}
|
|
31
34
|
function useCreateS3FunctionMutationHook(operation, invalidationKeys) {
|
|
32
35
|
return (options)=>{
|
|
36
|
+
const { s3ConfigIdentifier } = useDataBrowserContext();
|
|
33
37
|
const s3Client = useS3Client();
|
|
34
38
|
const queryClient = useQueryClient();
|
|
35
39
|
return useMutation({
|
|
@@ -38,6 +42,7 @@ function useCreateS3FunctionMutationHook(operation, invalidationKeys) {
|
|
|
38
42
|
if (invalidationKeys) invalidationKeys.forEach((key)=>{
|
|
39
43
|
queryClient.invalidateQueries({
|
|
40
44
|
queryKey: [
|
|
45
|
+
s3ConfigIdentifier,
|
|
41
46
|
key
|
|
42
47
|
]
|
|
43
48
|
});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { QueryKey, UseQueryOptions, UseQueryResult } from
|
|
2
|
-
import { EnhancedS3Error } from
|
|
1
|
+
import { type QueryKey, type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
|
|
2
|
+
import { type EnhancedS3Error } from '../../utils/errorHandling';
|
|
3
3
|
export declare function useCreateS3QueryHook<TInput extends object, TOutput>(Command: new (input: TInput) => any, operationName: string): (params?: TInput, options?: Omit<UseQueryOptions<TOutput, EnhancedS3Error, TOutput, QueryKey>, "queryKey" | "queryFn">) => UseQueryResult<TOutput, EnhancedS3Error>;
|
|
@@ -1,30 +1,35 @@
|
|
|
1
1
|
import { useQuery } from "@tanstack/react-query";
|
|
2
|
-
import {
|
|
2
|
+
import { useDataBrowserContext } from "../../components/providers/DataBrowserProvider.js";
|
|
3
3
|
import { createS3OperationError, isNotFoundError, shouldRetryError } from "../../utils/errorHandling.js";
|
|
4
|
+
import { useS3Client } from "../useS3Client.js";
|
|
4
5
|
function getEmptyConfigForOperation(operationName) {
|
|
5
6
|
switch(operationName){
|
|
6
|
-
case
|
|
7
|
+
case 'GetBucketLifecycleConfiguration':
|
|
7
8
|
return {
|
|
8
9
|
Rules: []
|
|
9
10
|
};
|
|
10
|
-
case
|
|
11
|
+
case 'GetBucketReplication':
|
|
11
12
|
return {
|
|
12
13
|
ReplicationConfiguration: {
|
|
13
14
|
Rules: [],
|
|
14
|
-
Role:
|
|
15
|
+
Role: ''
|
|
15
16
|
}
|
|
16
17
|
};
|
|
18
|
+
case 'GetPublicAccessBlock':
|
|
19
|
+
return {};
|
|
17
20
|
default:
|
|
18
21
|
return null;
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
24
|
function useCreateS3QueryHook(Command, operationName) {
|
|
22
25
|
return (params, options)=>{
|
|
26
|
+
const { s3ConfigIdentifier } = useDataBrowserContext();
|
|
27
|
+
const s3Client = useS3Client();
|
|
23
28
|
const queryKey = [
|
|
29
|
+
s3ConfigIdentifier,
|
|
24
30
|
operationName,
|
|
25
31
|
params
|
|
26
32
|
];
|
|
27
|
-
const s3Client = useS3Client();
|
|
28
33
|
return useQuery({
|
|
29
34
|
queryKey,
|
|
30
35
|
queryFn: async ({ signal })=>{
|
|
@@ -34,7 +39,7 @@ function useCreateS3QueryHook(Command, operationName) {
|
|
|
34
39
|
abortSignal: signal
|
|
35
40
|
});
|
|
36
41
|
} catch (error) {
|
|
37
|
-
const bucketName = params &&
|
|
42
|
+
const bucketName = params && 'Bucket' in params ? params.Bucket : void 0;
|
|
38
43
|
if (isNotFoundError(error)) {
|
|
39
44
|
const emptyConfig = getEmptyConfigForOperation(operationName);
|
|
40
45
|
if (null !== emptyConfig) return emptyConfig;
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
1
|
+
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, } from './bucketConfiguration';
|
|
2
|
+
export { useBuckets, useCreateBucket, useDeleteBucket, useGetBucketLocation, useValidateBucketAccess, } from './bucketOperations';
|
|
3
|
+
export type { LoginConfig, LoginMutationResult } from './loginOperations';
|
|
4
|
+
export { useLoginMutation } from './loginOperations';
|
|
5
|
+
export { useCopyObject, useCreateFolder, useDeleteObject, useDeleteObjects, useDeleteObjectTagging, useGetObject, useGetObjectAttributes, useGetObjectTorrent, useListMultipartUploads, useListObjects, useListObjectVersions, useObjectAcl, useObjectLegalHold, useObjectMetadata, useObjectRetention, useObjectTagging, usePutObject, useRestoreObject, useSearchObjects, useSearchObjectsVersions, useSelectObjectContent, useSetObjectAcl, useSetObjectLegalHold, useSetObjectRetention, useSetObjectTagging, useUploadObjects, } from './objectOperations';
|
|
6
|
+
export { useGetPresignedDownload, useGetPresignedPost, useGetPresignedUpload, } from './presignedOperations';
|
|
7
|
+
export { getAccessibleBucketsStorageKey, getLimitedAccessFlagKey, setLimitedAccessFlag, useAccessibleBuckets, } from './useAccessibleBuckets';
|
|
8
|
+
export { useBatchObjectLegalHold } from './useBatchObjectLegalHold';
|
|
9
|
+
export { type BucketConfigEditorConfig, type BucketConfigEditorResult, useBucketConfigEditor, } from './useBucketConfigEditor';
|
|
10
|
+
export { useDeleteBucketConfigRule } from './useDeleteBucketConfigRule';
|
|
11
|
+
export { useEmptyBucket } from './useEmptyBucket';
|
|
12
|
+
export { useFeatures } from './useFeatures';
|
|
13
|
+
export { useISVBucketStatus } from './useISVBucketDetection';
|
|
14
|
+
export { useIsBucketEmpty } from './useIsBucketEmpty';
|
|
15
|
+
export { type LimitedAccessFlowHandlers, type UseLimitedAccessFlowOptions, useLimitedAccessFlow, } from './useLimitedAccessFlow';
|
|
16
|
+
export { useS3Client } from './useS3Client';
|
|
17
|
+
export { useS3ConfigSwitch } from './useS3ConfigSwitch';
|
|
18
|
+
export { useSupportedNotificationEvents } from './useSupportedNotificationEvents';
|
|
19
|
+
export { useTableRowSelection } from './useTableRowSelection';
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { 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 } from "./bucketConfiguration.js";
|
|
2
|
+
import { useBuckets, useCreateBucket, useDeleteBucket, useGetBucketLocation, useValidateBucketAccess } from "./bucketOperations.js";
|
|
2
3
|
import { useLoginMutation } from "./loginOperations.js";
|
|
3
|
-
import { useIsBucketEmpty } from "./useIsBucketEmpty.js";
|
|
4
|
-
import { useEmptyBucket } from "./useEmptyBucket.js";
|
|
5
|
-
import { useDeleteBucketConfigRule } from "./useDeleteBucketConfigRule.js";
|
|
6
|
-
import { useTableRowSelection } from "./useTableRowSelection.js";
|
|
7
|
-
import { useISVBucketStatus } from "./useISVBucketDetection.js";
|
|
8
|
-
import { useBuckets, useCreateBucket, useDeleteBucket, useGetBucketLocation } from "./bucketOperations.js";
|
|
9
|
-
import { 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 } from "./bucketConfiguration.js";
|
|
10
4
|
import { useCopyObject, useCreateFolder, useDeleteObject, useDeleteObjectTagging, useDeleteObjects, useGetObject, useGetObjectAttributes, useGetObjectTorrent, useListMultipartUploads, useListObjectVersions, useListObjects, useObjectAcl, useObjectLegalHold, useObjectMetadata, useObjectRetention, useObjectTagging, usePutObject, useRestoreObject, useSearchObjects, useSearchObjectsVersions, useSelectObjectContent, useSetObjectAcl, useSetObjectLegalHold, useSetObjectRetention, useSetObjectTagging, useUploadObjects } from "./objectOperations.js";
|
|
11
5
|
import { useGetPresignedDownload, useGetPresignedPost, useGetPresignedUpload } from "./presignedOperations.js";
|
|
12
|
-
|
|
6
|
+
import { getAccessibleBucketsStorageKey, getLimitedAccessFlagKey, setLimitedAccessFlag, useAccessibleBuckets } from "./useAccessibleBuckets.js";
|
|
7
|
+
import { useBatchObjectLegalHold } from "./useBatchObjectLegalHold.js";
|
|
8
|
+
import { useBucketConfigEditor } from "./useBucketConfigEditor.js";
|
|
9
|
+
import { useDeleteBucketConfigRule } from "./useDeleteBucketConfigRule.js";
|
|
10
|
+
import { useEmptyBucket } from "./useEmptyBucket.js";
|
|
11
|
+
import { useFeatures } from "./useFeatures.js";
|
|
12
|
+
import { useISVBucketStatus } from "./useISVBucketDetection.js";
|
|
13
|
+
import { useIsBucketEmpty } from "./useIsBucketEmpty.js";
|
|
14
|
+
import { useLimitedAccessFlow } from "./useLimitedAccessFlow.js";
|
|
15
|
+
import { useS3Client } from "./useS3Client.js";
|
|
16
|
+
import { useS3ConfigSwitch } from "./useS3ConfigSwitch.js";
|
|
17
|
+
import { useSupportedNotificationEvents } from "./useSupportedNotificationEvents.js";
|
|
18
|
+
import { useTableRowSelection } from "./useTableRowSelection.js";
|
|
19
|
+
export { getAccessibleBucketsStorageKey, getLimitedAccessFlagKey, setLimitedAccessFlag, useAccessibleBuckets, useBatchObjectLegalHold, useBucketConfigEditor, useBuckets, useCopyObject, useCreateBucket, useCreateFolder, useDeleteBucket, useDeleteBucketConfigRule, useDeleteBucketCors, useDeleteBucketLifecycle, useDeleteBucketPolicy, useDeleteBucketReplication, useDeleteBucketTagging, useDeleteObject, useDeleteObjectTagging, useDeleteObjects, useEmptyBucket, useFeatures, useGetBucketAcl, useGetBucketCors, useGetBucketEncryption, useGetBucketLifecycle, useGetBucketLocation, useGetBucketNotification, useGetBucketObjectLockConfiguration, useGetBucketPolicy, useGetBucketReplication, useGetBucketTagging, useGetBucketVersioning, useGetObject, useGetObjectAttributes, useGetObjectTorrent, useGetPresignedDownload, useGetPresignedPost, useGetPresignedUpload, useGetPublicAccessBlock, useISVBucketStatus, useIsBucketEmpty, useLimitedAccessFlow, useListMultipartUploads, useListObjectVersions, useListObjects, useLoginMutation, useObjectAcl, useObjectLegalHold, useObjectMetadata, useObjectRetention, useObjectTagging, usePutObject, useRestoreObject, useS3Client, useS3ConfigSwitch, useSearchObjects, useSearchObjectsVersions, useSelectObjectContent, useSetBucketAcl, useSetBucketCors, useSetBucketEncryption, useSetBucketLifecycle, useSetBucketNotification, useSetBucketObjectLockConfiguration, useSetBucketPolicy, useSetBucketReplication, useSetBucketTagging, useSetBucketVersioning, useSetObjectAcl, useSetObjectLegalHold, useSetObjectRetention, useSetObjectTagging, useSupportedNotificationEvents, useTableRowSelection, useUploadObjects, useValidateBucketAccess };
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This file contains hooks for S3 authentication operations.
|
|
5
5
|
* Uses the factory pattern for consistency with other S3 operations.
|
|
6
6
|
*/
|
|
7
|
-
import { S3BrowserConfig, S3Credentials } from
|
|
7
|
+
import type { S3BrowserConfig, S3Credentials } from '../types';
|
|
8
8
|
export type LoginConfig = S3BrowserConfig & {
|
|
9
9
|
credentials: S3Credentials;
|
|
10
10
|
};
|
|
@@ -5,5 +5,5 @@ class LoginAuthenticationCommand {
|
|
|
5
5
|
this.input = input;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
const useLoginMutation = useCreateS3LoginHook(LoginAuthenticationCommand,
|
|
8
|
+
const useLoginMutation = useCreateS3LoginHook(LoginAuthenticationCommand, 'S3 Authentication');
|
|
9
9
|
export { useLoginMutation };
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* metadata retrieval, uploads, downloads, deletion, and object-level
|
|
6
6
|
* configurations like retention and legal hold.
|
|
7
7
|
*/
|
|
8
|
-
import { CopyObjectCommandInput, CopyObjectCommandOutput, DeleteObjectCommandInput, DeleteObjectCommandOutput, DeleteObjectsCommandInput, DeleteObjectsCommandOutput, DeleteObjectTaggingCommandInput, DeleteObjectTaggingCommandOutput, GetObjectAclCommandInput, GetObjectAclCommandOutput, GetObjectAttributesCommandInput, GetObjectAttributesCommandOutput, GetObjectCommandInput, GetObjectCommandOutput, GetObjectLegalHoldCommandInput, GetObjectLegalHoldCommandOutput, GetObjectRetentionCommandInput, GetObjectRetentionCommandOutput, GetObjectTaggingCommandInput, GetObjectTaggingCommandOutput, GetObjectTorrentCommandInput, GetObjectTorrentCommandOutput, HeadObjectCommandInput, HeadObjectCommandOutput, ListMultipartUploadsCommandInput, ListMultipartUploadsCommandOutput, ListObjectsV2CommandInput, ListObjectVersionsCommandInput, PutObjectAclCommandInput, PutObjectAclCommandOutput, PutObjectCommandInput, PutObjectCommandOutput, PutObjectLegalHoldCommandInput, PutObjectLegalHoldCommandOutput, PutObjectRetentionCommandInput, PutObjectRetentionCommandOutput, PutObjectTaggingCommandInput, PutObjectTaggingCommandOutput, RestoreObjectCommandInput, RestoreObjectCommandOutput, SelectObjectContentCommandInput, SelectObjectContentCommandOutput } from
|
|
9
|
-
import { SearchObjectsV2CommandInput, SearchObjectsVersionCommandInput } from
|
|
8
|
+
import { type CopyObjectCommandInput, type CopyObjectCommandOutput, type DeleteObjectCommandInput, type DeleteObjectCommandOutput, type DeleteObjectsCommandInput, type DeleteObjectsCommandOutput, type DeleteObjectTaggingCommandInput, type DeleteObjectTaggingCommandOutput, type GetObjectAclCommandInput, type GetObjectAclCommandOutput, type GetObjectAttributesCommandInput, type GetObjectAttributesCommandOutput, type GetObjectCommandInput, type GetObjectCommandOutput, type GetObjectLegalHoldCommandInput, type GetObjectLegalHoldCommandOutput, type GetObjectRetentionCommandInput, type GetObjectRetentionCommandOutput, type GetObjectTaggingCommandInput, type GetObjectTaggingCommandOutput, type GetObjectTorrentCommandInput, type GetObjectTorrentCommandOutput, type HeadObjectCommandInput, type HeadObjectCommandOutput, type ListMultipartUploadsCommandInput, type ListMultipartUploadsCommandOutput, type ListObjectsV2CommandInput, type ListObjectVersionsCommandInput, type PutObjectAclCommandInput, type PutObjectAclCommandOutput, type PutObjectCommandInput, type PutObjectCommandOutput, type PutObjectLegalHoldCommandInput, type PutObjectLegalHoldCommandOutput, type PutObjectRetentionCommandInput, type PutObjectRetentionCommandOutput, type PutObjectTaggingCommandInput, type PutObjectTaggingCommandOutput, type RestoreObjectCommandInput, type RestoreObjectCommandOutput, type SelectObjectContentCommandInput, type SelectObjectContentCommandOutput } from '@aws-sdk/client-s3';
|
|
9
|
+
import { type SearchObjectsV2CommandInput, type SearchObjectsVersionCommandInput } from '@scality/zenkoclient';
|
|
10
10
|
/**
|
|
11
11
|
* Hook for listing S3 objects with infinite scroll support
|
|
12
12
|
*
|