@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.
Files changed (287) hide show
  1. package/dist/components/DataBrowserUI.d.ts +12 -0
  2. package/dist/components/DataBrowserUI.js +99 -0
  3. package/dist/components/Editor.d.ts +1 -1
  4. package/dist/components/Editor.js +3 -3
  5. package/dist/components/__tests__/BucketAccessor.test.js +214 -0
  6. package/dist/components/__tests__/BucketCorsPage.test.d.ts +1 -0
  7. package/dist/components/__tests__/BucketCorsPage.test.js +263 -0
  8. package/dist/components/__tests__/BucketCreate.test.js +271 -105
  9. package/dist/components/__tests__/BucketDetails.test.d.ts +1 -0
  10. package/dist/components/__tests__/BucketDetails.test.js +421 -0
  11. package/dist/components/__tests__/BucketLifecycleFormPage.test.d.ts +13 -0
  12. package/dist/components/__tests__/BucketLifecycleFormPage.test.js +178 -178
  13. package/dist/components/__tests__/BucketLifecycleList.test.js +85 -85
  14. package/dist/components/__tests__/BucketList.test.js +463 -239
  15. package/dist/components/__tests__/BucketNotificationFormPage.test.d.ts +1 -0
  16. package/dist/components/__tests__/BucketNotificationFormPage.test.js +348 -0
  17. package/dist/components/__tests__/BucketNotificationList.test.d.ts +1 -0
  18. package/dist/components/__tests__/BucketNotificationList.test.js +379 -0
  19. package/dist/components/__tests__/BucketOverview.test.js +281 -266
  20. package/dist/components/__tests__/BucketPolicyPage.test.js +151 -99
  21. package/dist/components/__tests__/BucketReplicationFormPage.test.d.ts +15 -0
  22. package/dist/components/__tests__/BucketReplicationFormPage.test.js +544 -544
  23. package/dist/components/__tests__/BucketReplicationList.test.js +106 -106
  24. package/dist/components/__tests__/CreateFolderButton.test.js +56 -56
  25. package/dist/components/__tests__/DeleteBucketButton.test.js +64 -64
  26. package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.js +47 -47
  27. package/dist/components/__tests__/DeleteObjectButton.test.js +64 -64
  28. package/dist/components/__tests__/EmptyBucketButton.test.js +59 -59
  29. package/dist/components/__tests__/MetadataSearch.test.js +65 -65
  30. package/dist/components/__tests__/ObjectList.test.js +741 -240
  31. package/dist/components/__tests__/UploadButton.test.js +45 -45
  32. package/dist/components/breadcrumb/Breadcrumb.d.ts +6 -0
  33. package/dist/components/breadcrumb/Breadcrumb.js +37 -0
  34. package/dist/components/breadcrumb/DataBrowserBreadcrumb.d.ts +1 -0
  35. package/dist/components/breadcrumb/DataBrowserBreadcrumb.js +10 -0
  36. package/dist/components/breadcrumb/__tests__/Breadcrumb.test.d.ts +1 -0
  37. package/dist/components/breadcrumb/__tests__/Breadcrumb.test.js +196 -0
  38. package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.d.ts +1 -0
  39. package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.js +153 -0
  40. package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.d.ts +1 -0
  41. package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.js +134 -0
  42. package/dist/components/breadcrumb/index.d.ts +8 -0
  43. package/dist/components/breadcrumb/index.js +4 -0
  44. package/dist/components/breadcrumb/useBreadcrumbPaths.d.ts +2 -0
  45. package/dist/components/breadcrumb/useBreadcrumbPaths.js +82 -0
  46. package/dist/components/buckets/BucketAccessor.d.ts +2 -0
  47. package/dist/components/buckets/BucketAccessor.js +125 -0
  48. package/dist/components/buckets/BucketConfigEditButton.d.ts +8 -0
  49. package/dist/components/buckets/{BucketPolicyButton.js → BucketConfigEditButton.js} +9 -5
  50. package/dist/components/buckets/BucketCorsPage.d.ts +1 -0
  51. package/dist/components/buckets/BucketCorsPage.js +234 -0
  52. package/dist/components/buckets/BucketCreate.d.ts +3 -2
  53. package/dist/components/buckets/BucketCreate.js +93 -47
  54. package/dist/components/buckets/BucketDetails.d.ts +42 -0
  55. package/dist/components/buckets/BucketDetails.js +249 -85
  56. package/dist/components/buckets/BucketLifecycleFormPage.js +225 -191
  57. package/dist/components/buckets/BucketLifecycleList.d.ts +2 -2
  58. package/dist/components/buckets/BucketLifecycleList.js +59 -61
  59. package/dist/components/buckets/BucketList.d.ts +7 -8
  60. package/dist/components/buckets/BucketList.js +158 -101
  61. package/dist/components/buckets/BucketLocation.js +4 -4
  62. package/dist/components/buckets/BucketOverview.d.ts +22 -2
  63. package/dist/components/buckets/BucketOverview.js +394 -187
  64. package/dist/components/buckets/BucketPage.js +43 -21
  65. package/dist/components/buckets/BucketPolicyPage.js +155 -127
  66. package/dist/components/buckets/BucketReplicationFormPage.js +134 -133
  67. package/dist/components/buckets/BucketReplicationList.d.ts +2 -2
  68. package/dist/components/buckets/BucketReplicationList.js +48 -45
  69. package/dist/components/buckets/BucketVersioning.d.ts +4 -0
  70. package/dist/components/buckets/BucketVersioning.js +76 -0
  71. package/dist/components/buckets/DeleteBucketButton.js +8 -8
  72. package/dist/components/buckets/DeleteBucketConfigRuleButton.d.ts +2 -2
  73. package/dist/components/buckets/DeleteBucketConfigRuleButton.js +2 -2
  74. package/dist/components/buckets/EmptyBucketButton.js +24 -24
  75. package/dist/components/buckets/EmptyBucketSummary.d.ts +2 -2
  76. package/dist/components/buckets/EmptyBucketSummary.js +1 -1
  77. package/dist/components/buckets/EmptyBucketSummaryList.d.ts +1 -1
  78. package/dist/components/buckets/EmptyBucketSummaryList.js +22 -22
  79. package/dist/components/buckets/__tests__/BucketVersioning.test.d.ts +1 -0
  80. package/dist/components/buckets/__tests__/BucketVersioning.test.js +163 -0
  81. package/dist/components/buckets/notifications/BucketNotificationFormPage.d.ts +1 -0
  82. package/dist/components/buckets/notifications/BucketNotificationFormPage.js +316 -0
  83. package/dist/components/buckets/notifications/BucketNotificationList.d.ts +10 -0
  84. package/dist/components/buckets/notifications/BucketNotificationList.js +267 -0
  85. package/dist/components/buckets/notifications/EventsSection.js +145 -29
  86. package/dist/components/buckets/notifications/__tests__/events.test.d.ts +1 -0
  87. package/dist/components/buckets/notifications/__tests__/events.test.js +56 -0
  88. package/dist/components/buckets/notifications/events.d.ts +71 -7
  89. package/dist/components/buckets/notifications/events.js +98 -16
  90. package/dist/components/index.d.ts +27 -20
  91. package/dist/components/index.js +17 -10
  92. package/dist/components/layouts/ArrowNavigation.d.ts +3 -0
  93. package/dist/components/layouts/ArrowNavigation.js +28 -0
  94. package/dist/components/layouts/BrowserPageLayout.d.ts +5 -1
  95. package/dist/components/layouts/BrowserPageLayout.js +10 -5
  96. package/dist/components/objects/CreateFolderButton.d.ts +2 -2
  97. package/dist/components/objects/CreateFolderButton.js +12 -12
  98. package/dist/components/objects/DeleteObjectButton.d.ts +1 -1
  99. package/dist/components/objects/DeleteObjectButton.js +19 -21
  100. package/dist/components/objects/GetPresignedUrlButton.d.ts +7 -0
  101. package/dist/components/objects/GetPresignedUrlButton.js +255 -0
  102. package/dist/components/objects/ObjectDetails/ObjectMetadata.d.ts +2 -2
  103. package/dist/components/objects/ObjectDetails/ObjectMetadata.js +289 -230
  104. package/dist/components/objects/ObjectDetails/ObjectSummary.d.ts +2 -2
  105. package/dist/components/objects/ObjectDetails/ObjectSummary.js +540 -138
  106. package/dist/components/objects/ObjectDetails/ObjectTags.d.ts +2 -2
  107. package/dist/components/objects/ObjectDetails/ObjectTags.js +103 -123
  108. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.d.ts +1 -0
  109. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.js +516 -0
  110. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.d.ts +1 -0
  111. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.js +1064 -0
  112. package/dist/components/objects/ObjectDetails/formUtils.d.ts +15 -0
  113. package/dist/components/objects/ObjectDetails/formUtils.js +7 -0
  114. package/dist/components/objects/ObjectDetails/index.d.ts +18 -2
  115. package/dist/components/objects/ObjectDetails/index.js +152 -40
  116. package/dist/components/objects/ObjectList.d.ts +12 -10
  117. package/dist/components/objects/ObjectList.js +590 -263
  118. package/dist/components/objects/ObjectLock/EditRetentionButton.js +4 -4
  119. package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.js +15 -15
  120. package/dist/components/objects/ObjectLock/ObjectLockSettings.d.ts +1 -1
  121. package/dist/components/objects/ObjectLock/ObjectLockSettings.js +32 -31
  122. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.d.ts +1 -1
  123. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.js +6 -6
  124. package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.js +51 -51
  125. package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.js +78 -78
  126. package/dist/components/objects/ObjectPage.js +12 -8
  127. package/dist/components/objects/UploadButton.d.ts +3 -3
  128. package/dist/components/objects/UploadButton.js +10 -10
  129. package/dist/components/objects/__tests__/GetPresignedUrlButton.test.d.ts +1 -0
  130. package/dist/components/objects/__tests__/GetPresignedUrlButton.test.js +531 -0
  131. package/dist/components/providers/DataBrowserProvider.d.ts +23 -12
  132. package/dist/components/providers/DataBrowserProvider.js +60 -38
  133. package/dist/components/providers/QueryProvider.d.ts +9 -0
  134. package/dist/components/providers/QueryProvider.js +21 -0
  135. package/dist/components/search/MetadataSearch.js +29 -28
  136. package/dist/components/search/SearchHints.js +1 -1
  137. package/dist/components/ui/ArrayFieldActions.js +12 -7
  138. package/dist/components/ui/ConfirmDeleteRuleModal.d.ts +2 -2
  139. package/dist/components/ui/ConfirmDeleteRuleModal.js +6 -1
  140. package/dist/components/ui/DeleteObjectModalContent.d.ts +1 -1
  141. package/dist/components/ui/DeleteObjectModalContent.js +12 -12
  142. package/dist/components/ui/FilterFormSection.d.ts +2 -2
  143. package/dist/components/ui/FilterFormSection.js +29 -29
  144. package/dist/components/ui/Search.elements.d.ts +2 -2
  145. package/dist/components/ui/Search.elements.js +7 -7
  146. package/dist/components/ui/Table.elements.d.ts +2 -1
  147. package/dist/components/ui/Table.elements.js +18 -12
  148. package/dist/config/__tests__/factory.test.d.ts +1 -0
  149. package/dist/config/__tests__/factory.test.js +311 -0
  150. package/dist/config/factory.d.ts +10 -56
  151. package/dist/config/factory.js +23 -71
  152. package/dist/config/types.d.ts +212 -34
  153. package/dist/contexts/DataBrowserUICustomizationContext.d.ts +27 -0
  154. package/dist/contexts/DataBrowserUICustomizationContext.js +13 -0
  155. package/dist/hooks/__tests__/useAccessibleBuckets.test.d.ts +1 -0
  156. package/dist/hooks/__tests__/useAccessibleBuckets.test.js +145 -0
  157. package/dist/hooks/__tests__/useISVBucketDetection.test.js +45 -45
  158. package/dist/hooks/__tests__/useIsBucketEmpty.test.js +27 -27
  159. package/dist/hooks/__tests__/useLoginMutation.test.d.ts +1 -0
  160. package/dist/hooks/__tests__/useLoginMutation.test.js +194 -0
  161. package/dist/hooks/bucketConfiguration.d.ts +8 -1
  162. package/dist/hooks/bucketConfiguration.js +52 -51
  163. package/dist/hooks/bucketOperations.d.ts +10 -1
  164. package/dist/hooks/bucketOperations.js +10 -9
  165. package/dist/hooks/factories/__tests__/useCreateS3FunctionMutationHook.test.js +80 -80
  166. package/dist/hooks/factories/__tests__/useCreateS3InfiniteQueryHook.test.js +80 -80
  167. package/dist/hooks/factories/__tests__/useCreateS3LoginHook.test.js +44 -44
  168. package/dist/hooks/factories/__tests__/useCreateS3MutationHook.test.js +63 -63
  169. package/dist/hooks/factories/__tests__/useCreateS3QueryHook.test.js +65 -65
  170. package/dist/hooks/factories/index.d.ts +4 -4
  171. package/dist/hooks/factories/index.js +2 -2
  172. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.d.ts +2 -2
  173. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.js +16 -13
  174. package/dist/hooks/factories/useCreateS3LoginHook.d.ts +2 -2
  175. package/dist/hooks/factories/useCreateS3LoginHook.js +1 -1
  176. package/dist/hooks/factories/useCreateS3MutationHook.d.ts +3 -3
  177. package/dist/hooks/factories/useCreateS3MutationHook.js +7 -2
  178. package/dist/hooks/factories/useCreateS3QueryHook.d.ts +2 -2
  179. package/dist/hooks/factories/useCreateS3QueryHook.js +11 -6
  180. package/dist/hooks/index.d.ts +19 -12
  181. package/dist/hooks/index.js +16 -9
  182. package/dist/hooks/loginOperations.d.ts +1 -1
  183. package/dist/hooks/loginOperations.js +1 -1
  184. package/dist/hooks/objectOperations.d.ts +2 -2
  185. package/dist/hooks/objectOperations.js +50 -49
  186. package/dist/hooks/presignedOperations.d.ts +4 -4
  187. package/dist/hooks/presignedOperations.js +5 -5
  188. package/dist/hooks/useAccessibleBuckets.d.ts +11 -0
  189. package/dist/hooks/useAccessibleBuckets.js +115 -0
  190. package/dist/hooks/useBatchObjectLegalHold.d.ts +11 -0
  191. package/dist/hooks/useBatchObjectLegalHold.js +48 -0
  192. package/dist/hooks/useBucketConfigEditor.d.ts +31 -0
  193. package/dist/hooks/useBucketConfigEditor.js +82 -0
  194. package/dist/hooks/useDataBrowserNavigate.d.ts +28 -0
  195. package/dist/hooks/useDataBrowserNavigate.js +24 -0
  196. package/dist/hooks/useDeleteBucketConfigRule.d.ts +2 -2
  197. package/dist/hooks/useDeleteBucketConfigRule.js +4 -4
  198. package/dist/hooks/useEmptyBucket.js +11 -11
  199. package/dist/hooks/useFeatures.d.ts +7 -0
  200. package/dist/hooks/useFeatures.js +8 -0
  201. package/dist/hooks/useISVBucketDetection.js +6 -6
  202. package/dist/hooks/useIsBucketEmpty.js +4 -4
  203. package/dist/hooks/useLimitedAccessFlow.d.ts +48 -0
  204. package/dist/hooks/useLimitedAccessFlow.js +23 -0
  205. package/dist/hooks/useS3Client.d.ts +6 -0
  206. package/dist/hooks/useS3Client.js +3 -2
  207. package/dist/hooks/useS3ConfigSwitch.d.ts +11 -0
  208. package/dist/hooks/useS3ConfigSwitch.js +37 -0
  209. package/dist/hooks/useSupportedNotificationEvents.d.ts +6 -0
  210. package/dist/hooks/useSupportedNotificationEvents.js +8 -0
  211. package/dist/index.d.ts +6 -6
  212. package/dist/index.js +2 -2
  213. package/dist/schemas/bucketPolicySchema.json +3 -13
  214. package/dist/test/msw/handlers/deleteBucket.d.ts +1 -1
  215. package/dist/test/msw/handlers/deleteBucket.js +20 -10
  216. package/dist/test/msw/handlers/getBucketAcl.d.ts +1 -1
  217. package/dist/test/msw/handlers/getBucketAcl.js +29 -17
  218. package/dist/test/msw/handlers/getBucketLocation.d.ts +1 -1
  219. package/dist/test/msw/handlers/getBucketLocation.js +29 -15
  220. package/dist/test/msw/handlers/getBucketPolicy.d.ts +1 -1
  221. package/dist/test/msw/handlers/getBucketPolicy.js +52 -32
  222. package/dist/test/msw/handlers/headObject.d.ts +1 -1
  223. package/dist/test/msw/handlers/headObject.js +31 -13
  224. package/dist/test/msw/handlers/listBuckets.d.ts +1 -1
  225. package/dist/test/msw/handlers/listBuckets.js +5 -3
  226. package/dist/test/msw/handlers/listObjectVersions.d.ts +1 -1
  227. package/dist/test/msw/handlers/listObjectVersions.js +38 -26
  228. package/dist/test/msw/handlers/listObjects.d.ts +1 -1
  229. package/dist/test/msw/handlers/listObjects.js +35 -23
  230. package/dist/test/msw/handlers/objectLegalHold.d.ts +1 -1
  231. package/dist/test/msw/handlers/objectLegalHold.js +32 -17
  232. package/dist/test/msw/handlers/objectRetention.d.ts +1 -1
  233. package/dist/test/msw/handlers/objectRetention.js +31 -17
  234. package/dist/test/msw/handlers/putBucketAcl.d.ts +1 -1
  235. package/dist/test/msw/handlers/putBucketAcl.js +29 -14
  236. package/dist/test/msw/handlers/putObject.d.ts +1 -1
  237. package/dist/test/msw/handlers/putObject.js +27 -12
  238. package/dist/test/msw/handlers.d.ts +3 -3
  239. package/dist/test/msw/handlers.js +77 -54
  240. package/dist/test/msw/index.d.ts +2 -2
  241. package/dist/test/msw/index.js +1 -1
  242. package/dist/test/msw/server.d.ts +1 -1
  243. package/dist/test/msw/server.js +1 -1
  244. package/dist/test/msw/utils.js +2 -2
  245. package/dist/test/setup.d.ts +1 -1
  246. package/dist/test/setup.js +13 -30
  247. package/dist/test/testUtils.d.ts +85 -33
  248. package/dist/test/testUtils.js +176 -111
  249. package/dist/test/utils/errorHandling.test.js +119 -119
  250. package/dist/types/index.d.ts +50 -37
  251. package/dist/types/monaco.d.ts +13 -0
  252. package/dist/types/monaco.js +0 -0
  253. package/dist/utils/__tests__/proxyMiddleware.test.d.ts +1 -0
  254. package/dist/utils/__tests__/proxyMiddleware.test.js +579 -0
  255. package/dist/utils/__tests__/s3Client.test.d.ts +1 -0
  256. package/dist/utils/__tests__/s3Client.test.js +340 -0
  257. package/dist/utils/__tests__/s3ConfigIdentifier.test.d.ts +1 -0
  258. package/dist/utils/__tests__/s3ConfigIdentifier.test.js +437 -0
  259. package/dist/utils/constants.d.ts +10 -0
  260. package/dist/utils/constants.js +19 -9
  261. package/dist/utils/deletion/index.d.ts +2 -2
  262. package/dist/utils/deletion/index.js +1 -1
  263. package/dist/utils/deletion/messages.d.ts +1 -1
  264. package/dist/utils/deletion/messages.js +4 -4
  265. package/dist/utils/errorHandling.d.ts +3 -3
  266. package/dist/utils/errorHandling.js +6 -6
  267. package/dist/utils/hooks.js +8 -8
  268. package/dist/utils/index.d.ts +5 -4
  269. package/dist/utils/index.js +4 -2
  270. package/dist/utils/proxyMiddleware.d.ts +32 -13
  271. package/dist/utils/proxyMiddleware.js +90 -36
  272. package/dist/utils/s3Client.d.ts +14 -4
  273. package/dist/utils/s3Client.js +5 -26
  274. package/dist/utils/s3ConfigIdentifier.d.ts +79 -0
  275. package/dist/utils/s3ConfigIdentifier.js +57 -0
  276. package/dist/utils/s3RuleUtils.d.ts +5 -5
  277. package/dist/utils/s3RuleUtils.js +17 -17
  278. package/package.json +10 -8
  279. package/dist/components/__tests__/BucketNotificationCreatePage.test.js +0 -316
  280. package/dist/components/buckets/BucketPolicyButton.d.ts +0 -7
  281. package/dist/components/buckets/notifications/BucketNotificationCreatePage.d.ts +0 -1
  282. package/dist/components/buckets/notifications/BucketNotificationCreatePage.js +0 -234
  283. package/dist/hooks/useLoginMutation.d.ts +0 -21
  284. package/dist/hooks/useLoginMutation.js +0 -9
  285. package/dist/utils/useFeatures.d.ts +0 -1
  286. package/dist/utils/useFeatures.js +0 -7
  287. /package/dist/components/__tests__/{BucketNotificationCreatePage.test.d.ts → BucketAccessor.test.d.ts} +0 -0
@@ -1,93 +1,116 @@
1
- import { rest } from "msw";
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 { putObjectHandler } from "./handlers/putObject.js";
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
- "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"
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 = rest.put(`${getS3BaseUrl()}/:bucketName`, (req, res, ctx)=>{
41
- const { bucketName } = req.params;
42
- const url = new URL(req.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 ("string" == typeof bucketName) {
45
- if (bucketName.includes("existing-bucket")) return res(ctx.status(409), ctx.xml(createS3ErrorXml("BucketAlreadyExists", "The requested bucket name is not available", bucketName)));
46
- if (bucketName.includes("restricted-bucket")) return res(ctx.status(403), ctx.xml(createS3ErrorXml("AccessDenied", "Access Denied")));
47
- if (bucketName.includes("invalid-bucket-name")) return res(ctx.status(400), ctx.xml(createS3ErrorXml("InvalidBucketName", "Invalid bucket name")));
48
- if (bucketName.includes("network-test-bucket")) return res.networkError("Network connection failed");
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 res(ctx.status(200), ctx.set("Location", `/${bucketName}`), ctx.xml(`<?xml version="1.0" encoding="UTF-8"?>
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 = rest.get(`${getS3BaseUrl()}/:bucketName`, (req, res, ctx)=>{
56
- const { bucketName } = req.params;
57
- const url = new URL(req.url);
58
- if (!url.searchParams.has("versioning")) return;
59
- if ("string" == typeof bucketName) {
60
- if (bucketName.includes("nonexistent-bucket")) return res(ctx.status(404), ctx.xml(`<?xml version="1.0" encoding="UTF-8"?>
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
- if (bucketName.includes("access-denied-bucket")) return res(ctx.status(403), ctx.xml(`<?xml version="1.0" encoding="UTF-8"?>
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
- if (bucketName.includes("network-error-bucket")) return res.networkError("Network connection failed");
72
- if (bucketName.includes("enabled-versioning-bucket")) return res(ctx.status(200), ctx.xml(`<?xml version="1.0" encoding="UTF-8"?>
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
- if (bucketName.includes("suspended-versioning-bucket")) return res(ctx.status(200), ctx.xml(`<?xml version="1.0" encoding="UTF-8"?>
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
- if (bucketName.includes("mfa-enabled-bucket")) return res(ctx.status(200), ctx.xml(`<?xml version="1.0" encoding="UTF-8"?>
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 res(ctx.status(200), ctx.xml(`<?xml version="1.0" encoding="UTF-8"?>
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,
@@ -1,2 +1,2 @@
1
- export { server, setupMswServer, overrideHandlers } from "./server";
2
- export { s3Handlers, createBucketHandler, getBucketVersioningHandler, } from "./handlers";
1
+ export { createBucketHandler, getBucketVersioningHandler, s3Handlers, } from './handlers';
2
+ export { overrideHandlers, server, setupMswServer } from './server';
@@ -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 "./handlers";
4
+ export { s3Handlers } from './handlers';
@@ -4,7 +4,7 @@ const server = setupServer(...s3Handlers);
4
4
  const setupMswServer = ()=>{
5
5
  beforeAll(()=>{
6
6
  server.listen({
7
- onUnhandledRequest: "warn"
7
+ onUnhandledRequest: 'warn'
8
8
  });
9
9
  });
10
10
  afterEach(()=>{
@@ -1,6 +1,6 @@
1
- const getS3BaseUrl = ()=>"https://s3.amazonaws.com";
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"?>
@@ -1 +1 @@
1
- import "@testing-library/jest-dom";
1
+ import '@testing-library/jest-dom';
@@ -11,42 +11,25 @@ var __webpack_require__ = {};
11
11
  }
12
12
  })();
13
13
  })();
14
- process.env.AWS_ACCESS_KEY_ID = "test-access-key";
15
- process.env.AWS_SECRET_ACCESS_KEY = "test-secret-key";
16
- process.env.AWS_DEFAULT_REGION = "us-east-1";
17
- const testS3Config = {
18
- endpoint: "http://localhost:8000",
19
- region: "us-east-1",
20
- realHost: "s3.amazonaws.com",
21
- forcePathStyle: true
22
- };
23
- const testDevConfig = {
24
- useProxy: false,
25
- proxyEndpoint: "http://localhost:3000/api/s3",
26
- proxyBasePath: "/api/s3",
27
- proxyHost: "localhost",
28
- proxyPort: 3000
29
- };
30
- globalThis.__S3_CONFIG__ = testS3Config;
31
- globalThis.__DEV_CONFIG__ = testDevConfig;
32
- globalThis.__IS_DEVELOPMENT__ = true;
33
- globalThis.__IS_PRODUCTION__ = false;
14
+ process.env.AWS_ACCESS_KEY_ID = 'test-access-key';
15
+ process.env.AWS_SECRET_ACCESS_KEY = 'test-secret-key';
16
+ process.env.AWS_DEFAULT_REGION = 'us-east-1';
34
17
  jest.setTimeout(10000);
35
18
  Object.assign(__webpack_require__.g, {
36
19
  TextDecoder: TextDecoder,
37
20
  TextEncoder: TextEncoder
38
21
  });
39
- Object.defineProperty(HTMLCanvasElement.prototype, "getContext", {
22
+ Object.defineProperty(HTMLCanvasElement.prototype, 'getContext', {
40
23
  value: ()=>null
41
24
  });
42
- jest.mock("pretty-bytes", ()=>({
25
+ jest.mock('pretty-bytes', ()=>({
43
26
  __esModule: true,
44
27
  default: (bytes)=>{
45
28
  const sizes = [
46
- "B",
47
- "KB",
48
- "MB",
49
- "GB"
29
+ 'B',
30
+ 'KB',
31
+ 'MB',
32
+ 'GB'
50
33
  ];
51
34
  let i = 0;
52
35
  let num = bytes;
@@ -57,8 +40,8 @@ jest.mock("pretty-bytes", ()=>({
57
40
  return `${Math.round(num)} ${sizes[i]}`;
58
41
  }
59
42
  }));
60
- jest.mock("joi", ()=>{
61
- const Joi = jest.requireActual("joi");
43
+ jest.mock('joi', ()=>{
44
+ const Joi = jest.requireActual('joi');
62
45
  return {
63
46
  __esModule: true,
64
47
  default: Joi,
@@ -76,11 +59,11 @@ const originalError = console.error;
76
59
  const originalWarn = console.warn;
77
60
  beforeAll(()=>{
78
61
  console.error = (...args)=>{
79
- if ("string" == typeof args[0] && (args[0].includes("AWS") || args[0].includes("S3") || args[0].includes("Warning: An update to") || args[0].includes('Warning: A props object containing a "key" prop'))) return;
62
+ if ('string' == typeof args[0] && (args[0].includes('AWS') || args[0].includes('S3') || args[0].includes('Warning: An update to') || args[0].includes('Warning: A props object containing a "key" prop'))) return;
80
63
  originalError(...args);
81
64
  };
82
65
  console.warn = (...args)=>{
83
- if ("string" == typeof args[0] && (args[0].includes("AWS") || args[0].includes("S3") || args[0].includes("Warning: An update to") || args[0].includes('Warning: A props object containing a "key" prop'))) return;
66
+ if ('string' == typeof args[0] && (args[0].includes('AWS') || args[0].includes('S3') || args[0].includes('Warning: An update to') || args[0].includes('Warning: A props object containing a "key" prop'))) return;
84
67
  originalWarn(...args);
85
68
  };
86
69
  });
@@ -10,10 +10,10 @@
10
10
  * - Factory pattern validation utilities
11
11
  * - Form testing helpers
12
12
  */
13
- import React from "react";
14
- import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
15
- import { S3BrowserConfig, S3Credentials } from "../types";
16
- import type { S3Configuration, DevelopmentConfiguration } from "../config/types";
13
+ import { PutObjectCommand, S3Client } from '@aws-sdk/client-s3';
14
+ import { type UseQueryResult } from '@tanstack/react-query';
15
+ import type React from 'react';
16
+ import type { S3BrowserConfig, S3Credentials } from '../types';
17
17
  /**
18
18
  * Default S3 configuration for tests
19
19
  */
@@ -45,12 +45,6 @@ export declare const setupCommonMocks: () => void;
45
45
  * @param height - The mock height in pixels
46
46
  */
47
47
  export declare function mockOffsetSize(width: number, height: number): void;
48
- /**
49
- * Creates a simple QueryClient wrapper for tests that don't need DataBrowser context
50
- */
51
- export declare const createQueryWrapper: () => ({ children }: {
52
- children: React.ReactNode;
53
- }) => import("react/jsx-runtime").JSX.Element;
54
48
  /**
55
49
  * Creates a test wrapper with DataBrowser context and QueryClient
56
50
  */
@@ -69,28 +63,6 @@ export declare const renderHookWithWrapper: <TProps, TResult>(hook: (props: TPro
69
63
  * Creates a test File object
70
64
  */
71
65
  export declare const createTestFile: (name: string, content: string, type?: string) => File;
72
- type GlobalConfigOverrides = {
73
- s3?: Partial<S3Configuration>;
74
- dev?: Partial<DevelopmentConfiguration>;
75
- environment?: {
76
- isDevelopment?: boolean;
77
- isProduction?: boolean;
78
- };
79
- };
80
- /**
81
- * Override global configuration for testing specific scenarios
82
- * Useful for testing different deployment environments or proxy configurations
83
- */
84
- export declare const overrideGlobalConfig: (overrides: GlobalConfigOverrides) => void;
85
- /**
86
- * Reset global configuration to test defaults
87
- * Should be called in afterEach or afterAll to ensure test isolation
88
- */
89
- export declare const resetGlobalConfig: () => void;
90
- /**
91
- * Test helper for running tests with specific global configuration
92
- */
93
- export declare const withGlobalConfig: (overrides: GlobalConfigOverrides, testFn: () => void | Promise<void>) => () => Promise<void>;
94
66
  /**
95
67
  * Creates a factory test error
96
68
  */
@@ -138,6 +110,22 @@ export declare const createMockMutationResult: (mutate: jest.Mock, overrides?: {
138
110
  isPaused: false;
139
111
  submittedAt: number;
140
112
  };
113
+ /**
114
+ * Creates a mock UseQueryResult for testing React Query queries
115
+ *
116
+ * This helper provides a complete mock object that matches the UseQueryResult type
117
+ * from @tanstack/react-query, eliminating the need for 'as any' type assertions.
118
+ *
119
+ * @param overrides - Optional overrides for any properties (e.g., { isLoading: true, data: mockData })
120
+ * @returns A complete UseQueryResult mock object
121
+ *
122
+ * @example
123
+ * ```ts
124
+ * const mockQueryResult = createMockQueryResult({ isLoading: true });
125
+ * mockUseGetBucketPolicy.mockReturnValue(mockQueryResult);
126
+ * ```
127
+ */
128
+ export declare const createMockQueryResult: <T, E = Error>(overrides?: Partial<UseQueryResult<T, E>>) => UseQueryResult<T, E>;
141
129
  /**
142
130
  * Finds a Toggle input element by its label text
143
131
  * Traverses the DOM to locate the associated checkbox input
@@ -161,4 +149,68 @@ export declare const mockSuccessSubmit: (mockMutate: jest.Mock) => void;
161
149
  * @param errorMessage - The error message to return (default: "Network Error")
162
150
  */
163
151
  export declare const mockErrorSubmit: (mockMutate: jest.Mock, errorMessage?: string) => void;
164
- export { setupMswServer, overrideHandlers } from "./msw";
152
+ import type { GetBucketAclCommandOutput, GetBucketCorsCommandOutput, GetBucketLifecycleConfigurationCommandOutput, GetBucketLocationCommandOutput, GetBucketPolicyCommandOutput, GetBucketReplicationCommandOutput, GetBucketTaggingCommandOutput, GetBucketVersioningCommandOutput, GetObjectLockConfigurationCommandOutput } from '@aws-sdk/client-s3';
153
+ export type MockQueryResult<T> = {
154
+ data: T | undefined;
155
+ status: 'idle' | 'pending' | 'success' | 'error';
156
+ error?: Error | null;
157
+ };
158
+ export type ISVBucketStatusMock = {
159
+ isVeeamBucket: boolean;
160
+ isCommvaultBucket: boolean;
161
+ isISVManaged: boolean;
162
+ isvApplication: string | undefined;
163
+ isLoading: boolean;
164
+ bucketTagsStatus: 'idle' | 'pending' | 'success' | 'error';
165
+ };
166
+ export interface BucketMockData {
167
+ versioning: MockQueryResult<GetBucketVersioningCommandOutput>;
168
+ acl: MockQueryResult<GetBucketAclCommandOutput>;
169
+ location: MockQueryResult<GetBucketLocationCommandOutput>;
170
+ cors: MockQueryResult<GetBucketCorsCommandOutput>;
171
+ objectLock: MockQueryResult<GetObjectLockConfigurationCommandOutput>;
172
+ policy: MockQueryResult<GetBucketPolicyCommandOutput>;
173
+ tagging: MockQueryResult<GetBucketTaggingCommandOutput>;
174
+ lifecycle: MockQueryResult<GetBucketLifecycleConfigurationCommandOutput>;
175
+ replication: MockQueryResult<GetBucketReplicationCommandOutput>;
176
+ isvBucketStatus: ISVBucketStatusMock;
177
+ features: boolean;
178
+ }
179
+ /**
180
+ * Creates default bucket mock data for testing
181
+ * @returns Default bucket mock data with all properties set to success state
182
+ */
183
+ export declare const createDefaultBucketMocks: () => BucketMockData;
184
+ /**
185
+ * Applies bucket mock data to the provided mock functions
186
+ * @param mocks - Object containing all the mocked hook functions
187
+ * @param mockData - Optional partial overrides for the default mock data
188
+ *
189
+ * @example
190
+ * ```ts
191
+ * applyBucketMocks(
192
+ * {
193
+ * useGetBucketVersioning: mockUseGetBucketVersioning,
194
+ * useGetBucketAcl: mockUseGetBucketAcl,
195
+ * // ... other mocks
196
+ * },
197
+ * {
198
+ * versioning: { data: { Status: "Suspended" }, status: "success" }
199
+ * }
200
+ * );
201
+ * ```
202
+ */
203
+ export declare const applyBucketMocks: (mocks: {
204
+ useGetBucketVersioning: jest.Mock;
205
+ useGetBucketAcl: jest.Mock;
206
+ useGetBucketLocation: jest.Mock;
207
+ useGetBucketCors: jest.Mock;
208
+ useGetBucketObjectLockConfiguration: jest.Mock;
209
+ useGetBucketPolicy: jest.Mock;
210
+ useGetBucketTagging: jest.Mock;
211
+ useGetBucketLifecycle?: jest.Mock;
212
+ useGetBucketReplication?: jest.Mock;
213
+ useISVBucketStatus: jest.Mock;
214
+ useFeatures: jest.Mock;
215
+ }, mockData?: Partial<BucketMockData>) => void;
216
+ export { overrideHandlers, setupMswServer } from './msw';