From a56d24d2d4bfe36ae8b9b196381ad8af6b464038 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20G=C3=B6bel?= <dgoebel@techfak.uni-bielefeld.de>
Date: Thu, 30 Jan 2025 10:01:07 +0000
Subject: [PATCH] Fix showing html files instead of downloading them

#189
---
 package-lock.json       | 58 ++++++++++++++++++++---------------------
 package.json            |  4 +--
 src/stores/s3objects.ts |  4 +--
 3 files changed, 32 insertions(+), 34 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 9d0a133..91e51cc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,7 +13,7 @@
         "@aws-sdk/lib-storage": "^3.726.1",
         "@aws-sdk/s3-request-presigner": "^3.726.1",
         "@fortawesome/fontawesome-free": "~6.7.0",
-        "@hey-api/client-axios": "^0.5.0",
+        "@hey-api/client-axios": "0.5.2",
         "@popperjs/core": "~2.11.8",
         "ajv": "~8.17.0",
         "bootstrap": "~5.3.0",
@@ -25,7 +25,7 @@
         "idb-keyval": "^6.2.1",
         "pinia": "~2.3.0",
         "qs": "^6.13.0",
-        "semver": "~7.6.0",
+        "semver": "~7.7.0",
         "showdown": "~2.1.0",
         "sortablejs": "^1.15.2",
         "vue": "~3.5.0",
@@ -263,16 +263,16 @@
       }
     },
     "node_modules/@aws-sdk/client-s3": {
-      "version": "3.735.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.735.0.tgz",
-      "integrity": "sha512-6NcxX06c4tnnu6FTFiyS8shoYLy+8TvIDkYjJ5r9tvbaysOptUKQdolOuh7+Lz95QyaqiznpCsNTxsfywLXcqw==",
+      "version": "3.738.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.738.0.tgz",
+      "integrity": "sha512-1Im/p5yfoV15ydVY+QlffsWQkQm7iGVI+3V9tCHEUT6SdmukYEpN3G8Y+lWofRBidxzUE2Xd+MbChCXfzLAoAg==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/sha1-browser": "5.2.0",
         "@aws-crypto/sha256-browser": "5.2.0",
         "@aws-crypto/sha256-js": "5.2.0",
         "@aws-sdk/core": "3.734.0",
-        "@aws-sdk/credential-provider-node": "3.734.0",
+        "@aws-sdk/credential-provider-node": "3.738.0",
         "@aws-sdk/middleware-bucket-endpoint": "3.734.0",
         "@aws-sdk/middleware-expect-continue": "3.734.0",
         "@aws-sdk/middleware-flexible-checksums": "3.735.0",
@@ -462,9 +462,9 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-node": {
-      "version": "3.734.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.734.0.tgz",
-      "integrity": "sha512-9NOSNbkPVb91JwaXOhyfahkzAwWdMsbWHL6fh5/PHlXYpsDjfIfT23I++toepNF2nODAJNLnOEHGYIxgNgf6jQ==",
+      "version": "3.738.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.738.0.tgz",
+      "integrity": "sha512-3MuREsazwBxghKb2sQQHvie+uuK4dX4/ckFYiSoffzJQd0YHxaGxf8cr4NOSCQCUesWu8D3Y0SzlnHGboVSkpA==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-sdk/credential-provider-env": "3.734.0",
@@ -538,9 +538,9 @@
       }
     },
     "node_modules/@aws-sdk/lib-storage": {
-      "version": "3.735.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.735.0.tgz",
-      "integrity": "sha512-rKCtjP1MC+coDXFJUpxVEZXY5qShE4aduWZTlmEdGptu81GgM6efNAU/GvMIB6Ttju/m+VqLYLWBuxG5js7Uhw==",
+      "version": "3.738.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.738.0.tgz",
+      "integrity": "sha512-YUBGp3k5Dg8RqHrllS89PjRiqpyIR3eKcQsCTM0bLzf3uRCjiCeSzlnl/co5W7Kxgc+eCnq0IitGYXR/mYFKeA==",
       "license": "Apache-2.0",
       "dependencies": {
         "@smithy/abort-controller": "^4.0.1",
@@ -555,7 +555,7 @@
         "node": ">=18.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-s3": "^3.735.0"
+        "@aws-sdk/client-s3": "^3.738.0"
       }
     },
     "node_modules/@aws-sdk/middleware-bucket-endpoint": {
@@ -797,9 +797,9 @@
       }
     },
     "node_modules/@aws-sdk/s3-request-presigner": {
-      "version": "3.735.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.735.0.tgz",
-      "integrity": "sha512-PzfS4rWDLlp22NORWmezA8ZH6uwz7fAmYfdIbWsPKoy1Rpm+/6Kqn7Nx+Taz6UKNhGPtexutCoJqsMxCy0ZmxQ==",
+      "version": "3.738.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.738.0.tgz",
+      "integrity": "sha512-cGENzkOxfAqrLfUdwYETDFiMOGjvicXV2EJe8sSH9Tw3wlm74WrIjZdw6ObHzm7AFnduHRNLVgX3KOtU7MlfCw==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-sdk/signature-v4-multi-region": "3.734.0",
@@ -1681,9 +1681,9 @@
       }
     },
     "node_modules/@hey-api/openapi-ts": {
-      "version": "0.63.0",
-      "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.63.0.tgz",
-      "integrity": "sha512-P3bleOja/aaL/b3B9yJQSSxQ3Q6m488mu2unMLej8oR2z4/rGc2F3+uODHIXxVYbc7M9mvFRDK9JuJnnPzKbEw==",
+      "version": "0.63.2",
+      "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.63.2.tgz",
+      "integrity": "sha512-HC5fR3+07P1AvDYrcZv0kbnhWogvMFot848PfpS3Gbncm47mDdO/uhNGIr2RF9CaRIvJNSJvAf1jL3XAQZ18RA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -1696,7 +1696,7 @@
         "openapi-ts": "bin/index.cjs"
       },
       "engines": {
-        "node": "^18.20.5 || ^20.11.1 || >=22.11.0"
+        "node": "^18.18.0 || ^20.9.0 || >=22.11.0"
       },
       "funding": {
         "url": "https://github.com/sponsors/hey-api"
@@ -4671,9 +4671,9 @@
       }
     },
     "node_modules/dompurify": {
-      "version": "3.2.3",
-      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.3.tgz",
-      "integrity": "sha512-U1U5Hzc2MO0oW3DF+G9qYN0aT7atAou4AgI0XjWz061nyBPbdxkfdhfy5uMgGn6+oLFCfn44ZGbdDqCzVmlOWA==",
+      "version": "3.2.4",
+      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz",
+      "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==",
       "license": "(MPL-2.0 OR Apache-2.0)",
       "optionalDependencies": {
         "@types/trusted-types": "^2.0.7"
@@ -6403,9 +6403,9 @@
       }
     },
     "node_modules/nypm": {
-      "version": "0.5.1",
-      "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.5.1.tgz",
-      "integrity": "sha512-irxlzb8A2mxHHRvVHkCpuVLEg7VLeONGf0JAMruajlvpL7OHULVd6ii3Yg5qS0o8cEZdPDGZOC1XPx242nNeUA==",
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.5.2.tgz",
+      "integrity": "sha512-AHzvnyUJYSrrphPhRWWZNcoZfArGNp3Vrc4pm/ZurO74tYNTgAPrEyBQEKy+qioqmWlPXwvMZCG2wOaHlPG0Pw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -7164,9 +7164,9 @@
       }
     },
     "node_modules/semver": {
-      "version": "7.6.3",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
-      "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+      "version": "7.7.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz",
+      "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==",
       "license": "ISC",
       "bin": {
         "semver": "bin/semver.js"
diff --git a/package.json b/package.json
index 9c0ca59..7411a53 100644
--- a/package.json
+++ b/package.json
@@ -16,7 +16,7 @@
     "@aws-sdk/lib-storage": "^3.726.1",
     "@aws-sdk/s3-request-presigner": "^3.726.1",
     "@fortawesome/fontawesome-free": "~6.7.0",
-    "@hey-api/client-axios": "^0.5.0",
+    "@hey-api/client-axios": "0.5.2",
     "@popperjs/core": "~2.11.8",
     "ajv": "~8.17.0",
     "bootstrap": "~5.3.0",
@@ -28,7 +28,7 @@
     "idb-keyval": "^6.2.1",
     "pinia": "~2.3.0",
     "qs": "^6.13.0",
-    "semver": "~7.6.0",
+    "semver": "~7.7.0",
     "showdown": "~2.1.0",
     "sortablejs": "^1.15.2",
     "vue": "~3.5.0",
diff --git a/src/stores/s3objects.ts b/src/stores/s3objects.ts
index dd7a64b..0555fe4 100644
--- a/src/stores/s3objects.ts
+++ b/src/stores/s3objects.ts
@@ -60,9 +60,7 @@ export const useS3ObjectStore = defineStore("s3objects", {
         const command = new GetObjectCommand({
           Bucket: bucketName,
           Key: key,
-          ResponseContentDisposition: download
-            ? `attachment; filename=${keySplit[keySplit.length - 1]}`
-            : "inline",
+          ResponseContentDisposition: `${download ? "attachment" : "inline"}; filename=${keySplit[keySplit.length - 1]}`,
         });
         return getSignedUrl(this.client, command, {
           expiresIn: 30,
-- 
GitLab