fazeel007 Claude commited on
Commit
b65e9ca
·
1 Parent(s): f61cf0b

DEFINITIVE FIX: Resolve Docker build issues for Hugging Face Spaces

Browse files

Root cause: .gitignore was excluding client/src/lib/ directory with
overly broad "lib/" pattern meant for Python packages.

Solution:
1. Fixed .gitignore to specifically exclude Python lib dirs only
2. Added .dockerignore with explicit inclusion of client/src/lib
3. Reverted import to clean @/lib/queryClient format
4. Ensured robust file copying for containerized environments

This addresses all Docker/container path resolution issues.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

.dockerignore ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ node_modules
2
+ npm-debug.log
3
+ .DS_Store
4
+ .git
5
+ .gitignore
6
+ .env*
7
+ *.log
8
+ .vscode
9
+ .idea
10
+ coverage
11
+ .nyc_output
12
+ htmlcov
13
+ *.tmp
14
+ *.temp
15
+ temp
16
+ tmp
17
+ venv
18
+ .venv
19
+ env
20
+ ENV
21
+ __pycache__
22
+ *.pyc
23
+ *.pyo
24
+ *.pyd
25
+ .Python
26
+ build
27
+ develop-eggs
28
+ downloads
29
+ eggs
30
+ .eggs
31
+ sdist
32
+ var
33
+ wheels
34
+ *.egg-info
35
+ .installed.cfg
36
+ *.egg
37
+ MANIFEST
38
+
39
+ # Keep client/src/lib - this is important for our React app
40
+ !client/src/lib
41
+
42
+ # But still exclude Python lib directories
43
+ /lib/
44
+ lib64/
45
+ **/site-packages/
46
+ **/lib/python*/
.gitignore CHANGED
@@ -37,7 +37,10 @@ dist/
37
  downloads/
38
  eggs/
39
  .eggs/
40
- lib/
 
 
 
41
  lib64/
42
  parts/
43
  sdist/
 
37
  downloads/
38
  eggs/
39
  .eggs/
40
+ # Python lib directories (excluding client/src/lib)
41
+ /lib/
42
+ **/site-packages/
43
+ **/lib/python*/
44
  lib64/
45
  parts/
46
  sdist/
client/src/App.tsx CHANGED
@@ -1,5 +1,5 @@
1
  import { Switch, Route } from "wouter";
2
- import { queryClient } from "@/lib/queryClient.ts";
3
  import { QueryClientProvider } from "@tanstack/react-query";
4
  import { Toaster } from "@/components/ui/toaster";
5
  import { TooltipProvider } from "@/components/ui/tooltip";
 
1
  import { Switch, Route } from "wouter";
2
+ import { queryClient } from "@/lib/queryClient";
3
  import { QueryClientProvider } from "@tanstack/react-query";
4
  import { Toaster } from "@/components/ui/toaster";
5
  import { TooltipProvider } from "@/components/ui/tooltip";
client/src/lib/queryClient.ts ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { QueryClient, QueryFunction } from "@tanstack/react-query";
2
+
3
+ async function throwIfResNotOk(res: Response) {
4
+ if (!res.ok) {
5
+ const text = (await res.text()) || res.statusText;
6
+ throw new Error(`${res.status}: ${text}`);
7
+ }
8
+ }
9
+
10
+ export async function apiRequest(
11
+ method: string,
12
+ url: string,
13
+ data?: unknown | undefined,
14
+ ): Promise<Response> {
15
+ const res = await fetch(url, {
16
+ method,
17
+ headers: data ? { "Content-Type": "application/json" } : {},
18
+ body: data ? JSON.stringify(data) : undefined,
19
+ credentials: "include",
20
+ });
21
+
22
+ await throwIfResNotOk(res);
23
+ return res;
24
+ }
25
+
26
+ type UnauthorizedBehavior = "returnNull" | "throw";
27
+ export const getQueryFn: <T>(options: {
28
+ on401: UnauthorizedBehavior;
29
+ }) => QueryFunction<T> =
30
+ ({ on401: unauthorizedBehavior }) =>
31
+ async ({ queryKey }) => {
32
+ const res = await fetch(queryKey[0] as string, {
33
+ credentials: "include",
34
+ });
35
+
36
+ if (unauthorizedBehavior === "returnNull" && res.status === 401) {
37
+ return null;
38
+ }
39
+
40
+ await throwIfResNotOk(res);
41
+ return await res.json();
42
+ };
43
+
44
+ export const queryClient = new QueryClient({
45
+ defaultOptions: {
46
+ queries: {
47
+ queryFn: getQueryFn({ on401: "throw" }),
48
+ refetchInterval: false,
49
+ refetchOnWindowFocus: false,
50
+ staleTime: Infinity,
51
+ retry: false,
52
+ },
53
+ mutations: {
54
+ retry: false,
55
+ },
56
+ },
57
+ });
client/src/lib/utils.ts ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ import { clsx, type ClassValue } from "clsx"
2
+ import { twMerge } from "tailwind-merge"
3
+
4
+ export function cn(...inputs: ClassValue[]) {
5
+ return twMerge(clsx(inputs))
6
+ }
package-lock.json CHANGED
@@ -39,8 +39,11 @@
39
  "@radix-ui/react-toggle": "^1.1.3",
40
  "@radix-ui/react-toggle-group": "^1.1.3",
41
  "@radix-ui/react-tooltip": "^1.2.0",
 
42
  "@tanstack/react-query": "^5.60.5",
43
  "@types/d3": "^7.4.3",
 
 
44
  "class-variance-authority": "^0.7.1",
45
  "clsx": "^2.1.1",
46
  "cmdk": "^1.1.1",
@@ -51,6 +54,7 @@
51
  "drizzle-orm": "^0.39.1",
52
  "drizzle-zod": "^0.7.0",
53
  "embla-carousel-react": "^8.6.0",
 
54
  "express": "^4.21.2",
55
  "express-rate-limit": "^7.5.0",
56
  "express-session": "^1.18.1",
@@ -64,6 +68,7 @@
64
  "openai": "^5.1.0",
65
  "passport": "^0.7.0",
66
  "passport-local": "^1.0.0",
 
67
  "react": "^18.3.1",
68
  "react-day-picker": "^8.10.1",
69
  "react-dom": "^18.3.1",
@@ -74,9 +79,11 @@
74
  "react-resizable-panels": "^2.1.7",
75
  "recharts": "^2.15.2",
76
  "tailwind-merge": "^2.6.0",
 
77
  "tailwindcss-animate": "^1.0.7",
78
  "tw-animate-css": "^1.2.5",
79
  "vaul": "^1.1.2",
 
80
  "wouter": "^3.3.5",
81
  "ws": "^8.18.0",
82
  "zod": "^3.24.2",
@@ -85,7 +92,6 @@
85
  "devDependencies": {
86
  "@replit/vite-plugin-cartographer": "^0.2.7",
87
  "@replit/vite-plugin-runtime-error-modal": "^0.0.3",
88
- "@tailwindcss/typography": "^0.5.15",
89
  "@tailwindcss/vite": "^4.1.3",
90
  "@types/connect-pg-simple": "^7.0.3",
91
  "@types/express": "4.17.21",
@@ -96,16 +102,10 @@
96
  "@types/react": "^18.3.11",
97
  "@types/react-dom": "^18.3.1",
98
  "@types/ws": "^8.5.13",
99
- "@vitejs/plugin-react": "^4.3.2",
100
- "autoprefixer": "^10.4.20",
101
  "dotenv-cli": "^8.0.0",
102
  "drizzle-kit": "^0.30.4",
103
- "esbuild": "^0.25.0",
104
- "postcss": "^8.4.47",
105
- "tailwindcss": "^3.4.17",
106
  "tsx": "^4.19.1",
107
- "typescript": "5.6.3",
108
- "vite": "^5.4.14"
109
  },
110
  "optionalDependencies": {
111
  "bufferutil": "^4.0.8"
@@ -127,7 +127,6 @@
127
  "version": "2.3.0",
128
  "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
129
  "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
130
- "dev": true,
131
  "license": "Apache-2.0",
132
  "dependencies": {
133
  "@jridgewell/gen-mapping": "^0.3.5",
@@ -141,7 +140,6 @@
141
  "version": "7.26.2",
142
  "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
143
  "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
144
- "dev": true,
145
  "license": "MIT",
146
  "dependencies": {
147
  "@babel/helper-validator-identifier": "^7.25.9",
@@ -156,7 +154,6 @@
156
  "version": "7.26.2",
157
  "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz",
158
  "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==",
159
- "dev": true,
160
  "license": "MIT",
161
  "engines": {
162
  "node": ">=6.9.0"
@@ -166,7 +163,6 @@
166
  "version": "7.26.0",
167
  "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
168
  "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
169
- "dev": true,
170
  "license": "MIT",
171
  "dependencies": {
172
  "@ampproject/remapping": "^2.2.0",
@@ -197,7 +193,6 @@
197
  "version": "7.26.9",
198
  "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz",
199
  "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==",
200
- "dev": true,
201
  "dependencies": {
202
  "@babel/parser": "^7.26.9",
203
  "@babel/types": "^7.26.9",
@@ -213,7 +208,6 @@
213
  "version": "7.25.9",
214
  "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz",
215
  "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==",
216
- "dev": true,
217
  "license": "MIT",
218
  "dependencies": {
219
  "@babel/compat-data": "^7.25.9",
@@ -230,7 +224,6 @@
230
  "version": "7.25.9",
231
  "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
232
  "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
233
- "dev": true,
234
  "license": "MIT",
235
  "dependencies": {
236
  "@babel/traverse": "^7.25.9",
@@ -244,7 +237,6 @@
244
  "version": "7.26.0",
245
  "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
246
  "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
247
- "dev": true,
248
  "license": "MIT",
249
  "dependencies": {
250
  "@babel/helper-module-imports": "^7.25.9",
@@ -262,7 +254,6 @@
262
  "version": "7.25.9",
263
  "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz",
264
  "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==",
265
- "dev": true,
266
  "license": "MIT",
267
  "engines": {
268
  "node": ">=6.9.0"
@@ -272,7 +263,6 @@
272
  "version": "7.25.9",
273
  "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
274
  "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
275
- "dev": true,
276
  "license": "MIT",
277
  "engines": {
278
  "node": ">=6.9.0"
@@ -282,7 +272,6 @@
282
  "version": "7.25.9",
283
  "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
284
  "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
285
- "dev": true,
286
  "license": "MIT",
287
  "engines": {
288
  "node": ">=6.9.0"
@@ -292,7 +281,6 @@
292
  "version": "7.25.9",
293
  "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
294
  "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
295
- "dev": true,
296
  "license": "MIT",
297
  "engines": {
298
  "node": ">=6.9.0"
@@ -302,7 +290,6 @@
302
  "version": "7.26.0",
303
  "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz",
304
  "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
305
- "dev": true,
306
  "license": "MIT",
307
  "dependencies": {
308
  "@babel/template": "^7.25.9",
@@ -316,7 +303,6 @@
316
  "version": "7.26.9",
317
  "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz",
318
  "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==",
319
- "dev": true,
320
  "dependencies": {
321
  "@babel/types": "^7.26.9"
322
  },
@@ -331,7 +317,6 @@
331
  "version": "7.25.9",
332
  "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz",
333
  "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==",
334
- "dev": true,
335
  "license": "MIT",
336
  "dependencies": {
337
  "@babel/helper-plugin-utils": "^7.25.9"
@@ -347,7 +332,6 @@
347
  "version": "7.25.9",
348
  "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz",
349
  "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==",
350
- "dev": true,
351
  "license": "MIT",
352
  "dependencies": {
353
  "@babel/helper-plugin-utils": "^7.25.9"
@@ -374,7 +358,6 @@
374
  "version": "7.26.9",
375
  "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz",
376
  "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==",
377
- "dev": true,
378
  "dependencies": {
379
  "@babel/code-frame": "^7.26.2",
380
  "@babel/parser": "^7.26.9",
@@ -388,7 +371,6 @@
388
  "version": "7.26.9",
389
  "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz",
390
  "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==",
391
- "dev": true,
392
  "dependencies": {
393
  "@babel/code-frame": "^7.26.2",
394
  "@babel/generator": "^7.26.9",
@@ -406,7 +388,6 @@
406
  "version": "7.26.9",
407
  "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz",
408
  "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==",
409
- "dev": true,
410
  "dependencies": {
411
  "@babel/helper-string-parser": "^7.25.9",
412
  "@babel/helper-validator-identifier": "^7.25.9"
@@ -865,7 +846,6 @@
865
  "cpu": [
866
  "ppc64"
867
  ],
868
- "dev": true,
869
  "license": "MIT",
870
  "optional": true,
871
  "os": [
@@ -882,7 +862,6 @@
882
  "cpu": [
883
  "arm"
884
  ],
885
- "dev": true,
886
  "license": "MIT",
887
  "optional": true,
888
  "os": [
@@ -899,7 +878,6 @@
899
  "cpu": [
900
  "arm64"
901
  ],
902
- "dev": true,
903
  "license": "MIT",
904
  "optional": true,
905
  "os": [
@@ -916,7 +894,6 @@
916
  "cpu": [
917
  "x64"
918
  ],
919
- "dev": true,
920
  "license": "MIT",
921
  "optional": true,
922
  "os": [
@@ -933,7 +910,6 @@
933
  "cpu": [
934
  "arm64"
935
  ],
936
- "dev": true,
937
  "license": "MIT",
938
  "optional": true,
939
  "os": [
@@ -950,7 +926,6 @@
950
  "cpu": [
951
  "x64"
952
  ],
953
- "dev": true,
954
  "license": "MIT",
955
  "optional": true,
956
  "os": [
@@ -967,7 +942,6 @@
967
  "cpu": [
968
  "arm64"
969
  ],
970
- "dev": true,
971
  "license": "MIT",
972
  "optional": true,
973
  "os": [
@@ -984,7 +958,6 @@
984
  "cpu": [
985
  "x64"
986
  ],
987
- "dev": true,
988
  "license": "MIT",
989
  "optional": true,
990
  "os": [
@@ -1001,7 +974,6 @@
1001
  "cpu": [
1002
  "arm"
1003
  ],
1004
- "dev": true,
1005
  "license": "MIT",
1006
  "optional": true,
1007
  "os": [
@@ -1018,7 +990,6 @@
1018
  "cpu": [
1019
  "arm64"
1020
  ],
1021
- "dev": true,
1022
  "license": "MIT",
1023
  "optional": true,
1024
  "os": [
@@ -1035,7 +1006,6 @@
1035
  "cpu": [
1036
  "ia32"
1037
  ],
1038
- "dev": true,
1039
  "license": "MIT",
1040
  "optional": true,
1041
  "os": [
@@ -1052,7 +1022,6 @@
1052
  "cpu": [
1053
  "loong64"
1054
  ],
1055
- "dev": true,
1056
  "license": "MIT",
1057
  "optional": true,
1058
  "os": [
@@ -1069,7 +1038,6 @@
1069
  "cpu": [
1070
  "mips64el"
1071
  ],
1072
- "dev": true,
1073
  "license": "MIT",
1074
  "optional": true,
1075
  "os": [
@@ -1086,7 +1054,6 @@
1086
  "cpu": [
1087
  "ppc64"
1088
  ],
1089
- "dev": true,
1090
  "license": "MIT",
1091
  "optional": true,
1092
  "os": [
@@ -1103,7 +1070,6 @@
1103
  "cpu": [
1104
  "riscv64"
1105
  ],
1106
- "dev": true,
1107
  "license": "MIT",
1108
  "optional": true,
1109
  "os": [
@@ -1120,7 +1086,6 @@
1120
  "cpu": [
1121
  "s390x"
1122
  ],
1123
- "dev": true,
1124
  "license": "MIT",
1125
  "optional": true,
1126
  "os": [
@@ -1137,7 +1102,6 @@
1137
  "cpu": [
1138
  "x64"
1139
  ],
1140
- "dev": true,
1141
  "license": "MIT",
1142
  "optional": true,
1143
  "os": [
@@ -1154,7 +1118,6 @@
1154
  "cpu": [
1155
  "arm64"
1156
  ],
1157
- "dev": true,
1158
  "license": "MIT",
1159
  "optional": true,
1160
  "os": [
@@ -1171,7 +1134,6 @@
1171
  "cpu": [
1172
  "x64"
1173
  ],
1174
- "dev": true,
1175
  "license": "MIT",
1176
  "optional": true,
1177
  "os": [
@@ -1188,7 +1150,6 @@
1188
  "cpu": [
1189
  "arm64"
1190
  ],
1191
- "dev": true,
1192
  "license": "MIT",
1193
  "optional": true,
1194
  "os": [
@@ -1205,7 +1166,6 @@
1205
  "cpu": [
1206
  "x64"
1207
  ],
1208
- "dev": true,
1209
  "license": "MIT",
1210
  "optional": true,
1211
  "os": [
@@ -1222,7 +1182,6 @@
1222
  "cpu": [
1223
  "x64"
1224
  ],
1225
- "dev": true,
1226
  "license": "MIT",
1227
  "optional": true,
1228
  "os": [
@@ -1239,7 +1198,6 @@
1239
  "cpu": [
1240
  "arm64"
1241
  ],
1242
- "dev": true,
1243
  "license": "MIT",
1244
  "optional": true,
1245
  "os": [
@@ -1256,7 +1214,6 @@
1256
  "cpu": [
1257
  "ia32"
1258
  ],
1259
- "dev": true,
1260
  "license": "MIT",
1261
  "optional": true,
1262
  "os": [
@@ -1273,7 +1230,6 @@
1273
  "cpu": [
1274
  "x64"
1275
  ],
1276
- "dev": true,
1277
  "license": "MIT",
1278
  "optional": true,
1279
  "os": [
@@ -2737,7 +2693,6 @@
2737
  "cpu": [
2738
  "arm"
2739
  ],
2740
- "dev": true,
2741
  "license": "MIT",
2742
  "optional": true,
2743
  "os": [
@@ -2751,7 +2706,6 @@
2751
  "cpu": [
2752
  "arm64"
2753
  ],
2754
- "dev": true,
2755
  "license": "MIT",
2756
  "optional": true,
2757
  "os": [
@@ -2765,7 +2719,6 @@
2765
  "cpu": [
2766
  "arm64"
2767
  ],
2768
- "dev": true,
2769
  "license": "MIT",
2770
  "optional": true,
2771
  "os": [
@@ -2779,7 +2732,6 @@
2779
  "cpu": [
2780
  "x64"
2781
  ],
2782
- "dev": true,
2783
  "license": "MIT",
2784
  "optional": true,
2785
  "os": [
@@ -2793,7 +2745,6 @@
2793
  "cpu": [
2794
  "arm64"
2795
  ],
2796
- "dev": true,
2797
  "license": "MIT",
2798
  "optional": true,
2799
  "os": [
@@ -2807,7 +2758,6 @@
2807
  "cpu": [
2808
  "x64"
2809
  ],
2810
- "dev": true,
2811
  "license": "MIT",
2812
  "optional": true,
2813
  "os": [
@@ -2821,7 +2771,6 @@
2821
  "cpu": [
2822
  "arm"
2823
  ],
2824
- "dev": true,
2825
  "license": "MIT",
2826
  "optional": true,
2827
  "os": [
@@ -2835,7 +2784,6 @@
2835
  "cpu": [
2836
  "arm"
2837
  ],
2838
- "dev": true,
2839
  "license": "MIT",
2840
  "optional": true,
2841
  "os": [
@@ -2849,7 +2797,6 @@
2849
  "cpu": [
2850
  "arm64"
2851
  ],
2852
- "dev": true,
2853
  "license": "MIT",
2854
  "optional": true,
2855
  "os": [
@@ -2863,7 +2810,6 @@
2863
  "cpu": [
2864
  "arm64"
2865
  ],
2866
- "dev": true,
2867
  "license": "MIT",
2868
  "optional": true,
2869
  "os": [
@@ -2877,7 +2823,6 @@
2877
  "cpu": [
2878
  "ppc64"
2879
  ],
2880
- "dev": true,
2881
  "license": "MIT",
2882
  "optional": true,
2883
  "os": [
@@ -2891,7 +2836,6 @@
2891
  "cpu": [
2892
  "riscv64"
2893
  ],
2894
- "dev": true,
2895
  "license": "MIT",
2896
  "optional": true,
2897
  "os": [
@@ -2905,7 +2849,6 @@
2905
  "cpu": [
2906
  "s390x"
2907
  ],
2908
- "dev": true,
2909
  "license": "MIT",
2910
  "optional": true,
2911
  "os": [
@@ -2919,7 +2862,6 @@
2919
  "cpu": [
2920
  "x64"
2921
  ],
2922
- "dev": true,
2923
  "license": "MIT",
2924
  "optional": true,
2925
  "os": [
@@ -2933,7 +2875,6 @@
2933
  "cpu": [
2934
  "x64"
2935
  ],
2936
- "dev": true,
2937
  "license": "MIT",
2938
  "optional": true,
2939
  "os": [
@@ -2947,7 +2888,6 @@
2947
  "cpu": [
2948
  "arm64"
2949
  ],
2950
- "dev": true,
2951
  "license": "MIT",
2952
  "optional": true,
2953
  "os": [
@@ -2961,7 +2901,6 @@
2961
  "cpu": [
2962
  "ia32"
2963
  ],
2964
- "dev": true,
2965
  "license": "MIT",
2966
  "optional": true,
2967
  "os": [
@@ -2975,7 +2914,6 @@
2975
  "cpu": [
2976
  "x64"
2977
  ],
2978
- "dev": true,
2979
  "license": "MIT",
2980
  "optional": true,
2981
  "os": [
@@ -3211,7 +3149,6 @@
3211
  "version": "0.5.15",
3212
  "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.15.tgz",
3213
  "integrity": "sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==",
3214
- "dev": true,
3215
  "license": "MIT",
3216
  "dependencies": {
3217
  "lodash.castarray": "^4.4.0",
@@ -3227,7 +3164,6 @@
3227
  "version": "6.0.10",
3228
  "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
3229
  "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
3230
- "dev": true,
3231
  "license": "MIT",
3232
  "dependencies": {
3233
  "cssesc": "^3.0.0",
@@ -3293,7 +3229,6 @@
3293
  "version": "7.20.5",
3294
  "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
3295
  "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
3296
- "dev": true,
3297
  "license": "MIT",
3298
  "dependencies": {
3299
  "@babel/parser": "^7.20.7",
@@ -3307,7 +3242,6 @@
3307
  "version": "7.6.8",
3308
  "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
3309
  "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
3310
- "dev": true,
3311
  "license": "MIT",
3312
  "dependencies": {
3313
  "@babel/types": "^7.0.0"
@@ -3317,7 +3251,6 @@
3317
  "version": "7.4.4",
3318
  "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
3319
  "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
3320
- "dev": true,
3321
  "license": "MIT",
3322
  "dependencies": {
3323
  "@babel/parser": "^7.1.0",
@@ -3328,7 +3261,6 @@
3328
  "version": "7.20.6",
3329
  "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz",
3330
  "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==",
3331
- "dev": true,
3332
  "license": "MIT",
3333
  "dependencies": {
3334
  "@babel/types": "^7.20.7"
@@ -3624,7 +3556,6 @@
3624
  "version": "1.0.6",
3625
  "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
3626
  "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
3627
- "dev": true,
3628
  "license": "MIT"
3629
  },
3630
  "node_modules/@types/express": {
@@ -3815,7 +3746,6 @@
3815
  "version": "4.3.3",
3816
  "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.3.tgz",
3817
  "integrity": "sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==",
3818
- "dev": true,
3819
  "license": "MIT",
3820
  "dependencies": {
3821
  "@babel/core": "^7.25.2",
@@ -3940,7 +3870,6 @@
3940
  "version": "10.4.20",
3941
  "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
3942
  "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
3943
- "dev": true,
3944
  "funding": [
3945
  {
3946
  "type": "opencollective",
@@ -4066,7 +3995,6 @@
4066
  "version": "4.24.2",
4067
  "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz",
4068
  "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==",
4069
- "dev": true,
4070
  "funding": [
4071
  {
4072
  "type": "opencollective",
@@ -4154,10 +4082,9 @@
4154
  }
4155
  },
4156
  "node_modules/caniuse-lite": {
4157
- "version": "1.0.30001677",
4158
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz",
4159
- "integrity": "sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==",
4160
- "dev": true,
4161
  "funding": [
4162
  {
4163
  "type": "opencollective",
@@ -4171,8 +4098,7 @@
4171
  "type": "github",
4172
  "url": "https://github.com/sponsors/ai"
4173
  }
4174
- ],
4175
- "license": "CC-BY-4.0"
4176
  },
4177
  "node_modules/canvas-color-tracker": {
4178
  "version": "1.3.2",
@@ -4320,7 +4246,6 @@
4320
  "version": "2.0.0",
4321
  "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
4322
  "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
4323
- "dev": true,
4324
  "license": "MIT"
4325
  },
4326
  "node_modules/cookie": {
@@ -4912,7 +4837,7 @@
4912
  "version": "2.0.3",
4913
  "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
4914
  "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
4915
- "dev": true,
4916
  "engines": {
4917
  "node": ">=8"
4918
  }
@@ -5575,7 +5500,6 @@
5575
  "version": "1.5.51",
5576
  "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.51.tgz",
5577
  "integrity": "sha512-kKeWV57KSS8jH4alKt/jKnvHPmJgBxXzGUSbMd4eQF+iOsVPl7bz2KUmu6eo80eMP8wVioTfTyTzdMgM15WXNg==",
5578
- "dev": true,
5579
  "license": "ISC"
5580
  },
5581
  "node_modules/embla-carousel": {
@@ -5656,7 +5580,6 @@
5656
  "version": "0.25.0",
5657
  "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz",
5658
  "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==",
5659
- "dev": true,
5660
  "hasInstallScript": true,
5661
  "license": "MIT",
5662
  "bin": {
@@ -5710,7 +5633,6 @@
5710
  "version": "3.2.0",
5711
  "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
5712
  "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
5713
- "dev": true,
5714
  "license": "MIT",
5715
  "engines": {
5716
  "node": ">=6"
@@ -6032,7 +5954,6 @@
6032
  "version": "4.3.7",
6033
  "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
6034
  "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
6035
- "dev": true,
6036
  "license": "MIT",
6037
  "engines": {
6038
  "node": "*"
@@ -6105,7 +6026,6 @@
6105
  "version": "1.0.0-beta.2",
6106
  "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
6107
  "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
6108
- "dev": true,
6109
  "license": "MIT",
6110
  "engines": {
6111
  "node": ">=6.9.0"
@@ -6187,7 +6107,6 @@
6187
  "version": "11.12.0",
6188
  "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
6189
  "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
6190
- "dev": true,
6191
  "license": "MIT",
6192
  "engines": {
6193
  "node": ">=4"
@@ -6452,7 +6371,6 @@
6452
  "version": "3.0.2",
6453
  "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
6454
  "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
6455
- "dev": true,
6456
  "license": "MIT",
6457
  "bin": {
6458
  "jsesc": "bin/jsesc"
@@ -6465,7 +6383,6 @@
6465
  "version": "2.2.3",
6466
  "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
6467
  "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
6468
- "dev": true,
6469
  "license": "MIT",
6470
  "bin": {
6471
  "json5": "lib/cli.js"
@@ -6490,7 +6407,7 @@
6490
  "version": "1.29.2",
6491
  "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz",
6492
  "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==",
6493
- "dev": true,
6494
  "dependencies": {
6495
  "detect-libc": "^2.0.3"
6496
  },
@@ -6747,21 +6664,18 @@
6747
  "version": "4.4.0",
6748
  "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz",
6749
  "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==",
6750
- "dev": true,
6751
  "license": "MIT"
6752
  },
6753
  "node_modules/lodash.isplainobject": {
6754
  "version": "4.0.6",
6755
  "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
6756
  "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
6757
- "dev": true,
6758
  "license": "MIT"
6759
  },
6760
  "node_modules/lodash.merge": {
6761
  "version": "4.6.2",
6762
  "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
6763
  "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
6764
- "dev": true,
6765
  "license": "MIT"
6766
  },
6767
  "node_modules/loose-envify": {
@@ -6780,7 +6694,6 @@
6780
  "version": "5.1.1",
6781
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
6782
  "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
6783
- "dev": true,
6784
  "license": "ISC",
6785
  "dependencies": {
6786
  "yallist": "^3.0.2"
@@ -7075,7 +6988,6 @@
7075
  "version": "2.0.18",
7076
  "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
7077
  "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
7078
- "dev": true,
7079
  "license": "MIT"
7080
  },
7081
  "node_modules/normalize-path": {
@@ -7091,7 +7003,6 @@
7091
  "version": "0.1.2",
7092
  "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
7093
  "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
7094
- "dev": true,
7095
  "license": "MIT",
7096
  "engines": {
7097
  "node": ">=0.10.0"
@@ -7897,7 +7808,6 @@
7897
  "version": "0.14.2",
7898
  "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
7899
  "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==",
7900
- "dev": true,
7901
  "license": "MIT",
7902
  "engines": {
7903
  "node": ">=0.10.0"
@@ -8120,7 +8030,6 @@
8120
  "version": "4.24.4",
8121
  "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz",
8122
  "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==",
8123
- "dev": true,
8124
  "license": "MIT",
8125
  "dependencies": {
8126
  "@types/estree": "1.0.6"
@@ -8222,7 +8131,6 @@
8222
  "version": "6.3.1",
8223
  "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
8224
  "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
8225
- "dev": true,
8226
  "license": "ISC",
8227
  "bin": {
8228
  "semver": "bin/semver.js"
@@ -9254,7 +9162,6 @@
9254
  "version": "1.1.1",
9255
  "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
9256
  "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
9257
- "dev": true,
9258
  "funding": [
9259
  {
9260
  "type": "opencollective",
@@ -9401,7 +9308,6 @@
9401
  "version": "5.4.14",
9402
  "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz",
9403
  "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==",
9404
- "dev": true,
9405
  "license": "MIT",
9406
  "dependencies": {
9407
  "esbuild": "^0.21.3",
@@ -9464,7 +9370,6 @@
9464
  "cpu": [
9465
  "ppc64"
9466
  ],
9467
- "dev": true,
9468
  "license": "MIT",
9469
  "optional": true,
9470
  "os": [
@@ -9481,7 +9386,6 @@
9481
  "cpu": [
9482
  "arm"
9483
  ],
9484
- "dev": true,
9485
  "license": "MIT",
9486
  "optional": true,
9487
  "os": [
@@ -9498,7 +9402,6 @@
9498
  "cpu": [
9499
  "arm64"
9500
  ],
9501
- "dev": true,
9502
  "license": "MIT",
9503
  "optional": true,
9504
  "os": [
@@ -9515,7 +9418,6 @@
9515
  "cpu": [
9516
  "x64"
9517
  ],
9518
- "dev": true,
9519
  "license": "MIT",
9520
  "optional": true,
9521
  "os": [
@@ -9532,7 +9434,6 @@
9532
  "cpu": [
9533
  "arm64"
9534
  ],
9535
- "dev": true,
9536
  "license": "MIT",
9537
  "optional": true,
9538
  "os": [
@@ -9549,7 +9450,6 @@
9549
  "cpu": [
9550
  "x64"
9551
  ],
9552
- "dev": true,
9553
  "license": "MIT",
9554
  "optional": true,
9555
  "os": [
@@ -9566,7 +9466,6 @@
9566
  "cpu": [
9567
  "arm64"
9568
  ],
9569
- "dev": true,
9570
  "license": "MIT",
9571
  "optional": true,
9572
  "os": [
@@ -9583,7 +9482,6 @@
9583
  "cpu": [
9584
  "x64"
9585
  ],
9586
- "dev": true,
9587
  "license": "MIT",
9588
  "optional": true,
9589
  "os": [
@@ -9600,7 +9498,6 @@
9600
  "cpu": [
9601
  "arm"
9602
  ],
9603
- "dev": true,
9604
  "license": "MIT",
9605
  "optional": true,
9606
  "os": [
@@ -9617,7 +9514,6 @@
9617
  "cpu": [
9618
  "arm64"
9619
  ],
9620
- "dev": true,
9621
  "license": "MIT",
9622
  "optional": true,
9623
  "os": [
@@ -9634,7 +9530,6 @@
9634
  "cpu": [
9635
  "ia32"
9636
  ],
9637
- "dev": true,
9638
  "license": "MIT",
9639
  "optional": true,
9640
  "os": [
@@ -9651,7 +9546,6 @@
9651
  "cpu": [
9652
  "loong64"
9653
  ],
9654
- "dev": true,
9655
  "license": "MIT",
9656
  "optional": true,
9657
  "os": [
@@ -9668,7 +9562,6 @@
9668
  "cpu": [
9669
  "mips64el"
9670
  ],
9671
- "dev": true,
9672
  "license": "MIT",
9673
  "optional": true,
9674
  "os": [
@@ -9685,7 +9578,6 @@
9685
  "cpu": [
9686
  "ppc64"
9687
  ],
9688
- "dev": true,
9689
  "license": "MIT",
9690
  "optional": true,
9691
  "os": [
@@ -9702,7 +9594,6 @@
9702
  "cpu": [
9703
  "riscv64"
9704
  ],
9705
- "dev": true,
9706
  "license": "MIT",
9707
  "optional": true,
9708
  "os": [
@@ -9719,7 +9610,6 @@
9719
  "cpu": [
9720
  "s390x"
9721
  ],
9722
- "dev": true,
9723
  "license": "MIT",
9724
  "optional": true,
9725
  "os": [
@@ -9736,7 +9626,6 @@
9736
  "cpu": [
9737
  "x64"
9738
  ],
9739
- "dev": true,
9740
  "license": "MIT",
9741
  "optional": true,
9742
  "os": [
@@ -9753,7 +9642,6 @@
9753
  "cpu": [
9754
  "x64"
9755
  ],
9756
- "dev": true,
9757
  "license": "MIT",
9758
  "optional": true,
9759
  "os": [
@@ -9770,7 +9658,6 @@
9770
  "cpu": [
9771
  "x64"
9772
  ],
9773
- "dev": true,
9774
  "license": "MIT",
9775
  "optional": true,
9776
  "os": [
@@ -9787,7 +9674,6 @@
9787
  "cpu": [
9788
  "x64"
9789
  ],
9790
- "dev": true,
9791
  "license": "MIT",
9792
  "optional": true,
9793
  "os": [
@@ -9804,7 +9690,6 @@
9804
  "cpu": [
9805
  "arm64"
9806
  ],
9807
- "dev": true,
9808
  "license": "MIT",
9809
  "optional": true,
9810
  "os": [
@@ -9821,7 +9706,6 @@
9821
  "cpu": [
9822
  "ia32"
9823
  ],
9824
- "dev": true,
9825
  "license": "MIT",
9826
  "optional": true,
9827
  "os": [
@@ -9838,7 +9722,6 @@
9838
  "cpu": [
9839
  "x64"
9840
  ],
9841
- "dev": true,
9842
  "license": "MIT",
9843
  "optional": true,
9844
  "os": [
@@ -9852,7 +9735,6 @@
9852
  "version": "0.21.5",
9853
  "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
9854
  "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
9855
- "dev": true,
9856
  "hasInstallScript": true,
9857
  "license": "MIT",
9858
  "bin": {
@@ -10041,7 +9923,6 @@
10041
  "version": "3.1.1",
10042
  "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
10043
  "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
10044
- "dev": true,
10045
  "license": "ISC"
10046
  },
10047
  "node_modules/yaml": {
 
39
  "@radix-ui/react-toggle": "^1.1.3",
40
  "@radix-ui/react-toggle-group": "^1.1.3",
41
  "@radix-ui/react-tooltip": "^1.2.0",
42
+ "@tailwindcss/typography": "^0.5.15",
43
  "@tanstack/react-query": "^5.60.5",
44
  "@types/d3": "^7.4.3",
45
+ "@vitejs/plugin-react": "^4.3.2",
46
+ "autoprefixer": "^10.4.20",
47
  "class-variance-authority": "^0.7.1",
48
  "clsx": "^2.1.1",
49
  "cmdk": "^1.1.1",
 
54
  "drizzle-orm": "^0.39.1",
55
  "drizzle-zod": "^0.7.0",
56
  "embla-carousel-react": "^8.6.0",
57
+ "esbuild": "^0.25.0",
58
  "express": "^4.21.2",
59
  "express-rate-limit": "^7.5.0",
60
  "express-session": "^1.18.1",
 
68
  "openai": "^5.1.0",
69
  "passport": "^0.7.0",
70
  "passport-local": "^1.0.0",
71
+ "postcss": "^8.4.47",
72
  "react": "^18.3.1",
73
  "react-day-picker": "^8.10.1",
74
  "react-dom": "^18.3.1",
 
79
  "react-resizable-panels": "^2.1.7",
80
  "recharts": "^2.15.2",
81
  "tailwind-merge": "^2.6.0",
82
+ "tailwindcss": "^3.4.17",
83
  "tailwindcss-animate": "^1.0.7",
84
  "tw-animate-css": "^1.2.5",
85
  "vaul": "^1.1.2",
86
+ "vite": "^5.4.14",
87
  "wouter": "^3.3.5",
88
  "ws": "^8.18.0",
89
  "zod": "^3.24.2",
 
92
  "devDependencies": {
93
  "@replit/vite-plugin-cartographer": "^0.2.7",
94
  "@replit/vite-plugin-runtime-error-modal": "^0.0.3",
 
95
  "@tailwindcss/vite": "^4.1.3",
96
  "@types/connect-pg-simple": "^7.0.3",
97
  "@types/express": "4.17.21",
 
102
  "@types/react": "^18.3.11",
103
  "@types/react-dom": "^18.3.1",
104
  "@types/ws": "^8.5.13",
 
 
105
  "dotenv-cli": "^8.0.0",
106
  "drizzle-kit": "^0.30.4",
 
 
 
107
  "tsx": "^4.19.1",
108
+ "typescript": "5.6.3"
 
109
  },
110
  "optionalDependencies": {
111
  "bufferutil": "^4.0.8"
 
127
  "version": "2.3.0",
128
  "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
129
  "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
 
130
  "license": "Apache-2.0",
131
  "dependencies": {
132
  "@jridgewell/gen-mapping": "^0.3.5",
 
140
  "version": "7.26.2",
141
  "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
142
  "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
 
143
  "license": "MIT",
144
  "dependencies": {
145
  "@babel/helper-validator-identifier": "^7.25.9",
 
154
  "version": "7.26.2",
155
  "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz",
156
  "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==",
 
157
  "license": "MIT",
158
  "engines": {
159
  "node": ">=6.9.0"
 
163
  "version": "7.26.0",
164
  "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
165
  "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
 
166
  "license": "MIT",
167
  "dependencies": {
168
  "@ampproject/remapping": "^2.2.0",
 
193
  "version": "7.26.9",
194
  "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz",
195
  "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==",
 
196
  "dependencies": {
197
  "@babel/parser": "^7.26.9",
198
  "@babel/types": "^7.26.9",
 
208
  "version": "7.25.9",
209
  "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz",
210
  "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==",
 
211
  "license": "MIT",
212
  "dependencies": {
213
  "@babel/compat-data": "^7.25.9",
 
224
  "version": "7.25.9",
225
  "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
226
  "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
 
227
  "license": "MIT",
228
  "dependencies": {
229
  "@babel/traverse": "^7.25.9",
 
237
  "version": "7.26.0",
238
  "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
239
  "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
 
240
  "license": "MIT",
241
  "dependencies": {
242
  "@babel/helper-module-imports": "^7.25.9",
 
254
  "version": "7.25.9",
255
  "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz",
256
  "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==",
 
257
  "license": "MIT",
258
  "engines": {
259
  "node": ">=6.9.0"
 
263
  "version": "7.25.9",
264
  "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
265
  "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
 
266
  "license": "MIT",
267
  "engines": {
268
  "node": ">=6.9.0"
 
272
  "version": "7.25.9",
273
  "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
274
  "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
 
275
  "license": "MIT",
276
  "engines": {
277
  "node": ">=6.9.0"
 
281
  "version": "7.25.9",
282
  "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
283
  "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
 
284
  "license": "MIT",
285
  "engines": {
286
  "node": ">=6.9.0"
 
290
  "version": "7.26.0",
291
  "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz",
292
  "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
 
293
  "license": "MIT",
294
  "dependencies": {
295
  "@babel/template": "^7.25.9",
 
303
  "version": "7.26.9",
304
  "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz",
305
  "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==",
 
306
  "dependencies": {
307
  "@babel/types": "^7.26.9"
308
  },
 
317
  "version": "7.25.9",
318
  "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz",
319
  "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==",
 
320
  "license": "MIT",
321
  "dependencies": {
322
  "@babel/helper-plugin-utils": "^7.25.9"
 
332
  "version": "7.25.9",
333
  "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz",
334
  "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==",
 
335
  "license": "MIT",
336
  "dependencies": {
337
  "@babel/helper-plugin-utils": "^7.25.9"
 
358
  "version": "7.26.9",
359
  "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz",
360
  "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==",
 
361
  "dependencies": {
362
  "@babel/code-frame": "^7.26.2",
363
  "@babel/parser": "^7.26.9",
 
371
  "version": "7.26.9",
372
  "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz",
373
  "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==",
 
374
  "dependencies": {
375
  "@babel/code-frame": "^7.26.2",
376
  "@babel/generator": "^7.26.9",
 
388
  "version": "7.26.9",
389
  "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz",
390
  "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==",
 
391
  "dependencies": {
392
  "@babel/helper-string-parser": "^7.25.9",
393
  "@babel/helper-validator-identifier": "^7.25.9"
 
846
  "cpu": [
847
  "ppc64"
848
  ],
 
849
  "license": "MIT",
850
  "optional": true,
851
  "os": [
 
862
  "cpu": [
863
  "arm"
864
  ],
 
865
  "license": "MIT",
866
  "optional": true,
867
  "os": [
 
878
  "cpu": [
879
  "arm64"
880
  ],
 
881
  "license": "MIT",
882
  "optional": true,
883
  "os": [
 
894
  "cpu": [
895
  "x64"
896
  ],
 
897
  "license": "MIT",
898
  "optional": true,
899
  "os": [
 
910
  "cpu": [
911
  "arm64"
912
  ],
 
913
  "license": "MIT",
914
  "optional": true,
915
  "os": [
 
926
  "cpu": [
927
  "x64"
928
  ],
 
929
  "license": "MIT",
930
  "optional": true,
931
  "os": [
 
942
  "cpu": [
943
  "arm64"
944
  ],
 
945
  "license": "MIT",
946
  "optional": true,
947
  "os": [
 
958
  "cpu": [
959
  "x64"
960
  ],
 
961
  "license": "MIT",
962
  "optional": true,
963
  "os": [
 
974
  "cpu": [
975
  "arm"
976
  ],
 
977
  "license": "MIT",
978
  "optional": true,
979
  "os": [
 
990
  "cpu": [
991
  "arm64"
992
  ],
 
993
  "license": "MIT",
994
  "optional": true,
995
  "os": [
 
1006
  "cpu": [
1007
  "ia32"
1008
  ],
 
1009
  "license": "MIT",
1010
  "optional": true,
1011
  "os": [
 
1022
  "cpu": [
1023
  "loong64"
1024
  ],
 
1025
  "license": "MIT",
1026
  "optional": true,
1027
  "os": [
 
1038
  "cpu": [
1039
  "mips64el"
1040
  ],
 
1041
  "license": "MIT",
1042
  "optional": true,
1043
  "os": [
 
1054
  "cpu": [
1055
  "ppc64"
1056
  ],
 
1057
  "license": "MIT",
1058
  "optional": true,
1059
  "os": [
 
1070
  "cpu": [
1071
  "riscv64"
1072
  ],
 
1073
  "license": "MIT",
1074
  "optional": true,
1075
  "os": [
 
1086
  "cpu": [
1087
  "s390x"
1088
  ],
 
1089
  "license": "MIT",
1090
  "optional": true,
1091
  "os": [
 
1102
  "cpu": [
1103
  "x64"
1104
  ],
 
1105
  "license": "MIT",
1106
  "optional": true,
1107
  "os": [
 
1118
  "cpu": [
1119
  "arm64"
1120
  ],
 
1121
  "license": "MIT",
1122
  "optional": true,
1123
  "os": [
 
1134
  "cpu": [
1135
  "x64"
1136
  ],
 
1137
  "license": "MIT",
1138
  "optional": true,
1139
  "os": [
 
1150
  "cpu": [
1151
  "arm64"
1152
  ],
 
1153
  "license": "MIT",
1154
  "optional": true,
1155
  "os": [
 
1166
  "cpu": [
1167
  "x64"
1168
  ],
 
1169
  "license": "MIT",
1170
  "optional": true,
1171
  "os": [
 
1182
  "cpu": [
1183
  "x64"
1184
  ],
 
1185
  "license": "MIT",
1186
  "optional": true,
1187
  "os": [
 
1198
  "cpu": [
1199
  "arm64"
1200
  ],
 
1201
  "license": "MIT",
1202
  "optional": true,
1203
  "os": [
 
1214
  "cpu": [
1215
  "ia32"
1216
  ],
 
1217
  "license": "MIT",
1218
  "optional": true,
1219
  "os": [
 
1230
  "cpu": [
1231
  "x64"
1232
  ],
 
1233
  "license": "MIT",
1234
  "optional": true,
1235
  "os": [
 
2693
  "cpu": [
2694
  "arm"
2695
  ],
 
2696
  "license": "MIT",
2697
  "optional": true,
2698
  "os": [
 
2706
  "cpu": [
2707
  "arm64"
2708
  ],
 
2709
  "license": "MIT",
2710
  "optional": true,
2711
  "os": [
 
2719
  "cpu": [
2720
  "arm64"
2721
  ],
 
2722
  "license": "MIT",
2723
  "optional": true,
2724
  "os": [
 
2732
  "cpu": [
2733
  "x64"
2734
  ],
 
2735
  "license": "MIT",
2736
  "optional": true,
2737
  "os": [
 
2745
  "cpu": [
2746
  "arm64"
2747
  ],
 
2748
  "license": "MIT",
2749
  "optional": true,
2750
  "os": [
 
2758
  "cpu": [
2759
  "x64"
2760
  ],
 
2761
  "license": "MIT",
2762
  "optional": true,
2763
  "os": [
 
2771
  "cpu": [
2772
  "arm"
2773
  ],
 
2774
  "license": "MIT",
2775
  "optional": true,
2776
  "os": [
 
2784
  "cpu": [
2785
  "arm"
2786
  ],
 
2787
  "license": "MIT",
2788
  "optional": true,
2789
  "os": [
 
2797
  "cpu": [
2798
  "arm64"
2799
  ],
 
2800
  "license": "MIT",
2801
  "optional": true,
2802
  "os": [
 
2810
  "cpu": [
2811
  "arm64"
2812
  ],
 
2813
  "license": "MIT",
2814
  "optional": true,
2815
  "os": [
 
2823
  "cpu": [
2824
  "ppc64"
2825
  ],
 
2826
  "license": "MIT",
2827
  "optional": true,
2828
  "os": [
 
2836
  "cpu": [
2837
  "riscv64"
2838
  ],
 
2839
  "license": "MIT",
2840
  "optional": true,
2841
  "os": [
 
2849
  "cpu": [
2850
  "s390x"
2851
  ],
 
2852
  "license": "MIT",
2853
  "optional": true,
2854
  "os": [
 
2862
  "cpu": [
2863
  "x64"
2864
  ],
 
2865
  "license": "MIT",
2866
  "optional": true,
2867
  "os": [
 
2875
  "cpu": [
2876
  "x64"
2877
  ],
 
2878
  "license": "MIT",
2879
  "optional": true,
2880
  "os": [
 
2888
  "cpu": [
2889
  "arm64"
2890
  ],
 
2891
  "license": "MIT",
2892
  "optional": true,
2893
  "os": [
 
2901
  "cpu": [
2902
  "ia32"
2903
  ],
 
2904
  "license": "MIT",
2905
  "optional": true,
2906
  "os": [
 
2914
  "cpu": [
2915
  "x64"
2916
  ],
 
2917
  "license": "MIT",
2918
  "optional": true,
2919
  "os": [
 
3149
  "version": "0.5.15",
3150
  "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.15.tgz",
3151
  "integrity": "sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==",
 
3152
  "license": "MIT",
3153
  "dependencies": {
3154
  "lodash.castarray": "^4.4.0",
 
3164
  "version": "6.0.10",
3165
  "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
3166
  "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
 
3167
  "license": "MIT",
3168
  "dependencies": {
3169
  "cssesc": "^3.0.0",
 
3229
  "version": "7.20.5",
3230
  "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
3231
  "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
 
3232
  "license": "MIT",
3233
  "dependencies": {
3234
  "@babel/parser": "^7.20.7",
 
3242
  "version": "7.6.8",
3243
  "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
3244
  "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
 
3245
  "license": "MIT",
3246
  "dependencies": {
3247
  "@babel/types": "^7.0.0"
 
3251
  "version": "7.4.4",
3252
  "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
3253
  "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
 
3254
  "license": "MIT",
3255
  "dependencies": {
3256
  "@babel/parser": "^7.1.0",
 
3261
  "version": "7.20.6",
3262
  "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz",
3263
  "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==",
 
3264
  "license": "MIT",
3265
  "dependencies": {
3266
  "@babel/types": "^7.20.7"
 
3556
  "version": "1.0.6",
3557
  "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
3558
  "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
 
3559
  "license": "MIT"
3560
  },
3561
  "node_modules/@types/express": {
 
3746
  "version": "4.3.3",
3747
  "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.3.tgz",
3748
  "integrity": "sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==",
 
3749
  "license": "MIT",
3750
  "dependencies": {
3751
  "@babel/core": "^7.25.2",
 
3870
  "version": "10.4.20",
3871
  "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
3872
  "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
 
3873
  "funding": [
3874
  {
3875
  "type": "opencollective",
 
3995
  "version": "4.24.2",
3996
  "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz",
3997
  "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==",
 
3998
  "funding": [
3999
  {
4000
  "type": "opencollective",
 
4082
  }
4083
  },
4084
  "node_modules/caniuse-lite": {
4085
+ "version": "1.0.30001721",
4086
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz",
4087
+ "integrity": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==",
 
4088
  "funding": [
4089
  {
4090
  "type": "opencollective",
 
4098
  "type": "github",
4099
  "url": "https://github.com/sponsors/ai"
4100
  }
4101
+ ]
 
4102
  },
4103
  "node_modules/canvas-color-tracker": {
4104
  "version": "1.3.2",
 
4246
  "version": "2.0.0",
4247
  "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
4248
  "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
 
4249
  "license": "MIT"
4250
  },
4251
  "node_modules/cookie": {
 
4837
  "version": "2.0.3",
4838
  "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
4839
  "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
4840
+ "devOptional": true,
4841
  "engines": {
4842
  "node": ">=8"
4843
  }
 
5500
  "version": "1.5.51",
5501
  "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.51.tgz",
5502
  "integrity": "sha512-kKeWV57KSS8jH4alKt/jKnvHPmJgBxXzGUSbMd4eQF+iOsVPl7bz2KUmu6eo80eMP8wVioTfTyTzdMgM15WXNg==",
 
5503
  "license": "ISC"
5504
  },
5505
  "node_modules/embla-carousel": {
 
5580
  "version": "0.25.0",
5581
  "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz",
5582
  "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==",
 
5583
  "hasInstallScript": true,
5584
  "license": "MIT",
5585
  "bin": {
 
5633
  "version": "3.2.0",
5634
  "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
5635
  "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
 
5636
  "license": "MIT",
5637
  "engines": {
5638
  "node": ">=6"
 
5954
  "version": "4.3.7",
5955
  "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
5956
  "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
 
5957
  "license": "MIT",
5958
  "engines": {
5959
  "node": "*"
 
6026
  "version": "1.0.0-beta.2",
6027
  "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
6028
  "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
 
6029
  "license": "MIT",
6030
  "engines": {
6031
  "node": ">=6.9.0"
 
6107
  "version": "11.12.0",
6108
  "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
6109
  "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
 
6110
  "license": "MIT",
6111
  "engines": {
6112
  "node": ">=4"
 
6371
  "version": "3.0.2",
6372
  "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
6373
  "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
 
6374
  "license": "MIT",
6375
  "bin": {
6376
  "jsesc": "bin/jsesc"
 
6383
  "version": "2.2.3",
6384
  "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
6385
  "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
 
6386
  "license": "MIT",
6387
  "bin": {
6388
  "json5": "lib/cli.js"
 
6407
  "version": "1.29.2",
6408
  "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz",
6409
  "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==",
6410
+ "devOptional": true,
6411
  "dependencies": {
6412
  "detect-libc": "^2.0.3"
6413
  },
 
6664
  "version": "4.4.0",
6665
  "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz",
6666
  "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==",
 
6667
  "license": "MIT"
6668
  },
6669
  "node_modules/lodash.isplainobject": {
6670
  "version": "4.0.6",
6671
  "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
6672
  "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
 
6673
  "license": "MIT"
6674
  },
6675
  "node_modules/lodash.merge": {
6676
  "version": "4.6.2",
6677
  "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
6678
  "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
 
6679
  "license": "MIT"
6680
  },
6681
  "node_modules/loose-envify": {
 
6694
  "version": "5.1.1",
6695
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
6696
  "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
 
6697
  "license": "ISC",
6698
  "dependencies": {
6699
  "yallist": "^3.0.2"
 
6988
  "version": "2.0.18",
6989
  "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
6990
  "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
 
6991
  "license": "MIT"
6992
  },
6993
  "node_modules/normalize-path": {
 
7003
  "version": "0.1.2",
7004
  "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
7005
  "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
 
7006
  "license": "MIT",
7007
  "engines": {
7008
  "node": ">=0.10.0"
 
7808
  "version": "0.14.2",
7809
  "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
7810
  "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==",
 
7811
  "license": "MIT",
7812
  "engines": {
7813
  "node": ">=0.10.0"
 
8030
  "version": "4.24.4",
8031
  "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz",
8032
  "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==",
 
8033
  "license": "MIT",
8034
  "dependencies": {
8035
  "@types/estree": "1.0.6"
 
8131
  "version": "6.3.1",
8132
  "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
8133
  "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
 
8134
  "license": "ISC",
8135
  "bin": {
8136
  "semver": "bin/semver.js"
 
9162
  "version": "1.1.1",
9163
  "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
9164
  "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
 
9165
  "funding": [
9166
  {
9167
  "type": "opencollective",
 
9308
  "version": "5.4.14",
9309
  "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz",
9310
  "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==",
 
9311
  "license": "MIT",
9312
  "dependencies": {
9313
  "esbuild": "^0.21.3",
 
9370
  "cpu": [
9371
  "ppc64"
9372
  ],
 
9373
  "license": "MIT",
9374
  "optional": true,
9375
  "os": [
 
9386
  "cpu": [
9387
  "arm"
9388
  ],
 
9389
  "license": "MIT",
9390
  "optional": true,
9391
  "os": [
 
9402
  "cpu": [
9403
  "arm64"
9404
  ],
 
9405
  "license": "MIT",
9406
  "optional": true,
9407
  "os": [
 
9418
  "cpu": [
9419
  "x64"
9420
  ],
 
9421
  "license": "MIT",
9422
  "optional": true,
9423
  "os": [
 
9434
  "cpu": [
9435
  "arm64"
9436
  ],
 
9437
  "license": "MIT",
9438
  "optional": true,
9439
  "os": [
 
9450
  "cpu": [
9451
  "x64"
9452
  ],
 
9453
  "license": "MIT",
9454
  "optional": true,
9455
  "os": [
 
9466
  "cpu": [
9467
  "arm64"
9468
  ],
 
9469
  "license": "MIT",
9470
  "optional": true,
9471
  "os": [
 
9482
  "cpu": [
9483
  "x64"
9484
  ],
 
9485
  "license": "MIT",
9486
  "optional": true,
9487
  "os": [
 
9498
  "cpu": [
9499
  "arm"
9500
  ],
 
9501
  "license": "MIT",
9502
  "optional": true,
9503
  "os": [
 
9514
  "cpu": [
9515
  "arm64"
9516
  ],
 
9517
  "license": "MIT",
9518
  "optional": true,
9519
  "os": [
 
9530
  "cpu": [
9531
  "ia32"
9532
  ],
 
9533
  "license": "MIT",
9534
  "optional": true,
9535
  "os": [
 
9546
  "cpu": [
9547
  "loong64"
9548
  ],
 
9549
  "license": "MIT",
9550
  "optional": true,
9551
  "os": [
 
9562
  "cpu": [
9563
  "mips64el"
9564
  ],
 
9565
  "license": "MIT",
9566
  "optional": true,
9567
  "os": [
 
9578
  "cpu": [
9579
  "ppc64"
9580
  ],
 
9581
  "license": "MIT",
9582
  "optional": true,
9583
  "os": [
 
9594
  "cpu": [
9595
  "riscv64"
9596
  ],
 
9597
  "license": "MIT",
9598
  "optional": true,
9599
  "os": [
 
9610
  "cpu": [
9611
  "s390x"
9612
  ],
 
9613
  "license": "MIT",
9614
  "optional": true,
9615
  "os": [
 
9626
  "cpu": [
9627
  "x64"
9628
  ],
 
9629
  "license": "MIT",
9630
  "optional": true,
9631
  "os": [
 
9642
  "cpu": [
9643
  "x64"
9644
  ],
 
9645
  "license": "MIT",
9646
  "optional": true,
9647
  "os": [
 
9658
  "cpu": [
9659
  "x64"
9660
  ],
 
9661
  "license": "MIT",
9662
  "optional": true,
9663
  "os": [
 
9674
  "cpu": [
9675
  "x64"
9676
  ],
 
9677
  "license": "MIT",
9678
  "optional": true,
9679
  "os": [
 
9690
  "cpu": [
9691
  "arm64"
9692
  ],
 
9693
  "license": "MIT",
9694
  "optional": true,
9695
  "os": [
 
9706
  "cpu": [
9707
  "ia32"
9708
  ],
 
9709
  "license": "MIT",
9710
  "optional": true,
9711
  "os": [
 
9722
  "cpu": [
9723
  "x64"
9724
  ],
 
9725
  "license": "MIT",
9726
  "optional": true,
9727
  "os": [
 
9735
  "version": "0.21.5",
9736
  "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
9737
  "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
 
9738
  "hasInstallScript": true,
9739
  "license": "MIT",
9740
  "bin": {
 
9923
  "version": "3.1.1",
9924
  "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
9925
  "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
 
9926
  "license": "ISC"
9927
  },
9928
  "node_modules/yaml": {
package.json CHANGED
@@ -41,8 +41,11 @@
41
  "@radix-ui/react-toggle": "^1.1.3",
42
  "@radix-ui/react-toggle-group": "^1.1.3",
43
  "@radix-ui/react-tooltip": "^1.2.0",
 
44
  "@tanstack/react-query": "^5.60.5",
45
  "@types/d3": "^7.4.3",
 
 
46
  "class-variance-authority": "^0.7.1",
47
  "clsx": "^2.1.1",
48
  "cmdk": "^1.1.1",
@@ -53,6 +56,7 @@
53
  "drizzle-orm": "^0.39.1",
54
  "drizzle-zod": "^0.7.0",
55
  "embla-carousel-react": "^8.6.0",
 
56
  "express": "^4.21.2",
57
  "express-rate-limit": "^7.5.0",
58
  "express-session": "^1.18.1",
@@ -66,6 +70,7 @@
66
  "openai": "^5.1.0",
67
  "passport": "^0.7.0",
68
  "passport-local": "^1.0.0",
 
69
  "react": "^18.3.1",
70
  "react-day-picker": "^8.10.1",
71
  "react-dom": "^18.3.1",
@@ -76,20 +81,15 @@
76
  "react-resizable-panels": "^2.1.7",
77
  "recharts": "^2.15.2",
78
  "tailwind-merge": "^2.6.0",
 
79
  "tailwindcss-animate": "^1.0.7",
80
  "tw-animate-css": "^1.2.5",
81
  "vaul": "^1.1.2",
 
82
  "wouter": "^3.3.5",
83
  "ws": "^8.18.0",
84
  "zod": "^3.24.2",
85
- "zod-validation-error": "^3.4.0",
86
- "vite": "^5.4.14",
87
- "esbuild": "^0.25.0",
88
- "@vitejs/plugin-react": "^4.3.2",
89
- "tailwindcss": "^3.4.17",
90
- "autoprefixer": "^10.4.20",
91
- "postcss": "^8.4.47",
92
- "@tailwindcss/typography": "^0.5.15"
93
  },
94
  "devDependencies": {
95
  "@replit/vite-plugin-cartographer": "^0.2.7",
 
41
  "@radix-ui/react-toggle": "^1.1.3",
42
  "@radix-ui/react-toggle-group": "^1.1.3",
43
  "@radix-ui/react-tooltip": "^1.2.0",
44
+ "@tailwindcss/typography": "^0.5.15",
45
  "@tanstack/react-query": "^5.60.5",
46
  "@types/d3": "^7.4.3",
47
+ "@vitejs/plugin-react": "^4.3.2",
48
+ "autoprefixer": "^10.4.20",
49
  "class-variance-authority": "^0.7.1",
50
  "clsx": "^2.1.1",
51
  "cmdk": "^1.1.1",
 
56
  "drizzle-orm": "^0.39.1",
57
  "drizzle-zod": "^0.7.0",
58
  "embla-carousel-react": "^8.6.0",
59
+ "esbuild": "^0.25.0",
60
  "express": "^4.21.2",
61
  "express-rate-limit": "^7.5.0",
62
  "express-session": "^1.18.1",
 
70
  "openai": "^5.1.0",
71
  "passport": "^0.7.0",
72
  "passport-local": "^1.0.0",
73
+ "postcss": "^8.4.47",
74
  "react": "^18.3.1",
75
  "react-day-picker": "^8.10.1",
76
  "react-dom": "^18.3.1",
 
81
  "react-resizable-panels": "^2.1.7",
82
  "recharts": "^2.15.2",
83
  "tailwind-merge": "^2.6.0",
84
+ "tailwindcss": "^3.4.17",
85
  "tailwindcss-animate": "^1.0.7",
86
  "tw-animate-css": "^1.2.5",
87
  "vaul": "^1.1.2",
88
+ "vite": "^5.4.14",
89
  "wouter": "^3.3.5",
90
  "ws": "^8.18.0",
91
  "zod": "^3.24.2",
92
+ "zod-validation-error": "^3.4.0"
 
 
 
 
 
 
 
93
  },
94
  "devDependencies": {
95
  "@replit/vite-plugin-cartographer": "^0.2.7",