@scality/data-browser-library 1.0.0-preview.13 → 1.0.0-preview.16

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 (212) hide show
  1. package/dist/components/DataBrowserUI.d.ts +6 -14
  2. package/dist/components/DataBrowserUI.js +79 -55
  3. package/dist/components/Editor.d.ts +1 -1
  4. package/dist/components/Editor.js +3 -3
  5. package/dist/components/__tests__/BucketCreate.test.js +102 -102
  6. package/dist/components/__tests__/BucketDetails.test.js +122 -123
  7. package/dist/components/__tests__/BucketLifecycleFormPage.test.js +177 -177
  8. package/dist/components/__tests__/BucketLifecycleList.test.js +85 -85
  9. package/dist/components/__tests__/BucketList.test.js +175 -176
  10. package/dist/components/__tests__/BucketNotificationCreatePage.test.js +84 -84
  11. package/dist/components/__tests__/BucketOverview.test.js +257 -201
  12. package/dist/components/__tests__/BucketPolicyPage.test.js +62 -62
  13. package/dist/components/__tests__/BucketReplicationFormPage.test.js +542 -542
  14. package/dist/components/__tests__/BucketReplicationList.test.js +106 -106
  15. package/dist/components/__tests__/CreateFolderButton.test.js +56 -56
  16. package/dist/components/__tests__/DeleteBucketButton.test.js +62 -62
  17. package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.js +47 -47
  18. package/dist/components/__tests__/DeleteObjectButton.test.js +63 -63
  19. package/dist/components/__tests__/EmptyBucketButton.test.js +56 -56
  20. package/dist/components/__tests__/MetadataSearch.test.js +65 -65
  21. package/dist/components/__tests__/ObjectList.test.js +252 -251
  22. package/dist/components/__tests__/UploadButton.test.js +45 -45
  23. package/dist/components/buckets/BucketCreate.d.ts +2 -2
  24. package/dist/components/buckets/BucketCreate.js +41 -41
  25. package/dist/components/buckets/BucketDetails.d.ts +2 -2
  26. package/dist/components/buckets/BucketDetails.js +48 -36
  27. package/dist/components/buckets/BucketLifecycleFormPage.js +161 -160
  28. package/dist/components/buckets/BucketLifecycleList.d.ts +2 -2
  29. package/dist/components/buckets/BucketLifecycleList.js +46 -46
  30. package/dist/components/buckets/BucketList.d.ts +2 -2
  31. package/dist/components/buckets/BucketList.js +28 -27
  32. package/dist/components/buckets/BucketLocation.js +3 -3
  33. package/dist/components/buckets/BucketOverview.d.ts +1 -1
  34. package/dist/components/buckets/BucketOverview.js +64 -65
  35. package/dist/components/buckets/BucketPage.js +19 -11
  36. package/dist/components/buckets/BucketPolicyButton.js +2 -2
  37. package/dist/components/buckets/BucketPolicyPage.js +27 -25
  38. package/dist/components/buckets/BucketReplicationFormPage.js +133 -132
  39. package/dist/components/buckets/BucketReplicationList.d.ts +2 -2
  40. package/dist/components/buckets/BucketReplicationList.js +41 -41
  41. package/dist/components/buckets/BucketVersioning.js +11 -11
  42. package/dist/components/buckets/DeleteBucketButton.js +5 -5
  43. package/dist/components/buckets/DeleteBucketConfigRuleButton.d.ts +2 -2
  44. package/dist/components/buckets/DeleteBucketConfigRuleButton.js +1 -1
  45. package/dist/components/buckets/EmptyBucketButton.js +19 -19
  46. package/dist/components/buckets/EmptyBucketSummary.d.ts +1 -1
  47. package/dist/components/buckets/EmptyBucketSummary.js +1 -1
  48. package/dist/components/buckets/EmptyBucketSummaryList.js +22 -22
  49. package/dist/components/buckets/__tests__/BucketVersioning.test.js +45 -45
  50. package/dist/components/buckets/notifications/BucketNotificationCreatePage.js +34 -33
  51. package/dist/components/buckets/notifications/EventsSection.js +144 -28
  52. package/dist/components/buckets/notifications/__tests__/events.test.d.ts +1 -0
  53. package/dist/components/buckets/notifications/__tests__/events.test.js +56 -0
  54. package/dist/components/buckets/notifications/events.d.ts +71 -7
  55. package/dist/components/buckets/notifications/events.js +98 -16
  56. package/dist/components/index.d.ts +24 -22
  57. package/dist/components/index.js +5 -3
  58. package/dist/components/layouts/ArrowNavigation.d.ts +1 -2
  59. package/dist/components/layouts/ArrowNavigation.js +3 -3
  60. package/dist/components/layouts/BrowserPageLayout.d.ts +2 -3
  61. package/dist/components/layouts/BrowserPageLayout.js +1 -1
  62. package/dist/components/objects/CreateFolderButton.d.ts +2 -2
  63. package/dist/components/objects/CreateFolderButton.js +9 -9
  64. package/dist/components/objects/DeleteObjectButton.d.ts +1 -1
  65. package/dist/components/objects/DeleteObjectButton.js +20 -20
  66. package/dist/components/objects/ObjectDetails/ObjectMetadata.d.ts +1 -1
  67. package/dist/components/objects/ObjectDetails/ObjectMetadata.js +56 -56
  68. package/dist/components/objects/ObjectDetails/ObjectSummary.d.ts +1 -1
  69. package/dist/components/objects/ObjectDetails/ObjectSummary.js +39 -39
  70. package/dist/components/objects/ObjectDetails/ObjectTags.d.ts +1 -1
  71. package/dist/components/objects/ObjectDetails/ObjectTags.js +25 -25
  72. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.js +119 -119
  73. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.js +211 -211
  74. package/dist/components/objects/ObjectDetails/index.d.ts +1 -1
  75. package/dist/components/objects/ObjectDetails/index.js +30 -30
  76. package/dist/components/objects/ObjectList.d.ts +5 -5
  77. package/dist/components/objects/ObjectList.js +113 -112
  78. package/dist/components/objects/ObjectLock/EditRetentionButton.js +3 -3
  79. package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.js +14 -14
  80. package/dist/components/objects/ObjectLock/ObjectLockSettings.d.ts +1 -1
  81. package/dist/components/objects/ObjectLock/ObjectLockSettings.js +29 -28
  82. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.d.ts +1 -1
  83. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.js +6 -6
  84. package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.js +50 -50
  85. package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.js +77 -77
  86. package/dist/components/objects/ObjectPage.js +5 -4
  87. package/dist/components/objects/UploadButton.d.ts +3 -3
  88. package/dist/components/objects/UploadButton.js +5 -5
  89. package/dist/components/providers/DataBrowserProvider.d.ts +23 -12
  90. package/dist/components/providers/DataBrowserProvider.js +60 -38
  91. package/dist/components/providers/QueryProvider.d.ts +9 -0
  92. package/dist/components/providers/QueryProvider.js +22 -0
  93. package/dist/components/search/MetadataSearch.js +26 -25
  94. package/dist/components/search/SearchHints.js +1 -1
  95. package/dist/components/ui/ArrayFieldActions.js +4 -4
  96. package/dist/components/ui/ConfirmDeleteRuleModal.d.ts +1 -1
  97. package/dist/components/ui/ConfirmDeleteRuleModal.js +1 -1
  98. package/dist/components/ui/DeleteObjectModalContent.d.ts +1 -1
  99. package/dist/components/ui/DeleteObjectModalContent.js +12 -12
  100. package/dist/components/ui/FilterFormSection.d.ts +2 -2
  101. package/dist/components/ui/FilterFormSection.js +29 -29
  102. package/dist/components/ui/Search.elements.d.ts +1 -1
  103. package/dist/components/ui/Search.elements.js +7 -7
  104. package/dist/components/ui/Table.elements.js +5 -5
  105. package/dist/config/factory.d.ts +23 -10
  106. package/dist/config/factory.js +22 -7
  107. package/dist/config/types.d.ts +20 -3
  108. package/dist/contexts/DataBrowserUICustomizationContext.d.ts +2 -2
  109. package/dist/hooks/__tests__/useISVBucketDetection.test.js +42 -42
  110. package/dist/hooks/__tests__/useIsBucketEmpty.test.js +25 -25
  111. package/dist/hooks/bucketConfiguration.d.ts +1 -1
  112. package/dist/hooks/bucketConfiguration.js +48 -48
  113. package/dist/hooks/bucketOperations.d.ts +1 -1
  114. package/dist/hooks/bucketOperations.js +6 -6
  115. package/dist/hooks/factories/__tests__/useCreateS3FunctionMutationHook.test.js +78 -78
  116. package/dist/hooks/factories/__tests__/useCreateS3InfiniteQueryHook.test.js +78 -78
  117. package/dist/hooks/factories/__tests__/useCreateS3LoginHook.test.js +42 -42
  118. package/dist/hooks/factories/__tests__/useCreateS3MutationHook.test.js +61 -61
  119. package/dist/hooks/factories/__tests__/useCreateS3QueryHook.test.js +63 -63
  120. package/dist/hooks/factories/index.d.ts +4 -4
  121. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.d.ts +2 -2
  122. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.js +15 -12
  123. package/dist/hooks/factories/useCreateS3LoginHook.d.ts +2 -2
  124. package/dist/hooks/factories/useCreateS3MutationHook.d.ts +3 -3
  125. package/dist/hooks/factories/useCreateS3MutationHook.js +6 -1
  126. package/dist/hooks/factories/useCreateS3QueryHook.d.ts +2 -2
  127. package/dist/hooks/factories/useCreateS3QueryHook.js +8 -5
  128. package/dist/hooks/index.d.ts +16 -13
  129. package/dist/hooks/index.js +4 -1
  130. package/dist/hooks/loginOperations.d.ts +1 -1
  131. package/dist/hooks/loginOperations.js +1 -1
  132. package/dist/hooks/objectOperations.d.ts +2 -2
  133. package/dist/hooks/objectOperations.js +49 -49
  134. package/dist/hooks/presignedOperations.d.ts +2 -2
  135. package/dist/hooks/presignedOperations.js +3 -3
  136. package/dist/hooks/useBatchObjectLegalHold.js +7 -4
  137. package/dist/hooks/useDataBrowserNavigate.d.ts +28 -0
  138. package/dist/hooks/useDataBrowserNavigate.js +24 -0
  139. package/dist/hooks/useDeleteBucketConfigRule.d.ts +2 -2
  140. package/dist/hooks/useDeleteBucketConfigRule.js +4 -4
  141. package/dist/hooks/useEmptyBucket.js +10 -10
  142. package/dist/hooks/useFeatures.d.ts +7 -0
  143. package/dist/hooks/useFeatures.js +8 -0
  144. package/dist/hooks/useISVBucketDetection.js +5 -5
  145. package/dist/hooks/useIsBucketEmpty.js +4 -4
  146. package/dist/hooks/useLoginMutation.d.ts +1 -1
  147. package/dist/hooks/useLoginMutation.js +1 -1
  148. package/dist/hooks/useS3Client.d.ts +6 -0
  149. package/dist/hooks/useS3Client.js +3 -2
  150. package/dist/hooks/useS3ConfigSwitch.d.ts +11 -0
  151. package/dist/hooks/useS3ConfigSwitch.js +37 -0
  152. package/dist/hooks/useSupportedNotificationEvents.d.ts +6 -0
  153. package/dist/hooks/useSupportedNotificationEvents.js +8 -0
  154. package/dist/index.d.ts +6 -6
  155. package/dist/test/msw/handlers/deleteBucket.d.ts +1 -1
  156. package/dist/test/msw/handlers/deleteBucket.js +20 -10
  157. package/dist/test/msw/handlers/getBucketAcl.d.ts +1 -1
  158. package/dist/test/msw/handlers/getBucketAcl.js +29 -17
  159. package/dist/test/msw/handlers/getBucketLocation.d.ts +1 -1
  160. package/dist/test/msw/handlers/getBucketLocation.js +29 -15
  161. package/dist/test/msw/handlers/getBucketPolicy.d.ts +1 -1
  162. package/dist/test/msw/handlers/getBucketPolicy.js +52 -32
  163. package/dist/test/msw/handlers/headObject.d.ts +1 -1
  164. package/dist/test/msw/handlers/headObject.js +31 -13
  165. package/dist/test/msw/handlers/listBuckets.d.ts +1 -1
  166. package/dist/test/msw/handlers/listBuckets.js +5 -3
  167. package/dist/test/msw/handlers/listObjectVersions.d.ts +1 -1
  168. package/dist/test/msw/handlers/listObjectVersions.js +38 -26
  169. package/dist/test/msw/handlers/listObjects.d.ts +1 -1
  170. package/dist/test/msw/handlers/listObjects.js +35 -23
  171. package/dist/test/msw/handlers/objectLegalHold.d.ts +1 -1
  172. package/dist/test/msw/handlers/objectLegalHold.js +31 -16
  173. package/dist/test/msw/handlers/objectRetention.d.ts +1 -1
  174. package/dist/test/msw/handlers/objectRetention.js +31 -17
  175. package/dist/test/msw/handlers/putBucketAcl.d.ts +1 -1
  176. package/dist/test/msw/handlers/putBucketAcl.js +29 -14
  177. package/dist/test/msw/handlers/putObject.d.ts +1 -1
  178. package/dist/test/msw/handlers/putObject.js +27 -12
  179. package/dist/test/msw/handlers.d.ts +3 -3
  180. package/dist/test/msw/handlers.js +72 -49
  181. package/dist/test/msw/index.d.ts +2 -2
  182. package/dist/test/msw/server.d.ts +1 -1
  183. package/dist/test/msw/server.js +1 -1
  184. package/dist/test/msw/utils.js +2 -2
  185. package/dist/test/setup.d.ts +1 -1
  186. package/dist/test/setup.js +19 -19
  187. package/dist/test/testUtils.d.ts +9 -15
  188. package/dist/test/testUtils.js +73 -91
  189. package/dist/test/utils/errorHandling.test.js +119 -119
  190. package/dist/types/index.d.ts +6 -31
  191. package/dist/utils/__tests__/s3ConfigIdentifier.test.d.ts +1 -0
  192. package/dist/utils/__tests__/s3ConfigIdentifier.test.js +429 -0
  193. package/dist/utils/constants.js +8 -8
  194. package/dist/utils/deletion/index.d.ts +2 -2
  195. package/dist/utils/deletion/messages.d.ts +1 -1
  196. package/dist/utils/deletion/messages.js +4 -4
  197. package/dist/utils/errorHandling.d.ts +3 -3
  198. package/dist/utils/errorHandling.js +6 -6
  199. package/dist/utils/hooks.js +8 -8
  200. package/dist/utils/index.d.ts +5 -4
  201. package/dist/utils/index.js +2 -0
  202. package/dist/utils/proxyMiddleware.d.ts +1 -1
  203. package/dist/utils/proxyMiddleware.js +6 -11
  204. package/dist/utils/s3Client.d.ts +2 -2
  205. package/dist/utils/s3Client.js +1 -1
  206. package/dist/utils/s3ConfigIdentifier.d.ts +68 -0
  207. package/dist/utils/s3ConfigIdentifier.js +55 -0
  208. package/dist/utils/s3RuleUtils.d.ts +5 -5
  209. package/dist/utils/s3RuleUtils.js +17 -17
  210. package/package.json +2 -2
  211. package/dist/utils/useFeatures.d.ts +0 -1
  212. package/dist/utils/useFeatures.js +0 -7
@@ -0,0 +1,56 @@
1
+ import { filterSupportedEvents, getFilteredEventGroups } from "../events.js";
2
+ describe('events', ()=>{
3
+ it('returns all events when supportedEvents is not configured', ()=>{
4
+ const events = [
5
+ 's3:ObjectCreated:*',
6
+ 's3:ObjectCreated:Put'
7
+ ];
8
+ const result = filterSupportedEvents(events);
9
+ expect(result).toEqual(events);
10
+ });
11
+ it('filters events to only include supported ones', ()=>{
12
+ const events = [
13
+ 's3:ObjectCreated:*',
14
+ 's3:ObjectCreated:Put',
15
+ 's3:ObjectCreated:Copy'
16
+ ];
17
+ const supportedEvents = [
18
+ 's3:ObjectCreated:*',
19
+ 's3:ObjectCreated:Put'
20
+ ];
21
+ const result = filterSupportedEvents(events, supportedEvents);
22
+ expect(result).toEqual([
23
+ 's3:ObjectCreated:*',
24
+ 's3:ObjectCreated:Put'
25
+ ]);
26
+ });
27
+ it('filters event groups based on supported events', ()=>{
28
+ const supportedEvents = [
29
+ 's3:ObjectCreated:Put',
30
+ 's3:ObjectRemoved:Delete',
31
+ 's3:Replication:OperationFailedReplication'
32
+ ];
33
+ const result = getFilteredEventGroups(supportedEvents);
34
+ expect(result.objectCreation.events).toEqual([
35
+ 's3:ObjectCreated:Put'
36
+ ]);
37
+ expect(result.objectDeletion.events).toEqual([
38
+ 's3:ObjectRemoved:Delete'
39
+ ]);
40
+ expect(result.replication.events).toEqual([
41
+ 's3:Replication:OperationFailedReplication'
42
+ ]);
43
+ expect(result.lifecycle.events).toEqual([]);
44
+ });
45
+ it('preserves category labels in filtered groups', ()=>{
46
+ const result = getFilteredEventGroups();
47
+ expect(result.objectCreation.label).toBe('Object Creation');
48
+ expect(result.objectDeletion.label).toBe('Object Deletion');
49
+ expect(result.objectRestoration.label).toBe('Object Restoration');
50
+ expect(result.lifecycle.label).toBe('Lifecycle');
51
+ expect(result.replication.label).toBe('Replication');
52
+ expect(result.objectTagging.label).toBe('Object Tagging');
53
+ expect(result.storageAccess.label).toBe('Storage & Access');
54
+ expect(result.testing.label).toBe('Testing');
55
+ });
56
+ });
@@ -1,12 +1,76 @@
1
+ import type { S3EventType, S3EventCategory } from '../../../config/types';
1
2
  export declare const objectCreationEvents: {
2
- label: string;
3
- events: string[];
3
+ label: S3EventCategory;
4
+ events: S3EventType[];
4
5
  };
5
6
  export declare const objectDeletionEvents: {
6
- label: string;
7
- events: string[];
7
+ label: S3EventCategory;
8
+ events: S3EventType[];
8
9
  };
9
- export declare const othersEvents: {
10
- label: string;
11
- events: string[];
10
+ export declare const objectRestorationEvents: {
11
+ label: S3EventCategory;
12
+ events: S3EventType[];
13
+ };
14
+ export declare const lifecycleEvents: {
15
+ label: S3EventCategory;
16
+ events: S3EventType[];
17
+ };
18
+ export declare const replicationEvents: {
19
+ label: S3EventCategory;
20
+ events: S3EventType[];
21
+ };
22
+ export declare const objectTaggingEvents: {
23
+ label: S3EventCategory;
24
+ events: S3EventType[];
25
+ };
26
+ export declare const storageAccessEvents: {
27
+ label: S3EventCategory;
28
+ events: S3EventType[];
29
+ };
30
+ export declare const testingEvents: {
31
+ label: S3EventCategory;
32
+ events: S3EventType[];
33
+ };
34
+ /**
35
+ * Filters events to only include supported ones
36
+ * If no supported events are configured, all events are returned
37
+ */
38
+ export declare function filterSupportedEvents(events: S3EventType[], supportedEvents?: S3EventType[]): S3EventType[];
39
+ /**
40
+ * Gets filtered event groups based on supported events
41
+ * If a wildcard is not supported, but specific events are, the wildcard is filtered out
42
+ */
43
+ export declare function getFilteredEventGroups(supportedEvents?: S3EventType[]): {
44
+ objectCreation: {
45
+ label: S3EventCategory;
46
+ events: S3EventType[];
47
+ };
48
+ objectDeletion: {
49
+ label: S3EventCategory;
50
+ events: S3EventType[];
51
+ };
52
+ objectRestoration: {
53
+ label: S3EventCategory;
54
+ events: S3EventType[];
55
+ };
56
+ lifecycle: {
57
+ label: S3EventCategory;
58
+ events: S3EventType[];
59
+ };
60
+ replication: {
61
+ label: S3EventCategory;
62
+ events: S3EventType[];
63
+ };
64
+ objectTagging: {
65
+ label: S3EventCategory;
66
+ events: S3EventType[];
67
+ };
68
+ storageAccess: {
69
+ label: S3EventCategory;
70
+ events: S3EventType[];
71
+ };
72
+ testing: {
73
+ label: S3EventCategory;
74
+ events: S3EventType[];
75
+ };
12
76
  };
@@ -1,27 +1,109 @@
1
1
  const objectCreationEvents = {
2
- label: "Object creation",
2
+ label: 'Object Creation',
3
3
  events: [
4
- "s3:ObjectCreated:*",
5
- "s3:ObjectCreated:Put",
6
- "s3:ObjectCreated:Copy",
7
- "s3:ObjectCreated:CompleteMultipartUpload"
4
+ 's3:ObjectCreated:*',
5
+ 's3:ObjectCreated:Put',
6
+ 's3:ObjectCreated:Post',
7
+ 's3:ObjectCreated:Copy',
8
+ 's3:ObjectCreated:CompleteMultipartUpload'
8
9
  ]
9
10
  };
10
11
  const objectDeletionEvents = {
11
- label: "Object deletion",
12
+ label: 'Object Deletion',
12
13
  events: [
13
- "s3:ObjectRemoved:*",
14
- "s3:ObjectRemoved:Delete",
15
- "s3:ObjectRemoved:DeleteMarkerCreated"
14
+ 's3:ObjectRemoved:*',
15
+ 's3:ObjectRemoved:Delete',
16
+ 's3:ObjectRemoved:DeleteMarkerCreated'
16
17
  ]
17
18
  };
18
- const othersEvents = {
19
- label: "Others",
19
+ const objectRestorationEvents = {
20
+ label: 'Object Restoration',
20
21
  events: [
21
- "s3:Replication:OperationFailedReplication",
22
- "s3:LifecycleExpiration:*",
23
- "s3:LifecycleExpiration:DeleteMarkerCreated",
24
- "s3:LifecycleExpiration:Delete"
22
+ 's3:ObjectRestore:*',
23
+ 's3:ObjectRestore:Post',
24
+ 's3:ObjectRestore:Completed',
25
+ 's3:ObjectRestore:Delete'
25
26
  ]
26
27
  };
27
- export { objectCreationEvents, objectDeletionEvents, othersEvents };
28
+ const lifecycleEvents = {
29
+ label: 'Lifecycle',
30
+ events: [
31
+ 's3:LifecycleExpiration:*',
32
+ 's3:LifecycleExpiration:Delete',
33
+ 's3:LifecycleExpiration:DeleteMarkerCreated',
34
+ 's3:LifecycleTransition'
35
+ ]
36
+ };
37
+ const replicationEvents = {
38
+ label: 'Replication',
39
+ events: [
40
+ 's3:Replication:*',
41
+ 's3:Replication:OperationFailedReplication',
42
+ 's3:Replication:OperationMissedThreshold',
43
+ 's3:Replication:OperationReplicatedAfterThreshold',
44
+ 's3:Replication:OperationNotTracked'
45
+ ]
46
+ };
47
+ const objectTaggingEvents = {
48
+ label: 'Object Tagging',
49
+ events: [
50
+ 's3:ObjectTagging:*',
51
+ 's3:ObjectTagging:Put',
52
+ 's3:ObjectTagging:Delete'
53
+ ]
54
+ };
55
+ const storageAccessEvents = {
56
+ label: 'Storage & Access',
57
+ events: [
58
+ 's3:ReducedRedundancyLostObject',
59
+ 's3:IntelligentTiering',
60
+ 's3:ObjectAcl:Put'
61
+ ]
62
+ };
63
+ const testingEvents = {
64
+ label: 'Testing',
65
+ events: [
66
+ 's3:TestEvent'
67
+ ]
68
+ };
69
+ function filterSupportedEvents(events, supportedEvents) {
70
+ if (!supportedEvents || 0 === supportedEvents.length) return events;
71
+ return events.filter((event)=>supportedEvents.includes(event));
72
+ }
73
+ function getFilteredEventGroups(supportedEvents) {
74
+ return {
75
+ objectCreation: {
76
+ label: objectCreationEvents.label,
77
+ events: filterSupportedEvents(objectCreationEvents.events, supportedEvents)
78
+ },
79
+ objectDeletion: {
80
+ label: objectDeletionEvents.label,
81
+ events: filterSupportedEvents(objectDeletionEvents.events, supportedEvents)
82
+ },
83
+ objectRestoration: {
84
+ label: objectRestorationEvents.label,
85
+ events: filterSupportedEvents(objectRestorationEvents.events, supportedEvents)
86
+ },
87
+ lifecycle: {
88
+ label: lifecycleEvents.label,
89
+ events: filterSupportedEvents(lifecycleEvents.events, supportedEvents)
90
+ },
91
+ replication: {
92
+ label: replicationEvents.label,
93
+ events: filterSupportedEvents(replicationEvents.events, supportedEvents)
94
+ },
95
+ objectTagging: {
96
+ label: objectTaggingEvents.label,
97
+ events: filterSupportedEvents(objectTaggingEvents.events, supportedEvents)
98
+ },
99
+ storageAccess: {
100
+ label: storageAccessEvents.label,
101
+ events: filterSupportedEvents(storageAccessEvents.events, supportedEvents)
102
+ },
103
+ testing: {
104
+ label: testingEvents.label,
105
+ events: filterSupportedEvents(testingEvents.events, supportedEvents)
106
+ }
107
+ };
108
+ }
109
+ export { filterSupportedEvents, getFilteredEventGroups, lifecycleEvents, objectCreationEvents, objectDeletionEvents, objectRestorationEvents, objectTaggingEvents, replicationEvents, storageAccessEvents, testingEvents };
@@ -1,22 +1,24 @@
1
- export { DeleteBucketButton } from "./buckets/DeleteBucketButton";
2
- export { BucketList } from "./buckets/BucketList";
3
- export { BucketOverview, BucketOverviewSection, BucketOverviewField, } from "./buckets/BucketOverview";
4
- export { BucketPage } from "./buckets/BucketPage";
5
- export { BucketPolicyPage } from "./buckets/BucketPolicyPage";
6
- export { BucketLifecycleFormPage } from "./buckets/BucketLifecycleFormPage";
7
- export { BucketReplicationFormPage } from "./buckets/BucketReplicationFormPage";
8
- export { BucketNotificationCreatePage } from "./buckets/notifications/BucketNotificationCreatePage";
9
- export { EmptyBucketButton } from "./buckets/EmptyBucketButton";
10
- export { BucketCreate, baseBucketCreateSchema, bucketNameValidationSchema, bucketErrorMessage, type BucketCreateFormData, } from "./buckets/BucketCreate";
11
- export { BucketVersioning } from "./buckets/BucketVersioning";
12
- export { UploadButton } from "./objects/UploadButton";
13
- export { CreateFolderButton } from "./objects/CreateFolderButton";
14
- export { ObjectDetails } from "./objects/ObjectDetails";
15
- export { ObjectList, type TableItem } from "./objects/ObjectList";
16
- export { ObjectPage } from "./objects/ObjectPage";
17
- export { ObjectLockSettings } from "./objects/ObjectLock/ObjectLockSettings";
18
- export { EditRetentionButton } from "./objects/ObjectLock/EditRetentionButton";
19
- export { MetadataSearch } from "./search/MetadataSearch";
20
- export { ArrayFieldActions } from "./ui/ArrayFieldActions";
21
- export { DataBrowserProvider, useDataBrowserContext, useDataBrowserTheme, } from "./providers/DataBrowserProvider";
22
- export { DataBrowserUI } from "./DataBrowserUI";
1
+ export { DeleteBucketButton } from './buckets/DeleteBucketButton';
2
+ export { BucketList } from './buckets/BucketList';
3
+ export { BucketOverview, BucketOverviewSection, BucketOverviewField, useBucketOverviewContext, } from './buckets/BucketOverview';
4
+ export { BucketPage } from './buckets/BucketPage';
5
+ export { BucketPolicyPage } from './buckets/BucketPolicyPage';
6
+ export { BucketLifecycleFormPage } from './buckets/BucketLifecycleFormPage';
7
+ export { BucketReplicationFormPage } from './buckets/BucketReplicationFormPage';
8
+ export { BucketNotificationCreatePage } from './buckets/notifications/BucketNotificationCreatePage';
9
+ export { EmptyBucketButton } from './buckets/EmptyBucketButton';
10
+ export { BucketCreate, baseBucketCreateSchema, bucketNameValidationSchema, bucketErrorMessage, type BucketCreateFormData, } from './buckets/BucketCreate';
11
+ export { BucketVersioning } from './buckets/BucketVersioning';
12
+ export { UploadButton } from './objects/UploadButton';
13
+ export { CreateFolderButton } from './objects/CreateFolderButton';
14
+ export { ObjectDetails } from './objects/ObjectDetails';
15
+ export { ObjectList, type TableItem } from './objects/ObjectList';
16
+ export { ObjectPage } from './objects/ObjectPage';
17
+ export { ObjectLockSettings } from './objects/ObjectLock/ObjectLockSettings';
18
+ export { EditRetentionButton } from './objects/ObjectLock/EditRetentionButton';
19
+ export { MetadataSearch } from './search/MetadataSearch';
20
+ export { ArrayFieldActions } from './ui/ArrayFieldActions';
21
+ export { DataBrowserProvider, useDataBrowserContext, useDataBrowserConfig, useInvalidateQueries, } from './providers/DataBrowserProvider';
22
+ export { QueryProvider } from './providers/QueryProvider';
23
+ export { useDataBrowserNavigate } from '../hooks/useDataBrowserNavigate';
24
+ export { DataBrowserUI } from './DataBrowserUI';
@@ -1,6 +1,6 @@
1
1
  import { DeleteBucketButton } from "./buckets/DeleteBucketButton.js";
2
2
  import { BucketList } from "./buckets/BucketList.js";
3
- import { BucketOverview, BucketOverviewField, BucketOverviewSection } from "./buckets/BucketOverview.js";
3
+ import { BucketOverview, BucketOverviewField, BucketOverviewSection, useBucketOverviewContext } from "./buckets/BucketOverview.js";
4
4
  import { BucketPage } from "./buckets/BucketPage.js";
5
5
  import { BucketPolicyPage } from "./buckets/BucketPolicyPage.js";
6
6
  import { BucketLifecycleFormPage } from "./buckets/BucketLifecycleFormPage.js";
@@ -18,6 +18,8 @@ import { ObjectLockSettings } from "./objects/ObjectLock/ObjectLockSettings.js";
18
18
  import { EditRetentionButton } from "./objects/ObjectLock/EditRetentionButton.js";
19
19
  import { MetadataSearch } from "./search/MetadataSearch.js";
20
20
  import { ArrayFieldActions } from "./ui/ArrayFieldActions.js";
21
- import { DataBrowserProvider, useDataBrowserContext, useDataBrowserTheme } from "./providers/DataBrowserProvider.js";
21
+ import { DataBrowserProvider, useDataBrowserConfig, useDataBrowserContext, useInvalidateQueries } from "./providers/DataBrowserProvider.js";
22
+ import { QueryProvider } from "./providers/QueryProvider.js";
23
+ import { useDataBrowserNavigate } from "../hooks/useDataBrowserNavigate.js";
22
24
  import { DataBrowserUI } from "./DataBrowserUI.js";
23
- export { ArrayFieldActions, BucketCreate, BucketLifecycleFormPage, BucketList, BucketNotificationCreatePage, BucketOverview, BucketOverviewField, BucketOverviewSection, BucketPage, BucketPolicyPage, BucketReplicationFormPage, BucketVersioning, CreateFolderButton, DataBrowserProvider, DataBrowserUI, DeleteBucketButton, EditRetentionButton, EmptyBucketButton, MetadataSearch, ObjectDetails, ObjectList, ObjectLockSettings, ObjectPage, UploadButton, baseBucketCreateSchema, bucketErrorMessage, bucketNameValidationSchema, useDataBrowserContext, useDataBrowserTheme };
25
+ export { ArrayFieldActions, BucketCreate, BucketLifecycleFormPage, BucketList, BucketNotificationCreatePage, BucketOverview, BucketOverviewField, BucketOverviewSection, BucketPage, BucketPolicyPage, BucketReplicationFormPage, BucketVersioning, CreateFolderButton, DataBrowserProvider, DataBrowserUI, DeleteBucketButton, EditRetentionButton, EmptyBucketButton, MetadataSearch, ObjectDetails, ObjectList, ObjectLockSettings, ObjectPage, QueryProvider, UploadButton, baseBucketCreateSchema, bucketErrorMessage, bucketNameValidationSchema, useBucketOverviewContext, useDataBrowserConfig, useDataBrowserContext, useDataBrowserNavigate, useInvalidateQueries };
@@ -1,4 +1,3 @@
1
- import { To } from "react-router-dom";
2
1
  export default function ArrowNavigation({ path }: {
3
- path: To;
2
+ path: string;
4
3
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { Icon } from "@scality/core-ui";
3
- import { useNavigate } from "react-router-dom";
4
3
  import styled_components from "styled-components";
4
+ import { useDataBrowserNavigate } from "../../hooks/useDataBrowserNavigate.js";
5
5
  const IconWrapper = styled_components.div`
6
6
  display: inline-block;
7
7
  cursor: pointer;
@@ -16,12 +16,12 @@ const IconWrapper = styled_components.div`
16
16
  }
17
17
  `;
18
18
  function ArrowNavigation({ path }) {
19
- const navigate = useNavigate();
19
+ const navigate = useDataBrowserNavigate();
20
20
  return /*#__PURE__*/ jsx(IconWrapper, {
21
21
  onClick: ()=>navigate(path),
22
22
  children: /*#__PURE__*/ jsx(Icon, {
23
23
  name: "Arrow-left",
24
- size: "2x"
24
+ size: '2x'
25
25
  })
26
26
  });
27
27
  }
@@ -1,12 +1,11 @@
1
- import React from "react";
2
- import { To } from "react-router-dom";
1
+ import React from 'react';
3
2
  export declare const HeadTitle: import("styled-components").StyledComponent<"div", any, {}, never>;
4
3
  interface BrowserPageLayoutProps {
5
4
  title: React.ReactNode;
6
5
  leftPanel: React.ReactNode;
7
6
  rightPanel: React.ReactNode;
8
7
  withArrowNavigation?: boolean;
9
- arrowNavigationPath?: To;
8
+ arrowNavigationPath?: string;
10
9
  }
11
10
  export declare const BrowserPageLayout: React.FC<BrowserPageLayoutProps>;
12
11
  export {};
@@ -33,7 +33,7 @@ const BrowserPageLayout = ({ title, leftPanel, rightPanel, withArrowNavigation =
33
33
  /*#__PURE__*/ jsx(AppContainer.MainContent, {
34
34
  background: "backgroundLevel1",
35
35
  children: /*#__PURE__*/ jsx(TwoPanelLayout, {
36
- panelsRatio: "65-35",
36
+ panelsRatio: '65-35',
37
37
  leftPanel: {
38
38
  children: /*#__PURE__*/ jsx(Fragment, {
39
39
  children: leftPanel
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import React from 'react';
2
2
  interface CreateFolderButtonProps {
3
3
  /**
4
4
  * The S3 bucket name where folder will be created
@@ -15,7 +15,7 @@ interface CreateFolderButtonProps {
15
15
  /**
16
16
  * Button variant
17
17
  */
18
- variant?: "primary" | "secondary" | "outline";
18
+ variant?: 'primary' | 'secondary' | 'outline';
19
19
  /**
20
20
  * Called when folder creation is successful
21
21
  */
@@ -8,15 +8,15 @@ const Description = styled_components.div`
8
8
  margin-top: ${spacing.r16};
9
9
  width: 20.5rem;
10
10
  `;
11
- const CreateFolderButton = ({ bucket, prefix = "", label = "Folder", variant = "secondary", onFolderSuccess, onFolderError })=>{
11
+ const CreateFolderButton = ({ bucket, prefix = '', label = 'Folder', variant = 'secondary', onFolderSuccess, onFolderError })=>{
12
12
  const [isModalOpen, setIsModalOpen] = useState(false);
13
- const [folderName, setFolderName] = useState("");
13
+ const [folderName, setFolderName] = useState('');
14
14
  const createFolderMutation = useCreateFolder();
15
15
  const openModal = useCallback(()=>{
16
16
  setIsModalOpen(true);
17
17
  }, []);
18
18
  const closeModal = useCallback(()=>{
19
- setFolderName("");
19
+ setFolderName('');
20
20
  setIsModalOpen(false);
21
21
  }, []);
22
22
  const handleSave = useCallback(()=>{
@@ -25,11 +25,11 @@ const CreateFolderButton = ({ bucket, prefix = "", label = "Folder", variant = "
25
25
  createFolderMutation.mutate({
26
26
  Bucket: bucket,
27
27
  Key: folderKey,
28
- Body: ""
28
+ Body: ''
29
29
  }, {
30
30
  onSuccess: ()=>{
31
31
  onFolderSuccess?.(folderName);
32
- setFolderName("");
32
+ setFolderName('');
33
33
  setIsModalOpen(false);
34
34
  },
35
35
  onError: (error)=>{
@@ -47,8 +47,8 @@ const CreateFolderButton = ({ bucket, prefix = "", label = "Folder", variant = "
47
47
  const handleChange = useCallback((e)=>{
48
48
  setFolderName(e.target.value);
49
49
  }, []);
50
- const hasInvalidFormat = folderName.startsWith("/");
51
- const isEmpty = "" === folderName.trim();
50
+ const hasInvalidFormat = folderName.startsWith('/');
51
+ const isEmpty = '' === folderName.trim();
52
52
  const isLoading = createFolderMutation.isPending;
53
53
  return /*#__PURE__*/ jsxs(Fragment, {
54
54
  children: [
@@ -77,9 +77,9 @@ const CreateFolderButton = ({ bucket, prefix = "", label = "Folder", variant = "
77
77
  disabled: isLoading || isEmpty || hasInvalidFormat,
78
78
  variant: "primary",
79
79
  onClick: handleSave,
80
- label: "Save",
80
+ label: 'Save',
81
81
  tooltip: hasInvalidFormat ? {
82
- overlay: "The folder name is not valid."
82
+ overlay: 'The folder name is not valid.'
83
83
  } : void 0
84
84
  })
85
85
  ]
@@ -1,4 +1,4 @@
1
- import { TableItem } from "./ObjectList";
1
+ import { TableItem } from './ObjectList';
2
2
  export type Objects = TableItem[];
3
3
  interface DeleteObjectButtonProps {
4
4
  objects: Objects;
@@ -6,36 +6,36 @@ import { useDeleteObjects, useGetBucketVersioning } from "../../hooks/index.js";
6
6
  import { getDeletionMessages } from "../../utils/deletion/index.js";
7
7
  import { DeleteObjectModalContent } from "../ui/DeleteObjectModalContent.js";
8
8
  const Title = ({ objects, isCurrentSelectionPermanentlyDeleted })=>{
9
- const foldersSize = objects.filter((object)=>"folder" === object.type).length;
9
+ const foldersSize = objects.filter((object)=>'folder' === object.type).length;
10
10
  const objectsSize = objects.length - foldersSize;
11
11
  if (0 === objects.length) return null;
12
12
  return /*#__PURE__*/ jsxs(Text, {
13
13
  children: [
14
14
  "Do you want to",
15
- " ",
15
+ ' ',
16
16
  /*#__PURE__*/ jsxs("strong", {
17
17
  children: [
18
- " ",
19
- isCurrentSelectionPermanentlyDeleted ? "permanently" : "",
20
- " "
18
+ ' ',
19
+ isCurrentSelectionPermanentlyDeleted ? 'permanently' : '',
20
+ ' '
21
21
  ]
22
22
  }),
23
- " ",
23
+ ' ',
24
24
  "delete the selected",
25
- " ",
25
+ ' ',
26
26
  objectsSize > 0 && /*#__PURE__*/ jsxs(Fragment, {
27
27
  children: [
28
28
  objectsSize,
29
- " ",
30
- isCurrentSelectionPermanentlyDeleted ? `object version${objectsSize > 1 ? "s" : ""}` : `object${objectsSize > 1 ? "s" : ""}`,
31
- foldersSize > 0 && " and "
29
+ ' ',
30
+ isCurrentSelectionPermanentlyDeleted ? `object version${objectsSize > 1 ? 's' : ''}` : `object${objectsSize > 1 ? 's' : ''}`,
31
+ foldersSize > 0 && ' and '
32
32
  ]
33
33
  }),
34
34
  foldersSize > 0 && /*#__PURE__*/ jsxs(Fragment, {
35
35
  children: [
36
36
  foldersSize,
37
37
  " folder",
38
- foldersSize > 1 ? "s" : ""
38
+ foldersSize > 1 ? 's' : ''
39
39
  ]
40
40
  }),
41
41
  "?"
@@ -50,7 +50,7 @@ const DeleteObjectButton = ({ objects, bucketName })=>{
50
50
  });
51
51
  const { mutate: deleteObjects, status: deleteObjectsStatus } = useDeleteObjects();
52
52
  const { showToast } = useToast();
53
- const isVersioningEnabled = versioningData?.Status === "Enabled";
53
+ const isVersioningEnabled = versioningData?.Status === 'Enabled';
54
54
  const isCurrentSelectionPermanentlyDeleted = !isVersioningEnabled || selectedObjects.some((object)=>!!object.VersionId);
55
55
  const { info: notificationText } = getDeletionMessages({
56
56
  numberOfObjects: selectedObjects.length,
@@ -64,14 +64,14 @@ const DeleteObjectButton = ({ objects, bucketName })=>{
64
64
  setIsModalOpen(false);
65
65
  }, []);
66
66
  const deleteSelectedFiles = useCallback(()=>{
67
- const objectsToDelete = selectedObjects.filter((object)=>"object" === object.type && object.Key).map((object)=>{
67
+ const objectsToDelete = selectedObjects.filter((object)=>'object' === object.type && object.Key).map((object)=>{
68
68
  const deleteItem = {
69
69
  Key: object.Key
70
70
  };
71
- if (object.VersionId && "string" == typeof object.VersionId) deleteItem.VersionId = object.VersionId;
71
+ if (object.VersionId && 'string' == typeof object.VersionId) deleteItem.VersionId = object.VersionId;
72
72
  return deleteItem;
73
73
  });
74
- const foldersToDelete = selectedObjects.filter((object)=>"folder" === object.type && object.Key).map((object)=>({
74
+ const foldersToDelete = selectedObjects.filter((object)=>'folder' === object.type && object.Key).map((object)=>({
75
75
  Key: object.Key
76
76
  }));
77
77
  deleteObjects({
@@ -86,16 +86,16 @@ const DeleteObjectButton = ({ objects, bucketName })=>{
86
86
  onSuccess: ()=>{
87
87
  showToast({
88
88
  open: true,
89
- message: "Objects deleted successfully",
90
- status: "success"
89
+ message: 'Objects deleted successfully',
90
+ status: 'success'
91
91
  });
92
92
  setIsModalOpen(false);
93
93
  },
94
94
  onError: (error)=>{
95
95
  showToast({
96
96
  open: true,
97
- message: error instanceof Error ? error.message : "Objects deleted failed",
98
- status: "error"
97
+ message: error instanceof Error ? error.message : 'Objects deleted failed',
98
+ status: 'error'
99
99
  });
100
100
  setIsModalOpen(false);
101
101
  }
@@ -138,7 +138,7 @@ const DeleteObjectButton = ({ objects, bucketName })=>{
138
138
  label: "Cancel"
139
139
  }),
140
140
  /*#__PURE__*/ jsx(Button, {
141
- isLoading: "pending" === deleteObjectsStatus,
141
+ isLoading: 'pending' === deleteObjectsStatus,
142
142
  id: "object-delete-delete-button",
143
143
  variant: "danger",
144
144
  onClick: deleteSelectedFiles,
@@ -1,2 +1,2 @@
1
- import { ObjectCommonProps } from ".";
1
+ import { ObjectCommonProps } from '.';
2
2
  export declare const ObjectMetadata: ({ bucketName, objectKey, versionId, }: ObjectCommonProps) => import("react/jsx-runtime").JSX.Element;