@scality/data-browser-library 1.0.0-preview.8 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.d.ts +1 -0
- package/dist/components/__tests__/BucketCreate.test.js +574 -0
- 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 +14 -0
- package/dist/components/__tests__/BucketLifecycleFormPage.test.js +618 -0
- package/dist/components/__tests__/BucketLifecycleList.test.d.ts +1 -0
- package/dist/components/__tests__/BucketLifecycleList.test.js +325 -0
- package/dist/components/__tests__/BucketList.test.js +495 -81
- 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 +484 -179
- package/dist/components/__tests__/BucketPolicyPage.test.js +151 -99
- package/dist/components/__tests__/BucketReplicationFormPage.test.d.ts +16 -0
- package/dist/components/__tests__/BucketReplicationFormPage.test.js +1757 -0
- package/dist/components/__tests__/BucketReplicationList.test.d.ts +1 -0
- package/dist/components/__tests__/BucketReplicationList.test.js +344 -0
- package/dist/components/__tests__/CreateFolderButton.test.js +56 -56
- package/dist/components/__tests__/DeleteBucketButton.test.js +64 -64
- package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.d.ts +1 -0
- package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.js +196 -0
- package/dist/components/__tests__/DeleteObjectButton.test.js +64 -64
- package/dist/components/__tests__/EmptyBucketButton.test.d.ts +1 -0
- package/dist/components/__tests__/EmptyBucketButton.test.js +302 -0
- 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 +50 -0
- package/dist/components/buckets/BucketCreate.js +279 -0
- package/dist/components/buckets/BucketDetails.d.ts +42 -0
- package/dist/components/buckets/BucketDetails.js +256 -40
- package/dist/components/buckets/BucketLifecycleFormPage.d.ts +15 -0
- package/dist/components/buckets/BucketLifecycleFormPage.js +1086 -0
- package/dist/components/buckets/BucketLifecycleList.d.ts +10 -0
- package/dist/components/buckets/BucketLifecycleList.js +270 -0
- package/dist/components/buckets/BucketList.d.ts +6 -4
- package/dist/components/buckets/BucketList.js +161 -94
- package/dist/components/buckets/BucketLocation.js +4 -4
- package/dist/components/buckets/BucketOverview.d.ts +86 -5
- package/dist/components/buckets/BucketOverview.js +481 -192
- package/dist/components/buckets/BucketPage.js +44 -22
- package/dist/components/buckets/BucketPolicyPage.js +155 -127
- package/dist/components/buckets/BucketReplicationFormPage.d.ts +1 -0
- package/dist/components/buckets/BucketReplicationFormPage.js +835 -0
- package/dist/components/buckets/BucketReplicationList.d.ts +11 -0
- package/dist/components/buckets/BucketReplicationList.js +189 -0
- 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 +18 -0
- package/dist/components/buckets/DeleteBucketConfigRuleButton.js +53 -0
- package/dist/components/buckets/EmptyBucketButton.d.ts +5 -0
- package/dist/components/buckets/EmptyBucketButton.js +232 -0
- package/dist/components/buckets/EmptyBucketSummary.d.ts +9 -0
- package/dist/components/buckets/EmptyBucketSummary.js +60 -0
- package/dist/components/buckets/EmptyBucketSummaryList.d.ts +13 -0
- package/dist/components/buckets/EmptyBucketSummaryList.js +140 -0
- 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 -13
- package/dist/components/index.js +20 -6
- 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.d.ts +4 -0
- package/dist/components/objects/ObjectLock/EditRetentionButton.js +32 -0
- package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.d.ts +3 -0
- package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.js +211 -0
- package/dist/components/objects/ObjectLock/ObjectLockSettings.d.ts +9 -0
- package/dist/components/objects/ObjectLock/ObjectLockSettings.js +159 -0
- package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.d.ts +8 -0
- package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.js +39 -0
- package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.d.ts +1 -0
- package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.js +204 -0
- package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.d.ts +1 -0
- package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.js +374 -0
- 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.d.ts +36 -0
- package/dist/components/ui/ArrayFieldActions.js +43 -0
- package/dist/components/ui/ConfirmDeleteRuleModal.d.ts +16 -0
- package/dist/components/ui/ConfirmDeleteRuleModal.js +48 -0
- package/dist/components/ui/DeleteObjectModalContent.d.ts +1 -1
- package/dist/components/ui/DeleteObjectModalContent.js +12 -12
- package/dist/components/ui/FilterFormSection.d.ts +44 -0
- package/dist/components/ui/FilterFormSection.js +159 -0
- 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 +14 -49
- package/dist/config/factory.js +23 -68
- 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.d.ts +1 -0
- package/dist/hooks/__tests__/useISVBucketDetection.test.js +188 -0
- 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 +95 -52
- 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 +29 -3
- package/dist/hooks/index.d.ts +19 -8
- package/dist/hooks/index.js +16 -5
- 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 +26 -0
- package/dist/hooks/useDeleteBucketConfigRule.js +46 -0
- package/dist/hooks/useEmptyBucket.d.ts +27 -0
- package/dist/hooks/useEmptyBucket.js +116 -0
- package/dist/hooks/useFeatures.d.ts +7 -0
- package/dist/hooks/useFeatures.js +8 -0
- package/dist/hooks/useISVBucketDetection.d.ts +15 -0
- package/dist/hooks/useISVBucketDetection.js +27 -0
- 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/hooks/useTableRowSelection.d.ts +9 -0
- package/dist/hooks/useTableRowSelection.js +45 -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 +170 -36
- package/dist/test/testUtils.js +229 -116
- package/dist/test/utils/errorHandling.test.js +146 -108
- 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 +22 -0
- package/dist/utils/constants.js +19 -0
- 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 +12 -3
- package/dist/utils/errorHandling.js +12 -7
- package/dist/utils/hooks.js +8 -8
- package/dist/utils/index.d.ts +5 -2
- package/dist/utils/index.js +5 -1
- 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 +53 -0
- package/dist/utils/s3RuleUtils.js +101 -0
- 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,26 +1,32 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HttpResponse, http } from "msw";
|
|
2
2
|
import { createS3ErrorXml, getS3BaseUrl } from "../utils.js";
|
|
3
|
-
const listObjectsHandler =
|
|
4
|
-
const { bucketName } =
|
|
5
|
-
const url = new URL(
|
|
6
|
-
if (
|
|
7
|
-
const prefix = url.searchParams.get(
|
|
8
|
-
const delimiter = url.searchParams.get(
|
|
9
|
-
const maxKeys = parseInt(url.searchParams.get(
|
|
10
|
-
const continuationToken = url.searchParams.get(
|
|
11
|
-
if (
|
|
12
|
-
if (bucketName.includes(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (bucketName.includes(
|
|
3
|
+
const listObjectsHandler = http.get(`${getS3BaseUrl()}/:bucketName`, async ({ request, params })=>{
|
|
4
|
+
const { bucketName } = params;
|
|
5
|
+
const url = new URL(request.url);
|
|
6
|
+
if ('2' !== url.searchParams.get('list-type')) return;
|
|
7
|
+
const prefix = url.searchParams.get('prefix') || '';
|
|
8
|
+
const delimiter = url.searchParams.get('delimiter') || '';
|
|
9
|
+
const maxKeys = parseInt(url.searchParams.get('max-keys') || '1000', 10);
|
|
10
|
+
const continuationToken = url.searchParams.get('continuation-token');
|
|
11
|
+
if ('string' == typeof bucketName) {
|
|
12
|
+
if (bucketName.includes('non-existent-bucket')) return HttpResponse.xml(createS3ErrorXml('NoSuchBucket', 'The specified bucket does not exist', bucketName), {
|
|
13
|
+
status: 404
|
|
14
|
+
});
|
|
15
|
+
if (bucketName.includes('access-denied-bucket')) return HttpResponse.xml(createS3ErrorXml('AccessDenied', 'Access Denied'), {
|
|
16
|
+
status: 403
|
|
17
|
+
});
|
|
18
|
+
if (bucketName.includes('network-error-bucket')) return HttpResponse.error();
|
|
19
|
+
if (bucketName.includes('empty-bucket')) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
16
20
|
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
17
21
|
<Name>${bucketName}</Name>
|
|
18
22
|
<Prefix>${prefix}</Prefix>
|
|
19
23
|
<Delimiter>${delimiter}</Delimiter>
|
|
20
24
|
<MaxKeys>${maxKeys}</MaxKeys>
|
|
21
25
|
<IsTruncated>false</IsTruncated>
|
|
22
|
-
</ListBucketResult
|
|
23
|
-
|
|
26
|
+
</ListBucketResult>`, {
|
|
27
|
+
status: 200
|
|
28
|
+
});
|
|
29
|
+
if (continuationToken) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
24
30
|
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
25
31
|
<Name>${bucketName}</Name>
|
|
26
32
|
<Prefix>${prefix}</Prefix>
|
|
@@ -34,16 +40,18 @@ const listObjectsHandler = rest.get(`${getS3BaseUrl()}/:bucketName`, (req, res,
|
|
|
34
40
|
<Size>2048</Size>
|
|
35
41
|
<StorageClass>STANDARD</StorageClass>
|
|
36
42
|
</Contents>
|
|
37
|
-
</ListBucketResult
|
|
38
|
-
|
|
39
|
-
|
|
43
|
+
</ListBucketResult>`, {
|
|
44
|
+
status: 200
|
|
45
|
+
});
|
|
46
|
+
const hasMorePages = bucketName.includes('paginated-bucket');
|
|
47
|
+
return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
40
48
|
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
41
49
|
<Name>${bucketName}</Name>
|
|
42
50
|
<Prefix>${prefix}</Prefix>
|
|
43
51
|
<Delimiter>${delimiter}</Delimiter>
|
|
44
52
|
<MaxKeys>${maxKeys}</MaxKeys>
|
|
45
53
|
<IsTruncated>${hasMorePages}</IsTruncated>
|
|
46
|
-
${hasMorePages ?
|
|
54
|
+
${hasMorePages ? '<NextContinuationToken>token-123</NextContinuationToken>' : ''}
|
|
47
55
|
<Contents>
|
|
48
56
|
<Key>${prefix}file1.txt</Key>
|
|
49
57
|
<LastModified>2023-10-12T17:50:00.000Z</LastModified>
|
|
@@ -58,9 +66,13 @@ const listObjectsHandler = rest.get(`${getS3BaseUrl()}/:bucketName`, (req, res,
|
|
|
58
66
|
<Size>512</Size>
|
|
59
67
|
<StorageClass>STANDARD</StorageClass>
|
|
60
68
|
</Contents>
|
|
61
|
-
${delimiter ? `<CommonPrefixes><Prefix>${prefix}folder1/</Prefix></CommonPrefixes>` :
|
|
62
|
-
</ListBucketResult
|
|
69
|
+
${delimiter ? `<CommonPrefixes><Prefix>${prefix}folder1/</Prefix></CommonPrefixes>` : ''}
|
|
70
|
+
</ListBucketResult>`, {
|
|
71
|
+
status: 200
|
|
72
|
+
});
|
|
63
73
|
}
|
|
64
|
-
return
|
|
74
|
+
return new Response(null, {
|
|
75
|
+
status: 200
|
|
76
|
+
});
|
|
65
77
|
});
|
|
66
78
|
export { listObjectsHandler };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const getObjectLegalHoldHandler: import("msw").
|
|
1
|
+
export declare const getObjectLegalHoldHandler: import("msw").HttpHandler;
|
|
@@ -1,24 +1,39 @@
|
|
|
1
|
-
import { rest } from "msw";
|
|
2
|
-
import { createS3ErrorXml, getS3BaseUrl } from "../utils.js";
|
|
3
1
|
import { ObjectLockLegalHoldStatus } from "@aws-sdk/client-s3";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
import { HttpResponse, http } from "msw";
|
|
3
|
+
import { createS3ErrorXml, getS3BaseUrl } from "../utils.js";
|
|
4
|
+
const getObjectLegalHoldHandler = http.get(`${getS3BaseUrl()}/:bucketName/*`, async ({ request, params })=>{
|
|
5
|
+
const { bucketName } = params;
|
|
6
|
+
const url = new URL(request.url);
|
|
7
|
+
const objectKey = url.pathname.substring(url.pathname.indexOf('/', 1) + 1);
|
|
8
|
+
if (!url.searchParams.has('legal-hold')) return;
|
|
9
|
+
if ('string' == typeof bucketName) {
|
|
10
|
+
if ('no-such-bucket' === bucketName || 'non-existent-bucket' === bucketName) return HttpResponse.xml(createS3ErrorXml('NoSuchBucket', 'The specified bucket does not exist', bucketName), {
|
|
11
|
+
status: 404
|
|
12
|
+
});
|
|
13
|
+
if ('access-denied-bucket' === bucketName || 'restricted-bucket' === bucketName) return HttpResponse.xml(createS3ErrorXml('AccessDenied', 'Access Denied', bucketName, objectKey), {
|
|
14
|
+
status: 403
|
|
15
|
+
});
|
|
16
|
+
if ('network-error-bucket' === bucketName) return HttpResponse.error();
|
|
17
|
+
if ('non-existent-object.txt' === objectKey) return HttpResponse.xml(createS3ErrorXml('NoSuchKey', 'The specified key does not exist.', bucketName, objectKey), {
|
|
18
|
+
status: 404
|
|
19
|
+
});
|
|
20
|
+
if ('no-legal-hold-object.txt' === objectKey) return HttpResponse.xml(createS3ErrorXml('NoSuchObjectLockConfiguration', 'The specified object does not have a ObjectLock configuration', bucketName, objectKey), {
|
|
21
|
+
status: 404
|
|
22
|
+
});
|
|
15
23
|
let status = ObjectLockLegalHoldStatus.ON;
|
|
16
|
-
if (
|
|
17
|
-
return
|
|
24
|
+
if ('legal-hold-off-object.txt' === objectKey) status = ObjectLockLegalHoldStatus.OFF;
|
|
25
|
+
return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
18
26
|
<LegalHold xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
19
27
|
<Status>${status}</Status>
|
|
20
|
-
</LegalHold
|
|
28
|
+
</LegalHold>`, {
|
|
29
|
+
status: 200,
|
|
30
|
+
headers: {
|
|
31
|
+
'Content-Type': 'application/xml'
|
|
32
|
+
}
|
|
33
|
+
});
|
|
21
34
|
}
|
|
22
|
-
return
|
|
35
|
+
return HttpResponse.xml(createS3ErrorXml('InvalidArgument', 'Invalid request parameters'), {
|
|
36
|
+
status: 400
|
|
37
|
+
});
|
|
23
38
|
});
|
|
24
39
|
export { getObjectLegalHoldHandler };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const getObjectRetentionHandler: import("msw").
|
|
1
|
+
export declare const getObjectRetentionHandler: import("msw").HttpHandler;
|
|
@@ -1,27 +1,41 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HttpResponse, http } from "msw";
|
|
2
2
|
import { createS3ErrorXml, getS3BaseUrl } from "../utils.js";
|
|
3
|
-
const getObjectRetentionHandler =
|
|
4
|
-
const { bucketName } =
|
|
5
|
-
const url = new URL(
|
|
6
|
-
const objectKey = url.pathname.substring(url.pathname.indexOf(
|
|
7
|
-
if (!url.searchParams.has(
|
|
8
|
-
if (
|
|
9
|
-
if (bucketName.includes(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (objectKey.includes(
|
|
13
|
-
|
|
14
|
-
|
|
3
|
+
const getObjectRetentionHandler = http.get(`${getS3BaseUrl()}/:bucketName/*`, async ({ request, params })=>{
|
|
4
|
+
const { bucketName } = params;
|
|
5
|
+
const url = new URL(request.url);
|
|
6
|
+
const objectKey = url.pathname.substring(url.pathname.indexOf('/', 1) + 1);
|
|
7
|
+
if (!url.searchParams.has('retention')) return;
|
|
8
|
+
if ('string' == typeof bucketName) {
|
|
9
|
+
if (bucketName.includes('non-existent-bucket')) return HttpResponse.xml(createS3ErrorXml('NoSuchBucket', 'The specified bucket does not exist', bucketName), {
|
|
10
|
+
status: 404
|
|
11
|
+
});
|
|
12
|
+
if (objectKey.includes('non-existent-object')) return HttpResponse.xml(createS3ErrorXml('NoSuchKey', 'The specified key does not exist.', bucketName, objectKey), {
|
|
13
|
+
status: 404
|
|
14
|
+
});
|
|
15
|
+
if (bucketName.includes('restricted-bucket')) return HttpResponse.xml(createS3ErrorXml('AccessDenied', 'Access Denied'), {
|
|
16
|
+
status: 403
|
|
17
|
+
});
|
|
18
|
+
if (objectKey.includes('no-retention-object')) return HttpResponse.xml(createS3ErrorXml('NoSuchObjectLockConfiguration', 'The specified object does not have a ObjectLock configuration', bucketName, objectKey), {
|
|
19
|
+
status: 404
|
|
20
|
+
});
|
|
21
|
+
if (bucketName.includes('network-error-bucket')) return HttpResponse.error();
|
|
22
|
+
if (objectKey.includes('compliance-retention')) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
15
23
|
<Retention xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
16
24
|
<Mode>COMPLIANCE</Mode>
|
|
17
25
|
<RetainUntilDate>2024-12-31T23:59:59.000Z</RetainUntilDate>
|
|
18
|
-
</Retention
|
|
19
|
-
|
|
26
|
+
</Retention>`, {
|
|
27
|
+
status: 200
|
|
28
|
+
});
|
|
29
|
+
return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
20
30
|
<Retention xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
21
31
|
<Mode>GOVERNANCE</Mode>
|
|
22
32
|
<RetainUntilDate>2024-06-30T23:59:59.000Z</RetainUntilDate>
|
|
23
|
-
</Retention
|
|
33
|
+
</Retention>`, {
|
|
34
|
+
status: 200
|
|
35
|
+
});
|
|
24
36
|
}
|
|
25
|
-
return
|
|
37
|
+
return HttpResponse.xml(createS3ErrorXml('InvalidArgument', 'Invalid request parameters'), {
|
|
38
|
+
status: 400
|
|
39
|
+
});
|
|
26
40
|
});
|
|
27
41
|
export { getObjectRetentionHandler };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const putBucketAclHandler: import("msw").
|
|
1
|
+
export declare const putBucketAclHandler: import("msw").HttpHandler;
|
|
@@ -1,18 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HttpResponse, http } from "msw";
|
|
2
2
|
import { createS3ErrorXml, getS3BaseUrl } from "../utils.js";
|
|
3
|
-
const putBucketAclHandler =
|
|
4
|
-
const { bucketName } =
|
|
5
|
-
const url = new URL(
|
|
6
|
-
if (!url.searchParams.has(
|
|
7
|
-
if (
|
|
8
|
-
if (bucketName.includes(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (bucketName.includes(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (
|
|
3
|
+
const putBucketAclHandler = http.put(`${getS3BaseUrl()}/:bucketName`, async ({ request, params })=>{
|
|
4
|
+
const { bucketName } = params;
|
|
5
|
+
const url = new URL(request.url);
|
|
6
|
+
if (!url.searchParams.has('acl')) return;
|
|
7
|
+
if ('string' == typeof bucketName) {
|
|
8
|
+
if (bucketName.includes('non-existent-bucket')) return HttpResponse.xml(createS3ErrorXml('NoSuchBucket', 'The specified bucket does not exist', bucketName), {
|
|
9
|
+
status: 404
|
|
10
|
+
});
|
|
11
|
+
if (bucketName.includes('access-denied-bucket')) return HttpResponse.xml(createS3ErrorXml('AccessDenied', 'Access Denied'), {
|
|
12
|
+
status: 403
|
|
13
|
+
});
|
|
14
|
+
if (bucketName.includes('invalid-acl-bucket')) return HttpResponse.xml(createS3ErrorXml('InvalidRequest', 'The ACL configuration is invalid'), {
|
|
15
|
+
status: 400
|
|
16
|
+
});
|
|
17
|
+
if (bucketName.includes('malformed-acl-bucket')) return HttpResponse.xml(createS3ErrorXml('MalformedACLError', 'The XML provided does not match the expected format'), {
|
|
18
|
+
status: 400
|
|
19
|
+
});
|
|
20
|
+
if (bucketName.includes('network-error-bucket')) return HttpResponse.error();
|
|
21
|
+
const aclParam = url.searchParams.get('acl');
|
|
22
|
+
if ('invalid-acl-type' === aclParam) return HttpResponse.xml(createS3ErrorXml('InvalidArgument', 'Invalid canned ACL value'), {
|
|
23
|
+
status: 400
|
|
24
|
+
});
|
|
15
25
|
}
|
|
16
|
-
return
|
|
26
|
+
return new Response('', {
|
|
27
|
+
status: 200,
|
|
28
|
+
headers: {
|
|
29
|
+
'Content-Type': 'application/xml'
|
|
30
|
+
}
|
|
31
|
+
});
|
|
17
32
|
});
|
|
18
33
|
export { putBucketAclHandler };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const putObjectHandler: import("msw").
|
|
1
|
+
export declare const putObjectHandler: import("msw").HttpHandler;
|
|
@@ -1,16 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HttpResponse, http } from "msw";
|
|
2
2
|
import { createS3ErrorXml, getS3BaseUrl } from "../utils.js";
|
|
3
|
-
const putObjectHandler =
|
|
4
|
-
const { bucketName } =
|
|
5
|
-
const url = new URL(
|
|
6
|
-
const objectKey = url.pathname.substring(url.pathname.indexOf(
|
|
7
|
-
if (
|
|
8
|
-
if (bucketName.includes(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (
|
|
12
|
-
|
|
3
|
+
const putObjectHandler = http.put(`${getS3BaseUrl()}/:bucketName/*`, async ({ request, params })=>{
|
|
4
|
+
const { bucketName } = params;
|
|
5
|
+
const url = new URL(request.url);
|
|
6
|
+
const objectKey = url.pathname.substring(url.pathname.indexOf('/', 1) + 1);
|
|
7
|
+
if ('string' == typeof bucketName) {
|
|
8
|
+
if (bucketName.includes('non-existent-bucket')) return HttpResponse.xml(createS3ErrorXml('NoSuchBucket', 'The specified bucket does not exist', bucketName), {
|
|
9
|
+
status: 404
|
|
10
|
+
});
|
|
11
|
+
if (bucketName.includes('access-denied-bucket')) return HttpResponse.xml(createS3ErrorXml('AccessDenied', 'Access Denied'), {
|
|
12
|
+
status: 403
|
|
13
|
+
});
|
|
14
|
+
if (bucketName.includes('network-error-bucket')) return HttpResponse.error();
|
|
15
|
+
if (objectKey.includes('invalid-key')) return HttpResponse.xml(createS3ErrorXml('InvalidRequest', 'The specified key is not valid'), {
|
|
16
|
+
status: 400
|
|
17
|
+
});
|
|
18
|
+
return new Response('', {
|
|
19
|
+
status: 200,
|
|
20
|
+
headers: {
|
|
21
|
+
ETag: '"mock-etag-123"',
|
|
22
|
+
'x-amz-version-id': 'mock-version-id',
|
|
23
|
+
'x-amz-server-side-encryption': 'AES256'
|
|
24
|
+
}
|
|
25
|
+
});
|
|
13
26
|
}
|
|
14
|
-
return
|
|
27
|
+
return HttpResponse.xml(createS3ErrorXml('InvalidArgument', 'Invalid request parameters'), {
|
|
28
|
+
status: 400
|
|
29
|
+
});
|
|
15
30
|
});
|
|
16
31
|
export { putObjectHandler };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const createBucketHandler: import("msw").
|
|
2
|
-
export declare const getBucketVersioningHandler: import("msw").
|
|
3
|
-
export declare const s3Handlers: import("msw").
|
|
1
|
+
export declare const createBucketHandler: import("msw").HttpHandler;
|
|
2
|
+
export declare const getBucketVersioningHandler: import("msw").HttpHandler;
|
|
3
|
+
export declare const s3Handlers: import("msw").HttpHandler[];
|
|
4
4
|
export default s3Handlers;
|
|
@@ -1,93 +1,116 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { listBucketsHandler } from "./handlers/listBuckets.js";
|
|
1
|
+
import { HttpResponse, http } from "msw";
|
|
3
2
|
import { deleteBucketHandler } from "./handlers/deleteBucket.js";
|
|
4
|
-
import { getBucketLocationHandler } from "./handlers/getBucketLocation.js";
|
|
5
3
|
import { getBucketAclHandler } from "./handlers/getBucketAcl.js";
|
|
4
|
+
import { getBucketLocationHandler } from "./handlers/getBucketLocation.js";
|
|
6
5
|
import { getBucketPolicyHandler } from "./handlers/getBucketPolicy.js";
|
|
6
|
+
import { headObjectHandler } from "./handlers/headObject.js";
|
|
7
|
+
import { listBucketsHandler } from "./handlers/listBuckets.js";
|
|
7
8
|
import { listObjectsHandler } from "./handlers/listObjects.js";
|
|
8
9
|
import { listObjectVersionsHandler } from "./handlers/listObjectVersions.js";
|
|
9
|
-
import { headObjectHandler } from "./handlers/headObject.js";
|
|
10
|
-
import { getObjectRetentionHandler } from "./handlers/objectRetention.js";
|
|
11
10
|
import { getObjectLegalHoldHandler } from "./handlers/objectLegalHold.js";
|
|
12
|
-
import {
|
|
11
|
+
import { getObjectRetentionHandler } from "./handlers/objectRetention.js";
|
|
13
12
|
import { putBucketAclHandler } from "./handlers/putBucketAcl.js";
|
|
13
|
+
import { putObjectHandler } from "./handlers/putObject.js";
|
|
14
14
|
import { createS3ErrorXml, getS3BaseUrl } from "./utils.js";
|
|
15
15
|
const isBucketConfigurationRequest = (url)=>{
|
|
16
16
|
const configParams = [
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
17
|
+
'acl',
|
|
18
|
+
'policy',
|
|
19
|
+
'versioning',
|
|
20
|
+
'lifecycle',
|
|
21
|
+
'cors',
|
|
22
|
+
'website',
|
|
23
|
+
'tagging',
|
|
24
|
+
'encryption',
|
|
25
|
+
'notification',
|
|
26
|
+
'replication',
|
|
27
|
+
'requestPayment',
|
|
28
|
+
'accelerate',
|
|
29
|
+
'metrics',
|
|
30
|
+
'inventory',
|
|
31
|
+
'analytics',
|
|
32
|
+
'intelligentTiering',
|
|
33
|
+
'ownershipControls',
|
|
34
|
+
'publicAccessBlock',
|
|
35
|
+
'logging',
|
|
36
|
+
'location'
|
|
37
37
|
];
|
|
38
38
|
return configParams.some((param)=>url.searchParams.has(param));
|
|
39
39
|
};
|
|
40
|
-
const createBucketHandler =
|
|
41
|
-
const { bucketName } =
|
|
42
|
-
const url = new URL(
|
|
40
|
+
const createBucketHandler = http.put(`${getS3BaseUrl()}/:bucketName`, async ({ request, params })=>{
|
|
41
|
+
const { bucketName } = params;
|
|
42
|
+
const url = new URL(request.url);
|
|
43
43
|
if (isBucketConfigurationRequest(url)) return;
|
|
44
|
-
if (
|
|
45
|
-
if (bucketName.includes(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (bucketName.includes(
|
|
44
|
+
if ('string' == typeof bucketName) {
|
|
45
|
+
if (bucketName.includes('existing-bucket')) return HttpResponse.xml(createS3ErrorXml('BucketAlreadyExists', 'The requested bucket name is not available', bucketName), {
|
|
46
|
+
status: 409
|
|
47
|
+
});
|
|
48
|
+
if (bucketName.includes('restricted-bucket')) return HttpResponse.xml(createS3ErrorXml('AccessDenied', 'Access Denied'), {
|
|
49
|
+
status: 403
|
|
50
|
+
});
|
|
51
|
+
if (bucketName.includes('invalid-bucket-name')) return HttpResponse.xml(createS3ErrorXml('InvalidBucketName', 'Invalid bucket name'), {
|
|
52
|
+
status: 400
|
|
53
|
+
});
|
|
54
|
+
if (bucketName.includes('network-test-bucket')) return HttpResponse.error();
|
|
49
55
|
}
|
|
50
|
-
return
|
|
56
|
+
return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
51
57
|
<CreateBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
52
58
|
<Location>/${bucketName}</Location>
|
|
53
|
-
</CreateBucketResult
|
|
59
|
+
</CreateBucketResult>`, {
|
|
60
|
+
status: 200,
|
|
61
|
+
headers: {
|
|
62
|
+
Location: `/${bucketName}`
|
|
63
|
+
}
|
|
64
|
+
});
|
|
54
65
|
});
|
|
55
|
-
const getBucketVersioningHandler =
|
|
56
|
-
const { bucketName } =
|
|
57
|
-
const url = new URL(
|
|
58
|
-
if (!url.searchParams.has(
|
|
59
|
-
if (
|
|
60
|
-
if (bucketName.includes(
|
|
66
|
+
const getBucketVersioningHandler = http.get(`${getS3BaseUrl()}/:bucketName`, async ({ request, params })=>{
|
|
67
|
+
const { bucketName } = params;
|
|
68
|
+
const url = new URL(request.url);
|
|
69
|
+
if (!url.searchParams.has('versioning')) return;
|
|
70
|
+
if ('string' == typeof bucketName) {
|
|
71
|
+
if (bucketName.includes('nonexistent-bucket')) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
61
72
|
<Error>
|
|
62
73
|
<Code>NoSuchBucket</Code>
|
|
63
74
|
<Message>The specified bucket does not exist</Message>
|
|
64
75
|
<BucketName>${bucketName}</BucketName>
|
|
65
|
-
</Error
|
|
66
|
-
|
|
76
|
+
</Error>`, {
|
|
77
|
+
status: 404
|
|
78
|
+
});
|
|
79
|
+
if (bucketName.includes('access-denied-bucket')) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
67
80
|
<Error>
|
|
68
81
|
<Code>AccessDenied</Code>
|
|
69
82
|
<Message>Access Denied</Message>
|
|
70
|
-
</Error
|
|
71
|
-
|
|
72
|
-
|
|
83
|
+
</Error>`, {
|
|
84
|
+
status: 403
|
|
85
|
+
});
|
|
86
|
+
if (bucketName.includes('network-error-bucket')) return HttpResponse.error();
|
|
87
|
+
if (bucketName.includes('enabled-versioning-bucket')) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
73
88
|
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
74
89
|
<Status>Enabled</Status>
|
|
75
90
|
<MfaDelete>Disabled</MfaDelete>
|
|
76
|
-
</VersioningConfiguration
|
|
77
|
-
|
|
91
|
+
</VersioningConfiguration>`, {
|
|
92
|
+
status: 200
|
|
93
|
+
});
|
|
94
|
+
if (bucketName.includes('suspended-versioning-bucket')) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
78
95
|
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
79
96
|
<Status>Suspended</Status>
|
|
80
97
|
<MfaDelete>Disabled</MfaDelete>
|
|
81
|
-
</VersioningConfiguration
|
|
82
|
-
|
|
98
|
+
</VersioningConfiguration>`, {
|
|
99
|
+
status: 200
|
|
100
|
+
});
|
|
101
|
+
if (bucketName.includes('mfa-enabled-bucket')) return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
83
102
|
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
84
103
|
<Status>Enabled</Status>
|
|
85
104
|
<MfaDelete>Enabled</MfaDelete>
|
|
86
|
-
</VersioningConfiguration
|
|
105
|
+
</VersioningConfiguration>`, {
|
|
106
|
+
status: 200
|
|
107
|
+
});
|
|
87
108
|
}
|
|
88
|
-
return
|
|
109
|
+
return HttpResponse.xml(`<?xml version="1.0" encoding="UTF-8"?>
|
|
89
110
|
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
90
|
-
</VersioningConfiguration
|
|
111
|
+
</VersioningConfiguration>`, {
|
|
112
|
+
status: 200
|
|
113
|
+
});
|
|
91
114
|
});
|
|
92
115
|
const s3Handlers = [
|
|
93
116
|
listBucketsHandler,
|
package/dist/test/msw/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { createBucketHandler, getBucketVersioningHandler, s3Handlers, } from './handlers';
|
|
2
|
+
export { overrideHandlers, server, setupMswServer } from './server';
|
package/dist/test/msw/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { overrideHandlers, server, setupMswServer } from "./server.js";
|
|
2
1
|
import { createBucketHandler, getBucketVersioningHandler, s3Handlers } from "./handlers.js";
|
|
2
|
+
import { overrideHandlers, server, setupMswServer } from "./server.js";
|
|
3
3
|
export { createBucketHandler, getBucketVersioningHandler, overrideHandlers, s3Handlers, server, setupMswServer };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const server: import("msw/node").SetupServerApi;
|
|
2
2
|
export declare const setupMswServer: () => void;
|
|
3
3
|
export declare const overrideHandlers: (...handlers: Parameters<typeof server.use>) => void;
|
|
4
|
-
export { s3Handlers } from
|
|
4
|
+
export { s3Handlers } from './handlers';
|
package/dist/test/msw/server.js
CHANGED
package/dist/test/msw/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const getS3BaseUrl = ()=>
|
|
1
|
+
const getS3BaseUrl = ()=>'https://s3.amazonaws.com';
|
|
2
2
|
const createS3ErrorXml = (code, message, bucketName, key)=>{
|
|
3
|
-
let resourceDetails =
|
|
3
|
+
let resourceDetails = '';
|
|
4
4
|
if (bucketName) resourceDetails += `<BucketName>${bucketName}</BucketName>`;
|
|
5
5
|
if (key) resourceDetails += `<Key>${key}</Key>`;
|
|
6
6
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
package/dist/test/setup.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import '@testing-library/jest-dom';
|