diff --git a/package-lock.json b/package-lock.json
index 523d3a735e4587d1e743f0e0ae73936e22a4743f..c70d5c1ef28262d5c08d8ceb41e50d362064746c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,6 +18,7 @@
         "@rushstack/eslint-patch": "^1.8.0",
         "@tsconfig/node20": "^20.1.4",
         "@types/animejs": "^3.1.12",
+        "@types/canvas-confetti": "^1.6.4",
         "@types/jsdom": "^21.1.6",
         "@types/node": "^20.12.5",
         "@typescript-eslint/eslint-plugin": "^7.7.0",
@@ -1154,6 +1155,12 @@
       "integrity": "sha512-fpdH+ZtlO0kqjTOqRaBdsEmvpRNOayI8k4EVkEtitL5l6wducDOXk0rgQgfZqWf/ZX9DzXrHf257S5i9xTcISQ==",
       "dev": true
     },
+    "node_modules/@types/canvas-confetti": {
+      "version": "1.6.4",
+      "resolved": "https://registry.npmjs.org/@types/canvas-confetti/-/canvas-confetti-1.6.4.tgz",
+      "integrity": "sha512-fNyZ/Fdw/Y92X0vv7B+BD6ysHL4xVU5dJcgzgxLdGbn8O3PezZNIJpml44lKM0nsGur+o/6+NZbZeNTt00U1uA==",
+      "dev": true
+    },
     "node_modules/@types/estree": {
       "version": "1.0.5",
       "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
diff --git a/package.json b/package.json
index 69219be92183fa27290ae973b30aab9c3588cf28..68388497c7d873b8f03e1128b07bb1c1c5a21ef9 100644
--- a/package.json
+++ b/package.json
@@ -28,6 +28,7 @@
     "@rushstack/eslint-patch": "^1.8.0",
     "@tsconfig/node20": "^20.1.4",
     "@types/animejs": "^3.1.12",
+    "@types/canvas-confetti": "^1.6.4",
     "@types/jsdom": "^21.1.6",
     "@types/node": "^20.12.5",
     "@typescript-eslint/eslint-plugin": "^7.7.0",