diff --git a/package-lock.json b/package-lock.json
index 6de238cd32f08c837a713f9c74ccb240545baf18..4da799133065dca25937118418612432bc0ec11d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -25,7 +25,7 @@
         "@typescript-eslint/parser": "^4.19.0",
         "autoprefixer": "^10.2.5",
         "cssnano": "^5.0.5",
-        "d3-scale": "^3.3.0",
+        "d3-scale": "^4.0.0",
         "dotenv": "^10.0.0",
         "eslint": "^7.22.0",
         "eslint-config-prettier": "^8.1.0",
@@ -3049,16 +3049,19 @@
       }
     },
     "node_modules/d3-scale": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz",
-      "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.0.tgz",
+      "integrity": "sha512-foHQYKpWQcyndH1CGoHdUC4PECxTxonzwwBXGT8qu+Drb1FIc6ON6dG2P5f4hRRMkLiIKeWK7iFtdznDUrnuPQ==",
       "dev": true,
       "dependencies": {
-        "d3-array": "^2.3.0",
-        "d3-format": "1 - 2",
-        "d3-interpolate": "1.2.0 - 2",
-        "d3-time": "^2.1.1",
-        "d3-time-format": "2 - 3"
+        "d3-array": "2.10.0 - 3",
+        "d3-format": "1 - 3",
+        "d3-interpolate": "1.2.0 - 3",
+        "d3-time": "2.1.1 - 3",
+        "d3-time-format": "2 - 4"
+      },
+      "engines": {
+        "node": ">=12"
       }
     },
     "node_modules/d3-time": {
@@ -8976,16 +8979,16 @@
       }
     },
     "d3-scale": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz",
-      "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.0.tgz",
+      "integrity": "sha512-foHQYKpWQcyndH1CGoHdUC4PECxTxonzwwBXGT8qu+Drb1FIc6ON6dG2P5f4hRRMkLiIKeWK7iFtdznDUrnuPQ==",
       "dev": true,
       "requires": {
-        "d3-array": "^2.3.0",
-        "d3-format": "1 - 2",
-        "d3-interpolate": "1.2.0 - 2",
-        "d3-time": "^2.1.1",
-        "d3-time-format": "2 - 3"
+        "d3-array": "2.10.0 - 3",
+        "d3-format": "1 - 3",
+        "d3-interpolate": "1.2.0 - 3",
+        "d3-time": "2.1.1 - 3",
+        "d3-time-format": "2 - 4"
       }
     },
     "d3-time": {
diff --git a/package.json b/package.json
index b7a69c5b2da09b2fb68d0588d533dcb1bcbd4154..54118c644926d73acaab1b3d8a7d3bdb2f7b101d 100644
--- a/package.json
+++ b/package.json
@@ -29,7 +29,7 @@
     "@typescript-eslint/parser": "^4.19.0",
     "autoprefixer": "^10.2.5",
     "cssnano": "^5.0.5",
-    "d3-scale": "^3.3.0",
+    "d3-scale": "^4.0.0",
     "dotenv": "^10.0.0",
     "eslint": "^7.22.0",
     "eslint-config-prettier": "^8.1.0",
diff --git a/svelte.config.js b/svelte.config.js
index 5165f6763b1301bff9a0e66957dad7c1f904a021..eed3ef4459b5ed58a337e445f258b65504d55f9d 100644
--- a/svelte.config.js
+++ b/svelte.config.js
@@ -25,6 +25,9 @@ const config = {
         // and https://github.com/sveltejs/vite-plugin-svelte/issues/124.
         exclude: ["svelte-modals"],
       },
+      ssr: {
+        noExternal: ["d3-scale"],
+      },
     },
   },