From c541efd30d8dcdf28fc8facc22987028f641f7c9 Mon Sep 17 00:00:00 2001
From: Gowtham Dhanaraju
Date: Mon, 9 Jun 2025 23:34:14 +0530
Subject: [PATCH 01/10] fix: modify EditQuestionPage component
---
package-lock.json | 3528 +++++++++++++++--
.../question_creation/question-editor.tsx | 18 +-
2 files changed, 3304 insertions(+), 242 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index d81fd2a..1be9d2f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -93,6 +93,8 @@
},
"node_modules/@alloc/quick-lru": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -104,6 +106,8 @@
},
"node_modules/@ampproject/remapping": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -116,6 +120,8 @@
},
"node_modules/@asamuzakjp/css-color": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
+ "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
"license": "MIT",
"dependencies": {
"@csstools/css-calc": "^2.1.3",
@@ -127,6 +133,8 @@
},
"node_modules/@auth/core": {
"version": "0.39.1",
+ "resolved": "https://registry.npmjs.org/@auth/core/-/core-0.39.1.tgz",
+ "integrity": "sha512-McD8slui0oOA1pjR5sPjLPl5Zm//nLP/8T3kr8hxIsvNLvsiudYvPHhDFPjh1KcZ2nFxCkZmP6bRxaaPd/AnLA==",
"license": "ISC",
"dependencies": {
"@panva/hkdf": "^1.2.1",
@@ -154,6 +162,8 @@
},
"node_modules/@auth/core/node_modules/jose": {
"version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-6.0.11.tgz",
+ "integrity": "sha512-QxG7EaliDARm1O1S8BGakqncGT9s25bKL1WSf6/oa17Tkqwi8D2ZNglqCF+DsYF88/rV66Q/Q2mFAy697E1DUg==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/panva"
@@ -161,6 +171,8 @@
},
"node_modules/@csstools/color-helpers": {
"version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz",
+ "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==",
"funding": [
{
"type": "github",
@@ -178,6 +190,8 @@
},
"node_modules/@csstools/css-calc": {
"version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
+ "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
"funding": [
{
"type": "github",
@@ -199,6 +213,8 @@
},
"node_modules/@csstools/css-color-parser": {
"version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz",
+ "integrity": "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==",
"funding": [
{
"type": "github",
@@ -224,6 +240,8 @@
},
"node_modules/@csstools/css-parser-algorithms": {
"version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
+ "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
"funding": [
{
"type": "github",
@@ -244,6 +262,8 @@
},
"node_modules/@csstools/css-tokenizer": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
+ "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
"funding": [
{
"type": "github",
@@ -261,10 +281,14 @@
},
"node_modules/@date-fns/tz": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.2.0.tgz",
+ "integrity": "sha512-LBrd7MiJZ9McsOgxqWX7AaxrDjcFVjWH/tIKJd7pnR7McaslGYOP1QmmiBXdJH/H/yLCT+rcQ7FaPBUxRGUtrg==",
"license": "MIT"
},
"node_modules/@dnd-kit/accessibility": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz",
+ "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==",
"license": "MIT",
"dependencies": {
"tslib": "^2.0.0"
@@ -275,6 +299,8 @@
},
"node_modules/@dnd-kit/core": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz",
+ "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==",
"license": "MIT",
"dependencies": {
"@dnd-kit/accessibility": "^3.1.1",
@@ -288,6 +314,8 @@
},
"node_modules/@dnd-kit/modifiers": {
"version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-9.0.0.tgz",
+ "integrity": "sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==",
"license": "MIT",
"dependencies": {
"@dnd-kit/utilities": "^3.2.2",
@@ -300,6 +328,8 @@
},
"node_modules/@dnd-kit/utilities": {
"version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz",
+ "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==",
"license": "MIT",
"dependencies": {
"tslib": "^2.0.0"
@@ -308,8 +338,43 @@
"react": ">=16.8.0"
}
},
+ "node_modules/@emnapi/core": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz",
+ "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.0.2",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz",
+ "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz",
+ "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@eslint-community/eslint-utils": {
"version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+ "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -327,6 +392,8 @@
},
"node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -338,6 +405,8 @@
},
"node_modules/@eslint-community/regexpp": {
"version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -346,6 +415,8 @@
},
"node_modules/@eslint/config-array": {
"version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz",
+ "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -359,6 +430,8 @@
},
"node_modules/@eslint/config-helpers": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz",
+ "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -367,6 +440,8 @@
},
"node_modules/@eslint/core": {
"version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz",
+ "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -378,6 +453,8 @@
},
"node_modules/@eslint/eslintrc": {
"version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
+ "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -400,6 +477,8 @@
},
"node_modules/@eslint/js": {
"version": "9.28.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz",
+ "integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -411,6 +490,8 @@
},
"node_modules/@eslint/object-schema": {
"version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
+ "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -419,6 +500,8 @@
},
"node_modules/@eslint/plugin-kit": {
"version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.1.tgz",
+ "integrity": "sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -431,6 +514,8 @@
},
"node_modules/@floating-ui/core": {
"version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.1.tgz",
+ "integrity": "sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==",
"license": "MIT",
"dependencies": {
"@floating-ui/utils": "^0.2.9"
@@ -438,6 +523,8 @@
},
"node_modules/@floating-ui/dom": {
"version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.1.tgz",
+ "integrity": "sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==",
"license": "MIT",
"dependencies": {
"@floating-ui/core": "^1.7.1",
@@ -446,6 +533,8 @@
},
"node_modules/@floating-ui/react-dom": {
"version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.3.tgz",
+ "integrity": "sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==",
"license": "MIT",
"dependencies": {
"@floating-ui/dom": "^1.0.0"
@@ -457,6 +546,8 @@
},
"node_modules/@floating-ui/utils": {
"version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
+ "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==",
"license": "MIT"
},
"node_modules/@hookform/resolvers": {
@@ -473,6 +564,8 @@
},
"node_modules/@humanfs/core": {
"version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
+ "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -481,6 +574,8 @@
},
"node_modules/@humanfs/node": {
"version": "0.16.6",
+ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz",
+ "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -493,6 +588,8 @@
},
"node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": {
"version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz",
+ "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -505,6 +602,8 @@
},
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -517,6 +616,8 @@
},
"node_modules/@humanwhocodes/retry": {
"version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
+ "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -527,8 +628,387 @@
"url": "https://github.com/sponsors/nzakas"
}
},
+ "node_modules/@img/sharp-darwin-arm64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.2.tgz",
+ "integrity": "sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-arm64": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-darwin-x64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.2.tgz",
+ "integrity": "sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-x64": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-libvips-darwin-arm64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz",
+ "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-darwin-x64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz",
+ "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-arm": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz",
+ "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-arm64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz",
+ "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-ppc64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz",
+ "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-s390x": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz",
+ "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-x64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz",
+ "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz",
+ "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linuxmusl-x64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz",
+ "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-linux-arm": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.2.tgz",
+ "integrity": "sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-linux-arm64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.2.tgz",
+ "integrity": "sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm64": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-linux-s390x": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.2.tgz",
+ "integrity": "sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-s390x": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-linux-x64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.2.tgz",
+ "integrity": "sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-x64": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-linuxmusl-arm64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.2.tgz",
+ "integrity": "sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-arm64": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-linuxmusl-x64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.2.tgz",
+ "integrity": "sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-x64": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-wasm32": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.2.tgz",
+ "integrity": "sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==",
+ "cpu": [
+ "wasm32"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/runtime": "^1.4.3"
+ },
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-arm64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.2.tgz",
+ "integrity": "sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-ia32": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.2.tgz",
+ "integrity": "sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
"node_modules/@img/sharp-win32-x64": {
"version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.2.tgz",
+ "integrity": "sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==",
"cpu": [
"x64"
],
@@ -546,6 +1026,8 @@
},
"node_modules/@isaacs/fs-minipass": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
+ "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -557,6 +1039,8 @@
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -570,67 +1054,210 @@
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@monaco-editor/loader": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.5.0.tgz",
+ "integrity": "sha512-hKoGSM+7aAc7eRTRjpqAZucPmoNOC4UUbknb/VNoTkEIkCPhqV8LfbsgM1webRM7S/z21eHEx9Fkwx8Z/C/+Xw==",
+ "license": "MIT",
+ "dependencies": {
+ "state-local": "^1.0.6"
+ }
+ },
+ "node_modules/@monaco-editor/react": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.7.0.tgz",
+ "integrity": "sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==",
+ "license": "MIT",
+ "dependencies": {
+ "@monaco-editor/loader": "^1.5.0"
+ },
+ "peerDependencies": {
+ "monaco-editor": ">= 0.25.0 < 1",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz",
+ "integrity": "sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.4.3",
+ "@emnapi/runtime": "^1.4.3",
+ "@tybys/wasm-util": "^0.9.0"
+ }
+ },
+ "node_modules/@next/env": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.3.tgz",
+ "integrity": "sha512-OdiMrzCl2Xi0VTjiQQUK0Xh7bJHnOuET2s+3V+Y40WJBAXrJeGA3f+I8MZJ/YQ3mVGi5XGR1L66oFlgqXhQ4Vw==",
+ "license": "MIT"
+ },
+ "node_modules/@next/eslint-plugin-next": {
+ "version": "15.2.0",
+ "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.2.0.tgz",
+ "integrity": "sha512-jHFUG2OwmAuOASqq253RAEG/5BYcPHn27p1NoWZDCf4OdvdK0yRYWX92YKkL+Mk2s+GyJrmd/GATlL5b2IySpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-glob": "3.3.1"
+ }
+ },
+ "node_modules/@next/swc-darwin-arm64": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.3.tgz",
+ "integrity": "sha512-WRJERLuH+O3oYB4yZNVahSVFmtxRNjNF1I1c34tYMoJb0Pve+7/RaLAJJizyYiFhjYNGHRAE1Ri2Fd23zgDqhg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-darwin-x64": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.3.tgz",
+ "integrity": "sha512-XHdzH/yBc55lu78k/XwtuFR/ZXUTcflpRXcsu0nKmF45U96jt1tsOZhVrn5YH+paw66zOANpOnFQ9i6/j+UYvw==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=6.0.0"
+ "node": ">= 10"
}
},
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "dev": true,
+ "node_modules/@next/swc-linux-arm64-gnu": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.3.tgz",
+ "integrity": "sha512-VZ3sYL2LXB8znNGcjhocikEkag/8xiLgnvQts41tq6i+wql63SMS1Q6N8RVXHw5pEUjiof+II3HkDd7GFcgkzw==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.0.0"
+ "node": ">= 10"
}
},
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "dev": true,
+ "node_modules/@next/swc-linux-arm64-musl": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.3.tgz",
+ "integrity": "sha512-h6Y1fLU4RWAp1HPNJWDYBQ+e3G7sLckyBXhmH9ajn8l/RSMnhbuPBV/fXmy3muMcVwoJdHL+UtzRzs0nXOf9SA==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
}
},
- "node_modules/@monaco-editor/loader": {
- "version": "1.5.0",
+ "node_modules/@next/swc-linux-x64-gnu": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.3.tgz",
+ "integrity": "sha512-jJ8HRiF3N8Zw6hGlytCj5BiHyG/K+fnTKVDEKvUCyiQ/0r5tgwO7OgaRiOjjRoIx2vwLR+Rz8hQoPrnmFbJdfw==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "state-local": "^1.0.6"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
}
},
- "node_modules/@monaco-editor/react": {
- "version": "4.7.0",
+ "node_modules/@next/swc-linux-x64-musl": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.3.tgz",
+ "integrity": "sha512-HrUcTr4N+RgiiGn3jjeT6Oo208UT/7BuTr7K0mdKRBtTbT4v9zJqCDKO97DUqqoBK1qyzP1RwvrWTvU6EPh/Cw==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "@monaco-editor/loader": "^1.5.0"
- },
- "peerDependencies": {
- "monaco-editor": ">= 0.25.0 < 1",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
}
},
- "node_modules/@next/env": {
+ "node_modules/@next/swc-win32-arm64-msvc": {
"version": "15.3.3",
- "license": "MIT"
- },
- "node_modules/@next/eslint-plugin-next": {
- "version": "15.2.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.3.tgz",
+ "integrity": "sha512-SxorONgi6K7ZUysMtRF3mIeHC5aA3IQLmKFQzU0OuhuUYwpOBc1ypaLJLP5Bf3M9k53KUUUj4vTPwzGvl/NwlQ==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "fast-glob": "3.3.1"
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
}
},
"node_modules/@next/swc-win32-x64-msvc": {
"version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.3.tgz",
+ "integrity": "sha512-4QZG6F8enl9/S2+yIiOiju0iCTFd93d8VC1q9LZS4p/Xuk81W2QDjCFeoogmrWWkAD59z8ZxepBQap2dKS5ruw==",
"cpu": [
"x64"
],
@@ -645,6 +1272,8 @@
},
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -657,6 +1286,8 @@
},
"node_modules/@nodelib/fs.stat": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -665,6 +1296,8 @@
},
"node_modules/@nodelib/fs.walk": {
"version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -677,14 +1310,28 @@
},
"node_modules/@nolyfill/is-core-module": {
"version": "1.0.39",
+ "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz",
+ "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12.4.0"
}
},
+ "node_modules/@panva/asn1.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz",
+ "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"node_modules/@panva/hkdf": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.2.1.tgz",
+ "integrity": "sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/panva"
@@ -692,6 +1339,8 @@
},
"node_modules/@popperjs/core": {
"version": "2.11.8",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
+ "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
"license": "MIT",
"funding": {
"type": "opencollective",
@@ -700,14 +1349,20 @@
},
"node_modules/@radix-ui/number": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz",
+ "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==",
"license": "MIT"
},
"node_modules/@radix-ui/primitive": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz",
+ "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==",
"license": "MIT"
},
"node_modules/@radix-ui/react-alert-dialog": {
"version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.14.tgz",
+ "integrity": "sha512-IOZfZ3nPvN6lXpJTBCunFQPRSvK8MDgSc1FB85xnIpUKOw9en0dJj8JmCAxV7BiZdtYlUpmrQjoTFkVYtdoWzQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -734,6 +1389,8 @@
},
"node_modules/@radix-ui/react-arrow": {
"version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz",
+ "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-primitive": "2.1.3"
@@ -755,6 +1412,8 @@
},
"node_modules/@radix-ui/react-avatar": {
"version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz",
+ "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-context": "1.1.2",
@@ -780,6 +1439,8 @@
},
"node_modules/@radix-ui/react-checkbox": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.2.tgz",
+ "integrity": "sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -808,6 +1469,8 @@
},
"node_modules/@radix-ui/react-collection": {
"version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz",
+ "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "1.1.2",
@@ -832,6 +1495,8 @@
},
"node_modules/@radix-ui/react-compose-refs": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz",
+ "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -845,6 +1510,8 @@
},
"node_modules/@radix-ui/react-context": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz",
+ "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -858,6 +1525,8 @@
},
"node_modules/@radix-ui/react-dialog": {
"version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.14.tgz",
+ "integrity": "sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -892,6 +1561,8 @@
},
"node_modules/@radix-ui/react-direction": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz",
+ "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -905,6 +1576,8 @@
},
"node_modules/@radix-ui/react-dismissable-layer": {
"version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz",
+ "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -930,6 +1603,8 @@
},
"node_modules/@radix-ui/react-dropdown-menu": {
"version": "2.1.15",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.15.tgz",
+ "integrity": "sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -957,6 +1632,8 @@
},
"node_modules/@radix-ui/react-focus-guards": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz",
+ "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -970,6 +1647,8 @@
},
"node_modules/@radix-ui/react-focus-scope": {
"version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz",
+ "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "1.1.2",
@@ -993,6 +1672,8 @@
},
"node_modules/@radix-ui/react-icons": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.2.tgz",
+ "integrity": "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==",
"license": "MIT",
"peerDependencies": {
"react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc"
@@ -1000,6 +1681,8 @@
},
"node_modules/@radix-ui/react-id": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz",
+ "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-use-layout-effect": "1.1.1"
@@ -1016,6 +1699,8 @@
},
"node_modules/@radix-ui/react-label": {
"version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz",
+ "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-primitive": "2.1.3"
@@ -1037,6 +1722,8 @@
},
"node_modules/@radix-ui/react-menu": {
"version": "2.1.15",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.15.tgz",
+ "integrity": "sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1075,6 +1762,8 @@
},
"node_modules/@radix-ui/react-popover": {
"version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.14.tgz",
+ "integrity": "sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1110,6 +1799,8 @@
},
"node_modules/@radix-ui/react-popper": {
"version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.7.tgz",
+ "integrity": "sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==",
"license": "MIT",
"dependencies": {
"@floating-ui/react-dom": "^2.0.0",
@@ -1140,6 +1831,8 @@
},
"node_modules/@radix-ui/react-portal": {
"version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz",
+ "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-primitive": "2.1.3",
@@ -1162,6 +1855,8 @@
},
"node_modules/@radix-ui/react-presence": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.4.tgz",
+ "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "1.1.2",
@@ -1184,6 +1879,8 @@
},
"node_modules/@radix-ui/react-primitive": {
"version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
+ "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-slot": "1.2.3"
@@ -1205,6 +1902,8 @@
},
"node_modules/@radix-ui/react-progress": {
"version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.7.tgz",
+ "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-context": "1.1.2",
@@ -1227,6 +1926,8 @@
},
"node_modules/@radix-ui/react-radio-group": {
"version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.7.tgz",
+ "integrity": "sha512-9w5XhD0KPOrm92OTTE0SysH3sYzHsSTHNvZgUBo/VZ80VdYyB5RneDbc0dKpURS24IxkoFRu/hI0i4XyfFwY6g==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1257,6 +1958,8 @@
},
"node_modules/@radix-ui/react-roving-focus": {
"version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.10.tgz",
+ "integrity": "sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1286,6 +1989,8 @@
},
"node_modules/@radix-ui/react-scroll-area": {
"version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.9.tgz",
+ "integrity": "sha512-YSjEfBXnhUELsO2VzjdtYYD4CfQjvao+lhhrX5XsHD7/cyUNzljF1FHEbgTPN7LH2MClfwRMIsYlqTYpKTTe2A==",
"license": "MIT",
"dependencies": {
"@radix-ui/number": "1.1.1",
@@ -1315,6 +2020,8 @@
},
"node_modules/@radix-ui/react-select": {
"version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.5.tgz",
+ "integrity": "sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==",
"license": "MIT",
"dependencies": {
"@radix-ui/number": "1.1.1",
@@ -1356,6 +2063,8 @@
},
"node_modules/@radix-ui/react-separator": {
"version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz",
+ "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-primitive": "2.1.3"
@@ -1377,6 +2086,8 @@
},
"node_modules/@radix-ui/react-slider": {
"version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.5.tgz",
+ "integrity": "sha512-rkfe2pU2NBAYfGaxa3Mqosi7VZEWX5CxKaanRv0vZd4Zhl9fvQrg0VM93dv3xGLGfrHuoTRF3JXH8nb9g+B3fw==",
"license": "MIT",
"dependencies": {
"@radix-ui/number": "1.1.1",
@@ -1408,6 +2119,8 @@
},
"node_modules/@radix-ui/react-slot": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz",
+ "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "1.1.2"
@@ -1424,6 +2137,8 @@
},
"node_modules/@radix-ui/react-switch": {
"version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.5.tgz",
+ "integrity": "sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1451,6 +2166,8 @@
},
"node_modules/@radix-ui/react-tabs": {
"version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.12.tgz",
+ "integrity": "sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1479,6 +2196,8 @@
},
"node_modules/@radix-ui/react-tooltip": {
"version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.7.tgz",
+ "integrity": "sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1511,6 +2230,8 @@
},
"node_modules/@radix-ui/react-use-callback-ref": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
+ "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -1524,6 +2245,8 @@
},
"node_modules/@radix-ui/react-use-controllable-state": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz",
+ "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-use-effect-event": "0.0.2",
@@ -1541,6 +2264,8 @@
},
"node_modules/@radix-ui/react-use-effect-event": {
"version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz",
+ "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-use-layout-effect": "1.1.1"
@@ -1557,6 +2282,8 @@
},
"node_modules/@radix-ui/react-use-escape-keydown": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz",
+ "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-use-callback-ref": "1.1.1"
@@ -1573,6 +2300,8 @@
},
"node_modules/@radix-ui/react-use-is-hydrated": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz",
+ "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==",
"license": "MIT",
"dependencies": {
"use-sync-external-store": "^1.5.0"
@@ -1589,6 +2318,8 @@
},
"node_modules/@radix-ui/react-use-layout-effect": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
+ "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -1602,6 +2333,8 @@
},
"node_modules/@radix-ui/react-use-previous": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz",
+ "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -1615,6 +2348,8 @@
},
"node_modules/@radix-ui/react-use-rect": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz",
+ "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==",
"license": "MIT",
"dependencies": {
"@radix-ui/rect": "1.1.1"
@@ -1631,6 +2366,8 @@
},
"node_modules/@radix-ui/react-use-size": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz",
+ "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-use-layout-effect": "1.1.1"
@@ -1647,6 +2384,8 @@
},
"node_modules/@radix-ui/react-visually-hidden": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz",
+ "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-primitive": "2.1.3"
@@ -1668,82 +2407,278 @@
},
"node_modules/@radix-ui/rect": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz",
+ "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==",
"license": "MIT"
},
"node_modules/@remirror/core-constants": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz",
+ "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==",
+ "license": "MIT"
+ },
+ "node_modules/@rtsao/scc": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
+ "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@rushstack/eslint-patch": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz",
+ "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@sqltools/formatter": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz",
+ "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@standard-schema/utils": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz",
+ "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==",
"license": "MIT"
},
- "node_modules/@rtsao/scc": {
- "version": "1.1.0",
+ "node_modules/@swc/counter": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
+ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@swc/helpers": {
+ "version": "0.5.15",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
+ "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@tailwindcss/node": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.8.tgz",
+ "integrity": "sha512-OWwBsbC9BFAJelmnNcrKuf+bka2ZxCE2A4Ft53Tkg4uoiE67r/PMEYwCsourC26E+kmxfwE0hVzMdxqeW+xu7Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@ampproject/remapping": "^2.3.0",
+ "enhanced-resolve": "^5.18.1",
+ "jiti": "^2.4.2",
+ "lightningcss": "1.30.1",
+ "magic-string": "^0.30.17",
+ "source-map-js": "^1.2.1",
+ "tailwindcss": "4.1.8"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-android-arm64": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.8.tgz",
+ "integrity": "sha512-Fbz7qni62uKYceWYvUjRqhGfZKwhZDQhlrJKGtnZfuNtHFqa8wmr+Wn74CTWERiW2hn3mN5gTpOoxWKk0jRxjg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-arm64": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.8.tgz",
+ "integrity": "sha512-RdRvedGsT0vwVVDztvyXhKpsU2ark/BjgG0huo4+2BluxdXo8NDgzl77qh0T1nUxmM11eXwR8jA39ibvSTbi7A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-x64": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.8.tgz",
+ "integrity": "sha512-t6PgxjEMLp5Ovf7uMb2OFmb3kqzVTPPakWpBIFzppk4JE4ix0yEtbtSjPbU8+PZETpaYMtXvss2Sdkx8Vs4XRw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-freebsd-x64": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.8.tgz",
+ "integrity": "sha512-g8C8eGEyhHTqwPStSwZNSrOlyx0bhK/V/+zX0Y+n7DoRUzyS8eMbVshVOLJTDDC+Qn9IJnilYbIKzpB9n4aBsg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.8.tgz",
+ "integrity": "sha512-Jmzr3FA4S2tHhaC6yCjac3rGf7hG9R6Gf2z9i9JFcuyy0u79HfQsh/thifbYTF2ic82KJovKKkIB6Z9TdNhCXQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.8.tgz",
+ "integrity": "sha512-qq7jXtO1+UEtCmCeBBIRDrPFIVI4ilEQ97qgBGdwXAARrUqSn/L9fUrkb1XP/mvVtoVeR2bt/0L77xx53bPZ/Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.8.tgz",
+ "integrity": "sha512-O6b8QesPbJCRshsNApsOIpzKt3ztG35gfX9tEf4arD7mwNinsoCKxkj8TgEE0YRjmjtO3r9FlJnT/ENd9EVefQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.8.tgz",
+ "integrity": "sha512-32iEXX/pXwikshNOGnERAFwFSfiltmijMIAbUhnNyjFr3tmWmMJWQKU2vNcFX0DACSXJ3ZWcSkzNbaKTdngH6g==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
},
- "node_modules/@rushstack/eslint-patch": {
- "version": "1.11.0",
+ "node_modules/@tailwindcss/oxide-linux-x64-musl": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.8.tgz",
+ "integrity": "sha512-s+VSSD+TfZeMEsCaFaHTaY5YNj3Dri8rST09gMvYQKwPphacRG7wbuQ5ZJMIJXN/puxPcg/nU+ucvWguPpvBDg==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT"
- },
- "node_modules/@standard-schema/utils": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz",
- "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==",
- "license": "MIT"
- },
- "node_modules/@swc/counter": {
- "version": "0.1.3",
- "license": "Apache-2.0"
- },
- "node_modules/@swc/helpers": {
- "version": "0.5.15",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.8.0"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
}
},
- "node_modules/@tailwindcss/node": {
+ "node_modules/@tailwindcss/oxide-wasm32-wasi": {
"version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.8.tgz",
+ "integrity": "sha512-CXBPVFkpDjM67sS1psWohZ6g/2/cd+cq56vPxK4JeawelxwK4YECgl9Y9TjkE2qfF+9/s1tHHJqrC4SS6cVvSg==",
+ "bundleDependencies": [
+ "@napi-rs/wasm-runtime",
+ "@emnapi/core",
+ "@emnapi/runtime",
+ "@tybys/wasm-util",
+ "@emnapi/wasi-threads",
+ "tslib"
+ ],
+ "cpu": [
+ "wasm32"
+ ],
"dev": true,
"license": "MIT",
+ "optional": true,
"dependencies": {
- "@ampproject/remapping": "^2.3.0",
- "enhanced-resolve": "^5.18.1",
- "jiti": "^2.4.2",
- "lightningcss": "1.30.1",
- "magic-string": "^0.30.17",
- "source-map-js": "^1.2.1",
- "tailwindcss": "4.1.8"
+ "@emnapi/core": "^1.4.3",
+ "@emnapi/runtime": "^1.4.3",
+ "@emnapi/wasi-threads": "^1.0.2",
+ "@napi-rs/wasm-runtime": "^0.2.10",
+ "@tybys/wasm-util": "^0.9.0",
+ "tslib": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
}
},
- "node_modules/@tailwindcss/oxide": {
+ "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
"version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.8.tgz",
+ "integrity": "sha512-7GmYk1n28teDHUjPlIx4Z6Z4hHEgvP5ZW2QS9ygnDAdI/myh3HTHjDqtSqgu1BpRoI4OiLx+fThAyA1JePoENA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "hasInstallScript": true,
"license": "MIT",
- "dependencies": {
- "detect-libc": "^2.0.4",
- "tar": "^7.4.3"
- },
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
"node": ">= 10"
- },
- "optionalDependencies": {
- "@tailwindcss/oxide-android-arm64": "4.1.8",
- "@tailwindcss/oxide-darwin-arm64": "4.1.8",
- "@tailwindcss/oxide-darwin-x64": "4.1.8",
- "@tailwindcss/oxide-freebsd-x64": "4.1.8",
- "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.8",
- "@tailwindcss/oxide-linux-arm64-gnu": "4.1.8",
- "@tailwindcss/oxide-linux-arm64-musl": "4.1.8",
- "@tailwindcss/oxide-linux-x64-gnu": "4.1.8",
- "@tailwindcss/oxide-linux-x64-musl": "4.1.8",
- "@tailwindcss/oxide-wasm32-wasi": "4.1.8",
- "@tailwindcss/oxide-win32-arm64-msvc": "4.1.8",
- "@tailwindcss/oxide-win32-x64-msvc": "4.1.8"
}
},
"node_modules/@tailwindcss/oxide-win32-x64-msvc": {
"version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.8.tgz",
+ "integrity": "sha512-fou+U20j+Jl0EHwK92spoWISON2OBnCazIc038Xj2TdweYV33ZRkS9nwqiUi2d/Wba5xg5UoHfvynnb/UB49cQ==",
"cpu": [
"x64"
],
@@ -1759,6 +2694,8 @@
},
"node_modules/@tailwindcss/postcss": {
"version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.8.tgz",
+ "integrity": "sha512-vB/vlf7rIky+w94aWMw34bWW1ka6g6C3xIOdICKX2GC0VcLtL6fhlLiafF0DVIwa9V6EHz8kbWMkS2s2QvvNlw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1769,8 +2706,39 @@
"tailwindcss": "4.1.8"
}
},
+ "node_modules/@tailwindcss/postcss/node_modules/@tailwindcss/oxide": {
+ "version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.8.tgz",
+ "integrity": "sha512-d7qvv9PsM5N3VNKhwVUhpK6r4h9wtLkJ6lz9ZY9aeZgrUWk1Z8VPyqyDT9MZlem7GTGseRQHkeB1j3tC7W1P+A==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "detect-libc": "^2.0.4",
+ "tar": "^7.4.3"
+ },
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@tailwindcss/oxide-android-arm64": "4.1.8",
+ "@tailwindcss/oxide-darwin-arm64": "4.1.8",
+ "@tailwindcss/oxide-darwin-x64": "4.1.8",
+ "@tailwindcss/oxide-freebsd-x64": "4.1.8",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.8",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.1.8",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.1.8",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.1.8",
+ "@tailwindcss/oxide-linux-x64-musl": "4.1.8",
+ "@tailwindcss/oxide-wasm32-wasi": "4.1.8",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.1.8",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.1.8"
+ }
+ },
"node_modules/@tanstack/query-core": {
"version": "5.80.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.80.6.tgz",
+ "integrity": "sha512-nl7YxT/TAU+VTf+e2zTkObGTyY8YZBMnbgeA1ee66lIVqzKlYursAII6z5t0e6rXgwUMJSV4dshBTNacNpZHbQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1779,6 +2747,8 @@
},
"node_modules/@tanstack/query-devtools": {
"version": "5.80.0",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.80.0.tgz",
+ "integrity": "sha512-D6gH4asyjaoXrCOt5vG5Og/YSj0D/TxwNQgtLJIgWbhbWCC/emu2E92EFoVHh4ppVWg1qT2gKHvKyQBEFZhCuA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1787,6 +2757,8 @@
},
"node_modules/@tanstack/react-query": {
"version": "5.80.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.80.6.tgz",
+ "integrity": "sha512-izX+5CnkpON3NQGcEm3/d7LfFQNo9ZpFtX2QsINgCYK9LT2VCIdi8D3bMaMSNhrAJCznRoAkFic76uvLroALBw==",
"license": "MIT",
"dependencies": {
"@tanstack/query-core": "5.80.6"
@@ -1801,6 +2773,8 @@
},
"node_modules/@tanstack/react-query-devtools": {
"version": "5.80.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.80.6.tgz",
+ "integrity": "sha512-y7Es0OJ4RYQxrPYsuuQP0jxjgJ40a03UbEPmJ6vwf/ERVMRoRIMkpjtvPxf1D+n9nwPfWmGdD0jW8Wxd+TxeEw==",
"license": "MIT",
"dependencies": {
"@tanstack/query-devtools": "5.80.0"
@@ -1876,6 +2850,8 @@
},
"node_modules/@tiptap/core": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.14.0.tgz",
+ "integrity": "sha512-MBSMzGYRFlwYCocvx3dU7zpCBSDQ0qWByNtStaEzuBUgzCJ6wn2DP/xG0cMcLmE3Ia0VLM4nwbLOAAvBXOtylA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1887,6 +2863,8 @@
},
"node_modules/@tiptap/extension-blockquote": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.14.0.tgz",
+ "integrity": "sha512-AwqPP0jLYNioKxakiVw0vlfH/ceGFbV+SGoqBbPSGFPRdSbHhxHDNBlTtiThmT3N2PiVwXAD9xislJV+WY4GUA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1898,6 +2876,8 @@
},
"node_modules/@tiptap/extension-bold": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.14.0.tgz",
+ "integrity": "sha512-8DWwelH55H8KtLECSIv0wh8x/F/6lpagV/pMvT+Azujad0oqK+1iAPKU/kLgjXbFSkisrpV6KSwQts5neCtfRQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1909,6 +2889,8 @@
},
"node_modules/@tiptap/extension-bubble-menu": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.14.0.tgz",
+ "integrity": "sha512-sN15n0RjPh+2Asvxs7l47hVEvX6c0aPempU8QQWcPUlHoGf1D/XkyHXy6GWVPSxZ5Rj5uAwgKvhHsG/FJ/YGKQ==",
"license": "MIT",
"dependencies": {
"tippy.js": "^6.3.7"
@@ -1924,6 +2906,8 @@
},
"node_modules/@tiptap/extension-bullet-list": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.14.0.tgz",
+ "integrity": "sha512-SWnL4bP8Mm/mWN42AMQNoqYE0V6LgSBTVsHwwAki2wIUQdr9HyoAnohvHy3IME56NMwoyZyo+Mzl45wOqUxziA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1935,6 +2919,8 @@
},
"node_modules/@tiptap/extension-code": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.14.0.tgz",
+ "integrity": "sha512-kyo02mnzqgwXayMcyRA/fHQgb+nMmQQpIt1irZwjtEoFZshA7NnY/6b5SJmRcxQ4/X4r2Y2Ha2sWmOcEkLmt4A==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1946,6 +2932,8 @@
},
"node_modules/@tiptap/extension-code-block": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.14.0.tgz",
+ "integrity": "sha512-LRYYZeh8U2XgfTsJ4houB9s9cVRt7PRfVa4MaCeOYKfowVOKQh67yV5oom8Azk9XrMPkPxDmMmdPAEPxeVYFvw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1958,6 +2946,8 @@
},
"node_modules/@tiptap/extension-color": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-2.14.0.tgz",
+ "integrity": "sha512-sY+eWIbkCMAwOGH7pQ1ZuNqkqMaaHE+TsJwA7bQ6VhI2gGhhqGjT/DfmJMUen8FSdzuPoWlgtuXXCeOO6FOduw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1970,6 +2960,8 @@
},
"node_modules/@tiptap/extension-document": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.14.0.tgz",
+ "integrity": "sha512-qwEgpPIJ3AgXdEtRTr88hODbXRdt14VAwLj27PTSqexB5V7Ra1Jy7iQDhqRwBCoUomVywBsWYxkSuDisSRG+9w==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1981,6 +2973,8 @@
},
"node_modules/@tiptap/extension-dropcursor": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.14.0.tgz",
+ "integrity": "sha512-FIh5cdPuoPKvZ0GqSKhzMZGixm05ac3hSgqhMNCBZmXX459qBUI9CvDl/uzSnY9koBDeLVV3HYMthWQQLSXl9A==",
"license": "MIT",
"funding": {
"type": "github",
@@ -1993,6 +2987,8 @@
},
"node_modules/@tiptap/extension-floating-menu": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.14.0.tgz",
+ "integrity": "sha512-Khx7M7RfZlD1/T/PUlpJmao6FtEBa2L6td2hhaW1USflwGJGk0U/ud4UEqh+aZoJZrkot/EMhEvzmORF3nq+xw==",
"license": "MIT",
"dependencies": {
"tippy.js": "^6.3.7"
@@ -2008,6 +3004,8 @@
},
"node_modules/@tiptap/extension-gapcursor": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.14.0.tgz",
+ "integrity": "sha512-as+SqC39FRshw4Fm1XVlrdSXveiusf5xiC4nuefLmXsUxO7Yx67x8jS0/VQbxWTLHZ6R1YEW8prLtnxGmVLCAQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2020,6 +3018,8 @@
},
"node_modules/@tiptap/extension-hard-break": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.14.0.tgz",
+ "integrity": "sha512-A8c8n8881iBq3AusNqibh6Hloybr+FgYdg4Lg4jNxbbEaL0WhyLFge1bWlGVpbHXFqdv5YldMUAu6Rop3FhNvw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2031,6 +3031,8 @@
},
"node_modules/@tiptap/extension-heading": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.14.0.tgz",
+ "integrity": "sha512-vM//6G3Ox3mxPv9eilhrDqylELCc8kEP1aQ4xUuOw7vCidjNtGggOa1ERnnpV2dCa2A9E8y4FHtN4Xh29stXQg==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2042,6 +3044,8 @@
},
"node_modules/@tiptap/extension-highlight": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.14.0.tgz",
+ "integrity": "sha512-21eouZEuCBFrpGeefnnU9yJ1SH32L9gSlT9MOJXBSXCX5HFskNLdN8Q4cQSyRXSt6r5kEz1GG5a4I805/U2TMQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2053,6 +3057,8 @@
},
"node_modules/@tiptap/extension-history": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.14.0.tgz",
+ "integrity": "sha512-/qnOHQFCEPfkb3caykqd+sqzEC2gx30EQB/mM7+5kIG7CQy7XXaGjFAEaqzE1xJ783Q2E7GVk4JxWM+3NhYSLw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2065,6 +3071,8 @@
},
"node_modules/@tiptap/extension-horizontal-rule": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.14.0.tgz",
+ "integrity": "sha512-OrKWgHOhmJtVHjPYaEJetNLiNEvrI85lTrGxzeQa+a8ACb93h4svyHe9J+LHs5pKkXDQFcpYEXJntu0LVLLiDw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2077,6 +3085,8 @@
},
"node_modules/@tiptap/extension-image": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.14.0.tgz",
+ "integrity": "sha512-pYCUzZBgsxIvVGTzuW03cPz6PIrAo26xpoxqq4W090uMVoK0SgY5W5y0IqCdw4QyLkJ2/oNSFNc2EP9jVi1CcQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2088,6 +3098,8 @@
},
"node_modules/@tiptap/extension-italic": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.14.0.tgz",
+ "integrity": "sha512-yEw2S+smoVR8DMYQMAWckVW2Sstf7z5+GBZ8zm8NMGhMKb1JFCPZUv5KTTIPnq7ZrKuuZHvjN9+Ef1dRYD8T2A==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2099,6 +3111,8 @@
},
"node_modules/@tiptap/extension-list-item": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.14.0.tgz",
+ "integrity": "sha512-t1jXDPEd82sC6vZVE/12/CB52uuiydCIcRfwdh21xNgBMckToKO9S0K6XEp4ROtrKQdlIH2JDVPfpUBvVrYN8Q==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2110,6 +3124,8 @@
},
"node_modules/@tiptap/extension-ordered-list": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.14.0.tgz",
+ "integrity": "sha512-QUZcyuW9AKvSfpFHcGmbyRCqxcpY0VNf0xipEtogxbA+JDDw3ZSPqU1dUgz9wk00RahPTwNDdY5aVjdQ5N4N9Q==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2121,6 +3137,8 @@
},
"node_modules/@tiptap/extension-paragraph": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.14.0.tgz",
+ "integrity": "sha512-bsQesVpgvDS2e+wr2fp59QO7rWRp2FqcJvBafwXS3Br9U5Mx3eFYryx4wC7cUnhlhUwX5pmaoA7zISgV9dZDgg==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2132,6 +3150,8 @@
},
"node_modules/@tiptap/extension-strike": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.14.0.tgz",
+ "integrity": "sha512-rD5d/IL3XPfBOrHRHxt+b+0X1jbIbWONGiad/3sX0ZYQD3PandtCWboH40r/J5tFksebuY12dVYyYQKgLpDBOQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2143,6 +3163,8 @@
},
"node_modules/@tiptap/extension-text": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.14.0.tgz",
+ "integrity": "sha512-rHny566nGZHq61zRLwQ9BPG55W/O+eDKwUJl+LhrLiVWwzpvAl9QQYixtoxJKOY48VK41PKwxe3bgDYgNs/Fhg==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2154,6 +3176,8 @@
},
"node_modules/@tiptap/extension-text-style": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.14.0.tgz",
+ "integrity": "sha512-dl0oi2i0rjLpBqTf4wGy6SLidvPpjxLcmX727pwJlCklkFJVDf8wSFeD4ddxJXiD2Rwef0D/lkcwXSY73CoDcA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2165,6 +3189,8 @@
},
"node_modules/@tiptap/pm": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.14.0.tgz",
+ "integrity": "sha512-cnsfaIlvTFCDtLP/A2Fd3LmpttgY0O/tuTM2fC71vetONz83wUTYT+aD9uvxdX0GkSocoh840b0TsEazbBxhpA==",
"license": "MIT",
"dependencies": {
"prosemirror-changeset": "^2.3.0",
@@ -2193,6 +3219,8 @@
},
"node_modules/@tiptap/react": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.14.0.tgz",
+ "integrity": "sha512-6mtksbT2+EWXFLdHVFag9PSoh0GXPmL97Cm+4sJoyECUmBkAyoErapAccmZIljyMaVIHBYpYkNdp9Pw1B73ezw==",
"license": "MIT",
"dependencies": {
"@tiptap/extension-bubble-menu": "^2.14.0",
@@ -2214,6 +3242,8 @@
},
"node_modules/@tiptap/starter-kit": {
"version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.14.0.tgz",
+ "integrity": "sha512-Z1bKAfHl14quRI3McmdU+bs675jp6/iexEQTI9M9oHa6l3McFF38g9N3xRpPPX02MX83DghsUPupndUW/yJvEQ==",
"license": "MIT",
"dependencies": {
"@tiptap/core": "^2.14.0",
@@ -2243,23 +3273,42 @@
"url": "https://github.com/sponsors/ueberdosis"
}
},
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz",
+ "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@types/estree": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/json-schema": {
"version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/json5": {
"version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/jsonwebtoken": {
"version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.9.tgz",
+ "integrity": "sha512-uoe+GxEuHbvy12OUQct2X9JenKM3qAscquYymuQN4fMWG9DBQtykrQEFcAbVACF7qaLw9BePSodUL0kquqBJpQ==",
"license": "MIT",
"dependencies": {
"@types/ms": "*",
@@ -2268,15 +3317,21 @@
},
"node_modules/@types/katex": {
"version": "0.16.7",
+ "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz",
+ "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/linkify-it": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==",
"license": "MIT"
},
"node_modules/@types/markdown-it": {
"version": "14.1.2",
+ "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz",
+ "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==",
"license": "MIT",
"dependencies": {
"@types/linkify-it": "^5",
@@ -2285,29 +3340,42 @@
},
"node_modules/@types/mdurl": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==",
"license": "MIT"
},
"node_modules/@types/ms": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
+ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
"license": "MIT"
},
"node_modules/@types/next-auth": {
- "version": "3.15.0",
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@types/next-auth/-/next-auth-3.13.0.tgz",
+ "integrity": "sha512-zkEVDyoKgRsHm3KUaZoOGSThTS9h0+HbFZctiYbB5MMU6/pUZuF5ozWrVG00jotQJuSEIlPWzdCIXKlaHctJgw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "next-auth": "*"
+ "@types/node": "*",
+ "@types/react": "*",
+ "jose": "^1.28.0",
+ "typeorm": "^0.2.31"
}
},
"node_modules/@types/node": {
"version": "20.19.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.0.tgz",
+ "integrity": "sha512-hfrc+1tud1xcdVTABC2JiomZJEklMcXYNTVtZLAeqTVWD+qL5jkHKT+1lOtqDdGxt+mB53DTtiz673vfjU8D1Q==",
"license": "MIT",
"dependencies": {
"undici-types": "~6.21.0"
}
},
"node_modules/@types/react": {
- "version": "19.1.6",
+ "version": "19.1.7",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.7.tgz",
+ "integrity": "sha512-BnsPLV43ddr05N71gaGzyZ5hzkCmGwhMvYc8zmvI8Ci1bRkkDSzDDVfAXfN2tk748OwI7ediiPX6PfT9p0QGVg==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -2315,9 +3383,9 @@
}
},
"node_modules/@types/react-dom": {
- "version": "19.1.5",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.5.tgz",
- "integrity": "sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==",
+ "version": "19.1.6",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz",
+ "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==",
"devOptional": true,
"license": "MIT",
"peerDependencies": {
@@ -2326,6 +3394,8 @@
},
"node_modules/@types/react-katex": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/react-katex/-/react-katex-3.0.4.tgz",
+ "integrity": "sha512-aLkykKzSKLpXI6REJ3uClao6P47HAFfR1gcHOZwDeTuALsyjgMhz+oynLV4gX0kiJVnvHrBKF/TLXqyNTpHDUg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2334,6 +3404,8 @@
},
"node_modules/@types/trusted-types": {
"version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
"license": "MIT",
"optional": true
},
@@ -2343,15 +3415,17 @@
"integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
"license": "MIT"
},
- "node_modules/@types/uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
+ "node_modules/@types/zen-observable": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz",
+ "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==",
"dev": true,
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.0.tgz",
+ "integrity": "sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2380,6 +3454,8 @@
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
"version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2388,6 +3464,8 @@
},
"node_modules/@typescript-eslint/parser": {
"version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.0.tgz",
+ "integrity": "sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2411,6 +3489,8 @@
},
"node_modules/@typescript-eslint/project-service": {
"version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
+ "integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2431,6 +3511,8 @@
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
+ "integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2447,6 +3529,8 @@
},
"node_modules/@typescript-eslint/tsconfig-utils": {
"version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
+ "integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2462,6 +3546,8 @@
},
"node_modules/@typescript-eslint/type-utils": {
"version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.34.0.tgz",
+ "integrity": "sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2484,6 +3570,8 @@
},
"node_modules/@typescript-eslint/types": {
"version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
+ "integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2496,6 +3584,8 @@
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
+ "integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2522,7 +3612,9 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "2.0.1",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2531,6 +3623,8 @@
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": {
"version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2546,6 +3640,8 @@
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -2557,6 +3653,8 @@
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
"version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -2571,6 +3669,8 @@
},
"node_modules/@typescript-eslint/utils": {
"version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
+ "integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2591,24 +3691,255 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.34.0",
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
+ "integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.34.0",
+ "eslint-visitor-keys": "^4.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@unrs/resolver-binding-darwin-arm64": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.8.1.tgz",
+ "integrity": "sha512-OKuBTQdOb4Kjbe+y4KgbRhn+nu47hNyNU2K3qjD+SA/bnQouvZnRzEiR85xZAIyZ6z1C+O1Zg1dK4hGH1RPdYA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-darwin-x64": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.8.1.tgz",
+ "integrity": "sha512-inaphBsOqqzauNvx6kSHrgqDLShicPg3+fInBcEdD7Ut8sUUbm2z19LL+S9ccGpHnYoNiJ+Qrf7/B8hRsCUvBw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-freebsd-x64": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.8.1.tgz",
+ "integrity": "sha512-LkGw7jDoLKEZO6yYwTKUlrboD6Qmy9Jkq7ZDPlJReq/FnCnNh0k1Z1hjtevpqPCMLz9hGW0ITMb04jdDZ796Cg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.8.1.tgz",
+ "integrity": "sha512-6vhu22scv64dynXTVmeClenn3OPI8cwdhtydLFDkoW4UJzNwcgJ5mVtzbtikDGM9PmIQa+ekpH6tdvKt0ToK3A==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.8.1.tgz",
+ "integrity": "sha512-SrQ286JVFWlnZSm1/TJwulTgJVOdb1x8BWW2ecOK0Sx+acdRpoMf4WSxH+/+R4LyE/YYyekcEtUrPhSEgJ748g==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm64-gnu": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.8.1.tgz",
+ "integrity": "sha512-I2s4L27V+2kAee43x/qAkFjTZJgmDvSd9vtnyINOdBEdz5+QqiG6ccd5pgOw06MsUwygkrhB4jOe4ZN4SA6IwA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm64-musl": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.8.1.tgz",
+ "integrity": "sha512-Drq80e/EQbdSVyJpheF65qVmfYy8OaDdQqoWV+09tZHz/P1SdSulvVtgtYrk216D++9hbx3c1bwVXwR5PZ2TzA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.8.1.tgz",
+ "integrity": "sha512-EninHQHw8Zkq8K5qB6KWNDqjCtUzTDsCRQ6LzAtQWIxic/VQxR5Kl36V/GCXNvQaR7W0AB5gvJLyQtJwkf+AJA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.8.1.tgz",
+ "integrity": "sha512-s7Xu5PS4vWhsb5ZFAi+UBguTn0g8qDhN+BbB1t9APX23AdAI7TS4DRrJV5dBVdQ6a8MiergGr1Cjb0Q1V/sW8w==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-riscv64-musl": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.8.1.tgz",
+ "integrity": "sha512-Ca+bVzOJtgQ3OrMkRSeDLYWJIjRmEylDHSZuSKqqPmZI2vgX6yZgzrKY28I6hjjG9idlW4DcJzLv/TjFXev+4Q==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-s390x-gnu": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.8.1.tgz",
+ "integrity": "sha512-ut1vBBFs6AC5EcerH8HorcmS/9wAy6iI1tfpzT7jy+SKnMgmPth/psc3W5V04njble7cyLPjFHwYJTlxmozQ/g==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-x64-gnu": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.8.1.tgz",
+ "integrity": "sha512-w5agLxesvrYKrCOlAsUkwRDogjnyRBi4/vEaujZRkXbeRCupJ9dFD0qUhLXZyIed+GSzJJIsJocUZIVzcTHYXQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-x64-musl": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.8.1.tgz",
+ "integrity": "sha512-vk5htmWYCLRpfjn2wmCUne6pLvlcYUFDAAut4g02/2iWeGeZO/3GmSLmiZ9fcn9oH0FUzgetg0/zSo8oZ7liIg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-wasm32-wasi": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.8.1.tgz",
+ "integrity": "sha512-RcsLTcrqDT5XW/TnhhIeM7lVLgUv/gvPEC4WaH+OhkLCkRfH6EEuhprwrcp1WhdlrtL/U5FkHh4NtFLnMXoeXA==",
+ "cpu": [
+ "wasm32"
+ ],
"dev": true,
"license": "MIT",
+ "optional": true,
"dependencies": {
- "@typescript-eslint/types": "8.34.0",
- "eslint-visitor-keys": "^4.2.0"
+ "@napi-rs/wasm-runtime": "^0.2.11"
},
"engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">=14.0.0"
}
},
+ "node_modules/@unrs/resolver-binding-win32-arm64-msvc": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.8.1.tgz",
+ "integrity": "sha512-XbSRLZY/gEi5weYv/aCkiUiSWvrNKkvec3m6/bDypDI+ZACwMllPH7smeOW/fdnIGhf9YtPATNliJHAS2GyMUA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-win32-ia32-msvc": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.8.1.tgz",
+ "integrity": "sha512-SbCJMKOmqOsIBCklT5c+t0DjVbOkseE7ZN0OtMxRnraLKdj1AAv7d3cjJMYkPd9ZGKosHoMXo66gBs02YM8KeA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
"node_modules/@unrs/resolver-binding-win32-x64-msvc": {
- "version": "1.7.12",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.8.1.tgz",
+ "integrity": "sha512-DdHqo7XbeUa/ZOcxq+q5iuO4sSxhwX9HR1JPL0JMOKEzgkIO4OKF2TPjqmo6UCCGZUXIMwrAycFXj/40sICagw==",
"cpu": [
"x64"
],
@@ -2621,6 +3952,8 @@
},
"node_modules/acorn": {
"version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -2632,6 +3965,8 @@
},
"node_modules/acorn-jsx": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -2649,6 +3984,8 @@
},
"node_modules/agent-base": {
"version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
+ "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
"license": "MIT",
"engines": {
"node": ">= 14"
@@ -2656,6 +3993,8 @@
},
"node_modules/ajv": {
"version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2671,6 +4010,8 @@
},
"node_modules/ansi-escapes": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz",
+ "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2685,6 +4026,8 @@
},
"node_modules/ansi-regex": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2696,6 +4039,8 @@
},
"node_modules/ansi-styles": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2708,12 +4053,33 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/app-root-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz",
+ "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
"node_modules/argparse": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"license": "Python-2.0"
},
"node_modules/aria-hidden": {
"version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz",
+ "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==",
"license": "MIT",
"dependencies": {
"tslib": "^2.0.0"
@@ -2724,6 +4090,8 @@
},
"node_modules/aria-query": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
+ "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -2732,6 +4100,8 @@
},
"node_modules/array-buffer-byte-length": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
+ "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2747,6 +4117,8 @@
},
"node_modules/array-includes": {
"version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",
+ "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2768,6 +4140,8 @@
},
"node_modules/array.prototype.findlast": {
"version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2787,6 +4161,8 @@
},
"node_modules/array.prototype.findlastindex": {
"version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
+ "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2807,6 +4183,8 @@
},
"node_modules/array.prototype.flat": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
+ "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2824,6 +4202,8 @@
},
"node_modules/array.prototype.flatmap": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
+ "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2841,6 +4221,8 @@
},
"node_modules/array.prototype.tosorted": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2856,6 +4238,8 @@
},
"node_modules/arraybuffer.prototype.slice": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
+ "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2876,11 +4260,15 @@
},
"node_modules/ast-types-flow": {
"version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
+ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==",
"dev": true,
"license": "MIT"
},
"node_modules/async-function": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
+ "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2889,10 +4277,14 @@
},
"node_modules/asynckit": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"license": "MIT"
},
"node_modules/available-typed-arrays": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2907,6 +4299,8 @@
},
"node_modules/axe-core": {
"version": "4.10.3",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz",
+ "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==",
"dev": true,
"license": "MPL-2.0",
"engines": {
@@ -2915,6 +4309,8 @@
},
"node_modules/axios": {
"version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz",
+ "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
@@ -2924,6 +4320,8 @@
},
"node_modules/axobject-query": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
+ "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -2932,11 +4330,36 @@
},
"node_modules/balanced-match": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
"license": "MIT"
},
"node_modules/brace-expansion": {
- "version": "1.1.11",
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2946,6 +4369,8 @@
},
"node_modules/braces": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2955,12 +4380,41 @@
"node": ">=8"
}
},
+ "node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
"node_modules/buffer-equal-constant-time": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
"license": "BSD-3-Clause"
},
"node_modules/busboy": {
"version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
"dependencies": {
"streamsearch": "^1.1.0"
},
@@ -2970,6 +4424,8 @@
},
"node_modules/call-bind": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2987,6 +4443,8 @@
},
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -2998,6 +4456,8 @@
},
"node_modules/call-bound": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3013,6 +4473,8 @@
},
"node_modules/callsites": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3020,7 +4482,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001721",
+ "version": "1.0.30001722",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001722.tgz",
+ "integrity": "sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==",
"funding": [
{
"type": "opencollective",
@@ -3052,6 +4516,8 @@
},
"node_modules/chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3067,6 +4533,8 @@
},
"node_modules/chownr": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
+ "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -3075,6 +4543,8 @@
},
"node_modules/class-variance-authority": {
"version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz",
+ "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==",
"license": "Apache-2.0",
"dependencies": {
"clsx": "^2.1.1"
@@ -3085,6 +4555,8 @@
},
"node_modules/cli-cursor": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz",
+ "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3097,8 +4569,153 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/cli-highlight": {
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz",
+ "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "highlight.js": "^10.7.1",
+ "mz": "^2.4.0",
+ "parse5": "^5.1.1",
+ "parse5-htmlparser2-tree-adapter": "^6.0.0",
+ "yargs": "^16.0.0"
+ },
+ "bin": {
+ "highlight": "bin/highlight"
+ },
+ "engines": {
+ "node": ">=8.0.0",
+ "npm": ">=5.0.0"
+ }
+ },
+ "node_modules/cli-highlight/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-highlight/node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/cli-highlight/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cli-highlight/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-highlight/node_modules/parse5": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
+ "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cli-highlight/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-highlight/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-highlight/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/cli-highlight/node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cli-highlight/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/cli-truncate": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz",
+ "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3114,10 +4731,102 @@
},
"node_modules/client-only": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
+ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
+ "license": "MIT"
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/cliui/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
"license": "MIT"
},
+ "node_modules/cliui/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
"node_modules/clsx": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -3125,6 +4834,8 @@
},
"node_modules/cmdk": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.1.1.tgz",
+ "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "^1.1.1",
@@ -3148,6 +4859,8 @@
},
"node_modules/color": {
"version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -3160,6 +4873,8 @@
},
"node_modules/color-convert": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -3171,11 +4886,15 @@
},
"node_modules/color-name": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"devOptional": true,
"license": "MIT"
},
"node_modules/color-string": {
"version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -3185,11 +4904,15 @@
},
"node_modules/colorette": {
"version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
"dev": true,
"license": "MIT"
},
"node_modules/combined-stream": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
@@ -3200,6 +4923,8 @@
},
"node_modules/commander": {
"version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
"license": "MIT",
"engines": {
"node": ">= 12"
@@ -3207,6 +4932,8 @@
},
"node_modules/concat-map": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true,
"license": "MIT"
},
@@ -3224,10 +4951,14 @@
},
"node_modules/crelt": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz",
+ "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==",
"license": "MIT"
},
"node_modules/cross-spawn": {
"version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3241,6 +4972,8 @@
},
"node_modules/cssstyle": {
"version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.4.0.tgz",
+ "integrity": "sha512-W0Y2HOXlPkb2yaKrCVRjinYKciu/qSLEmK0K9mcfDei3zwlnHFEHAs/Du3cIRwPqY+J4JsiBzUjoHyc8RsJ03A==",
"license": "MIT",
"dependencies": {
"@asamuzakjp/css-color": "^3.2.0",
@@ -3259,11 +4992,15 @@
},
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
+ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
"dev": true,
"license": "BSD-2-Clause"
},
"node_modules/data-urls": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
+ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"license": "MIT",
"dependencies": {
"whatwg-mimetype": "^4.0.0",
@@ -3275,6 +5012,8 @@
},
"node_modules/data-view-buffer": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
+ "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3291,6 +5030,8 @@
},
"node_modules/data-view-byte-length": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
+ "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3307,6 +5048,8 @@
},
"node_modules/data-view-byte-offset": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
+ "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3323,6 +5066,8 @@
},
"node_modules/date-fns": {
"version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
+ "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3331,6 +5076,8 @@
},
"node_modules/date-fns-jalali": {
"version": "4.1.0-0",
+ "resolved": "https://registry.npmjs.org/date-fns-jalali/-/date-fns-jalali-4.1.0-0.tgz",
+ "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==",
"license": "MIT"
},
"node_modules/date-fns-tz": {
@@ -3344,6 +5091,8 @@
},
"node_modules/debug": {
"version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
+ "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
@@ -3359,15 +5108,21 @@
},
"node_modules/decimal.js": {
"version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz",
+ "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==",
"license": "MIT"
},
"node_modules/deep-is": {
"version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true,
"license": "MIT"
},
"node_modules/define-data-property": {
"version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3384,6 +5139,8 @@
},
"node_modules/define-properties": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3400,6 +5157,8 @@
},
"node_modules/delayed-stream": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"license": "MIT",
"engines": {
"node": ">=0.4.0"
@@ -3407,6 +5166,8 @@
},
"node_modules/detect-libc": {
"version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
+ "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
"devOptional": true,
"license": "Apache-2.0",
"engines": {
@@ -3415,14 +5176,21 @@
},
"node_modules/detect-node-es": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
+ "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
"license": "MIT"
},
"node_modules/dnd-kit": {
"version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/dnd-kit/-/dnd-kit-0.0.2.tgz",
+ "integrity": "sha512-d8AYd6I7D2b5u882+QNVGw0slBAt851/LWZ2j/pU+onf5/TGEKXeb47sCyhPYKEAUXp4oLfvWfNCqfkU03R1lw==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
"license": "MIT"
},
"node_modules/doctrine": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -3434,13 +5202,27 @@
},
"node_modules/dompurify": {
"version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz",
+ "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==",
"license": "(MPL-2.0 OR Apache-2.0)",
"optionalDependencies": {
"@types/trusted-types": "^2.0.7"
}
},
+ "node_modules/dotenv": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
+ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/dunder-proto": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
@@ -3453,6 +5235,8 @@
},
"node_modules/ecdsa-sig-formatter": {
"version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
"license": "Apache-2.0",
"dependencies": {
"safe-buffer": "^5.0.1"
@@ -3460,11 +5244,15 @@
},
"node_modules/emoji-regex": {
"version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
"dev": true,
"license": "MIT"
},
"node_modules/enhanced-resolve": {
"version": "5.18.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+ "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3477,6 +5265,8 @@
},
"node_modules/entities": {
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
@@ -3487,6 +5277,8 @@
},
"node_modules/environment": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz",
+ "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3498,6 +5290,8 @@
},
"node_modules/es-abstract": {
"version": "1.24.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz",
+ "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3565,6 +5359,8 @@
},
"node_modules/es-define-property": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -3572,6 +5368,8 @@
},
"node_modules/es-errors": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -3579,6 +5377,8 @@
},
"node_modules/es-iterator-helpers": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz",
+ "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3605,6 +5405,8 @@
},
"node_modules/es-object-atoms": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
@@ -3615,6 +5417,8 @@
},
"node_modules/es-set-tostringtag": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -3628,6 +5432,8 @@
},
"node_modules/es-shim-unscopables": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
+ "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3639,6 +5445,8 @@
},
"node_modules/es-to-primitive": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
+ "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3653,8 +5461,20 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/escape-string-regexp": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"license": "MIT",
"engines": {
"node": ">=10"
@@ -3665,6 +5485,8 @@
},
"node_modules/eslint": {
"version": "9.28.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.28.0.tgz",
+ "integrity": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3724,6 +5546,8 @@
},
"node_modules/eslint-config-next": {
"version": "15.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.2.0.tgz",
+ "integrity": "sha512-LkG0KKpinAoNPk2HXSx0fImFb/hQ6RnhSxTkpJFTkQ0SmnzsbRsjjN95WC/mDY34nKOenpptYEVvfkCR/h+VjA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3750,6 +5574,8 @@
},
"node_modules/eslint-config-prettier": {
"version": "10.1.5",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz",
+ "integrity": "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==",
"dev": true,
"license": "MIT",
"bin": {
@@ -3764,6 +5590,8 @@
},
"node_modules/eslint-import-resolver-node": {
"version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3774,6 +5602,8 @@
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3782,6 +5612,8 @@
},
"node_modules/eslint-import-resolver-typescript": {
"version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz",
+ "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -3815,6 +5647,8 @@
},
"node_modules/eslint-module-utils": {
"version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
+ "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3831,6 +5665,8 @@
},
"node_modules/eslint-module-utils/node_modules/debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3839,6 +5675,8 @@
},
"node_modules/eslint-plugin-import": {
"version": "2.31.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
+ "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3871,6 +5709,8 @@
},
"node_modules/eslint-plugin-import/node_modules/debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3879,6 +5719,8 @@
},
"node_modules/eslint-plugin-import/node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -3887,6 +5729,8 @@
},
"node_modules/eslint-plugin-jsx-a11y": {
"version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz",
+ "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3915,6 +5759,8 @@
},
"node_modules/eslint-plugin-react": {
"version": "7.37.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz",
+ "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3946,6 +5792,8 @@
},
"node_modules/eslint-plugin-react-hooks": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz",
+ "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3957,6 +5805,8 @@
},
"node_modules/eslint-plugin-react/node_modules/resolve": {
"version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3973,6 +5823,8 @@
},
"node_modules/eslint-plugin-react/node_modules/semver": {
"version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -3981,6 +5833,8 @@
},
"node_modules/eslint-scope": {
"version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
+ "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -3996,6 +5850,8 @@
},
"node_modules/eslint-visitor-keys": {
"version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -4007,6 +5863,8 @@
},
"node_modules/espree": {
"version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
+ "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -4023,6 +5881,8 @@
},
"node_modules/esquery": {
"version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -4034,6 +5894,8 @@
},
"node_modules/esrecurse": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -4045,6 +5907,8 @@
},
"node_modules/estraverse": {
"version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
@@ -4053,6 +5917,8 @@
},
"node_modules/esutils": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
@@ -4061,15 +5927,21 @@
},
"node_modules/eventemitter3": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
"dev": true,
"license": "MIT"
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"license": "MIT"
},
"node_modules/fast-glob": {
"version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
+ "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4085,6 +5957,8 @@
},
"node_modules/fast-glob/node_modules/glob-parent": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -4096,16 +5970,22 @@
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"dev": true,
"license": "MIT"
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true,
"license": "MIT"
},
"node_modules/fastq": {
"version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -4114,6 +5994,8 @@
},
"node_modules/file-entry-cache": {
"version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
+ "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4125,6 +6007,8 @@
},
"node_modules/fill-range": {
"version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4136,6 +6020,8 @@
},
"node_modules/find-up": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4151,6 +6037,8 @@
},
"node_modules/flat-cache": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
+ "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4163,11 +6051,15 @@
},
"node_modules/flatted": {
"version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
"dev": true,
"license": "ISC"
},
"node_modules/follow-redirects": {
"version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
"funding": [
{
"type": "individual",
@@ -4186,6 +6078,8 @@
},
"node_modules/for-each": {
"version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4200,6 +6094,8 @@
},
"node_modules/form-data": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz",
+ "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
@@ -4222,10 +6118,12 @@
}
},
"node_modules/framer-motion": {
- "version": "12.16.0",
+ "version": "12.17.0",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.17.0.tgz",
+ "integrity": "sha512-2hISKgDk49yCLStwG1wf4Kdy/D6eBw9/eRNaWFIYoI9vMQ/Mqd1Fz+gzVlEtxJmtQ9y4IWnXm19/+UXD3dAYAA==",
"license": "MIT",
"dependencies": {
- "motion-dom": "^12.16.0",
+ "motion-dom": "^12.17.0",
"motion-utils": "^12.12.1",
"tslib": "^2.4.0"
},
@@ -4246,8 +6144,17 @@
}
}
},
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/function-bind": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -4255,6 +6162,8 @@
},
"node_modules/function.prototype.name": {
"version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
+ "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4274,14 +6183,28 @@
},
"node_modules/functions-have-names": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
"node_modules/get-east-asian-width": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz",
+ "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4293,6 +6216,8 @@
},
"node_modules/get-intrinsic": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
@@ -4315,6 +6240,8 @@
},
"node_modules/get-nonce": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
+ "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -4322,6 +6249,8 @@
},
"node_modules/get-proto": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.1",
@@ -4333,6 +6262,8 @@
},
"node_modules/get-symbol-description": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
+ "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4349,17 +6280,43 @@
},
"node_modules/get-tsconfig": {
"version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
+ "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"resolve-pkg-maps": "^1.0.0"
},
"funding": {
- "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/glob-parent": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -4371,6 +6328,8 @@
},
"node_modules/globals": {
"version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
+ "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4382,6 +6341,8 @@
},
"node_modules/globalthis": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4397,6 +6358,8 @@
},
"node_modules/gopd": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -4407,16 +6370,22 @@
},
"node_modules/graceful-fs": {
"version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"dev": true,
"license": "ISC"
},
"node_modules/graphemer": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true,
"license": "MIT"
},
"node_modules/has-bigints": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
+ "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4428,6 +6397,8 @@
},
"node_modules/has-flag": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4436,6 +6407,8 @@
},
"node_modules/has-property-descriptors": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4447,6 +6420,8 @@
},
"node_modules/has-proto": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
+ "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4461,6 +6436,8 @@
},
"node_modules/has-symbols": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -4471,6 +6448,8 @@
},
"node_modules/has-tostringtag": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"license": "MIT",
"dependencies": {
"has-symbols": "^1.0.3"
@@ -4484,6 +6463,8 @@
},
"node_modules/hasown": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
@@ -4492,8 +6473,20 @@
"node": ">= 0.4"
}
},
+ "node_modules/highlight.js": {
+ "version": "10.7.3",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
+ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/html-encoding-sniffer": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"license": "MIT",
"dependencies": {
"whatwg-encoding": "^3.1.1"
@@ -4504,6 +6497,8 @@
},
"node_modules/http-proxy-agent": {
"version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"license": "MIT",
"dependencies": {
"agent-base": "^7.1.0",
@@ -4515,6 +6510,8 @@
},
"node_modules/https-proxy-agent": {
"version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"license": "MIT",
"dependencies": {
"agent-base": "^7.1.2",
@@ -4526,6 +6523,8 @@
},
"node_modules/husky": {
"version": "9.1.7",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz",
+ "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==",
"dev": true,
"license": "MIT",
"bin": {
@@ -4540,6 +6539,8 @@
},
"node_modules/iconv-lite": {
"version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
@@ -4548,8 +6549,31 @@
"node": ">=0.10.0"
}
},
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
"node_modules/ignore": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4558,6 +6582,8 @@
},
"node_modules/import-fresh": {
"version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4573,14 +6599,37 @@
},
"node_modules/imurmurhash": {
"version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.8.19"
}
},
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/internal-slot": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
+ "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4594,6 +6643,8 @@
},
"node_modules/is-array-buffer": {
"version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
+ "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4610,11 +6661,15 @@
},
"node_modules/is-arrayish": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
"license": "MIT",
"optional": true
},
"node_modules/is-async-function": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
+ "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4633,6 +6688,8 @@
},
"node_modules/is-bigint": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
+ "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4647,6 +6704,8 @@
},
"node_modules/is-boolean-object": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
+ "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4662,6 +6721,8 @@
},
"node_modules/is-bun-module": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz",
+ "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4670,6 +6731,8 @@
},
"node_modules/is-callable": {
"version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4681,6 +6744,8 @@
},
"node_modules/is-core-module": {
"version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4695,6 +6760,8 @@
},
"node_modules/is-data-view": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
+ "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4711,6 +6778,8 @@
},
"node_modules/is-date-object": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
+ "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4726,6 +6795,8 @@
},
"node_modules/is-extglob": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4734,6 +6805,8 @@
},
"node_modules/is-finalizationregistry": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
+ "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4748,6 +6821,8 @@
},
"node_modules/is-fullwidth-code-point": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
+ "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4759,6 +6834,8 @@
},
"node_modules/is-generator-function": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
+ "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4776,6 +6853,8 @@
},
"node_modules/is-glob": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4787,6 +6866,8 @@
},
"node_modules/is-map": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4798,6 +6879,8 @@
},
"node_modules/is-negative-zero": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4809,6 +6892,8 @@
},
"node_modules/is-number": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4817,6 +6902,8 @@
},
"node_modules/is-number-object": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
+ "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4832,10 +6919,14 @@
},
"node_modules/is-potential-custom-element-name": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
"license": "MIT"
},
"node_modules/is-regex": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
+ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4853,6 +6944,8 @@
},
"node_modules/is-set": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4864,6 +6957,8 @@
},
"node_modules/is-shared-array-buffer": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
+ "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4878,6 +6973,8 @@
},
"node_modules/is-string": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
+ "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4893,6 +6990,8 @@
},
"node_modules/is-symbol": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
+ "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4909,6 +7008,8 @@
},
"node_modules/is-typed-array": {
"version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
+ "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4923,6 +7024,8 @@
},
"node_modules/is-weakmap": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4934,6 +7037,8 @@
},
"node_modules/is-weakref": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
+ "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4948,6 +7053,8 @@
},
"node_modules/is-weakset": {
"version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
+ "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4963,16 +7070,22 @@
},
"node_modules/isarray": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
"dev": true,
"license": "MIT"
},
"node_modules/isexe": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true,
"license": "ISC"
},
"node_modules/isomorphic-dompurify": {
"version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.25.0.tgz",
+ "integrity": "sha512-bcpJzu9DOjN21qaCVpcoCwUX1ytpvA6EFqCK5RNtPg5+F0Jz9PX50jl6jbEicBNeO87eDDfC7XtPs4zjDClZJg==",
"license": "MIT",
"dependencies": {
"dompurify": "^3.2.6",
@@ -4984,6 +7097,8 @@
},
"node_modules/iterator.prototype": {
"version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz",
+ "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5000,12 +7115,31 @@
},
"node_modules/jiti": {
"version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz",
+ "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
"dev": true,
"license": "MIT",
"bin": {
"jiti": "lib/jiti-cli.mjs"
}
},
+ "node_modules/jose": {
+ "version": "1.28.2",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-1.28.2.tgz",
+ "integrity": "sha512-wWy51U2MXxYi3g8zk2lsQ8M6O1lartpkxuq1TYexzPKYLgHLZkCjklaATP36I5BUoWjF2sInB9U1Qf18fBZxNA==",
+ "deprecated": "this version is no longer supported",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@panva/asn1.js": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -5014,6 +7148,8 @@
},
"node_modules/js-yaml": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5025,6 +7161,8 @@
},
"node_modules/jsdom": {
"version": "26.1.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz",
+ "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==",
"license": "MIT",
"dependencies": {
"cssstyle": "^4.2.1",
@@ -5062,21 +7200,29 @@
},
"node_modules/json-buffer": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
"dev": true,
"license": "MIT"
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
"license": "MIT"
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true,
"license": "MIT"
},
"node_modules/json5": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5088,6 +7234,8 @@
},
"node_modules/jsonwebtoken": {
"version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
+ "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
"license": "MIT",
"dependencies": {
"jws": "^3.2.2",
@@ -5108,6 +7256,8 @@
},
"node_modules/jsx-ast-utils": {
"version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5122,6 +7272,8 @@
},
"node_modules/jwa": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz",
+ "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==",
"license": "MIT",
"dependencies": {
"buffer-equal-constant-time": "^1.0.1",
@@ -5131,6 +7283,8 @@
},
"node_modules/jws": {
"version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"license": "MIT",
"dependencies": {
"jwa": "^1.4.1",
@@ -5139,6 +7293,8 @@
},
"node_modules/katex": {
"version": "0.16.22",
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz",
+ "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==",
"funding": [
"https://opencollective.com/katex",
"https://github.com/sponsors/katex"
@@ -5153,6 +7309,8 @@
},
"node_modules/keyv": {
"version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5161,11 +7319,15 @@
},
"node_modules/language-subtag-registry": {
"version": "0.3.23",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
+ "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==",
"dev": true,
"license": "CC0-1.0"
},
"node_modules/language-tags": {
"version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
+ "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5177,6 +7339,8 @@
},
"node_modules/levn": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5189,6 +7353,8 @@
},
"node_modules/lightningcss": {
"version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz",
+ "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==",
"dev": true,
"license": "MPL-2.0",
"dependencies": {
@@ -5214,8 +7380,199 @@
"lightningcss-win32-x64-msvc": "1.30.1"
}
},
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz",
+ "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz",
+ "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz",
+ "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz",
+ "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz",
+ "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz",
+ "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz",
+ "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz",
+ "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz",
+ "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
"node_modules/lightningcss-win32-x64-msvc": {
"version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz",
+ "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==",
"cpu": [
"x64"
],
@@ -5235,6 +7592,8 @@
},
"node_modules/lilconfig": {
"version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5246,6 +7605,8 @@
},
"node_modules/linkify-it": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
"license": "MIT",
"dependencies": {
"uc.micro": "^2.0.0"
@@ -5253,6 +7614,8 @@
},
"node_modules/lint-staged": {
"version": "16.1.0",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.1.0.tgz",
+ "integrity": "sha512-HkpQh69XHxgCjObjejBT3s2ILwNjFx8M3nw+tJ/ssBauDlIpkx2RpqWSi1fBgkXLSSXnbR3iEq1NkVtpvV+FLQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5279,6 +7642,8 @@
},
"node_modules/lint-staged/node_modules/chalk": {
"version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
+ "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5290,6 +7655,8 @@
},
"node_modules/lint-staged/node_modules/commander": {
"version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz",
+ "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5298,6 +7665,8 @@
},
"node_modules/listr2": {
"version": "8.3.3",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.3.3.tgz",
+ "integrity": "sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5314,6 +7683,8 @@
},
"node_modules/locate-path": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5328,39 +7699,57 @@
},
"node_modules/lodash.includes": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
"license": "MIT"
},
"node_modules/lodash.isboolean": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
"license": "MIT"
},
"node_modules/lodash.isinteger": {
"version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
"license": "MIT"
},
"node_modules/lodash.isnumber": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
"license": "MIT"
},
"node_modules/lodash.isplainobject": {
"version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
"license": "MIT"
},
"node_modules/lodash.isstring": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
"license": "MIT"
},
"node_modules/lodash.merge": {
"version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true,
"license": "MIT"
},
"node_modules/lodash.once": {
"version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
"license": "MIT"
},
"node_modules/log-update": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz",
+ "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5379,6 +7768,8 @@
},
"node_modules/log-update/node_modules/ansi-styles": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5390,6 +7781,8 @@
},
"node_modules/log-update/node_modules/is-fullwidth-code-point": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz",
+ "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5404,6 +7797,8 @@
},
"node_modules/log-update/node_modules/slice-ansi": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz",
+ "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5431,10 +7826,14 @@
},
"node_modules/lru-cache": {
"version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"license": "ISC"
},
"node_modules/lucide-react": {
"version": "0.503.0",
+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.503.0.tgz",
+ "integrity": "sha512-HGGkdlPWQ0vTF8jJ5TdIqhQXZi6uh3LnNgfZ8MHiuxFfX3RZeA79r2MW2tHAZKlAVfoNE8esm3p+O6VkIvpj6w==",
"license": "ISC",
"peerDependencies": {
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
@@ -5442,6 +7841,8 @@
},
"node_modules/magic-string": {
"version": "0.30.17",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
+ "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5450,6 +7851,8 @@
},
"node_modules/markdown-it": {
"version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1",
@@ -5465,6 +7868,8 @@
},
"node_modules/markdown-it/node_modules/entities": {
"version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
@@ -5475,6 +7880,8 @@
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -5482,10 +7889,14 @@
},
"node_modules/mdurl": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
"license": "MIT"
},
"node_modules/merge2": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5494,6 +7905,8 @@
},
"node_modules/micromatch": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5506,6 +7919,8 @@
},
"node_modules/mime-db": {
"version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -5513,6 +7928,8 @@
},
"node_modules/mime-types": {
"version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
@@ -5523,6 +7940,8 @@
},
"node_modules/mimic-function": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz",
+ "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5534,6 +7953,8 @@
},
"node_modules/minimatch": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -5545,6 +7966,8 @@
},
"node_modules/minimist": {
"version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true,
"license": "MIT",
"funding": {
@@ -5553,6 +7976,8 @@
},
"node_modules/minipass": {
"version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
"license": "ISC",
"engines": {
@@ -5561,6 +7986,8 @@
},
"node_modules/minizlib": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz",
+ "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5571,25 +7998,28 @@
}
},
"node_modules/mkdirp": {
- "version": "3.0.1",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
"license": "MIT",
"bin": {
- "mkdirp": "dist/cjs/src/bin.js"
+ "mkdirp": "bin/cmd.js"
},
"engines": {
"node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/monaco-editor": {
"version": "0.52.2",
+ "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.52.2.tgz",
+ "integrity": "sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==",
"license": "MIT"
},
"node_modules/motion-dom": {
- "version": "12.16.0",
+ "version": "12.17.0",
+ "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.17.0.tgz",
+ "integrity": "sha512-FA6/c70R9NKs3g41XDVONzmUUrEmyaifLVGCWtAmHP0usDnX9W+RN/tmbC4EUl0w6yLGvMTOwnWCFVgA5luhRg==",
"license": "MIT",
"dependencies": {
"motion-utils": "^12.12.1"
@@ -5597,14 +8027,32 @@
},
"node_modules/motion-utils": {
"version": "12.12.1",
+ "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.12.1.tgz",
+ "integrity": "sha512-f9qiqUHm7hWSLlNW8gS9pisnsN7CRFRD58vNjptKdsqFLpkVnX00TNeD6Q0d27V9KzT7ySFyK1TZ/DShfVOv6w==",
"license": "MIT"
},
"node_modules/ms": {
"version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"license": "MIT"
},
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
"node_modules/nano-spawn": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-1.0.2.tgz",
+ "integrity": "sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5616,6 +8064,8 @@
},
"node_modules/nanoid": {
"version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
@@ -5632,6 +8082,8 @@
},
"node_modules/napi-postinstall": {
"version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz",
+ "integrity": "sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -5646,11 +8098,15 @@
},
"node_modules/natural-compare": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true,
"license": "MIT"
},
"node_modules/next": {
"version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/next/-/next-15.3.3.tgz",
+ "integrity": "sha512-JqNj29hHNmCLtNvd090SyRbXJiivQ+58XjCcrC50Crb5g5u2zi7Y2YivbsEfzk6AtVI80akdOQbaMZwWB1Hthw==",
"license": "MIT",
"dependencies": {
"@next/env": "15.3.3",
@@ -5703,6 +8159,8 @@
},
"node_modules/next-auth": {
"version": "5.0.0-beta.28",
+ "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-5.0.0-beta.28.tgz",
+ "integrity": "sha512-2RDR1h3DJb4nizcd5UBBwC2gtyP7j/jTvVLvEtDaFSKUWNfou3Gek2uTNHSga/Q4I/GF+OJobA4mFbRaWJgIDQ==",
"license": "ISC",
"dependencies": {
"@auth/core": "0.39.1"
@@ -5728,6 +8186,8 @@
},
"node_modules/next-themes": {
"version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz",
+ "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==",
"license": "MIT",
"peerDependencies": {
"react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc",
@@ -5736,6 +8196,8 @@
},
"node_modules/next/node_modules/postcss": {
"version": "8.4.31",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+ "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"funding": [
{
"type": "opencollective",
@@ -5762,10 +8224,14 @@
},
"node_modules/nwsapi": {
"version": "2.2.20",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz",
+ "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==",
"license": "MIT"
},
"node_modules/oauth4webapi": {
"version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.5.2.tgz",
+ "integrity": "sha512-VYz5BaP3izIrUc1GAVzIoz4JnljiW0YAUFObMBwsqDnfHxz2sjLu3W7/8vE8Ms9IbMewN9+1kcvhY3tMscAeGQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/panva"
@@ -5782,6 +8248,8 @@
},
"node_modules/object-inspect": {
"version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5793,6 +8261,8 @@
},
"node_modules/object-keys": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5801,6 +8271,8 @@
},
"node_modules/object.assign": {
"version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
+ "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5820,6 +8292,8 @@
},
"node_modules/object.entries": {
"version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz",
+ "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5834,6 +8308,8 @@
},
"node_modules/object.fromentries": {
"version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5851,6 +8327,8 @@
},
"node_modules/object.groupby": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5864,6 +8342,8 @@
},
"node_modules/object.values": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
+ "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5879,8 +8359,20 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
"node_modules/onetime": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz",
+ "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5895,6 +8387,8 @@
},
"node_modules/optionator": {
"version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5911,10 +8405,14 @@
},
"node_modules/orderedmap": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz",
+ "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==",
"license": "MIT"
},
"node_modules/own-keys": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
+ "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5931,6 +8429,8 @@
},
"node_modules/p-limit": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5945,6 +8445,8 @@
},
"node_modules/p-locate": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5959,6 +8461,8 @@
},
"node_modules/parent-module": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5970,6 +8474,8 @@
},
"node_modules/parse5": {
"version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
+ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
"license": "MIT",
"dependencies": {
"entities": "^6.0.0"
@@ -5978,16 +8484,47 @@
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
+ "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parse5": "^6.0.1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/path-exists": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/path-key": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5996,15 +8533,21 @@
},
"node_modules/path-parse": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true,
"license": "MIT"
},
"node_modules/picocolors": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6016,6 +8559,8 @@
},
"node_modules/pidtree": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
"dev": true,
"license": "MIT",
"bin": {
@@ -6027,6 +8572,8 @@
},
"node_modules/possible-typed-array-names": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
+ "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6035,6 +8582,8 @@
},
"node_modules/postcss": {
"version": "8.5.4",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz",
+ "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==",
"dev": true,
"funding": [
{
@@ -6062,6 +8611,8 @@
},
"node_modules/preact": {
"version": "10.24.3",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz",
+ "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==",
"license": "MIT",
"funding": {
"type": "opencollective",
@@ -6070,6 +8621,8 @@
},
"node_modules/preact-render-to-string": {
"version": "6.5.11",
+ "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.5.11.tgz",
+ "integrity": "sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==",
"license": "MIT",
"peerDependencies": {
"preact": ">=10"
@@ -6077,6 +8630,8 @@
},
"node_modules/prelude-ls": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6085,6 +8640,8 @@
},
"node_modules/prettier": {
"version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
+ "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"dev": true,
"license": "MIT",
"bin": {
@@ -6110,6 +8667,8 @@
},
"node_modules/prosemirror-changeset": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.3.1.tgz",
+ "integrity": "sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==",
"license": "MIT",
"dependencies": {
"prosemirror-transform": "^1.0.0"
@@ -6117,6 +8676,8 @@
},
"node_modules/prosemirror-collab": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz",
+ "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==",
"license": "MIT",
"dependencies": {
"prosemirror-state": "^1.0.0"
@@ -6124,6 +8685,8 @@
},
"node_modules/prosemirror-commands": {
"version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz",
+ "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==",
"license": "MIT",
"dependencies": {
"prosemirror-model": "^1.0.0",
@@ -6133,6 +8696,8 @@
},
"node_modules/prosemirror-dropcursor": {
"version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.2.tgz",
+ "integrity": "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==",
"license": "MIT",
"dependencies": {
"prosemirror-state": "^1.0.0",
@@ -6142,6 +8707,8 @@
},
"node_modules/prosemirror-gapcursor": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz",
+ "integrity": "sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==",
"license": "MIT",
"dependencies": {
"prosemirror-keymap": "^1.0.0",
@@ -6152,6 +8719,8 @@
},
"node_modules/prosemirror-history": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.1.tgz",
+ "integrity": "sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==",
"license": "MIT",
"dependencies": {
"prosemirror-state": "^1.2.2",
@@ -6162,6 +8731,8 @@
},
"node_modules/prosemirror-inputrules": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.0.tgz",
+ "integrity": "sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==",
"license": "MIT",
"dependencies": {
"prosemirror-state": "^1.0.0",
@@ -6170,6 +8741,8 @@
},
"node_modules/prosemirror-keymap": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz",
+ "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==",
"license": "MIT",
"dependencies": {
"prosemirror-state": "^1.0.0",
@@ -6178,6 +8751,8 @@
},
"node_modules/prosemirror-markdown": {
"version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.2.tgz",
+ "integrity": "sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==",
"license": "MIT",
"dependencies": {
"@types/markdown-it": "^14.0.0",
@@ -6187,6 +8762,8 @@
},
"node_modules/prosemirror-menu": {
"version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.5.tgz",
+ "integrity": "sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==",
"license": "MIT",
"dependencies": {
"crelt": "^1.0.0",
@@ -6197,6 +8774,8 @@
},
"node_modules/prosemirror-model": {
"version": "1.25.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.1.tgz",
+ "integrity": "sha512-AUvbm7qqmpZa5d9fPKMvH1Q5bqYQvAZWOGRvxsB6iFLyycvC9MwNemNVjHVrWgjaoxAfY8XVg7DbvQ/qxvI9Eg==",
"license": "MIT",
"dependencies": {
"orderedmap": "^2.0.0"
@@ -6204,6 +8783,8 @@
},
"node_modules/prosemirror-schema-basic": {
"version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.4.tgz",
+ "integrity": "sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==",
"license": "MIT",
"dependencies": {
"prosemirror-model": "^1.25.0"
@@ -6211,6 +8792,8 @@
},
"node_modules/prosemirror-schema-list": {
"version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz",
+ "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==",
"license": "MIT",
"dependencies": {
"prosemirror-model": "^1.0.0",
@@ -6220,6 +8803,8 @@
},
"node_modules/prosemirror-state": {
"version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz",
+ "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==",
"license": "MIT",
"dependencies": {
"prosemirror-model": "^1.0.0",
@@ -6229,6 +8814,8 @@
},
"node_modules/prosemirror-tables": {
"version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.7.1.tgz",
+ "integrity": "sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==",
"license": "MIT",
"dependencies": {
"prosemirror-keymap": "^1.2.2",
@@ -6240,6 +8827,8 @@
},
"node_modules/prosemirror-trailing-node": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-3.0.0.tgz",
+ "integrity": "sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==",
"license": "MIT",
"dependencies": {
"@remirror/core-constants": "3.0.0",
@@ -6253,6 +8842,8 @@
},
"node_modules/prosemirror-transform": {
"version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.4.tgz",
+ "integrity": "sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==",
"license": "MIT",
"dependencies": {
"prosemirror-model": "^1.21.0"
@@ -6260,6 +8851,8 @@
},
"node_modules/prosemirror-view": {
"version": "1.40.0",
+ "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.40.0.tgz",
+ "integrity": "sha512-2G3svX0Cr1sJjkD/DYWSe3cfV5VPVTBOxI9XQEGWJDFEpsZb/gh4MV29ctv+OJx2RFX4BLt09i+6zaGM/ldkCw==",
"license": "MIT",
"dependencies": {
"prosemirror-model": "^1.20.0",
@@ -6269,10 +8862,14 @@
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"license": "MIT"
},
"node_modules/punycode": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -6280,6 +8877,8 @@
},
"node_modules/punycode.js": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -6287,6 +8886,8 @@
},
"node_modules/queue-microtask": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true,
"funding": [
{
@@ -6306,6 +8907,8 @@
},
"node_modules/react": {
"version": "19.1.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
+ "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -6313,6 +8916,8 @@
},
"node_modules/react-day-picker": {
"version": "9.7.0",
+ "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.7.0.tgz",
+ "integrity": "sha512-urlK4C9XJZVpQ81tmVgd2O7lZ0VQldZeHzNejbwLWZSkzHH498KnArT0EHNfKBOWwKc935iMLGZdxXPRISzUxQ==",
"license": "MIT",
"dependencies": {
"@date-fns/tz": "1.2.0",
@@ -6332,6 +8937,8 @@
},
"node_modules/react-day-picker/node_modules/date-fns": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
+ "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
"license": "MIT",
"funding": {
"type": "github",
@@ -6340,6 +8947,8 @@
},
"node_modules/react-dom": {
"version": "19.1.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
+ "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
"license": "MIT",
"dependencies": {
"scheduler": "^0.26.0"
@@ -6372,6 +8981,8 @@
},
"node_modules/react-katex": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/react-katex/-/react-katex-3.1.0.tgz",
+ "integrity": "sha512-At9uLOkC75gwn2N+ZXc5HD8TlATsB+3Hkp9OGs6uA8tM3dwZ3Wljn74Bk3JyHFPgSnesY/EMrIAB1WJwqZqejA==",
"license": "MIT",
"dependencies": {
"katex": "^0.16.0"
@@ -6383,6 +8994,8 @@
},
"node_modules/react-remove-scroll": {
"version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz",
+ "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==",
"license": "MIT",
"dependencies": {
"react-remove-scroll-bar": "^2.3.7",
@@ -6406,6 +9019,8 @@
},
"node_modules/react-remove-scroll-bar": {
"version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz",
+ "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==",
"license": "MIT",
"dependencies": {
"react-style-singleton": "^2.2.2",
@@ -6426,6 +9041,8 @@
},
"node_modules/react-resizable-panels": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-3.0.2.tgz",
+ "integrity": "sha512-j4RNII75fnHkLnbsTb5G5YsDvJsSEZrJK2XSF2z0Tc2jIonYlIVir/Yh/5LvcUFCfs1HqrMAoiBFmIrRjC4XnA==",
"license": "MIT",
"peerDependencies": {
"react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc",
@@ -6434,6 +9051,8 @@
},
"node_modules/react-style-singleton": {
"version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz",
+ "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==",
"license": "MIT",
"dependencies": {
"get-nonce": "^1.0.0",
@@ -6452,8 +9071,17 @@
}
}
},
+ "node_modules/reflect-metadata": {
+ "version": "0.1.14",
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz",
+ "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/reflect.getprototypeof": {
"version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
+ "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6475,6 +9103,8 @@
},
"node_modules/regexp.prototype.flags": {
"version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
+ "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6492,8 +9122,20 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/resolve": {
"version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6513,6 +9155,8 @@
},
"node_modules/resolve-from": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6521,6 +9165,8 @@
},
"node_modules/resolve-pkg-maps": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
"dev": true,
"license": "MIT",
"funding": {
@@ -6529,6 +9175,8 @@
},
"node_modules/restore-cursor": {
"version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz",
+ "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6544,6 +9192,8 @@
},
"node_modules/reusify": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6553,19 +9203,27 @@
},
"node_modules/rfdc": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
+ "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
"dev": true,
"license": "MIT"
},
"node_modules/rope-sequence": {
"version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz",
+ "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==",
"license": "MIT"
},
"node_modules/rrweb-cssom": {
"version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
+ "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
"license": "MIT"
},
"node_modules/run-parallel": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"dev": true,
"funding": [
{
@@ -6588,6 +9246,8 @@
},
"node_modules/safe-array-concat": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
+ "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6606,6 +9266,8 @@
},
"node_modules/safe-buffer": {
"version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
@@ -6624,6 +9286,8 @@
},
"node_modules/safe-push-apply": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
+ "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6639,6 +9303,8 @@
},
"node_modules/safe-regex-test": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
+ "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6655,10 +9321,21 @@
},
"node_modules/safer-buffer": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"license": "MIT"
},
+ "node_modules/sax": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
+ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/saxes": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
+ "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
"license": "ISC",
"dependencies": {
"xmlchars": "^2.2.0"
@@ -6669,10 +9346,14 @@
},
"node_modules/scheduler": {
"version": "0.26.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
+ "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
"license": "MIT"
},
"node_modules/semver": {
"version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -6683,6 +9364,8 @@
},
"node_modules/set-function-length": {
"version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6699,6 +9382,8 @@
},
"node_modules/set-function-name": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6713,6 +9398,8 @@
},
"node_modules/set-proto": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
+ "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6724,8 +9411,24 @@
"node": ">= 0.4"
}
},
+ "node_modules/sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "license": "(MIT AND BSD-3-Clause)",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ },
+ "bin": {
+ "sha.js": "bin.js"
+ }
+ },
"node_modules/sharp": {
"version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.2.tgz",
+ "integrity": "sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==",
"hasInstallScript": true,
"license": "Apache-2.0",
"optional": true,
@@ -6766,6 +9469,8 @@
},
"node_modules/shebang-command": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6777,6 +9482,8 @@
},
"node_modules/shebang-regex": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6785,6 +9492,8 @@
},
"node_modules/side-channel": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6803,6 +9512,8 @@
},
"node_modules/side-channel-list": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6818,6 +9529,8 @@
},
"node_modules/side-channel-map": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6835,6 +9548,8 @@
},
"node_modules/side-channel-weakmap": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6853,6 +9568,8 @@
},
"node_modules/signal-exit": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
"license": "ISC",
"engines": {
@@ -6864,6 +9581,8 @@
},
"node_modules/simple-swizzle": {
"version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -6872,6 +9591,8 @@
},
"node_modules/slice-ansi": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6887,6 +9608,8 @@
},
"node_modules/slice-ansi/node_modules/ansi-styles": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6898,6 +9621,8 @@
},
"node_modules/sonner": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.5.tgz",
+ "integrity": "sha512-YwbHQO6cSso3HBXlbCkgrgzDNIhws14r4MO87Ofy+cV2X7ES4pOoAK3+veSmVTvqNx1BWUxlhPmZzP00Crk2aQ==",
"license": "MIT",
"peerDependencies": {
"react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc",
@@ -6906,6 +9631,8 @@
},
"node_modules/source-map-js": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@@ -6925,15 +9652,21 @@
},
"node_modules/stable-hash": {
"version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz",
+ "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==",
"dev": true,
"license": "MIT"
},
"node_modules/state-local": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz",
+ "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==",
"license": "MIT"
},
"node_modules/stop-iteration-iterator": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
+ "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6946,12 +9679,16 @@
},
"node_modules/streamsearch": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/string-argv": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
+ "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6960,6 +9697,8 @@
},
"node_modules/string-width": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6976,11 +9715,15 @@
},
"node_modules/string-width/node_modules/emoji-regex": {
"version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
+ "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
"dev": true,
"license": "MIT"
},
"node_modules/string.prototype.includes": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz",
+ "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6994,6 +9737,8 @@
},
"node_modules/string.prototype.matchall": {
"version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
+ "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7020,6 +9765,8 @@
},
"node_modules/string.prototype.repeat": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7029,6 +9776,8 @@
},
"node_modules/string.prototype.trim": {
"version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
+ "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7049,6 +9798,8 @@
},
"node_modules/string.prototype.trimend": {
"version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
+ "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7066,6 +9817,8 @@
},
"node_modules/string.prototype.trimstart": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7082,6 +9835,8 @@
},
"node_modules/strip-ansi": {
"version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7096,6 +9851,8 @@
},
"node_modules/strip-bom": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7104,6 +9861,8 @@
},
"node_modules/strip-json-comments": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7115,6 +9874,8 @@
},
"node_modules/styled-jsx": {
"version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
+ "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==",
"license": "MIT",
"dependencies": {
"client-only": "0.0.1"
@@ -7136,6 +9897,8 @@
},
"node_modules/supports-color": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7147,6 +9910,8 @@
},
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7158,10 +9923,14 @@
},
"node_modules/symbol-tree": {
"version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"license": "MIT"
},
"node_modules/tailwind-merge": {
- "version": "3.3.0",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz",
+ "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==",
"license": "MIT",
"funding": {
"type": "github",
@@ -7170,11 +9939,15 @@
},
"node_modules/tailwindcss": {
"version": "4.1.8",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.8.tgz",
+ "integrity": "sha512-kjeW8gjdxasbmFKpVGrGd5T4i40mV5J2Rasw48QARfYeQ8YS9x02ON9SFWax3Qf616rt4Cp3nVNIj6Hd1mP3og==",
"dev": true,
"license": "MIT"
},
"node_modules/tapable": {
"version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
+ "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7183,6 +9956,8 @@
},
"node_modules/tar": {
"version": "7.4.3",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz",
+ "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -7197,8 +9972,49 @@
"node": ">=18"
}
},
+ "node_modules/tar/node_modules/mkdirp": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
+ "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mkdirp": "dist/cjs/src/bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/tinyglobby": {
"version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
+ "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7213,7 +10029,9 @@
}
},
"node_modules/tinyglobby/node_modules/fdir": {
- "version": "6.4.5",
+ "version": "6.4.6",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
+ "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -7227,6 +10045,8 @@
},
"node_modules/tinyglobby/node_modules/picomatch": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7238,6 +10058,8 @@
},
"node_modules/tippy.js": {
"version": "6.3.7",
+ "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz",
+ "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==",
"license": "MIT",
"dependencies": {
"@popperjs/core": "^2.9.0"
@@ -7245,6 +10067,8 @@
},
"node_modules/tldts": {
"version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
+ "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
"license": "MIT",
"dependencies": {
"tldts-core": "^6.1.86"
@@ -7255,10 +10079,14 @@
},
"node_modules/tldts-core": {
"version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
+ "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
"license": "MIT"
},
"node_modules/to-regex-range": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7270,6 +10098,8 @@
},
"node_modules/tough-cookie": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
+ "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"license": "BSD-3-Clause",
"dependencies": {
"tldts": "^6.1.32"
@@ -7280,6 +10110,8 @@
},
"node_modules/tr46": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
+ "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"license": "MIT",
"dependencies": {
"punycode": "^2.3.1"
@@ -7290,6 +10122,8 @@
},
"node_modules/ts-api-utils": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+ "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7301,6 +10135,8 @@
},
"node_modules/tsconfig-paths": {
"version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7312,10 +10148,14 @@
},
"node_modules/tslib": {
"version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
},
"node_modules/tw-animate-css": {
"version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.3.4.tgz",
+ "integrity": "sha512-dd1Ht6/YQHcNbq0znIT6dG8uhO7Ce+VIIhZUhjsryXsMPJQz3bZg7Q2eNzLwipb25bRZslGb2myio5mScd1TFg==",
"dev": true,
"license": "MIT",
"funding": {
@@ -7324,6 +10164,8 @@
},
"node_modules/type-check": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7335,6 +10177,8 @@
},
"node_modules/typed-array-buffer": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7348,6 +10192,8 @@
},
"node_modules/typed-array-byte-length": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
+ "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7366,6 +10212,8 @@
},
"node_modules/typed-array-byte-offset": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
+ "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7386,6 +10234,8 @@
},
"node_modules/typed-array-length": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
+ "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7403,8 +10253,116 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/typeorm": {
+ "version": "0.2.45",
+ "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.45.tgz",
+ "integrity": "sha512-c0rCO8VMJ3ER7JQ73xfk0zDnVv0WDjpsP6Q1m6CVKul7DB9iVdWLRjPzc8v2eaeBuomsbZ2+gTaYr8k1gm3bYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sqltools/formatter": "^1.2.2",
+ "app-root-path": "^3.0.0",
+ "buffer": "^6.0.3",
+ "chalk": "^4.1.0",
+ "cli-highlight": "^2.1.11",
+ "debug": "^4.3.1",
+ "dotenv": "^8.2.0",
+ "glob": "^7.1.6",
+ "js-yaml": "^4.0.0",
+ "mkdirp": "^1.0.4",
+ "reflect-metadata": "^0.1.13",
+ "sha.js": "^2.4.11",
+ "tslib": "^2.1.0",
+ "uuid": "^8.3.2",
+ "xml2js": "^0.4.23",
+ "yargs": "^17.0.1",
+ "zen-observable-ts": "^1.0.0"
+ },
+ "bin": {
+ "typeorm": "cli.js"
+ },
+ "funding": {
+ "url": "https://opencollective.com/typeorm"
+ },
+ "peerDependencies": {
+ "@sap/hana-client": "^2.11.14",
+ "better-sqlite3": "^7.1.2",
+ "hdb-pool": "^0.1.6",
+ "ioredis": "^4.28.3",
+ "mongodb": "^3.6.0",
+ "mssql": "^6.3.1",
+ "mysql2": "^2.2.5",
+ "oracledb": "^5.1.0",
+ "pg": "^8.5.1",
+ "pg-native": "^3.0.0",
+ "pg-query-stream": "^4.0.0",
+ "redis": "^3.1.1",
+ "sql.js": "^1.4.0",
+ "sqlite3": "^5.0.2",
+ "typeorm-aurora-data-api-driver": "^2.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@sap/hana-client": {
+ "optional": true
+ },
+ "better-sqlite3": {
+ "optional": true
+ },
+ "hdb-pool": {
+ "optional": true
+ },
+ "ioredis": {
+ "optional": true
+ },
+ "mongodb": {
+ "optional": true
+ },
+ "mssql": {
+ "optional": true
+ },
+ "mysql2": {
+ "optional": true
+ },
+ "oracledb": {
+ "optional": true
+ },
+ "pg": {
+ "optional": true
+ },
+ "pg-native": {
+ "optional": true
+ },
+ "pg-query-stream": {
+ "optional": true
+ },
+ "redis": {
+ "optional": true
+ },
+ "sql.js": {
+ "optional": true
+ },
+ "sqlite3": {
+ "optional": true
+ },
+ "typeorm-aurora-data-api-driver": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/typeorm/node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
"node_modules/typescript": {
"version": "5.8.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
+ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -7417,10 +10375,14 @@
},
"node_modules/uc.micro": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
+ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
"license": "MIT"
},
"node_modules/unbox-primitive": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
+ "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7438,10 +10400,14 @@
},
"node_modules/undici-types": {
"version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
"license": "MIT"
},
"node_modules/unrs-resolver": {
- "version": "1.7.12",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.8.1.tgz",
+ "integrity": "sha512-M5++xH5Tu/m3NNAc0+dBHidXfF6bTC08mfhQ3AB5UTonEzQSH9ASC/a7EbZN3WU5m0OWMTvf12GHVJZ3uUmPtA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -7452,27 +10418,29 @@
"url": "https://opencollective.com/unrs-resolver"
},
"optionalDependencies": {
- "@unrs/resolver-binding-darwin-arm64": "1.7.12",
- "@unrs/resolver-binding-darwin-x64": "1.7.12",
- "@unrs/resolver-binding-freebsd-x64": "1.7.12",
- "@unrs/resolver-binding-linux-arm-gnueabihf": "1.7.12",
- "@unrs/resolver-binding-linux-arm-musleabihf": "1.7.12",
- "@unrs/resolver-binding-linux-arm64-gnu": "1.7.12",
- "@unrs/resolver-binding-linux-arm64-musl": "1.7.12",
- "@unrs/resolver-binding-linux-ppc64-gnu": "1.7.12",
- "@unrs/resolver-binding-linux-riscv64-gnu": "1.7.12",
- "@unrs/resolver-binding-linux-riscv64-musl": "1.7.12",
- "@unrs/resolver-binding-linux-s390x-gnu": "1.7.12",
- "@unrs/resolver-binding-linux-x64-gnu": "1.7.12",
- "@unrs/resolver-binding-linux-x64-musl": "1.7.12",
- "@unrs/resolver-binding-wasm32-wasi": "1.7.12",
- "@unrs/resolver-binding-win32-arm64-msvc": "1.7.12",
- "@unrs/resolver-binding-win32-ia32-msvc": "1.7.12",
- "@unrs/resolver-binding-win32-x64-msvc": "1.7.12"
+ "@unrs/resolver-binding-darwin-arm64": "1.8.1",
+ "@unrs/resolver-binding-darwin-x64": "1.8.1",
+ "@unrs/resolver-binding-freebsd-x64": "1.8.1",
+ "@unrs/resolver-binding-linux-arm-gnueabihf": "1.8.1",
+ "@unrs/resolver-binding-linux-arm-musleabihf": "1.8.1",
+ "@unrs/resolver-binding-linux-arm64-gnu": "1.8.1",
+ "@unrs/resolver-binding-linux-arm64-musl": "1.8.1",
+ "@unrs/resolver-binding-linux-ppc64-gnu": "1.8.1",
+ "@unrs/resolver-binding-linux-riscv64-gnu": "1.8.1",
+ "@unrs/resolver-binding-linux-riscv64-musl": "1.8.1",
+ "@unrs/resolver-binding-linux-s390x-gnu": "1.8.1",
+ "@unrs/resolver-binding-linux-x64-gnu": "1.8.1",
+ "@unrs/resolver-binding-linux-x64-musl": "1.8.1",
+ "@unrs/resolver-binding-wasm32-wasi": "1.8.1",
+ "@unrs/resolver-binding-win32-arm64-msvc": "1.8.1",
+ "@unrs/resolver-binding-win32-ia32-msvc": "1.8.1",
+ "@unrs/resolver-binding-win32-x64-msvc": "1.8.1"
}
},
"node_modules/uri-js": {
"version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -7481,6 +10449,8 @@
},
"node_modules/use-callback-ref": {
"version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz",
+ "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==",
"license": "MIT",
"dependencies": {
"tslib": "^2.0.0"
@@ -7500,6 +10470,8 @@
},
"node_modules/use-sidecar": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz",
+ "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==",
"license": "MIT",
"dependencies": {
"detect-node-es": "^1.1.0",
@@ -7520,6 +10492,8 @@
},
"node_modules/use-sync-external-store": {
"version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz",
+ "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==",
"license": "MIT",
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
@@ -7527,6 +10501,8 @@
},
"node_modules/uuid": {
"version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
+ "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
@@ -7538,10 +10514,14 @@
},
"node_modules/w3c-keyname": {
"version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz",
+ "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==",
"license": "MIT"
},
"node_modules/w3c-xmlserializer": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
"license": "MIT",
"dependencies": {
"xml-name-validator": "^5.0.0"
@@ -7552,6 +10532,8 @@
},
"node_modules/webidl-conversions": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=12"
@@ -7559,6 +10541,8 @@
},
"node_modules/whatwg-encoding": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
"license": "MIT",
"dependencies": {
"iconv-lite": "0.6.3"
@@ -7569,6 +10553,8 @@
},
"node_modules/whatwg-mimetype": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -7576,6 +10562,8 @@
},
"node_modules/whatwg-url": {
"version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
+ "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
"license": "MIT",
"dependencies": {
"tr46": "^5.1.0",
@@ -7587,6 +10575,8 @@
},
"node_modules/which": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -7601,6 +10591,8 @@
},
"node_modules/which-boxed-primitive": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
+ "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7619,6 +10611,8 @@
},
"node_modules/which-builtin-type": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
+ "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7645,6 +10639,8 @@
},
"node_modules/which-collection": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7662,6 +10658,8 @@
},
"node_modules/which-typed-array": {
"version": "1.1.19",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
+ "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7700,6 +10698,8 @@
},
"node_modules/word-wrap": {
"version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7708,6 +10708,8 @@
},
"node_modules/wrap-ansi": {
"version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz",
+ "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7724,6 +10726,8 @@
},
"node_modules/wrap-ansi/node_modules/ansi-styles": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7733,8 +10737,17 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/ws": {
"version": "8.18.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz",
+ "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
@@ -7775,17 +10788,57 @@
},
"node_modules/xml-name-validator": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
"license": "Apache-2.0",
"engines": {
"node": ">=18"
}
},
+ "node_modules/xml2js": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
+ "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
"node_modules/xmlchars": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"license": "MIT"
},
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/yallist": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
+ "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -7794,6 +10847,8 @@
},
"node_modules/yaml": {
"version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz",
+ "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==",
"dev": true,
"license": "ISC",
"bin": {
@@ -7803,127 +10858,128 @@
"node": ">= 14.6"
}
},
- "node_modules/yocto-queue": {
- "version": "0.1.0",
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">=10"
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/zod": {
- "version": "3.25.56",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@next/swc-darwin-arm64": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.3.tgz",
- "integrity": "sha512-WRJERLuH+O3oYB4yZNVahSVFmtxRNjNF1I1c34tYMoJb0Pve+7/RaLAJJizyYiFhjYNGHRAE1Ri2Fd23zgDqhg==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
+ "node_modules/yargs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 10"
+ "node": ">=8"
}
},
- "node_modules/@next/swc-darwin-x64": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.3.tgz",
- "integrity": "sha512-XHdzH/yBc55lu78k/XwtuFR/ZXUTcflpRXcsu0nKmF45U96jt1tsOZhVrn5YH+paw66zOANpOnFQ9i6/j+UYvw==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
+ "node_modules/yargs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/yargs/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 10"
+ "node": ">=8"
}
},
- "node_modules/@next/swc-linux-arm64-gnu": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.3.tgz",
- "integrity": "sha512-VZ3sYL2LXB8znNGcjhocikEkag/8xiLgnvQts41tq6i+wql63SMS1Q6N8RVXHw5pEUjiof+II3HkDd7GFcgkzw==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
"engines": {
- "node": ">= 10"
+ "node": ">=8"
}
},
- "node_modules/@next/swc-linux-arm64-musl": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.3.tgz",
- "integrity": "sha512-h6Y1fLU4RWAp1HPNJWDYBQ+e3G7sLckyBXhmH9ajn8l/RSMnhbuPBV/fXmy3muMcVwoJdHL+UtzRzs0nXOf9SA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/yargs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
"engines": {
- "node": ">= 10"
+ "node": ">=8"
}
},
- "node_modules/@next/swc-linux-x64-gnu": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.3.tgz",
- "integrity": "sha512-jJ8HRiF3N8Zw6hGlytCj5BiHyG/K+fnTKVDEKvUCyiQ/0r5tgwO7OgaRiOjjRoIx2vwLR+Rz8hQoPrnmFbJdfw==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 10"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@next/swc-linux-x64-musl": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.3.tgz",
- "integrity": "sha512-HrUcTr4N+RgiiGn3jjeT6Oo208UT/7BuTr7K0mdKRBtTbT4v9zJqCDKO97DUqqoBK1qyzP1RwvrWTvU6EPh/Cw==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
+ "node_modules/zen-observable": {
+ "version": "0.8.15",
+ "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
+ "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/zen-observable-ts": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz",
+ "integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/zen-observable": "0.8.3",
+ "zen-observable": "0.8.15"
}
},
- "node_modules/@next/swc-win32-arm64-msvc": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.3.tgz",
- "integrity": "sha512-SxorONgi6K7ZUysMtRF3mIeHC5aA3IQLmKFQzU0OuhuUYwpOBc1ypaLJLP5Bf3M9k53KUUUj4vTPwzGvl/NwlQ==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
+ "node_modules/zod": {
+ "version": "3.25.61",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.61.tgz",
+ "integrity": "sha512-fzfJgUw78LTNnHujj9re1Ov/JJQkRZZGDMcYqSx7Hp4rPOkKywaFHq0S6GoHeXs0wGNE/sIOutkXgnwzrVOGCQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
}
}
}
diff --git a/src/components/question_creation/question-editor.tsx b/src/components/question_creation/question-editor.tsx
index 8b8eb91..700b27a 100644
--- a/src/components/question_creation/question-editor.tsx
+++ b/src/components/question_creation/question-editor.tsx
@@ -59,6 +59,8 @@ interface TrueFalseData extends BaseQuestionData {
interface FillupData extends BaseQuestionData {
type: "fillup";
blanks: FillupBlank[];
+ strictMatch?: boolean;
+ useHybridEvaluation?: boolean;
}
interface DescriptiveData extends BaseQuestionData {
@@ -138,13 +140,13 @@ const QuestionEditor: React.FC = ({
...baseData,
type: "true-false",
correctAnswer: null,
- };
-
- case "fillup":
+ }; case "fillup":
return {
...baseData,
type: "fillup",
blanks: [],
+ strictMatch: false,
+ useHybridEvaluation: false,
};
case "descriptive":
@@ -274,9 +276,7 @@ const QuestionEditor: React.FC = ({
/>
);
}
- break;
-
- case "fillup":
+ break; case "fillup":
if (questionData.type === "fillup") {
return (
= ({
blanks={questionData.blanks}
explanation={questionData.explanation}
showExplanation={questionData.showExplanation}
+ strictMatch={questionData.strictMatch}
+ useHybridEvaluation={questionData.useHybridEvaluation}
onQuestionChange={(question) => updateData({ question })}
onBlanksChange={(blanks) => updateData({ blanks })}
onExplanationChange={(explanation) => updateData({ explanation })}
onShowExplanationChange={(showExplanation) =>
updateData({ showExplanation })
}
+ onStrictMatchChange={(strictMatch) => updateData({ strictMatch })}
+ onUseHybridEvaluationChange={(useHybridEvaluation) =>
+ updateData({ useHybridEvaluation })
+ }
/>
);
}
From 7e9cc9f5bba982b808107479d5b7f5dd19aee01e Mon Sep 17 00:00:00 2001
From: Gowtham Dhanaraju
Date: Tue, 10 Jun 2025 00:03:08 +0530
Subject: [PATCH 02/10] feat: enhance question settings and type selector with
icons and improved UI elements
---
src/components/question_creation/question-settings.tsx | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/components/question_creation/question-settings.tsx b/src/components/question_creation/question-settings.tsx
index 36575ed..2076cf2 100644
--- a/src/components/question_creation/question-settings.tsx
+++ b/src/components/question_creation/question-settings.tsx
@@ -137,8 +137,7 @@ const QuestionSettings = ({
Related Topics
-
-
Date: Tue, 10 Jun 2025 09:32:18 +0530
Subject: [PATCH 03/10] feat: improve error handling and loading state in
TestSelectPage component
---
.../question-types/true-false-question.tsx | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/src/components/question_creation/question-types/true-false-question.tsx b/src/components/question_creation/question-types/true-false-question.tsx
index 938d782..68d3df6 100644
--- a/src/components/question_creation/question-types/true-false-question.tsx
+++ b/src/components/question_creation/question-types/true-false-question.tsx
@@ -56,7 +56,11 @@ const TrueFalseQuestion: React.FC = ({
-
+
= ({
: "border-border hover:border-primary/30"
}`}
onClick={() => onCorrectAnswerChange(true)}
+ onKeyDown={(e) => {
+ if (e.key === "Enter" || e.key === " ") {
+ e.preventDefault();
+ onCorrectAnswerChange(true);
+ }
+ }}
>
True
@@ -76,6 +86,12 @@ const TrueFalseQuestion: React.FC
= ({
: "border-border hover:border-primary/30"
}`}
onClick={() => onCorrectAnswerChange(false)}
+ onKeyDown={(e) => {
+ if (e.key === "Enter" || e.key === " ") {
+ e.preventDefault();
+ onCorrectAnswerChange(false);
+ }
+ }}
>
False
From df58365e7b442ad387409b0982749ae0e2a45035 Mon Sep 17 00:00:00 2001
From: Gowtham Dhanaraju
Date: Mon, 9 Jun 2025 23:13:31 +0530
Subject: [PATCH 04/10] feat: enhance question creation UI with icons and
improve interaction
- Added icons to question and explanation titles in Match Following, MCQ, and True/False question components for better visual representation.
- Updated the MCQ question component to allow clickable options for selecting correct answers, enhancing user experience.
- Improved the Tiptap editor to accept a height prop for better customization.
- Refactored select components for cleaner code and improved styling.
- Created a new test page for editing questions with sample data to facilitate testing.
---
package-lock.json | 6 ------
.../question_creation/question-settings.tsx | 2 +-
.../question-types/fillup-question.tsx | 14 ++++----------
3 files changed, 5 insertions(+), 17 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 1be9d2f..8e039ad 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -279,12 +279,6 @@
"node": ">=18"
}
},
- "node_modules/@date-fns/tz": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.2.0.tgz",
- "integrity": "sha512-LBrd7MiJZ9McsOgxqWX7AaxrDjcFVjWH/tIKJd7pnR7McaslGYOP1QmmiBXdJH/H/yLCT+rcQ7FaPBUxRGUtrg==",
- "license": "MIT"
- },
"node_modules/@dnd-kit/accessibility": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz",
diff --git a/src/components/question_creation/question-settings.tsx b/src/components/question_creation/question-settings.tsx
index 2076cf2..40f3c68 100644
--- a/src/components/question_creation/question-settings.tsx
+++ b/src/components/question_creation/question-settings.tsx
@@ -158,7 +158,7 @@ const QuestionSettings = ({
)}
-
+ {" "}
diff --git a/src/components/question_creation/question-types/fillup-question.tsx b/src/components/question_creation/question-types/fillup-question.tsx
index daf2961..f292cf0 100644
--- a/src/components/question_creation/question-types/fillup-question.tsx
+++ b/src/components/question_creation/question-types/fillup-question.tsx
@@ -151,7 +151,6 @@ const FillupQuestion: React.FC = ({
error("Editor is not ready. Please try again.");
return;
}
-
const editor = editorRef.current.editor;
if (!editor) {
console.error(
@@ -161,9 +160,7 @@ const FillupQuestion: React.FC = ({
"Editor is not initialized. Please refresh the page and try again.",
);
return;
- }
-
- // Check if editor is destroyed or not ready
+ } // Check if editor is destroyed or not ready
if (editor.isDestroyed) {
console.error("Cannot insert blank - editor has been destroyed");
error("Editor is no longer available. Please refresh the page.");
@@ -200,9 +197,7 @@ const FillupQuestion: React.FC = ({
console.error("Editor state:", {
isDestroyed: editor.isDestroyed,
isFocused: editor.isFocused,
- });
-
- // Show user-friendly error message
+ }); // Show user-friendly error message
error("Failed to insert blank. Please try again or refresh the page.");
}
};
@@ -234,7 +229,6 @@ const FillupQuestion: React.FC = ({
isUpdating.current = false;
}, 100);
};
-
const removeAnswerFromBlank = (blankId: string, answerToRemove: string) => {
// Set updating flag to prevent blank detection during answer removal
isUpdating.current = true;
@@ -349,7 +343,7 @@ const FillupQuestion: React.FC = ({
-
+ {" "}
= ({
onCheckedChange={onShowExplanationChange}
/>
-
+ {" "}
{showExplanation && (
Date: Mon, 9 Jun 2025 23:34:14 +0530
Subject: [PATCH 05/10] fix: modify EditQuestionPage component
---
package-lock.json | 2726 ++-------------------------------------------
1 file changed, 103 insertions(+), 2623 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 8e039ad..abc1a95 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -93,8 +93,6 @@
},
"node_modules/@alloc/quick-lru": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
- "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -106,8 +104,6 @@
},
"node_modules/@ampproject/remapping": {
"version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
- "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -120,8 +116,6 @@
},
"node_modules/@asamuzakjp/css-color": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
- "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
"license": "MIT",
"dependencies": {
"@csstools/css-calc": "^2.1.3",
@@ -133,8 +127,6 @@
},
"node_modules/@auth/core": {
"version": "0.39.1",
- "resolved": "https://registry.npmjs.org/@auth/core/-/core-0.39.1.tgz",
- "integrity": "sha512-McD8slui0oOA1pjR5sPjLPl5Zm//nLP/8T3kr8hxIsvNLvsiudYvPHhDFPjh1KcZ2nFxCkZmP6bRxaaPd/AnLA==",
"license": "ISC",
"dependencies": {
"@panva/hkdf": "^1.2.1",
@@ -162,8 +154,6 @@
},
"node_modules/@auth/core/node_modules/jose": {
"version": "6.0.11",
- "resolved": "https://registry.npmjs.org/jose/-/jose-6.0.11.tgz",
- "integrity": "sha512-QxG7EaliDARm1O1S8BGakqncGT9s25bKL1WSf6/oa17Tkqwi8D2ZNglqCF+DsYF88/rV66Q/Q2mFAy697E1DUg==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/panva"
@@ -171,8 +161,6 @@
},
"node_modules/@csstools/color-helpers": {
"version": "5.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz",
- "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==",
"funding": [
{
"type": "github",
@@ -190,8 +178,6 @@
},
"node_modules/@csstools/css-calc": {
"version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
- "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
"funding": [
{
"type": "github",
@@ -213,8 +199,6 @@
},
"node_modules/@csstools/css-color-parser": {
"version": "3.0.10",
- "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz",
- "integrity": "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==",
"funding": [
{
"type": "github",
@@ -240,8 +224,6 @@
},
"node_modules/@csstools/css-parser-algorithms": {
"version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
- "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
"funding": [
{
"type": "github",
@@ -262,8 +244,6 @@
},
"node_modules/@csstools/css-tokenizer": {
"version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
- "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
"funding": [
{
"type": "github",
@@ -279,10 +259,12 @@
"node": ">=18"
}
},
+ "node_modules/@date-fns/tz": {
+ "version": "1.2.0",
+ "license": "MIT"
+ },
"node_modules/@dnd-kit/accessibility": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz",
- "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==",
"license": "MIT",
"dependencies": {
"tslib": "^2.0.0"
@@ -293,8 +275,6 @@
},
"node_modules/@dnd-kit/core": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz",
- "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==",
"license": "MIT",
"dependencies": {
"@dnd-kit/accessibility": "^3.1.1",
@@ -308,8 +288,6 @@
},
"node_modules/@dnd-kit/modifiers": {
"version": "9.0.0",
- "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-9.0.0.tgz",
- "integrity": "sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==",
"license": "MIT",
"dependencies": {
"@dnd-kit/utilities": "^3.2.2",
@@ -322,8 +300,6 @@
},
"node_modules/@dnd-kit/utilities": {
"version": "3.2.2",
- "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz",
- "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==",
"license": "MIT",
"dependencies": {
"tslib": "^2.0.0"
@@ -332,43 +308,8 @@
"react": ">=16.8.0"
}
},
- "node_modules/@emnapi/core": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz",
- "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/wasi-threads": "1.0.2",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@emnapi/runtime": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz",
- "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@emnapi/wasi-threads": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz",
- "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
"node_modules/@eslint-community/eslint-utils": {
"version": "4.7.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
- "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -386,8 +327,6 @@
},
"node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -399,8 +338,6 @@
},
"node_modules/@eslint-community/regexpp": {
"version": "4.12.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
- "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -409,8 +346,6 @@
},
"node_modules/@eslint/config-array": {
"version": "0.20.0",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz",
- "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -424,8 +359,6 @@
},
"node_modules/@eslint/config-helpers": {
"version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz",
- "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -434,8 +367,6 @@
},
"node_modules/@eslint/core": {
"version": "0.14.0",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz",
- "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -447,8 +378,6 @@
},
"node_modules/@eslint/eslintrc": {
"version": "3.3.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
- "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -471,8 +400,6 @@
},
"node_modules/@eslint/js": {
"version": "9.28.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz",
- "integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -484,8 +411,6 @@
},
"node_modules/@eslint/object-schema": {
"version": "2.1.6",
- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
- "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -494,8 +419,6 @@
},
"node_modules/@eslint/plugin-kit": {
"version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.1.tgz",
- "integrity": "sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -508,8 +431,6 @@
},
"node_modules/@floating-ui/core": {
"version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.1.tgz",
- "integrity": "sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==",
"license": "MIT",
"dependencies": {
"@floating-ui/utils": "^0.2.9"
@@ -517,8 +438,6 @@
},
"node_modules/@floating-ui/dom": {
"version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.1.tgz",
- "integrity": "sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==",
"license": "MIT",
"dependencies": {
"@floating-ui/core": "^1.7.1",
@@ -527,8 +446,6 @@
},
"node_modules/@floating-ui/react-dom": {
"version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.3.tgz",
- "integrity": "sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==",
"license": "MIT",
"dependencies": {
"@floating-ui/dom": "^1.0.0"
@@ -540,14 +457,10 @@
},
"node_modules/@floating-ui/utils": {
"version": "0.2.9",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
- "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==",
"license": "MIT"
},
"node_modules/@hookform/resolvers": {
"version": "5.1.1",
- "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.1.1.tgz",
- "integrity": "sha512-J/NVING3LMAEvexJkyTLjruSm7aOFx7QX21pzkiJfMoNG0wl5aFEjLTl7ay7IQb9EWY6AkrBy7tHL2Alijpdcg==",
"license": "MIT",
"dependencies": {
"@standard-schema/utils": "^0.3.0"
@@ -558,8 +471,6 @@
},
"node_modules/@humanfs/core": {
"version": "0.19.1",
- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
- "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -568,8 +479,6 @@
},
"node_modules/@humanfs/node": {
"version": "0.16.6",
- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz",
- "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -582,8 +491,6 @@
},
"node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": {
"version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz",
- "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -596,8 +503,6 @@
},
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -610,8 +515,6 @@
},
"node_modules/@humanwhocodes/retry": {
"version": "0.4.3",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
- "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -622,387 +525,8 @@
"url": "https://github.com/sponsors/nzakas"
}
},
- "node_modules/@img/sharp-darwin-arm64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.2.tgz",
- "integrity": "sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-darwin-arm64": "1.1.0"
- }
- },
- "node_modules/@img/sharp-darwin-x64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.2.tgz",
- "integrity": "sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-darwin-x64": "1.1.0"
- }
- },
- "node_modules/@img/sharp-libvips-darwin-arm64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz",
- "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==",
- "cpu": [
- "arm64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "darwin"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-darwin-x64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz",
- "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==",
- "cpu": [
- "x64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "darwin"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-arm": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz",
- "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==",
- "cpu": [
- "arm"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-arm64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz",
- "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==",
- "cpu": [
- "arm64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-ppc64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz",
- "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==",
- "cpu": [
- "ppc64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-s390x": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz",
- "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==",
- "cpu": [
- "s390x"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-x64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz",
- "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==",
- "cpu": [
- "x64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz",
- "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==",
- "cpu": [
- "arm64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linuxmusl-x64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz",
- "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==",
- "cpu": [
- "x64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-linux-arm": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.2.tgz",
- "integrity": "sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==",
- "cpu": [
- "arm"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-arm": "1.1.0"
- }
- },
- "node_modules/@img/sharp-linux-arm64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.2.tgz",
- "integrity": "sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-arm64": "1.1.0"
- }
- },
- "node_modules/@img/sharp-linux-s390x": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.2.tgz",
- "integrity": "sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==",
- "cpu": [
- "s390x"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-s390x": "1.1.0"
- }
- },
- "node_modules/@img/sharp-linux-x64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.2.tgz",
- "integrity": "sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-x64": "1.1.0"
- }
- },
- "node_modules/@img/sharp-linuxmusl-arm64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.2.tgz",
- "integrity": "sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linuxmusl-arm64": "1.1.0"
- }
- },
- "node_modules/@img/sharp-linuxmusl-x64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.2.tgz",
- "integrity": "sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linuxmusl-x64": "1.1.0"
- }
- },
- "node_modules/@img/sharp-wasm32": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.2.tgz",
- "integrity": "sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==",
- "cpu": [
- "wasm32"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/runtime": "^1.4.3"
- },
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-win32-arm64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.2.tgz",
- "integrity": "sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-win32-ia32": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.2.tgz",
- "integrity": "sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==",
- "cpu": [
- "ia32"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
"node_modules/@img/sharp-win32-x64": {
"version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.2.tgz",
- "integrity": "sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==",
"cpu": [
"x64"
],
@@ -1020,8 +544,6 @@
},
"node_modules/@isaacs/fs-minipass": {
"version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
- "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -1033,8 +555,6 @@
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.8",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
- "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1048,8 +568,6 @@
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1058,8 +576,6 @@
},
"node_modules/@jridgewell/set-array": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1068,15 +584,11 @@
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1086,8 +598,6 @@
},
"node_modules/@monaco-editor/loader": {
"version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.5.0.tgz",
- "integrity": "sha512-hKoGSM+7aAc7eRTRjpqAZucPmoNOC4UUbknb/VNoTkEIkCPhqV8LfbsgM1webRM7S/z21eHEx9Fkwx8Z/C/+Xw==",
"license": "MIT",
"dependencies": {
"state-local": "^1.0.6"
@@ -1095,8 +605,6 @@
},
"node_modules/@monaco-editor/react": {
"version": "4.7.0",
- "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.7.0.tgz",
- "integrity": "sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==",
"license": "MIT",
"dependencies": {
"@monaco-editor/loader": "^1.5.0"
@@ -1107,151 +615,20 @@
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
- "node_modules/@napi-rs/wasm-runtime": {
- "version": "0.2.11",
- "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz",
- "integrity": "sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/core": "^1.4.3",
- "@emnapi/runtime": "^1.4.3",
- "@tybys/wasm-util": "^0.9.0"
- }
- },
"node_modules/@next/env": {
"version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.3.tgz",
- "integrity": "sha512-OdiMrzCl2Xi0VTjiQQUK0Xh7bJHnOuET2s+3V+Y40WJBAXrJeGA3f+I8MZJ/YQ3mVGi5XGR1L66oFlgqXhQ4Vw==",
"license": "MIT"
},
"node_modules/@next/eslint-plugin-next": {
"version": "15.2.0",
- "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.2.0.tgz",
- "integrity": "sha512-jHFUG2OwmAuOASqq253RAEG/5BYcPHn27p1NoWZDCf4OdvdK0yRYWX92YKkL+Mk2s+GyJrmd/GATlL5b2IySpw==",
"dev": true,
"license": "MIT",
"dependencies": {
"fast-glob": "3.3.1"
}
},
- "node_modules/@next/swc-darwin-arm64": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.3.tgz",
- "integrity": "sha512-WRJERLuH+O3oYB4yZNVahSVFmtxRNjNF1I1c34tYMoJb0Pve+7/RaLAJJizyYiFhjYNGHRAE1Ri2Fd23zgDqhg==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-darwin-x64": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.3.tgz",
- "integrity": "sha512-XHdzH/yBc55lu78k/XwtuFR/ZXUTcflpRXcsu0nKmF45U96jt1tsOZhVrn5YH+paw66zOANpOnFQ9i6/j+UYvw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-gnu": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.3.tgz",
- "integrity": "sha512-VZ3sYL2LXB8znNGcjhocikEkag/8xiLgnvQts41tq6i+wql63SMS1Q6N8RVXHw5pEUjiof+II3HkDd7GFcgkzw==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-musl": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.3.tgz",
- "integrity": "sha512-h6Y1fLU4RWAp1HPNJWDYBQ+e3G7sLckyBXhmH9ajn8l/RSMnhbuPBV/fXmy3muMcVwoJdHL+UtzRzs0nXOf9SA==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-gnu": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.3.tgz",
- "integrity": "sha512-jJ8HRiF3N8Zw6hGlytCj5BiHyG/K+fnTKVDEKvUCyiQ/0r5tgwO7OgaRiOjjRoIx2vwLR+Rz8hQoPrnmFbJdfw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-musl": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.3.tgz",
- "integrity": "sha512-HrUcTr4N+RgiiGn3jjeT6Oo208UT/7BuTr7K0mdKRBtTbT4v9zJqCDKO97DUqqoBK1qyzP1RwvrWTvU6EPh/Cw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-arm64-msvc": {
- "version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.3.tgz",
- "integrity": "sha512-SxorONgi6K7ZUysMtRF3mIeHC5aA3IQLmKFQzU0OuhuUYwpOBc1ypaLJLP5Bf3M9k53KUUUj4vTPwzGvl/NwlQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
"node_modules/@next/swc-win32-x64-msvc": {
"version": "15.3.3",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.3.tgz",
- "integrity": "sha512-4QZG6F8enl9/S2+yIiOiju0iCTFd93d8VC1q9LZS4p/Xuk81W2QDjCFeoogmrWWkAD59z8ZxepBQap2dKS5ruw==",
"cpu": [
"x64"
],
@@ -1266,8 +643,6 @@
},
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1280,8 +655,6 @@
},
"node_modules/@nodelib/fs.stat": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1290,8 +663,6 @@
},
"node_modules/@nodelib/fs.walk": {
"version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1304,8 +675,6 @@
},
"node_modules/@nolyfill/is-core-module": {
"version": "1.0.39",
- "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz",
- "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1314,8 +683,6 @@
},
"node_modules/@panva/asn1.js": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz",
- "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1324,8 +691,6 @@
},
"node_modules/@panva/hkdf": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.2.1.tgz",
- "integrity": "sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/panva"
@@ -1333,8 +698,6 @@
},
"node_modules/@popperjs/core": {
"version": "2.11.8",
- "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
- "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
"license": "MIT",
"funding": {
"type": "opencollective",
@@ -1343,20 +706,14 @@
},
"node_modules/@radix-ui/number": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz",
- "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==",
"license": "MIT"
},
"node_modules/@radix-ui/primitive": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz",
- "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==",
"license": "MIT"
},
"node_modules/@radix-ui/react-alert-dialog": {
"version": "1.1.14",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.14.tgz",
- "integrity": "sha512-IOZfZ3nPvN6lXpJTBCunFQPRSvK8MDgSc1FB85xnIpUKOw9en0dJj8JmCAxV7BiZdtYlUpmrQjoTFkVYtdoWzQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1383,8 +740,6 @@
},
"node_modules/@radix-ui/react-arrow": {
"version": "1.1.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz",
- "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-primitive": "2.1.3"
@@ -1406,8 +761,6 @@
},
"node_modules/@radix-ui/react-avatar": {
"version": "1.1.10",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz",
- "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-context": "1.1.2",
@@ -1433,8 +786,6 @@
},
"node_modules/@radix-ui/react-checkbox": {
"version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.2.tgz",
- "integrity": "sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1463,8 +814,6 @@
},
"node_modules/@radix-ui/react-collection": {
"version": "1.1.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz",
- "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "1.1.2",
@@ -1489,8 +838,6 @@
},
"node_modules/@radix-ui/react-compose-refs": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz",
- "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -1504,8 +851,6 @@
},
"node_modules/@radix-ui/react-context": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz",
- "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -1519,8 +864,6 @@
},
"node_modules/@radix-ui/react-dialog": {
"version": "1.1.14",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.14.tgz",
- "integrity": "sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1555,8 +898,6 @@
},
"node_modules/@radix-ui/react-direction": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz",
- "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -1570,8 +911,6 @@
},
"node_modules/@radix-ui/react-dismissable-layer": {
"version": "1.1.10",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz",
- "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1597,8 +936,6 @@
},
"node_modules/@radix-ui/react-dropdown-menu": {
"version": "2.1.15",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.15.tgz",
- "integrity": "sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1626,8 +963,6 @@
},
"node_modules/@radix-ui/react-focus-guards": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz",
- "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -1641,8 +976,6 @@
},
"node_modules/@radix-ui/react-focus-scope": {
"version": "1.1.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz",
- "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "1.1.2",
@@ -1666,8 +999,6 @@
},
"node_modules/@radix-ui/react-icons": {
"version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.2.tgz",
- "integrity": "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==",
"license": "MIT",
"peerDependencies": {
"react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc"
@@ -1675,8 +1006,6 @@
},
"node_modules/@radix-ui/react-id": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz",
- "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-use-layout-effect": "1.1.1"
@@ -1693,8 +1022,6 @@
},
"node_modules/@radix-ui/react-label": {
"version": "2.1.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz",
- "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-primitive": "2.1.3"
@@ -1716,8 +1043,6 @@
},
"node_modules/@radix-ui/react-menu": {
"version": "2.1.15",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.15.tgz",
- "integrity": "sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1756,8 +1081,6 @@
},
"node_modules/@radix-ui/react-popover": {
"version": "1.1.14",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.14.tgz",
- "integrity": "sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1793,8 +1116,6 @@
},
"node_modules/@radix-ui/react-popper": {
"version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.7.tgz",
- "integrity": "sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==",
"license": "MIT",
"dependencies": {
"@floating-ui/react-dom": "^2.0.0",
@@ -1825,8 +1146,6 @@
},
"node_modules/@radix-ui/react-portal": {
"version": "1.1.9",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz",
- "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-primitive": "2.1.3",
@@ -1849,8 +1168,6 @@
},
"node_modules/@radix-ui/react-presence": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.4.tgz",
- "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "1.1.2",
@@ -1873,8 +1190,6 @@
},
"node_modules/@radix-ui/react-primitive": {
"version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
- "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-slot": "1.2.3"
@@ -1896,8 +1211,6 @@
},
"node_modules/@radix-ui/react-progress": {
"version": "1.1.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.7.tgz",
- "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-context": "1.1.2",
@@ -1920,8 +1233,6 @@
},
"node_modules/@radix-ui/react-radio-group": {
"version": "1.3.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.7.tgz",
- "integrity": "sha512-9w5XhD0KPOrm92OTTE0SysH3sYzHsSTHNvZgUBo/VZ80VdYyB5RneDbc0dKpURS24IxkoFRu/hI0i4XyfFwY6g==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1952,8 +1263,6 @@
},
"node_modules/@radix-ui/react-roving-focus": {
"version": "1.1.10",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.10.tgz",
- "integrity": "sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -1983,8 +1292,6 @@
},
"node_modules/@radix-ui/react-scroll-area": {
"version": "1.2.9",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.9.tgz",
- "integrity": "sha512-YSjEfBXnhUELsO2VzjdtYYD4CfQjvao+lhhrX5XsHD7/cyUNzljF1FHEbgTPN7LH2MClfwRMIsYlqTYpKTTe2A==",
"license": "MIT",
"dependencies": {
"@radix-ui/number": "1.1.1",
@@ -2014,8 +1321,6 @@
},
"node_modules/@radix-ui/react-select": {
"version": "2.2.5",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.5.tgz",
- "integrity": "sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==",
"license": "MIT",
"dependencies": {
"@radix-ui/number": "1.1.1",
@@ -2057,8 +1362,6 @@
},
"node_modules/@radix-ui/react-separator": {
"version": "1.1.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz",
- "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-primitive": "2.1.3"
@@ -2080,8 +1383,6 @@
},
"node_modules/@radix-ui/react-slider": {
"version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.5.tgz",
- "integrity": "sha512-rkfe2pU2NBAYfGaxa3Mqosi7VZEWX5CxKaanRv0vZd4Zhl9fvQrg0VM93dv3xGLGfrHuoTRF3JXH8nb9g+B3fw==",
"license": "MIT",
"dependencies": {
"@radix-ui/number": "1.1.1",
@@ -2113,8 +1414,6 @@
},
"node_modules/@radix-ui/react-slot": {
"version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz",
- "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "1.1.2"
@@ -2131,8 +1430,6 @@
},
"node_modules/@radix-ui/react-switch": {
"version": "1.2.5",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.5.tgz",
- "integrity": "sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -2160,8 +1457,6 @@
},
"node_modules/@radix-ui/react-tabs": {
"version": "1.1.12",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.12.tgz",
- "integrity": "sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -2190,8 +1485,6 @@
},
"node_modules/@radix-ui/react-tooltip": {
"version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.7.tgz",
- "integrity": "sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==",
"license": "MIT",
"dependencies": {
"@radix-ui/primitive": "1.1.2",
@@ -2224,8 +1517,6 @@
},
"node_modules/@radix-ui/react-use-callback-ref": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
- "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -2239,8 +1530,6 @@
},
"node_modules/@radix-ui/react-use-controllable-state": {
"version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz",
- "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-use-effect-event": "0.0.2",
@@ -2258,8 +1547,6 @@
},
"node_modules/@radix-ui/react-use-effect-event": {
"version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz",
- "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-use-layout-effect": "1.1.1"
@@ -2276,8 +1563,6 @@
},
"node_modules/@radix-ui/react-use-escape-keydown": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz",
- "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-use-callback-ref": "1.1.1"
@@ -2294,8 +1579,6 @@
},
"node_modules/@radix-ui/react-use-is-hydrated": {
"version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz",
- "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==",
"license": "MIT",
"dependencies": {
"use-sync-external-store": "^1.5.0"
@@ -2312,8 +1595,6 @@
},
"node_modules/@radix-ui/react-use-layout-effect": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
- "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -2327,8 +1608,6 @@
},
"node_modules/@radix-ui/react-use-previous": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz",
- "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==",
"license": "MIT",
"peerDependencies": {
"@types/react": "*",
@@ -2342,8 +1621,6 @@
},
"node_modules/@radix-ui/react-use-rect": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz",
- "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==",
"license": "MIT",
"dependencies": {
"@radix-ui/rect": "1.1.1"
@@ -2360,8 +1637,6 @@
},
"node_modules/@radix-ui/react-use-size": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz",
- "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-use-layout-effect": "1.1.1"
@@ -2378,8 +1653,6 @@
},
"node_modules/@radix-ui/react-visually-hidden": {
"version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz",
- "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-primitive": "2.1.3"
@@ -2401,278 +1674,58 @@
},
"node_modules/@radix-ui/rect": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz",
- "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==",
"license": "MIT"
},
"node_modules/@remirror/core-constants": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz",
- "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==",
- "license": "MIT"
- },
- "node_modules/@rtsao/scc": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
- "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@rushstack/eslint-patch": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz",
- "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@sqltools/formatter": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz",
- "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@standard-schema/utils": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz",
- "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==",
- "license": "MIT"
- },
- "node_modules/@swc/counter": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
- "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
- "license": "Apache-2.0"
- },
- "node_modules/@swc/helpers": {
- "version": "0.5.15",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
- "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.8.0"
- }
- },
- "node_modules/@tailwindcss/node": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.8.tgz",
- "integrity": "sha512-OWwBsbC9BFAJelmnNcrKuf+bka2ZxCE2A4Ft53Tkg4uoiE67r/PMEYwCsourC26E+kmxfwE0hVzMdxqeW+xu7Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@ampproject/remapping": "^2.3.0",
- "enhanced-resolve": "^5.18.1",
- "jiti": "^2.4.2",
- "lightningcss": "1.30.1",
- "magic-string": "^0.30.17",
- "source-map-js": "^1.2.1",
- "tailwindcss": "4.1.8"
- }
- },
- "node_modules/@tailwindcss/oxide-android-arm64": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.8.tgz",
- "integrity": "sha512-Fbz7qni62uKYceWYvUjRqhGfZKwhZDQhlrJKGtnZfuNtHFqa8wmr+Wn74CTWERiW2hn3mN5gTpOoxWKk0jRxjg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-darwin-arm64": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.8.tgz",
- "integrity": "sha512-RdRvedGsT0vwVVDztvyXhKpsU2ark/BjgG0huo4+2BluxdXo8NDgzl77qh0T1nUxmM11eXwR8jA39ibvSTbi7A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-darwin-x64": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.8.tgz",
- "integrity": "sha512-t6PgxjEMLp5Ovf7uMb2OFmb3kqzVTPPakWpBIFzppk4JE4ix0yEtbtSjPbU8+PZETpaYMtXvss2Sdkx8Vs4XRw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-freebsd-x64": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.8.tgz",
- "integrity": "sha512-g8C8eGEyhHTqwPStSwZNSrOlyx0bhK/V/+zX0Y+n7DoRUzyS8eMbVshVOLJTDDC+Qn9IJnilYbIKzpB9n4aBsg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.8.tgz",
- "integrity": "sha512-Jmzr3FA4S2tHhaC6yCjac3rGf7hG9R6Gf2z9i9JFcuyy0u79HfQsh/thifbYTF2ic82KJovKKkIB6Z9TdNhCXQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.8.tgz",
- "integrity": "sha512-qq7jXtO1+UEtCmCeBBIRDrPFIVI4ilEQ97qgBGdwXAARrUqSn/L9fUrkb1XP/mvVtoVeR2bt/0L77xx53bPZ/Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.8.tgz",
- "integrity": "sha512-O6b8QesPbJCRshsNApsOIpzKt3ztG35gfX9tEf4arD7mwNinsoCKxkj8TgEE0YRjmjtO3r9FlJnT/ENd9EVefQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
+ "version": "3.0.0",
+ "license": "MIT"
},
- "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.8.tgz",
- "integrity": "sha512-32iEXX/pXwikshNOGnERAFwFSfiltmijMIAbUhnNyjFr3tmWmMJWQKU2vNcFX0DACSXJ3ZWcSkzNbaKTdngH6g==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@rtsao/scc": {
+ "version": "1.1.0",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
+ "license": "MIT"
},
- "node_modules/@tailwindcss/oxide-linux-x64-musl": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.8.tgz",
- "integrity": "sha512-s+VSSD+TfZeMEsCaFaHTaY5YNj3Dri8rST09gMvYQKwPphacRG7wbuQ5ZJMIJXN/puxPcg/nU+ucvWguPpvBDg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@rushstack/eslint-patch": {
+ "version": "1.11.0",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
+ "license": "MIT"
},
- "node_modules/@tailwindcss/oxide-wasm32-wasi": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.8.tgz",
- "integrity": "sha512-CXBPVFkpDjM67sS1psWohZ6g/2/cd+cq56vPxK4JeawelxwK4YECgl9Y9TjkE2qfF+9/s1tHHJqrC4SS6cVvSg==",
- "bundleDependencies": [
- "@napi-rs/wasm-runtime",
- "@emnapi/core",
- "@emnapi/runtime",
- "@tybys/wasm-util",
- "@emnapi/wasi-threads",
- "tslib"
- ],
- "cpu": [
- "wasm32"
- ],
+ "node_modules/@sqltools/formatter": {
+ "version": "1.2.5",
"dev": true,
- "license": "MIT",
- "optional": true,
+ "license": "MIT"
+ },
+ "node_modules/@standard-schema/utils": {
+ "version": "0.3.0",
+ "license": "MIT"
+ },
+ "node_modules/@swc/counter": {
+ "version": "0.1.3",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@swc/helpers": {
+ "version": "0.5.15",
+ "license": "Apache-2.0",
"dependencies": {
- "@emnapi/core": "^1.4.3",
- "@emnapi/runtime": "^1.4.3",
- "@emnapi/wasi-threads": "^1.0.2",
- "@napi-rs/wasm-runtime": "^0.2.10",
- "@tybys/wasm-util": "^0.9.0",
"tslib": "^2.8.0"
- },
- "engines": {
- "node": ">=14.0.0"
}
},
- "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
+ "node_modules/@tailwindcss/node": {
"version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.8.tgz",
- "integrity": "sha512-7GmYk1n28teDHUjPlIx4Z6Z4hHEgvP5ZW2QS9ygnDAdI/myh3HTHjDqtSqgu1BpRoI4OiLx+fThAyA1JePoENA==",
- "cpu": [
- "arm64"
- ],
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
+ "dependencies": {
+ "@ampproject/remapping": "^2.3.0",
+ "enhanced-resolve": "^5.18.1",
+ "jiti": "^2.4.2",
+ "lightningcss": "1.30.1",
+ "magic-string": "^0.30.17",
+ "source-map-js": "^1.2.1",
+ "tailwindcss": "4.1.8"
}
},
"node_modules/@tailwindcss/oxide-win32-x64-msvc": {
"version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.8.tgz",
- "integrity": "sha512-fou+U20j+Jl0EHwK92spoWISON2OBnCazIc038Xj2TdweYV33ZRkS9nwqiUi2d/Wba5xg5UoHfvynnb/UB49cQ==",
"cpu": [
"x64"
],
@@ -2688,8 +1741,6 @@
},
"node_modules/@tailwindcss/postcss": {
"version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.8.tgz",
- "integrity": "sha512-vB/vlf7rIky+w94aWMw34bWW1ka6g6C3xIOdICKX2GC0VcLtL6fhlLiafF0DVIwa9V6EHz8kbWMkS2s2QvvNlw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2702,8 +1753,6 @@
},
"node_modules/@tailwindcss/postcss/node_modules/@tailwindcss/oxide": {
"version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.8.tgz",
- "integrity": "sha512-d7qvv9PsM5N3VNKhwVUhpK6r4h9wtLkJ6lz9ZY9aeZgrUWk1Z8VPyqyDT9MZlem7GTGseRQHkeB1j3tC7W1P+A==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -2731,8 +1780,6 @@
},
"node_modules/@tanstack/query-core": {
"version": "5.80.6",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.80.6.tgz",
- "integrity": "sha512-nl7YxT/TAU+VTf+e2zTkObGTyY8YZBMnbgeA1ee66lIVqzKlYursAII6z5t0e6rXgwUMJSV4dshBTNacNpZHbQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2741,8 +1788,6 @@
},
"node_modules/@tanstack/query-devtools": {
"version": "5.80.0",
- "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.80.0.tgz",
- "integrity": "sha512-D6gH4asyjaoXrCOt5vG5Og/YSj0D/TxwNQgtLJIgWbhbWCC/emu2E92EFoVHh4ppVWg1qT2gKHvKyQBEFZhCuA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2751,8 +1796,6 @@
},
"node_modules/@tanstack/react-query": {
"version": "5.80.6",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.80.6.tgz",
- "integrity": "sha512-izX+5CnkpON3NQGcEm3/d7LfFQNo9ZpFtX2QsINgCYK9LT2VCIdi8D3bMaMSNhrAJCznRoAkFic76uvLroALBw==",
"license": "MIT",
"dependencies": {
"@tanstack/query-core": "5.80.6"
@@ -2767,8 +1810,6 @@
},
"node_modules/@tanstack/react-query-devtools": {
"version": "5.80.6",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.80.6.tgz",
- "integrity": "sha512-y7Es0OJ4RYQxrPYsuuQP0jxjgJ40a03UbEPmJ6vwf/ERVMRoRIMkpjtvPxf1D+n9nwPfWmGdD0jW8Wxd+TxeEw==",
"license": "MIT",
"dependencies": {
"@tanstack/query-devtools": "5.80.0"
@@ -2784,8 +1825,6 @@
},
"node_modules/@tanstack/react-table": {
"version": "8.21.3",
- "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.21.3.tgz",
- "integrity": "sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==",
"license": "MIT",
"dependencies": {
"@tanstack/table-core": "8.21.3"
@@ -2804,8 +1843,6 @@
},
"node_modules/@tanstack/react-virtual": {
"version": "3.13.10",
- "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.10.tgz",
- "integrity": "sha512-nvrzk4E9mWB4124YdJ7/yzwou7IfHxlSef6ugCFcBfRmsnsma3heciiiV97sBNxyc3VuwtZvmwXd0aB5BpucVw==",
"license": "MIT",
"dependencies": {
"@tanstack/virtual-core": "3.13.10"
@@ -2821,8 +1858,6 @@
},
"node_modules/@tanstack/table-core": {
"version": "8.21.3",
- "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.21.3.tgz",
- "integrity": "sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==",
"license": "MIT",
"engines": {
"node": ">=12"
@@ -2834,8 +1869,6 @@
},
"node_modules/@tanstack/virtual-core": {
"version": "3.13.10",
- "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.10.tgz",
- "integrity": "sha512-sPEDhXREou5HyZYqSWIqdU580rsF6FGeN7vpzijmP3KTiOGjOMZASz4Y6+QKjiFQwhWrR58OP8izYaNGVxvViA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2844,8 +1877,6 @@
},
"node_modules/@tiptap/core": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.14.0.tgz",
- "integrity": "sha512-MBSMzGYRFlwYCocvx3dU7zpCBSDQ0qWByNtStaEzuBUgzCJ6wn2DP/xG0cMcLmE3Ia0VLM4nwbLOAAvBXOtylA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2857,8 +1888,6 @@
},
"node_modules/@tiptap/extension-blockquote": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.14.0.tgz",
- "integrity": "sha512-AwqPP0jLYNioKxakiVw0vlfH/ceGFbV+SGoqBbPSGFPRdSbHhxHDNBlTtiThmT3N2PiVwXAD9xislJV+WY4GUA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2870,8 +1899,6 @@
},
"node_modules/@tiptap/extension-bold": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.14.0.tgz",
- "integrity": "sha512-8DWwelH55H8KtLECSIv0wh8x/F/6lpagV/pMvT+Azujad0oqK+1iAPKU/kLgjXbFSkisrpV6KSwQts5neCtfRQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2883,8 +1910,6 @@
},
"node_modules/@tiptap/extension-bubble-menu": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.14.0.tgz",
- "integrity": "sha512-sN15n0RjPh+2Asvxs7l47hVEvX6c0aPempU8QQWcPUlHoGf1D/XkyHXy6GWVPSxZ5Rj5uAwgKvhHsG/FJ/YGKQ==",
"license": "MIT",
"dependencies": {
"tippy.js": "^6.3.7"
@@ -2900,8 +1925,6 @@
},
"node_modules/@tiptap/extension-bullet-list": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.14.0.tgz",
- "integrity": "sha512-SWnL4bP8Mm/mWN42AMQNoqYE0V6LgSBTVsHwwAki2wIUQdr9HyoAnohvHy3IME56NMwoyZyo+Mzl45wOqUxziA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2913,8 +1936,6 @@
},
"node_modules/@tiptap/extension-code": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.14.0.tgz",
- "integrity": "sha512-kyo02mnzqgwXayMcyRA/fHQgb+nMmQQpIt1irZwjtEoFZshA7NnY/6b5SJmRcxQ4/X4r2Y2Ha2sWmOcEkLmt4A==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2926,8 +1947,6 @@
},
"node_modules/@tiptap/extension-code-block": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.14.0.tgz",
- "integrity": "sha512-LRYYZeh8U2XgfTsJ4houB9s9cVRt7PRfVa4MaCeOYKfowVOKQh67yV5oom8Azk9XrMPkPxDmMmdPAEPxeVYFvw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2940,8 +1959,6 @@
},
"node_modules/@tiptap/extension-color": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-2.14.0.tgz",
- "integrity": "sha512-sY+eWIbkCMAwOGH7pQ1ZuNqkqMaaHE+TsJwA7bQ6VhI2gGhhqGjT/DfmJMUen8FSdzuPoWlgtuXXCeOO6FOduw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2954,8 +1971,6 @@
},
"node_modules/@tiptap/extension-document": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.14.0.tgz",
- "integrity": "sha512-qwEgpPIJ3AgXdEtRTr88hODbXRdt14VAwLj27PTSqexB5V7Ra1Jy7iQDhqRwBCoUomVywBsWYxkSuDisSRG+9w==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2967,8 +1982,6 @@
},
"node_modules/@tiptap/extension-dropcursor": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.14.0.tgz",
- "integrity": "sha512-FIh5cdPuoPKvZ0GqSKhzMZGixm05ac3hSgqhMNCBZmXX459qBUI9CvDl/uzSnY9koBDeLVV3HYMthWQQLSXl9A==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2981,8 +1994,6 @@
},
"node_modules/@tiptap/extension-floating-menu": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.14.0.tgz",
- "integrity": "sha512-Khx7M7RfZlD1/T/PUlpJmao6FtEBa2L6td2hhaW1USflwGJGk0U/ud4UEqh+aZoJZrkot/EMhEvzmORF3nq+xw==",
"license": "MIT",
"dependencies": {
"tippy.js": "^6.3.7"
@@ -2998,8 +2009,6 @@
},
"node_modules/@tiptap/extension-gapcursor": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.14.0.tgz",
- "integrity": "sha512-as+SqC39FRshw4Fm1XVlrdSXveiusf5xiC4nuefLmXsUxO7Yx67x8jS0/VQbxWTLHZ6R1YEW8prLtnxGmVLCAQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3012,8 +2021,6 @@
},
"node_modules/@tiptap/extension-hard-break": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.14.0.tgz",
- "integrity": "sha512-A8c8n8881iBq3AusNqibh6Hloybr+FgYdg4Lg4jNxbbEaL0WhyLFge1bWlGVpbHXFqdv5YldMUAu6Rop3FhNvw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3025,8 +2032,6 @@
},
"node_modules/@tiptap/extension-heading": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.14.0.tgz",
- "integrity": "sha512-vM//6G3Ox3mxPv9eilhrDqylELCc8kEP1aQ4xUuOw7vCidjNtGggOa1ERnnpV2dCa2A9E8y4FHtN4Xh29stXQg==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3038,8 +2043,6 @@
},
"node_modules/@tiptap/extension-highlight": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.14.0.tgz",
- "integrity": "sha512-21eouZEuCBFrpGeefnnU9yJ1SH32L9gSlT9MOJXBSXCX5HFskNLdN8Q4cQSyRXSt6r5kEz1GG5a4I805/U2TMQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3051,8 +2054,6 @@
},
"node_modules/@tiptap/extension-history": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.14.0.tgz",
- "integrity": "sha512-/qnOHQFCEPfkb3caykqd+sqzEC2gx30EQB/mM7+5kIG7CQy7XXaGjFAEaqzE1xJ783Q2E7GVk4JxWM+3NhYSLw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3065,8 +2066,6 @@
},
"node_modules/@tiptap/extension-horizontal-rule": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.14.0.tgz",
- "integrity": "sha512-OrKWgHOhmJtVHjPYaEJetNLiNEvrI85lTrGxzeQa+a8ACb93h4svyHe9J+LHs5pKkXDQFcpYEXJntu0LVLLiDw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3079,8 +2078,6 @@
},
"node_modules/@tiptap/extension-image": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.14.0.tgz",
- "integrity": "sha512-pYCUzZBgsxIvVGTzuW03cPz6PIrAo26xpoxqq4W090uMVoK0SgY5W5y0IqCdw4QyLkJ2/oNSFNc2EP9jVi1CcQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3092,8 +2089,6 @@
},
"node_modules/@tiptap/extension-italic": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.14.0.tgz",
- "integrity": "sha512-yEw2S+smoVR8DMYQMAWckVW2Sstf7z5+GBZ8zm8NMGhMKb1JFCPZUv5KTTIPnq7ZrKuuZHvjN9+Ef1dRYD8T2A==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3105,8 +2100,6 @@
},
"node_modules/@tiptap/extension-list-item": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.14.0.tgz",
- "integrity": "sha512-t1jXDPEd82sC6vZVE/12/CB52uuiydCIcRfwdh21xNgBMckToKO9S0K6XEp4ROtrKQdlIH2JDVPfpUBvVrYN8Q==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3118,8 +2111,6 @@
},
"node_modules/@tiptap/extension-ordered-list": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.14.0.tgz",
- "integrity": "sha512-QUZcyuW9AKvSfpFHcGmbyRCqxcpY0VNf0xipEtogxbA+JDDw3ZSPqU1dUgz9wk00RahPTwNDdY5aVjdQ5N4N9Q==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3131,8 +2122,6 @@
},
"node_modules/@tiptap/extension-paragraph": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.14.0.tgz",
- "integrity": "sha512-bsQesVpgvDS2e+wr2fp59QO7rWRp2FqcJvBafwXS3Br9U5Mx3eFYryx4wC7cUnhlhUwX5pmaoA7zISgV9dZDgg==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3144,8 +2133,6 @@
},
"node_modules/@tiptap/extension-strike": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.14.0.tgz",
- "integrity": "sha512-rD5d/IL3XPfBOrHRHxt+b+0X1jbIbWONGiad/3sX0ZYQD3PandtCWboH40r/J5tFksebuY12dVYyYQKgLpDBOQ==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3157,8 +2144,6 @@
},
"node_modules/@tiptap/extension-text": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.14.0.tgz",
- "integrity": "sha512-rHny566nGZHq61zRLwQ9BPG55W/O+eDKwUJl+LhrLiVWwzpvAl9QQYixtoxJKOY48VK41PKwxe3bgDYgNs/Fhg==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3170,8 +2155,6 @@
},
"node_modules/@tiptap/extension-text-style": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.14.0.tgz",
- "integrity": "sha512-dl0oi2i0rjLpBqTf4wGy6SLidvPpjxLcmX727pwJlCklkFJVDf8wSFeD4ddxJXiD2Rwef0D/lkcwXSY73CoDcA==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3183,8 +2166,6 @@
},
"node_modules/@tiptap/pm": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.14.0.tgz",
- "integrity": "sha512-cnsfaIlvTFCDtLP/A2Fd3LmpttgY0O/tuTM2fC71vetONz83wUTYT+aD9uvxdX0GkSocoh840b0TsEazbBxhpA==",
"license": "MIT",
"dependencies": {
"prosemirror-changeset": "^2.3.0",
@@ -3213,8 +2194,6 @@
},
"node_modules/@tiptap/react": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.14.0.tgz",
- "integrity": "sha512-6mtksbT2+EWXFLdHVFag9PSoh0GXPmL97Cm+4sJoyECUmBkAyoErapAccmZIljyMaVIHBYpYkNdp9Pw1B73ezw==",
"license": "MIT",
"dependencies": {
"@tiptap/extension-bubble-menu": "^2.14.0",
@@ -3236,8 +2215,6 @@
},
"node_modules/@tiptap/starter-kit": {
"version": "2.14.0",
- "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.14.0.tgz",
- "integrity": "sha512-Z1bKAfHl14quRI3McmdU+bs675jp6/iexEQTI9M9oHa6l3McFF38g9N3xRpPPX02MX83DghsUPupndUW/yJvEQ==",
"license": "MIT",
"dependencies": {
"@tiptap/core": "^2.14.0",
@@ -3267,42 +2244,23 @@
"url": "https://github.com/sponsors/ueberdosis"
}
},
- "node_modules/@tybys/wasm-util": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz",
- "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
"node_modules/@types/estree": {
"version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
- "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/json-schema": {
"version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/json5": {
"version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/jsonwebtoken": {
"version": "9.0.9",
- "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.9.tgz",
- "integrity": "sha512-uoe+GxEuHbvy12OUQct2X9JenKM3qAscquYymuQN4fMWG9DBQtykrQEFcAbVACF7qaLw9BePSodUL0kquqBJpQ==",
"license": "MIT",
"dependencies": {
"@types/ms": "*",
@@ -3311,21 +2269,15 @@
},
"node_modules/@types/katex": {
"version": "0.16.7",
- "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz",
- "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/linkify-it": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz",
- "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==",
"license": "MIT"
},
"node_modules/@types/markdown-it": {
"version": "14.1.2",
- "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz",
- "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==",
"license": "MIT",
"dependencies": {
"@types/linkify-it": "^5",
@@ -3334,20 +2286,14 @@
},
"node_modules/@types/mdurl": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz",
- "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==",
"license": "MIT"
},
"node_modules/@types/ms": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
- "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
"license": "MIT"
},
"node_modules/@types/next-auth": {
"version": "3.13.0",
- "resolved": "https://registry.npmjs.org/@types/next-auth/-/next-auth-3.13.0.tgz",
- "integrity": "sha512-zkEVDyoKgRsHm3KUaZoOGSThTS9h0+HbFZctiYbB5MMU6/pUZuF5ozWrVG00jotQJuSEIlPWzdCIXKlaHctJgw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3359,8 +2305,6 @@
},
"node_modules/@types/node": {
"version": "20.19.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.0.tgz",
- "integrity": "sha512-hfrc+1tud1xcdVTABC2JiomZJEklMcXYNTVtZLAeqTVWD+qL5jkHKT+1lOtqDdGxt+mB53DTtiz673vfjU8D1Q==",
"license": "MIT",
"dependencies": {
"undici-types": "~6.21.0"
@@ -3368,8 +2312,6 @@
},
"node_modules/@types/react": {
"version": "19.1.7",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.7.tgz",
- "integrity": "sha512-BnsPLV43ddr05N71gaGzyZ5hzkCmGwhMvYc8zmvI8Ci1bRkkDSzDDVfAXfN2tk748OwI7ediiPX6PfT9p0QGVg==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -3378,8 +2320,6 @@
},
"node_modules/@types/react-dom": {
"version": "19.1.6",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz",
- "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==",
"devOptional": true,
"license": "MIT",
"peerDependencies": {
@@ -3388,8 +2328,6 @@
},
"node_modules/@types/react-katex": {
"version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/react-katex/-/react-katex-3.0.4.tgz",
- "integrity": "sha512-aLkykKzSKLpXI6REJ3uClao6P47HAFfR1gcHOZwDeTuALsyjgMhz+oynLV4gX0kiJVnvHrBKF/TLXqyNTpHDUg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3398,28 +2336,20 @@
},
"node_modules/@types/trusted-types": {
"version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
- "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
"license": "MIT",
"optional": true
},
"node_modules/@types/use-sync-external-store": {
"version": "0.0.6",
- "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz",
- "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==",
"license": "MIT"
},
"node_modules/@types/zen-observable": {
"version": "0.8.3",
- "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz",
- "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==",
"dev": true,
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.0.tgz",
- "integrity": "sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3448,8 +2378,6 @@
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
"version": "7.0.5",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
- "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3458,8 +2386,6 @@
},
"node_modules/@typescript-eslint/parser": {
"version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.0.tgz",
- "integrity": "sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3483,8 +2409,6 @@
},
"node_modules/@typescript-eslint/project-service": {
"version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
- "integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3505,8 +2429,6 @@
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
- "integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3523,8 +2445,6 @@
},
"node_modules/@typescript-eslint/tsconfig-utils": {
"version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
- "integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3540,8 +2460,6 @@
},
"node_modules/@typescript-eslint/type-utils": {
"version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.34.0.tgz",
- "integrity": "sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3564,8 +2482,6 @@
},
"node_modules/@typescript-eslint/types": {
"version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
- "integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3578,8 +2494,6 @@
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
- "integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3603,337 +2517,96 @@
},
"peerDependencies": {
"typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.8"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@typescript-eslint/utils": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
- "integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.7.0",
- "@typescript-eslint/scope-manager": "8.34.0",
- "@typescript-eslint/types": "8.34.0",
- "@typescript-eslint/typescript-estree": "8.34.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0",
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
- "integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.34.0",
- "eslint-visitor-keys": "^4.2.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@unrs/resolver-binding-darwin-arm64": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.8.1.tgz",
- "integrity": "sha512-OKuBTQdOb4Kjbe+y4KgbRhn+nu47hNyNU2K3qjD+SA/bnQouvZnRzEiR85xZAIyZ6z1C+O1Zg1dK4hGH1RPdYA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@unrs/resolver-binding-darwin-x64": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.8.1.tgz",
- "integrity": "sha512-inaphBsOqqzauNvx6kSHrgqDLShicPg3+fInBcEdD7Ut8sUUbm2z19LL+S9ccGpHnYoNiJ+Qrf7/B8hRsCUvBw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@unrs/resolver-binding-freebsd-x64": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.8.1.tgz",
- "integrity": "sha512-LkGw7jDoLKEZO6yYwTKUlrboD6Qmy9Jkq7ZDPlJReq/FnCnNh0k1Z1hjtevpqPCMLz9hGW0ITMb04jdDZ796Cg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.8.1.tgz",
- "integrity": "sha512-6vhu22scv64dynXTVmeClenn3OPI8cwdhtydLFDkoW4UJzNwcgJ5mVtzbtikDGM9PmIQa+ekpH6tdvKt0ToK3A==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.8.1.tgz",
- "integrity": "sha512-SrQ286JVFWlnZSm1/TJwulTgJVOdb1x8BWW2ecOK0Sx+acdRpoMf4WSxH+/+R4LyE/YYyekcEtUrPhSEgJ748g==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@unrs/resolver-binding-linux-arm64-gnu": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.8.1.tgz",
- "integrity": "sha512-I2s4L27V+2kAee43x/qAkFjTZJgmDvSd9vtnyINOdBEdz5+QqiG6ccd5pgOw06MsUwygkrhB4jOe4ZN4SA6IwA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@unrs/resolver-binding-linux-arm64-musl": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.8.1.tgz",
- "integrity": "sha512-Drq80e/EQbdSVyJpheF65qVmfYy8OaDdQqoWV+09tZHz/P1SdSulvVtgtYrk216D++9hbx3c1bwVXwR5PZ2TzA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.8.1.tgz",
- "integrity": "sha512-EninHQHw8Zkq8K5qB6KWNDqjCtUzTDsCRQ6LzAtQWIxic/VQxR5Kl36V/GCXNvQaR7W0AB5gvJLyQtJwkf+AJA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.8.1.tgz",
- "integrity": "sha512-s7Xu5PS4vWhsb5ZFAi+UBguTn0g8qDhN+BbB1t9APX23AdAI7TS4DRrJV5dBVdQ6a8MiergGr1Cjb0Q1V/sW8w==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@unrs/resolver-binding-linux-riscv64-musl": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.8.1.tgz",
- "integrity": "sha512-Ca+bVzOJtgQ3OrMkRSeDLYWJIjRmEylDHSZuSKqqPmZI2vgX6yZgzrKY28I6hjjG9idlW4DcJzLv/TjFXev+4Q==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ }
},
- "node_modules/@unrs/resolver-binding-linux-s390x-gnu": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.8.1.tgz",
- "integrity": "sha512-ut1vBBFs6AC5EcerH8HorcmS/9wAy6iI1tfpzT7jy+SKnMgmPth/psc3W5V04njble7cyLPjFHwYJTlxmozQ/g==",
- "cpu": [
- "s390x"
- ],
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "version": "2.0.2",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
},
- "node_modules/@unrs/resolver-binding-linux-x64-gnu": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.8.1.tgz",
- "integrity": "sha512-w5agLxesvrYKrCOlAsUkwRDogjnyRBi4/vEaujZRkXbeRCupJ9dFD0qUhLXZyIed+GSzJJIsJocUZIVzcTHYXQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": {
+ "version": "3.3.3",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
},
- "node_modules/@unrs/resolver-binding-linux-x64-musl": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.8.1.tgz",
- "integrity": "sha512-vk5htmWYCLRpfjn2wmCUne6pLvlcYUFDAAut4g02/2iWeGeZO/3GmSLmiZ9fcn9oH0FUzgetg0/zSo8oZ7liIg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": {
+ "version": "5.1.2",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
},
- "node_modules/@unrs/resolver-binding-wasm32-wasi": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.8.1.tgz",
- "integrity": "sha512-RcsLTcrqDT5XW/TnhhIeM7lVLgUv/gvPEC4WaH+OhkLCkRfH6EEuhprwrcp1WhdlrtL/U5FkHh4NtFLnMXoeXA==",
- "cpu": [
- "wasm32"
- ],
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+ "version": "9.0.5",
"dev": true,
- "license": "MIT",
- "optional": true,
+ "license": "ISC",
"dependencies": {
- "@napi-rs/wasm-runtime": "^0.2.11"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@unrs/resolver-binding-win32-arm64-msvc": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.8.1.tgz",
- "integrity": "sha512-XbSRLZY/gEi5weYv/aCkiUiSWvrNKkvec3m6/bDypDI+ZACwMllPH7smeOW/fdnIGhf9YtPATNliJHAS2GyMUA==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@typescript-eslint/utils": {
+ "version": "8.34.0",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.7.0",
+ "@typescript-eslint/scope-manager": "8.34.0",
+ "@typescript-eslint/types": "8.34.0",
+ "@typescript-eslint/typescript-estree": "8.34.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.9.0"
+ }
},
- "node_modules/@unrs/resolver-binding-win32-ia32-msvc": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.8.1.tgz",
- "integrity": "sha512-SbCJMKOmqOsIBCklT5c+t0DjVbOkseE7ZN0OtMxRnraLKdj1AAv7d3cjJMYkPd9ZGKosHoMXo66gBs02YM8KeA==",
- "cpu": [
- "ia32"
- ],
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.34.0",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
+ "dependencies": {
+ "@typescript-eslint/types": "8.34.0",
+ "eslint-visitor-keys": "^4.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
},
"node_modules/@unrs/resolver-binding-win32-x64-msvc": {
"version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.8.1.tgz",
- "integrity": "sha512-DdHqo7XbeUa/ZOcxq+q5iuO4sSxhwX9HR1JPL0JMOKEzgkIO4OKF2TPjqmo6UCCGZUXIMwrAycFXj/40sICagw==",
"cpu": [
"x64"
],
@@ -3946,8 +2619,6 @@
},
"node_modules/acorn": {
"version": "8.15.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
- "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -3959,8 +2630,6 @@
},
"node_modules/acorn-jsx": {
"version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -3969,8 +2638,6 @@
},
"node_modules/adler-32": {
"version": "1.3.1",
- "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz",
- "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.8"
@@ -3978,8 +2645,6 @@
},
"node_modules/agent-base": {
"version": "7.1.3",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
- "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
"license": "MIT",
"engines": {
"node": ">= 14"
@@ -3987,8 +2652,6 @@
},
"node_modules/ajv": {
"version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4004,8 +2667,6 @@
},
"node_modules/ansi-escapes": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz",
- "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4020,8 +2681,6 @@
},
"node_modules/ansi-regex": {
"version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4033,8 +2692,6 @@
},
"node_modules/ansi-styles": {
"version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4049,15 +2706,11 @@
},
"node_modules/any-promise": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
"dev": true,
"license": "MIT"
},
"node_modules/app-root-path": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz",
- "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4066,14 +2719,10 @@
},
"node_modules/argparse": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"license": "Python-2.0"
},
"node_modules/aria-hidden": {
"version": "1.2.6",
- "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz",
- "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==",
"license": "MIT",
"dependencies": {
"tslib": "^2.0.0"
@@ -4084,8 +2733,6 @@
},
"node_modules/aria-query": {
"version": "5.3.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
- "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -4094,8 +2741,6 @@
},
"node_modules/array-buffer-byte-length": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
- "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4111,8 +2756,6 @@
},
"node_modules/array-includes": {
"version": "3.1.9",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",
- "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4134,8 +2777,6 @@
},
"node_modules/array.prototype.findlast": {
"version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
- "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4155,8 +2796,6 @@
},
"node_modules/array.prototype.findlastindex": {
"version": "1.2.6",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
- "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4177,8 +2816,6 @@
},
"node_modules/array.prototype.flat": {
"version": "1.3.3",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
- "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4196,8 +2833,6 @@
},
"node_modules/array.prototype.flatmap": {
"version": "1.3.3",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
- "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4215,8 +2850,6 @@
},
"node_modules/array.prototype.tosorted": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
- "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4232,8 +2865,6 @@
},
"node_modules/arraybuffer.prototype.slice": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
- "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4254,15 +2885,11 @@
},
"node_modules/ast-types-flow": {
"version": "0.0.8",
- "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
- "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==",
"dev": true,
"license": "MIT"
},
"node_modules/async-function": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
- "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4271,14 +2898,10 @@
},
"node_modules/asynckit": {
"version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"license": "MIT"
},
"node_modules/available-typed-arrays": {
"version": "1.0.7",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
- "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4293,8 +2916,6 @@
},
"node_modules/axe-core": {
"version": "4.10.3",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz",
- "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==",
"dev": true,
"license": "MPL-2.0",
"engines": {
@@ -4303,8 +2924,6 @@
},
"node_modules/axios": {
"version": "1.9.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz",
- "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
@@ -4314,8 +2933,6 @@
},
"node_modules/axobject-query": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
- "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -4324,15 +2941,11 @@
},
"node_modules/balanced-match": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true,
"license": "MIT"
},
"node_modules/base64-js": {
"version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"dev": true,
"funding": [
{
@@ -4352,8 +2965,6 @@
},
"node_modules/brace-expansion": {
"version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4363,8 +2974,6 @@
},
"node_modules/braces": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4376,8 +2985,6 @@
},
"node_modules/buffer": {
"version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"dev": true,
"funding": [
{
@@ -4401,14 +3008,10 @@
},
"node_modules/buffer-equal-constant-time": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
"license": "BSD-3-Clause"
},
"node_modules/busboy": {
"version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
"dependencies": {
"streamsearch": "^1.1.0"
},
@@ -4418,8 +3021,6 @@
},
"node_modules/call-bind": {
"version": "1.0.8",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
- "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4437,8 +3038,6 @@
},
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -4450,8 +3049,6 @@
},
"node_modules/call-bound": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
- "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4467,8 +3064,6 @@
},
"node_modules/callsites": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4477,8 +3072,6 @@
},
"node_modules/caniuse-lite": {
"version": "1.0.30001722",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001722.tgz",
- "integrity": "sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==",
"funding": [
{
"type": "opencollective",
@@ -4497,8 +3090,6 @@
},
"node_modules/cfb": {
"version": "1.2.2",
- "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz",
- "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
"license": "Apache-2.0",
"dependencies": {
"adler-32": "~1.3.0",
@@ -4510,8 +3101,6 @@
},
"node_modules/chalk": {
"version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4527,8 +3116,6 @@
},
"node_modules/chownr": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
- "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -4537,8 +3124,6 @@
},
"node_modules/class-variance-authority": {
"version": "0.7.1",
- "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz",
- "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==",
"license": "Apache-2.0",
"dependencies": {
"clsx": "^2.1.1"
@@ -4549,8 +3134,6 @@
},
"node_modules/cli-cursor": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz",
- "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4565,8 +3148,6 @@
},
"node_modules/cli-highlight": {
"version": "2.1.11",
- "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz",
- "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -4587,8 +3168,6 @@
},
"node_modules/cli-highlight/node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4597,8 +3176,6 @@
},
"node_modules/cli-highlight/node_modules/cliui": {
"version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -4609,15 +3186,11 @@
},
"node_modules/cli-highlight/node_modules/emoji-regex": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true,
"license": "MIT"
},
"node_modules/cli-highlight/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4626,15 +3199,11 @@
},
"node_modules/cli-highlight/node_modules/parse5": {
"version": "5.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
- "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
"dev": true,
"license": "MIT"
},
"node_modules/cli-highlight/node_modules/string-width": {
"version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4648,8 +3217,6 @@
},
"node_modules/cli-highlight/node_modules/strip-ansi": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4661,8 +3228,6 @@
},
"node_modules/cli-highlight/node_modules/wrap-ansi": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4679,8 +3244,6 @@
},
"node_modules/cli-highlight/node_modules/yargs": {
"version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4698,8 +3261,6 @@
},
"node_modules/cli-highlight/node_modules/yargs-parser": {
"version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true,
"license": "ISC",
"engines": {
@@ -4708,8 +3269,6 @@
},
"node_modules/cli-truncate": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz",
- "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4725,14 +3284,10 @@
},
"node_modules/client-only": {
"version": "0.0.1",
- "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
- "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
"license": "MIT"
},
"node_modules/cliui": {
"version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -4746,8 +3301,6 @@
},
"node_modules/cliui/node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4756,15 +3309,11 @@
},
"node_modules/cliui/node_modules/emoji-regex": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true,
"license": "MIT"
},
"node_modules/cliui/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4773,8 +3322,6 @@
},
"node_modules/cliui/node_modules/string-width": {
"version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4788,8 +3335,6 @@
},
"node_modules/cliui/node_modules/strip-ansi": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4801,8 +3346,6 @@
},
"node_modules/cliui/node_modules/wrap-ansi": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4819,8 +3362,6 @@
},
"node_modules/clsx": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
- "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -4828,8 +3369,6 @@
},
"node_modules/cmdk": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.1.1.tgz",
- "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==",
"license": "MIT",
"dependencies": {
"@radix-ui/react-compose-refs": "^1.1.1",
@@ -4844,8 +3383,6 @@
},
"node_modules/codepage": {
"version": "1.15.0",
- "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz",
- "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.8"
@@ -4853,8 +3390,6 @@
},
"node_modules/color": {
"version": "4.2.3",
- "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
- "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -4867,8 +3402,6 @@
},
"node_modules/color-convert": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@@ -4880,15 +3413,11 @@
},
"node_modules/color-name": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"devOptional": true,
"license": "MIT"
},
"node_modules/color-string": {
"version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -4898,15 +3427,11 @@
},
"node_modules/colorette": {
"version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
"dev": true,
"license": "MIT"
},
"node_modules/combined-stream": {
"version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
@@ -4917,8 +3442,6 @@
},
"node_modules/commander": {
"version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
"license": "MIT",
"engines": {
"node": ">= 12"
@@ -4926,15 +3449,11 @@
},
"node_modules/concat-map": {
"version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true,
"license": "MIT"
},
"node_modules/crc-32": {
"version": "1.2.2",
- "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
- "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
"license": "Apache-2.0",
"bin": {
"crc32": "bin/crc32.njs"
@@ -4945,14 +3464,10 @@
},
"node_modules/crelt": {
"version": "1.0.6",
- "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz",
- "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==",
"license": "MIT"
},
"node_modules/cross-spawn": {
"version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4966,8 +3481,6 @@
},
"node_modules/cssstyle": {
"version": "4.4.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.4.0.tgz",
- "integrity": "sha512-W0Y2HOXlPkb2yaKrCVRjinYKciu/qSLEmK0K9mcfDei3zwlnHFEHAs/Du3cIRwPqY+J4JsiBzUjoHyc8RsJ03A==",
"license": "MIT",
"dependencies": {
"@asamuzakjp/css-color": "^3.2.0",
@@ -4979,22 +3492,16 @@
},
"node_modules/csstype": {
"version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"devOptional": true,
"license": "MIT"
},
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
- "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
"dev": true,
"license": "BSD-2-Clause"
},
"node_modules/data-urls": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
- "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"license": "MIT",
"dependencies": {
"whatwg-mimetype": "^4.0.0",
@@ -5006,8 +3513,6 @@
},
"node_modules/data-view-buffer": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
- "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5024,8 +3529,6 @@
},
"node_modules/data-view-byte-length": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
- "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5042,8 +3545,6 @@
},
"node_modules/data-view-byte-offset": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
- "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5060,8 +3561,6 @@
},
"node_modules/date-fns": {
"version": "3.6.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
- "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
"license": "MIT",
"funding": {
"type": "github",
@@ -5070,14 +3569,10 @@
},
"node_modules/date-fns-jalali": {
"version": "4.1.0-0",
- "resolved": "https://registry.npmjs.org/date-fns-jalali/-/date-fns-jalali-4.1.0-0.tgz",
- "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==",
"license": "MIT"
},
"node_modules/date-fns-tz": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-3.2.0.tgz",
- "integrity": "sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ==",
"license": "MIT",
"peerDependencies": {
"date-fns": "^3.0.0 || ^4.0.0"
@@ -5085,8 +3580,6 @@
},
"node_modules/debug": {
"version": "4.4.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
- "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
@@ -5102,21 +3595,15 @@
},
"node_modules/decimal.js": {
"version": "10.5.0",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz",
- "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==",
"license": "MIT"
},
"node_modules/deep-is": {
"version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true,
"license": "MIT"
},
"node_modules/define-data-property": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5133,8 +3620,6 @@
},
"node_modules/define-properties": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5151,8 +3636,6 @@
},
"node_modules/delayed-stream": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"license": "MIT",
"engines": {
"node": ">=0.4.0"
@@ -5160,8 +3643,6 @@
},
"node_modules/detect-libc": {
"version": "2.0.4",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
- "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
"devOptional": true,
"license": "Apache-2.0",
"engines": {
@@ -5170,21 +3651,14 @@
},
"node_modules/detect-node-es": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
- "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
"license": "MIT"
},
"node_modules/dnd-kit": {
"version": "0.0.2",
- "resolved": "https://registry.npmjs.org/dnd-kit/-/dnd-kit-0.0.2.tgz",
- "integrity": "sha512-d8AYd6I7D2b5u882+QNVGw0slBAt851/LWZ2j/pU+onf5/TGEKXeb47sCyhPYKEAUXp4oLfvWfNCqfkU03R1lw==",
- "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
"license": "MIT"
},
"node_modules/doctrine": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -5196,8 +3670,6 @@
},
"node_modules/dompurify": {
"version": "3.2.6",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz",
- "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==",
"license": "(MPL-2.0 OR Apache-2.0)",
"optionalDependencies": {
"@types/trusted-types": "^2.0.7"
@@ -5205,8 +3677,6 @@
},
"node_modules/dotenv": {
"version": "8.6.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
- "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
@@ -5215,8 +3685,6 @@
},
"node_modules/dunder-proto": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
@@ -5229,8 +3697,6 @@
},
"node_modules/ecdsa-sig-formatter": {
"version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
"license": "Apache-2.0",
"dependencies": {
"safe-buffer": "^5.0.1"
@@ -5238,15 +3704,11 @@
},
"node_modules/emoji-regex": {
"version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
"dev": true,
"license": "MIT"
},
"node_modules/enhanced-resolve": {
"version": "5.18.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
- "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5259,8 +3721,6 @@
},
"node_modules/entities": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
- "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
@@ -5271,8 +3731,6 @@
},
"node_modules/environment": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz",
- "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5284,8 +3742,6 @@
},
"node_modules/es-abstract": {
"version": "1.24.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz",
- "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5353,8 +3809,6 @@
},
"node_modules/es-define-property": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -5362,8 +3816,6 @@
},
"node_modules/es-errors": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -5371,8 +3823,6 @@
},
"node_modules/es-iterator-helpers": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz",
- "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5399,8 +3849,6 @@
},
"node_modules/es-object-atoms": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
@@ -5411,8 +3859,6 @@
},
"node_modules/es-set-tostringtag": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
- "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -5426,8 +3872,6 @@
},
"node_modules/es-shim-unscopables": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
- "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5439,8 +3883,6 @@
},
"node_modules/es-to-primitive": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
- "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5457,8 +3899,6 @@
},
"node_modules/escalade": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5467,8 +3907,6 @@
},
"node_modules/escape-string-regexp": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"license": "MIT",
"engines": {
"node": ">=10"
@@ -5479,8 +3917,6 @@
},
"node_modules/eslint": {
"version": "9.28.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.28.0.tgz",
- "integrity": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5540,8 +3976,6 @@
},
"node_modules/eslint-config-next": {
"version": "15.2.0",
- "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.2.0.tgz",
- "integrity": "sha512-LkG0KKpinAoNPk2HXSx0fImFb/hQ6RnhSxTkpJFTkQ0SmnzsbRsjjN95WC/mDY34nKOenpptYEVvfkCR/h+VjA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5568,8 +4002,6 @@
},
"node_modules/eslint-config-prettier": {
"version": "10.1.5",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz",
- "integrity": "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==",
"dev": true,
"license": "MIT",
"bin": {
@@ -5584,8 +4016,6 @@
},
"node_modules/eslint-import-resolver-node": {
"version": "0.3.9",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
- "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5596,8 +4026,6 @@
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
"version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5606,8 +4034,6 @@
},
"node_modules/eslint-import-resolver-typescript": {
"version": "3.10.1",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz",
- "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -5641,8 +4067,6 @@
},
"node_modules/eslint-module-utils": {
"version": "2.12.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
- "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5659,8 +4083,6 @@
},
"node_modules/eslint-module-utils/node_modules/debug": {
"version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5669,8 +4091,6 @@
},
"node_modules/eslint-plugin-import": {
"version": "2.31.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
- "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5703,8 +4123,6 @@
},
"node_modules/eslint-plugin-import/node_modules/debug": {
"version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5713,8 +4131,6 @@
},
"node_modules/eslint-plugin-import/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -5723,8 +4139,6 @@
},
"node_modules/eslint-plugin-jsx-a11y": {
"version": "6.10.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz",
- "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5753,8 +4167,6 @@
},
"node_modules/eslint-plugin-react": {
"version": "7.37.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz",
- "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5786,8 +4198,6 @@
},
"node_modules/eslint-plugin-react-hooks": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz",
- "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5799,8 +4209,6 @@
},
"node_modules/eslint-plugin-react/node_modules/resolve": {
"version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5817,8 +4225,6 @@
},
"node_modules/eslint-plugin-react/node_modules/semver": {
"version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
@@ -5827,8 +4233,6 @@
},
"node_modules/eslint-scope": {
"version": "8.4.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
- "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -5844,8 +4248,6 @@
},
"node_modules/eslint-visitor-keys": {
"version": "4.2.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
- "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -5857,8 +4259,6 @@
},
"node_modules/espree": {
"version": "10.4.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
- "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -5875,8 +4275,6 @@
},
"node_modules/esquery": {
"version": "1.6.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
- "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
@@ -5888,8 +4286,6 @@
},
"node_modules/esrecurse": {
"version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -5901,8 +4297,6 @@
},
"node_modules/estraverse": {
"version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
@@ -5911,8 +4305,6 @@
},
"node_modules/esutils": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
@@ -5921,21 +4313,15 @@
},
"node_modules/eventemitter3": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
- "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
"dev": true,
"license": "MIT"
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"license": "MIT"
},
"node_modules/fast-glob": {
"version": "3.3.1",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
- "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5951,8 +4337,6 @@
},
"node_modules/fast-glob/node_modules/glob-parent": {
"version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -5964,22 +4348,16 @@
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"dev": true,
"license": "MIT"
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true,
"license": "MIT"
},
"node_modules/fastq": {
"version": "1.19.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
- "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -5988,8 +4366,6 @@
},
"node_modules/file-entry-cache": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
- "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6001,8 +4377,6 @@
},
"node_modules/fill-range": {
"version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6014,8 +4388,6 @@
},
"node_modules/find-up": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6031,8 +4403,6 @@
},
"node_modules/flat-cache": {
"version": "4.0.1",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
- "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6045,15 +4415,11 @@
},
"node_modules/flatted": {
"version": "3.3.3",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
- "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
"dev": true,
"license": "ISC"
},
"node_modules/follow-redirects": {
"version": "1.15.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
- "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
"funding": [
{
"type": "individual",
@@ -6072,8 +4438,6 @@
},
"node_modules/for-each": {
"version": "0.3.5",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
- "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6088,8 +4452,6 @@
},
"node_modules/form-data": {
"version": "4.0.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz",
- "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
@@ -6104,8 +4466,6 @@
},
"node_modules/frac": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
- "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.8"
@@ -6113,8 +4473,6 @@
},
"node_modules/framer-motion": {
"version": "12.17.0",
- "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.17.0.tgz",
- "integrity": "sha512-2hISKgDk49yCLStwG1wf4Kdy/D6eBw9/eRNaWFIYoI9vMQ/Mqd1Fz+gzVlEtxJmtQ9y4IWnXm19/+UXD3dAYAA==",
"license": "MIT",
"dependencies": {
"motion-dom": "^12.17.0",
@@ -6140,15 +4498,11 @@
},
"node_modules/fs.realpath": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true,
"license": "ISC"
},
"node_modules/function-bind": {
"version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -6156,8 +4510,6 @@
},
"node_modules/function.prototype.name": {
"version": "1.1.8",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
- "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6177,8 +4529,6 @@
},
"node_modules/functions-have-names": {
"version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
"dev": true,
"license": "MIT",
"funding": {
@@ -6187,8 +4537,6 @@
},
"node_modules/get-caller-file": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true,
"license": "ISC",
"engines": {
@@ -6197,8 +4545,6 @@
},
"node_modules/get-east-asian-width": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz",
- "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6210,8 +4556,6 @@
},
"node_modules/get-intrinsic": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
@@ -6234,8 +4578,6 @@
},
"node_modules/get-nonce": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
- "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -6243,8 +4585,6 @@
},
"node_modules/get-proto": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.1",
@@ -6256,8 +4596,6 @@
},
"node_modules/get-symbol-description": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
- "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6274,8 +4612,6 @@
},
"node_modules/get-tsconfig": {
"version": "4.10.1",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
- "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6287,9 +4623,6 @@
},
"node_modules/glob": {
"version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6309,8 +4642,6 @@
},
"node_modules/glob-parent": {
"version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6322,8 +4653,6 @@
},
"node_modules/globals": {
"version": "14.0.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
- "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6335,8 +4664,6 @@
},
"node_modules/globalthis": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
- "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6352,8 +4679,6 @@
},
"node_modules/gopd": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -6364,22 +4689,16 @@
},
"node_modules/graceful-fs": {
"version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"dev": true,
"license": "ISC"
},
"node_modules/graphemer": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true,
"license": "MIT"
},
"node_modules/has-bigints": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
- "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6391,8 +4710,6 @@
},
"node_modules/has-flag": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6401,8 +4718,6 @@
},
"node_modules/has-property-descriptors": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6414,8 +4729,6 @@
},
"node_modules/has-proto": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
- "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6430,8 +4743,6 @@
},
"node_modules/has-symbols": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -6442,8 +4753,6 @@
},
"node_modules/has-tostringtag": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"license": "MIT",
"dependencies": {
"has-symbols": "^1.0.3"
@@ -6457,8 +4766,6 @@
},
"node_modules/hasown": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
@@ -6469,8 +4776,6 @@
},
"node_modules/highlight.js": {
"version": "10.7.3",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
- "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
@@ -6479,8 +4784,6 @@
},
"node_modules/html-encoding-sniffer": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
- "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"license": "MIT",
"dependencies": {
"whatwg-encoding": "^3.1.1"
@@ -6491,8 +4794,6 @@
},
"node_modules/http-proxy-agent": {
"version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"license": "MIT",
"dependencies": {
"agent-base": "^7.1.0",
@@ -6504,8 +4805,6 @@
},
"node_modules/https-proxy-agent": {
"version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"license": "MIT",
"dependencies": {
"agent-base": "^7.1.2",
@@ -6517,8 +4816,6 @@
},
"node_modules/husky": {
"version": "9.1.7",
- "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz",
- "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==",
"dev": true,
"license": "MIT",
"bin": {
@@ -6533,8 +4830,6 @@
},
"node_modules/iconv-lite": {
"version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
@@ -6545,8 +4840,6 @@
},
"node_modules/ieee754": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"dev": true,
"funding": [
{
@@ -6566,8 +4859,6 @@
},
"node_modules/ignore": {
"version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6576,8 +4867,6 @@
},
"node_modules/import-fresh": {
"version": "3.3.1",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
- "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6593,8 +4882,6 @@
},
"node_modules/imurmurhash": {
"version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6603,9 +4890,6 @@
},
"node_modules/inflight": {
"version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6615,15 +4899,11 @@
},
"node_modules/inherits": {
"version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true,
"license": "ISC"
},
"node_modules/internal-slot": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
- "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6637,8 +4917,6 @@
},
"node_modules/is-array-buffer": {
"version": "3.0.5",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
- "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6655,15 +4933,11 @@
},
"node_modules/is-arrayish": {
"version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
"license": "MIT",
"optional": true
},
"node_modules/is-async-function": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
- "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6682,8 +4956,6 @@
},
"node_modules/is-bigint": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
- "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6698,8 +4970,6 @@
},
"node_modules/is-boolean-object": {
"version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
- "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6715,8 +4985,6 @@
},
"node_modules/is-bun-module": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz",
- "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6725,8 +4993,6 @@
},
"node_modules/is-callable": {
"version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6738,8 +5004,6 @@
},
"node_modules/is-core-module": {
"version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
- "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6754,8 +5018,6 @@
},
"node_modules/is-data-view": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
- "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6772,8 +5034,6 @@
},
"node_modules/is-date-object": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
- "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6789,8 +5049,6 @@
},
"node_modules/is-extglob": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6799,8 +5057,6 @@
},
"node_modules/is-finalizationregistry": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
- "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6815,8 +5071,6 @@
},
"node_modules/is-fullwidth-code-point": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
- "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6828,8 +5082,6 @@
},
"node_modules/is-generator-function": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
- "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6847,8 +5099,6 @@
},
"node_modules/is-glob": {
"version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6860,8 +5110,6 @@
},
"node_modules/is-map": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
- "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6873,8 +5121,6 @@
},
"node_modules/is-negative-zero": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
- "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6886,8 +5132,6 @@
},
"node_modules/is-number": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6896,8 +5140,6 @@
},
"node_modules/is-number-object": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
- "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6913,14 +5155,10 @@
},
"node_modules/is-potential-custom-element-name": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
- "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
"license": "MIT"
},
"node_modules/is-regex": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
- "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6938,8 +5176,6 @@
},
"node_modules/is-set": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
- "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6951,8 +5187,6 @@
},
"node_modules/is-shared-array-buffer": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
- "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6967,8 +5201,6 @@
},
"node_modules/is-string": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
- "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6984,8 +5216,6 @@
},
"node_modules/is-symbol": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
- "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7002,8 +5232,6 @@
},
"node_modules/is-typed-array": {
"version": "1.1.15",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
- "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7018,8 +5246,6 @@
},
"node_modules/is-weakmap": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
- "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7031,8 +5257,6 @@
},
"node_modules/is-weakref": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
- "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7047,8 +5271,6 @@
},
"node_modules/is-weakset": {
"version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
- "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7064,22 +5286,16 @@
},
"node_modules/isarray": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
"dev": true,
"license": "MIT"
},
"node_modules/isexe": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true,
"license": "ISC"
},
"node_modules/isomorphic-dompurify": {
"version": "2.25.0",
- "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.25.0.tgz",
- "integrity": "sha512-bcpJzu9DOjN21qaCVpcoCwUX1ytpvA6EFqCK5RNtPg5+F0Jz9PX50jl6jbEicBNeO87eDDfC7XtPs4zjDClZJg==",
"license": "MIT",
"dependencies": {
"dompurify": "^3.2.6",
@@ -7091,8 +5307,6 @@
},
"node_modules/iterator.prototype": {
"version": "1.1.5",
- "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz",
- "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7109,8 +5323,6 @@
},
"node_modules/jiti": {
"version": "2.4.2",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz",
- "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
"dev": true,
"license": "MIT",
"bin": {
@@ -7119,9 +5331,6 @@
},
"node_modules/jose": {
"version": "1.28.2",
- "resolved": "https://registry.npmjs.org/jose/-/jose-1.28.2.tgz",
- "integrity": "sha512-wWy51U2MXxYi3g8zk2lsQ8M6O1lartpkxuq1TYexzPKYLgHLZkCjklaATP36I5BUoWjF2sInB9U1Qf18fBZxNA==",
- "deprecated": "this version is no longer supported",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7136,14 +5345,10 @@
},
"node_modules/js-tokens": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"license": "MIT"
},
"node_modules/js-yaml": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7155,8 +5360,6 @@
},
"node_modules/jsdom": {
"version": "26.1.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz",
- "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==",
"license": "MIT",
"dependencies": {
"cssstyle": "^4.2.1",
@@ -7194,29 +5397,21 @@
},
"node_modules/json-buffer": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
"dev": true,
"license": "MIT"
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
"license": "MIT"
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true,
"license": "MIT"
},
"node_modules/json5": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7228,8 +5423,6 @@
},
"node_modules/jsonwebtoken": {
"version": "9.0.2",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
- "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
"license": "MIT",
"dependencies": {
"jws": "^3.2.2",
@@ -7250,8 +5443,6 @@
},
"node_modules/jsx-ast-utils": {
"version": "3.3.5",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
- "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7266,8 +5457,6 @@
},
"node_modules/jwa": {
"version": "1.4.2",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz",
- "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==",
"license": "MIT",
"dependencies": {
"buffer-equal-constant-time": "^1.0.1",
@@ -7277,8 +5466,6 @@
},
"node_modules/jws": {
"version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"license": "MIT",
"dependencies": {
"jwa": "^1.4.1",
@@ -7287,8 +5474,6 @@
},
"node_modules/katex": {
"version": "0.16.22",
- "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz",
- "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==",
"funding": [
"https://opencollective.com/katex",
"https://github.com/sponsors/katex"
@@ -7303,8 +5488,6 @@
},
"node_modules/keyv": {
"version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7313,15 +5496,11 @@
},
"node_modules/language-subtag-registry": {
"version": "0.3.23",
- "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
- "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==",
"dev": true,
"license": "CC0-1.0"
},
"node_modules/language-tags": {
"version": "1.0.9",
- "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
- "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7333,8 +5512,6 @@
},
"node_modules/levn": {
"version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7347,8 +5524,6 @@
},
"node_modules/lightningcss": {
"version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz",
- "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==",
"dev": true,
"license": "MPL-2.0",
"dependencies": {
@@ -7374,199 +5549,8 @@
"lightningcss-win32-x64-msvc": "1.30.1"
}
},
- "node_modules/lightningcss-darwin-arm64": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz",
- "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-darwin-x64": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz",
- "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-freebsd-x64": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz",
- "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm-gnueabihf": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz",
- "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-gnu": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz",
- "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-arm64-musl": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz",
- "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-gnu": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz",
- "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-linux-x64-musl": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz",
- "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/lightningcss-win32-arm64-msvc": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz",
- "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MPL-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
"node_modules/lightningcss-win32-x64-msvc": {
"version": "1.30.1",
- "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz",
- "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==",
"cpu": [
"x64"
],
@@ -7586,8 +5570,6 @@
},
"node_modules/lilconfig": {
"version": "3.1.3",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
- "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7599,8 +5581,6 @@
},
"node_modules/linkify-it": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
- "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
"license": "MIT",
"dependencies": {
"uc.micro": "^2.0.0"
@@ -7608,8 +5588,6 @@
},
"node_modules/lint-staged": {
"version": "16.1.0",
- "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.1.0.tgz",
- "integrity": "sha512-HkpQh69XHxgCjObjejBT3s2ILwNjFx8M3nw+tJ/ssBauDlIpkx2RpqWSi1fBgkXLSSXnbR3iEq1NkVtpvV+FLQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7636,8 +5614,6 @@
},
"node_modules/lint-staged/node_modules/chalk": {
"version": "5.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
- "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7649,8 +5625,6 @@
},
"node_modules/lint-staged/node_modules/commander": {
"version": "14.0.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz",
- "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7659,8 +5633,6 @@
},
"node_modules/listr2": {
"version": "8.3.3",
- "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.3.3.tgz",
- "integrity": "sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7677,8 +5649,6 @@
},
"node_modules/locate-path": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7693,57 +5663,39 @@
},
"node_modules/lodash.includes": {
"version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
- "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
"license": "MIT"
},
"node_modules/lodash.isboolean": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
"license": "MIT"
},
"node_modules/lodash.isinteger": {
"version": "4.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
- "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
"license": "MIT"
},
"node_modules/lodash.isnumber": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
- "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
"license": "MIT"
},
"node_modules/lodash.isplainobject": {
"version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
"license": "MIT"
},
"node_modules/lodash.isstring": {
"version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
"license": "MIT"
},
"node_modules/lodash.merge": {
"version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true,
"license": "MIT"
},
"node_modules/lodash.once": {
"version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
"license": "MIT"
},
"node_modules/log-update": {
"version": "6.1.0",
- "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz",
- "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7762,8 +5714,6 @@
},
"node_modules/log-update/node_modules/ansi-styles": {
"version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7775,8 +5725,6 @@
},
"node_modules/log-update/node_modules/is-fullwidth-code-point": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz",
- "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7791,8 +5739,6 @@
},
"node_modules/log-update/node_modules/slice-ansi": {
"version": "7.1.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz",
- "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7808,8 +5754,6 @@
},
"node_modules/loose-envify": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"license": "MIT",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
@@ -7820,14 +5764,10 @@
},
"node_modules/lru-cache": {
"version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"license": "ISC"
},
"node_modules/lucide-react": {
"version": "0.503.0",
- "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.503.0.tgz",
- "integrity": "sha512-HGGkdlPWQ0vTF8jJ5TdIqhQXZi6uh3LnNgfZ8MHiuxFfX3RZeA79r2MW2tHAZKlAVfoNE8esm3p+O6VkIvpj6w==",
"license": "ISC",
"peerDependencies": {
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
@@ -7835,8 +5775,6 @@
},
"node_modules/magic-string": {
"version": "0.30.17",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
- "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7845,8 +5783,6 @@
},
"node_modules/markdown-it": {
"version": "14.1.0",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
- "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1",
@@ -7862,8 +5798,6 @@
},
"node_modules/markdown-it/node_modules/entities": {
"version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
@@ -7874,8 +5808,6 @@
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -7883,14 +5815,10 @@
},
"node_modules/mdurl": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
- "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
"license": "MIT"
},
"node_modules/merge2": {
"version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7899,8 +5827,6 @@
},
"node_modules/micromatch": {
"version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7913,8 +5839,6 @@
},
"node_modules/mime-db": {
"version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -7922,8 +5846,6 @@
},
"node_modules/mime-types": {
"version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
@@ -7934,8 +5856,6 @@
},
"node_modules/mimic-function": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz",
- "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7947,8 +5867,6 @@
},
"node_modules/minimatch": {
"version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -7960,8 +5878,6 @@
},
"node_modules/minimist": {
"version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true,
"license": "MIT",
"funding": {
@@ -7970,8 +5886,6 @@
},
"node_modules/minipass": {
"version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
"license": "ISC",
"engines": {
@@ -7980,8 +5894,6 @@
},
"node_modules/minizlib": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz",
- "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7993,8 +5905,6 @@
},
"node_modules/mkdirp": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
"license": "MIT",
"bin": {
@@ -8006,14 +5916,10 @@
},
"node_modules/monaco-editor": {
"version": "0.52.2",
- "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.52.2.tgz",
- "integrity": "sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==",
"license": "MIT"
},
"node_modules/motion-dom": {
"version": "12.17.0",
- "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.17.0.tgz",
- "integrity": "sha512-FA6/c70R9NKs3g41XDVONzmUUrEmyaifLVGCWtAmHP0usDnX9W+RN/tmbC4EUl0w6yLGvMTOwnWCFVgA5luhRg==",
"license": "MIT",
"dependencies": {
"motion-utils": "^12.12.1"
@@ -8021,20 +5927,14 @@
},
"node_modules/motion-utils": {
"version": "12.12.1",
- "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.12.1.tgz",
- "integrity": "sha512-f9qiqUHm7hWSLlNW8gS9pisnsN7CRFRD58vNjptKdsqFLpkVnX00TNeD6Q0d27V9KzT7ySFyK1TZ/DShfVOv6w==",
"license": "MIT"
},
"node_modules/ms": {
"version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"license": "MIT"
},
"node_modules/mz": {
"version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8045,8 +5945,6 @@
},
"node_modules/nano-spawn": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-1.0.2.tgz",
- "integrity": "sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8058,8 +5956,6 @@
},
"node_modules/nanoid": {
"version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
@@ -8076,8 +5972,6 @@
},
"node_modules/napi-postinstall": {
"version": "0.2.4",
- "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz",
- "integrity": "sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -8092,15 +5986,11 @@
},
"node_modules/natural-compare": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true,
"license": "MIT"
},
"node_modules/next": {
"version": "15.3.3",
- "resolved": "https://registry.npmjs.org/next/-/next-15.3.3.tgz",
- "integrity": "sha512-JqNj29hHNmCLtNvd090SyRbXJiivQ+58XjCcrC50Crb5g5u2zi7Y2YivbsEfzk6AtVI80akdOQbaMZwWB1Hthw==",
"license": "MIT",
"dependencies": {
"@next/env": "15.3.3",
@@ -8153,8 +6043,6 @@
},
"node_modules/next-auth": {
"version": "5.0.0-beta.28",
- "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-5.0.0-beta.28.tgz",
- "integrity": "sha512-2RDR1h3DJb4nizcd5UBBwC2gtyP7j/jTvVLvEtDaFSKUWNfou3Gek2uTNHSga/Q4I/GF+OJobA4mFbRaWJgIDQ==",
"license": "ISC",
"dependencies": {
"@auth/core": "0.39.1"
@@ -8180,8 +6068,6 @@
},
"node_modules/next-themes": {
"version": "0.4.6",
- "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz",
- "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==",
"license": "MIT",
"peerDependencies": {
"react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc",
@@ -8190,8 +6076,6 @@
},
"node_modules/next/node_modules/postcss": {
"version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"funding": [
{
"type": "opencollective",
@@ -8218,14 +6102,10 @@
},
"node_modules/nwsapi": {
"version": "2.2.20",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz",
- "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==",
"license": "MIT"
},
"node_modules/oauth4webapi": {
"version": "3.5.2",
- "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.5.2.tgz",
- "integrity": "sha512-VYz5BaP3izIrUc1GAVzIoz4JnljiW0YAUFObMBwsqDnfHxz2sjLu3W7/8vE8Ms9IbMewN9+1kcvhY3tMscAeGQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/panva"
@@ -8233,8 +6113,6 @@
},
"node_modules/object-assign": {
"version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -8242,8 +6120,6 @@
},
"node_modules/object-inspect": {
"version": "1.13.4",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
- "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8255,8 +6131,6 @@
},
"node_modules/object-keys": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8265,8 +6139,6 @@
},
"node_modules/object.assign": {
"version": "4.1.7",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
- "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8286,8 +6158,6 @@
},
"node_modules/object.entries": {
"version": "1.1.9",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz",
- "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8302,8 +6172,6 @@
},
"node_modules/object.fromentries": {
"version": "2.0.8",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
- "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8321,8 +6189,6 @@
},
"node_modules/object.groupby": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
- "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8336,8 +6202,6 @@
},
"node_modules/object.values": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
- "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8355,8 +6219,6 @@
},
"node_modules/once": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -8365,8 +6227,6 @@
},
"node_modules/onetime": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz",
- "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8381,8 +6241,6 @@
},
"node_modules/optionator": {
"version": "0.9.4",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
- "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8399,14 +6257,10 @@
},
"node_modules/orderedmap": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz",
- "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==",
"license": "MIT"
},
"node_modules/own-keys": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
- "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8423,8 +6277,6 @@
},
"node_modules/p-limit": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8439,8 +6291,6 @@
},
"node_modules/p-locate": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8455,8 +6305,6 @@
},
"node_modules/parent-module": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8468,8 +6316,6 @@
},
"node_modules/parse5": {
"version": "7.3.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
- "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
"license": "MIT",
"dependencies": {
"entities": "^6.0.0"
@@ -8480,8 +6326,6 @@
},
"node_modules/parse5-htmlparser2-tree-adapter": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
- "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8490,15 +6334,11 @@
},
"node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
"dev": true,
"license": "MIT"
},
"node_modules/path-exists": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8507,8 +6347,6 @@
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8517,8 +6355,6 @@
},
"node_modules/path-key": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8527,21 +6363,15 @@
},
"node_modules/path-parse": {
"version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true,
"license": "MIT"
},
"node_modules/picocolors": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8553,8 +6383,6 @@
},
"node_modules/pidtree": {
"version": "0.6.0",
- "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
- "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
"dev": true,
"license": "MIT",
"bin": {
@@ -8566,8 +6394,6 @@
},
"node_modules/possible-typed-array-names": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
- "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8576,8 +6402,6 @@
},
"node_modules/postcss": {
"version": "8.5.4",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz",
- "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==",
"dev": true,
"funding": [
{
@@ -8605,8 +6429,6 @@
},
"node_modules/preact": {
"version": "10.24.3",
- "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz",
- "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==",
"license": "MIT",
"funding": {
"type": "opencollective",
@@ -8615,8 +6437,6 @@
},
"node_modules/preact-render-to-string": {
"version": "6.5.11",
- "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.5.11.tgz",
- "integrity": "sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==",
"license": "MIT",
"peerDependencies": {
"preact": ">=10"
@@ -8624,8 +6444,6 @@
},
"node_modules/prelude-ls": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8634,8 +6452,6 @@
},
"node_modules/prettier": {
"version": "3.5.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
- "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"dev": true,
"license": "MIT",
"bin": {
@@ -8650,8 +6466,6 @@
},
"node_modules/prop-types": {
"version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"license": "MIT",
"dependencies": {
"loose-envify": "^1.4.0",
@@ -8661,8 +6475,6 @@
},
"node_modules/prosemirror-changeset": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.3.1.tgz",
- "integrity": "sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==",
"license": "MIT",
"dependencies": {
"prosemirror-transform": "^1.0.0"
@@ -8670,8 +6482,6 @@
},
"node_modules/prosemirror-collab": {
"version": "1.3.1",
- "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz",
- "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==",
"license": "MIT",
"dependencies": {
"prosemirror-state": "^1.0.0"
@@ -8679,8 +6489,6 @@
},
"node_modules/prosemirror-commands": {
"version": "1.7.1",
- "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz",
- "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==",
"license": "MIT",
"dependencies": {
"prosemirror-model": "^1.0.0",
@@ -8690,8 +6498,6 @@
},
"node_modules/prosemirror-dropcursor": {
"version": "1.8.2",
- "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.2.tgz",
- "integrity": "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==",
"license": "MIT",
"dependencies": {
"prosemirror-state": "^1.0.0",
@@ -8701,8 +6507,6 @@
},
"node_modules/prosemirror-gapcursor": {
"version": "1.3.2",
- "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz",
- "integrity": "sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==",
"license": "MIT",
"dependencies": {
"prosemirror-keymap": "^1.0.0",
@@ -8713,8 +6517,6 @@
},
"node_modules/prosemirror-history": {
"version": "1.4.1",
- "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.1.tgz",
- "integrity": "sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==",
"license": "MIT",
"dependencies": {
"prosemirror-state": "^1.2.2",
@@ -8725,8 +6527,6 @@
},
"node_modules/prosemirror-inputrules": {
"version": "1.5.0",
- "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.0.tgz",
- "integrity": "sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==",
"license": "MIT",
"dependencies": {
"prosemirror-state": "^1.0.0",
@@ -8735,8 +6535,6 @@
},
"node_modules/prosemirror-keymap": {
"version": "1.2.3",
- "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz",
- "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==",
"license": "MIT",
"dependencies": {
"prosemirror-state": "^1.0.0",
@@ -8745,8 +6543,6 @@
},
"node_modules/prosemirror-markdown": {
"version": "1.13.2",
- "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.2.tgz",
- "integrity": "sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==",
"license": "MIT",
"dependencies": {
"@types/markdown-it": "^14.0.0",
@@ -8756,8 +6552,6 @@
},
"node_modules/prosemirror-menu": {
"version": "1.2.5",
- "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.5.tgz",
- "integrity": "sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==",
"license": "MIT",
"dependencies": {
"crelt": "^1.0.0",
@@ -8768,8 +6562,6 @@
},
"node_modules/prosemirror-model": {
"version": "1.25.1",
- "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.1.tgz",
- "integrity": "sha512-AUvbm7qqmpZa5d9fPKMvH1Q5bqYQvAZWOGRvxsB6iFLyycvC9MwNemNVjHVrWgjaoxAfY8XVg7DbvQ/qxvI9Eg==",
"license": "MIT",
"dependencies": {
"orderedmap": "^2.0.0"
@@ -8777,8 +6569,6 @@
},
"node_modules/prosemirror-schema-basic": {
"version": "1.2.4",
- "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.4.tgz",
- "integrity": "sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==",
"license": "MIT",
"dependencies": {
"prosemirror-model": "^1.25.0"
@@ -8786,8 +6576,6 @@
},
"node_modules/prosemirror-schema-list": {
"version": "1.5.1",
- "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz",
- "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==",
"license": "MIT",
"dependencies": {
"prosemirror-model": "^1.0.0",
@@ -8797,8 +6585,6 @@
},
"node_modules/prosemirror-state": {
"version": "1.4.3",
- "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz",
- "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==",
"license": "MIT",
"dependencies": {
"prosemirror-model": "^1.0.0",
@@ -8808,8 +6594,6 @@
},
"node_modules/prosemirror-tables": {
"version": "1.7.1",
- "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.7.1.tgz",
- "integrity": "sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==",
"license": "MIT",
"dependencies": {
"prosemirror-keymap": "^1.2.2",
@@ -8821,8 +6605,6 @@
},
"node_modules/prosemirror-trailing-node": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-3.0.0.tgz",
- "integrity": "sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==",
"license": "MIT",
"dependencies": {
"@remirror/core-constants": "3.0.0",
@@ -8836,8 +6618,6 @@
},
"node_modules/prosemirror-transform": {
"version": "1.10.4",
- "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.4.tgz",
- "integrity": "sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==",
"license": "MIT",
"dependencies": {
"prosemirror-model": "^1.21.0"
@@ -8845,8 +6625,6 @@
},
"node_modules/prosemirror-view": {
"version": "1.40.0",
- "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.40.0.tgz",
- "integrity": "sha512-2G3svX0Cr1sJjkD/DYWSe3cfV5VPVTBOxI9XQEGWJDFEpsZb/gh4MV29ctv+OJx2RFX4BLt09i+6zaGM/ldkCw==",
"license": "MIT",
"dependencies": {
"prosemirror-model": "^1.20.0",
@@ -8856,14 +6634,10 @@
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"license": "MIT"
},
"node_modules/punycode": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -8871,8 +6645,6 @@
},
"node_modules/punycode.js": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
- "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -8880,8 +6652,6 @@
},
"node_modules/queue-microtask": {
"version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true,
"funding": [
{
@@ -8901,8 +6671,6 @@
},
"node_modules/react": {
"version": "19.1.0",
- "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
- "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -8910,8 +6678,6 @@
},
"node_modules/react-day-picker": {
"version": "9.7.0",
- "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.7.0.tgz",
- "integrity": "sha512-urlK4C9XJZVpQ81tmVgd2O7lZ0VQldZeHzNejbwLWZSkzHH498KnArT0EHNfKBOWwKc935iMLGZdxXPRISzUxQ==",
"license": "MIT",
"dependencies": {
"@date-fns/tz": "1.2.0",
@@ -8931,8 +6697,6 @@
},
"node_modules/react-day-picker/node_modules/date-fns": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
- "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
"license": "MIT",
"funding": {
"type": "github",
@@ -8941,8 +6705,6 @@
},
"node_modules/react-dom": {
"version": "19.1.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
- "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
"license": "MIT",
"dependencies": {
"scheduler": "^0.26.0"
@@ -8953,8 +6715,6 @@
},
"node_modules/react-hook-form": {
"version": "7.57.0",
- "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.57.0.tgz",
- "integrity": "sha512-RbEks3+cbvTP84l/VXGUZ+JMrKOS8ykQCRYdm5aYsxnDquL0vspsyNhGRO7pcH6hsZqWlPOjLye7rJqdtdAmlg==",
"license": "MIT",
"engines": {
"node": ">=18.0.0"
@@ -8969,14 +6729,10 @@
},
"node_modules/react-is": {
"version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"license": "MIT"
},
"node_modules/react-katex": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/react-katex/-/react-katex-3.1.0.tgz",
- "integrity": "sha512-At9uLOkC75gwn2N+ZXc5HD8TlATsB+3Hkp9OGs6uA8tM3dwZ3Wljn74Bk3JyHFPgSnesY/EMrIAB1WJwqZqejA==",
"license": "MIT",
"dependencies": {
"katex": "^0.16.0"
@@ -8988,8 +6744,6 @@
},
"node_modules/react-remove-scroll": {
"version": "2.7.1",
- "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz",
- "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==",
"license": "MIT",
"dependencies": {
"react-remove-scroll-bar": "^2.3.7",
@@ -9013,8 +6767,6 @@
},
"node_modules/react-remove-scroll-bar": {
"version": "2.3.8",
- "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz",
- "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==",
"license": "MIT",
"dependencies": {
"react-style-singleton": "^2.2.2",
@@ -9035,8 +6787,6 @@
},
"node_modules/react-resizable-panels": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-3.0.2.tgz",
- "integrity": "sha512-j4RNII75fnHkLnbsTb5G5YsDvJsSEZrJK2XSF2z0Tc2jIonYlIVir/Yh/5LvcUFCfs1HqrMAoiBFmIrRjC4XnA==",
"license": "MIT",
"peerDependencies": {
"react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc",
@@ -9045,8 +6795,6 @@
},
"node_modules/react-style-singleton": {
"version": "2.2.3",
- "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz",
- "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==",
"license": "MIT",
"dependencies": {
"get-nonce": "^1.0.0",
@@ -9067,15 +6815,11 @@
},
"node_modules/reflect-metadata": {
"version": "0.1.14",
- "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz",
- "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==",
"dev": true,
"license": "Apache-2.0"
},
"node_modules/reflect.getprototypeof": {
"version": "1.0.10",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
- "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9097,8 +6841,6 @@
},
"node_modules/regexp.prototype.flags": {
"version": "1.5.4",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
- "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9118,8 +6860,6 @@
},
"node_modules/require-directory": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9128,8 +6868,6 @@
},
"node_modules/resolve": {
"version": "1.22.10",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
- "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9149,8 +6887,6 @@
},
"node_modules/resolve-from": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9159,8 +6895,6 @@
},
"node_modules/resolve-pkg-maps": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
- "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
"dev": true,
"license": "MIT",
"funding": {
@@ -9169,8 +6903,6 @@
},
"node_modules/restore-cursor": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz",
- "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9186,8 +6918,6 @@
},
"node_modules/reusify": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
- "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9197,27 +6927,19 @@
},
"node_modules/rfdc": {
"version": "1.4.1",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
- "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
"dev": true,
"license": "MIT"
},
"node_modules/rope-sequence": {
"version": "1.3.4",
- "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz",
- "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==",
"license": "MIT"
},
"node_modules/rrweb-cssom": {
"version": "0.8.0",
- "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
- "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
"license": "MIT"
},
"node_modules/run-parallel": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"dev": true,
"funding": [
{
@@ -9240,8 +6962,6 @@
},
"node_modules/safe-array-concat": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
- "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9260,8 +6980,6 @@
},
"node_modules/safe-buffer": {
"version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
@@ -9280,8 +6998,6 @@
},
"node_modules/safe-push-apply": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
- "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9297,8 +7013,6 @@
},
"node_modules/safe-regex-test": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
- "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9315,21 +7029,15 @@
},
"node_modules/safer-buffer": {
"version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"license": "MIT"
},
"node_modules/sax": {
"version": "1.4.1",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
- "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
"dev": true,
"license": "ISC"
},
"node_modules/saxes": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
- "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
"license": "ISC",
"dependencies": {
"xmlchars": "^2.2.0"
@@ -9340,14 +7048,10 @@
},
"node_modules/scheduler": {
"version": "0.26.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
- "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
"license": "MIT"
},
"node_modules/semver": {
"version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -9358,8 +7062,6 @@
},
"node_modules/set-function-length": {
"version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9376,8 +7078,6 @@
},
"node_modules/set-function-name": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
- "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9392,8 +7092,6 @@
},
"node_modules/set-proto": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
- "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9407,8 +7105,6 @@
},
"node_modules/sha.js": {
"version": "2.4.11",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
- "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
"dev": true,
"license": "(MIT AND BSD-3-Clause)",
"dependencies": {
@@ -9421,8 +7117,6 @@
},
"node_modules/sharp": {
"version": "0.34.2",
- "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.2.tgz",
- "integrity": "sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==",
"hasInstallScript": true,
"license": "Apache-2.0",
"optional": true,
@@ -9463,8 +7157,6 @@
},
"node_modules/shebang-command": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9476,8 +7168,6 @@
},
"node_modules/shebang-regex": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9486,8 +7176,6 @@
},
"node_modules/side-channel": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
- "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9506,8 +7194,6 @@
},
"node_modules/side-channel-list": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9523,8 +7209,6 @@
},
"node_modules/side-channel-map": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
- "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9542,8 +7226,6 @@
},
"node_modules/side-channel-weakmap": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
- "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9562,8 +7244,6 @@
},
"node_modules/signal-exit": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
"license": "ISC",
"engines": {
@@ -9575,8 +7255,6 @@
},
"node_modules/simple-swizzle": {
"version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -9585,8 +7263,6 @@
},
"node_modules/slice-ansi": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
- "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9602,8 +7278,6 @@
},
"node_modules/slice-ansi/node_modules/ansi-styles": {
"version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9615,8 +7289,6 @@
},
"node_modules/sonner": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.5.tgz",
- "integrity": "sha512-YwbHQO6cSso3HBXlbCkgrgzDNIhws14r4MO87Ofy+cV2X7ES4pOoAK3+veSmVTvqNx1BWUxlhPmZzP00Crk2aQ==",
"license": "MIT",
"peerDependencies": {
"react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc",
@@ -9625,8 +7297,6 @@
},
"node_modules/source-map-js": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@@ -9634,8 +7304,6 @@
},
"node_modules/ssf": {
"version": "0.11.2",
- "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
- "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
"license": "Apache-2.0",
"dependencies": {
"frac": "~1.1.2"
@@ -9646,21 +7314,15 @@
},
"node_modules/stable-hash": {
"version": "0.0.5",
- "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz",
- "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==",
"dev": true,
"license": "MIT"
},
"node_modules/state-local": {
"version": "1.0.7",
- "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz",
- "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==",
"license": "MIT"
},
"node_modules/stop-iteration-iterator": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
- "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9673,16 +7335,12 @@
},
"node_modules/streamsearch": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/string-argv": {
"version": "0.3.2",
- "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
- "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9691,8 +7349,6 @@
},
"node_modules/string-width": {
"version": "7.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
- "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9709,15 +7365,11 @@
},
"node_modules/string-width/node_modules/emoji-regex": {
"version": "10.4.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
- "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
"dev": true,
"license": "MIT"
},
"node_modules/string.prototype.includes": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz",
- "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9731,8 +7383,6 @@
},
"node_modules/string.prototype.matchall": {
"version": "4.0.12",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
- "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9759,8 +7409,6 @@
},
"node_modules/string.prototype.repeat": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
- "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9770,8 +7418,6 @@
},
"node_modules/string.prototype.trim": {
"version": "1.2.10",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
- "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9792,8 +7438,6 @@
},
"node_modules/string.prototype.trimend": {
"version": "1.0.9",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
- "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9811,8 +7455,6 @@
},
"node_modules/string.prototype.trimstart": {
"version": "1.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
- "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9829,8 +7471,6 @@
},
"node_modules/strip-ansi": {
"version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9845,8 +7485,6 @@
},
"node_modules/strip-bom": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9855,8 +7493,6 @@
},
"node_modules/strip-json-comments": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9868,8 +7504,6 @@
},
"node_modules/styled-jsx": {
"version": "5.1.6",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
- "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==",
"license": "MIT",
"dependencies": {
"client-only": "0.0.1"
@@ -9891,8 +7525,6 @@
},
"node_modules/supports-color": {
"version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9904,8 +7536,6 @@
},
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9917,14 +7547,10 @@
},
"node_modules/symbol-tree": {
"version": "3.2.4",
- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
- "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"license": "MIT"
},
"node_modules/tailwind-merge": {
"version": "3.3.1",
- "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz",
- "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==",
"license": "MIT",
"funding": {
"type": "github",
@@ -9933,15 +7559,11 @@
},
"node_modules/tailwindcss": {
"version": "4.1.8",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.8.tgz",
- "integrity": "sha512-kjeW8gjdxasbmFKpVGrGd5T4i40mV5J2Rasw48QARfYeQ8YS9x02ON9SFWax3Qf616rt4Cp3nVNIj6Hd1mP3og==",
"dev": true,
"license": "MIT"
},
"node_modules/tapable": {
"version": "2.2.2",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
- "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -9950,8 +7572,6 @@
},
"node_modules/tar": {
"version": "7.4.3",
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz",
- "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -9968,8 +7588,6 @@
},
"node_modules/tar/node_modules/mkdirp": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
- "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -9984,8 +7602,6 @@
},
"node_modules/thenify": {
"version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9994,8 +7610,6 @@
},
"node_modules/thenify-all": {
"version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10007,8 +7621,6 @@
},
"node_modules/tinyglobby": {
"version": "0.2.14",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
- "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10024,8 +7636,6 @@
},
"node_modules/tinyglobby/node_modules/fdir": {
"version": "6.4.6",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
- "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -10039,8 +7649,6 @@
},
"node_modules/tinyglobby/node_modules/picomatch": {
"version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10052,8 +7660,6 @@
},
"node_modules/tippy.js": {
"version": "6.3.7",
- "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz",
- "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==",
"license": "MIT",
"dependencies": {
"@popperjs/core": "^2.9.0"
@@ -10061,8 +7667,6 @@
},
"node_modules/tldts": {
"version": "6.1.86",
- "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
- "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
"license": "MIT",
"dependencies": {
"tldts-core": "^6.1.86"
@@ -10073,14 +7677,10 @@
},
"node_modules/tldts-core": {
"version": "6.1.86",
- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
- "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
"license": "MIT"
},
"node_modules/to-regex-range": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10092,8 +7692,6 @@
},
"node_modules/tough-cookie": {
"version": "5.1.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
- "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"license": "BSD-3-Clause",
"dependencies": {
"tldts": "^6.1.32"
@@ -10104,8 +7702,6 @@
},
"node_modules/tr46": {
"version": "5.1.1",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
- "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"license": "MIT",
"dependencies": {
"punycode": "^2.3.1"
@@ -10116,8 +7712,6 @@
},
"node_modules/ts-api-utils": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
- "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10129,8 +7723,6 @@
},
"node_modules/tsconfig-paths": {
"version": "3.15.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
- "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10142,14 +7734,10 @@
},
"node_modules/tslib": {
"version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
},
"node_modules/tw-animate-css": {
"version": "1.3.4",
- "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.3.4.tgz",
- "integrity": "sha512-dd1Ht6/YQHcNbq0znIT6dG8uhO7Ce+VIIhZUhjsryXsMPJQz3bZg7Q2eNzLwipb25bRZslGb2myio5mScd1TFg==",
"dev": true,
"license": "MIT",
"funding": {
@@ -10158,8 +7746,6 @@
},
"node_modules/type-check": {
"version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10171,8 +7757,6 @@
},
"node_modules/typed-array-buffer": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
- "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10186,8 +7770,6 @@
},
"node_modules/typed-array-byte-length": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
- "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10206,8 +7788,6 @@
},
"node_modules/typed-array-byte-offset": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
- "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10228,8 +7808,6 @@
},
"node_modules/typed-array-length": {
"version": "1.0.7",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
- "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10249,8 +7827,6 @@
},
"node_modules/typeorm": {
"version": "0.2.45",
- "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.45.tgz",
- "integrity": "sha512-c0rCO8VMJ3ER7JQ73xfk0zDnVv0WDjpsP6Q1m6CVKul7DB9iVdWLRjPzc8v2eaeBuomsbZ2+gTaYr8k1gm3bYA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10345,8 +7921,6 @@
},
"node_modules/typeorm/node_modules/uuid": {
"version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -10355,8 +7929,6 @@
},
"node_modules/typescript": {
"version": "5.8.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
- "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -10369,14 +7941,10 @@
},
"node_modules/uc.micro": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
- "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
"license": "MIT"
},
"node_modules/unbox-primitive": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
- "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10394,14 +7962,10 @@
},
"node_modules/undici-types": {
"version": "6.21.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
- "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
"license": "MIT"
},
"node_modules/unrs-resolver": {
"version": "1.8.1",
- "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.8.1.tgz",
- "integrity": "sha512-M5++xH5Tu/m3NNAc0+dBHidXfF6bTC08mfhQ3AB5UTonEzQSH9ASC/a7EbZN3WU5m0OWMTvf12GHVJZ3uUmPtA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -10433,8 +7997,6 @@
},
"node_modules/uri-js": {
"version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -10443,8 +8005,6 @@
},
"node_modules/use-callback-ref": {
"version": "1.3.3",
- "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz",
- "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==",
"license": "MIT",
"dependencies": {
"tslib": "^2.0.0"
@@ -10464,8 +8024,6 @@
},
"node_modules/use-sidecar": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz",
- "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==",
"license": "MIT",
"dependencies": {
"detect-node-es": "^1.1.0",
@@ -10486,8 +8044,6 @@
},
"node_modules/use-sync-external-store": {
"version": "1.5.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz",
- "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==",
"license": "MIT",
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
@@ -10495,8 +8051,6 @@
},
"node_modules/uuid": {
"version": "11.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
- "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
@@ -10508,14 +8062,10 @@
},
"node_modules/w3c-keyname": {
"version": "2.2.8",
- "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz",
- "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==",
"license": "MIT"
},
"node_modules/w3c-xmlserializer": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
- "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
"license": "MIT",
"dependencies": {
"xml-name-validator": "^5.0.0"
@@ -10526,8 +8076,6 @@
},
"node_modules/webidl-conversions": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=12"
@@ -10535,8 +8083,6 @@
},
"node_modules/whatwg-encoding": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
- "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
"license": "MIT",
"dependencies": {
"iconv-lite": "0.6.3"
@@ -10547,8 +8093,6 @@
},
"node_modules/whatwg-mimetype": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
- "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -10556,8 +8100,6 @@
},
"node_modules/whatwg-url": {
"version": "14.2.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
- "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
"license": "MIT",
"dependencies": {
"tr46": "^5.1.0",
@@ -10569,8 +8111,6 @@
},
"node_modules/which": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -10585,8 +8125,6 @@
},
"node_modules/which-boxed-primitive": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
- "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10605,8 +8143,6 @@
},
"node_modules/which-builtin-type": {
"version": "1.2.1",
- "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
- "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10633,8 +8169,6 @@
},
"node_modules/which-collection": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
- "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10652,8 +8186,6 @@
},
"node_modules/which-typed-array": {
"version": "1.1.19",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
- "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10674,8 +8206,6 @@
},
"node_modules/wmf": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
- "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.8"
@@ -10683,8 +8213,6 @@
},
"node_modules/word": {
"version": "0.3.0",
- "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
- "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
"license": "Apache-2.0",
"engines": {
"node": ">=0.8"
@@ -10692,8 +8220,6 @@
},
"node_modules/word-wrap": {
"version": "1.2.5",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
- "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10702,8 +8228,6 @@
},
"node_modules/wrap-ansi": {
"version": "9.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz",
- "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10720,8 +8244,6 @@
},
"node_modules/wrap-ansi/node_modules/ansi-styles": {
"version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10733,15 +8255,11 @@
},
"node_modules/wrappy": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true,
"license": "ISC"
},
"node_modules/ws": {
"version": "8.18.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz",
- "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
@@ -10761,8 +8279,6 @@
},
"node_modules/xlsx": {
"version": "0.18.5",
- "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz",
- "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
"license": "Apache-2.0",
"dependencies": {
"adler-32": "~1.3.0",
@@ -10782,8 +8298,6 @@
},
"node_modules/xml-name-validator": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
- "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
"license": "Apache-2.0",
"engines": {
"node": ">=18"
@@ -10791,8 +8305,6 @@
},
"node_modules/xml2js": {
"version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10805,8 +8317,6 @@
},
"node_modules/xmlbuilder": {
"version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10815,14 +8325,10 @@
},
"node_modules/xmlchars": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
- "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"license": "MIT"
},
"node_modules/y18n": {
"version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"dev": true,
"license": "ISC",
"engines": {
@@ -10831,8 +8337,6 @@
},
"node_modules/yallist": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
- "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -10841,8 +8345,6 @@
},
"node_modules/yaml": {
"version": "2.8.0",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz",
- "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==",
"dev": true,
"license": "ISC",
"bin": {
@@ -10854,8 +8356,6 @@
},
"node_modules/yargs": {
"version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10873,8 +8373,6 @@
},
"node_modules/yargs-parser": {
"version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
"license": "ISC",
"engines": {
@@ -10883,8 +8381,6 @@
},
"node_modules/yargs/node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10893,15 +8389,11 @@
},
"node_modules/yargs/node_modules/emoji-regex": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true,
"license": "MIT"
},
"node_modules/yargs/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10910,8 +8402,6 @@
},
"node_modules/yargs/node_modules/string-width": {
"version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10925,8 +8415,6 @@
},
"node_modules/yargs/node_modules/strip-ansi": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10938,8 +8426,6 @@
},
"node_modules/yocto-queue": {
"version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10951,15 +8437,11 @@
},
"node_modules/zen-observable": {
"version": "0.8.15",
- "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
- "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==",
"dev": true,
"license": "MIT"
},
"node_modules/zen-observable-ts": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz",
- "integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10969,8 +8451,6 @@
},
"node_modules/zod": {
"version": "3.25.61",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.61.tgz",
- "integrity": "sha512-fzfJgUw78LTNnHujj9re1Ov/JJQkRZZGDMcYqSx7Hp4rPOkKywaFHq0S6GoHeXs0wGNE/sIOutkXgnwzrVOGCQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
From d8f7809bc527a0b44f78016c78de296898c5541b Mon Sep 17 00:00:00 2001
From: Gowtham Dhanaraju
Date: Tue, 10 Jun 2025 00:03:08 +0530
Subject: [PATCH 06/10] feat: enhance question settings and type selector with
icons and improved UI elements
---
.../question_creation/question-settings.tsx | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/src/components/question_creation/question-settings.tsx b/src/components/question_creation/question-settings.tsx
index 40f3c68..8f3e576 100644
--- a/src/components/question_creation/question-settings.tsx
+++ b/src/components/question_creation/question-settings.tsx
@@ -133,11 +133,11 @@ const QuestionSettings = ({
/>
{availableTopics.length > 0 && (
- {" "}
+ )}
+
From dee48d5b0e583b4157ce19b481802d6b13352d5c Mon Sep 17 00:00:00 2001
From: Gowtham Dhanaraju
Date: Thu, 12 Jun 2025 22:33:25 +0530
Subject: [PATCH 07/10] chore: update package-lock.json after resolving rebase
conflicts
---
package-lock.json | 105 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 105 insertions(+)
diff --git a/package-lock.json b/package-lock.json
index abc1a95..ff88287 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -627,6 +627,111 @@
"fast-glob": "3.3.1"
}
},
+ "node_modules/@next/swc-darwin-arm64": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.3.tgz",
+ "integrity": "sha512-WRJERLuH+O3oYB4yZNVahSVFmtxRNjNF1I1c34tYMoJb0Pve+7/RaLAJJizyYiFhjYNGHRAE1Ri2Fd23zgDqhg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-darwin-x64": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.3.tgz",
+ "integrity": "sha512-XHdzH/yBc55lu78k/XwtuFR/ZXUTcflpRXcsu0nKmF45U96jt1tsOZhVrn5YH+paw66zOANpOnFQ9i6/j+UYvw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-arm64-gnu": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.3.tgz",
+ "integrity": "sha512-VZ3sYL2LXB8znNGcjhocikEkag/8xiLgnvQts41tq6i+wql63SMS1Q6N8RVXHw5pEUjiof+II3HkDd7GFcgkzw==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-arm64-musl": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.3.tgz",
+ "integrity": "sha512-h6Y1fLU4RWAp1HPNJWDYBQ+e3G7sLckyBXhmH9ajn8l/RSMnhbuPBV/fXmy3muMcVwoJdHL+UtzRzs0nXOf9SA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-x64-gnu": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.3.tgz",
+ "integrity": "sha512-jJ8HRiF3N8Zw6hGlytCj5BiHyG/K+fnTKVDEKvUCyiQ/0r5tgwO7OgaRiOjjRoIx2vwLR+Rz8hQoPrnmFbJdfw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-x64-musl": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.3.tgz",
+ "integrity": "sha512-HrUcTr4N+RgiiGn3jjeT6Oo208UT/7BuTr7K0mdKRBtTbT4v9zJqCDKO97DUqqoBK1qyzP1RwvrWTvU6EPh/Cw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-arm64-msvc": {
+ "version": "15.3.3",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.3.tgz",
+ "integrity": "sha512-SxorONgi6K7ZUysMtRF3mIeHC5aA3IQLmKFQzU0OuhuUYwpOBc1ypaLJLP5Bf3M9k53KUUUj4vTPwzGvl/NwlQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
"node_modules/@next/swc-win32-x64-msvc": {
"version": "15.3.3",
"cpu": [
From 70eab761fba812a95f1836dc60736dc6fdc69f11 Mon Sep 17 00:00:00 2001
From: Gowtham Dhanaraju
Date: Sat, 14 Jun 2025 00:17:47 +0530
Subject: [PATCH 08/10] Add results types and API utilities for student and
teacher results management
- Created types for student overall results, recent test results, course results, test summaries, detailed test results, question results, and results filters.
- Implemented ResultsAPI class with methods to fetch student overview, course results, test summaries, detailed test results, and recent results.
- Added mock data for development and testing purposes for both student and teacher results.
---
.github/workflows/ci.yml | 0
package-lock.json | 30 +
package.json | 2 +
src/app/(test)/results-data/page.tsx | 10 +
src/app/(test)/results/page.tsx | 10 +
src/app/(test)/student-results/page.tsx | 200 +++
.../student-results/test/[testId]/page.tsx | 98 ++
src/app/(test)/teacher-results/page.tsx | 534 ++++++++
.../navigation/side-navbar/side-navbar.tsx | 7 +-
src/components/results/course-card.tsx | 145 ++
.../results/course-performance-chart.tsx | 0
.../results/course-results-grid.tsx | 49 +
.../results/course-results-grid.tsx.bak | 128 ++
.../results/detailed-test-result.tsx | 378 ++++++
src/components/results/index.ts | 11 +
src/components/results/performance-trends.tsx | 171 +++
src/components/results/recent-tests-card.tsx | 137 ++
src/components/results/student-overview.tsx | 12 +
.../results/student-results-card.tsx | 0
.../course-summary-card.tsx | 78 ++
.../teacher-components/course-tests-table.tsx | 122 ++
.../teacher-components/courses-grid.tsx | 139 ++
.../results/teacher-components/index.ts | 7 +
.../performance-distribution-chart.tsx | 86 ++
.../question-stats-table.tsx | 111 ++
.../teacher-components/recent-tests-card.tsx | 129 ++
.../student-results-table.tsx | 104 ++
.../results/teacher-results-card.tsx | 0
src/components/results/teacher-types.ts | 78 ++
src/components/results/test-summaries.tsx | 237 ++++
src/components/results/types.ts | 100 ++
src/lib/results-api.ts | 1169 +++++++++++++++++
32 files changed, 4281 insertions(+), 1 deletion(-)
create mode 100644 .github/workflows/ci.yml
create mode 100644 src/app/(test)/results-data/page.tsx
create mode 100644 src/app/(test)/results/page.tsx
create mode 100644 src/app/(test)/student-results/page.tsx
create mode 100644 src/app/(test)/student-results/test/[testId]/page.tsx
create mode 100644 src/app/(test)/teacher-results/page.tsx
create mode 100644 src/components/results/course-card.tsx
create mode 100644 src/components/results/course-performance-chart.tsx
create mode 100644 src/components/results/course-results-grid.tsx
create mode 100644 src/components/results/course-results-grid.tsx.bak
create mode 100644 src/components/results/detailed-test-result.tsx
create mode 100644 src/components/results/index.ts
create mode 100644 src/components/results/performance-trends.tsx
create mode 100644 src/components/results/recent-tests-card.tsx
create mode 100644 src/components/results/student-overview.tsx
create mode 100644 src/components/results/student-results-card.tsx
create mode 100644 src/components/results/teacher-components/course-summary-card.tsx
create mode 100644 src/components/results/teacher-components/course-tests-table.tsx
create mode 100644 src/components/results/teacher-components/courses-grid.tsx
create mode 100644 src/components/results/teacher-components/index.ts
create mode 100644 src/components/results/teacher-components/performance-distribution-chart.tsx
create mode 100644 src/components/results/teacher-components/question-stats-table.tsx
create mode 100644 src/components/results/teacher-components/recent-tests-card.tsx
create mode 100644 src/components/results/teacher-components/student-results-table.tsx
create mode 100644 src/components/results/teacher-results-card.tsx
create mode 100644 src/components/results/teacher-types.ts
create mode 100644 src/components/results/test-summaries.tsx
create mode 100644 src/components/results/types.ts
create mode 100644 src/lib/results-api.ts
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..e69de29
diff --git a/package-lock.json b/package-lock.json
index ff88287..229ac08 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -44,6 +44,7 @@
"@tiptap/starter-kit": "^2.12.0",
"@types/jsonwebtoken": "^9.0.9",
"axios": "^1.9.0",
+ "chart.js": "^4.4.9",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
@@ -60,6 +61,7 @@
"next-auth": "^5.0.0-beta.28",
"next-themes": "^0.4.6",
"react": "^19.0.0",
+ "react-chartjs-2": "^5.3.0",
"react-day-picker": "^9.7.0",
"react-dom": "^19.0.0",
"react-hook-form": "^7.57.0",
@@ -596,6 +598,12 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@kurkle/color": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz",
+ "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==",
+ "license": "MIT"
+ },
"node_modules/@monaco-editor/loader": {
"version": "1.5.0",
"license": "MIT",
@@ -3219,6 +3227,18 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
+ "node_modules/chart.js": {
+ "version": "4.4.9",
+ "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.9.tgz",
+ "integrity": "sha512-EyZ9wWKgpAU0fLJ43YAEIF8sr5F2W3LqbS40ZJyHIner2lY14ufqv2VMp69MAiZ2rpwxEUxEhIH/0U3xyRynxg==",
+ "license": "MIT",
+ "dependencies": {
+ "@kurkle/color": "^0.3.0"
+ },
+ "engines": {
+ "pnpm": ">=8"
+ }
+ },
"node_modules/chownr": {
"version": "3.0.0",
"dev": true,
@@ -6781,6 +6801,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-chartjs-2": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.3.0.tgz",
+ "integrity": "sha512-UfZZFnDsERI3c3CZGxzvNJd02SHjaSJ8kgW1djn65H1KK8rehwTjyrRKOG3VTMG8wtHZ5rgAO5oTHtHi9GCCmw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "chart.js": "^4.1.1",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
"node_modules/react-day-picker": {
"version": "9.7.0",
"license": "MIT",
diff --git a/package.json b/package.json
index 784c4a8..5146fe7 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,7 @@
"@tiptap/starter-kit": "^2.12.0",
"@types/jsonwebtoken": "^9.0.9",
"axios": "^1.9.0",
+ "chart.js": "^4.4.9",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
@@ -63,6 +64,7 @@
"next-auth": "^5.0.0-beta.28",
"next-themes": "^0.4.6",
"react": "^19.0.0",
+ "react-chartjs-2": "^5.3.0",
"react-day-picker": "^9.7.0",
"react-dom": "^19.0.0",
"react-hook-form": "^7.57.0",
diff --git a/src/app/(test)/results-data/page.tsx b/src/app/(test)/results-data/page.tsx
new file mode 100644
index 0000000..c661c3d
--- /dev/null
+++ b/src/app/(test)/results-data/page.tsx
@@ -0,0 +1,10 @@
+"use client";
+
+// This file is a redirect. The student results functionality has been moved to:
+// src/app/(test)/student-results/page.tsx
+
+import { redirect } from "next/navigation";
+
+export default function ResultsDataPage() {
+ redirect("/student-results");
+}
diff --git a/src/app/(test)/results/page.tsx b/src/app/(test)/results/page.tsx
new file mode 100644
index 0000000..6e051f7
--- /dev/null
+++ b/src/app/(test)/results/page.tsx
@@ -0,0 +1,10 @@
+"use client";
+
+// This file is a redirect. The student results functionality has been moved to:
+// src/app/(test)/student-results/page.tsx
+
+import { redirect } from "next/navigation";
+
+export default function ResultsPage() {
+ redirect("/student-results");
+}
diff --git a/src/app/(test)/student-results/page.tsx b/src/app/(test)/student-results/page.tsx
new file mode 100644
index 0000000..11066bc
--- /dev/null
+++ b/src/app/(test)/student-results/page.tsx
@@ -0,0 +1,200 @@
+"use client";
+
+import React, { useState, useEffect } from "react";
+import { useRouter, useSearchParams } from "next/navigation";
+import TopBar from "@/components/question_creation/top-bar";
+import {
+ StudentOverviewCard,
+ RecentTestsCard,
+ CourseResultsGrid,
+ TestSummaries,
+ StudentOverallResult,
+ CourseResult,
+ TestSummary,
+} from "@/components/results";
+import { MockResultsAPI } from "@/lib/results-api";
+
+export default function StudentResultsPage() {
+ const router = useRouter();
+ const searchParams = useSearchParams();
+ const [currentView, setCurrentView] = useState<
+ "overview" | "course" | "tests"
+ >("overview");
+ const [selectedCourseId, setSelectedCourseId] = useState(null);
+ const [studentData, setStudentData] = useState(
+ null,
+ );
+ const [courseResults, setCourseResults] = useState([]);
+ const [testSummaries, setTestSummaries] = useState([]);
+ const [loading, setLoading] = useState(true);
+ const [error, setError] = useState(null);
+
+ // Define functions before useEffect hooks
+ const loadInitialData = React.useCallback(async () => {
+ // Use a mock student ID since we're not requiring login
+ const mockStudentId = "student-1";
+
+ setLoading(true);
+ setError(null);
+
+ try {
+ // Load both student overview and course results in parallel
+ const [overview, courses] = await Promise.all([
+ MockResultsAPI.getStudentOverview(mockStudentId),
+ MockResultsAPI.getCourseResults(mockStudentId),
+ ]);
+
+ setStudentData(overview);
+ setCourseResults(courses);
+ } catch (err) {
+ console.error("Failed to load results data:", err);
+ setError("Failed to load results. Please try again.");
+ } finally {
+ setLoading(false);
+ }
+ }, []);
+
+ const loadTestSummaries = React.useCallback(async (courseId: string) => {
+ // Use a mock student ID since we're not requiring login
+ const mockStudentId = "student-1";
+
+ setLoading(true);
+ try {
+ const tests = await MockResultsAPI.getTestSummaries(
+ mockStudentId,
+ courseId,
+ );
+ setTestSummaries(tests);
+ } catch (err) {
+ console.error("Failed to load test summaries:", err);
+ setError("Failed to load test summaries. Please try again.");
+ } finally {
+ setLoading(false);
+ }
+ }, []);
+
+ // Handle URL parameters for navigation
+ useEffect(() => {
+ const view = searchParams.get("view");
+ const courseId = searchParams.get("courseId");
+
+ if (view === "course" && courseId) {
+ setCurrentView("course");
+ setSelectedCourseId(courseId);
+ loadTestSummaries(courseId);
+ } else if (view === "tests" && courseId) {
+ setCurrentView("tests");
+ setSelectedCourseId(courseId);
+ loadTestSummaries(courseId);
+ } else {
+ setCurrentView("overview");
+ setSelectedCourseId(null);
+ }
+ }, [searchParams, loadTestSummaries]);
+
+ // Load initial data
+ useEffect(() => {
+ // Load data immediately without waiting for session
+ loadInitialData();
+ }, [loadInitialData]);
+ const handleViewCourse = (courseId: string) => {
+ router.push(`/student-results?view=course&courseId=${courseId}`);
+ };
+
+ const handleViewTest = (testId: string) => {
+ router.push(`/student-results/test/${testId}`);
+ };
+ const handleBack = () => {
+ if (currentView === "course") {
+ router.push("/student-results");
+ }
+ };
+
+ const selectedCourse = courseResults.find(
+ (course) => course.courseId === selectedCourseId,
+ );
+
+ if (loading) {
+ return (
+
+ );
+ }
+
+ if (error) {
+ return (
+
+
+
+
+ Error Loading Results
+
+
{error}
+
+ Try Again
+
+
+
+
+ );
+ }
+
+ if (!studentData) {
+ return (
+
+
+
+
No results data available
+
+
+
+ );
+ }
+ return (
+
+
+
+ {currentView === "overview" && (
+ <>
+ {/* Student Overview */}
+
+
My Results
+
+ Track your academic performance and progress
+
+
+
{" "}
+ {/* Recent Tests */}
+
+ {/* Course Results */}
+
+ >
+ )}
+ {currentView === "course" && selectedCourse && (
+
+ )}
+
+
+ );
+}
diff --git a/src/app/(test)/student-results/test/[testId]/page.tsx b/src/app/(test)/student-results/test/[testId]/page.tsx
new file mode 100644
index 0000000..19d1f24
--- /dev/null
+++ b/src/app/(test)/student-results/test/[testId]/page.tsx
@@ -0,0 +1,98 @@
+"use client";
+
+import React, { useState, useEffect } from "react";
+import { useRouter, useParams } from "next/navigation";
+import TopBar from "@/components/question_creation/top-bar";
+import {
+ DetailedTestResultView,
+ DetailedTestResult,
+} from "@/components/results";
+import { MockResultsAPI } from "@/lib/results-api";
+
+export default function TestResultPage() {
+ const router = useRouter();
+ const params = useParams();
+ const [result, setResult] = useState(null);
+ const [loading, setLoading] = useState(true);
+ const [error, setError] = useState(null);
+
+ useEffect(() => {
+ const loadTestResult = async () => {
+ // Use a mock student ID since we're not requiring login
+ const mockStudentId = "student-1";
+
+ try {
+ setLoading(true);
+ setError(null);
+ const testId = params.testId as string;
+
+ const data = await MockResultsAPI.getTestResult(mockStudentId, testId);
+ setResult(data);
+ } catch (err) {
+ console.error("Failed to load test result:", err);
+ setError("Failed to load test result. Please try again.");
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ if (params.testId) {
+ loadTestResult();
+ }
+ }, [params.testId]);
+
+ const handleBack = () => {
+ router.back();
+ };
+
+ if (loading) {
+ return (
+
+
+
+
+
+
+
Loading test result...
+
+
+
+
+ );
+ }
+
+ if (error || !result) {
+ return (
+
+
+
+
+
+
+ Error Loading Test Result
+
+
+ {error || "Test result not found"}
+
+
router.back()}
+ className="px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90"
+ >
+ Go Back
+
+
+
+
+
+ );
+ }
+
+ return (
+
+ );
+}
diff --git a/src/app/(test)/teacher-results/page.tsx b/src/app/(test)/teacher-results/page.tsx
new file mode 100644
index 0000000..d3f7b99
--- /dev/null
+++ b/src/app/(test)/teacher-results/page.tsx
@@ -0,0 +1,534 @@
+"use client";
+
+import React, { useState, useEffect } from "react";
+import { useRouter, useSearchParams } from "next/navigation";
+import TopBar from "@/components/question_creation/top-bar";
+import {
+ TeacherCourseOverview,
+ TestOverview,
+ DetailedTestStatistics,
+} from "@/components/results/teacher-types";
+import { MockTeacherResultsAPI } from "@/lib/results-api";
+import {
+ CoursesGrid,
+ RecentTestsCard,
+ CourseTestsTable,
+ PerformanceDistributionChart,
+ StudentResultsTable,
+ QuestionStatsTable,
+} from "@/components/results/teacher-components";
+import { Button } from "@/components/ui/button";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import {
+ ChevronLeft,
+ Users,
+ Award,
+ BookOpen,
+ Clock,
+ FileBarChart,
+} from "lucide-react";
+import { Separator } from "@/components/ui/separator";
+import { toast } from "sonner";
+
+export default function TeacherResultsPage() {
+ const router = useRouter();
+ const searchParams = useSearchParams();
+ const [currentView, setCurrentView] = useState<
+ "overview" | "course" | "test"
+ >("overview");
+ const [selectedCourseId, setSelectedCourseId] = useState(null);
+ const [selectedTestId, setSelectedTestId] = useState(null);
+
+ const [coursesList, setCoursesList] = useState([]);
+ const [recentTests, setRecentTests] = useState([]);
+ const [courseTests, setCourseTests] = useState([]);
+ const [testStatistics, setTestStatistics] =
+ useState(null);
+
+ const [loading, setLoading] = useState(true);
+ const [error, setError] = useState(null);
+
+ // Load initial data (courses and recent tests)
+ const loadInitialData = React.useCallback(async () => {
+ const mockTeacherId = "teacher-1"; // In a real app, get from auth context
+
+ setLoading(true);
+ setError(null);
+
+ try {
+ // Load both teacher courses and recent tests in parallel
+ const [courses, tests] = await Promise.all([
+ MockTeacherResultsAPI.getTeacherCourses(mockTeacherId),
+ MockTeacherResultsAPI.getRecentTests(mockTeacherId, 3),
+ ]);
+
+ setCoursesList(courses);
+ setRecentTests(tests);
+ } catch (err) {
+ console.error("Failed to load teacher results data:", err);
+ setError("Failed to load results. Please try again.");
+ toast.error("Failed to load results data", {
+ description: "Failed to load results. Please try again.",
+ });
+ } finally {
+ setLoading(false);
+ }
+ }, []);
+
+ // Load course tests when a course is selected
+ const loadCourseTests = React.useCallback(async (courseId: string) => {
+ setLoading(true);
+
+ try {
+ const tests = await MockTeacherResultsAPI.getCourseTests(courseId);
+ setCourseTests(tests);
+ } catch (err) {
+ console.error("Failed to load course tests:", err);
+ setError("Failed to load course tests. Please try again.");
+ toast.error("Failed to load course tests", {
+ description: "Please try again",
+ });
+ } finally {
+ setLoading(false);
+ }
+ }, []);
+
+ // Load test statistics when a test is selected
+ const loadTestStatistics = React.useCallback(async (testId: string) => {
+ setLoading(true);
+
+ try {
+ const stats = await MockTeacherResultsAPI.getTestStatistics(testId);
+ setTestStatistics(stats);
+ } catch (err) {
+ console.error("Failed to load test statistics:", err);
+ setError("Failed to load test statistics. Please try again.");
+ toast.error("Failed to load test statistics", {
+ description: "Please try again",
+ });
+ } finally {
+ setLoading(false);
+ }
+ }, []);
+
+ // Handle navigation from URL parameters
+ useEffect(() => {
+ const view = searchParams.get("view");
+ const courseId = searchParams.get("courseId");
+ const testId = searchParams.get("testId");
+
+ if (view === "test" && testId) {
+ setCurrentView("test");
+ setSelectedTestId(testId);
+ loadTestStatistics(testId);
+ } else if (view === "course" && courseId) {
+ setCurrentView("course");
+ setSelectedCourseId(courseId);
+ loadCourseTests(courseId);
+ } else {
+ setCurrentView("overview");
+ setSelectedCourseId(null);
+ setSelectedTestId(null);
+ }
+ }, [searchParams, loadCourseTests, loadTestStatistics]);
+
+ // Load initial data
+ useEffect(() => {
+ loadInitialData();
+ }, [loadInitialData]);
+
+ // Navigation handlers
+ const handleViewCourse = (courseId: string) => {
+ router.push(`/teacher-results?view=course&courseId=${courseId}`);
+ };
+
+ const handleViewTest = (testId: string) => {
+ router.push(`/teacher-results?view=test&testId=${testId}`);
+ };
+
+ const handleBack = () => {
+ if (currentView === "test" && selectedCourseId) {
+ router.push(`/teacher-results?view=course&courseId=${selectedCourseId}`);
+ } else {
+ router.push("/teacher-results");
+ }
+ };
+
+ // Find selected course
+ const selectedCourse = coursesList.find(
+ (course) => course.courseId === selectedCourseId,
+ );
+ // Use the selected test ID in a meaningful way - creating document title
+ // and displaying test ID for debugging purposes when in test view
+ useEffect(() => {
+ // Update document title based on the current view
+ if (currentView === "test" && selectedTestId && testStatistics) {
+ document.title = `Test: ${testStatistics.testName} | Teacher Results`;
+ console.log(`Viewing test with ID: ${selectedTestId}`);
+ } else if (currentView === "course" && selectedCourse) {
+ document.title = `Course: ${selectedCourse.courseName} | Teacher Results`;
+ } else {
+ document.title = "Teacher Results Dashboard";
+ }
+
+ return () => {
+ document.title = "Evalify";
+ };
+ }, [currentView, selectedTestId, selectedCourse, testStatistics]);
+
+ // Loading state
+ if (loading) {
+ return (
+
+ );
+ }
+
+ // Error state
+ if (error) {
+ return (
+
+
+
+
+ Error Loading Results
+
+
{error}
+
+ Try Again
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+
+ {/* Overview Page */}
+ {currentView === "overview" && (
+ <>
+
+
+
+
+
+
Test Results & Analytics
+
+
+ Monitor student performance and test statistics across all your
+ courses
+
+
+
+
+ {/* Stats Summary Cards */}
+
+
+
+
+
+
+
+
+ Total Students
+
+
+ {coursesList.reduce(
+ (sum, course) => sum + course.totalStudents,
+ 0,
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+ Active Courses
+
+
+ {coursesList.length}
+
+
+
+
+
+
+
+
+
+
+ Avg Course Score
+
+
+ {coursesList.length > 0
+ ? (
+ coursesList.reduce(
+ (sum, course) => sum + course.averageScore,
+ 0,
+ ) / coursesList.length
+ ).toFixed(1)
+ : 0}
+ %
+
+
+
+
+
+
+
+
+
+
+
+
+ Recent Tests
+
+
+ {recentTests.length}
+
+
+
+
+
+
+ {/* Recent Tests */}
+
+
+
+
Recent Tests
+
+
+ Recently administered tests across all courses
+
+
+
+
+ {/* All Courses */}
+
+
+
+
Your Courses
+
+
+ Performance analytics for all your courses
+
+
+
+ >
+ )}
+
+ {/* Course Page */}
+ {currentView === "course" && selectedCourse && (
+ <>
+
+
+ Back to Overview
+
+
+
+ {selectedCourse.courseName}
+
+
+ {selectedCourse.courseCode} • Performance Analytics
+
+
+
+
+ {/* Course Summary Card */}
+
+
+ Course Summary
+
+
+
+
+
+
+
Students
+
+ {selectedCourse.totalStudents}
+
+
+
+
+
+
+
Tests
+
+ {selectedCourse.totalTests}
+
+
+
+
+
+
+
+ Average Score
+
+
+ {selectedCourse.averageScore.toFixed(1)}%
+
+
+
+
+
+
+
+ Completion Rate
+
+
+ {selectedCourse.completionRate}%
+
+
+
+
+
+ {" "}
+ {/* Course Tests */}
+
+
Test History
+
+ All tests administered for this course
+
+
+
+ >
+ )}
+
+ {/* Test Details Page */}
+ {currentView === "test" && testStatistics && (
+ <>
+
+
+ Back to Course
+
+
+
+ {testStatistics.testName}
+
+
+ {testStatistics.courseName} ({testStatistics.courseCode}) •
+ Test Analytics
+
+
+
+
+ {/* Test Summary */}
+
+
+ Test Overview
+
+
+
+
+
+
+
+ Average Score
+
+
+ {testStatistics.averageScore.toFixed(1)}%
+
+
+
+
+
+
+
+ Submissions
+
+
+ {testStatistics.totalSubmissions}
+
+
+
+
+
+
+
+ High / Low
+
+
+ {testStatistics.highestScore}% /{" "}
+ {testStatistics.lowestScore}%
+
+
+
+
+
+
+
+ Median Score
+
+
+ {testStatistics.medianScore}%
+
+
+
+
+
+ {" "}
+ {/* Performance Distribution Chart */}
+
+
Score Distribution
+
+ Student performance across different score ranges
+
+
+
+
+ {/* Student Results Table */}
+
+
Student Performance
+
+ Individual student scores and statistics
+
+
+
+
+ {/* Question Stats Table */}
+
+
Question Analysis
+
+ Performance metrics for each question on the test
+
+
+
+ >
+ )}
+
+
+ );
+}
diff --git a/src/components/navigation/side-navbar/side-navbar.tsx b/src/components/navigation/side-navbar/side-navbar.tsx
index 232ec9b..998cb7a 100644
--- a/src/components/navigation/side-navbar/side-navbar.tsx
+++ b/src/components/navigation/side-navbar/side-navbar.tsx
@@ -59,7 +59,7 @@ const academicsItems = [
},
{
title: "Results",
- url: "/result",
+ url: "/student-results",
icon: Trophy,
},
];
@@ -70,6 +70,11 @@ const administrationItems = [
url: "/user",
icon: Users,
},
+ {
+ title: "Teacher Results",
+ url: "/teacher-results",
+ icon: BarChart3,
+ },
{
title: "Batches",
url: "/batch",
diff --git a/src/components/results/course-card.tsx b/src/components/results/course-card.tsx
new file mode 100644
index 0000000..36947e6
--- /dev/null
+++ b/src/components/results/course-card.tsx
@@ -0,0 +1,145 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import { Progress } from "@/components/ui/progress";
+import { ChevronRight } from "lucide-react";
+import { CourseResult } from "./types";
+
+interface CourseCardProps {
+ course: CourseResult;
+ onViewCourse: (courseId: string) => void;
+}
+
+export const CourseCard: React.FC = ({
+ course,
+ onViewCourse,
+}) => {
+ // We're using sorted data to calculate trends
+
+ // Sort tests by completion date
+ const sortedTests = [...(course.tests || [])].sort(
+ (a, b) =>
+ new Date(a.completedAt).getTime() - new Date(b.completedAt).getTime(),
+ );
+
+ const scores = sortedTests.map((test) => test.percentage);
+ const averageScore =
+ scores.length > 0
+ ? scores.reduce((sum, score) => sum + score, 0) / scores.length
+ : 0;
+
+ const latestScore = scores.length > 0 ? scores[scores.length - 1] : 0;
+
+ // Get trend (improving, stable, declining)
+ const getTrend = () => {
+ if (scores.length < 2) return "Not enough data";
+
+ const firstHalf = scores.slice(0, Math.floor(scores.length / 2));
+ const secondHalf = scores.slice(Math.floor(scores.length / 2));
+
+ const firstAvg =
+ firstHalf.reduce((sum, score) => sum + score, 0) / firstHalf.length;
+ const secondAvg =
+ secondHalf.reduce((sum, score) => sum + score, 0) / secondHalf.length;
+
+ const diff = secondAvg - firstAvg;
+
+ if (diff >= 5) return "Improving";
+ if (diff <= -5) return "Declining";
+ return "Stable";
+ };
+
+ const trend = getTrend();
+ const trendColor =
+ trend === "Improving"
+ ? "text-green-600"
+ : trend === "Declining"
+ ? "text-red-600"
+ : "text-amber-600";
+
+ return (
+
+ onViewCourse(course.courseId)}
+ >
+
+
+ {course.courseName}
+
+ {course.courseCode}
+
+
+
+
+
+
+
+ {/* Progress Overview */}
+
+
+ Progress
+
+ {course.completedTests}/{course.totalTests} tests
+
+
+
+
+
+ {/* Stats Summary */}
+
+
+
Average
+
{averageScore.toFixed(1)}%
+
+
+
Latest
+
{latestScore.toFixed(1)}%
+
+
+
Highest
+
+ {course.highestScore.toFixed(1)}%
+
+
+
+
+
+ {sortedTests.length === 0 && (
+
+
+ No test data available
+
+
+ Complete tests to see performance
+
+
+ )}
+
+ {sortedTests.length > 0 && (
+
+
+ Recent tests:
+
+ {sortedTests
+ .slice(-3)
+ .reverse()
+ .map((test) => (
+
+ {test.testName}: {test.percentage.toFixed(0)}%
+
+ ))}
+
+ )}
+
+
+ );
+};
diff --git a/src/components/results/course-performance-chart.tsx b/src/components/results/course-performance-chart.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/components/results/course-results-grid.tsx b/src/components/results/course-results-grid.tsx
new file mode 100644
index 0000000..8e5de3c
--- /dev/null
+++ b/src/components/results/course-results-grid.tsx
@@ -0,0 +1,49 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import { BookOpen } from "lucide-react";
+import { CourseResult } from "./types";
+import { CourseCard } from "./course-card";
+
+interface CourseResultsGridProps {
+ courses: CourseResult[];
+ onViewCourse: (courseId: string) => void;
+}
+
+export const CourseResultsGrid: React.FC = ({
+ courses,
+ onViewCourse,
+}) => {
+ return (
+
+
+
Course-wise Results
+ {courses.length} Courses
+
+
+ {courses.length === 0 ? (
+
+
+
+ No Course Results
+
+ You haven't taken any tests yet. Start with your first quiz!
+
+
+
+ ) : (
+
+ {courses.map((course) => (
+
+ ))}
+
+ )}
+
+ );
+};
diff --git a/src/components/results/course-results-grid.tsx.bak b/src/components/results/course-results-grid.tsx.bak
new file mode 100644
index 0000000..42ff484
--- /dev/null
+++ b/src/components/results/course-results-grid.tsx.bak
@@ -0,0 +1,128 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import { Progress } from "@/components/ui/progress";
+import {
+ ChevronRight,
+ BookOpen
+} from "lucide-react";
+import { CourseResult } from "./types";
+import { CoursePerformanceChart } from "./course-performance-chart";
+
+interface CourseResultsGridProps {
+ courses: CourseResult[];
+ onViewCourse: (courseId: string) => void;
+}
+
+export const CourseResultsGrid: React.FC = ({
+ courses,
+ onViewCourse
+}) => {
+ const getPerformanceColor = (percentage: number) => {
+ if (percentage >= 90) return 'text-green-600 bg-green-50 dark:bg-green-900/20';
+ if (percentage >= 75) return 'text-blue-600 bg-blue-50 dark:bg-blue-900/20';
+ if (percentage >= 60) return 'text-yellow-600 bg-yellow-50 dark:bg-yellow-900/20';
+ return 'text-red-600 bg-red-50 dark:bg-red-900/20';
+ };
+
+ return (
+
+
+
Course-wise Results
+ {courses.length} Courses
+
+
+ {courses.length === 0 ? (
+
+
+
+ No Course Results
+
+ You haven't taken any tests yet. Start with your first quiz!
+
+
+
+ ) : (
+ {courses.map((course) => (
+
+
+
+
+ {course.courseName}
+
+ {course.courseCode}
+
+
+
onViewCourse(course.courseId)}
+ >
+ View Details
+
+
+
+
+
+ {/* Progress Overview */}
+
+
+ Progress
+
+ {course.completedTests}/{course.totalTests} tests
+
+
+
+
+
+ {/* Course Performance Chart */}
+
+ Best Score
+
+
+ {course.highestScore}%
+
+
+
+
+ {/* Last Activity */}
+
+
+ Last test
+ {new Date(course.lastTestDate).toLocaleDateString()}
+
+
+
+ {/* Action Button */}
+ {
+ e.stopPropagation();
+ onViewCourse(course.courseId);
+ }}
+ >
+
+ View Test Details
+
+
+
+ ))}
+
+ )}
+
+ );
+};
diff --git a/src/components/results/detailed-test-result.tsx b/src/components/results/detailed-test-result.tsx
new file mode 100644
index 0000000..911d033
--- /dev/null
+++ b/src/components/results/detailed-test-result.tsx
@@ -0,0 +1,378 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import { Progress } from "@/components/ui/progress";
+import { Separator } from "@/components/ui/separator";
+import {
+ ArrowLeft,
+ Clock,
+ Target,
+ FileText,
+ Calendar,
+ CheckCircle,
+ XCircle,
+ HelpCircle,
+ BarChart3,
+} from "lucide-react";
+import { DetailedTestResult, QuestionResult } from "./types";
+
+interface DetailedTestResultProps {
+ result: DetailedTestResult;
+ onBack: () => void;
+}
+
+export const DetailedTestResultView: React.FC = ({
+ result,
+ onBack,
+}) => {
+ const getScoreColor = (percentage: number) => {
+ if (percentage >= 90) return "text-green-600";
+ if (percentage >= 75) return "text-blue-600";
+ if (percentage >= 60) return "text-yellow-600";
+ return "text-red-600";
+ };
+
+ const getQuestionIcon = (isCorrect: boolean, questionType: string) => {
+ if (questionType === "descriptive" || questionType === "coding") {
+ return ;
+ }
+ return isCorrect ? (
+
+ ) : (
+
+ );
+ };
+
+ const renderAnswer = (question: QuestionResult) => {
+ switch (question.questionType) {
+ case "mcq":
+ return (
+
+ {question.options?.map((option, index) => (
+
+
+
+ {String.fromCharCode(65 + index)}.
+
+ {option.text}
+ {option.isCorrect && (
+
+ Correct
+
+ )}
+ {question.studentAnswer === option.id &&
+ !option.isCorrect && (
+
+ Your Answer
+
+ )}
+
+
+ ))}
+
+ );
+
+ case "true-false":
+ return (
+
+
+
+ Your Answer:{" "}
+
+ {typeof question.studentAnswer === "boolean"
+ ? question.studentAnswer
+ ? "True"
+ : "False"
+ : String(question.studentAnswer)}
+
+
+
+ Correct Answer:
+
+ {typeof question.correctAnswer === "boolean"
+ ? question.correctAnswer
+ ? "True"
+ : "False"
+ : String(question.correctAnswer)}
+
+
+
+
+ );
+
+ case "fillup":
+ return (
+
+
+
+ Your Answer:
+ {" "}
+
+ {!question.studentAnswer
+ ? "No answer provided"
+ : Array.isArray(question.studentAnswer)
+ ? question.studentAnswer.join(", ")
+ : typeof question.studentAnswer === "object"
+ ? JSON.stringify(question.studentAnswer)
+ : String(question.studentAnswer)}
+
+
+
+
+ Correct Answer:
+ {" "}
+
+ {Array.isArray(question.correctAnswer)
+ ? question.correctAnswer.join(", ")
+ : typeof question.correctAnswer === "object"
+ ? JSON.stringify(question.correctAnswer)
+ : String(question.correctAnswer)}
+
+
+
+ );
+
+ default:
+ return (
+
+
+ Answer review not available for this question type
+
+
+ );
+ }
+ };
+
+ return (
+
+ {/* Header */}
+
+
+
+
+ Back to Tests
+
+
+
{result.testName}
+
+ {result.courseName} ({result.courseCode})
+
+
+
+
+
+ {/* Test Summary */}
+
+
+
+
+ Test Summary
+
+
+
+
+ {/* Score */}
+
+
+
+ Final Score
+
+
+ {result.score}/{result.maxScore}
+
+
+ {result.percentage}%
+
+
+
+
+ {/* Time */}
+
+
+
+ Time Taken
+
+
{result.timeTaken}m
+
+ of {result.totalTime}m allocated
+
+
+
+ {/* Questions */}
+
+
+
+ Questions
+
+
+ {result.summary.correctAnswers}
+
+
+ of {result.summary.totalQuestions} correct
+
+
+
+ {/* Date */}
+
+
+
+ Completed
+
+
+ {new Date(result.completedAt).toLocaleDateString()}
+
+
+ {new Date(result.completedAt).toLocaleTimeString()}
+
+
+
+
+
+
+ {/* Detailed Stats */}
+
+
+
+ {result.summary.correctAnswers}
+
+
Correct
+
+
+
+ {result.summary.incorrectAnswers}
+
+
Incorrect
+
+
+
+ {result.summary.unanswered}
+
+
Unanswered
+
+
+
+ {result.summary.timePerQuestion.toFixed(1)}m
+
+
Avg Time/Q
+
+
+
+
+
+ {/* Question by Question Analysis */}
+
+
+ Question-wise Analysis
+
+
+
+ {result.questions.map((question, index) => (
+
+ {/* Question Header */}
+
+
+ {getQuestionIcon(question.isCorrect, question.questionType)}
+
+
Question {index + 1}
+
+
+ {question.questionType.toUpperCase()}
+
+ {question.marks} marks
+ •
+ {question.timeTaken}s
+
+
+
+
+ {question.isCorrect ? "Correct" : "Incorrect"}
+
+
+
+ {/* Question Text */}
+
+
+ {/* Answer Section */}
+
+
+ Your Answer vs Correct Answer
+
+ {renderAnswer(question)}
+
+
+ {/* Explanation */}
+ {question.explanation && (
+
+ )}
+
+ ))}
+
+
+
+
+ );
+};
diff --git a/src/components/results/index.ts b/src/components/results/index.ts
new file mode 100644
index 0000000..dc2d47b
--- /dev/null
+++ b/src/components/results/index.ts
@@ -0,0 +1,11 @@
+// Export all results components
+export { StudentOverviewCard } from "./student-overview";
+export { RecentTestsCard } from "./recent-tests-card";
+export { CourseResultsGrid } from "./course-results-grid";
+export { CourseCard } from "./course-card";
+export { TestSummaries } from "./test-summaries";
+export { DetailedTestResultView } from "./detailed-test-result";
+export { PerformanceTrends } from "./performance-trends";
+
+// Export types
+export type * from "./types";
diff --git a/src/components/results/performance-trends.tsx b/src/components/results/performance-trends.tsx
new file mode 100644
index 0000000..54dee65
--- /dev/null
+++ b/src/components/results/performance-trends.tsx
@@ -0,0 +1,171 @@
+"use client";
+
+import React, { useState } from "react";
+import { Badge } from "@/components/ui/badge";
+import { ChevronDown, ChevronUp } from "lucide-react";
+import { Button } from "@/components/ui/button";
+import { TestSummary } from "./types";
+
+interface PerformanceTrendsProps {
+ tests: TestSummary[];
+ courseName: string;
+}
+
+export const PerformanceTrends: React.FC = ({
+ tests,
+ courseName,
+}) => {
+ const [isExpanded, setIsExpanded] = useState(false);
+
+ // Sort tests by completion date
+ const sortedTests = [...tests].sort(
+ (a, b) =>
+ new Date(a.completedAt).getTime() - new Date(b.completedAt).getTime(),
+ );
+
+ const scores = sortedTests.map((test) => test.percentage);
+
+ // Calculate stats
+ const averageScore =
+ scores.length > 0
+ ? scores.reduce((sum, score) => sum + score, 0) / scores.length
+ : 0;
+
+ const highestScore = scores.length > 0 ? Math.max(...scores) : 0;
+
+ const lowestScore = scores.length > 0 ? Math.min(...scores) : 0;
+
+ const latestScore = scores.length > 0 ? scores[scores.length - 1] : 0;
+
+ // Get trend (improving, stable, declining)
+ const getTrend = () => {
+ if (scores.length < 2) return "Not enough data";
+
+ const firstHalf = scores.slice(0, Math.floor(scores.length / 2));
+ const secondHalf = scores.slice(Math.floor(scores.length / 2));
+
+ const firstAvg =
+ firstHalf.reduce((sum, score) => sum + score, 0) / firstHalf.length;
+ const secondAvg =
+ secondHalf.reduce((sum, score) => sum + score, 0) / secondHalf.length;
+
+ const diff = secondAvg - firstAvg;
+
+ if (diff >= 5) return "Improving";
+ if (diff <= -5) return "Declining";
+ return "Stable";
+ };
+
+ if (tests.length === 0) {
+ return (
+
+
+
Performance Trends
+
+
+
+ No test data available for {courseName}
+
+
+ Complete tests in this course to see performance trends
+
+
+
+ );
+ }
+
+ const trend = getTrend();
+ const trendColor =
+ trend === "Improving"
+ ? "text-green-600"
+ : trend === "Declining"
+ ? "text-red-600"
+ : "text-amber-600";
+
+ return (
+
+
setIsExpanded(!isExpanded)}
+ >
+
Performance Trends
+
+ {isExpanded ? (
+
+ ) : (
+
+ )}
+
+
+
+ {/* Always show summary stats */}
+
+
+
+
Average Score
+
+ {averageScore.toFixed(1)}%
+
+
+
+
+
Latest Score
+
{latestScore.toFixed(1)}%
+
+
+
+
Highest Score
+
+ {highestScore.toFixed(1)}%
+
+
+
+
+
+
+
+ {/* Collapsible details section */}
+ {isExpanded && (
+
+
+
Lowest Score
+
+ {lowestScore.toFixed(1)}%
+
+
+
+
+
+ Test History
+
+
+ {sortedTests.map((test, index) => (
+
+ Quiz {index + 1}: {test.percentage.toFixed(0)}% -{" "}
+ {test.testName}
+
+ ))}
+
+
+
+
+
Analysis
+
+ {trend === "Improving" &&
+ "Your scores are showing an upward trend. Keep up the good work!"}
+ {trend === "Declining" &&
+ "Your scores are declining. Consider revisiting earlier material or seeking additional help."}
+ {trend === "Stable" &&
+ "Your performance has been consistent. Focus on difficult areas to improve further."}
+ {trend === "Not enough data" &&
+ "Take more tests to see performance analysis."}
+
+
+
+ )}
+
+ );
+};
diff --git a/src/components/results/recent-tests-card.tsx b/src/components/results/recent-tests-card.tsx
new file mode 100644
index 0000000..0fdda6a
--- /dev/null
+++ b/src/components/results/recent-tests-card.tsx
@@ -0,0 +1,137 @@
+"use client";
+
+import React from "react";
+import {
+ Card,
+ CardContent,
+ CardHeader,
+ CardTitle,
+ CardFooter,
+} from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import { Progress } from "@/components/ui/progress";
+import { ChevronRight, BookOpen, Calendar } from "lucide-react";
+import { RecentTestResult } from "./types";
+
+interface RecentTestsCardProps {
+ tests: RecentTestResult[];
+ onViewTest: (testId: string) => void;
+}
+
+export const RecentTestsCard: React.FC = ({
+ tests,
+ onViewTest,
+}) => {
+ const getStatusColor = (status: string) => {
+ switch (status) {
+ case "completed":
+ return "bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-300";
+ case "in-progress":
+ return "bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-300";
+ default:
+ return "bg-gray-100 text-gray-800 dark:bg-gray-900 dark:text-gray-300";
+ }
+ }; // We use the status color instead of score color for this component
+
+ // Filter to show only tests from the last 7 days
+ const sevenDaysAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
+ const displayTests = tests
+ .filter((test) => new Date(test.completedAt) >= sevenDaysAgo)
+ .sort(
+ (a, b) =>
+ new Date(b.completedAt).getTime() - new Date(a.completedAt).getTime(),
+ ) // Most recent first
+ .slice(0, 3); // Show max 3 tests
+
+ return (
+
+
+
+ {" "}
+
+
+ Recent Tests (Last 7 Days)
+
+
+ {displayTests.length} Tests
+
+
+
+
+
+ {tests.length === 0 ? (
+
+ {" "}
+
+
No tests in the last 7 days
+
+ ) : (
+ displayTests.map((test) => (
+
+
+
+
+ {test.testName}
+
+
+ {test.status === "completed"
+ ? `${test.percentage}%`
+ : test.status}
+
+
+
+
+
+ {test.courseName}
+
+
+ {new Date(test.completedAt).toLocaleDateString()}
+
+
+
+ {test.status === "completed" && (
+
+
+
onViewTest(test.testId)}
+ className="h-6 w-6 ml-1"
+ >
+
+
+
+ )}
+
+
+ ))
+ )}
+
+
+
+ {tests.length > 0 && (
+
+ onViewTest(tests[0].testId)}
+ >
+ View All Test Results
+
+
+
+ )}
+
+ );
+};
diff --git a/src/components/results/student-overview.tsx b/src/components/results/student-overview.tsx
new file mode 100644
index 0000000..8f8b865
--- /dev/null
+++ b/src/components/results/student-overview.tsx
@@ -0,0 +1,12 @@
+"use client";
+
+import React from "react";
+
+// Using React.FC without props since this component doesn't take any props
+type StudentOverviewCardProps = React.PropsWithChildren;
+
+export const StudentOverviewCard: React.FC = () => {
+ return (
+ {/* Empty space where the cards used to be */}
+ );
+};
diff --git a/src/components/results/student-results-card.tsx b/src/components/results/student-results-card.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/components/results/teacher-components/course-summary-card.tsx b/src/components/results/teacher-components/course-summary-card.tsx
new file mode 100644
index 0000000..d3d05ec
--- /dev/null
+++ b/src/components/results/teacher-components/course-summary-card.tsx
@@ -0,0 +1,78 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { TeacherCourseOverview } from "../teacher-types";
+import { Progress } from "@/components/ui/progress";
+import { Clock, Users, Award, BookOpen } from "lucide-react";
+
+interface CourseSummaryCardProps {
+ course: TeacherCourseOverview;
+ onViewCourse: (courseId: string) => void;
+}
+
+export function CourseSummaryCard({
+ course,
+ onViewCourse,
+}: CourseSummaryCardProps) {
+ return (
+ onViewCourse(course.courseId)}
+ >
+
+
+ {course.courseName}
+
+ {course.courseCode}
+
+
+
+
+
+ Average Score
+
+ {course.averageScore.toFixed(1)}%
+
+
+
+
+
+
+
+
+
+
Students
+
{course.totalStudents}
+
+
+
+
+
+
+
Tests
+
{course.totalTests}
+
+
+
+
+
+
+
High Score
+
{course.highestScore}%
+
+
+
+
+
+
+
Completion
+
{course.completionRate}%
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/results/teacher-components/course-tests-table.tsx b/src/components/results/teacher-components/course-tests-table.tsx
new file mode 100644
index 0000000..0fcbf6e
--- /dev/null
+++ b/src/components/results/teacher-components/course-tests-table.tsx
@@ -0,0 +1,122 @@
+"use client";
+
+import React, { useState } from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { TestOverview } from "../teacher-types";
+import {
+ Table,
+ TableBody,
+ TableCell,
+ TableHead,
+ TableHeader,
+ TableRow,
+} from "@/components/ui/table";
+import { Button } from "@/components/ui/button";
+import { formatDistanceToNow } from "date-fns";
+import { Eye, Search } from "lucide-react";
+import { Input } from "@/components/ui/input";
+
+interface CourseTestsTableProps {
+ tests: TestOverview[];
+ onViewTest: (testId: string) => void;
+}
+
+export function CourseTestsTable({ tests, onViewTest }: CourseTestsTableProps) {
+ const [searchQuery, setSearchQuery] = useState("");
+
+ const filteredTests = tests.filter((test) =>
+ test.testName.toLowerCase().includes(searchQuery.toLowerCase()),
+ );
+
+ if (tests.length === 0) {
+ return (
+
+
+ Tests
+
+
+
+ No tests found for this course
+
+
+
+ );
+ }
+
+ return (
+
+
+ Tests
+
+
+
+
+
+ setSearchQuery(e.target.value)}
+ className="border-0 focus-visible:ring-0 focus-visible:ring-offset-0"
+ />
+
+
+
+
+
+ Test Name
+ Submissions
+ Avg. Score
+ High Score
+ Duration
+
+
+
+
+ {filteredTests.map((test) => (
+
+
+
+
{test.testName}
+
+ Created{" "}
+ {formatDistanceToNow(new Date(test.createdAt), {
+ addSuffix: true,
+ })}
+
+
+
+
+ {test.totalSubmissions}
+
+ {test.completionRate}% Completion
+
+
+
+ {test.averageScore.toFixed(1)}%
+
+
+ {test.highestScore}%
+
+
+ {test.duration} min
+
+
+ onViewTest(test.testId)}
+ className="h-8 gap-1"
+ >
+ View
+
+
+
+ ))}
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/results/teacher-components/courses-grid.tsx b/src/components/results/teacher-components/courses-grid.tsx
new file mode 100644
index 0000000..cc25137
--- /dev/null
+++ b/src/components/results/teacher-components/courses-grid.tsx
@@ -0,0 +1,139 @@
+"use client";
+
+import React from "react";
+import {
+ Card,
+ CardContent,
+ CardHeader,
+ CardTitle,
+ CardFooter,
+} from "@/components/ui/card";
+import { TeacherCourseOverview } from "../teacher-types";
+import { Button } from "@/components/ui/button";
+import { Award, BookOpen, ChevronRight, Users } from "lucide-react";
+
+// Function to get a color for the course card based on course code
+const getCourseColor = (courseCode: string): string => {
+ // Extract the first letter or number from the course code
+ const firstChar = courseCode.charAt(0).toLowerCase();
+
+ // Assign colors based on the first character
+ if (["a", "b", "c"].includes(firstChar))
+ return "border-blue-500 bg-blue-50 dark:bg-blue-950/30";
+ if (["d", "e", "f"].includes(firstChar))
+ return "border-emerald-500 bg-emerald-50 dark:bg-emerald-950/30";
+ if (["g", "h", "i"].includes(firstChar))
+ return "border-violet-500 bg-violet-50 dark:bg-violet-950/30";
+ if (["j", "k", "l"].includes(firstChar))
+ return "border-amber-500 bg-amber-50 dark:bg-amber-950/30";
+ if (["m", "n", "o"].includes(firstChar))
+ return "border-cyan-500 bg-cyan-50 dark:bg-cyan-950/30";
+ if (["p", "q", "r"].includes(firstChar))
+ return "border-rose-500 bg-rose-50 dark:bg-rose-950/30";
+ if (["s", "t", "u"].includes(firstChar))
+ return "border-green-500 bg-green-50 dark:bg-green-950/30";
+ if (["v", "w", "x", "y", "z"].includes(firstChar))
+ return "border-orange-500 bg-orange-50 dark:bg-orange-950/30";
+
+ // Default for numbers or other characters
+ return "border-indigo-500 bg-indigo-50 dark:bg-indigo-950/30";
+};
+
+interface CoursesGridProps {
+ courses: TeacherCourseOverview[];
+ onViewCourse: (courseId: string) => void;
+}
+
+export function CoursesGrid({ courses, onViewCourse }: CoursesGridProps) {
+ if (courses.length === 0) {
+ return (
+
+
+ No courses found
+
+
+ );
+ }
+
+ return (
+
+ {courses.map((course) => {
+ const colorClass = getCourseColor(course.courseCode);
+
+ return (
+
+
+
+
+
{course.courseName}
+
+ {course.courseCode}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Students
+
{course.totalStudents}
+
+
+
+
+
+
+
Tests
+
{course.totalTests}
+
+
+
+
+
+
+
Average
+
+ {course.averageScore.toFixed(1)}%
+
+
+
+
+
+
+
+ %
+
+
+
+
Completion
+
{course.completionRate}%
+
+
+
+
+
+
+ onViewCourse(course.courseId)}
+ className="w-full text-primary justify-between hover:bg-primary/5"
+ >
+ View Course Details
+
+
+
+
+ );
+ })}
+
+ );
+}
diff --git a/src/components/results/teacher-components/index.ts b/src/components/results/teacher-components/index.ts
new file mode 100644
index 0000000..f83360f
--- /dev/null
+++ b/src/components/results/teacher-components/index.ts
@@ -0,0 +1,7 @@
+export { CourseSummaryCard } from "./course-summary-card";
+export { CoursesGrid } from "./courses-grid";
+export { CourseTestsTable } from "./course-tests-table";
+export { RecentTestsCard } from "./recent-tests-card";
+export { PerformanceDistributionChart } from "./performance-distribution-chart";
+export { StudentResultsTable } from "./student-results-table";
+export { QuestionStatsTable } from "./question-stats-table";
diff --git a/src/components/results/teacher-components/performance-distribution-chart.tsx b/src/components/results/teacher-components/performance-distribution-chart.tsx
new file mode 100644
index 0000000..68ae66b
--- /dev/null
+++ b/src/components/results/teacher-components/performance-distribution-chart.tsx
@@ -0,0 +1,86 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { DetailedTestStatistics } from "../teacher-types";
+
+// Color gradient for the performance bars
+const getBarColor = (range: string): string => {
+ // Extract the lower bound of the range as a number
+ const lowerBound = parseInt(range.split("-")[0]);
+
+ // Use a gradient based on the performance level
+ if (lowerBound < 20) return "bg-red-500";
+ if (lowerBound < 40) return "bg-orange-500";
+ if (lowerBound < 60) return "bg-yellow-500";
+ if (lowerBound < 80) return "bg-emerald-500";
+ return "bg-green-600";
+};
+
+interface PerformanceDistributionChartProps {
+ statistics: DetailedTestStatistics;
+}
+
+export function PerformanceDistributionChart({
+ statistics,
+}: PerformanceDistributionChartProps) {
+ // Extract the performance distribution data
+ const { performanceDistribution } = statistics;
+
+ // Find the maximum count to scale the chart
+ const maxCount = Math.max(
+ ...performanceDistribution.map((item) => item.count),
+ );
+
+ // Ensure we have data to render
+ if (!performanceDistribution || performanceDistribution.length === 0) {
+ return (
+
+
+ Performance Distribution
+
+
+
+
+ No performance data available
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+
+ Performance Distribution
+
+
+
+
+ {performanceDistribution.map((range) => (
+
+
+
+
{range.range}%
+
{range.count} students
+
({range.percentage}%)
+
+
+ ))}
+
+
+
+ );
+}
diff --git a/src/components/results/teacher-components/question-stats-table.tsx b/src/components/results/teacher-components/question-stats-table.tsx
new file mode 100644
index 0000000..2d463a9
--- /dev/null
+++ b/src/components/results/teacher-components/question-stats-table.tsx
@@ -0,0 +1,111 @@
+"use client";
+
+import React, { useState } from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { DetailedTestStatistics } from "../teacher-types";
+import { Progress } from "@/components/ui/progress";
+import {
+ Table,
+ TableBody,
+ TableCell,
+ TableHead,
+ TableHeader,
+ TableRow,
+} from "@/components/ui/table";
+import { Badge } from "@/components/ui/badge";
+import { Search } from "lucide-react";
+import { Input } from "@/components/ui/input";
+
+interface QuestionStatsTableProps {
+ statistics: DetailedTestStatistics;
+}
+
+export function QuestionStatsTable({ statistics }: QuestionStatsTableProps) {
+ const [searchQuery, setSearchQuery] = useState("");
+
+ const filteredQuestions = statistics.questionStats.filter((question) =>
+ question.questionType.toLowerCase().includes(searchQuery.toLowerCase()),
+ );
+
+ const getDifficultyColor = (difficulty: string) => {
+ switch (difficulty.toLowerCase()) {
+ case "easy":
+ return "bg-green-50 text-green-700 border-green-200 dark:bg-green-950 dark:text-green-300 dark:border-green-800";
+ case "medium":
+ return "bg-amber-50 text-amber-700 border-amber-200 dark:bg-amber-950 dark:text-amber-300 dark:border-amber-800";
+ case "hard":
+ return "bg-orange-50 text-orange-700 border-orange-200 dark:bg-orange-950 dark:text-orange-300 dark:border-orange-800";
+ case "advanced":
+ return "bg-red-50 text-red-700 border-red-200 dark:bg-red-950 dark:text-red-300 dark:border-red-800";
+ default:
+ return "bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-950 dark:text-blue-300 dark:border-blue-800";
+ }
+ };
+
+ return (
+
+
+ Question Analysis
+
+
+
+
+
+ setSearchQuery(e.target.value)}
+ className="border-0 focus-visible:ring-0 focus-visible:ring-offset-0"
+ />
+
+
+
+
+
+ Q#
+ Type
+ Difficulty
+ Correct %
+ Attempted
+
+
+
+ {filteredQuestions.map((question) => (
+
+
+ {question.questionNumber}
+
+ {question.questionType}
+
+
+ {question.difficulty}
+
+
+
+
+ {question.correctPercentage}%
+
+
+
+
+ {question.attemptedCount}
+
+ ({question.skippedCount} skipped)
+
+
+
+ ))}
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/results/teacher-components/recent-tests-card.tsx b/src/components/results/teacher-components/recent-tests-card.tsx
new file mode 100644
index 0000000..dc3cc70
--- /dev/null
+++ b/src/components/results/teacher-components/recent-tests-card.tsx
@@ -0,0 +1,129 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { TestOverview } from "../teacher-types";
+import { Button } from "@/components/ui/button";
+import { Calendar, Clock, Users, ChevronRight, FileText } from "lucide-react";
+import { formatDistanceToNow } from "date-fns";
+import { Badge } from "@/components/ui/badge";
+
+// Function to get badge color based on average score
+const getScoreBadgeColor = (score: number): string => {
+ if (score >= 90)
+ return "bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300";
+ if (score >= 80)
+ return "bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-300";
+ if (score >= 70)
+ return "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300";
+ if (score >= 60)
+ return "bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-300";
+ return "bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-300";
+};
+
+interface RecentTestsCardProps {
+ tests: TestOverview[];
+ onViewTest: (testId: string) => void;
+}
+
+export function RecentTestsCard({ tests, onViewTest }: RecentTestsCardProps) {
+ // Filter to show only tests from the last 7 days
+ const sevenDaysAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
+ const recentTests = tests
+ .filter((test) => new Date(test.createdAt) >= sevenDaysAgo)
+ .sort(
+ (a, b) =>
+ new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(),
+ ) // Most recent first
+ .slice(0, 3); // Show max 3 tests
+
+ if (recentTests.length === 0) {
+ return (
+
+
+
+
+ Recent Tests (Last 7 Days)
+
+
+
+
+
+
No tests in the last 7 days
+
+
+
+ );
+ }
+ return (
+
+
+
+
+ Recent Tests (Last 7 Days)
+
+ {" "}
+
+
+ {recentTests.map((test) => {
+ const testDate = new Date(test.createdAt);
+ const timeAgo = formatDistanceToNow(testDate, { addSuffix: true });
+ const scoreBadgeColor = getScoreBadgeColor(test.averageScore);
+
+ return (
+
+
+
+
+
+
+
+
+
{test.testName}
+
+ {test.courseName} ({test.courseCode})
+
+
+
+
+
+
+
+ {test.totalSubmissions}
+
+
+
+ {test.averageScore.toFixed(1)}%
+
+
+
+
+ {timeAgo}
+
+
+
+
+
onViewTest(test.testId)}
+ className="text-primary mt-2 sm:mt-0 hover:bg-primary/5"
+ >
+ View Details
+
+
+
+
+ );
+ })}
+
+
+
+ );
+}
diff --git a/src/components/results/teacher-components/student-results-table.tsx b/src/components/results/teacher-components/student-results-table.tsx
new file mode 100644
index 0000000..3a6ecf1
--- /dev/null
+++ b/src/components/results/teacher-components/student-results-table.tsx
@@ -0,0 +1,104 @@
+"use client";
+
+import React, { useState } from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { DetailedTestStatistics } from "../teacher-types";
+import {
+ Table,
+ TableBody,
+ TableCell,
+ TableHead,
+ TableHeader,
+ TableRow,
+} from "@/components/ui/table";
+import { formatRelative } from "date-fns";
+import { Badge } from "@/components/ui/badge";
+import { Search } from "lucide-react";
+import { Input } from "@/components/ui/input";
+
+interface StudentResultsTableProps {
+ statistics: DetailedTestStatistics;
+ onViewStudentResult?: (studentId: string, testId: string) => void;
+}
+
+export function StudentResultsTable({ statistics }: StudentResultsTableProps) {
+ const [searchQuery, setSearchQuery] = useState("");
+
+ const filteredResults = statistics.studentResults.filter((student) =>
+ student.studentName.toLowerCase().includes(searchQuery.toLowerCase()),
+ );
+
+ return (
+
+
+ Student Results
+
+
+
+
+
+ setSearchQuery(e.target.value)}
+ className="border-0 focus-visible:ring-0 focus-visible:ring-offset-0"
+ />
+
+
+
+
+
+ Student Name
+ Score
+ Time Taken
+ Completed
+ Attempts
+ Status
+
+
+
+ {filteredResults.map((result) => (
+
+ {result.studentName}
+
+ {result.score} / {result.maxScore}
+
+ {result.percentage.toFixed(1)}%
+
+
+
+ {result.timeTaken} min
+
+
+ {formatRelative(new Date(result.completedAt), new Date())}
+
+
+ {result.attemptCount}
+
+
+ {result.status === "completed" ? (
+
+ Completed
+
+ ) : (
+
+ {result.status}
+
+ )}
+
+
+ ))}
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/results/teacher-results-card.tsx b/src/components/results/teacher-results-card.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/components/results/teacher-types.ts b/src/components/results/teacher-types.ts
new file mode 100644
index 0000000..8dc25f8
--- /dev/null
+++ b/src/components/results/teacher-types.ts
@@ -0,0 +1,78 @@
+// Teacher-specific result types
+
+export interface TeacherCourseOverview {
+ courseId: string;
+ courseName: string;
+ courseCode: string;
+ totalStudents: number;
+ totalTests: number;
+ averageScore: number;
+ highestScore: number;
+ lowestScore: number;
+ completionRate: number; // percentage of students who completed tests
+ lastTestDate: string;
+}
+
+export interface TestOverview {
+ testId: string;
+ testName: string;
+ courseName: string;
+ courseCode: string;
+ totalSubmissions: number;
+ averageScore: number;
+ highestScore: number;
+ lowestScore: number;
+ medianScore: number;
+ completionRate: number;
+ createdAt: string;
+ duration: number; // in minutes
+}
+
+export interface PerformanceDistribution {
+ range: string; // e.g. "0-10", "11-20", etc.
+ count: number;
+ percentage: number;
+}
+
+export interface StudentTestResult {
+ studentId: string;
+ studentName: string;
+ score: number;
+ maxScore: number;
+ percentage: number;
+ timeTaken: number; // in minutes
+ completedAt: string;
+ status: string;
+ attemptCount: number;
+}
+
+export interface DetailedTestStatistics {
+ testId: string;
+ testName: string;
+ courseId: string;
+ courseName: string;
+ courseCode: string;
+ totalQuestions: number;
+ totalMarks: number;
+ averageScore: number;
+ highestScore: number;
+ lowestScore: number;
+ medianScore: number;
+ standardDeviation: number;
+ averageCompletionTime: number; // in minutes
+ totalSubmissions: number;
+ performanceDistribution: PerformanceDistribution[];
+ studentResults: StudentTestResult[];
+ questionStats: QuestionStat[];
+}
+
+export interface QuestionStat {
+ questionId: string;
+ questionNumber: number;
+ questionType: string;
+ difficulty: string;
+ averageScore: number;
+ correctPercentage: number;
+ attemptedCount: number;
+ skippedCount: number;
+}
diff --git a/src/components/results/test-summaries.tsx b/src/components/results/test-summaries.tsx
new file mode 100644
index 0000000..5c3eeba
--- /dev/null
+++ b/src/components/results/test-summaries.tsx
@@ -0,0 +1,237 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import { Progress } from "@/components/ui/progress";
+import {
+ ArrowLeft,
+ Clock,
+ Target,
+ FileText,
+ Calendar,
+ TrendingUp,
+ CheckCircle,
+} from "lucide-react";
+import { TestSummary } from "./types";
+import { PerformanceTrends } from "./performance-trends";
+
+interface TestSummariesProps {
+ courseName: string;
+ courseCode: string;
+ tests: TestSummary[];
+ onBack: () => void;
+ onViewTest: (testId: string) => void;
+}
+
+export const TestSummaries: React.FC = ({
+ courseName,
+ courseCode,
+ tests,
+ onBack,
+ onViewTest,
+}) => {
+ const getStatusColor = (status: string) => {
+ switch (status) {
+ case "completed":
+ return "bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-300";
+ case "in-progress":
+ return "bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-300";
+ default:
+ return "bg-gray-100 text-gray-800 dark:bg-gray-900 dark:text-gray-300";
+ }
+ };
+
+ const getDifficultyColor = (difficulty: string) => {
+ switch (difficulty) {
+ case "easy":
+ return "bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-300";
+ case "medium":
+ return "bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-300";
+ case "hard":
+ return "bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-300";
+ default:
+ return "bg-gray-100 text-gray-800 dark:bg-gray-900 dark:text-gray-300";
+ }
+ };
+
+ const getScoreColor = (percentage: number) => {
+ if (percentage >= 90) return "text-green-600";
+ if (percentage >= 75) return "text-blue-600";
+ if (percentage >= 60) return "text-yellow-600";
+ return "text-red-600";
+ };
+
+ const completedTests = tests.filter((test) => test.status === "completed");
+ const averageScore =
+ completedTests.length > 0
+ ? completedTests.reduce((acc, test) => acc + test.percentage, 0) /
+ completedTests.length
+ : 0;
+
+ return (
+
+ {/* Header */}
+
+
+
+
+ Back to Courses
+
+
+
{courseName}
+
{courseCode}
+
+
+
{tests.length} Tests
+
+
+ {/* Performance Trends */}
+
+
+ {/* Course Summary */}
+
+
+
+
+
+ Average Score
+
+
+ {averageScore.toFixed(1)}%
+
+
+
+
+
+
+
+
+ Completed Tests
+
+
+ {completedTests.length}/{tests.length}
+
+
+
+
+
+
+
+
+ Best Score
+
+
+ {completedTests.length > 0
+ ? Math.max(...completedTests.map((t) => t.percentage)).toFixed(
+ 1,
+ )
+ : "0"}
+ %
+
+
+
+
+
+ {/* Tests List */}
+
+
+ Test Results
+
+
+
+ {tests.length === 0 ? (
+
+
+
No tests found for this course
+
+ ) : (
+ tests.map((test) => (
+
+
+
+
{test.testName}
+
+
+ {test.difficulty}
+
+
+ {test.status.replace("-", " ")}
+
+
+
+
+
+
+
+ {test.questionCount} questions
+
+
+
+ {test.timeTaken}m
+
+
+
+ {test.correctAnswers} correct
+
+
+
+ {new Date(test.completedAt).toLocaleDateString()}
+
+
+
+ {test.status === "completed" && (
+
+
+
+
+ {test.score}/{test.maxScore} ({test.percentage}%)
+
+
+
+
+ )}
+
+
+
onViewTest(test.testId)}
+ className="ml-4"
+ disabled={test.status !== "completed"}
+ >
+ {test.status === "completed"
+ ? "View Details"
+ : "Not Available"}
+
+
+ ))
+ )}
+
+
+
+
+ );
+};
diff --git a/src/components/results/types.ts b/src/components/results/types.ts
new file mode 100644
index 0000000..00129e8
--- /dev/null
+++ b/src/components/results/types.ts
@@ -0,0 +1,100 @@
+// Types for the results system
+
+export interface StudentOverallResult {
+ studentId: string;
+ studentName: string;
+ totalTests: number;
+ averageScore: number;
+ highestScore: number;
+ lowestScore: number;
+ totalTimeTaken: number; // in minutes
+ recentTests: RecentTestResult[];
+}
+
+export interface RecentTestResult {
+ testId: string;
+ testName: string;
+ courseName: string;
+ score: number;
+ maxScore: number;
+ percentage: number;
+ timeTaken: number; // in minutes
+ completedAt: string;
+ status: "completed" | "in-progress" | "not-started";
+}
+
+export interface CourseResult {
+ courseId: string;
+ courseName: string;
+ courseCode: string;
+ totalTests: number;
+ completedTests: number;
+ averageScore: number;
+ highestScore: number;
+ lastTestDate: string;
+ tests: TestSummary[];
+}
+
+export interface TestSummary {
+ testId: string;
+ testName: string;
+ score: number;
+ maxScore: number;
+ percentage: number;
+ timeTaken: number;
+ completedAt: string;
+ difficulty: "easy" | "medium" | "hard";
+ questionCount: number;
+ correctAnswers: number;
+ status: "completed" | "in-progress" | "not-started";
+}
+
+export interface DetailedTestResult {
+ testId: string;
+ testName: string;
+ courseName: string;
+ courseCode: string;
+ score: number;
+ maxScore: number;
+ percentage: number;
+ timeTaken: number;
+ totalTime: number; // allocated time
+ completedAt: string;
+ difficulty: "easy" | "medium" | "hard";
+ questions: QuestionResult[];
+ summary: {
+ totalQuestions: number;
+ correctAnswers: number;
+ incorrectAnswers: number;
+ unanswered: number;
+ timePerQuestion: number; // average time per question
+ };
+}
+
+export interface QuestionResult {
+ questionId: string;
+ questionText: string;
+ questionType: "mcq" | "fillup" | "true-false" | "descriptive" | "coding";
+ marks: number;
+ studentAnswer: string | string[] | boolean | Record;
+ correctAnswer: string | string[] | boolean | Record;
+ isCorrect: boolean;
+ timeTaken: number;
+ explanation?: string;
+ options?: Array<{
+ id: string;
+ text: string;
+ isCorrect: boolean;
+ }>;
+}
+
+export interface ResultsFilters {
+ courseId?: string;
+ dateRange?: {
+ start: string;
+ end: string;
+ };
+ status?: "all" | "completed" | "in-progress";
+ sortBy?: "date" | "score" | "name";
+ sortOrder?: "asc" | "desc";
+}
diff --git a/src/lib/results-api.ts b/src/lib/results-api.ts
new file mode 100644
index 0000000..01703df
--- /dev/null
+++ b/src/lib/results-api.ts
@@ -0,0 +1,1169 @@
+// API utilities for results data
+import axiosInstance from "@/lib/axios/axios-client";
+import {
+ StudentOverallResult,
+ CourseResult,
+ TestSummary,
+ DetailedTestResult,
+} from "@/components/results/types";
+
+export class ResultsAPI {
+ // Get student's overall results summary
+ static async getStudentOverview(
+ studentId: string,
+ ): Promise {
+ try {
+ const response = await axiosInstance.get(
+ `/students/${studentId}/results/overview`,
+ );
+ return response.data;
+ } catch (error) {
+ console.error("Failed to fetch student overview:", error);
+ throw new Error("Failed to load student results overview");
+ }
+ }
+
+ // Get course-wise results for a student
+ static async getCourseResults(studentId: string): Promise {
+ try {
+ const response = await axiosInstance.get(
+ `/students/${studentId}/results/courses`,
+ );
+ return response.data;
+ } catch (error) {
+ console.error("Failed to fetch course results:", error);
+ throw new Error("Failed to load course results");
+ }
+ }
+
+ // Get test summaries for a specific course
+ static async getTestSummaries(
+ studentId: string,
+ courseId: string,
+ ): Promise {
+ try {
+ const response = await axiosInstance.get(
+ `/students/${studentId}/courses/${courseId}/tests`,
+ );
+ return response.data;
+ } catch (error) {
+ console.error("Failed to fetch test summaries:", error);
+ throw new Error("Failed to load test summaries");
+ }
+ }
+
+ // Get detailed test result
+ static async getTestResult(
+ studentId: string,
+ testId: string,
+ ): Promise {
+ try {
+ const response = await axiosInstance.get(
+ `/students/${studentId}/tests/${testId}/result`,
+ );
+ return response.data;
+ } catch (error) {
+ console.error("Failed to fetch test result:", error);
+ throw new Error("Failed to load test result");
+ }
+ }
+
+ // Get recent test results (for dashboard/overview)
+ static async getRecentResults(
+ studentId: string,
+ limit: number = 5,
+ ): Promise {
+ try {
+ const response = await axiosInstance.get(
+ `/students/${studentId}/results/recent?limit=${limit}`,
+ );
+ return response.data;
+ } catch (error) {
+ console.error("Failed to fetch recent results:", error);
+ throw new Error("Failed to load recent results");
+ }
+ }
+}
+
+// Mock data for development/testing
+export const MockResultsAPI = {
+ getStudentOverview: async (
+ studentId: string,
+ ): Promise => {
+ // Simulate API delay
+ await new Promise((resolve) => setTimeout(resolve, 500));
+
+ return {
+ studentId,
+ studentName: "John Doe",
+ totalTests: 15,
+ averageScore: 78.5,
+ highestScore: 95,
+ lowestScore: 62,
+ totalTimeTaken: 450,
+ recentTests: [
+ {
+ testId: "test-1",
+ testName: "Data Structures Midterm",
+ courseName: "Data Structures and Algorithms",
+ score: 85,
+ maxScore: 100,
+ percentage: 85,
+ timeTaken: 90,
+ completedAt: new Date(
+ Date.now() - 1 * 24 * 60 * 60 * 1000,
+ ).toISOString(), // 1 day ago (most recent)
+ status: "completed",
+ },
+ {
+ testId: "test-2",
+ testName: "Database Design Quiz",
+ courseName: "Database Management Systems",
+ score: 92,
+ maxScore: 100,
+ percentage: 92,
+ timeTaken: 45,
+ completedAt: new Date(
+ Date.now() - 3 * 24 * 60 * 60 * 1000,
+ ).toISOString(), // 3 days ago
+ status: "completed",
+ },
+ {
+ testId: "test-3",
+ testName: "OOP Concepts Test",
+ courseName: "Object Oriented Programming",
+ score: 78,
+ maxScore: 100,
+ percentage: 78,
+ timeTaken: 60,
+ completedAt: new Date(
+ Date.now() - 6 * 24 * 60 * 60 * 1000,
+ ).toISOString(), // 6 days ago
+ status: "completed",
+ },
+ // Note: We're only showing tests from the last 7 days, sorted by most recent
+ ],
+ };
+ },
+ getCourseResults: async (studentId: string): Promise => {
+ await new Promise((resolve) => setTimeout(resolve, 300));
+
+ // In real implementation, filter courses by studentId
+ console.log("Loading courses for student:", studentId);
+
+ return [
+ {
+ courseId: "course-1",
+ courseName: "Data Structures and Algorithms",
+ courseCode: "CS301",
+ totalTests: 5,
+ completedTests: 4,
+ averageScore: 82.5,
+ highestScore: 95,
+ lastTestDate: new Date(
+ Date.now() - 2 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ tests: [
+ {
+ testId: "test-1-1",
+ testName: "Arrays and Linked Lists",
+ score: 78,
+ maxScore: 100,
+ percentage: 78,
+ timeTaken: 55,
+ completedAt: new Date(
+ Date.now() - 60 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "medium",
+ questionCount: 15,
+ correctAnswers: 11,
+ status: "completed",
+ },
+ {
+ testId: "test-1-2",
+ testName: "Stacks and Queues",
+ score: 85,
+ maxScore: 100,
+ percentage: 85,
+ timeTaken: 62,
+ completedAt: new Date(
+ Date.now() - 45 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "medium",
+ questionCount: 20,
+ correctAnswers: 17,
+ status: "completed",
+ },
+ {
+ testId: "test-1-3",
+ testName: "Trees and Graphs",
+ score: 72,
+ maxScore: 100,
+ percentage: 72,
+ timeTaken: 75,
+ completedAt: new Date(
+ Date.now() - 30 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "hard",
+ questionCount: 18,
+ correctAnswers: 13,
+ status: "completed",
+ },
+ {
+ testId: "test-1-4",
+ testName: "Sorting Algorithms",
+ score: 95,
+ maxScore: 100,
+ percentage: 95,
+ timeTaken: 48,
+ completedAt: new Date(
+ Date.now() - 2 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "hard",
+ questionCount: 20,
+ correctAnswers: 19,
+ status: "completed",
+ },
+ ],
+ },
+ {
+ courseId: "course-2",
+ courseName: "Database Management Systems",
+ courseCode: "CS302",
+ totalTests: 3,
+ completedTests: 3,
+ averageScore: 88.3,
+ highestScore: 92,
+ lastTestDate: new Date(
+ Date.now() - 4 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ tests: [
+ {
+ testId: "test-2-1",
+ testName: "SQL Fundamentals",
+ score: 90,
+ maxScore: 100,
+ percentage: 90,
+ timeTaken: 40,
+ completedAt: new Date(
+ Date.now() - 40 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "easy",
+ questionCount: 30,
+ correctAnswers: 27,
+ status: "completed",
+ },
+ {
+ testId: "test-2-2",
+ testName: "Database Design",
+ score: 83,
+ maxScore: 100,
+ percentage: 83,
+ timeTaken: 65,
+ completedAt: new Date(
+ Date.now() - 15 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "medium",
+ questionCount: 18,
+ correctAnswers: 15,
+ status: "completed",
+ },
+ {
+ testId: "test-2-3",
+ testName: "Transactions and Concurrency",
+ score: 92,
+ maxScore: 100,
+ percentage: 92,
+ timeTaken: 55,
+ completedAt: new Date(
+ Date.now() - 4 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "hard",
+ questionCount: 25,
+ correctAnswers: 23,
+ status: "completed",
+ },
+ ],
+ },
+ {
+ courseId: "course-3",
+ courseName: "Object Oriented Programming",
+ courseCode: "CS201",
+ totalTests: 4,
+ completedTests: 3,
+ averageScore: 75.7,
+ highestScore: 85,
+ lastTestDate: new Date(
+ Date.now() - 7 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ tests: [
+ {
+ testId: "test-3-1",
+ testName: "Classes and Objects",
+ score: 85,
+ maxScore: 100,
+ percentage: 85,
+ timeTaken: 52,
+ completedAt: new Date(
+ Date.now() - 35 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "easy",
+ questionCount: 20,
+ correctAnswers: 17,
+ status: "completed",
+ },
+ {
+ testId: "test-3-2",
+ testName: "Inheritance and Polymorphism",
+ score: 72,
+ maxScore: 100,
+ percentage: 72,
+ timeTaken: 60,
+ completedAt: new Date(
+ Date.now() - 20 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "medium",
+ questionCount: 25,
+ correctAnswers: 18,
+ status: "completed",
+ },
+ {
+ testId: "test-3-3",
+ testName: "Exception Handling",
+ score: 70,
+ maxScore: 100,
+ percentage: 70,
+ timeTaken: 58,
+ completedAt: new Date(
+ Date.now() - 7 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "medium",
+ questionCount: 20,
+ correctAnswers: 14,
+ status: "completed",
+ },
+ ],
+ },
+ {
+ courseId: "course-4",
+ courseName: "Web Development",
+ courseCode: "CS401",
+ totalTests: 5,
+ completedTests: 5,
+ averageScore: 89.4,
+ highestScore: 97,
+ lastTestDate: new Date(
+ Date.now() - 3 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ tests: [
+ {
+ testId: "test-4-1",
+ testName: "HTML Fundamentals",
+ score: 95,
+ maxScore: 100,
+ percentage: 95,
+ timeTaken: 35,
+ completedAt: new Date(
+ Date.now() - 50 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "easy",
+ questionCount: 20,
+ correctAnswers: 19,
+ status: "completed",
+ },
+ {
+ testId: "test-4-2",
+ testName: "CSS and Responsive Design",
+ score: 88,
+ maxScore: 100,
+ percentage: 88,
+ timeTaken: 55,
+ completedAt: new Date(
+ Date.now() - 40 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "medium",
+ questionCount: 25,
+ correctAnswers: 22,
+ status: "completed",
+ },
+ {
+ testId: "test-4-3",
+ testName: "JavaScript Fundamentals",
+ score: 82,
+ maxScore: 100,
+ percentage: 82,
+ timeTaken: 65,
+ completedAt: new Date(
+ Date.now() - 25 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "medium",
+ questionCount: 30,
+ correctAnswers: 25,
+ status: "completed",
+ },
+ {
+ testId: "test-4-4",
+ testName: "DOM Manipulation",
+ score: 85,
+ maxScore: 100,
+ percentage: 85,
+ timeTaken: 60,
+ completedAt: new Date(
+ Date.now() - 10 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "hard",
+ questionCount: 20,
+ correctAnswers: 17,
+ status: "completed",
+ },
+ {
+ testId: "test-4-5",
+ testName: "Modern Frontend Frameworks",
+ score: 97,
+ maxScore: 100,
+ percentage: 97,
+ timeTaken: 70,
+ completedAt: new Date(
+ Date.now() - 3 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "hard",
+ questionCount: 25,
+ correctAnswers: 24,
+ status: "completed",
+ },
+ ],
+ },
+ {
+ courseId: "course-5",
+ courseName: "Operating Systems",
+ courseCode: "CS355",
+ totalTests: 4,
+ completedTests: 3,
+ averageScore: 76.3,
+ highestScore: 88,
+ lastTestDate: new Date(
+ Date.now() - 5 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ tests: [
+ {
+ testId: "test-5-1",
+ testName: "Introduction to OS",
+ score: 80,
+ maxScore: 100,
+ percentage: 80,
+ timeTaken: 50,
+ completedAt: new Date(
+ Date.now() - 45 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "easy",
+ questionCount: 20,
+ correctAnswers: 16,
+ status: "completed",
+ },
+ {
+ testId: "test-5-2",
+ testName: "Process Management",
+ score: 88,
+ maxScore: 100,
+ percentage: 88,
+ timeTaken: 65,
+ completedAt: new Date(
+ Date.now() - 30 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "medium",
+ questionCount: 25,
+ correctAnswers: 22,
+ status: "completed",
+ },
+ {
+ testId: "test-5-3",
+ testName: "Memory Management",
+ score: 61,
+ maxScore: 100,
+ percentage: 61,
+ timeTaken: 70,
+ completedAt: new Date(
+ Date.now() - 5 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "hard",
+ questionCount: 20,
+ correctAnswers: 12,
+ status: "completed",
+ },
+ ],
+ },
+ {
+ courseId: "course-6",
+ courseName: "Machine Learning",
+ courseCode: "CS450",
+ totalTests: 4,
+ completedTests: 2,
+ averageScore: 90.5,
+ highestScore: 94,
+ lastTestDate: new Date(
+ Date.now() - 12 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ tests: [
+ {
+ testId: "test-6-1",
+ testName: "Introduction to ML",
+ score: 87,
+ maxScore: 100,
+ percentage: 87,
+ timeTaken: 60,
+ completedAt: new Date(
+ Date.now() - 28 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "medium",
+ questionCount: 25,
+ correctAnswers: 22,
+ status: "completed",
+ },
+ {
+ testId: "test-6-2",
+ testName: "Supervised Learning",
+ score: 94,
+ maxScore: 100,
+ percentage: 94,
+ timeTaken: 75,
+ completedAt: new Date(
+ Date.now() - 12 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "hard",
+ questionCount: 30,
+ correctAnswers: 28,
+ status: "completed",
+ },
+ ],
+ },
+ ];
+ },
+ getTestSummaries: async (
+ studentId: string,
+ courseId: string,
+ ): Promise => {
+ await new Promise((resolve) => setTimeout(resolve, 400));
+
+ // In real implementation, filter tests by studentId and courseId
+ console.log("Loading tests for student:", studentId, "course:", courseId);
+
+ return [
+ {
+ testId: "test-1",
+ testName: "Data Structures Midterm",
+ score: 85,
+ maxScore: 100,
+ percentage: 85,
+ timeTaken: 90,
+ completedAt: new Date(
+ Date.now() - 2 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "medium",
+ questionCount: 20,
+ correctAnswers: 17,
+ status: "completed",
+ },
+ {
+ testId: "test-2",
+ testName: "Arrays and Linked Lists",
+ score: 78,
+ maxScore: 100,
+ percentage: 78,
+ timeTaken: 75,
+ completedAt: new Date(
+ Date.now() - 14 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "easy",
+ questionCount: 15,
+ correctAnswers: 12,
+ status: "completed",
+ },
+ {
+ testId: "test-3",
+ testName: "Trees and Graphs",
+ score: 95,
+ maxScore: 100,
+ percentage: 95,
+ timeTaken: 105,
+ completedAt: new Date(
+ Date.now() - 21 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ difficulty: "hard",
+ questionCount: 25,
+ correctAnswers: 24,
+ status: "completed",
+ },
+ {
+ testId: "test-4",
+ testName: "Final Assessment",
+ score: 0,
+ maxScore: 100,
+ percentage: 0,
+ timeTaken: 0,
+ completedAt: "",
+ difficulty: "hard",
+ questionCount: 30,
+ correctAnswers: 0,
+ status: "not-started",
+ },
+ ];
+ },
+
+ getTestResult: async (
+ studentId: string,
+ testId: string,
+ ): Promise => {
+ await new Promise((resolve) => setTimeout(resolve, 600));
+
+ return {
+ testId,
+ testName: "Data Structures Midterm",
+ courseName: "Data Structures and Algorithms",
+ courseCode: "CS301",
+ score: 85,
+ maxScore: 100,
+ percentage: 85,
+ timeTaken: 90,
+ totalTime: 120,
+ completedAt: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString(),
+ difficulty: "medium",
+ summary: {
+ totalQuestions: 20,
+ correctAnswers: 17,
+ incorrectAnswers: 2,
+ unanswered: 1,
+ timePerQuestion: 4.5,
+ },
+ questions: [
+ {
+ questionId: "q1",
+ questionText:
+ "What is the time complexity of searching in a balanced binary search tree?
",
+ questionType: "mcq",
+ marks: 5,
+ studentAnswer: "option-2",
+ correctAnswer: "option-2",
+ isCorrect: true,
+ timeTaken: 45,
+ explanation:
+ "A balanced BST has a height of log(n), so search operations take O(log n) time.
",
+ options: [
+ { id: "option-1", text: "O(n)", isCorrect: false },
+ { id: "option-2", text: "O(log n)", isCorrect: true },
+ { id: "option-3", text: "O(n²)", isCorrect: false },
+ { id: "option-4", text: "O(1)", isCorrect: false },
+ ],
+ },
+ {
+ questionId: "q2",
+ questionText:
+ "Fill in the blank: The worst-case time complexity of Quick Sort is ____.
",
+ questionType: "fillup",
+ marks: 3,
+ studentAnswer: "O(n²)",
+ correctAnswer: ["O(n²)", "O(n^2)", "n²", "n^2"],
+ isCorrect: true,
+ timeTaken: 30,
+ explanation:
+ "Quick Sort has O(n²) worst-case complexity when the pivot is always the smallest or largest element.
",
+ },
+ {
+ questionId: "q3",
+ questionText:
+ "A stack follows the LIFO (Last In, First Out) principle.
",
+ questionType: "true-false",
+ marks: 2,
+ studentAnswer: true,
+ correctAnswer: true,
+ isCorrect: true,
+ timeTaken: 15,
+ explanation:
+ "Yes, a stack is a LIFO data structure where the last element added is the first one to be removed.
",
+ },
+ {
+ questionId: "q4",
+ questionText:
+ "What is the space complexity of the recursive implementation of binary search?
",
+ questionType: "mcq",
+ marks: 4,
+ studentAnswer: "option-1",
+ correctAnswer: "option-2",
+ isCorrect: false,
+ timeTaken: 60,
+ explanation:
+ "Recursive binary search uses O(log n) space due to the call stack, while iterative uses O(1).
",
+ options: [
+ { id: "option-1", text: "O(1)", isCorrect: false },
+ { id: "option-2", text: "O(log n)", isCorrect: true },
+ { id: "option-3", text: "O(n)", isCorrect: false },
+ { id: "option-4", text: "O(n log n)", isCorrect: false },
+ ],
+ },
+ {
+ questionId: "q5",
+ questionText:
+ "In a hash table, what happens when two keys map to the same index?
",
+ questionType: "fillup",
+ marks: 3,
+ studentAnswer: "",
+ correctAnswer: ["collision", "hash collision"],
+ isCorrect: false,
+ timeTaken: 0,
+ explanation:
+ "When two keys hash to the same index, it's called a collision. This can be resolved using techniques like chaining or open addressing.
",
+ },
+ ],
+ };
+ },
+};
+
+// Mock data for teacher results
+import {
+ TeacherCourseOverview,
+ TestOverview,
+ DetailedTestStatistics,
+ PerformanceDistribution,
+ StudentTestResult,
+ QuestionStat,
+} from "@/components/results/teacher-types";
+
+export const MockTeacherResultsAPI = {
+ getTeacherCourses: async (
+ teacherId: string,
+ ): Promise => {
+ // Simulate API delay
+ await new Promise((resolve) => setTimeout(resolve, 500));
+
+ // Log the teacher ID for debugging purposes
+ console.log(`Fetching courses for teacher: ${teacherId}`);
+
+ // In a real app, we would filter courses by teacher ID
+ // For now, we're returning mock data regardless of teacherId
+ return [
+ {
+ courseId: "course-1",
+ courseName: "Data Structures and Algorithms",
+ courseCode: "CSE-301",
+ totalStudents: 65,
+ totalTests: 5,
+ averageScore: 76.4,
+ highestScore: 98,
+ lowestScore: 42,
+ completionRate: 94.5,
+ lastTestDate: new Date(
+ Date.now() - 7 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ },
+ {
+ courseId: "course-2",
+ courseName: "Database Management Systems",
+ courseCode: "CSE-401",
+ totalStudents: 58,
+ totalTests: 4,
+ averageScore: 81.7,
+ highestScore: 99,
+ lowestScore: 55,
+ completionRate: 97.2,
+ lastTestDate: new Date(
+ Date.now() - 14 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ },
+ {
+ courseId: "course-3",
+ courseName: "Object Oriented Programming",
+ courseCode: "CSE-201",
+ totalStudents: 72,
+ totalTests: 6,
+ averageScore: 68.9,
+ highestScore: 95,
+ lowestScore: 35,
+ completionRate: 88.4,
+ lastTestDate: new Date(
+ Date.now() - 3 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ },
+ {
+ courseId: "course-4",
+ courseName: "Computer Networks",
+ courseCode: "CSE-405",
+ totalStudents: 45,
+ totalTests: 3,
+ averageScore: 72.3,
+ highestScore: 96,
+ lowestScore: 48,
+ completionRate: 91.7,
+ lastTestDate: new Date(
+ Date.now() - 21 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ },
+ {
+ courseId: "course-5",
+ courseName: "Operating Systems",
+ courseCode: "CSE-302",
+ totalStudents: 60,
+ totalTests: 4,
+ averageScore: 74.5,
+ highestScore: 97,
+ lowestScore: 40,
+ completionRate: 93.8,
+ lastTestDate: new Date(
+ Date.now() - 10 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ },
+ {
+ courseId: "course-6",
+ courseName: "Software Engineering",
+ courseCode: "CSE-403",
+ totalStudents: 55,
+ totalTests: 5,
+ averageScore: 79.2,
+ highestScore: 98,
+ lowestScore: 51,
+ completionRate: 95.6,
+ lastTestDate: new Date(
+ Date.now() - 5 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ },
+ ];
+ },
+
+ getCourseTests: async (courseId: string): Promise => {
+ // Simulate API delay
+ await new Promise((resolve) => setTimeout(resolve, 500));
+
+ const testData: Record = {
+ "course-1": [
+ {
+ testId: "test-1-1",
+ testName: "Midterm Exam",
+ courseName: "Data Structures and Algorithms",
+ courseCode: "CSE-301",
+ totalSubmissions: 63,
+ averageScore: 75.6,
+ highestScore: 98,
+ lowestScore: 42,
+ medianScore: 78,
+ completionRate: 96.9,
+ createdAt: new Date(
+ Date.now() - 30 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ duration: 90,
+ },
+ {
+ testId: "test-1-2",
+ testName: "Quiz 1: Arrays and Linked Lists",
+ courseName: "Data Structures and Algorithms",
+ courseCode: "CSE-301",
+ totalSubmissions: 65,
+ averageScore: 82.3,
+ highestScore: 100,
+ lowestScore: 55,
+ medianScore: 85,
+ completionRate: 100,
+ createdAt: new Date(
+ Date.now() - 45 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ duration: 30,
+ },
+ {
+ testId: "test-1-3",
+ testName: "Quiz 2: Trees and Graphs",
+ courseName: "Data Structures and Algorithms",
+ courseCode: "CSE-301",
+ totalSubmissions: 61,
+ averageScore: 68.7,
+ highestScore: 95,
+ lowestScore: 40,
+ medianScore: 72,
+ completionRate: 93.8,
+ createdAt: new Date(
+ Date.now() - 20 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ duration: 45,
+ },
+ {
+ testId: "test-1-4",
+ testName: "Final Exam",
+ courseName: "Data Structures and Algorithms",
+ courseCode: "CSE-301",
+ totalSubmissions: 64,
+ averageScore: 77.9,
+ highestScore: 97,
+ lowestScore: 45,
+ medianScore: 80,
+ completionRate: 98.5,
+ createdAt: new Date(
+ Date.now() - 7 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ duration: 120,
+ },
+ ],
+ "course-2": [
+ {
+ testId: "test-2-1",
+ testName: "Midterm Exam",
+ courseName: "Database Management Systems",
+ courseCode: "CSE-401",
+ totalSubmissions: 56,
+ averageScore: 80.2,
+ highestScore: 99,
+ lowestScore: 55,
+ medianScore: 82,
+ completionRate: 96.6,
+ createdAt: new Date(
+ Date.now() - 35 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ duration: 90,
+ },
+ {
+ testId: "test-2-2",
+ testName: "SQL Quiz",
+ courseName: "Database Management Systems",
+ courseCode: "CSE-401",
+ totalSubmissions: 58,
+ averageScore: 85.7,
+ highestScore: 100,
+ lowestScore: 60,
+ medianScore: 88,
+ completionRate: 100,
+ createdAt: new Date(
+ Date.now() - 25 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ duration: 45,
+ },
+ {
+ testId: "test-2-3",
+ testName: "Final Project Review",
+ courseName: "Database Management Systems",
+ courseCode: "CSE-401",
+ totalSubmissions: 55,
+ averageScore: 82.5,
+ highestScore: 98,
+ lowestScore: 65,
+ medianScore: 84,
+ completionRate: 94.8,
+ createdAt: new Date(
+ Date.now() - 14 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ duration: 60,
+ },
+ ],
+ "course-3": [
+ {
+ testId: "test-3-1",
+ testName: "Java Basics Quiz",
+ courseName: "Object Oriented Programming",
+ courseCode: "CSE-201",
+ totalSubmissions: 70,
+ averageScore: 72.4,
+ highestScore: 95,
+ lowestScore: 40,
+ medianScore: 75,
+ completionRate: 97.2,
+ createdAt: new Date(
+ Date.now() - 40 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ duration: 30,
+ },
+ ],
+ "course-4": [
+ {
+ testId: "test-4-1",
+ testName: "OSI Model Quiz",
+ courseName: "Computer Networks",
+ courseCode: "CSE-405",
+ totalSubmissions: 42,
+ averageScore: 71.8,
+ highestScore: 96,
+ lowestScore: 48,
+ medianScore: 74,
+ completionRate: 93.3,
+ createdAt: new Date(
+ Date.now() - 21 * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ duration: 45,
+ },
+ ],
+ };
+
+ return testData[courseId] || [];
+ },
+ getRecentTests: async (
+ _teacherId: string,
+ limit: number = 3,
+ ): Promise => {
+ // Simulate API delay
+ await new Promise((resolve) => setTimeout(resolve, 500));
+
+ // Create all our mock tests
+ const allTests = [
+ {
+ testId: "test-1-4",
+ testName: "Final Exam",
+ courseName: "Data Structures and Algorithms",
+ courseCode: "CSE-301",
+ totalSubmissions: 64,
+ averageScore: 77.9,
+ highestScore: 97,
+ lowestScore: 45,
+ medianScore: 80,
+ completionRate: 98.5,
+ createdAt: new Date(Date.now() - 1 * 24 * 60 * 60 * 1000).toISOString(), // 1 day ago
+ duration: 120,
+ },
+ {
+ testId: "test-6-2",
+ testName: "Design Patterns Quiz",
+ courseName: "Software Engineering",
+ courseCode: "CSE-403",
+ totalSubmissions: 53,
+ averageScore: 81.2,
+ highestScore: 98,
+ lowestScore: 60,
+ medianScore: 83,
+ completionRate: 96.4,
+ createdAt: new Date(Date.now() - 3 * 24 * 60 * 60 * 1000).toISOString(), // 3 days ago
+ duration: 45,
+ },
+ {
+ testId: "test-3-4",
+ testName: "Design Principles Quiz",
+ courseName: "Object Oriented Programming",
+ courseCode: "CSE-201",
+ totalSubmissions: 68,
+ averageScore: 69.5,
+ highestScore: 94,
+ lowestScore: 35,
+ medianScore: 72,
+ completionRate: 94.4,
+ createdAt: new Date(Date.now() - 5 * 24 * 60 * 60 * 1000).toISOString(), // 5 days ago
+ duration: 40,
+ },
+ {
+ testId: "test-5-2",
+ testName: "Database Concepts Exam",
+ courseName: "Database Systems",
+ courseCode: "CSE-305",
+ totalSubmissions: 59,
+ averageScore: 72.3,
+ highestScore: 95,
+ lowestScore: 48,
+ medianScore: 75,
+ completionRate: 97.8,
+ createdAt: new Date(Date.now() - 8 * 24 * 60 * 60 * 1000).toISOString(), // 8 days ago (beyond our 7-day window)
+ duration: 90,
+ },
+ {
+ testId: "test-2-3",
+ testName: "Midterm Examination",
+ courseName: "Algorithm Analysis",
+ courseCode: "CSE-401",
+ totalSubmissions: 61,
+ averageScore: 74.8,
+ highestScore: 93,
+ lowestScore: 52,
+ medianScore: 78,
+ completionRate: 96.1,
+ createdAt: new Date(
+ Date.now() - 12 * 24 * 60 * 60 * 1000,
+ ).toISOString(), // 12 days ago (beyond our 7-day window)
+ duration: 90,
+ },
+ ];
+
+ // Filter tests to get only those from the last 7 days
+ const sevenDaysAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
+
+ return allTests
+ .filter((test) => new Date(test.createdAt) >= sevenDaysAgo)
+ .sort(
+ (a, b) =>
+ new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(),
+ ) // Sort by most recent
+ .slice(0, limit); // Limit to max 3 tests
+ },
+
+ getTestStatistics: async (
+ testId: string,
+ ): Promise => {
+ // Simulate API delay
+ await new Promise((resolve) => setTimeout(resolve, 500));
+
+ // Mock data for one specific test
+ const performanceDistribution: PerformanceDistribution[] = [
+ { range: "0-20", count: 1, percentage: 1.6 },
+ { range: "21-40", count: 3, percentage: 4.7 },
+ { range: "41-60", count: 12, percentage: 18.8 },
+ { range: "61-80", count: 28, percentage: 43.7 },
+ { range: "81-100", count: 20, percentage: 31.2 },
+ ];
+
+ // Generate mock student results
+ const studentResults: StudentTestResult[] = Array.from(
+ { length: 20 },
+ (_, i) => {
+ const score = Math.floor(Math.random() * 60) + 40; // Random score between 40 and 100
+ return {
+ studentId: `student-${i + 1}`,
+ studentName: `Student ${i + 1}`,
+ score: score,
+ maxScore: 100,
+ percentage: score,
+ timeTaken: Math.floor(Math.random() * 60) + 30, // Random time between 30 and 90 minutes
+ completedAt: new Date(
+ Date.now() - Math.floor(Math.random() * 7) * 24 * 60 * 60 * 1000,
+ ).toISOString(),
+ status: "completed",
+ attemptCount: Math.floor(Math.random() * 2) + 1, // 1 or 2 attempts
+ };
+ },
+ );
+
+ // Generate mock question stats
+ const questionStats: QuestionStat[] = Array.from({ length: 10 }, (_, i) => {
+ const correctPct = Math.floor(Math.random() * 60) + 40; // Random percentage between 40 and 100
+ return {
+ questionId: `q-${i + 1}`,
+ questionNumber: i + 1,
+ questionType:
+ i % 3 === 0
+ ? "Multiple Choice"
+ : i % 3 === 1
+ ? "True/False"
+ : "Short Answer",
+ difficulty:
+ i % 4 === 0
+ ? "Easy"
+ : i % 4 === 1
+ ? "Medium"
+ : i % 4 === 2
+ ? "Hard"
+ : "Advanced",
+ averageScore: (correctPct / 100) * (i % 3 === 2 ? 5 : 1), // Out of 1 or 5 points
+ correctPercentage: correctPct,
+ attemptedCount: 64 - Math.floor(Math.random() * 4), // Between 60-64 attempts
+ skippedCount: Math.floor(Math.random() * 4), // Between 0-4 skips
+ };
+ });
+
+ return {
+ testId,
+ testName: "Final Exam",
+ courseId: "course-1",
+ courseName: "Data Structures and Algorithms",
+ courseCode: "CSE-301",
+ totalQuestions: 10,
+ totalMarks: 100,
+ averageScore: 77.9,
+ highestScore: 97,
+ lowestScore: 45,
+ medianScore: 80,
+ standardDeviation: 12.5,
+ averageCompletionTime: 72, // in minutes
+ totalSubmissions: 64,
+ performanceDistribution,
+ studentResults,
+ questionStats,
+ };
+ },
+};
From 90ed65d537e0799a3ed383434ed59f30f7cb09f3 Mon Sep 17 00:00:00 2001
From: Gowtham Dhanaraju
Date: Sat, 14 Jun 2025 00:26:09 +0530
Subject: [PATCH 09/10] Remove workflows directory, keeping only
copilot-instructions.md
---
.github/workflows/ci.yml | 0
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 .github/workflows/ci.yml
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index e69de29..0000000
From 3873826c8005a57341790062deaa3b0010457ed7 Mon Sep 17 00:00:00 2001
From: Gowtham Dhanaraju
Date: Mon, 16 Jun 2025 04:37:36 +0530
Subject: [PATCH 10/10] feat: add RecentTestsCard component to display recent
tests for teachers
feat: implement StudentResultsTable component for detailed student results
feat: define types for teacher-specific results in types.ts
refactor: remove deprecated TestSummaries component and related types
refactor: delete unused types from results/types.ts
fix: update results-api to use new types and mock data structure
feat: create utility functions for consistent score color display
chore: add stub for useRecentTestResults to resolve import errors
---
package-lock.json | 338 +++++++++++-
package.json | 1 +
src/app/(evalify)/(academics)/result/page.tsx | 9 -
src/app/(test)/student-results/page.tsx | 34 +-
src/app/(test)/teacher-results/page.tsx | 81 ++-
.../results/common/detailed-test-result.tsx | 460 +++++++++++++++++
src/components/results/common/index.ts | 3 +
src/components/results/{ => common}/types.ts | 82 +--
src/components/results/course-card.tsx | 145 ------
.../results/course-results-grid.tsx | 49 --
.../results/course-results-grid.tsx.bak | 128 -----
.../results/detailed-test-result.tsx | 378 --------------
src/components/results/index.ts | 49 +-
src/components/results/performance-trends.tsx | 171 ------
src/components/results/recent-tests-card.tsx | 137 -----
.../results/student/course-card.tsx | 112 ++++
.../results/student/course-results-grid.tsx | 41 ++
src/components/results/student/index.ts | 8 +
.../results/student/performance-trends.tsx | 230 +++++++++
.../results/student/recent-tests-card.tsx | 163 ++++++
.../{ => student}/student-overview.tsx | 0
.../student-results-overview.tsx} | 0
.../results/student/test-summaries.tsx | 266 ++++++++++
src/components/results/student/types.ts | 26 +
.../teacher-components/course-tests-table.tsx | 122 -----
.../teacher-components/courses-grid.tsx | 139 -----
.../results/teacher-components/index.ts | 7 -
.../performance-distribution-chart.tsx | 86 ---
.../question-stats-table.tsx | 111 ----
.../student-results-table.tsx | 104 ----
.../results/teacher-results-card.tsx | 0
.../course-summary-card.tsx | 29 +-
.../results/teacher/course-tests-table.tsx | 250 +++++++++
.../results/teacher/courses-grid.tsx | 191 +++++++
src/components/results/teacher/index.ts | 9 +
.../performance-distribution-chart.tsx | 412 +++++++++++++++
.../results/teacher/question-stats-table.tsx | 458 ++++++++++++++++
.../recent-tests-card.tsx | 22 +-
.../results/teacher/student-results-table.tsx | 488 ++++++++++++++++++
.../{teacher-types.ts => teacher/types.ts} | 8 +
src/components/results/test-summaries.tsx | 237 ---------
src/lib/results-api.ts | 53 +-
src/lib/utils/score-colors.ts | 46 ++
.../student-results/index.ts} | 0
.../student-results/student-results-api.ts | 7 +
45 files changed, 3700 insertions(+), 1990 deletions(-)
delete mode 100644 src/app/(evalify)/(academics)/result/page.tsx
create mode 100644 src/components/results/common/detailed-test-result.tsx
create mode 100644 src/components/results/common/index.ts
rename src/components/results/{ => common}/types.ts (59%)
delete mode 100644 src/components/results/course-card.tsx
delete mode 100644 src/components/results/course-results-grid.tsx
delete mode 100644 src/components/results/course-results-grid.tsx.bak
delete mode 100644 src/components/results/detailed-test-result.tsx
delete mode 100644 src/components/results/performance-trends.tsx
delete mode 100644 src/components/results/recent-tests-card.tsx
create mode 100644 src/components/results/student/course-card.tsx
create mode 100644 src/components/results/student/course-results-grid.tsx
create mode 100644 src/components/results/student/index.ts
create mode 100644 src/components/results/student/performance-trends.tsx
create mode 100644 src/components/results/student/recent-tests-card.tsx
rename src/components/results/{ => student}/student-overview.tsx (100%)
rename src/components/results/{course-performance-chart.tsx => student/student-results-overview.tsx} (100%)
create mode 100644 src/components/results/student/test-summaries.tsx
create mode 100644 src/components/results/student/types.ts
delete mode 100644 src/components/results/teacher-components/course-tests-table.tsx
delete mode 100644 src/components/results/teacher-components/courses-grid.tsx
delete mode 100644 src/components/results/teacher-components/index.ts
delete mode 100644 src/components/results/teacher-components/performance-distribution-chart.tsx
delete mode 100644 src/components/results/teacher-components/question-stats-table.tsx
delete mode 100644 src/components/results/teacher-components/student-results-table.tsx
delete mode 100644 src/components/results/teacher-results-card.tsx
rename src/components/results/{teacher-components => teacher}/course-summary-card.tsx (64%)
create mode 100644 src/components/results/teacher/course-tests-table.tsx
create mode 100644 src/components/results/teacher/courses-grid.tsx
create mode 100644 src/components/results/teacher/index.ts
create mode 100644 src/components/results/teacher/performance-distribution-chart.tsx
create mode 100644 src/components/results/teacher/question-stats-table.tsx
rename src/components/results/{teacher-components => teacher}/recent-tests-card.tsx (86%)
create mode 100644 src/components/results/teacher/student-results-table.tsx
rename src/components/results/{teacher-types.ts => teacher/types.ts} (90%)
delete mode 100644 src/components/results/test-summaries.tsx
create mode 100644 src/lib/utils/score-colors.ts
rename src/{components/results/student-results-card.tsx => repo/student-results/index.ts} (100%)
create mode 100644 src/repo/student-results/student-results-api.ts
diff --git a/package-lock.json b/package-lock.json
index 229ac08..99604ee 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -67,6 +67,7 @@
"react-hook-form": "^7.57.0",
"react-katex": "^3.1.0",
"react-resizable-panels": "^3.0.2",
+ "recharts": "^2.15.3",
"sonner": "^2.0.3",
"tailwind-merge": "^3.2.0",
"uuid": "^11.1.0",
@@ -161,6 +162,15 @@
"url": "https://github.com/sponsors/panva"
}
},
+ "node_modules/@babel/runtime": {
+ "version": "7.27.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz",
+ "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@csstools/color-helpers": {
"version": "5.0.2",
"funding": [
@@ -2357,6 +2367,69 @@
"url": "https://github.com/sponsors/ueberdosis"
}
},
+ "node_modules/@types/d3-array": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
+ "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-color": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
+ "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-ease": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
+ "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-interpolate": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
+ "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-color": "*"
+ }
+ },
+ "node_modules/@types/d3-path": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
+ "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-scale": {
+ "version": "4.0.9",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
+ "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-time": "*"
+ }
+ },
+ "node_modules/@types/d3-shape": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz",
+ "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-path": "*"
+ }
+ },
+ "node_modules/@types/d3-time": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
+ "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-timer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
+ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
+ "license": "MIT"
+ },
"node_modules/@types/estree": {
"version": "1.0.8",
"dev": true,
@@ -3617,9 +3690,129 @@
},
"node_modules/csstype": {
"version": "3.1.3",
- "devOptional": true,
"license": "MIT"
},
+ "node_modules/d3-array": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
+ "license": "ISC",
+ "dependencies": {
+ "internmap": "1 - 2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-color": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-ease": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
+ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-format": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
+ "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-interpolate": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-scale": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
+ "license": "ISC",
+ "dependencies": {
+ "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-shape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time-format": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-time": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-timer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
"dev": true,
@@ -3722,6 +3915,12 @@
"version": "10.5.0",
"license": "MIT"
},
+ "node_modules/decimal.js-light": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz",
+ "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==",
+ "license": "MIT"
+ },
"node_modules/deep-is": {
"version": "0.1.4",
"dev": true,
@@ -3793,6 +3992,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/dom-helpers": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
+ "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.8.7",
+ "csstype": "^3.0.2"
+ }
+ },
"node_modules/dompurify": {
"version": "3.2.6",
"license": "(MPL-2.0 OR Apache-2.0)",
@@ -4445,6 +4654,15 @@
"version": "3.1.3",
"license": "MIT"
},
+ "node_modules/fast-equals": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.2.2.tgz",
+ "integrity": "sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/fast-glob": {
"version": "3.3.1",
"dev": true,
@@ -5040,6 +5258,15 @@
"node": ">= 0.4"
}
},
+ "node_modules/internmap": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/is-array-buffer": {
"version": "3.0.5",
"dev": true,
@@ -5786,6 +6013,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "license": "MIT"
+ },
"node_modules/lodash.includes": {
"version": "4.3.0",
"license": "MIT"
@@ -6928,6 +7161,21 @@
"react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
}
},
+ "node_modules/react-smooth": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz",
+ "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-equals": "^5.0.1",
+ "prop-types": "^15.8.1",
+ "react-transition-group": "^4.4.5"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
"node_modules/react-style-singleton": {
"version": "2.2.3",
"license": "MIT",
@@ -6948,6 +7196,66 @@
}
}
},
+ "node_modules/react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.6.0",
+ "react-dom": ">=16.6.0"
+ }
+ },
+ "node_modules/recharts": {
+ "version": "2.15.3",
+ "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.3.tgz",
+ "integrity": "sha512-EdOPzTwcFSuqtvkDoaM5ws/Km1+WTAO2eizL7rqiG0V2UVhTnz0m7J2i0CjVPUCdEkZImaWvXLbZDS2H5t6GFQ==",
+ "license": "MIT",
+ "dependencies": {
+ "clsx": "^2.0.0",
+ "eventemitter3": "^4.0.1",
+ "lodash": "^4.17.21",
+ "react-is": "^18.3.1",
+ "react-smooth": "^4.0.4",
+ "recharts-scale": "^0.4.4",
+ "tiny-invariant": "^1.3.1",
+ "victory-vendor": "^36.6.8"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/recharts-scale": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz",
+ "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==",
+ "license": "MIT",
+ "dependencies": {
+ "decimal.js-light": "^2.4.1"
+ }
+ },
+ "node_modules/recharts/node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "license": "MIT"
+ },
+ "node_modules/recharts/node_modules/react-is": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+ "license": "MIT"
+ },
"node_modules/reflect-metadata": {
"version": "0.1.14",
"dev": true,
@@ -7754,6 +8062,12 @@
"node": ">=0.8"
}
},
+ "node_modules/tiny-invariant": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
+ "license": "MIT"
+ },
"node_modules/tinyglobby": {
"version": "0.2.14",
"dev": true,
@@ -8195,6 +8509,28 @@
"uuid": "dist/esm/bin/uuid"
}
},
+ "node_modules/victory-vendor": {
+ "version": "36.9.2",
+ "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz",
+ "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==",
+ "license": "MIT AND ISC",
+ "dependencies": {
+ "@types/d3-array": "^3.0.3",
+ "@types/d3-ease": "^3.0.0",
+ "@types/d3-interpolate": "^3.0.1",
+ "@types/d3-scale": "^4.0.2",
+ "@types/d3-shape": "^3.1.0",
+ "@types/d3-time": "^3.0.0",
+ "@types/d3-timer": "^3.0.0",
+ "d3-array": "^3.1.6",
+ "d3-ease": "^3.0.1",
+ "d3-interpolate": "^3.0.1",
+ "d3-scale": "^4.0.2",
+ "d3-shape": "^3.1.0",
+ "d3-time": "^3.0.0",
+ "d3-timer": "^3.0.1"
+ }
+ },
"node_modules/w3c-keyname": {
"version": "2.2.8",
"license": "MIT"
diff --git a/package.json b/package.json
index 5146fe7..0f42840 100644
--- a/package.json
+++ b/package.json
@@ -70,6 +70,7 @@
"react-hook-form": "^7.57.0",
"react-katex": "^3.1.0",
"react-resizable-panels": "^3.0.2",
+ "recharts": "^2.15.3",
"sonner": "^2.0.3",
"tailwind-merge": "^3.2.0",
"uuid": "^11.1.0",
diff --git a/src/app/(evalify)/(academics)/result/page.tsx b/src/app/(evalify)/(academics)/result/page.tsx
deleted file mode 100644
index a14bae3..0000000
--- a/src/app/(evalify)/(academics)/result/page.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import React from "react";
-
-export default function page() {
- return (
-
-
Result Page
-
- );
-}
diff --git a/src/app/(test)/student-results/page.tsx b/src/app/(test)/student-results/page.tsx
index 11066bc..1eb4d6d 100644
--- a/src/app/(test)/student-results/page.tsx
+++ b/src/app/(test)/student-results/page.tsx
@@ -4,8 +4,7 @@ import React, { useState, useEffect } from "react";
import { useRouter, useSearchParams } from "next/navigation";
import TopBar from "@/components/question_creation/top-bar";
import {
- StudentOverviewCard,
- RecentTestsCard,
+ StudentRecentTestsCard,
CourseResultsGrid,
TestSummaries,
StudentOverallResult,
@@ -162,27 +161,36 @@ export default function StudentResultsPage() {
return (
-
+
{currentView === "overview" && (
<>
{/* Student Overview */}
My Results
-
+
Track your academic performance and progress
-
+ {/* Overview cards removed as requested */}
{" "}
{/* Recent Tests */}
-
+
+
Recent Tests
+
+
{/* Course Results */}
-
+
+
Course Results
+
+
>
)}
{currentView === "course" && selectedCourse && (
diff --git a/src/app/(test)/teacher-results/page.tsx b/src/app/(test)/teacher-results/page.tsx
index d3f7b99..fb3be6b 100644
--- a/src/app/(test)/teacher-results/page.tsx
+++ b/src/app/(test)/teacher-results/page.tsx
@@ -7,7 +7,7 @@ import {
TeacherCourseOverview,
TestOverview,
DetailedTestStatistics,
-} from "@/components/results/teacher-types";
+} from "@/components/results/teacher/types";
import { MockTeacherResultsAPI } from "@/lib/results-api";
import {
CoursesGrid,
@@ -16,7 +16,10 @@ import {
PerformanceDistributionChart,
StudentResultsTable,
QuestionStatsTable,
-} from "@/components/results/teacher-components";
+ SortOption,
+ SortDropdown,
+} from "@/components/results/teacher";
+import { DetailedTestResultView } from "@/components/results/common/detailed-test-result";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import {
@@ -34,16 +37,21 @@ export default function TeacherResultsPage() {
const router = useRouter();
const searchParams = useSearchParams();
const [currentView, setCurrentView] = useState<
- "overview" | "course" | "test"
+ "overview" | "course" | "test" | "student-detail"
>("overview");
const [selectedCourseId, setSelectedCourseId] = useState
(null);
const [selectedTestId, setSelectedTestId] = useState(null);
+ const [selectedStudentId, setSelectedStudentId] = useState(
+ null,
+ );
const [coursesList, setCoursesList] = useState([]);
const [recentTests, setRecentTests] = useState([]);
const [courseTests, setCourseTests] = useState([]);
const [testStatistics, setTestStatistics] =
useState(null);
+ const [courseSortOption, setCourseSortOption] =
+ useState("latest");
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
@@ -145,14 +153,20 @@ export default function TeacherResultsPage() {
const handleViewTest = (testId: string) => {
router.push(`/teacher-results?view=test&testId=${testId}`);
};
-
const handleBack = () => {
- if (currentView === "test" && selectedCourseId) {
+ if (currentView === "student-detail") {
+ setCurrentView("test");
+ setSelectedStudentId(null);
+ } else if (currentView === "test" && selectedCourseId) {
router.push(`/teacher-results?view=course&courseId=${selectedCourseId}`);
} else {
router.push("/teacher-results");
}
};
+ const handleViewStudentResult = (studentId: string) => {
+ setSelectedStudentId(studentId);
+ setCurrentView("student-detail");
+ };
// Find selected course
const selectedCourse = coursesList.find(
@@ -233,7 +247,6 @@ export default function TeacherResultsPage() {
-
{/* Stats Summary Cards */}
@@ -311,7 +324,6 @@ export default function TeacherResultsPage() {
-
{/* Recent Tests */}
@@ -322,13 +334,23 @@ export default function TeacherResultsPage() {
Recently administered tests across all courses
-
-
+
{" "}
{/* All Courses */}
-
-
-
Your Courses
+
+
+
+
Your Courses
+ {" "}
+
+
+ Sort by:
+
+ setCourseSortOption(value)}
+ />
+
Performance analytics for all your courses
@@ -337,6 +359,7 @@ export default function TeacherResultsPage() {
>
)}
@@ -413,13 +436,22 @@ export default function TeacherResultsPage() {
{" "}
{/* Course Tests */}
-
-
Test History
-
- All tests administered for this course
-
+
+
+
+
Test History
+
+ All tests administered for this course
+
+
+
+
+
+
-
>
)}
@@ -515,8 +547,11 @@ export default function TeacherResultsPage() {
Individual student scores and statistics
-
-
+
{" "}
+
{/* Question Stats Table */}
@@ -524,10 +559,14 @@ export default function TeacherResultsPage() {
Performance metrics for each question on the test
-
+
{" "}
>
)}
+
+ {currentView === "student-detail" && selectedStudentId && (
+
+ )}
);
diff --git a/src/components/results/common/detailed-test-result.tsx b/src/components/results/common/detailed-test-result.tsx
new file mode 100644
index 0000000..8ebdf69
--- /dev/null
+++ b/src/components/results/common/detailed-test-result.tsx
@@ -0,0 +1,460 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import { getScoreTextColor } from "@/lib/utils/score-colors";
+import {
+ ArrowLeft,
+ Clock,
+ FileText,
+ Calendar,
+ CheckCircle,
+ XCircle,
+ HelpCircle,
+} from "lucide-react";
+import type { DetailedTestResult, QuestionResult } from "./types";
+
+// Mock data for detailed test result
+const mockDetailedTestResult: DetailedTestResult = {
+ testId: "mock-test-123",
+ testName: "Data Structures and Algorithms - Final Exam",
+ courseName: "Computer Science",
+ courseId: "CS301",
+ courseCode: "CS301",
+ completedAt: "2025-06-15T10:30:00Z",
+ timeSpent: 45,
+ score: 85,
+ maxScore: 100,
+ percentage: 85,
+ questionCount: 20,
+ correctCount: 17,
+ passingScore: 60,
+ questions: [
+ {
+ questionId: "q1",
+ questionText: "What is the time complexity of binary search?",
+ questionType: "mcq",
+ marks: 5,
+ studentAnswer: "a",
+ correctAnswer: "a",
+ isCorrect: true,
+ timeTaken: 2,
+ explanation:
+ "Binary search has O(log n) time complexity as it divides the search space in half with each iteration.",
+ options: [
+ { id: "a", text: "O(log n)", isCorrect: true },
+ { id: "b", text: "O(n)", isCorrect: false },
+ { id: "c", text: "O(n log n)", isCorrect: false },
+ { id: "d", text: "O(n²)", isCorrect: false },
+ ],
+ },
+ {
+ questionId: "q2",
+ questionText: "Which data structure follows LIFO principle?",
+ questionType: "mcq",
+ marks: 5,
+ studentAnswer: "b",
+ correctAnswer: "a",
+ isCorrect: false,
+ timeTaken: 3,
+ explanation:
+ "Stack follows Last In First Out (LIFO) principle where the last element added is the first one to be removed.",
+ options: [
+ { id: "a", text: "Stack", isCorrect: true },
+ { id: "b", text: "Queue", isCorrect: false },
+ { id: "c", text: "Array", isCorrect: false },
+ { id: "d", text: "Linked List", isCorrect: false },
+ ],
+ },
+ {
+ questionId: "q3",
+ questionText: "Is a binary tree with only one node considered balanced?",
+ questionType: "true-false",
+ marks: 3,
+ studentAnswer: true,
+ correctAnswer: true,
+ isCorrect: true,
+ timeTaken: 1,
+ explanation:
+ "A tree with only one node is considered balanced as the height difference between left and right subtrees is 0.",
+ },
+ {
+ questionId: "q4",
+ questionText:
+ "Complete the function to find the maximum element in an array:",
+ questionType: "fillup",
+ marks: 7,
+ studentAnswer: "Math.max(...arr)",
+ correctAnswer: "Math.max(...arr)",
+ isCorrect: true,
+ timeTaken: 4,
+ explanation:
+ "Math.max(...arr) uses the spread operator to pass all array elements as arguments to Math.max().",
+ },
+ {
+ questionId: "q5",
+ questionText: "Explain the difference between BFS and DFS algorithms.",
+ questionType: "descriptive",
+ marks: 10,
+ studentAnswer:
+ "BFS explores nodes level by level using a queue, while DFS goes as deep as possible using a stack or recursion.",
+ correctAnswer:
+ "BFS (Breadth-First Search) explores all neighbors at the current depth before moving to nodes at the next depth level, typically using a queue. DFS (Depth-First Search) explores as far as possible along each branch before backtracking, typically using a stack or recursion.",
+ isCorrect: true,
+ timeTaken: 8,
+ explanation:
+ "Good explanation covering the key differences in traversal order and data structures used.",
+ },
+ ],
+};
+
+interface DetailedTestResultProps {
+ result?: DetailedTestResult;
+ onBack: () => void;
+}
+
+export const DetailedTestResultView: React.FC
= ({
+ onBack,
+}) => {
+ // Use mock data for now
+ const result = mockDetailedTestResult; // No longer needed - imported at the top
+ const getQuestionIcon = (isCorrect: boolean, questionType: string) => {
+ if (questionType === "descriptive" || questionType === "coding") {
+ return ;
+ }
+ return isCorrect ? (
+
+ ) : (
+
+ );
+ };
+
+ const renderAnswer = (question: QuestionResult) => {
+ switch (question.questionType) {
+ case "mcq":
+ return (
+
+ {question.options?.map((option, index) => (
+
+
+
+ {String.fromCharCode(65 + index)}.
+
+ {option.text} {" "}
+ {option.isCorrect && (
+
+ Correct
+
+ )}
+ {question.studentAnswer === option.id &&
+ !option.isCorrect && (
+
+ Your Answer
+
+ )}
+
+
+ ))}
+
+ );
+
+ case "true-false":
+ return (
+
+
+
+ Your Answer:
+
+ {typeof question.studentAnswer === "boolean"
+ ? question.studentAnswer
+ ? "True"
+ : "False"
+ : String(question.studentAnswer)}
+
+
+
+ Correct Answer:
+
+ {typeof question.correctAnswer === "boolean"
+ ? question.correctAnswer
+ ? "True"
+ : "False"
+ : String(question.correctAnswer)}
+
+
+
+
+ );
+
+ case "fillup":
+ return (
+
+
+
+ Your Answer:
+
+
+ {!question.studentAnswer
+ ? "No answer provided"
+ : Array.isArray(question.studentAnswer)
+ ? question.studentAnswer.join(", ")
+ : typeof question.studentAnswer === "object"
+ ? JSON.stringify(question.studentAnswer)
+ : String(question.studentAnswer)}
+
+
+
+
+ Correct Answer:
+
+
+ {Array.isArray(question.correctAnswer)
+ ? question.correctAnswer.join(", ")
+ : typeof question.correctAnswer === "object"
+ ? JSON.stringify(question.correctAnswer)
+ : String(question.correctAnswer)}
+
+
+
+ );
+
+ default:
+ return (
+
+
+ Answer review not available for this question type
+
+
+ );
+ }
+ };
+
+ return (
+
+ {/* Header */}{" "}
+
+
+ {" "}
+
+
+ Back to Tests
+
+
+
+ {/* Test Overview */}
+
+
+
+
{result.testName}
+
+ {result.courseName} ({result.courseCode})
+
+
+
+
+
+
+ {new Date(result.completedAt).toLocaleDateString()}
+
+
+
+
+ {result.timeSpent} min
+
+
+
+
+
+ {" "}
+
+
+
Score
+
+ {" "}
+
+ {result.percentage.toFixed(1)}%
+
+
+ ({result.score}/{result.maxScore})
+
+
+
{" "}
+
+
+
+
+
+ {result.correctCount}
+
+
+ correct
+
+
+
+
+
+ {result.questions.filter((q) => q.isCorrect === false).length}
+
+
+ wrong
+
+
+
+
{" "}
+
+ {
+ result.questions.filter(
+ (q) =>
+ q.studentAnswer === undefined ||
+ q.studentAnswer === null ||
+ q.studentAnswer === "" ||
+ (Array.isArray(q.studentAnswer) &&
+ q.studentAnswer.length === 0) ||
+ (typeof q.studentAnswer === "object" &&
+ Object.keys(q.studentAnswer).length === 0),
+ ).length
+ }
+
+
+ unanswered
+
+
+
+
+
+
+ {/* Questions */}
+
+ {" "}
+
+
+
Questions & Answers
+
+
+ {result.questions.map((question, index) => (
+
+ {" "}
+
+
+
+
+ {index + 1}
+
+
+
+ {getQuestionIcon(
+ question.isCorrect,
+ question.questionType,
+ )}{" "}
+
+ {question.questionType === "mcq"
+ ? "Multiple Choice"
+ : question.questionType === "fillup"
+ ? "Fill in the blank"
+ : question.questionType === "true-false"
+ ? "True or False"
+ : question.questionType === "descriptive"
+ ? "Essay"
+ : question.questionType === "coding"
+ ? "Coding"
+ : question.questionType === "file-upload"
+ ? "File Upload"
+ : question.questionType === "match"
+ ? "Match Items"
+ : "Other"}
+
+
+ {question.marks}{" "}
+ {question.marks === 1 ? "mark" : "marks"}
+
+
+
+ {question.questionText}
+
+
+
+
+
+
+ {renderAnswer(question)}{" "}
+ {question.explanation && (
+
+
+ Explanation
+
+
+ {question.explanation}
+
+
+ )}
+
+
+ ))}
+
+
+
+ );
+};
diff --git a/src/components/results/common/index.ts b/src/components/results/common/index.ts
new file mode 100644
index 0000000..bc6e845
--- /dev/null
+++ b/src/components/results/common/index.ts
@@ -0,0 +1,3 @@
+// Export all common components and types
+export * from "./types";
+export * from "./detailed-test-result";
diff --git a/src/components/results/types.ts b/src/components/results/common/types.ts
similarity index 59%
rename from src/components/results/types.ts
rename to src/components/results/common/types.ts
index 00129e8..e1e340a 100644
--- a/src/components/results/types.ts
+++ b/src/components/results/common/types.ts
@@ -1,39 +1,4 @@
-// Types for the results system
-
-export interface StudentOverallResult {
- studentId: string;
- studentName: string;
- totalTests: number;
- averageScore: number;
- highestScore: number;
- lowestScore: number;
- totalTimeTaken: number; // in minutes
- recentTests: RecentTestResult[];
-}
-
-export interface RecentTestResult {
- testId: string;
- testName: string;
- courseName: string;
- score: number;
- maxScore: number;
- percentage: number;
- timeTaken: number; // in minutes
- completedAt: string;
- status: "completed" | "in-progress" | "not-started";
-}
-
-export interface CourseResult {
- courseId: string;
- courseName: string;
- courseCode: string;
- totalTests: number;
- completedTests: number;
- averageScore: number;
- highestScore: number;
- lastTestDate: string;
- tests: TestSummary[];
-}
+// Common types for the results system - shared between student and teacher components
export interface TestSummary {
testId: string;
@@ -49,26 +14,16 @@ export interface TestSummary {
status: "completed" | "in-progress" | "not-started";
}
-export interface DetailedTestResult {
+export interface RecentTestResult {
testId: string;
testName: string;
courseName: string;
- courseCode: string;
score: number;
maxScore: number;
percentage: number;
- timeTaken: number;
- totalTime: number; // allocated time
+ timeTaken: number; // in minutes
completedAt: string;
- difficulty: "easy" | "medium" | "hard";
- questions: QuestionResult[];
- summary: {
- totalQuestions: number;
- correctAnswers: number;
- incorrectAnswers: number;
- unanswered: number;
- timePerQuestion: number; // average time per question
- };
+ status: "completed" | "in-progress" | "not-started";
}
export interface QuestionResult {
@@ -88,13 +43,32 @@ export interface QuestionResult {
}>;
}
+export interface DetailedTestResult {
+ testId: string;
+ testName: string;
+ courseName: string;
+ courseId: string;
+ courseCode: string;
+ completedAt: string;
+ timeSpent: number;
+ score: number;
+ maxScore: number;
+ percentage: number;
+ questionCount: number;
+ correctCount: number;
+ questions: QuestionResult[];
+ passingScore?: number;
+}
+
export interface ResultsFilters {
courseId?: string;
dateRange?: {
- start: string;
- end: string;
+ start: Date;
+ end: Date;
+ };
+ scoreRange?: {
+ min: number;
+ max: number;
};
- status?: "all" | "completed" | "in-progress";
- sortBy?: "date" | "score" | "name";
- sortOrder?: "asc" | "desc";
+ status?: "completed" | "in-progress" | "not-started";
}
diff --git a/src/components/results/course-card.tsx b/src/components/results/course-card.tsx
deleted file mode 100644
index 36947e6..0000000
--- a/src/components/results/course-card.tsx
+++ /dev/null
@@ -1,145 +0,0 @@
-"use client";
-
-import React from "react";
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
-import { Badge } from "@/components/ui/badge";
-import { Progress } from "@/components/ui/progress";
-import { ChevronRight } from "lucide-react";
-import { CourseResult } from "./types";
-
-interface CourseCardProps {
- course: CourseResult;
- onViewCourse: (courseId: string) => void;
-}
-
-export const CourseCard: React.FC = ({
- course,
- onViewCourse,
-}) => {
- // We're using sorted data to calculate trends
-
- // Sort tests by completion date
- const sortedTests = [...(course.tests || [])].sort(
- (a, b) =>
- new Date(a.completedAt).getTime() - new Date(b.completedAt).getTime(),
- );
-
- const scores = sortedTests.map((test) => test.percentage);
- const averageScore =
- scores.length > 0
- ? scores.reduce((sum, score) => sum + score, 0) / scores.length
- : 0;
-
- const latestScore = scores.length > 0 ? scores[scores.length - 1] : 0;
-
- // Get trend (improving, stable, declining)
- const getTrend = () => {
- if (scores.length < 2) return "Not enough data";
-
- const firstHalf = scores.slice(0, Math.floor(scores.length / 2));
- const secondHalf = scores.slice(Math.floor(scores.length / 2));
-
- const firstAvg =
- firstHalf.reduce((sum, score) => sum + score, 0) / firstHalf.length;
- const secondAvg =
- secondHalf.reduce((sum, score) => sum + score, 0) / secondHalf.length;
-
- const diff = secondAvg - firstAvg;
-
- if (diff >= 5) return "Improving";
- if (diff <= -5) return "Declining";
- return "Stable";
- };
-
- const trend = getTrend();
- const trendColor =
- trend === "Improving"
- ? "text-green-600"
- : trend === "Declining"
- ? "text-red-600"
- : "text-amber-600";
-
- return (
-
- onViewCourse(course.courseId)}
- >
-
-
- {course.courseName}
-
- {course.courseCode}
-
-
-
-
-
-
-
- {/* Progress Overview */}
-
-
- Progress
-
- {course.completedTests}/{course.totalTests} tests
-
-
-
-
-
- {/* Stats Summary */}
-
-
-
Average
-
{averageScore.toFixed(1)}%
-
-
-
Latest
-
{latestScore.toFixed(1)}%
-
-
-
Highest
-
- {course.highestScore.toFixed(1)}%
-
-
-
-
-
- {sortedTests.length === 0 && (
-
-
- No test data available
-
-
- Complete tests to see performance
-
-
- )}
-
- {sortedTests.length > 0 && (
-
-
- Recent tests:
-
- {sortedTests
- .slice(-3)
- .reverse()
- .map((test) => (
-
- {test.testName}: {test.percentage.toFixed(0)}%
-
- ))}
-
- )}
-
-
- );
-};
diff --git a/src/components/results/course-results-grid.tsx b/src/components/results/course-results-grid.tsx
deleted file mode 100644
index 8e5de3c..0000000
--- a/src/components/results/course-results-grid.tsx
+++ /dev/null
@@ -1,49 +0,0 @@
-"use client";
-
-import React from "react";
-import { Card, CardContent } from "@/components/ui/card";
-import { Badge } from "@/components/ui/badge";
-import { BookOpen } from "lucide-react";
-import { CourseResult } from "./types";
-import { CourseCard } from "./course-card";
-
-interface CourseResultsGridProps {
- courses: CourseResult[];
- onViewCourse: (courseId: string) => void;
-}
-
-export const CourseResultsGrid: React.FC = ({
- courses,
- onViewCourse,
-}) => {
- return (
-
-
-
Course-wise Results
- {courses.length} Courses
-
-
- {courses.length === 0 ? (
-
-
-
- No Course Results
-
- You haven't taken any tests yet. Start with your first quiz!
-
-
-
- ) : (
-
- {courses.map((course) => (
-
- ))}
-
- )}
-
- );
-};
diff --git a/src/components/results/course-results-grid.tsx.bak b/src/components/results/course-results-grid.tsx.bak
deleted file mode 100644
index 42ff484..0000000
--- a/src/components/results/course-results-grid.tsx.bak
+++ /dev/null
@@ -1,128 +0,0 @@
-"use client";
-
-import React from "react";
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
-import { Badge } from "@/components/ui/badge";
-import { Button } from "@/components/ui/button";
-import { Progress } from "@/components/ui/progress";
-import {
- ChevronRight,
- BookOpen
-} from "lucide-react";
-import { CourseResult } from "./types";
-import { CoursePerformanceChart } from "./course-performance-chart";
-
-interface CourseResultsGridProps {
- courses: CourseResult[];
- onViewCourse: (courseId: string) => void;
-}
-
-export const CourseResultsGrid: React.FC = ({
- courses,
- onViewCourse
-}) => {
- const getPerformanceColor = (percentage: number) => {
- if (percentage >= 90) return 'text-green-600 bg-green-50 dark:bg-green-900/20';
- if (percentage >= 75) return 'text-blue-600 bg-blue-50 dark:bg-blue-900/20';
- if (percentage >= 60) return 'text-yellow-600 bg-yellow-50 dark:bg-yellow-900/20';
- return 'text-red-600 bg-red-50 dark:bg-red-900/20';
- };
-
- return (
-
-
-
Course-wise Results
- {courses.length} Courses
-
-
- {courses.length === 0 ? (
-
-
-
- No Course Results
-
- You haven't taken any tests yet. Start with your first quiz!
-
-
-
- ) : (
- {courses.map((course) => (
-
-
-
-
- {course.courseName}
-
- {course.courseCode}
-
-
-
onViewCourse(course.courseId)}
- >
- View Details
-
-
-
-
-
- {/* Progress Overview */}
-
-
- Progress
-
- {course.completedTests}/{course.totalTests} tests
-
-
-
-
-
- {/* Course Performance Chart */}
-
- Best Score
-
-
- {course.highestScore}%
-
-
-
-
- {/* Last Activity */}
-
-
- Last test
- {new Date(course.lastTestDate).toLocaleDateString()}
-
-
-
- {/* Action Button */}
- {
- e.stopPropagation();
- onViewCourse(course.courseId);
- }}
- >
-
- View Test Details
-
-
-
- ))}
-
- )}
-
- );
-};
diff --git a/src/components/results/detailed-test-result.tsx b/src/components/results/detailed-test-result.tsx
deleted file mode 100644
index 911d033..0000000
--- a/src/components/results/detailed-test-result.tsx
+++ /dev/null
@@ -1,378 +0,0 @@
-"use client";
-
-import React from "react";
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
-import { Badge } from "@/components/ui/badge";
-import { Button } from "@/components/ui/button";
-import { Progress } from "@/components/ui/progress";
-import { Separator } from "@/components/ui/separator";
-import {
- ArrowLeft,
- Clock,
- Target,
- FileText,
- Calendar,
- CheckCircle,
- XCircle,
- HelpCircle,
- BarChart3,
-} from "lucide-react";
-import { DetailedTestResult, QuestionResult } from "./types";
-
-interface DetailedTestResultProps {
- result: DetailedTestResult;
- onBack: () => void;
-}
-
-export const DetailedTestResultView: React.FC = ({
- result,
- onBack,
-}) => {
- const getScoreColor = (percentage: number) => {
- if (percentage >= 90) return "text-green-600";
- if (percentage >= 75) return "text-blue-600";
- if (percentage >= 60) return "text-yellow-600";
- return "text-red-600";
- };
-
- const getQuestionIcon = (isCorrect: boolean, questionType: string) => {
- if (questionType === "descriptive" || questionType === "coding") {
- return ;
- }
- return isCorrect ? (
-
- ) : (
-
- );
- };
-
- const renderAnswer = (question: QuestionResult) => {
- switch (question.questionType) {
- case "mcq":
- return (
-
- {question.options?.map((option, index) => (
-
-
-
- {String.fromCharCode(65 + index)}.
-
- {option.text}
- {option.isCorrect && (
-
- Correct
-
- )}
- {question.studentAnswer === option.id &&
- !option.isCorrect && (
-
- Your Answer
-
- )}
-
-
- ))}
-
- );
-
- case "true-false":
- return (
-
-
-
- Your Answer:{" "}
-
- {typeof question.studentAnswer === "boolean"
- ? question.studentAnswer
- ? "True"
- : "False"
- : String(question.studentAnswer)}
-
-
-
- Correct Answer:
-
- {typeof question.correctAnswer === "boolean"
- ? question.correctAnswer
- ? "True"
- : "False"
- : String(question.correctAnswer)}
-
-
-
-
- );
-
- case "fillup":
- return (
-
-
-
- Your Answer:
- {" "}
-
- {!question.studentAnswer
- ? "No answer provided"
- : Array.isArray(question.studentAnswer)
- ? question.studentAnswer.join(", ")
- : typeof question.studentAnswer === "object"
- ? JSON.stringify(question.studentAnswer)
- : String(question.studentAnswer)}
-
-
-
-
- Correct Answer:
- {" "}
-
- {Array.isArray(question.correctAnswer)
- ? question.correctAnswer.join(", ")
- : typeof question.correctAnswer === "object"
- ? JSON.stringify(question.correctAnswer)
- : String(question.correctAnswer)}
-
-
-
- );
-
- default:
- return (
-
-
- Answer review not available for this question type
-
-
- );
- }
- };
-
- return (
-
- {/* Header */}
-
-
-
-
- Back to Tests
-
-
-
{result.testName}
-
- {result.courseName} ({result.courseCode})
-
-
-
-
-
- {/* Test Summary */}
-
-
-
-
- Test Summary
-
-
-
-
- {/* Score */}
-
-
-
- Final Score
-
-
- {result.score}/{result.maxScore}
-
-
- {result.percentage}%
-
-
-
-
- {/* Time */}
-
-
-
- Time Taken
-
-
{result.timeTaken}m
-
- of {result.totalTime}m allocated
-
-
-
- {/* Questions */}
-
-
-
- Questions
-
-
- {result.summary.correctAnswers}
-
-
- of {result.summary.totalQuestions} correct
-
-
-
- {/* Date */}
-
-
-
- Completed
-
-
- {new Date(result.completedAt).toLocaleDateString()}
-
-
- {new Date(result.completedAt).toLocaleTimeString()}
-
-
-
-
-
-
- {/* Detailed Stats */}
-
-
-
- {result.summary.correctAnswers}
-
-
Correct
-
-
-
- {result.summary.incorrectAnswers}
-
-
Incorrect
-
-
-
- {result.summary.unanswered}
-
-
Unanswered
-
-
-
- {result.summary.timePerQuestion.toFixed(1)}m
-
-
Avg Time/Q
-
-
-
-
-
- {/* Question by Question Analysis */}
-
-
- Question-wise Analysis
-
-
-
- {result.questions.map((question, index) => (
-
- {/* Question Header */}
-
-
- {getQuestionIcon(question.isCorrect, question.questionType)}
-
-
Question {index + 1}
-
-
- {question.questionType.toUpperCase()}
-
- {question.marks} marks
- •
- {question.timeTaken}s
-
-
-
-
- {question.isCorrect ? "Correct" : "Incorrect"}
-
-
-
- {/* Question Text */}
-
-
- {/* Answer Section */}
-
-
- Your Answer vs Correct Answer
-
- {renderAnswer(question)}
-
-
- {/* Explanation */}
- {question.explanation && (
-
- )}
-
- ))}
-
-
-
-
- );
-};
diff --git a/src/components/results/index.ts b/src/components/results/index.ts
index dc2d47b..770647c 100644
--- a/src/components/results/index.ts
+++ b/src/components/results/index.ts
@@ -1,11 +1,40 @@
-// Export all results components
-export { StudentOverviewCard } from "./student-overview";
-export { RecentTestsCard } from "./recent-tests-card";
-export { CourseResultsGrid } from "./course-results-grid";
-export { CourseCard } from "./course-card";
-export { TestSummaries } from "./test-summaries";
-export { DetailedTestResultView } from "./detailed-test-result";
-export { PerformanceTrends } from "./performance-trends";
+// Re-export all components from the new structure
+// Doing named exports to avoid name conflicts
+export type {
+ TestSummary,
+ RecentTestResult,
+ QuestionResult,
+ DetailedTestResult,
+ ResultsFilters,
+} from "./common/types";
+export { DetailedTestResultView } from "./common/detailed-test-result";
-// Export types
-export type * from "./types";
+// Teacher exports
+export type {
+ TeacherCourseOverview,
+ TestOverview,
+ PerformanceDistribution,
+ StudentTestResult,
+ QuestionStat,
+ DetailedTestStatistics,
+} from "./teacher/types";
+export {
+ CoursesGrid,
+ CourseTestsTable,
+ CourseSummaryCard,
+ QuestionStatsTable,
+ RecentTestsCard as TeacherRecentTestsCard,
+ StudentResultsTable,
+ PerformanceDistributionChart,
+} from "./teacher";
+
+// Student exports
+export type { StudentOverallResult, CourseResult } from "./student/types";
+export {
+ StudentOverviewCard,
+ RecentTestsCard as StudentRecentTestsCard, // Restored export
+ CourseResultsGrid,
+ CourseCard,
+ TestSummaries,
+ PerformanceTrends,
+} from "./student";
diff --git a/src/components/results/performance-trends.tsx b/src/components/results/performance-trends.tsx
deleted file mode 100644
index 54dee65..0000000
--- a/src/components/results/performance-trends.tsx
+++ /dev/null
@@ -1,171 +0,0 @@
-"use client";
-
-import React, { useState } from "react";
-import { Badge } from "@/components/ui/badge";
-import { ChevronDown, ChevronUp } from "lucide-react";
-import { Button } from "@/components/ui/button";
-import { TestSummary } from "./types";
-
-interface PerformanceTrendsProps {
- tests: TestSummary[];
- courseName: string;
-}
-
-export const PerformanceTrends: React.FC = ({
- tests,
- courseName,
-}) => {
- const [isExpanded, setIsExpanded] = useState(false);
-
- // Sort tests by completion date
- const sortedTests = [...tests].sort(
- (a, b) =>
- new Date(a.completedAt).getTime() - new Date(b.completedAt).getTime(),
- );
-
- const scores = sortedTests.map((test) => test.percentage);
-
- // Calculate stats
- const averageScore =
- scores.length > 0
- ? scores.reduce((sum, score) => sum + score, 0) / scores.length
- : 0;
-
- const highestScore = scores.length > 0 ? Math.max(...scores) : 0;
-
- const lowestScore = scores.length > 0 ? Math.min(...scores) : 0;
-
- const latestScore = scores.length > 0 ? scores[scores.length - 1] : 0;
-
- // Get trend (improving, stable, declining)
- const getTrend = () => {
- if (scores.length < 2) return "Not enough data";
-
- const firstHalf = scores.slice(0, Math.floor(scores.length / 2));
- const secondHalf = scores.slice(Math.floor(scores.length / 2));
-
- const firstAvg =
- firstHalf.reduce((sum, score) => sum + score, 0) / firstHalf.length;
- const secondAvg =
- secondHalf.reduce((sum, score) => sum + score, 0) / secondHalf.length;
-
- const diff = secondAvg - firstAvg;
-
- if (diff >= 5) return "Improving";
- if (diff <= -5) return "Declining";
- return "Stable";
- };
-
- if (tests.length === 0) {
- return (
-
-
-
Performance Trends
-
-
-
- No test data available for {courseName}
-
-
- Complete tests in this course to see performance trends
-
-
-
- );
- }
-
- const trend = getTrend();
- const trendColor =
- trend === "Improving"
- ? "text-green-600"
- : trend === "Declining"
- ? "text-red-600"
- : "text-amber-600";
-
- return (
-
-
setIsExpanded(!isExpanded)}
- >
-
Performance Trends
-
- {isExpanded ? (
-
- ) : (
-
- )}
-
-
-
- {/* Always show summary stats */}
-
-
-
-
Average Score
-
- {averageScore.toFixed(1)}%
-
-
-
-
-
Latest Score
-
{latestScore.toFixed(1)}%
-
-
-
-
Highest Score
-
- {highestScore.toFixed(1)}%
-
-
-
-
-
-
-
- {/* Collapsible details section */}
- {isExpanded && (
-
-
-
Lowest Score
-
- {lowestScore.toFixed(1)}%
-
-
-
-
-
- Test History
-
-
- {sortedTests.map((test, index) => (
-
- Quiz {index + 1}: {test.percentage.toFixed(0)}% -{" "}
- {test.testName}
-
- ))}
-
-
-
-
-
Analysis
-
- {trend === "Improving" &&
- "Your scores are showing an upward trend. Keep up the good work!"}
- {trend === "Declining" &&
- "Your scores are declining. Consider revisiting earlier material or seeking additional help."}
- {trend === "Stable" &&
- "Your performance has been consistent. Focus on difficult areas to improve further."}
- {trend === "Not enough data" &&
- "Take more tests to see performance analysis."}
-
-
-
- )}
-
- );
-};
diff --git a/src/components/results/recent-tests-card.tsx b/src/components/results/recent-tests-card.tsx
deleted file mode 100644
index 0fdda6a..0000000
--- a/src/components/results/recent-tests-card.tsx
+++ /dev/null
@@ -1,137 +0,0 @@
-"use client";
-
-import React from "react";
-import {
- Card,
- CardContent,
- CardHeader,
- CardTitle,
- CardFooter,
-} from "@/components/ui/card";
-import { Badge } from "@/components/ui/badge";
-import { Button } from "@/components/ui/button";
-import { Progress } from "@/components/ui/progress";
-import { ChevronRight, BookOpen, Calendar } from "lucide-react";
-import { RecentTestResult } from "./types";
-
-interface RecentTestsCardProps {
- tests: RecentTestResult[];
- onViewTest: (testId: string) => void;
-}
-
-export const RecentTestsCard: React.FC = ({
- tests,
- onViewTest,
-}) => {
- const getStatusColor = (status: string) => {
- switch (status) {
- case "completed":
- return "bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-300";
- case "in-progress":
- return "bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-300";
- default:
- return "bg-gray-100 text-gray-800 dark:bg-gray-900 dark:text-gray-300";
- }
- }; // We use the status color instead of score color for this component
-
- // Filter to show only tests from the last 7 days
- const sevenDaysAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
- const displayTests = tests
- .filter((test) => new Date(test.completedAt) >= sevenDaysAgo)
- .sort(
- (a, b) =>
- new Date(b.completedAt).getTime() - new Date(a.completedAt).getTime(),
- ) // Most recent first
- .slice(0, 3); // Show max 3 tests
-
- return (
-
-
-
- {" "}
-
-
- Recent Tests (Last 7 Days)
-
-
- {displayTests.length} Tests
-
-
-
-
-
- {tests.length === 0 ? (
-
- {" "}
-
-
No tests in the last 7 days
-
- ) : (
- displayTests.map((test) => (
-
-
-
-
- {test.testName}
-
-
- {test.status === "completed"
- ? `${test.percentage}%`
- : test.status}
-
-
-
-
-
- {test.courseName}
-
-
- {new Date(test.completedAt).toLocaleDateString()}
-
-
-
- {test.status === "completed" && (
-
-
-
onViewTest(test.testId)}
- className="h-6 w-6 ml-1"
- >
-
-
-
- )}
-
-
- ))
- )}
-
-
-
- {tests.length > 0 && (
-
- onViewTest(tests[0].testId)}
- >
- View All Test Results
-
-
-
- )}
-
- );
-};
diff --git a/src/components/results/student/course-card.tsx b/src/components/results/student/course-card.tsx
new file mode 100644
index 0000000..c510b6a
--- /dev/null
+++ b/src/components/results/student/course-card.tsx
@@ -0,0 +1,112 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+
+import { CourseResult } from "./types";
+import { TestSummary } from "../common/types";
+import { getScoreBgColor, getScoreTextColor } from "@/lib/utils/score-colors";
+
+interface CourseCardProps {
+ course: CourseResult;
+ onViewCourse: (courseId: string) => void;
+ onViewTest?: (testId: string) => void;
+}
+
+export function CourseCard({
+ course,
+ onViewCourse,
+ onViewTest,
+}: CourseCardProps) {
+ // Calculate average score
+ const averageScore = course.testResults.length
+ ? course.testResults.reduce(
+ (sum: number, test: TestSummary) => sum + test.percentage,
+ 0,
+ ) / course.testResults.length
+ : 0;
+ // No longer needed - best score removed
+ // Sort tests by completion date (most recent first) and get top 3
+ const recentTests = [...course.testResults]
+ .sort(
+ (a, b) =>
+ new Date(b.completedAt).getTime() - new Date(a.completedAt).getTime(),
+ )
+ .slice(0, 3);
+
+ return (
+ onViewCourse(course.courseId)}
+ >
+ {" "}
+
+
+
+ {course.courseName}
+
+
+ {course.courseCode}
+
+
+
+
+
+ {" "}
+ {/* Progress and Stats */}{" "}
+
+ {/* Average Score - Emphasized */}
+
+
+ Average Score
+
+
+ {averageScore.toFixed(1)}%
+
+
+ {course.completedTests} of {course.totalTests} tests completed
+
+
+
+ {/* Recent Tests */}
+ {recentTests.length > 0 && (
+
+
Recent Tests
+
+ {recentTests.map((test) => (
+
{
+ e.stopPropagation();
+ if (onViewTest) onViewTest(test.testId);
+ }}
+ >
+
+
+ {test.testName}
+
+
+ {new Date(test.completedAt).toLocaleDateString()}
+
+
{" "}
+
+ {test.score}/{test.maxScore} ({test.percentage.toFixed(1)}
+ %)
+
+
+ ))}
+
+
+ )}
+
+
+
+ );
+}
diff --git a/src/components/results/student/course-results-grid.tsx b/src/components/results/student/course-results-grid.tsx
new file mode 100644
index 0000000..fb02d5f
--- /dev/null
+++ b/src/components/results/student/course-results-grid.tsx
@@ -0,0 +1,41 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent } from "@/components/ui/card";
+import { CourseResult } from "./types";
+import { CourseCard } from "./course-card";
+
+interface CourseResultsGridProps {
+ courses: CourseResult[];
+ onViewCourse: (courseId: string) => void;
+ onViewTest?: (testId: string) => void;
+}
+
+export function CourseResultsGrid({
+ courses,
+ onViewCourse,
+ onViewTest,
+}: CourseResultsGridProps) {
+ return (
+
+
+ {courses.map((course) => (
+
+ ))}
+
+
+ {courses.length === 0 && (
+
+
+ No courses found
+
+
+ )}
+
+ );
+}
diff --git a/src/components/results/student/index.ts b/src/components/results/student/index.ts
new file mode 100644
index 0000000..6733d12
--- /dev/null
+++ b/src/components/results/student/index.ts
@@ -0,0 +1,8 @@
+// Export all student-specific components
+export * from "./student-overview";
+export * from "./course-card";
+export * from "./course-results-grid";
+export * from "./performance-trends";
+export * from "./recent-tests-card"; // Re-enabled export
+export * from "./test-summaries";
+export * from "./types";
diff --git a/src/components/results/student/performance-trends.tsx b/src/components/results/student/performance-trends.tsx
new file mode 100644
index 0000000..c97381a
--- /dev/null
+++ b/src/components/results/student/performance-trends.tsx
@@ -0,0 +1,230 @@
+"use client";
+
+import React, { useState } from "react";
+import { Badge } from "@/components/ui/badge";
+import {
+ ChevronDown,
+ ChevronUp,
+ TrendingUp,
+ TrendingDown,
+ Minus,
+} from "lucide-react";
+import { Button } from "@/components/ui/button";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import type { TestSummary } from "../common/types";
+import { getScoreTextColor } from "@/lib/utils/score-colors";
+
+interface PerformanceTrendsProps {
+ tests: TestSummary[];
+ courseName: string;
+}
+
+export function PerformanceTrends({
+ tests,
+ courseName,
+}: PerformanceTrendsProps) {
+ const [isExpanded, setIsExpanded] = useState(false);
+
+ // Sort tests by completion date
+ const sortedTests = [...tests].sort(
+ (a, b) =>
+ new Date(a.completedAt).getTime() - new Date(b.completedAt).getTime(),
+ );
+
+ const scores = sortedTests.map((test) => test.percentage);
+
+ // Calculate stats
+ const averageScore =
+ scores.length > 0
+ ? scores.reduce((sum, score) => sum + score, 0) / scores.length
+ : 0;
+
+ const highestScore = scores.length > 0 ? Math.max(...scores) : 0;
+
+ const latestScore = scores.length > 0 ? scores[scores.length - 1] : 0;
+
+ // Get trend (improving, stable, declining)
+ const getTrend = () => {
+ if (scores.length < 2) return "Not enough data";
+
+ const firstHalf = scores.slice(0, Math.floor(scores.length / 2));
+ const secondHalf = scores.slice(Math.floor(scores.length / 2));
+
+ const firstAvg =
+ firstHalf.reduce((sum, score) => sum + score, 0) / firstHalf.length;
+ const secondAvg =
+ secondHalf.reduce((sum, score) => sum + score, 0) / secondHalf.length;
+
+ const diff = secondAvg - firstAvg;
+ if (diff > 5) return "Improving";
+ if (diff < -5) return "Declining";
+ return "Stable";
+ };
+
+ const getTrendIcon = () => {
+ const trend = getTrend();
+ if (trend === "Improving")
+ return ;
+ if (trend === "Declining")
+ return ;
+ return ;
+ };
+
+ const getTrendColor = () => {
+ const trend = getTrend();
+ if (trend === "Improving") return "text-green-600";
+ if (trend === "Declining") return "text-red-600";
+ return "text-orange-600";
+ };
+
+ const testCount = sortedTests.length;
+
+ if (testCount === 0) {
+ return (
+
+
+
+
No test data available for {courseName}
+
+
+
+ );
+ }
+
+ return (
+
+
+
+ Performance Trends
+ setIsExpanded(!isExpanded)}
+ className="gap-1"
+ aria-label={isExpanded ? "Show less" : "Show more"}
+ >
+ {isExpanded ? (
+ <>
+ Show Less
+
+ >
+ ) : (
+ <>
+ Show More
+
+ >
+ )}
+
+
+
+
+
+
+ {" "}
+
Average Score
+
+ {averageScore.toFixed(1)}%
+
+
+
+
+ {" "}
+
Latest Score
+
+ {latestScore.toFixed(1)}%
+
+
+
+
+ {" "}
+
Best Score
+
+ {highestScore.toFixed(1)}%
+
+
+
+
+
Trend
+
+ {getTrendIcon()}
+ {getTrend()}
+
+
+
+
+ {isExpanded && (
+
+
Score History
+
+ {scores.length > 1 && (
+
+
+ {/* Connect the score points with lines */}
+ `${i}, ${100 - score}`)
+ .join(" ")}
+ fill="none"
+ stroke="currentColor"
+ strokeWidth="2"
+ className="text-primary"
+ />
+
+ {/* Add dots for each score point */}
+ {scores.map((score, i) => (
+
+ ))}
+
+
+ )}
+
+
+
+
Test History
+
+ {sortedTests.map((test, index) => (
+
+
+
+ {index + 1}
+
+ {test.testName}
+
{" "}
+
+ {test.percentage.toFixed(1)}%
+
+
+ ))}
+
+
+
+ )}
+
+
+ );
+}
diff --git a/src/components/results/student/recent-tests-card.tsx b/src/components/results/student/recent-tests-card.tsx
new file mode 100644
index 0000000..0862098
--- /dev/null
+++ b/src/components/results/student/recent-tests-card.tsx
@@ -0,0 +1,163 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import { BookOpen, Calendar, Timer } from "lucide-react";
+import type { RecentTestResult } from "../common/types";
+import { getScoreBgColor } from "@/lib/utils/score-colors";
+import { Skeleton } from "@/components/ui/skeleton";
+import { useRecentTestResults } from "@/repo/student-results/student-results-api";
+
+interface RecentTestsCardProps {
+ studentId: string;
+ limit?: number;
+ tests?: RecentTestResult[];
+ onViewTest: (testId: string) => void;
+ showHeader?: boolean;
+}
+
+// Ensure this component is properly exported
+export const RecentTestsCard: React.FC = ({
+ studentId,
+ limit = 3,
+ tests: propTests,
+ onViewTest,
+ showHeader = true,
+}) => {
+ // Use our custom React Query hook if studentId is provided, otherwise use prop tests
+ const {
+ data: queryTests,
+ isLoading,
+ isError,
+ } = useRecentTestResults(studentId, limit, {
+ enabled: !!studentId && !propTests,
+ });
+
+ // Use either provided tests from props or fetched tests from query
+ const tests = propTests || queryTests || [];
+
+ // Sort tests by completion date (most recent first)
+ const sortedTests = [...tests].sort(
+ (a, b) =>
+ new Date(b.completedAt).getTime() - new Date(a.completedAt).getTime(),
+ );
+
+ // Show only the specified limit (default 3)
+ const recentTests = sortedTests.slice(0, limit);
+
+ if (isLoading) {
+ return (
+
+ {showHeader && (
+
+
+ Recent Tests
+
+
+ )}
+
+
+ {Array.from({ length: limit }).map((_, i) => (
+
+ ))}
+
+
+
+ );
+ }
+
+ if (isError) {
+ return (
+
+ {showHeader && (
+
+
+ Recent Tests
+
+
+ )}
+
+ Failed to load test results
+
+
+ );
+ }
+
+ if (recentTests.length === 0) {
+ return (
+
+ {showHeader && (
+
+
+ Recent Tests
+
+
+ )}
+
+ No tests completed yet
+
+
+ );
+ }
+
+ return (
+
+ {showHeader && (
+
+ Recent Tests
+
+ )}
+
+
+ {recentTests.map((test) => (
+
onViewTest(test.testId)}
+ >
+
+
+ {test.testName}
+
+
+ {test.score}/{test.maxScore} ({test.percentage.toFixed(1)}%)
+
+
+
+
+
+
+ {test.courseName}
+
+
+
+
+ {new Date(test.completedAt).toLocaleDateString()}
+
+
+
+
+ {test.timeTaken} min
+
+
+
+ ))}
+
+
+
+ );
+};
diff --git a/src/components/results/student-overview.tsx b/src/components/results/student/student-overview.tsx
similarity index 100%
rename from src/components/results/student-overview.tsx
rename to src/components/results/student/student-overview.tsx
diff --git a/src/components/results/course-performance-chart.tsx b/src/components/results/student/student-results-overview.tsx
similarity index 100%
rename from src/components/results/course-performance-chart.tsx
rename to src/components/results/student/student-results-overview.tsx
diff --git a/src/components/results/student/test-summaries.tsx b/src/components/results/student/test-summaries.tsx
new file mode 100644
index 0000000..3e98f00
--- /dev/null
+++ b/src/components/results/student/test-summaries.tsx
@@ -0,0 +1,266 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import {
+ ArrowLeft,
+ Clock,
+ Target,
+ FileText,
+ Calendar,
+ CheckCircle,
+ ChevronRight,
+} from "lucide-react";
+import type { TestSummary } from "../common/types";
+import { getScoreBgColor, getScoreTextColor } from "@/lib/utils/score-colors";
+
+interface TestSummariesProps {
+ courseName: string;
+ courseCode: string;
+ tests: TestSummary[];
+ onBack: () => void;
+ onViewTest: (testId: string) => void;
+}
+
+export function TestSummaries({
+ courseName,
+ courseCode,
+ tests,
+ onBack,
+ onViewTest,
+}: TestSummariesProps) {
+ const getStatusColor = (status: string) => {
+ switch (status) {
+ case "completed":
+ return "bg-green-100 text-green-800 border-green-300 dark:bg-green-900/30 dark:text-green-300";
+ case "in-progress":
+ return "bg-blue-100 text-blue-800 border-blue-300 dark:bg-blue-900/30 dark:text-blue-300";
+ default:
+ return "bg-slate-100 text-slate-800 border-slate-300 dark:bg-slate-900/30 dark:text-slate-300";
+ }
+ };
+
+ const getDifficultyColor = (difficulty: string) => {
+ switch (difficulty) {
+ case "easy":
+ return "bg-emerald-100 text-emerald-800 border-emerald-300 dark:bg-emerald-900/30 dark:text-emerald-300";
+ case "medium":
+ return "bg-amber-100 text-amber-800 border-amber-300 dark:bg-amber-900/30 dark:text-amber-300";
+ case "hard":
+ return "bg-red-100 text-red-800 border-red-300 dark:bg-red-900/30 dark:text-red-300";
+ default:
+ return "bg-slate-100 text-slate-800 border-slate-300 dark:bg-slate-900/30 dark:text-slate-300";
+ }
+ };
+
+ const completedTests = tests.filter((test) => test.status === "completed");
+ const averageScore =
+ completedTests.length > 0
+ ? completedTests.reduce((acc, test) => acc + test.percentage, 0) /
+ completedTests.length
+ : 0;
+
+ // Sort tests by date (most recent first)
+ const sortedTests = [...tests].sort(
+ (a, b) =>
+ new Date(b.completedAt).getTime() - new Date(a.completedAt).getTime(),
+ );
+
+ return (
+
+ {/* Header */}
+
+
+
+
+ Back
+
+
+
+ {courseName}
+ {courseCode}
+
+
+
+
+ {tests.length} {tests.length === 1 ? "Test" : "Tests"}
+
+
+ {/* Course Statistics Cards */}
+
+
+ {" "}
+
+
+
+
+
+ Average Score
+ {" "}
+
+
+
+
+ {averageScore.toFixed(1)}%
+
+
+
+
+
+
+ {" "}
+
+
+
+
+
+ Completion
+ {" "}
+
+
+
+
+ {tests.length > 0
+ ? ((completedTests.length / tests.length) * 100).toFixed(0)
+ : 0}
+ %
+
+
+ ({completedTests.length}/{tests.length} tests)
+
+
+
+
+
+
+ {" "}
+
+
+
+
+
+ Best Performance
+ {" "}
+
+
+ {completedTests.length > 0 ? (
+
+ {" "}
+ test.percentage)))}`}
+ >
+ {Math.max(
+ ...completedTests.map((test) => test.percentage),
+ ).toFixed(1)}
+ %
+
+
+ highest score
+
+
+ ) : (
+ No completed tests
+ )}
+
+
+
{" "}
+ {/* Performance Trends removed as requested */} {/* Tests List */}{" "}
+
+
+
+ Test Results
+ {completedTests.length > 0 && (
+
+ Click on a test to view detailed results
+
+ )}
+
+
+
+ {" "}
+ {tests.length === 0 ? (
+
+
+ No tests available for this course
+
+
+ ) : (
+
+ {sortedTests.map((test) => (
+
onViewTest(test.testId)}
+ >
+
+
+
+
{test.testName}
+
+ {test.difficulty}
+
+
+ {test.status === "completed"
+ ? "Completed"
+ : test.status === "in-progress"
+ ? "In Progress"
+ : "Not Started"}
+
+
+
+
+
+
+
+ {new Date(test.completedAt).toLocaleDateString()}
+
+
+
+
+ {test.timeTaken} min
+
+
+
+
+ {test.correctAnswers}/{test.questionCount} correct
+
+
+
+
+
+
+ {" "}
+
+ {test.score}/{test.maxScore} (
+ {test.percentage.toFixed(1)}%)
+ {" "}
+
+
+
+
+ ))}
+
+ )}
+
+
+
+ );
+}
diff --git a/src/components/results/student/types.ts b/src/components/results/student/types.ts
new file mode 100644
index 0000000..cadd0f4
--- /dev/null
+++ b/src/components/results/student/types.ts
@@ -0,0 +1,26 @@
+// Student-specific types
+
+import type { RecentTestResult, TestSummary } from "../common/types";
+
+export interface StudentOverallResult {
+ studentId: string;
+ studentName: string;
+ totalTests: number;
+ averageScore: number;
+ highestScore: number;
+ lowestScore: number;
+ totalTimeTaken: number; // in minutes
+ recentTests: RecentTestResult[];
+}
+
+export interface CourseResult {
+ courseId: string;
+ courseName: string;
+ courseCode: string;
+ totalTests: number;
+ completedTests: number;
+ averageScore: number;
+ highestScore: number;
+ lastTestDate: string;
+ testResults: TestSummary[];
+}
diff --git a/src/components/results/teacher-components/course-tests-table.tsx b/src/components/results/teacher-components/course-tests-table.tsx
deleted file mode 100644
index 0fcbf6e..0000000
--- a/src/components/results/teacher-components/course-tests-table.tsx
+++ /dev/null
@@ -1,122 +0,0 @@
-"use client";
-
-import React, { useState } from "react";
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
-import { TestOverview } from "../teacher-types";
-import {
- Table,
- TableBody,
- TableCell,
- TableHead,
- TableHeader,
- TableRow,
-} from "@/components/ui/table";
-import { Button } from "@/components/ui/button";
-import { formatDistanceToNow } from "date-fns";
-import { Eye, Search } from "lucide-react";
-import { Input } from "@/components/ui/input";
-
-interface CourseTestsTableProps {
- tests: TestOverview[];
- onViewTest: (testId: string) => void;
-}
-
-export function CourseTestsTable({ tests, onViewTest }: CourseTestsTableProps) {
- const [searchQuery, setSearchQuery] = useState("");
-
- const filteredTests = tests.filter((test) =>
- test.testName.toLowerCase().includes(searchQuery.toLowerCase()),
- );
-
- if (tests.length === 0) {
- return (
-
-
- Tests
-
-
-
- No tests found for this course
-
-
-
- );
- }
-
- return (
-
-
- Tests
-
-
-
-
-
- setSearchQuery(e.target.value)}
- className="border-0 focus-visible:ring-0 focus-visible:ring-offset-0"
- />
-
-
-
-
-
- Test Name
- Submissions
- Avg. Score
- High Score
- Duration
-
-
-
-
- {filteredTests.map((test) => (
-
-
-
-
{test.testName}
-
- Created{" "}
- {formatDistanceToNow(new Date(test.createdAt), {
- addSuffix: true,
- })}
-
-
-
-
- {test.totalSubmissions}
-
- {test.completionRate}% Completion
-
-
-
- {test.averageScore.toFixed(1)}%
-
-
- {test.highestScore}%
-
-
- {test.duration} min
-
-
- onViewTest(test.testId)}
- className="h-8 gap-1"
- >
- View
-
-
-
- ))}
-
-
-
-
-
-
- );
-}
diff --git a/src/components/results/teacher-components/courses-grid.tsx b/src/components/results/teacher-components/courses-grid.tsx
deleted file mode 100644
index cc25137..0000000
--- a/src/components/results/teacher-components/courses-grid.tsx
+++ /dev/null
@@ -1,139 +0,0 @@
-"use client";
-
-import React from "react";
-import {
- Card,
- CardContent,
- CardHeader,
- CardTitle,
- CardFooter,
-} from "@/components/ui/card";
-import { TeacherCourseOverview } from "../teacher-types";
-import { Button } from "@/components/ui/button";
-import { Award, BookOpen, ChevronRight, Users } from "lucide-react";
-
-// Function to get a color for the course card based on course code
-const getCourseColor = (courseCode: string): string => {
- // Extract the first letter or number from the course code
- const firstChar = courseCode.charAt(0).toLowerCase();
-
- // Assign colors based on the first character
- if (["a", "b", "c"].includes(firstChar))
- return "border-blue-500 bg-blue-50 dark:bg-blue-950/30";
- if (["d", "e", "f"].includes(firstChar))
- return "border-emerald-500 bg-emerald-50 dark:bg-emerald-950/30";
- if (["g", "h", "i"].includes(firstChar))
- return "border-violet-500 bg-violet-50 dark:bg-violet-950/30";
- if (["j", "k", "l"].includes(firstChar))
- return "border-amber-500 bg-amber-50 dark:bg-amber-950/30";
- if (["m", "n", "o"].includes(firstChar))
- return "border-cyan-500 bg-cyan-50 dark:bg-cyan-950/30";
- if (["p", "q", "r"].includes(firstChar))
- return "border-rose-500 bg-rose-50 dark:bg-rose-950/30";
- if (["s", "t", "u"].includes(firstChar))
- return "border-green-500 bg-green-50 dark:bg-green-950/30";
- if (["v", "w", "x", "y", "z"].includes(firstChar))
- return "border-orange-500 bg-orange-50 dark:bg-orange-950/30";
-
- // Default for numbers or other characters
- return "border-indigo-500 bg-indigo-50 dark:bg-indigo-950/30";
-};
-
-interface CoursesGridProps {
- courses: TeacherCourseOverview[];
- onViewCourse: (courseId: string) => void;
-}
-
-export function CoursesGrid({ courses, onViewCourse }: CoursesGridProps) {
- if (courses.length === 0) {
- return (
-
-
- No courses found
-
-
- );
- }
-
- return (
-
- {courses.map((course) => {
- const colorClass = getCourseColor(course.courseCode);
-
- return (
-
-
-
-
-
{course.courseName}
-
- {course.courseCode}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Students
-
{course.totalStudents}
-
-
-
-
-
-
-
Tests
-
{course.totalTests}
-
-
-
-
-
-
-
Average
-
- {course.averageScore.toFixed(1)}%
-
-
-
-
-
-
-
- %
-
-
-
-
Completion
-
{course.completionRate}%
-
-
-
-
-
-
- onViewCourse(course.courseId)}
- className="w-full text-primary justify-between hover:bg-primary/5"
- >
- View Course Details
-
-
-
-
- );
- })}
-
- );
-}
diff --git a/src/components/results/teacher-components/index.ts b/src/components/results/teacher-components/index.ts
deleted file mode 100644
index f83360f..0000000
--- a/src/components/results/teacher-components/index.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export { CourseSummaryCard } from "./course-summary-card";
-export { CoursesGrid } from "./courses-grid";
-export { CourseTestsTable } from "./course-tests-table";
-export { RecentTestsCard } from "./recent-tests-card";
-export { PerformanceDistributionChart } from "./performance-distribution-chart";
-export { StudentResultsTable } from "./student-results-table";
-export { QuestionStatsTable } from "./question-stats-table";
diff --git a/src/components/results/teacher-components/performance-distribution-chart.tsx b/src/components/results/teacher-components/performance-distribution-chart.tsx
deleted file mode 100644
index 68ae66b..0000000
--- a/src/components/results/teacher-components/performance-distribution-chart.tsx
+++ /dev/null
@@ -1,86 +0,0 @@
-"use client";
-
-import React from "react";
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
-import { DetailedTestStatistics } from "../teacher-types";
-
-// Color gradient for the performance bars
-const getBarColor = (range: string): string => {
- // Extract the lower bound of the range as a number
- const lowerBound = parseInt(range.split("-")[0]);
-
- // Use a gradient based on the performance level
- if (lowerBound < 20) return "bg-red-500";
- if (lowerBound < 40) return "bg-orange-500";
- if (lowerBound < 60) return "bg-yellow-500";
- if (lowerBound < 80) return "bg-emerald-500";
- return "bg-green-600";
-};
-
-interface PerformanceDistributionChartProps {
- statistics: DetailedTestStatistics;
-}
-
-export function PerformanceDistributionChart({
- statistics,
-}: PerformanceDistributionChartProps) {
- // Extract the performance distribution data
- const { performanceDistribution } = statistics;
-
- // Find the maximum count to scale the chart
- const maxCount = Math.max(
- ...performanceDistribution.map((item) => item.count),
- );
-
- // Ensure we have data to render
- if (!performanceDistribution || performanceDistribution.length === 0) {
- return (
-
-
- Performance Distribution
-
-
-
-
- No performance data available
-
-
-
-
- );
- }
-
- return (
-
-
-
-
- Performance Distribution
-
-
-
-
- {performanceDistribution.map((range) => (
-
-
-
-
{range.range}%
-
{range.count} students
-
({range.percentage}%)
-
-
- ))}
-
-
-
- );
-}
diff --git a/src/components/results/teacher-components/question-stats-table.tsx b/src/components/results/teacher-components/question-stats-table.tsx
deleted file mode 100644
index 2d463a9..0000000
--- a/src/components/results/teacher-components/question-stats-table.tsx
+++ /dev/null
@@ -1,111 +0,0 @@
-"use client";
-
-import React, { useState } from "react";
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
-import { DetailedTestStatistics } from "../teacher-types";
-import { Progress } from "@/components/ui/progress";
-import {
- Table,
- TableBody,
- TableCell,
- TableHead,
- TableHeader,
- TableRow,
-} from "@/components/ui/table";
-import { Badge } from "@/components/ui/badge";
-import { Search } from "lucide-react";
-import { Input } from "@/components/ui/input";
-
-interface QuestionStatsTableProps {
- statistics: DetailedTestStatistics;
-}
-
-export function QuestionStatsTable({ statistics }: QuestionStatsTableProps) {
- const [searchQuery, setSearchQuery] = useState("");
-
- const filteredQuestions = statistics.questionStats.filter((question) =>
- question.questionType.toLowerCase().includes(searchQuery.toLowerCase()),
- );
-
- const getDifficultyColor = (difficulty: string) => {
- switch (difficulty.toLowerCase()) {
- case "easy":
- return "bg-green-50 text-green-700 border-green-200 dark:bg-green-950 dark:text-green-300 dark:border-green-800";
- case "medium":
- return "bg-amber-50 text-amber-700 border-amber-200 dark:bg-amber-950 dark:text-amber-300 dark:border-amber-800";
- case "hard":
- return "bg-orange-50 text-orange-700 border-orange-200 dark:bg-orange-950 dark:text-orange-300 dark:border-orange-800";
- case "advanced":
- return "bg-red-50 text-red-700 border-red-200 dark:bg-red-950 dark:text-red-300 dark:border-red-800";
- default:
- return "bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-950 dark:text-blue-300 dark:border-blue-800";
- }
- };
-
- return (
-
-
- Question Analysis
-
-
-
-
-
- setSearchQuery(e.target.value)}
- className="border-0 focus-visible:ring-0 focus-visible:ring-offset-0"
- />
-
-
-
-
-
- Q#
- Type
- Difficulty
- Correct %
- Attempted
-
-
-
- {filteredQuestions.map((question) => (
-
-
- {question.questionNumber}
-
- {question.questionType}
-
-
- {question.difficulty}
-
-
-
-
- {question.correctPercentage}%
-
-
-
-
- {question.attemptedCount}
-
- ({question.skippedCount} skipped)
-
-
-
- ))}
-
-
-
-
-
-
- );
-}
diff --git a/src/components/results/teacher-components/student-results-table.tsx b/src/components/results/teacher-components/student-results-table.tsx
deleted file mode 100644
index 3a6ecf1..0000000
--- a/src/components/results/teacher-components/student-results-table.tsx
+++ /dev/null
@@ -1,104 +0,0 @@
-"use client";
-
-import React, { useState } from "react";
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
-import { DetailedTestStatistics } from "../teacher-types";
-import {
- Table,
- TableBody,
- TableCell,
- TableHead,
- TableHeader,
- TableRow,
-} from "@/components/ui/table";
-import { formatRelative } from "date-fns";
-import { Badge } from "@/components/ui/badge";
-import { Search } from "lucide-react";
-import { Input } from "@/components/ui/input";
-
-interface StudentResultsTableProps {
- statistics: DetailedTestStatistics;
- onViewStudentResult?: (studentId: string, testId: string) => void;
-}
-
-export function StudentResultsTable({ statistics }: StudentResultsTableProps) {
- const [searchQuery, setSearchQuery] = useState("");
-
- const filteredResults = statistics.studentResults.filter((student) =>
- student.studentName.toLowerCase().includes(searchQuery.toLowerCase()),
- );
-
- return (
-
-
- Student Results
-
-
-
-
-
- setSearchQuery(e.target.value)}
- className="border-0 focus-visible:ring-0 focus-visible:ring-offset-0"
- />
-
-
-
-
-
- Student Name
- Score
- Time Taken
- Completed
- Attempts
- Status
-
-
-
- {filteredResults.map((result) => (
-
- {result.studentName}
-
- {result.score} / {result.maxScore}
-
- {result.percentage.toFixed(1)}%
-
-
-
- {result.timeTaken} min
-
-
- {formatRelative(new Date(result.completedAt), new Date())}
-
-
- {result.attemptCount}
-
-
- {result.status === "completed" ? (
-
- Completed
-
- ) : (
-
- {result.status}
-
- )}
-
-
- ))}
-
-
-
-
-
-
- );
-}
diff --git a/src/components/results/teacher-results-card.tsx b/src/components/results/teacher-results-card.tsx
deleted file mode 100644
index e69de29..0000000
diff --git a/src/components/results/teacher-components/course-summary-card.tsx b/src/components/results/teacher/course-summary-card.tsx
similarity index 64%
rename from src/components/results/teacher-components/course-summary-card.tsx
rename to src/components/results/teacher/course-summary-card.tsx
index d3d05ec..69c8b7d 100644
--- a/src/components/results/teacher-components/course-summary-card.tsx
+++ b/src/components/results/teacher/course-summary-card.tsx
@@ -2,9 +2,8 @@
import React from "react";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
-import { TeacherCourseOverview } from "../teacher-types";
-import { Progress } from "@/components/ui/progress";
-import { Clock, Users, Award, BookOpen } from "lucide-react";
+import { TeacherCourseOverview } from "./types";
+import { Users, BookOpen, Award } from "lucide-react";
interface CourseSummaryCardProps {
course: TeacherCourseOverview;
@@ -17,27 +16,17 @@ export function CourseSummaryCard({
}: CourseSummaryCardProps) {
return (
onViewCourse(course.courseId)}
>
-
+
{course.courseName}
{course.courseCode}
-
+
-
-
- Average Score
-
- {course.averageScore.toFixed(1)}%
-
-
-
-
-
@@ -62,14 +51,6 @@ export function CourseSummaryCard({
{course.highestScore}%
-
-
-
-
-
Completion
-
{course.completionRate}%
-
-
diff --git a/src/components/results/teacher/course-tests-table.tsx b/src/components/results/teacher/course-tests-table.tsx
new file mode 100644
index 0000000..0028077
--- /dev/null
+++ b/src/components/results/teacher/course-tests-table.tsx
@@ -0,0 +1,250 @@
+"use client";
+
+import React, { useState } from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { TestOverview } from "./types";
+import {
+ Table,
+ TableBody,
+ TableCell,
+ TableHead,
+ TableHeader,
+ TableRow,
+} from "@/components/ui/table";
+import { formatDistanceToNow } from "date-fns";
+import {
+ Search,
+ Calendar,
+ Users,
+ BarChart,
+ ChevronDown,
+ ChevronUp,
+} from "lucide-react";
+import { Input } from "@/components/ui/input";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+
+interface CourseTestsTableProps {
+ tests: TestOverview[];
+ onViewTest: (testId: string) => void;
+}
+
+type SortField = "createdAt" | "testName" | "totalSubmissions" | "averageScore";
+type SortDirection = "asc" | "desc";
+
+export function CourseTestsTable({ tests, onViewTest }: CourseTestsTableProps) {
+ const [searchQuery, setSearchQuery] = useState("");
+ const [sortField, setSortField] = useState("createdAt");
+ const [sortDirection, setSortDirection] = useState("desc"); // desc = newest first
+
+ // Function to get badge color based on average score
+ const getScoreBadgeColor = (score: number): string => {
+ if (score >= 90)
+ return "bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300";
+ if (score >= 80)
+ return "bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-300";
+ if (score >= 70)
+ return "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300";
+ if (score >= 60)
+ return "bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-300";
+ return "bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-300";
+ };
+
+ // Handle sorting
+ const handleSort = (field: SortField) => {
+ if (field === sortField) {
+ // Toggle sort direction if clicking the same field
+ setSortDirection(sortDirection === "asc" ? "desc" : "asc");
+ } else {
+ // Set new field and default direction
+ setSortField(field);
+ // Default to desc for dates (newest first), asc for names
+ setSortDirection(field === "createdAt" ? "desc" : "asc");
+ }
+ };
+
+ // Get sorting indicator
+ const getSortIcon = (field: SortField) => {
+ if (field !== sortField) return null;
+
+ return sortDirection === "asc" ? (
+
+ ) : (
+
+ );
+ };
+
+ // Filter and sort tests
+ const filteredAndSortedTests = [...tests]
+ .filter((test) =>
+ test.testName.toLowerCase().includes(searchQuery.toLowerCase()),
+ )
+ .sort((a, b) => {
+ let comparison = 0;
+ switch (sortField) {
+ case "createdAt":
+ comparison =
+ new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
+ break;
+ case "testName":
+ comparison = a.testName.localeCompare(b.testName);
+ break;
+ case "totalSubmissions":
+ comparison = a.totalSubmissions - b.totalSubmissions;
+ break;
+ case "averageScore":
+ comparison = a.averageScore - b.averageScore;
+ break;
+ }
+
+ return sortDirection === "asc" ? comparison : -comparison;
+ });
+
+ if (tests.length === 0) {
+ return (
+
+
+ Tests
+
+
+
+
+
+
+
+ No tests found for this course
+
+
+ Tests administered for this course will appear here
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+
+ setSearchQuery(e.target.value)}
+ />
+
{" "}
+
+
+ {/* Prevent extra whitespace inside table components */}
+
+
+
+ handleSort("testName")}
+ >
+ Test Name {getSortIcon("testName")}
+
+
+
+ handleSort("createdAt")}
+ >
+ Created {getSortIcon("createdAt")}
+
+ {" "}
+
+ handleSort("totalSubmissions")}
+ >
+ Submissions {getSortIcon("totalSubmissions")}
+
+
+
+ handleSort("averageScore")}
+ >
+ Avg. Score {getSortIcon("averageScore")}
+
+
+
+
+
+ {filteredAndSortedTests.map((test) => {
+ const scoreBadgeColor = getScoreBadgeColor(test.averageScore);
+ return (
+ onViewTest(test.testId)}
+ >
+
+
+
{test.testName}
+
+ {test.courseCode}
+
+
+
+
+
+
+
+ {formatDistanceToNow(new Date(test.createdAt), {
+ addSuffix: true,
+ })}
+
+
+ {" "}
+
+
+
+
+
+ {test.totalSubmissions}
+
+
{" "}
+
+ of{" "}
+ {Math.round(
+ test.totalSubmissions /
+ (test.completionRate > 0
+ ? test.completionRate / 100
+ : 1),
+ )}{" "}
+ students
+
+
+
+
+
+ {test.averageScore.toFixed(1)}%
+
+
+
+ );
+ })}
+ {" "}
+
+
+
+
+ );
+}
diff --git a/src/components/results/teacher/courses-grid.tsx b/src/components/results/teacher/courses-grid.tsx
new file mode 100644
index 0000000..e8d3542
--- /dev/null
+++ b/src/components/results/teacher/courses-grid.tsx
@@ -0,0 +1,191 @@
+"use client";
+
+import React from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { TeacherCourseOverview } from "./types";
+import { BookOpen, Clock, Users, BarChart } from "lucide-react";
+import { formatDistanceToNow } from "date-fns";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
+
+// Function to get a color for the course card based on course code
+const getCourseColor = (courseCode: string): string => {
+ // Extract the first letter or number from the course code
+ const firstChar = courseCode.charAt(0).toLowerCase();
+
+ // Assign colors based on the first character
+ if (["a", "b", "c"].includes(firstChar))
+ return "border-l-blue-500 bg-blue-50/80 dark:bg-blue-950/30";
+ if (["d", "e", "f"].includes(firstChar))
+ return "border-l-emerald-500 bg-emerald-50/80 dark:bg-emerald-950/30";
+ if (["g", "h", "i"].includes(firstChar))
+ return "border-l-violet-500 bg-violet-50/80 dark:bg-violet-950/30";
+ if (["j", "k", "l"].includes(firstChar))
+ return "border-l-amber-500 bg-amber-50/80 dark:bg-amber-950/30";
+ if (["m", "n", "o"].includes(firstChar))
+ return "border-l-cyan-500 bg-cyan-50/80 dark:bg-cyan-950/30";
+ if (["p", "q", "r"].includes(firstChar))
+ return "border-l-rose-500 bg-rose-50/80 dark:bg-rose-950/30";
+ if (["s", "t", "u"].includes(firstChar))
+ return "border-l-green-500 bg-green-50/80 dark:bg-green-950/30";
+ if (["v", "w", "x", "y", "z"].includes(firstChar))
+ return "border-l-orange-500 bg-orange-50/80 dark:bg-orange-950/30";
+
+ // Default for numbers or other characters
+ return "border-l-indigo-500 bg-indigo-50/80 dark:bg-indigo-950/30";
+};
+
+export type SortOption =
+ | "latest"
+ | "oldest"
+ | "code-asc"
+ | "code-desc"
+ | "name-asc"
+ | "name-desc";
+
+export const SortDropdown = ({
+ value,
+ onChange,
+}: {
+ value: SortOption;
+ onChange: (value: SortOption) => void;
+}) => {
+ return (
+ onChange(val as SortOption)}>
+
+
+
+
+ Latest Test
+ Oldest Test
+ Course Code (A-Z)
+ Course Code (Z-A)
+ Course Name (A-Z)
+ Course Name (Z-A)
+
+
+ );
+};
+
+interface CoursesGridProps {
+ courses: TeacherCourseOverview[];
+ onViewCourse: (courseId: string) => void;
+ sortBy?: SortOption;
+}
+
+export function CoursesGrid({
+ courses,
+ onViewCourse,
+ sortBy = "latest",
+}: CoursesGridProps) {
+ if (courses.length === 0) {
+ return (
+
+
+ No courses available
+
+
+ );
+ }
+
+ // Sort courses based on selected option
+ const sortedCourses = [...courses].sort((a, b) => {
+ switch (sortBy) {
+ case "latest":
+ return (
+ new Date(b.lastTestDate || "").getTime() -
+ new Date(a.lastTestDate || "").getTime()
+ );
+ case "oldest":
+ return (
+ new Date(a.lastTestDate || "").getTime() -
+ new Date(b.lastTestDate || "").getTime()
+ );
+ case "code-asc":
+ return a.courseCode.localeCompare(b.courseCode);
+ case "code-desc":
+ return b.courseCode.localeCompare(a.courseCode);
+ case "name-asc":
+ return a.courseName.localeCompare(b.courseName);
+ case "name-desc":
+ return b.courseName.localeCompare(a.courseName);
+ default:
+ return 0;
+ }
+ });
+
+ return (
+
+ {sortedCourses.map((course) => {
+ const colorClass = getCourseColor(course.courseCode);
+ return (
+
onViewCourse(course.courseId)}
+ >
+ {/* Apply the color class to the entire header and remove padding-top to ensure color extends to top */}
+
+
+
+
+
{course.courseName}
+
+ {course.courseCode}
+
+
+
+
+
+
+
+
+
+
+
+ Students
+
+
{course.totalStudents}
+
+
+
+
+ Tests
+
+
{course.totalTests}
+
{" "}
+
+
+
+ Avg Score
+
+
+ {course.averageScore.toFixed(1)}%
+
+
+
+
+
+ Last Test
+
+
+ {course.lastTestDate
+ ? formatDistanceToNow(new Date(course.lastTestDate), {
+ addSuffix: true,
+ })
+ : "None"}
+
+
+
+
+
+ );
+ })}
+
+ );
+}
diff --git a/src/components/results/teacher/index.ts b/src/components/results/teacher/index.ts
new file mode 100644
index 0000000..c8dd5f4
--- /dev/null
+++ b/src/components/results/teacher/index.ts
@@ -0,0 +1,9 @@
+// Export all teacher-specific components
+export * from "./performance-distribution-chart";
+export * from "./courses-grid";
+export * from "./course-tests-table";
+export * from "./course-summary-card";
+export * from "./question-stats-table";
+export * from "./recent-tests-card";
+export * from "./student-results-table";
+export * from "./types";
diff --git a/src/components/results/teacher/performance-distribution-chart.tsx b/src/components/results/teacher/performance-distribution-chart.tsx
new file mode 100644
index 0000000..8900f5f
--- /dev/null
+++ b/src/components/results/teacher/performance-distribution-chart.tsx
@@ -0,0 +1,412 @@
+"use client";
+
+import React, { useState } from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import {
+ DetailedTestStatistics,
+ PerformanceDistribution,
+ StudentTestResult,
+} from "./types";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
+import { useToast } from "@/hooks/use-toast";
+import {
+ Chart as ChartJS,
+ CategoryScale,
+ LinearScale,
+ BarElement,
+ Title,
+ Tooltip,
+ Legend,
+} from "chart.js";
+import { Bar } from "react-chartjs-2";
+
+// Register Chart.js components
+ChartJS.register(
+ CategoryScale,
+ LinearScale,
+ BarElement,
+ Title,
+ Tooltip,
+ Legend,
+);
+
+// Color mapping for the performance bars
+const getBarColor = (lowerBound: number): string => {
+ if (lowerBound < 20) return "#ef4444"; // red-500
+ if (lowerBound < 40) return "#f97316"; // orange-500
+ if (lowerBound < 60) return "#eab308"; // yellow-500
+ if (lowerBound < 80) return "#10b981"; // emerald-500
+ return "#16a34a"; // green-600
+};
+
+interface PerformanceDistributionChartProps {
+ statistics: DetailedTestStatistics;
+}
+
+type GroupingSize = "20%" | "10%" | "5%";
+
+export function PerformanceDistributionChart({
+ statistics,
+}: PerformanceDistributionChartProps) {
+ const { error } = useToast();
+ const [grouping, setGrouping] = useState("20%");
+
+ const handleGroupingChange = (value: string) => {
+ setGrouping(value as GroupingSize);
+ };
+
+ // Create custom performance distribution based on selected grouping
+ const generateDistribution = (
+ results: StudentTestResult[],
+ groupSize: number,
+ ): PerformanceDistribution[] => {
+ if (!results || results.length === 0) return [];
+
+ try {
+ // Create bins based on group size
+ const numberOfBins = 100 / groupSize;
+ const bins: { count: number; range: string }[] = [];
+
+ for (let i = 0; i < numberOfBins; i++) {
+ const lowerBound = i * groupSize;
+ const upperBound =
+ lowerBound + groupSize - (i === numberOfBins - 1 ? 0 : 1);
+ bins.push({
+ count: 0,
+ range: `${lowerBound}-${upperBound}`,
+ });
+ }
+
+ // Count students in each bin
+ results.forEach((result: StudentTestResult) => {
+ const scorePercentage = result.percentage;
+
+ if (scorePercentage === 100) {
+ // Special case for 100% to put it in the last bin
+ bins[bins.length - 1].count++;
+ } else {
+ const binIndex = Math.floor(scorePercentage / groupSize);
+ if (binIndex >= 0 && binIndex < bins.length) {
+ bins[binIndex].count++;
+ }
+ }
+ });
+
+ // Calculate percentages
+ const totalStudents = results.length;
+ return bins.map((bin) => {
+ const lowerBound = parseInt(bin.range.split("-")[0]);
+ return {
+ range: bin.range,
+ count: bin.count,
+ percentage:
+ totalStudents > 0
+ ? Math.round((bin.count / totalStudents) * 100)
+ : 0,
+ lowerBound,
+ color: getBarColor(lowerBound),
+ };
+ });
+ } catch (err) {
+ error("Error processing performance data");
+ console.error("Error generating distribution:", err);
+ return [];
+ }
+ };
+
+ // Get performance distribution based on selected grouping
+ const getPerformanceDistribution = (): PerformanceDistribution[] => {
+ const { studentResults } = statistics;
+
+ // Use original data if it's already in the right format and grouping is 20%
+ if (grouping === "20%" && statistics.performanceDistribution?.length > 0) {
+ return statistics.performanceDistribution.map((item) => {
+ const lowerBound = parseInt(item.range.split("-")[0]);
+ return {
+ ...item,
+ lowerBound,
+ color: getBarColor(lowerBound),
+ };
+ });
+ }
+
+ // Otherwise generate new distribution based on selected grouping
+ const groupSize = parseInt(grouping);
+ return generateDistribution(studentResults, groupSize);
+ };
+
+ const performanceDistribution = getPerformanceDistribution();
+
+ // Debug: Log the data being passed to the chart
+ console.log("Performance Distribution Data:", performanceDistribution);
+ console.log("Statistics:", statistics);
+
+ // Generate sample data for testing when no real data available
+ const generateSampleData = (
+ groupingValue: string,
+ ): PerformanceDistribution[] => {
+ const groupSize = parseInt(groupingValue);
+ const numberOfBins = 100 / groupSize;
+ const sampleData: PerformanceDistribution[] = [];
+
+ for (let i = 0; i < numberOfBins; i++) {
+ const lowerBound = i * groupSize;
+ const upperBound =
+ lowerBound + groupSize - (i === numberOfBins - 1 ? 0 : 1);
+ const count = Math.floor(Math.random() * 10) + 1; // Random count between 1-10
+ sampleData.push({
+ range: `${lowerBound}-${upperBound}`,
+ count,
+ percentage: Math.round((count / 20) * 100), // Assuming total of 20 students
+ lowerBound,
+ color: getBarColor(lowerBound),
+ });
+ }
+
+ return sampleData;
+ };
+
+ // Ensure we have data to render
+ if (!performanceDistribution || performanceDistribution.length === 0) {
+ // Create sample data for testing if no real data is available
+ const sampleData = generateSampleData(grouping);
+
+ console.log("Using sample data:", sampleData);
+
+ return (
+
+
+
+
+
+ Performance Distribution (Sample Data)
+
+
+
+
+ Group by score range:
+
+
+
+
+
+
+ 5%
+ 10%
+ 20%
+
+
+
+
+
+
+
+ `${item.range}%`),
+ datasets: [
+ {
+ label: "Number of Students",
+ data: sampleData.map((item) => item.count),
+ backgroundColor: sampleData.map(
+ (item) => item.color || getBarColor(item.lowerBound || 0),
+ ),
+ borderColor: sampleData.map(
+ (item) => item.color || getBarColor(item.lowerBound || 0),
+ ),
+ borderWidth: 1,
+ borderRadius: 4,
+ borderSkipped: false,
+ },
+ ],
+ }}
+ options={{
+ responsive: true,
+ maintainAspectRatio: false,
+ plugins: {
+ legend: {
+ display: false,
+ },
+ tooltip: {
+ backgroundColor: "rgba(255, 255, 255, 0.95)",
+ titleColor: "#374151",
+ bodyColor: "#6B7280",
+ borderColor: "#E5E7EB",
+ borderWidth: 1,
+ cornerRadius: 8,
+ displayColors: false,
+ callbacks: {
+ title: function (context) {
+ const index = context[0].dataIndex;
+ return `Score Range: ${sampleData[index].range}%`;
+ },
+ label: function (context) {
+ const index = context.dataIndex;
+ const data = sampleData[index];
+ return `Students: ${data.count} (${data.percentage}%)`;
+ },
+ },
+ },
+ },
+ scales: {
+ x: {
+ grid: {
+ display: false,
+ },
+ ticks: {
+ maxRotation: 45,
+ minRotation: 45,
+ },
+ },
+ y: {
+ beginAtZero: true,
+ grid: {
+ color: "rgba(0, 0, 0, 0.1)",
+ },
+ title: {
+ display: true,
+ text: "Number of Students",
+ },
+ ticks: {
+ precision: 0,
+ },
+ },
+ },
+ interaction: {
+ intersect: false,
+ mode: "index",
+ },
+ }}
+ />
+
+
+
+ Showing student distribution grouped by {grouping} score ranges
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+
+
+ Performance Distribution
+
+
+
+
+ Group by score range:
+
+
+
+
+
+
+ 5%
+ 10%
+ 20%
+
+
+
+
+
+
+
+ `${item.range}%`),
+ datasets: [
+ {
+ label: "Number of Students",
+ data: performanceDistribution.map((item) => item.count),
+ backgroundColor: performanceDistribution.map(
+ (item) => item.color || getBarColor(item.lowerBound || 0),
+ ),
+ borderColor: performanceDistribution.map(
+ (item) => item.color || getBarColor(item.lowerBound || 0),
+ ),
+ borderWidth: 1,
+ borderRadius: 4,
+ borderSkipped: false,
+ },
+ ],
+ }}
+ options={{
+ responsive: true,
+ maintainAspectRatio: false,
+ plugins: {
+ legend: {
+ display: false,
+ },
+ tooltip: {
+ backgroundColor: "rgba(255, 255, 255, 0.95)",
+ titleColor: "#374151",
+ bodyColor: "#6B7280",
+ borderColor: "#E5E7EB",
+ borderWidth: 1,
+ cornerRadius: 8,
+ displayColors: false,
+ callbacks: {
+ title: function (context) {
+ const index = context[0].dataIndex;
+ return `Score Range: ${performanceDistribution[index].range}%`;
+ },
+ label: function (context) {
+ const index = context.dataIndex;
+ const data = performanceDistribution[index];
+ return `Students: ${data.count} (${data.percentage}%)`;
+ },
+ },
+ },
+ },
+ scales: {
+ x: {
+ grid: {
+ display: false,
+ },
+ ticks: {
+ maxRotation: 45,
+ minRotation: 45,
+ },
+ },
+ y: {
+ beginAtZero: true,
+ grid: {
+ color: "rgba(0, 0, 0, 0.1)",
+ },
+ title: {
+ display: true,
+ text: "Number of Students",
+ },
+ ticks: {
+ precision: 0,
+ },
+ },
+ },
+ interaction: {
+ intersect: false,
+ mode: "index",
+ },
+ }}
+ />
+
+
+
+ Showing student distribution grouped by {grouping} score ranges
+
+
+
+
+ );
+}
diff --git a/src/components/results/teacher/question-stats-table.tsx b/src/components/results/teacher/question-stats-table.tsx
new file mode 100644
index 0000000..99cdcdc
--- /dev/null
+++ b/src/components/results/teacher/question-stats-table.tsx
@@ -0,0 +1,458 @@
+"use client";
+
+import React, { useState, useMemo } from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { DetailedTestStatistics, QuestionStat } from "./types";
+import { Progress } from "@/components/ui/progress";
+import {
+ Table,
+ TableBody,
+ TableCell,
+ TableHead,
+ TableHeader,
+ TableRow,
+} from "@/components/ui/table";
+import { Badge } from "@/components/ui/badge";
+import { Search, ArrowUpDown, ArrowUp, ArrowDown } from "lucide-react";
+import { Input } from "@/components/ui/input";
+import { Button } from "@/components/ui/button";
+
+interface QuestionStatsTableProps {
+ statistics?: DetailedTestStatistics;
+}
+
+type SortField =
+ | "questionNumber"
+ | "questionText"
+ | "questionType"
+ | "difficulty"
+ | "averageScore"
+ | "correctPercentage"
+ | "attemptedCount"
+ | "skippedCount";
+type SortDirection = "asc" | "desc";
+
+// Mock data for question stats
+const mockQuestionStats: QuestionStat[] = [
+ {
+ questionId: "q1",
+ questionNumber: 1,
+ questionText:
+ "What is the time complexity of binary search algorithm when searching in a sorted array?",
+ questionType: "mcq",
+ difficulty: "medium",
+ averageScore: 4.2,
+ correctPercentage: 85,
+ attemptedCount: 10,
+ skippedCount: 0,
+ },
+ {
+ questionId: "q2",
+ questionNumber: 2,
+ questionText:
+ "Which data structure follows the Last In First Out (LIFO) principle?",
+ questionType: "mcq",
+ difficulty: "easy",
+ averageScore: 4.8,
+ correctPercentage: 95,
+ attemptedCount: 10,
+ skippedCount: 0,
+ },
+ {
+ questionId: "q3",
+ questionNumber: 3,
+ questionText:
+ "Is a binary tree with only one node considered balanced according to AVL tree definition?",
+ questionType: "true-false",
+ difficulty: "medium",
+ averageScore: 2.4,
+ correctPercentage: 80,
+ attemptedCount: 10,
+ skippedCount: 0,
+ },
+ {
+ questionId: "q4",
+ questionNumber: 4,
+ questionText: "Complete the function: def find_max(arr): return ___",
+ questionType: "fillup",
+ difficulty: "easy",
+ averageScore: 6.3,
+ correctPercentage: 90,
+ attemptedCount: 9,
+ skippedCount: 1,
+ },
+ {
+ questionId: "q5",
+ questionNumber: 5,
+ questionText:
+ "Explain the difference between Breadth-First Search (BFS) and Depth-First Search (DFS) algorithms. Include their time complexities and use cases.",
+ questionType: "descriptive",
+ difficulty: "hard",
+ averageScore: 7.5,
+ correctPercentage: 75,
+ attemptedCount: 8,
+ skippedCount: 2,
+ },
+ {
+ questionId: "q6",
+ questionNumber: 6,
+ questionText:
+ "Implement a function to reverse a linked list iteratively in Python.",
+ questionType: "coding",
+ difficulty: "hard",
+ averageScore: 6.8,
+ correctPercentage: 68,
+ attemptedCount: 7,
+ skippedCount: 3,
+ },
+ {
+ questionId: "q7",
+ questionNumber: 7,
+ questionText: "What is the space complexity of merge sort algorithm?",
+ questionType: "mcq",
+ difficulty: "medium",
+ averageScore: 3.5,
+ correctPercentage: 70,
+ attemptedCount: 10,
+ skippedCount: 0,
+ },
+ {
+ questionId: "q8",
+ questionNumber: 8,
+ questionText:
+ "Can a hash table have O(n) worst-case time complexity for search operations?",
+ questionType: "true-false",
+ difficulty: "hard",
+ averageScore: 2.1,
+ correctPercentage: 70,
+ attemptedCount: 10,
+ skippedCount: 0,
+ },
+ {
+ questionId: "q9",
+ questionNumber: 9,
+ questionText:
+ "Write a function to check if a string is a palindrome: def is_palindrome(s): ___",
+ questionType: "fillup",
+ difficulty: "easy",
+ averageScore: 4.8,
+ correctPercentage: 96,
+ attemptedCount: 9,
+ skippedCount: 1,
+ },
+ {
+ questionId: "q10",
+ questionNumber: 10,
+ questionText:
+ "Implement a binary search tree (BST) class with insert, search, and delete methods in your preferred programming language.",
+ questionType: "coding",
+ difficulty: "advanced",
+ averageScore: 5.2,
+ correctPercentage: 52,
+ attemptedCount: 6,
+ skippedCount: 4,
+ },
+];
+
+export function QuestionStatsTable({}: QuestionStatsTableProps) {
+ const [searchQuery, setSearchQuery] = useState("");
+ const [sortField, setSortField] = useState("questionNumber");
+ const [sortDirection, setSortDirection] = useState("asc");
+
+ const handleSort = (field: SortField) => {
+ if (sortField === field) {
+ setSortDirection(sortDirection === "asc" ? "desc" : "asc");
+ } else {
+ setSortField(field);
+ setSortDirection("asc");
+ }
+ };
+
+ const getSortIcon = (field: SortField) => {
+ if (sortField !== field) {
+ return ;
+ }
+ return sortDirection === "asc" ? (
+
+ ) : (
+
+ );
+ };
+
+ const truncateText = (text: string, maxLength: number = 60) => {
+ if (text.length <= maxLength) return text;
+ return text.substring(0, maxLength) + "...";
+ };
+
+ const getDifficultyColor = (difficulty: string) => {
+ switch (difficulty.toLowerCase()) {
+ case "easy":
+ return "bg-green-50 text-green-700 border-green-200 dark:bg-green-950 dark:text-green-300 dark:border-green-800";
+ case "medium":
+ return "bg-amber-50 text-amber-700 border-amber-200 dark:bg-amber-950 dark:text-amber-300 dark:border-amber-800";
+ case "hard":
+ return "bg-orange-50 text-orange-700 border-orange-200 dark:bg-orange-950 dark:text-orange-300 dark:border-orange-800";
+ case "advanced":
+ return "bg-red-50 text-red-700 border-red-200 dark:bg-red-950 dark:text-red-300 dark:border-red-800";
+ default:
+ return "bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-950 dark:text-blue-300 dark:border-blue-800";
+ }
+ };
+
+ const sortedAndFilteredQuestions = useMemo(() => {
+ // Use mock data for now
+ const questionsData = mockQuestionStats;
+
+ const filtered = questionsData.filter(
+ (question) =>
+ question.questionType
+ .toLowerCase()
+ .includes(searchQuery.toLowerCase()) ||
+ question.questionText
+ .toLowerCase()
+ .includes(searchQuery.toLowerCase()) ||
+ question.difficulty.toLowerCase().includes(searchQuery.toLowerCase()),
+ );
+
+ return filtered.sort((a, b) => {
+ let aValue: string | number;
+ let bValue: string | number;
+
+ switch (sortField) {
+ case "questionNumber":
+ aValue = a.questionNumber;
+ bValue = b.questionNumber;
+ break;
+ case "questionText":
+ aValue = a.questionText.toLowerCase();
+ bValue = b.questionText.toLowerCase();
+ break;
+ case "questionType":
+ aValue = a.questionType.toLowerCase();
+ bValue = b.questionType.toLowerCase();
+ break;
+ case "difficulty":
+ // Custom sorting for difficulty
+ const difficultyOrder = { easy: 1, medium: 2, hard: 3, advanced: 4 };
+ aValue =
+ difficultyOrder[
+ a.difficulty.toLowerCase() as keyof typeof difficultyOrder
+ ] || 5;
+ bValue =
+ difficultyOrder[
+ b.difficulty.toLowerCase() as keyof typeof difficultyOrder
+ ] || 5;
+ break;
+ case "averageScore":
+ aValue = a.averageScore;
+ bValue = b.averageScore;
+ break;
+ case "correctPercentage":
+ aValue = a.correctPercentage;
+ bValue = b.correctPercentage;
+ break;
+ case "attemptedCount":
+ aValue = a.attemptedCount;
+ bValue = b.attemptedCount;
+ break;
+ case "skippedCount":
+ aValue = a.skippedCount;
+ bValue = b.skippedCount;
+ break;
+ default:
+ aValue = a.questionNumber;
+ bValue = b.questionNumber;
+ }
+
+ if (aValue < bValue) {
+ return sortDirection === "asc" ? -1 : 1;
+ }
+ if (aValue > bValue) {
+ return sortDirection === "asc" ? 1 : -1;
+ }
+ return 0;
+ });
+ }, [searchQuery, sortField, sortDirection]);
+
+ return (
+
+
+
+ Question Analysis ({sortedAndFilteredQuestions.length} questions)
+
+
+
+
+
+
+ setSearchQuery(e.target.value)}
+ className="border-0 focus-visible:ring-0 focus-visible:ring-offset-0"
+ />
+
+
+
+
+
+
+ handleSort("questionNumber")}
+ >
+ Q#
+ {getSortIcon("questionNumber")}
+
+
+
+ handleSort("questionText")}
+ >
+ Question Text
+ {getSortIcon("questionText")}
+
+
+
+ handleSort("questionType")}
+ >
+ Type
+ {getSortIcon("questionType")}
+
+
+
+ handleSort("difficulty")}
+ >
+ Difficulty
+ {getSortIcon("difficulty")}
+
+
+
+ handleSort("correctPercentage")}
+ >
+ Correct %{getSortIcon("correctPercentage")}
+
+
+
+ handleSort("averageScore")}
+ >
+ Avg Score
+ {getSortIcon("averageScore")}
+
+
+
+ handleSort("attemptedCount")}
+ >
+ Attempted
+ {getSortIcon("attemptedCount")}
+
+
+
+
+
+ {sortedAndFilteredQuestions.map((question) => (
+
+
+ {question.questionNumber}
+
+
+
+ {truncateText(question.questionText)}
+
+
+
+
+ {question.questionType}
+
+
+
+
+ {question.difficulty}
+
+
+
+
+
+
+ {question.correctPercentage}%
+
+
+
+
+
+
+
+ {question.averageScore.toFixed(1)}
+
+
+
+
+
+ {question.attemptedCount}
+
+
+ {question.skippedCount} skipped
+
+
+
+
+ ))}
+ {sortedAndFilteredQuestions.length === 0 && (
+
+
+ {searchQuery
+ ? "No questions found matching your search."
+ : "No question data available."}
+
+
+ )}
+
+
+
+ {sortedAndFilteredQuestions.length > 0 && (
+
+ Hover over question text to see the full question
+
+ )}
+
+
+
+ );
+}
diff --git a/src/components/results/teacher-components/recent-tests-card.tsx b/src/components/results/teacher/recent-tests-card.tsx
similarity index 86%
rename from src/components/results/teacher-components/recent-tests-card.tsx
rename to src/components/results/teacher/recent-tests-card.tsx
index dc3cc70..515f9e4 100644
--- a/src/components/results/teacher-components/recent-tests-card.tsx
+++ b/src/components/results/teacher/recent-tests-card.tsx
@@ -2,9 +2,8 @@
import React from "react";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
-import { TestOverview } from "../teacher-types";
-import { Button } from "@/components/ui/button";
-import { Calendar, Clock, Users, ChevronRight, FileText } from "lucide-react";
+import type { TestOverview } from "./types";
+import { Calendar, Clock, Users, FileText } from "lucide-react";
import { formatDistanceToNow } from "date-fns";
import { Badge } from "@/components/ui/badge";
@@ -62,7 +61,7 @@ export function RecentTestsCard({ tests, onViewTest }: RecentTestsCardProps) {
Recent Tests (Last 7 Days)
- {" "}
+
{recentTests.map((test) => {
@@ -73,9 +72,10 @@ export function RecentTestsCard({ tests, onViewTest }: RecentTestsCardProps) {
return (
onViewTest(test.testId)}
>
-
+
@@ -108,16 +108,6 @@ export function RecentTestsCard({ tests, onViewTest }: RecentTestsCardProps) {
-
-
onViewTest(test.testId)}
- className="text-primary mt-2 sm:mt-0 hover:bg-primary/5"
- >
- View Details
-
-
);
diff --git a/src/components/results/teacher/student-results-table.tsx b/src/components/results/teacher/student-results-table.tsx
new file mode 100644
index 0000000..581a63d
--- /dev/null
+++ b/src/components/results/teacher/student-results-table.tsx
@@ -0,0 +1,488 @@
+"use client";
+
+import React, { useState, useMemo } from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { DetailedTestStatistics, StudentTestResult } from "./types";
+import {
+ Table,
+ TableBody,
+ TableCell,
+ TableHead,
+ TableHeader,
+ TableRow,
+} from "@/components/ui/table";
+import { formatRelative } from "date-fns";
+import { Badge } from "@/components/ui/badge";
+import { Search, ArrowUpDown, ArrowUp, ArrowDown } from "lucide-react";
+import { Input } from "@/components/ui/input";
+import { Button } from "@/components/ui/button";
+
+interface StudentResultsTableProps {
+ statistics?: DetailedTestStatistics;
+ onViewStudentResult?: (studentId: string) => void;
+}
+
+type SortField =
+ | "studentName"
+ | "rollNumber"
+ | "score"
+ | "percentage"
+ | "correctAnswers"
+ | "wrongAnswers"
+ | "unansweredQuestions"
+ | "submittedAt";
+type SortDirection = "asc" | "desc";
+
+// Mock data for student results
+const mockStudentResults: StudentTestResult[] = [
+ {
+ studentId: "1",
+ studentName: "Alice Johnson",
+ rollNumber: "CS2021001",
+ score: 85,
+ maxScore: 100,
+ percentage: 85,
+ timeTaken: 45,
+ completedAt: "2025-06-15T10:30:00Z",
+ status: "completed",
+ attemptCount: 1,
+ correctAnswers: 17,
+ wrongAnswers: 2,
+ unansweredQuestions: 1,
+ submittedAt: "2025-06-15T10:30:00Z",
+ },
+ {
+ studentId: "2",
+ studentName: "Bob Smith",
+ rollNumber: "CS2021002",
+ score: 92,
+ maxScore: 100,
+ percentage: 92,
+ timeTaken: 38,
+ completedAt: "2025-06-15T09:45:00Z",
+ status: "completed",
+ attemptCount: 1,
+ correctAnswers: 18,
+ wrongAnswers: 1,
+ unansweredQuestions: 1,
+ submittedAt: "2025-06-15T09:45:00Z",
+ },
+ {
+ studentId: "3",
+ studentName: "Carol Davis",
+ rollNumber: "CS2021003",
+ score: 78,
+ maxScore: 100,
+ percentage: 78,
+ timeTaken: 52,
+ completedAt: "2025-06-15T11:15:00Z",
+ status: "completed",
+ attemptCount: 2,
+ correctAnswers: 15,
+ wrongAnswers: 3,
+ unansweredQuestions: 2,
+ submittedAt: "2025-06-15T11:15:00Z",
+ },
+ {
+ studentId: "4",
+ studentName: "David Wilson",
+ rollNumber: "CS2021004",
+ score: 95,
+ maxScore: 100,
+ percentage: 95,
+ timeTaken: 42,
+ completedAt: "2025-06-15T10:00:00Z",
+ status: "completed",
+ attemptCount: 1,
+ correctAnswers: 19,
+ wrongAnswers: 1,
+ unansweredQuestions: 0,
+ submittedAt: "2025-06-15T10:00:00Z",
+ },
+ {
+ studentId: "5",
+ studentName: "Emma Brown",
+ rollNumber: "CS2021005",
+ score: 67,
+ maxScore: 100,
+ percentage: 67,
+ timeTaken: 58,
+ completedAt: "2025-06-15T12:00:00Z",
+ status: "completed",
+ attemptCount: 1,
+ correctAnswers: 13,
+ wrongAnswers: 5,
+ unansweredQuestions: 2,
+ submittedAt: "2025-06-15T12:00:00Z",
+ },
+ {
+ studentId: "6",
+ studentName: "Frank Miller",
+ rollNumber: "CS2021006",
+ score: 88,
+ maxScore: 100,
+ percentage: 88,
+ timeTaken: 40,
+ completedAt: "2025-06-15T09:30:00Z",
+ status: "completed",
+ attemptCount: 1,
+ correctAnswers: 17,
+ wrongAnswers: 2,
+ unansweredQuestions: 1,
+ submittedAt: "2025-06-15T09:30:00Z",
+ },
+ {
+ studentId: "7",
+ studentName: "Grace Lee",
+ rollNumber: "CS2021007",
+ score: 73,
+ maxScore: 100,
+ percentage: 73,
+ timeTaken: 48,
+ completedAt: "2025-06-15T11:45:00Z",
+ status: "completed",
+ attemptCount: 1,
+ correctAnswers: 14,
+ wrongAnswers: 4,
+ unansweredQuestions: 2,
+ submittedAt: "2025-06-15T11:45:00Z",
+ },
+ {
+ studentId: "8",
+ studentName: "Henry Chen",
+ rollNumber: "CS2021008",
+ score: 91,
+ maxScore: 100,
+ percentage: 91,
+ timeTaken: 35,
+ completedAt: "2025-06-15T08:45:00Z",
+ status: "completed",
+ attemptCount: 1,
+ correctAnswers: 18,
+ wrongAnswers: 1,
+ unansweredQuestions: 1,
+ submittedAt: "2025-06-15T08:45:00Z",
+ },
+ {
+ studentId: "9",
+ studentName: "Isabella Rodriguez",
+ rollNumber: "CS2021009",
+ score: 56,
+ maxScore: 100,
+ percentage: 56,
+ timeTaken: 60,
+ completedAt: "2025-06-15T13:30:00Z",
+ status: "completed",
+ attemptCount: 3,
+ correctAnswers: 11,
+ wrongAnswers: 7,
+ unansweredQuestions: 2,
+ submittedAt: "2025-06-15T13:30:00Z",
+ },
+ {
+ studentId: "10",
+ studentName: "Jack Thompson",
+ rollNumber: "CS2021010",
+ score: 82,
+ maxScore: 100,
+ percentage: 82,
+ timeTaken: 44,
+ completedAt: "2025-06-15T10:15:00Z",
+ status: "completed",
+ attemptCount: 1,
+ correctAnswers: 16,
+ wrongAnswers: 3,
+ unansweredQuestions: 1,
+ submittedAt: "2025-06-15T10:15:00Z",
+ },
+];
+
+export function StudentResultsTable({
+ onViewStudentResult,
+}: StudentResultsTableProps) {
+ const [searchQuery, setSearchQuery] = useState("");
+ const [sortField, setSortField] = useState
("score");
+ const [sortDirection, setSortDirection] = useState("desc");
+
+ const handleSort = (field: SortField) => {
+ if (sortField === field) {
+ setSortDirection(sortDirection === "asc" ? "desc" : "asc");
+ } else {
+ setSortField(field);
+ setSortDirection("desc");
+ }
+ };
+
+ const getSortIcon = (field: SortField) => {
+ if (sortField !== field) {
+ return ;
+ }
+ return sortDirection === "asc" ? (
+
+ ) : (
+
+ );
+ };
+ const sortedAndFilteredResults = useMemo(() => {
+ const filtered = mockStudentResults.filter(
+ (student) =>
+ student.studentName.toLowerCase().includes(searchQuery.toLowerCase()) ||
+ student.rollNumber.toLowerCase().includes(searchQuery.toLowerCase()),
+ );
+
+ return filtered.sort((a, b) => {
+ let aValue: string | number | Date;
+ let bValue: string | number | Date;
+
+ switch (sortField) {
+ case "studentName":
+ aValue = a.studentName.toLowerCase();
+ bValue = b.studentName.toLowerCase();
+ break;
+ case "rollNumber":
+ aValue = a.rollNumber.toLowerCase();
+ bValue = b.rollNumber.toLowerCase();
+ break;
+ case "score":
+ aValue = a.score;
+ bValue = b.score;
+ break;
+ case "percentage":
+ aValue = a.percentage;
+ bValue = b.percentage;
+ break;
+ case "correctAnswers":
+ aValue = a.correctAnswers || 0;
+ bValue = b.correctAnswers || 0;
+ break;
+ case "wrongAnswers":
+ aValue = a.wrongAnswers || 0;
+ bValue = b.wrongAnswers || 0;
+ break;
+ case "unansweredQuestions":
+ aValue = a.unansweredQuestions || 0;
+ bValue = b.unansweredQuestions || 0;
+ break;
+ case "submittedAt":
+ aValue = new Date(a.submittedAt || a.completedAt);
+ bValue = new Date(b.submittedAt || b.completedAt);
+ break;
+ default:
+ aValue = a.score;
+ bValue = b.score;
+ }
+
+ if (aValue < bValue) {
+ return sortDirection === "asc" ? -1 : 1;
+ }
+ if (aValue > bValue) {
+ return sortDirection === "asc" ? 1 : -1;
+ }
+ return 0;
+ });
+ }, [searchQuery, sortField, sortDirection]);
+ const handleRowClick = (student: StudentTestResult) => {
+ if (onViewStudentResult) {
+ onViewStudentResult(student.studentId);
+ }
+ };
+
+ return (
+
+
+
+ Student Results ({sortedAndFilteredResults.length} students)
+
+
+
+
+
+
+ setSearchQuery(e.target.value)}
+ className="border-0 focus-visible:ring-0 focus-visible:ring-offset-0"
+ />
+
+
+
+
+
+
+ handleSort("studentName")}
+ >
+ Student Name
+ {getSortIcon("studentName")}
+
+
+
+ handleSort("rollNumber")}
+ >
+ Roll Number
+ {getSortIcon("rollNumber")}
+
+
+
+ handleSort("score")}
+ >
+ Score
+ {getSortIcon("score")}
+
+
+
+ handleSort("correctAnswers")}
+ >
+ Correct
+ {getSortIcon("correctAnswers")}
+
+
+
+ handleSort("wrongAnswers")}
+ >
+ Wrong
+ {getSortIcon("wrongAnswers")}
+
+
+
+ handleSort("unansweredQuestions")}
+ >
+ Unanswered
+ {getSortIcon("unansweredQuestions")}
+
+
+
+ handleSort("submittedAt")}
+ >
+ Submitted At
+ {getSortIcon("submittedAt")}
+
+
+ Status
+
+
+
+ {sortedAndFilteredResults.map((result) => (
+ handleRowClick(result)}
+ >
+
+ {result.studentName}
+
+
+ {result.rollNumber || "N/A"}
+
+
+
+
+ {result.score} / {result.maxScore}
+
+
+ {result.percentage.toFixed(1)}%
+
+
+
+
+
+ {result.correctAnswers || 0}
+
+
+
+
+ {result.wrongAnswers || 0}
+
+
+
+
+ {result.unansweredQuestions || 0}
+
+
+
+
+
+ {formatRelative(
+ new Date(result.submittedAt || result.completedAt),
+ new Date(),
+ )}
+
+
+ {new Date(
+ result.submittedAt || result.completedAt,
+ ).toLocaleDateString()}
+
+
+
+
+ {result.status === "completed" ? (
+
+ Completed
+
+ ) : (
+
+ {result.status}
+
+ )}
+
+
+ ))}
+ {sortedAndFilteredResults.length === 0 && (
+
+
+ {searchQuery
+ ? "No students found matching your search."
+ : "No student results available."}
+
+
+ )}
+
+
+
+ {sortedAndFilteredResults.length > 0 && (
+
+ Click on any row to view detailed student answers
+
+ )}
+
+
+
+ );
+}
diff --git a/src/components/results/teacher-types.ts b/src/components/results/teacher/types.ts
similarity index 90%
rename from src/components/results/teacher-types.ts
rename to src/components/results/teacher/types.ts
index 8dc25f8..3d6effc 100644
--- a/src/components/results/teacher-types.ts
+++ b/src/components/results/teacher/types.ts
@@ -32,11 +32,14 @@ export interface PerformanceDistribution {
range: string; // e.g. "0-10", "11-20", etc.
count: number;
percentage: number;
+ lowerBound?: number;
+ color?: string;
}
export interface StudentTestResult {
studentId: string;
studentName: string;
+ rollNumber: string;
score: number;
maxScore: number;
percentage: number;
@@ -44,6 +47,10 @@ export interface StudentTestResult {
completedAt: string;
status: string;
attemptCount: number;
+ correctAnswers: number;
+ wrongAnswers: number;
+ unansweredQuestions: number;
+ submittedAt: string;
}
export interface DetailedTestStatistics {
@@ -69,6 +76,7 @@ export interface DetailedTestStatistics {
export interface QuestionStat {
questionId: string;
questionNumber: number;
+ questionText: string;
questionType: string;
difficulty: string;
averageScore: number;
diff --git a/src/components/results/test-summaries.tsx b/src/components/results/test-summaries.tsx
deleted file mode 100644
index 5c3eeba..0000000
--- a/src/components/results/test-summaries.tsx
+++ /dev/null
@@ -1,237 +0,0 @@
-"use client";
-
-import React from "react";
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
-import { Badge } from "@/components/ui/badge";
-import { Button } from "@/components/ui/button";
-import { Progress } from "@/components/ui/progress";
-import {
- ArrowLeft,
- Clock,
- Target,
- FileText,
- Calendar,
- TrendingUp,
- CheckCircle,
-} from "lucide-react";
-import { TestSummary } from "./types";
-import { PerformanceTrends } from "./performance-trends";
-
-interface TestSummariesProps {
- courseName: string;
- courseCode: string;
- tests: TestSummary[];
- onBack: () => void;
- onViewTest: (testId: string) => void;
-}
-
-export const TestSummaries: React.FC = ({
- courseName,
- courseCode,
- tests,
- onBack,
- onViewTest,
-}) => {
- const getStatusColor = (status: string) => {
- switch (status) {
- case "completed":
- return "bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-300";
- case "in-progress":
- return "bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-300";
- default:
- return "bg-gray-100 text-gray-800 dark:bg-gray-900 dark:text-gray-300";
- }
- };
-
- const getDifficultyColor = (difficulty: string) => {
- switch (difficulty) {
- case "easy":
- return "bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-300";
- case "medium":
- return "bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-300";
- case "hard":
- return "bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-300";
- default:
- return "bg-gray-100 text-gray-800 dark:bg-gray-900 dark:text-gray-300";
- }
- };
-
- const getScoreColor = (percentage: number) => {
- if (percentage >= 90) return "text-green-600";
- if (percentage >= 75) return "text-blue-600";
- if (percentage >= 60) return "text-yellow-600";
- return "text-red-600";
- };
-
- const completedTests = tests.filter((test) => test.status === "completed");
- const averageScore =
- completedTests.length > 0
- ? completedTests.reduce((acc, test) => acc + test.percentage, 0) /
- completedTests.length
- : 0;
-
- return (
-
- {/* Header */}
-
-
-
-
- Back to Courses
-
-
-
{courseName}
-
{courseCode}
-
-
-
{tests.length} Tests
-
-
- {/* Performance Trends */}
-
-
- {/* Course Summary */}
-
-
-
-
-
- Average Score
-
-
- {averageScore.toFixed(1)}%
-
-
-
-
-
-
-
-
- Completed Tests
-
-
- {completedTests.length}/{tests.length}
-
-
-
-
-
-
-
-
- Best Score
-
-
- {completedTests.length > 0
- ? Math.max(...completedTests.map((t) => t.percentage)).toFixed(
- 1,
- )
- : "0"}
- %
-
-
-
-
-
- {/* Tests List */}
-
-
- Test Results
-
-
-
- {tests.length === 0 ? (
-
-
-
No tests found for this course
-
- ) : (
- tests.map((test) => (
-
-
-
-
{test.testName}
-
-
- {test.difficulty}
-
-
- {test.status.replace("-", " ")}
-
-
-
-
-
-
-
- {test.questionCount} questions
-
-
-
- {test.timeTaken}m
-
-
-
- {test.correctAnswers} correct
-
-
-
- {new Date(test.completedAt).toLocaleDateString()}
-
-
-
- {test.status === "completed" && (
-
-
-
-
- {test.score}/{test.maxScore} ({test.percentage}%)
-
-
-
-
- )}
-
-
-
onViewTest(test.testId)}
- className="ml-4"
- disabled={test.status !== "completed"}
- >
- {test.status === "completed"
- ? "View Details"
- : "Not Available"}
-
-
- ))
- )}
-
-
-
-
- );
-};
diff --git a/src/lib/results-api.ts b/src/lib/results-api.ts
index 01703df..8089040 100644
--- a/src/lib/results-api.ts
+++ b/src/lib/results-api.ts
@@ -1,11 +1,21 @@
// API utilities for results data
import axiosInstance from "@/lib/axios/axios-client";
-import {
- StudentOverallResult,
- CourseResult,
+import type {
TestSummary,
DetailedTestResult,
-} from "@/components/results/types";
+} from "@/components/results/common/types";
+import type {
+ StudentOverallResult,
+ CourseResult,
+} from "@/components/results/student/types";
+import type {
+ TeacherCourseOverview,
+ TestOverview,
+ DetailedTestStatistics,
+ PerformanceDistribution,
+ StudentTestResult,
+ QuestionStat,
+} from "@/components/results/teacher/types";
export class ResultsAPI {
// Get student's overall results summary
@@ -163,7 +173,7 @@ export const MockResultsAPI = {
lastTestDate: new Date(
Date.now() - 2 * 24 * 60 * 60 * 1000,
).toISOString(),
- tests: [
+ testResults: [
{
testId: "test-1-1",
testName: "Arrays and Linked Lists",
@@ -237,7 +247,7 @@ export const MockResultsAPI = {
lastTestDate: new Date(
Date.now() - 4 * 24 * 60 * 60 * 1000,
).toISOString(),
- tests: [
+ testResults: [
{
testId: "test-2-1",
testName: "SQL Fundamentals",
@@ -296,7 +306,7 @@ export const MockResultsAPI = {
lastTestDate: new Date(
Date.now() - 7 * 24 * 60 * 60 * 1000,
).toISOString(),
- tests: [
+ testResults: [
{
testId: "test-3-1",
testName: "Classes and Objects",
@@ -355,7 +365,7 @@ export const MockResultsAPI = {
lastTestDate: new Date(
Date.now() - 3 * 24 * 60 * 60 * 1000,
).toISOString(),
- tests: [
+ testResults: [
{
testId: "test-4-1",
testName: "HTML Fundamentals",
@@ -444,7 +454,7 @@ export const MockResultsAPI = {
lastTestDate: new Date(
Date.now() - 5 * 24 * 60 * 60 * 1000,
).toISOString(),
- tests: [
+ testResults: [
{
testId: "test-5-1",
testName: "Introduction to OS",
@@ -503,7 +513,7 @@ export const MockResultsAPI = {
lastTestDate: new Date(
Date.now() - 12 * 24 * 60 * 60 * 1000,
).toISOString(),
- tests: [
+ testResults: [
{
testId: "test-6-1",
testName: "Introduction to ML",
@@ -619,21 +629,16 @@ export const MockResultsAPI = {
testId,
testName: "Data Structures Midterm",
courseName: "Data Structures and Algorithms",
+ courseId: "course-1",
courseCode: "CS301",
score: 85,
maxScore: 100,
percentage: 85,
- timeTaken: 90,
- totalTime: 120,
+ timeSpent: 90,
completedAt: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString(),
- difficulty: "medium",
- summary: {
- totalQuestions: 20,
- correctAnswers: 17,
- incorrectAnswers: 2,
- unanswered: 1,
- timePerQuestion: 4.5,
- },
+ questionCount: 20,
+ correctCount: 17,
+ passingScore: 60,
questions: [
{
questionId: "q1",
@@ -718,14 +723,6 @@ export const MockResultsAPI = {
};
// Mock data for teacher results
-import {
- TeacherCourseOverview,
- TestOverview,
- DetailedTestStatistics,
- PerformanceDistribution,
- StudentTestResult,
- QuestionStat,
-} from "@/components/results/teacher-types";
export const MockTeacherResultsAPI = {
getTeacherCourses: async (
diff --git a/src/lib/utils/score-colors.ts b/src/lib/utils/score-colors.ts
new file mode 100644
index 0000000..0acd208
--- /dev/null
+++ b/src/lib/utils/score-colors.ts
@@ -0,0 +1,46 @@
+/**
+ * Utility functions for consistent score color display across the application
+ */
+
+/**
+ * Returns a text color class based on the score percentage
+ * Green (100% to 80%), Yellow (79% to 50%), Red (below 50%)
+ */
+export function getScoreTextColor(percentage: number): string {
+ if (percentage >= 90) return "text-emerald-800 dark:text-emerald-400";
+ if (percentage >= 80) return "text-green-700 dark:text-green-400";
+ if (percentage >= 70) return "text-lime-700 dark:text-lime-400";
+ if (percentage >= 60) return "text-yellow-700 dark:text-yellow-400";
+ if (percentage >= 50) return "text-amber-700 dark:text-amber-400";
+ return "text-red-700 dark:text-red-400";
+}
+
+/**
+ * Returns a background color class based on the score percentage
+ * Green (100% to 80%), Yellow (79% to 50%), Red (below 50%)
+ */
+export function getScoreBgColor(percentage: number): string {
+ if (percentage >= 90)
+ return "bg-emerald-100 text-emerald-800 border-emerald-300 dark:bg-emerald-950 dark:text-emerald-300";
+ if (percentage >= 80)
+ return "bg-green-100 text-green-800 border-green-300 dark:bg-green-950/80 dark:text-green-300";
+ if (percentage >= 70)
+ return "bg-lime-100 text-lime-800 border-lime-300 dark:bg-lime-950 dark:text-lime-300";
+ if (percentage >= 60)
+ return "bg-yellow-100 text-yellow-800 border-yellow-300 dark:bg-yellow-950 dark:text-yellow-300";
+ if (percentage >= 50)
+ return "bg-amber-100 text-amber-800 border-amber-300 dark:bg-amber-950 dark:text-amber-300";
+ return "bg-red-100 text-red-800 border-red-300 dark:bg-red-950 dark:text-red-300";
+}
+
+/**
+ * Returns a progress bar color class based on the score percentage
+ */
+export function getProgressColor(percentage: number): string {
+ if (percentage >= 90) return "bg-green-600";
+ if (percentage >= 80) return "bg-emerald-500";
+ if (percentage >= 70) return "bg-lime-600";
+ if (percentage >= 60) return "bg-yellow-600";
+ if (percentage >= 50) return "bg-amber-600";
+ return "bg-red-600";
+}
diff --git a/src/components/results/student-results-card.tsx b/src/repo/student-results/index.ts
similarity index 100%
rename from src/components/results/student-results-card.tsx
rename to src/repo/student-results/index.ts
diff --git a/src/repo/student-results/student-results-api.ts b/src/repo/student-results/student-results-api.ts
new file mode 100644
index 0000000..eafe77e
--- /dev/null
+++ b/src/repo/student-results/student-results-api.ts
@@ -0,0 +1,7 @@
+// Minimal stub for useRecentTestResults to fix import error
+import { useMemo } from "react";
+
+export function useRecentTestResults() {
+ // Return empty data and loading false for now
+ return useMemo(() => ({ data: [], isLoading: false, isError: false }), []);
+}