@aws-amplify/ui-react-storage 3.17.2 → 3.18.0

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 (35) hide show
  1. package/bin/copy-serviceworker.js +36 -0
  2. package/dist/browser.js +23 -23
  3. package/dist/{createStorageBrowser-CtfBkr62.js → createStorageBrowser-S_PgkSVv.js} +1123 -264
  4. package/dist/download-sw.js +70 -0
  5. package/dist/esm/components/StorageBrowser/actions/configs/defaults.mjs +3 -1
  6. package/dist/esm/components/StorageBrowser/actions/handlers/composedDownloadHandler.mjs +2 -2
  7. package/dist/esm/components/StorageBrowser/actions/handlers/download.mjs +1 -1
  8. package/dist/esm/components/StorageBrowser/actions/handlers/utils.mjs +23 -1
  9. package/dist/esm/components/StorageBrowser/actions/handlers/zipdownload.mjs +342 -118
  10. package/dist/esm/components/StorageBrowser/createStorageBrowser/StorageBrowserDefault.mjs +3 -1
  11. package/dist/esm/components/StorageBrowser/createStorageBrowser/createStorageBrowser.mjs +1 -1
  12. package/dist/esm/components/StorageBrowser/displayText/libraries/en/downloadView.mjs +4 -0
  13. package/dist/esm/components/StorageBrowser/service-worker/useServiceWorkerRegistration.mjs +25 -0
  14. package/dist/esm/components/StorageBrowser/useAction/useHandler.mjs +6 -2
  15. package/dist/esm/components/StorageBrowser/views/LocationActionView/DownloadView/DownloadViewProvider.mjs +60 -8
  16. package/dist/esm/components/StorageBrowser/views/LocationActionView/DownloadView/useDownloadView.mjs +376 -5
  17. package/dist/esm/components/StorageBrowser/views/LocationActionView/DownloadView/utils.mjs +172 -0
  18. package/dist/esm/components/StorageBrowser/views/context/actionViews.mjs +1 -0
  19. package/dist/esm/components/StorageBrowser/views/context/primaryViews.mjs +1 -1
  20. package/dist/esm/version.mjs +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/styles.css +144 -114
  23. package/dist/types/components/StorageBrowser/actions/handlers/download.d.ts +15 -0
  24. package/dist/types/components/StorageBrowser/actions/handlers/utils.d.ts +12 -0
  25. package/dist/types/components/StorageBrowser/actions/handlers/zipdownload.d.ts +2 -2
  26. package/dist/types/components/StorageBrowser/actions/index.d.ts +1 -1
  27. package/dist/types/components/StorageBrowser/displayText/types.d.ts +21 -0
  28. package/dist/types/components/StorageBrowser/service-worker/download-sw.d.ts +2 -0
  29. package/dist/types/components/StorageBrowser/service-worker/useServiceWorkerRegistration.d.ts +2 -0
  30. package/dist/types/components/StorageBrowser/useAction/types.d.ts +1 -0
  31. package/dist/types/components/StorageBrowser/views/LocationActionView/DownloadView/types.d.ts +40 -0
  32. package/dist/types/components/StorageBrowser/views/LocationActionView/DownloadView/utils.d.ts +99 -0
  33. package/dist/types/components/StorageBrowser/views/LocationActionView/index.d.ts +1 -1
  34. package/dist/types/version.d.ts +1 -1
  35. package/package.json +12 -8
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+
7
+ const SW_FILENAME = 'download-sw.js';
8
+ const SW_SOURCE = path.resolve(__dirname, '..', 'dist', SW_FILENAME);
9
+
10
+ const targetDir = process.argv[2];
11
+
12
+ if (!targetDir) {
13
+ console.error(
14
+ 'Usage: npx @aws-amplify/ui-react-storage copy-serviceworker <target-dir>\n' +
15
+ 'Example: npx @aws-amplify/ui-react-storage copy-serviceworker public'
16
+ );
17
+ process.exit(1);
18
+ }
19
+
20
+ if (!fs.existsSync(SW_SOURCE)) {
21
+ console.error(
22
+ `Error: Service worker source not found at ${SW_SOURCE}\n` +
23
+ 'Make sure the package is properly installed.'
24
+ );
25
+ process.exit(1);
26
+ }
27
+
28
+ const resolvedTarget = path.resolve(targetDir, 'amplify-storage-download');
29
+
30
+ // `recursive: true` is a no-op when the directory already exists, so no
31
+ // existence check is needed (and skipping it avoids a TOCTOU window).
32
+ fs.mkdirSync(resolvedTarget, { recursive: true });
33
+
34
+ const dest = path.join(resolvedTarget, SW_FILENAME);
35
+ fs.copyFileSync(SW_SOURCE, dest);
36
+ console.log(`✅ Copied ${SW_FILENAME} → ${dest}`);
package/dist/browser.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var internals = require('@aws-amplify/storage/internals');
6
6
  require('aws-amplify');
7
7
  require('@aws-amplify/ui');
8
- var createStorageBrowser = require('./createStorageBrowser-CtfBkr62.js');
8
+ var createStorageBrowser = require('./createStorageBrowser-S_PgkSVv.js');
9
9
  require('@zip.js/zip.js');
10
10
  require('aws-amplify/storage');
11
11
  require('react');
@@ -16,28 +16,6 @@ require('aws-amplify/auth');
16
16
  require('aws-amplify/utils');
17
17
  require('@aws-amplify/ui-react/internal');
18
18
 
19
- const createLocationCredentialsHandler = (handlerInput) => {
20
- const { accountId, region, credentialsProvider, customEndpoint } = handlerInput;
21
- /**
22
- * Retrieves credentials for the specified scope & permission.
23
- *
24
- * @param input - An object specifying the requested scope & permission.
25
- *
26
- * @returns A promise which will resolve with the requested credentials.
27
- */
28
- return (input) => {
29
- const { scope, permissions } = input;
30
- return internals.getDataAccess({
31
- accountId,
32
- credentialsProvider,
33
- permission: createStorageBrowser.toAccessGrantPermission(permissions),
34
- region,
35
- scope,
36
- customEndpoint,
37
- });
38
- };
39
- };
40
-
41
19
  function assertAccountId(value) {
42
20
  if (!value) {
43
21
  throw new Error('Storage Browser: Must provide accountId to `listCallerAccessGrants`.');
@@ -75,6 +53,28 @@ const listLocationsHandler = async (input) => {
75
53
  };
76
54
  };
77
55
 
56
+ const createLocationCredentialsHandler = (handlerInput) => {
57
+ const { accountId, region, credentialsProvider, customEndpoint } = handlerInput;
58
+ /**
59
+ * Retrieves credentials for the specified scope & permission.
60
+ *
61
+ * @param input - An object specifying the requested scope & permission.
62
+ *
63
+ * @returns A promise which will resolve with the requested credentials.
64
+ */
65
+ return (input) => {
66
+ const { scope, permissions } = input;
67
+ return internals.getDataAccess({
68
+ accountId,
69
+ credentialsProvider,
70
+ permission: createStorageBrowser.toAccessGrantPermission(permissions),
71
+ region,
72
+ scope,
73
+ customEndpoint,
74
+ });
75
+ };
76
+ };
77
+
78
78
  /**
79
79
  * Create configuration including handlers to call S3 Access Grant APIs to list and get
80
80
  * credentials for different locations.