pngwn commited on
Commit
d2aab3f
1 Parent(s): 5783e6e
.gitignore ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ node_modules
2
+
3
+ # Output
4
+ .output
5
+ .vercel
6
+ /.svelte-kit
7
+ /build
8
+
9
+ # OS
10
+ .DS_Store
11
+ Thumbs.db
12
+
13
+ # Env
14
+ .env
15
+ .env.*
16
+ !.env.example
17
+ !.env.test
18
+
19
+ # Vite
20
+ vite.config.js.timestamp-*
21
+ vite.config.ts.timestamp-*
.npmrc ADDED
@@ -0,0 +1 @@
 
 
1
+ engine-strict=true
.prettierignore ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ # Package Managers
2
+ package-lock.json
3
+ pnpm-lock.yaml
4
+ yarn.lock
.prettierrc ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "useTabs": true,
3
+ "singleQuote": true,
4
+ "trailingComma": "none",
5
+ "printWidth": 100,
6
+ "plugins": ["prettier-plugin-svelte"],
7
+ "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
8
+ }
Dockerfile ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.12-slim
2
+
3
+ WORKDIR /app
4
+
5
+ RUN apt-get update && apt-get install -y nodejs npm
6
+
7
+ COPY . /app
8
+
9
+ RUN pip install --no-cache-dir -r requirements.txt
10
+ RUN npm install
11
+ RUN npm run build
12
+ RUN ls -a
13
+
14
+ EXPOSE 7860
15
+ ENV PORT 4321
16
+
17
+ CMD ["python", "run.py"]
README.md CHANGED
@@ -5,6 +5,5 @@ colorFrom: green
5
  colorTo: gray
6
  sdk: docker
7
  pinned: false
 
8
  ---
9
-
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
5
  colorTo: gray
6
  sdk: docker
7
  pinned: false
8
+ app_port: 7860
9
  ---
 
 
package-lock.json ADDED
@@ -0,0 +1,2370 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "node-py-test",
3
+ "version": "0.0.1",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "node-py-test",
9
+ "version": "0.0.1",
10
+ "dependencies": {
11
+ "@sveltejs/adapter-node": "^5.2.0"
12
+ },
13
+ "devDependencies": {
14
+ "@fontsource/fira-mono": "^4.5.10",
15
+ "@neoconfetti/svelte": "^1.0.0",
16
+ "@sveltejs/adapter-auto": "^3.0.0",
17
+ "@sveltejs/kit": "^2.0.0",
18
+ "@sveltejs/vite-plugin-svelte": "^3.0.0",
19
+ "prettier": "^3.1.1",
20
+ "prettier-plugin-svelte": "^3.1.2",
21
+ "svelte": "^4.2.7",
22
+ "svelte-check": "^3.6.0",
23
+ "typescript": "^5.0.0",
24
+ "vite": "^5.0.3"
25
+ }
26
+ },
27
+ "node_modules/@ampproject/remapping": {
28
+ "version": "2.3.0",
29
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
30
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
31
+ "dependencies": {
32
+ "@jridgewell/gen-mapping": "^0.3.5",
33
+ "@jridgewell/trace-mapping": "^0.3.24"
34
+ },
35
+ "engines": {
36
+ "node": ">=6.0.0"
37
+ }
38
+ },
39
+ "node_modules/@esbuild/aix-ppc64": {
40
+ "version": "0.21.5",
41
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
42
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
43
+ "cpu": [
44
+ "ppc64"
45
+ ],
46
+ "optional": true,
47
+ "os": [
48
+ "aix"
49
+ ],
50
+ "engines": {
51
+ "node": ">=12"
52
+ }
53
+ },
54
+ "node_modules/@esbuild/android-arm": {
55
+ "version": "0.21.5",
56
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
57
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
58
+ "cpu": [
59
+ "arm"
60
+ ],
61
+ "optional": true,
62
+ "os": [
63
+ "android"
64
+ ],
65
+ "engines": {
66
+ "node": ">=12"
67
+ }
68
+ },
69
+ "node_modules/@esbuild/android-arm64": {
70
+ "version": "0.21.5",
71
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
72
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
73
+ "cpu": [
74
+ "arm64"
75
+ ],
76
+ "optional": true,
77
+ "os": [
78
+ "android"
79
+ ],
80
+ "engines": {
81
+ "node": ">=12"
82
+ }
83
+ },
84
+ "node_modules/@esbuild/android-x64": {
85
+ "version": "0.21.5",
86
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
87
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
88
+ "cpu": [
89
+ "x64"
90
+ ],
91
+ "optional": true,
92
+ "os": [
93
+ "android"
94
+ ],
95
+ "engines": {
96
+ "node": ">=12"
97
+ }
98
+ },
99
+ "node_modules/@esbuild/darwin-arm64": {
100
+ "version": "0.21.5",
101
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
102
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
103
+ "cpu": [
104
+ "arm64"
105
+ ],
106
+ "optional": true,
107
+ "os": [
108
+ "darwin"
109
+ ],
110
+ "engines": {
111
+ "node": ">=12"
112
+ }
113
+ },
114
+ "node_modules/@esbuild/darwin-x64": {
115
+ "version": "0.21.5",
116
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
117
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
118
+ "cpu": [
119
+ "x64"
120
+ ],
121
+ "optional": true,
122
+ "os": [
123
+ "darwin"
124
+ ],
125
+ "engines": {
126
+ "node": ">=12"
127
+ }
128
+ },
129
+ "node_modules/@esbuild/freebsd-arm64": {
130
+ "version": "0.21.5",
131
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
132
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
133
+ "cpu": [
134
+ "arm64"
135
+ ],
136
+ "optional": true,
137
+ "os": [
138
+ "freebsd"
139
+ ],
140
+ "engines": {
141
+ "node": ">=12"
142
+ }
143
+ },
144
+ "node_modules/@esbuild/freebsd-x64": {
145
+ "version": "0.21.5",
146
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
147
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
148
+ "cpu": [
149
+ "x64"
150
+ ],
151
+ "optional": true,
152
+ "os": [
153
+ "freebsd"
154
+ ],
155
+ "engines": {
156
+ "node": ">=12"
157
+ }
158
+ },
159
+ "node_modules/@esbuild/linux-arm": {
160
+ "version": "0.21.5",
161
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
162
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
163
+ "cpu": [
164
+ "arm"
165
+ ],
166
+ "optional": true,
167
+ "os": [
168
+ "linux"
169
+ ],
170
+ "engines": {
171
+ "node": ">=12"
172
+ }
173
+ },
174
+ "node_modules/@esbuild/linux-arm64": {
175
+ "version": "0.21.5",
176
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
177
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
178
+ "cpu": [
179
+ "arm64"
180
+ ],
181
+ "optional": true,
182
+ "os": [
183
+ "linux"
184
+ ],
185
+ "engines": {
186
+ "node": ">=12"
187
+ }
188
+ },
189
+ "node_modules/@esbuild/linux-ia32": {
190
+ "version": "0.21.5",
191
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
192
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
193
+ "cpu": [
194
+ "ia32"
195
+ ],
196
+ "optional": true,
197
+ "os": [
198
+ "linux"
199
+ ],
200
+ "engines": {
201
+ "node": ">=12"
202
+ }
203
+ },
204
+ "node_modules/@esbuild/linux-loong64": {
205
+ "version": "0.21.5",
206
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
207
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
208
+ "cpu": [
209
+ "loong64"
210
+ ],
211
+ "optional": true,
212
+ "os": [
213
+ "linux"
214
+ ],
215
+ "engines": {
216
+ "node": ">=12"
217
+ }
218
+ },
219
+ "node_modules/@esbuild/linux-mips64el": {
220
+ "version": "0.21.5",
221
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
222
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
223
+ "cpu": [
224
+ "mips64el"
225
+ ],
226
+ "optional": true,
227
+ "os": [
228
+ "linux"
229
+ ],
230
+ "engines": {
231
+ "node": ">=12"
232
+ }
233
+ },
234
+ "node_modules/@esbuild/linux-ppc64": {
235
+ "version": "0.21.5",
236
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
237
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
238
+ "cpu": [
239
+ "ppc64"
240
+ ],
241
+ "optional": true,
242
+ "os": [
243
+ "linux"
244
+ ],
245
+ "engines": {
246
+ "node": ">=12"
247
+ }
248
+ },
249
+ "node_modules/@esbuild/linux-riscv64": {
250
+ "version": "0.21.5",
251
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
252
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
253
+ "cpu": [
254
+ "riscv64"
255
+ ],
256
+ "optional": true,
257
+ "os": [
258
+ "linux"
259
+ ],
260
+ "engines": {
261
+ "node": ">=12"
262
+ }
263
+ },
264
+ "node_modules/@esbuild/linux-s390x": {
265
+ "version": "0.21.5",
266
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
267
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
268
+ "cpu": [
269
+ "s390x"
270
+ ],
271
+ "optional": true,
272
+ "os": [
273
+ "linux"
274
+ ],
275
+ "engines": {
276
+ "node": ">=12"
277
+ }
278
+ },
279
+ "node_modules/@esbuild/linux-x64": {
280
+ "version": "0.21.5",
281
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
282
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
283
+ "cpu": [
284
+ "x64"
285
+ ],
286
+ "optional": true,
287
+ "os": [
288
+ "linux"
289
+ ],
290
+ "engines": {
291
+ "node": ">=12"
292
+ }
293
+ },
294
+ "node_modules/@esbuild/netbsd-x64": {
295
+ "version": "0.21.5",
296
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
297
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
298
+ "cpu": [
299
+ "x64"
300
+ ],
301
+ "optional": true,
302
+ "os": [
303
+ "netbsd"
304
+ ],
305
+ "engines": {
306
+ "node": ">=12"
307
+ }
308
+ },
309
+ "node_modules/@esbuild/openbsd-x64": {
310
+ "version": "0.21.5",
311
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
312
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
313
+ "cpu": [
314
+ "x64"
315
+ ],
316
+ "optional": true,
317
+ "os": [
318
+ "openbsd"
319
+ ],
320
+ "engines": {
321
+ "node": ">=12"
322
+ }
323
+ },
324
+ "node_modules/@esbuild/sunos-x64": {
325
+ "version": "0.21.5",
326
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
327
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
328
+ "cpu": [
329
+ "x64"
330
+ ],
331
+ "optional": true,
332
+ "os": [
333
+ "sunos"
334
+ ],
335
+ "engines": {
336
+ "node": ">=12"
337
+ }
338
+ },
339
+ "node_modules/@esbuild/win32-arm64": {
340
+ "version": "0.21.5",
341
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
342
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
343
+ "cpu": [
344
+ "arm64"
345
+ ],
346
+ "optional": true,
347
+ "os": [
348
+ "win32"
349
+ ],
350
+ "engines": {
351
+ "node": ">=12"
352
+ }
353
+ },
354
+ "node_modules/@esbuild/win32-ia32": {
355
+ "version": "0.21.5",
356
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
357
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
358
+ "cpu": [
359
+ "ia32"
360
+ ],
361
+ "optional": true,
362
+ "os": [
363
+ "win32"
364
+ ],
365
+ "engines": {
366
+ "node": ">=12"
367
+ }
368
+ },
369
+ "node_modules/@esbuild/win32-x64": {
370
+ "version": "0.21.5",
371
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
372
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
373
+ "cpu": [
374
+ "x64"
375
+ ],
376
+ "optional": true,
377
+ "os": [
378
+ "win32"
379
+ ],
380
+ "engines": {
381
+ "node": ">=12"
382
+ }
383
+ },
384
+ "node_modules/@fontsource/fira-mono": {
385
+ "version": "4.5.10",
386
+ "resolved": "https://registry.npmjs.org/@fontsource/fira-mono/-/fira-mono-4.5.10.tgz",
387
+ "integrity": "sha512-bxUnRP8xptGRo8YXeY073DSpfK74XpSb0ZyRNpHV9WvLnJ7TwPOjZll8hTMin7zLC6iOp59pDZ8EQDj1gzgAQQ==",
388
+ "dev": true
389
+ },
390
+ "node_modules/@isaacs/cliui": {
391
+ "version": "8.0.2",
392
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
393
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
394
+ "dependencies": {
395
+ "string-width": "^5.1.2",
396
+ "string-width-cjs": "npm:string-width@^4.2.0",
397
+ "strip-ansi": "^7.0.1",
398
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
399
+ "wrap-ansi": "^8.1.0",
400
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
401
+ },
402
+ "engines": {
403
+ "node": ">=12"
404
+ }
405
+ },
406
+ "node_modules/@jridgewell/gen-mapping": {
407
+ "version": "0.3.5",
408
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
409
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
410
+ "dependencies": {
411
+ "@jridgewell/set-array": "^1.2.1",
412
+ "@jridgewell/sourcemap-codec": "^1.4.10",
413
+ "@jridgewell/trace-mapping": "^0.3.24"
414
+ },
415
+ "engines": {
416
+ "node": ">=6.0.0"
417
+ }
418
+ },
419
+ "node_modules/@jridgewell/resolve-uri": {
420
+ "version": "3.1.2",
421
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
422
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
423
+ "engines": {
424
+ "node": ">=6.0.0"
425
+ }
426
+ },
427
+ "node_modules/@jridgewell/set-array": {
428
+ "version": "1.2.1",
429
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
430
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
431
+ "engines": {
432
+ "node": ">=6.0.0"
433
+ }
434
+ },
435
+ "node_modules/@jridgewell/sourcemap-codec": {
436
+ "version": "1.5.0",
437
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
438
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
439
+ },
440
+ "node_modules/@jridgewell/trace-mapping": {
441
+ "version": "0.3.25",
442
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
443
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
444
+ "dependencies": {
445
+ "@jridgewell/resolve-uri": "^3.1.0",
446
+ "@jridgewell/sourcemap-codec": "^1.4.14"
447
+ }
448
+ },
449
+ "node_modules/@neoconfetti/svelte": {
450
+ "version": "1.0.0",
451
+ "resolved": "https://registry.npmjs.org/@neoconfetti/svelte/-/svelte-1.0.0.tgz",
452
+ "integrity": "sha512-SmksyaJAdSlMa9cTidVSIqYo1qti+WTsviNDwgjNVm+KQ3DRP2Df9umDIzC4vCcpEYY+chQe0i2IKnLw03AT8Q==",
453
+ "dev": true
454
+ },
455
+ "node_modules/@pkgjs/parseargs": {
456
+ "version": "0.11.0",
457
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
458
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
459
+ "optional": true,
460
+ "engines": {
461
+ "node": ">=14"
462
+ }
463
+ },
464
+ "node_modules/@polka/url": {
465
+ "version": "1.0.0-next.25",
466
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz",
467
+ "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ=="
468
+ },
469
+ "node_modules/@rollup/plugin-commonjs": {
470
+ "version": "26.0.1",
471
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.1.tgz",
472
+ "integrity": "sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==",
473
+ "dependencies": {
474
+ "@rollup/pluginutils": "^5.0.1",
475
+ "commondir": "^1.0.1",
476
+ "estree-walker": "^2.0.2",
477
+ "glob": "^10.4.1",
478
+ "is-reference": "1.2.1",
479
+ "magic-string": "^0.30.3"
480
+ },
481
+ "engines": {
482
+ "node": ">=16.0.0 || 14 >= 14.17"
483
+ },
484
+ "peerDependencies": {
485
+ "rollup": "^2.68.0||^3.0.0||^4.0.0"
486
+ },
487
+ "peerDependenciesMeta": {
488
+ "rollup": {
489
+ "optional": true
490
+ }
491
+ }
492
+ },
493
+ "node_modules/@rollup/plugin-commonjs/node_modules/brace-expansion": {
494
+ "version": "2.0.1",
495
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
496
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
497
+ "dependencies": {
498
+ "balanced-match": "^1.0.0"
499
+ }
500
+ },
501
+ "node_modules/@rollup/plugin-commonjs/node_modules/estree-walker": {
502
+ "version": "2.0.2",
503
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
504
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
505
+ },
506
+ "node_modules/@rollup/plugin-commonjs/node_modules/glob": {
507
+ "version": "10.4.5",
508
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
509
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
510
+ "dependencies": {
511
+ "foreground-child": "^3.1.0",
512
+ "jackspeak": "^3.1.2",
513
+ "minimatch": "^9.0.4",
514
+ "minipass": "^7.1.2",
515
+ "package-json-from-dist": "^1.0.0",
516
+ "path-scurry": "^1.11.1"
517
+ },
518
+ "bin": {
519
+ "glob": "dist/esm/bin.mjs"
520
+ },
521
+ "funding": {
522
+ "url": "https://github.com/sponsors/isaacs"
523
+ }
524
+ },
525
+ "node_modules/@rollup/plugin-commonjs/node_modules/is-reference": {
526
+ "version": "1.2.1",
527
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
528
+ "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
529
+ "dependencies": {
530
+ "@types/estree": "*"
531
+ }
532
+ },
533
+ "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": {
534
+ "version": "9.0.5",
535
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
536
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
537
+ "dependencies": {
538
+ "brace-expansion": "^2.0.1"
539
+ },
540
+ "engines": {
541
+ "node": ">=16 || 14 >=14.17"
542
+ },
543
+ "funding": {
544
+ "url": "https://github.com/sponsors/isaacs"
545
+ }
546
+ },
547
+ "node_modules/@rollup/plugin-json": {
548
+ "version": "6.1.0",
549
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz",
550
+ "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==",
551
+ "dependencies": {
552
+ "@rollup/pluginutils": "^5.1.0"
553
+ },
554
+ "engines": {
555
+ "node": ">=14.0.0"
556
+ },
557
+ "peerDependencies": {
558
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
559
+ },
560
+ "peerDependenciesMeta": {
561
+ "rollup": {
562
+ "optional": true
563
+ }
564
+ }
565
+ },
566
+ "node_modules/@rollup/plugin-node-resolve": {
567
+ "version": "15.2.3",
568
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz",
569
+ "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==",
570
+ "dependencies": {
571
+ "@rollup/pluginutils": "^5.0.1",
572
+ "@types/resolve": "1.20.2",
573
+ "deepmerge": "^4.2.2",
574
+ "is-builtin-module": "^3.2.1",
575
+ "is-module": "^1.0.0",
576
+ "resolve": "^1.22.1"
577
+ },
578
+ "engines": {
579
+ "node": ">=14.0.0"
580
+ },
581
+ "peerDependencies": {
582
+ "rollup": "^2.78.0||^3.0.0||^4.0.0"
583
+ },
584
+ "peerDependenciesMeta": {
585
+ "rollup": {
586
+ "optional": true
587
+ }
588
+ }
589
+ },
590
+ "node_modules/@rollup/pluginutils": {
591
+ "version": "5.1.0",
592
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
593
+ "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
594
+ "dependencies": {
595
+ "@types/estree": "^1.0.0",
596
+ "estree-walker": "^2.0.2",
597
+ "picomatch": "^2.3.1"
598
+ },
599
+ "engines": {
600
+ "node": ">=14.0.0"
601
+ },
602
+ "peerDependencies": {
603
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
604
+ },
605
+ "peerDependenciesMeta": {
606
+ "rollup": {
607
+ "optional": true
608
+ }
609
+ }
610
+ },
611
+ "node_modules/@rollup/pluginutils/node_modules/estree-walker": {
612
+ "version": "2.0.2",
613
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
614
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
615
+ },
616
+ "node_modules/@rollup/rollup-android-arm-eabi": {
617
+ "version": "4.19.0",
618
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.0.tgz",
619
+ "integrity": "sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==",
620
+ "cpu": [
621
+ "arm"
622
+ ],
623
+ "optional": true,
624
+ "os": [
625
+ "android"
626
+ ]
627
+ },
628
+ "node_modules/@rollup/rollup-android-arm64": {
629
+ "version": "4.19.0",
630
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.0.tgz",
631
+ "integrity": "sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==",
632
+ "cpu": [
633
+ "arm64"
634
+ ],
635
+ "optional": true,
636
+ "os": [
637
+ "android"
638
+ ]
639
+ },
640
+ "node_modules/@rollup/rollup-darwin-arm64": {
641
+ "version": "4.19.0",
642
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.0.tgz",
643
+ "integrity": "sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==",
644
+ "cpu": [
645
+ "arm64"
646
+ ],
647
+ "optional": true,
648
+ "os": [
649
+ "darwin"
650
+ ]
651
+ },
652
+ "node_modules/@rollup/rollup-darwin-x64": {
653
+ "version": "4.19.0",
654
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.0.tgz",
655
+ "integrity": "sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==",
656
+ "cpu": [
657
+ "x64"
658
+ ],
659
+ "optional": true,
660
+ "os": [
661
+ "darwin"
662
+ ]
663
+ },
664
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
665
+ "version": "4.19.0",
666
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.0.tgz",
667
+ "integrity": "sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==",
668
+ "cpu": [
669
+ "arm"
670
+ ],
671
+ "optional": true,
672
+ "os": [
673
+ "linux"
674
+ ]
675
+ },
676
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
677
+ "version": "4.19.0",
678
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.0.tgz",
679
+ "integrity": "sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==",
680
+ "cpu": [
681
+ "arm"
682
+ ],
683
+ "optional": true,
684
+ "os": [
685
+ "linux"
686
+ ]
687
+ },
688
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
689
+ "version": "4.19.0",
690
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.0.tgz",
691
+ "integrity": "sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==",
692
+ "cpu": [
693
+ "arm64"
694
+ ],
695
+ "optional": true,
696
+ "os": [
697
+ "linux"
698
+ ]
699
+ },
700
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
701
+ "version": "4.19.0",
702
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.0.tgz",
703
+ "integrity": "sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==",
704
+ "cpu": [
705
+ "arm64"
706
+ ],
707
+ "optional": true,
708
+ "os": [
709
+ "linux"
710
+ ]
711
+ },
712
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
713
+ "version": "4.19.0",
714
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.0.tgz",
715
+ "integrity": "sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==",
716
+ "cpu": [
717
+ "ppc64"
718
+ ],
719
+ "optional": true,
720
+ "os": [
721
+ "linux"
722
+ ]
723
+ },
724
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
725
+ "version": "4.19.0",
726
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.0.tgz",
727
+ "integrity": "sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==",
728
+ "cpu": [
729
+ "riscv64"
730
+ ],
731
+ "optional": true,
732
+ "os": [
733
+ "linux"
734
+ ]
735
+ },
736
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
737
+ "version": "4.19.0",
738
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.0.tgz",
739
+ "integrity": "sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==",
740
+ "cpu": [
741
+ "s390x"
742
+ ],
743
+ "optional": true,
744
+ "os": [
745
+ "linux"
746
+ ]
747
+ },
748
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
749
+ "version": "4.19.0",
750
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz",
751
+ "integrity": "sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==",
752
+ "cpu": [
753
+ "x64"
754
+ ],
755
+ "optional": true,
756
+ "os": [
757
+ "linux"
758
+ ]
759
+ },
760
+ "node_modules/@rollup/rollup-linux-x64-musl": {
761
+ "version": "4.19.0",
762
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz",
763
+ "integrity": "sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==",
764
+ "cpu": [
765
+ "x64"
766
+ ],
767
+ "optional": true,
768
+ "os": [
769
+ "linux"
770
+ ]
771
+ },
772
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
773
+ "version": "4.19.0",
774
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.0.tgz",
775
+ "integrity": "sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==",
776
+ "cpu": [
777
+ "arm64"
778
+ ],
779
+ "optional": true,
780
+ "os": [
781
+ "win32"
782
+ ]
783
+ },
784
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
785
+ "version": "4.19.0",
786
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.0.tgz",
787
+ "integrity": "sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==",
788
+ "cpu": [
789
+ "ia32"
790
+ ],
791
+ "optional": true,
792
+ "os": [
793
+ "win32"
794
+ ]
795
+ },
796
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
797
+ "version": "4.19.0",
798
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz",
799
+ "integrity": "sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==",
800
+ "cpu": [
801
+ "x64"
802
+ ],
803
+ "optional": true,
804
+ "os": [
805
+ "win32"
806
+ ]
807
+ },
808
+ "node_modules/@sveltejs/adapter-auto": {
809
+ "version": "3.2.2",
810
+ "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.2.2.tgz",
811
+ "integrity": "sha512-Mso5xPCA8zgcKrv+QioVlqMZkyUQ5MjDJiEPuG/Z7cV/5tmwV7LmcVWk5tZ+H0NCOV1x12AsoSpt/CwFwuVXMA==",
812
+ "dev": true,
813
+ "dependencies": {
814
+ "import-meta-resolve": "^4.1.0"
815
+ },
816
+ "peerDependencies": {
817
+ "@sveltejs/kit": "^2.0.0"
818
+ }
819
+ },
820
+ "node_modules/@sveltejs/adapter-node": {
821
+ "version": "5.2.0",
822
+ "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-5.2.0.tgz",
823
+ "integrity": "sha512-HVZoei2078XSyPmvdTHE03VXDUD0ytTvMuMHMQP0j6zX4nPDpCcKrgvU7baEblMeCCMdM/shQvstFxOJPQKlUQ==",
824
+ "dependencies": {
825
+ "@rollup/plugin-commonjs": "^26.0.1",
826
+ "@rollup/plugin-json": "^6.1.0",
827
+ "@rollup/plugin-node-resolve": "^15.2.3",
828
+ "rollup": "^4.9.5"
829
+ },
830
+ "peerDependencies": {
831
+ "@sveltejs/kit": "^2.4.0"
832
+ }
833
+ },
834
+ "node_modules/@sveltejs/kit": {
835
+ "version": "2.5.18",
836
+ "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.5.18.tgz",
837
+ "integrity": "sha512-+g06hvpVAnH7b4CDjhnTDgFWBKBiQJpuSmQeGYOuzbO3SC3tdYjRNlDCrafvDtKbGiT2uxY5Dn9qdEUGVZdWOQ==",
838
+ "hasInstallScript": true,
839
+ "dependencies": {
840
+ "@types/cookie": "^0.6.0",
841
+ "cookie": "^0.6.0",
842
+ "devalue": "^5.0.0",
843
+ "esm-env": "^1.0.0",
844
+ "import-meta-resolve": "^4.1.0",
845
+ "kleur": "^4.1.5",
846
+ "magic-string": "^0.30.5",
847
+ "mrmime": "^2.0.0",
848
+ "sade": "^1.8.1",
849
+ "set-cookie-parser": "^2.6.0",
850
+ "sirv": "^2.0.4",
851
+ "tiny-glob": "^0.2.9"
852
+ },
853
+ "bin": {
854
+ "svelte-kit": "svelte-kit.js"
855
+ },
856
+ "engines": {
857
+ "node": ">=18.13"
858
+ },
859
+ "peerDependencies": {
860
+ "@sveltejs/vite-plugin-svelte": "^3.0.0",
861
+ "svelte": "^4.0.0 || ^5.0.0-next.0",
862
+ "vite": "^5.0.3"
863
+ }
864
+ },
865
+ "node_modules/@sveltejs/vite-plugin-svelte": {
866
+ "version": "3.1.1",
867
+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.1.tgz",
868
+ "integrity": "sha512-rimpFEAboBBHIlzISibg94iP09k/KYdHgVhJlcsTfn7KMBhc70jFX/GRWkRdFCc2fdnk+4+Bdfej23cMDnJS6A==",
869
+ "dependencies": {
870
+ "@sveltejs/vite-plugin-svelte-inspector": "^2.1.0",
871
+ "debug": "^4.3.4",
872
+ "deepmerge": "^4.3.1",
873
+ "kleur": "^4.1.5",
874
+ "magic-string": "^0.30.10",
875
+ "svelte-hmr": "^0.16.0",
876
+ "vitefu": "^0.2.5"
877
+ },
878
+ "engines": {
879
+ "node": "^18.0.0 || >=20"
880
+ },
881
+ "peerDependencies": {
882
+ "svelte": "^4.0.0 || ^5.0.0-next.0",
883
+ "vite": "^5.0.0"
884
+ }
885
+ },
886
+ "node_modules/@sveltejs/vite-plugin-svelte-inspector": {
887
+ "version": "2.1.0",
888
+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.1.0.tgz",
889
+ "integrity": "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==",
890
+ "dependencies": {
891
+ "debug": "^4.3.4"
892
+ },
893
+ "engines": {
894
+ "node": "^18.0.0 || >=20"
895
+ },
896
+ "peerDependencies": {
897
+ "@sveltejs/vite-plugin-svelte": "^3.0.0",
898
+ "svelte": "^4.0.0 || ^5.0.0-next.0",
899
+ "vite": "^5.0.0"
900
+ }
901
+ },
902
+ "node_modules/@types/cookie": {
903
+ "version": "0.6.0",
904
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
905
+ "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="
906
+ },
907
+ "node_modules/@types/estree": {
908
+ "version": "1.0.5",
909
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
910
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
911
+ },
912
+ "node_modules/@types/pug": {
913
+ "version": "2.0.10",
914
+ "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz",
915
+ "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==",
916
+ "dev": true
917
+ },
918
+ "node_modules/@types/resolve": {
919
+ "version": "1.20.2",
920
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
921
+ "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q=="
922
+ },
923
+ "node_modules/acorn": {
924
+ "version": "8.12.1",
925
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
926
+ "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
927
+ "bin": {
928
+ "acorn": "bin/acorn"
929
+ },
930
+ "engines": {
931
+ "node": ">=0.4.0"
932
+ }
933
+ },
934
+ "node_modules/ansi-regex": {
935
+ "version": "6.0.1",
936
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
937
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
938
+ "engines": {
939
+ "node": ">=12"
940
+ },
941
+ "funding": {
942
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
943
+ }
944
+ },
945
+ "node_modules/ansi-styles": {
946
+ "version": "6.2.1",
947
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
948
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
949
+ "engines": {
950
+ "node": ">=12"
951
+ },
952
+ "funding": {
953
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
954
+ }
955
+ },
956
+ "node_modules/anymatch": {
957
+ "version": "3.1.3",
958
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
959
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
960
+ "dev": true,
961
+ "dependencies": {
962
+ "normalize-path": "^3.0.0",
963
+ "picomatch": "^2.0.4"
964
+ },
965
+ "engines": {
966
+ "node": ">= 8"
967
+ }
968
+ },
969
+ "node_modules/aria-query": {
970
+ "version": "5.3.0",
971
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
972
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
973
+ "dependencies": {
974
+ "dequal": "^2.0.3"
975
+ }
976
+ },
977
+ "node_modules/axobject-query": {
978
+ "version": "4.1.0",
979
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
980
+ "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
981
+ "engines": {
982
+ "node": ">= 0.4"
983
+ }
984
+ },
985
+ "node_modules/balanced-match": {
986
+ "version": "1.0.2",
987
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
988
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
989
+ },
990
+ "node_modules/binary-extensions": {
991
+ "version": "2.3.0",
992
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
993
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
994
+ "dev": true,
995
+ "engines": {
996
+ "node": ">=8"
997
+ },
998
+ "funding": {
999
+ "url": "https://github.com/sponsors/sindresorhus"
1000
+ }
1001
+ },
1002
+ "node_modules/brace-expansion": {
1003
+ "version": "1.1.11",
1004
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1005
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1006
+ "dev": true,
1007
+ "dependencies": {
1008
+ "balanced-match": "^1.0.0",
1009
+ "concat-map": "0.0.1"
1010
+ }
1011
+ },
1012
+ "node_modules/braces": {
1013
+ "version": "3.0.3",
1014
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
1015
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
1016
+ "dev": true,
1017
+ "dependencies": {
1018
+ "fill-range": "^7.1.1"
1019
+ },
1020
+ "engines": {
1021
+ "node": ">=8"
1022
+ }
1023
+ },
1024
+ "node_modules/buffer-crc32": {
1025
+ "version": "1.0.0",
1026
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz",
1027
+ "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==",
1028
+ "dev": true,
1029
+ "engines": {
1030
+ "node": ">=8.0.0"
1031
+ }
1032
+ },
1033
+ "node_modules/builtin-modules": {
1034
+ "version": "3.3.0",
1035
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
1036
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
1037
+ "engines": {
1038
+ "node": ">=6"
1039
+ },
1040
+ "funding": {
1041
+ "url": "https://github.com/sponsors/sindresorhus"
1042
+ }
1043
+ },
1044
+ "node_modules/chokidar": {
1045
+ "version": "3.6.0",
1046
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
1047
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
1048
+ "dev": true,
1049
+ "dependencies": {
1050
+ "anymatch": "~3.1.2",
1051
+ "braces": "~3.0.2",
1052
+ "glob-parent": "~5.1.2",
1053
+ "is-binary-path": "~2.1.0",
1054
+ "is-glob": "~4.0.1",
1055
+ "normalize-path": "~3.0.0",
1056
+ "readdirp": "~3.6.0"
1057
+ },
1058
+ "engines": {
1059
+ "node": ">= 8.10.0"
1060
+ },
1061
+ "funding": {
1062
+ "url": "https://paulmillr.com/funding/"
1063
+ },
1064
+ "optionalDependencies": {
1065
+ "fsevents": "~2.3.2"
1066
+ }
1067
+ },
1068
+ "node_modules/code-red": {
1069
+ "version": "1.0.4",
1070
+ "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
1071
+ "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==",
1072
+ "dependencies": {
1073
+ "@jridgewell/sourcemap-codec": "^1.4.15",
1074
+ "@types/estree": "^1.0.1",
1075
+ "acorn": "^8.10.0",
1076
+ "estree-walker": "^3.0.3",
1077
+ "periscopic": "^3.1.0"
1078
+ }
1079
+ },
1080
+ "node_modules/color-convert": {
1081
+ "version": "2.0.1",
1082
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1083
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1084
+ "dependencies": {
1085
+ "color-name": "~1.1.4"
1086
+ },
1087
+ "engines": {
1088
+ "node": ">=7.0.0"
1089
+ }
1090
+ },
1091
+ "node_modules/color-name": {
1092
+ "version": "1.1.4",
1093
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1094
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
1095
+ },
1096
+ "node_modules/commondir": {
1097
+ "version": "1.0.1",
1098
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
1099
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
1100
+ },
1101
+ "node_modules/concat-map": {
1102
+ "version": "0.0.1",
1103
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1104
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
1105
+ "dev": true
1106
+ },
1107
+ "node_modules/cookie": {
1108
+ "version": "0.6.0",
1109
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
1110
+ "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
1111
+ "engines": {
1112
+ "node": ">= 0.6"
1113
+ }
1114
+ },
1115
+ "node_modules/cross-spawn": {
1116
+ "version": "7.0.3",
1117
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
1118
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
1119
+ "dependencies": {
1120
+ "path-key": "^3.1.0",
1121
+ "shebang-command": "^2.0.0",
1122
+ "which": "^2.0.1"
1123
+ },
1124
+ "engines": {
1125
+ "node": ">= 8"
1126
+ }
1127
+ },
1128
+ "node_modules/css-tree": {
1129
+ "version": "2.3.1",
1130
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
1131
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
1132
+ "dependencies": {
1133
+ "mdn-data": "2.0.30",
1134
+ "source-map-js": "^1.0.1"
1135
+ },
1136
+ "engines": {
1137
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
1138
+ }
1139
+ },
1140
+ "node_modules/debug": {
1141
+ "version": "4.3.5",
1142
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
1143
+ "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
1144
+ "dependencies": {
1145
+ "ms": "2.1.2"
1146
+ },
1147
+ "engines": {
1148
+ "node": ">=6.0"
1149
+ },
1150
+ "peerDependenciesMeta": {
1151
+ "supports-color": {
1152
+ "optional": true
1153
+ }
1154
+ }
1155
+ },
1156
+ "node_modules/deepmerge": {
1157
+ "version": "4.3.1",
1158
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
1159
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
1160
+ "engines": {
1161
+ "node": ">=0.10.0"
1162
+ }
1163
+ },
1164
+ "node_modules/dequal": {
1165
+ "version": "2.0.3",
1166
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
1167
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
1168
+ "engines": {
1169
+ "node": ">=6"
1170
+ }
1171
+ },
1172
+ "node_modules/detect-indent": {
1173
+ "version": "6.1.0",
1174
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
1175
+ "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
1176
+ "dev": true,
1177
+ "engines": {
1178
+ "node": ">=8"
1179
+ }
1180
+ },
1181
+ "node_modules/devalue": {
1182
+ "version": "5.0.0",
1183
+ "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.0.0.tgz",
1184
+ "integrity": "sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA=="
1185
+ },
1186
+ "node_modules/eastasianwidth": {
1187
+ "version": "0.2.0",
1188
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
1189
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
1190
+ },
1191
+ "node_modules/emoji-regex": {
1192
+ "version": "9.2.2",
1193
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
1194
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
1195
+ },
1196
+ "node_modules/es6-promise": {
1197
+ "version": "3.3.1",
1198
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
1199
+ "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==",
1200
+ "dev": true
1201
+ },
1202
+ "node_modules/esbuild": {
1203
+ "version": "0.21.5",
1204
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
1205
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
1206
+ "hasInstallScript": true,
1207
+ "bin": {
1208
+ "esbuild": "bin/esbuild"
1209
+ },
1210
+ "engines": {
1211
+ "node": ">=12"
1212
+ },
1213
+ "optionalDependencies": {
1214
+ "@esbuild/aix-ppc64": "0.21.5",
1215
+ "@esbuild/android-arm": "0.21.5",
1216
+ "@esbuild/android-arm64": "0.21.5",
1217
+ "@esbuild/android-x64": "0.21.5",
1218
+ "@esbuild/darwin-arm64": "0.21.5",
1219
+ "@esbuild/darwin-x64": "0.21.5",
1220
+ "@esbuild/freebsd-arm64": "0.21.5",
1221
+ "@esbuild/freebsd-x64": "0.21.5",
1222
+ "@esbuild/linux-arm": "0.21.5",
1223
+ "@esbuild/linux-arm64": "0.21.5",
1224
+ "@esbuild/linux-ia32": "0.21.5",
1225
+ "@esbuild/linux-loong64": "0.21.5",
1226
+ "@esbuild/linux-mips64el": "0.21.5",
1227
+ "@esbuild/linux-ppc64": "0.21.5",
1228
+ "@esbuild/linux-riscv64": "0.21.5",
1229
+ "@esbuild/linux-s390x": "0.21.5",
1230
+ "@esbuild/linux-x64": "0.21.5",
1231
+ "@esbuild/netbsd-x64": "0.21.5",
1232
+ "@esbuild/openbsd-x64": "0.21.5",
1233
+ "@esbuild/sunos-x64": "0.21.5",
1234
+ "@esbuild/win32-arm64": "0.21.5",
1235
+ "@esbuild/win32-ia32": "0.21.5",
1236
+ "@esbuild/win32-x64": "0.21.5"
1237
+ }
1238
+ },
1239
+ "node_modules/esm-env": {
1240
+ "version": "1.0.0",
1241
+ "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz",
1242
+ "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA=="
1243
+ },
1244
+ "node_modules/estree-walker": {
1245
+ "version": "3.0.3",
1246
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
1247
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
1248
+ "dependencies": {
1249
+ "@types/estree": "^1.0.0"
1250
+ }
1251
+ },
1252
+ "node_modules/fill-range": {
1253
+ "version": "7.1.1",
1254
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
1255
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
1256
+ "dev": true,
1257
+ "dependencies": {
1258
+ "to-regex-range": "^5.0.1"
1259
+ },
1260
+ "engines": {
1261
+ "node": ">=8"
1262
+ }
1263
+ },
1264
+ "node_modules/foreground-child": {
1265
+ "version": "3.2.1",
1266
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz",
1267
+ "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
1268
+ "dependencies": {
1269
+ "cross-spawn": "^7.0.0",
1270
+ "signal-exit": "^4.0.1"
1271
+ },
1272
+ "engines": {
1273
+ "node": ">=14"
1274
+ },
1275
+ "funding": {
1276
+ "url": "https://github.com/sponsors/isaacs"
1277
+ }
1278
+ },
1279
+ "node_modules/fs.realpath": {
1280
+ "version": "1.0.0",
1281
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1282
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
1283
+ "dev": true
1284
+ },
1285
+ "node_modules/fsevents": {
1286
+ "version": "2.3.3",
1287
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
1288
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1289
+ "hasInstallScript": true,
1290
+ "optional": true,
1291
+ "os": [
1292
+ "darwin"
1293
+ ],
1294
+ "engines": {
1295
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1296
+ }
1297
+ },
1298
+ "node_modules/function-bind": {
1299
+ "version": "1.1.2",
1300
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
1301
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
1302
+ "funding": {
1303
+ "url": "https://github.com/sponsors/ljharb"
1304
+ }
1305
+ },
1306
+ "node_modules/glob": {
1307
+ "version": "7.2.3",
1308
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
1309
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
1310
+ "deprecated": "Glob versions prior to v9 are no longer supported",
1311
+ "dev": true,
1312
+ "dependencies": {
1313
+ "fs.realpath": "^1.0.0",
1314
+ "inflight": "^1.0.4",
1315
+ "inherits": "2",
1316
+ "minimatch": "^3.1.1",
1317
+ "once": "^1.3.0",
1318
+ "path-is-absolute": "^1.0.0"
1319
+ },
1320
+ "engines": {
1321
+ "node": "*"
1322
+ },
1323
+ "funding": {
1324
+ "url": "https://github.com/sponsors/isaacs"
1325
+ }
1326
+ },
1327
+ "node_modules/glob-parent": {
1328
+ "version": "5.1.2",
1329
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1330
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1331
+ "dev": true,
1332
+ "dependencies": {
1333
+ "is-glob": "^4.0.1"
1334
+ },
1335
+ "engines": {
1336
+ "node": ">= 6"
1337
+ }
1338
+ },
1339
+ "node_modules/globalyzer": {
1340
+ "version": "0.1.0",
1341
+ "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
1342
+ "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q=="
1343
+ },
1344
+ "node_modules/globrex": {
1345
+ "version": "0.1.2",
1346
+ "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
1347
+ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg=="
1348
+ },
1349
+ "node_modules/graceful-fs": {
1350
+ "version": "4.2.11",
1351
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
1352
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
1353
+ "dev": true
1354
+ },
1355
+ "node_modules/hasown": {
1356
+ "version": "2.0.2",
1357
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
1358
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
1359
+ "dependencies": {
1360
+ "function-bind": "^1.1.2"
1361
+ },
1362
+ "engines": {
1363
+ "node": ">= 0.4"
1364
+ }
1365
+ },
1366
+ "node_modules/import-meta-resolve": {
1367
+ "version": "4.1.0",
1368
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
1369
+ "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==",
1370
+ "funding": {
1371
+ "type": "github",
1372
+ "url": "https://github.com/sponsors/wooorm"
1373
+ }
1374
+ },
1375
+ "node_modules/inflight": {
1376
+ "version": "1.0.6",
1377
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1378
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1379
+ "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.",
1380
+ "dev": true,
1381
+ "dependencies": {
1382
+ "once": "^1.3.0",
1383
+ "wrappy": "1"
1384
+ }
1385
+ },
1386
+ "node_modules/inherits": {
1387
+ "version": "2.0.4",
1388
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1389
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1390
+ "dev": true
1391
+ },
1392
+ "node_modules/is-binary-path": {
1393
+ "version": "2.1.0",
1394
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1395
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1396
+ "dev": true,
1397
+ "dependencies": {
1398
+ "binary-extensions": "^2.0.0"
1399
+ },
1400
+ "engines": {
1401
+ "node": ">=8"
1402
+ }
1403
+ },
1404
+ "node_modules/is-builtin-module": {
1405
+ "version": "3.2.1",
1406
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
1407
+ "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
1408
+ "dependencies": {
1409
+ "builtin-modules": "^3.3.0"
1410
+ },
1411
+ "engines": {
1412
+ "node": ">=6"
1413
+ },
1414
+ "funding": {
1415
+ "url": "https://github.com/sponsors/sindresorhus"
1416
+ }
1417
+ },
1418
+ "node_modules/is-core-module": {
1419
+ "version": "2.15.0",
1420
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz",
1421
+ "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==",
1422
+ "dependencies": {
1423
+ "hasown": "^2.0.2"
1424
+ },
1425
+ "engines": {
1426
+ "node": ">= 0.4"
1427
+ },
1428
+ "funding": {
1429
+ "url": "https://github.com/sponsors/ljharb"
1430
+ }
1431
+ },
1432
+ "node_modules/is-extglob": {
1433
+ "version": "2.1.1",
1434
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1435
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1436
+ "dev": true,
1437
+ "engines": {
1438
+ "node": ">=0.10.0"
1439
+ }
1440
+ },
1441
+ "node_modules/is-fullwidth-code-point": {
1442
+ "version": "3.0.0",
1443
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1444
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1445
+ "engines": {
1446
+ "node": ">=8"
1447
+ }
1448
+ },
1449
+ "node_modules/is-glob": {
1450
+ "version": "4.0.3",
1451
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1452
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1453
+ "dev": true,
1454
+ "dependencies": {
1455
+ "is-extglob": "^2.1.1"
1456
+ },
1457
+ "engines": {
1458
+ "node": ">=0.10.0"
1459
+ }
1460
+ },
1461
+ "node_modules/is-module": {
1462
+ "version": "1.0.0",
1463
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
1464
+ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="
1465
+ },
1466
+ "node_modules/is-number": {
1467
+ "version": "7.0.0",
1468
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1469
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1470
+ "dev": true,
1471
+ "engines": {
1472
+ "node": ">=0.12.0"
1473
+ }
1474
+ },
1475
+ "node_modules/is-reference": {
1476
+ "version": "3.0.2",
1477
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz",
1478
+ "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==",
1479
+ "dependencies": {
1480
+ "@types/estree": "*"
1481
+ }
1482
+ },
1483
+ "node_modules/isexe": {
1484
+ "version": "2.0.0",
1485
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1486
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
1487
+ },
1488
+ "node_modules/jackspeak": {
1489
+ "version": "3.4.3",
1490
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
1491
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
1492
+ "dependencies": {
1493
+ "@isaacs/cliui": "^8.0.2"
1494
+ },
1495
+ "funding": {
1496
+ "url": "https://github.com/sponsors/isaacs"
1497
+ },
1498
+ "optionalDependencies": {
1499
+ "@pkgjs/parseargs": "^0.11.0"
1500
+ }
1501
+ },
1502
+ "node_modules/kleur": {
1503
+ "version": "4.1.5",
1504
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
1505
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
1506
+ "engines": {
1507
+ "node": ">=6"
1508
+ }
1509
+ },
1510
+ "node_modules/locate-character": {
1511
+ "version": "3.0.0",
1512
+ "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
1513
+ "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="
1514
+ },
1515
+ "node_modules/lru-cache": {
1516
+ "version": "10.4.3",
1517
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
1518
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="
1519
+ },
1520
+ "node_modules/magic-string": {
1521
+ "version": "0.30.10",
1522
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
1523
+ "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
1524
+ "dependencies": {
1525
+ "@jridgewell/sourcemap-codec": "^1.4.15"
1526
+ }
1527
+ },
1528
+ "node_modules/mdn-data": {
1529
+ "version": "2.0.30",
1530
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
1531
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="
1532
+ },
1533
+ "node_modules/min-indent": {
1534
+ "version": "1.0.1",
1535
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
1536
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
1537
+ "dev": true,
1538
+ "engines": {
1539
+ "node": ">=4"
1540
+ }
1541
+ },
1542
+ "node_modules/minimatch": {
1543
+ "version": "3.1.2",
1544
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1545
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1546
+ "dev": true,
1547
+ "dependencies": {
1548
+ "brace-expansion": "^1.1.7"
1549
+ },
1550
+ "engines": {
1551
+ "node": "*"
1552
+ }
1553
+ },
1554
+ "node_modules/minimist": {
1555
+ "version": "1.2.8",
1556
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
1557
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
1558
+ "dev": true,
1559
+ "funding": {
1560
+ "url": "https://github.com/sponsors/ljharb"
1561
+ }
1562
+ },
1563
+ "node_modules/minipass": {
1564
+ "version": "7.1.2",
1565
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
1566
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
1567
+ "engines": {
1568
+ "node": ">=16 || 14 >=14.17"
1569
+ }
1570
+ },
1571
+ "node_modules/mkdirp": {
1572
+ "version": "0.5.6",
1573
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
1574
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
1575
+ "dev": true,
1576
+ "dependencies": {
1577
+ "minimist": "^1.2.6"
1578
+ },
1579
+ "bin": {
1580
+ "mkdirp": "bin/cmd.js"
1581
+ }
1582
+ },
1583
+ "node_modules/mri": {
1584
+ "version": "1.2.0",
1585
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
1586
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
1587
+ "engines": {
1588
+ "node": ">=4"
1589
+ }
1590
+ },
1591
+ "node_modules/mrmime": {
1592
+ "version": "2.0.0",
1593
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
1594
+ "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
1595
+ "engines": {
1596
+ "node": ">=10"
1597
+ }
1598
+ },
1599
+ "node_modules/ms": {
1600
+ "version": "2.1.2",
1601
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1602
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1603
+ },
1604
+ "node_modules/nanoid": {
1605
+ "version": "3.3.7",
1606
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
1607
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
1608
+ "funding": [
1609
+ {
1610
+ "type": "github",
1611
+ "url": "https://github.com/sponsors/ai"
1612
+ }
1613
+ ],
1614
+ "bin": {
1615
+ "nanoid": "bin/nanoid.cjs"
1616
+ },
1617
+ "engines": {
1618
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1619
+ }
1620
+ },
1621
+ "node_modules/normalize-path": {
1622
+ "version": "3.0.0",
1623
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1624
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1625
+ "dev": true,
1626
+ "engines": {
1627
+ "node": ">=0.10.0"
1628
+ }
1629
+ },
1630
+ "node_modules/once": {
1631
+ "version": "1.4.0",
1632
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1633
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1634
+ "dev": true,
1635
+ "dependencies": {
1636
+ "wrappy": "1"
1637
+ }
1638
+ },
1639
+ "node_modules/package-json-from-dist": {
1640
+ "version": "1.0.0",
1641
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
1642
+ "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw=="
1643
+ },
1644
+ "node_modules/path-is-absolute": {
1645
+ "version": "1.0.1",
1646
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1647
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1648
+ "dev": true,
1649
+ "engines": {
1650
+ "node": ">=0.10.0"
1651
+ }
1652
+ },
1653
+ "node_modules/path-key": {
1654
+ "version": "3.1.1",
1655
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1656
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1657
+ "engines": {
1658
+ "node": ">=8"
1659
+ }
1660
+ },
1661
+ "node_modules/path-parse": {
1662
+ "version": "1.0.7",
1663
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1664
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
1665
+ },
1666
+ "node_modules/path-scurry": {
1667
+ "version": "1.11.1",
1668
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
1669
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
1670
+ "dependencies": {
1671
+ "lru-cache": "^10.2.0",
1672
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
1673
+ },
1674
+ "engines": {
1675
+ "node": ">=16 || 14 >=14.18"
1676
+ },
1677
+ "funding": {
1678
+ "url": "https://github.com/sponsors/isaacs"
1679
+ }
1680
+ },
1681
+ "node_modules/periscopic": {
1682
+ "version": "3.1.0",
1683
+ "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz",
1684
+ "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==",
1685
+ "dependencies": {
1686
+ "@types/estree": "^1.0.0",
1687
+ "estree-walker": "^3.0.0",
1688
+ "is-reference": "^3.0.0"
1689
+ }
1690
+ },
1691
+ "node_modules/picocolors": {
1692
+ "version": "1.0.1",
1693
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
1694
+ "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
1695
+ },
1696
+ "node_modules/picomatch": {
1697
+ "version": "2.3.1",
1698
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1699
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1700
+ "engines": {
1701
+ "node": ">=8.6"
1702
+ },
1703
+ "funding": {
1704
+ "url": "https://github.com/sponsors/jonschlinkert"
1705
+ }
1706
+ },
1707
+ "node_modules/postcss": {
1708
+ "version": "8.4.40",
1709
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz",
1710
+ "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==",
1711
+ "funding": [
1712
+ {
1713
+ "type": "opencollective",
1714
+ "url": "https://opencollective.com/postcss/"
1715
+ },
1716
+ {
1717
+ "type": "tidelift",
1718
+ "url": "https://tidelift.com/funding/github/npm/postcss"
1719
+ },
1720
+ {
1721
+ "type": "github",
1722
+ "url": "https://github.com/sponsors/ai"
1723
+ }
1724
+ ],
1725
+ "dependencies": {
1726
+ "nanoid": "^3.3.7",
1727
+ "picocolors": "^1.0.1",
1728
+ "source-map-js": "^1.2.0"
1729
+ },
1730
+ "engines": {
1731
+ "node": "^10 || ^12 || >=14"
1732
+ }
1733
+ },
1734
+ "node_modules/prettier": {
1735
+ "version": "3.3.3",
1736
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
1737
+ "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
1738
+ "dev": true,
1739
+ "bin": {
1740
+ "prettier": "bin/prettier.cjs"
1741
+ },
1742
+ "engines": {
1743
+ "node": ">=14"
1744
+ },
1745
+ "funding": {
1746
+ "url": "https://github.com/prettier/prettier?sponsor=1"
1747
+ }
1748
+ },
1749
+ "node_modules/prettier-plugin-svelte": {
1750
+ "version": "3.2.6",
1751
+ "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.6.tgz",
1752
+ "integrity": "sha512-Y1XWLw7vXUQQZmgv1JAEiLcErqUniAF2wO7QJsw8BVMvpLET2dI5WpEIEJx1r11iHVdSMzQxivyfrH9On9t2IQ==",
1753
+ "dev": true,
1754
+ "peerDependencies": {
1755
+ "prettier": "^3.0.0",
1756
+ "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0"
1757
+ }
1758
+ },
1759
+ "node_modules/readdirp": {
1760
+ "version": "3.6.0",
1761
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1762
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1763
+ "dev": true,
1764
+ "dependencies": {
1765
+ "picomatch": "^2.2.1"
1766
+ },
1767
+ "engines": {
1768
+ "node": ">=8.10.0"
1769
+ }
1770
+ },
1771
+ "node_modules/resolve": {
1772
+ "version": "1.22.8",
1773
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
1774
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
1775
+ "dependencies": {
1776
+ "is-core-module": "^2.13.0",
1777
+ "path-parse": "^1.0.7",
1778
+ "supports-preserve-symlinks-flag": "^1.0.0"
1779
+ },
1780
+ "bin": {
1781
+ "resolve": "bin/resolve"
1782
+ },
1783
+ "funding": {
1784
+ "url": "https://github.com/sponsors/ljharb"
1785
+ }
1786
+ },
1787
+ "node_modules/rimraf": {
1788
+ "version": "2.7.1",
1789
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
1790
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
1791
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
1792
+ "dev": true,
1793
+ "dependencies": {
1794
+ "glob": "^7.1.3"
1795
+ },
1796
+ "bin": {
1797
+ "rimraf": "bin.js"
1798
+ }
1799
+ },
1800
+ "node_modules/rollup": {
1801
+ "version": "4.19.0",
1802
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.0.tgz",
1803
+ "integrity": "sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==",
1804
+ "dependencies": {
1805
+ "@types/estree": "1.0.5"
1806
+ },
1807
+ "bin": {
1808
+ "rollup": "dist/bin/rollup"
1809
+ },
1810
+ "engines": {
1811
+ "node": ">=18.0.0",
1812
+ "npm": ">=8.0.0"
1813
+ },
1814
+ "optionalDependencies": {
1815
+ "@rollup/rollup-android-arm-eabi": "4.19.0",
1816
+ "@rollup/rollup-android-arm64": "4.19.0",
1817
+ "@rollup/rollup-darwin-arm64": "4.19.0",
1818
+ "@rollup/rollup-darwin-x64": "4.19.0",
1819
+ "@rollup/rollup-linux-arm-gnueabihf": "4.19.0",
1820
+ "@rollup/rollup-linux-arm-musleabihf": "4.19.0",
1821
+ "@rollup/rollup-linux-arm64-gnu": "4.19.0",
1822
+ "@rollup/rollup-linux-arm64-musl": "4.19.0",
1823
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.19.0",
1824
+ "@rollup/rollup-linux-riscv64-gnu": "4.19.0",
1825
+ "@rollup/rollup-linux-s390x-gnu": "4.19.0",
1826
+ "@rollup/rollup-linux-x64-gnu": "4.19.0",
1827
+ "@rollup/rollup-linux-x64-musl": "4.19.0",
1828
+ "@rollup/rollup-win32-arm64-msvc": "4.19.0",
1829
+ "@rollup/rollup-win32-ia32-msvc": "4.19.0",
1830
+ "@rollup/rollup-win32-x64-msvc": "4.19.0",
1831
+ "fsevents": "~2.3.2"
1832
+ }
1833
+ },
1834
+ "node_modules/sade": {
1835
+ "version": "1.8.1",
1836
+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
1837
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
1838
+ "dependencies": {
1839
+ "mri": "^1.1.0"
1840
+ },
1841
+ "engines": {
1842
+ "node": ">=6"
1843
+ }
1844
+ },
1845
+ "node_modules/sander": {
1846
+ "version": "0.5.1",
1847
+ "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
1848
+ "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==",
1849
+ "dev": true,
1850
+ "dependencies": {
1851
+ "es6-promise": "^3.1.2",
1852
+ "graceful-fs": "^4.1.3",
1853
+ "mkdirp": "^0.5.1",
1854
+ "rimraf": "^2.5.2"
1855
+ }
1856
+ },
1857
+ "node_modules/set-cookie-parser": {
1858
+ "version": "2.6.0",
1859
+ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz",
1860
+ "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ=="
1861
+ },
1862
+ "node_modules/shebang-command": {
1863
+ "version": "2.0.0",
1864
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1865
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1866
+ "dependencies": {
1867
+ "shebang-regex": "^3.0.0"
1868
+ },
1869
+ "engines": {
1870
+ "node": ">=8"
1871
+ }
1872
+ },
1873
+ "node_modules/shebang-regex": {
1874
+ "version": "3.0.0",
1875
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1876
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1877
+ "engines": {
1878
+ "node": ">=8"
1879
+ }
1880
+ },
1881
+ "node_modules/signal-exit": {
1882
+ "version": "4.1.0",
1883
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
1884
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
1885
+ "engines": {
1886
+ "node": ">=14"
1887
+ },
1888
+ "funding": {
1889
+ "url": "https://github.com/sponsors/isaacs"
1890
+ }
1891
+ },
1892
+ "node_modules/sirv": {
1893
+ "version": "2.0.4",
1894
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
1895
+ "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
1896
+ "dependencies": {
1897
+ "@polka/url": "^1.0.0-next.24",
1898
+ "mrmime": "^2.0.0",
1899
+ "totalist": "^3.0.0"
1900
+ },
1901
+ "engines": {
1902
+ "node": ">= 10"
1903
+ }
1904
+ },
1905
+ "node_modules/sorcery": {
1906
+ "version": "0.11.1",
1907
+ "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.1.tgz",
1908
+ "integrity": "sha512-o7npfeJE6wi6J9l0/5LKshFzZ2rMatRiCDwYeDQaOzqdzRJwALhX7mk/A/ecg6wjMu7wdZbmXfD2S/vpOg0bdQ==",
1909
+ "dev": true,
1910
+ "dependencies": {
1911
+ "@jridgewell/sourcemap-codec": "^1.4.14",
1912
+ "buffer-crc32": "^1.0.0",
1913
+ "minimist": "^1.2.0",
1914
+ "sander": "^0.5.0"
1915
+ },
1916
+ "bin": {
1917
+ "sorcery": "bin/sorcery"
1918
+ }
1919
+ },
1920
+ "node_modules/source-map-js": {
1921
+ "version": "1.2.0",
1922
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
1923
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
1924
+ "engines": {
1925
+ "node": ">=0.10.0"
1926
+ }
1927
+ },
1928
+ "node_modules/string-width": {
1929
+ "version": "5.1.2",
1930
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
1931
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
1932
+ "dependencies": {
1933
+ "eastasianwidth": "^0.2.0",
1934
+ "emoji-regex": "^9.2.2",
1935
+ "strip-ansi": "^7.0.1"
1936
+ },
1937
+ "engines": {
1938
+ "node": ">=12"
1939
+ },
1940
+ "funding": {
1941
+ "url": "https://github.com/sponsors/sindresorhus"
1942
+ }
1943
+ },
1944
+ "node_modules/string-width-cjs": {
1945
+ "name": "string-width",
1946
+ "version": "4.2.3",
1947
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1948
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1949
+ "dependencies": {
1950
+ "emoji-regex": "^8.0.0",
1951
+ "is-fullwidth-code-point": "^3.0.0",
1952
+ "strip-ansi": "^6.0.1"
1953
+ },
1954
+ "engines": {
1955
+ "node": ">=8"
1956
+ }
1957
+ },
1958
+ "node_modules/string-width-cjs/node_modules/ansi-regex": {
1959
+ "version": "5.0.1",
1960
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1961
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1962
+ "engines": {
1963
+ "node": ">=8"
1964
+ }
1965
+ },
1966
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
1967
+ "version": "8.0.0",
1968
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1969
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
1970
+ },
1971
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
1972
+ "version": "6.0.1",
1973
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1974
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1975
+ "dependencies": {
1976
+ "ansi-regex": "^5.0.1"
1977
+ },
1978
+ "engines": {
1979
+ "node": ">=8"
1980
+ }
1981
+ },
1982
+ "node_modules/strip-ansi": {
1983
+ "version": "7.1.0",
1984
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
1985
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
1986
+ "dependencies": {
1987
+ "ansi-regex": "^6.0.1"
1988
+ },
1989
+ "engines": {
1990
+ "node": ">=12"
1991
+ },
1992
+ "funding": {
1993
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
1994
+ }
1995
+ },
1996
+ "node_modules/strip-ansi-cjs": {
1997
+ "name": "strip-ansi",
1998
+ "version": "6.0.1",
1999
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2000
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2001
+ "dependencies": {
2002
+ "ansi-regex": "^5.0.1"
2003
+ },
2004
+ "engines": {
2005
+ "node": ">=8"
2006
+ }
2007
+ },
2008
+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
2009
+ "version": "5.0.1",
2010
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2011
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
2012
+ "engines": {
2013
+ "node": ">=8"
2014
+ }
2015
+ },
2016
+ "node_modules/strip-indent": {
2017
+ "version": "3.0.0",
2018
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
2019
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
2020
+ "dev": true,
2021
+ "dependencies": {
2022
+ "min-indent": "^1.0.0"
2023
+ },
2024
+ "engines": {
2025
+ "node": ">=8"
2026
+ }
2027
+ },
2028
+ "node_modules/supports-preserve-symlinks-flag": {
2029
+ "version": "1.0.0",
2030
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
2031
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
2032
+ "engines": {
2033
+ "node": ">= 0.4"
2034
+ },
2035
+ "funding": {
2036
+ "url": "https://github.com/sponsors/ljharb"
2037
+ }
2038
+ },
2039
+ "node_modules/svelte": {
2040
+ "version": "4.2.18",
2041
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.18.tgz",
2042
+ "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==",
2043
+ "dependencies": {
2044
+ "@ampproject/remapping": "^2.2.1",
2045
+ "@jridgewell/sourcemap-codec": "^1.4.15",
2046
+ "@jridgewell/trace-mapping": "^0.3.18",
2047
+ "@types/estree": "^1.0.1",
2048
+ "acorn": "^8.9.0",
2049
+ "aria-query": "^5.3.0",
2050
+ "axobject-query": "^4.0.0",
2051
+ "code-red": "^1.0.3",
2052
+ "css-tree": "^2.3.1",
2053
+ "estree-walker": "^3.0.3",
2054
+ "is-reference": "^3.0.1",
2055
+ "locate-character": "^3.0.0",
2056
+ "magic-string": "^0.30.4",
2057
+ "periscopic": "^3.1.0"
2058
+ },
2059
+ "engines": {
2060
+ "node": ">=16"
2061
+ }
2062
+ },
2063
+ "node_modules/svelte-check": {
2064
+ "version": "3.8.4",
2065
+ "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.8.4.tgz",
2066
+ "integrity": "sha512-61aHMkdinWyH8BkkTX9jPLYxYzaAAz/FK/VQqdr2FiCQQ/q04WCwDlpGbHff1GdrMYTmW8chlTFvRWL9k0A8vg==",
2067
+ "dev": true,
2068
+ "dependencies": {
2069
+ "@jridgewell/trace-mapping": "^0.3.17",
2070
+ "chokidar": "^3.4.1",
2071
+ "picocolors": "^1.0.0",
2072
+ "sade": "^1.7.4",
2073
+ "svelte-preprocess": "^5.1.3",
2074
+ "typescript": "^5.0.3"
2075
+ },
2076
+ "bin": {
2077
+ "svelte-check": "bin/svelte-check"
2078
+ },
2079
+ "peerDependencies": {
2080
+ "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0"
2081
+ }
2082
+ },
2083
+ "node_modules/svelte-hmr": {
2084
+ "version": "0.16.0",
2085
+ "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz",
2086
+ "integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==",
2087
+ "engines": {
2088
+ "node": "^12.20 || ^14.13.1 || >= 16"
2089
+ },
2090
+ "peerDependencies": {
2091
+ "svelte": "^3.19.0 || ^4.0.0"
2092
+ }
2093
+ },
2094
+ "node_modules/svelte-preprocess": {
2095
+ "version": "5.1.4",
2096
+ "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz",
2097
+ "integrity": "sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==",
2098
+ "dev": true,
2099
+ "hasInstallScript": true,
2100
+ "dependencies": {
2101
+ "@types/pug": "^2.0.6",
2102
+ "detect-indent": "^6.1.0",
2103
+ "magic-string": "^0.30.5",
2104
+ "sorcery": "^0.11.0",
2105
+ "strip-indent": "^3.0.0"
2106
+ },
2107
+ "engines": {
2108
+ "node": ">= 16.0.0"
2109
+ },
2110
+ "peerDependencies": {
2111
+ "@babel/core": "^7.10.2",
2112
+ "coffeescript": "^2.5.1",
2113
+ "less": "^3.11.3 || ^4.0.0",
2114
+ "postcss": "^7 || ^8",
2115
+ "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0",
2116
+ "pug": "^3.0.0",
2117
+ "sass": "^1.26.8",
2118
+ "stylus": "^0.55.0",
2119
+ "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
2120
+ "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0",
2121
+ "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0"
2122
+ },
2123
+ "peerDependenciesMeta": {
2124
+ "@babel/core": {
2125
+ "optional": true
2126
+ },
2127
+ "coffeescript": {
2128
+ "optional": true
2129
+ },
2130
+ "less": {
2131
+ "optional": true
2132
+ },
2133
+ "postcss": {
2134
+ "optional": true
2135
+ },
2136
+ "postcss-load-config": {
2137
+ "optional": true
2138
+ },
2139
+ "pug": {
2140
+ "optional": true
2141
+ },
2142
+ "sass": {
2143
+ "optional": true
2144
+ },
2145
+ "stylus": {
2146
+ "optional": true
2147
+ },
2148
+ "sugarss": {
2149
+ "optional": true
2150
+ },
2151
+ "typescript": {
2152
+ "optional": true
2153
+ }
2154
+ }
2155
+ },
2156
+ "node_modules/tiny-glob": {
2157
+ "version": "0.2.9",
2158
+ "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
2159
+ "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
2160
+ "dependencies": {
2161
+ "globalyzer": "0.1.0",
2162
+ "globrex": "^0.1.2"
2163
+ }
2164
+ },
2165
+ "node_modules/to-regex-range": {
2166
+ "version": "5.0.1",
2167
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
2168
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
2169
+ "dev": true,
2170
+ "dependencies": {
2171
+ "is-number": "^7.0.0"
2172
+ },
2173
+ "engines": {
2174
+ "node": ">=8.0"
2175
+ }
2176
+ },
2177
+ "node_modules/totalist": {
2178
+ "version": "3.0.1",
2179
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
2180
+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
2181
+ "engines": {
2182
+ "node": ">=6"
2183
+ }
2184
+ },
2185
+ "node_modules/typescript": {
2186
+ "version": "5.5.4",
2187
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
2188
+ "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
2189
+ "dev": true,
2190
+ "bin": {
2191
+ "tsc": "bin/tsc",
2192
+ "tsserver": "bin/tsserver"
2193
+ },
2194
+ "engines": {
2195
+ "node": ">=14.17"
2196
+ }
2197
+ },
2198
+ "node_modules/vite": {
2199
+ "version": "5.3.5",
2200
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.5.tgz",
2201
+ "integrity": "sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==",
2202
+ "dependencies": {
2203
+ "esbuild": "^0.21.3",
2204
+ "postcss": "^8.4.39",
2205
+ "rollup": "^4.13.0"
2206
+ },
2207
+ "bin": {
2208
+ "vite": "bin/vite.js"
2209
+ },
2210
+ "engines": {
2211
+ "node": "^18.0.0 || >=20.0.0"
2212
+ },
2213
+ "funding": {
2214
+ "url": "https://github.com/vitejs/vite?sponsor=1"
2215
+ },
2216
+ "optionalDependencies": {
2217
+ "fsevents": "~2.3.3"
2218
+ },
2219
+ "peerDependencies": {
2220
+ "@types/node": "^18.0.0 || >=20.0.0",
2221
+ "less": "*",
2222
+ "lightningcss": "^1.21.0",
2223
+ "sass": "*",
2224
+ "stylus": "*",
2225
+ "sugarss": "*",
2226
+ "terser": "^5.4.0"
2227
+ },
2228
+ "peerDependenciesMeta": {
2229
+ "@types/node": {
2230
+ "optional": true
2231
+ },
2232
+ "less": {
2233
+ "optional": true
2234
+ },
2235
+ "lightningcss": {
2236
+ "optional": true
2237
+ },
2238
+ "sass": {
2239
+ "optional": true
2240
+ },
2241
+ "stylus": {
2242
+ "optional": true
2243
+ },
2244
+ "sugarss": {
2245
+ "optional": true
2246
+ },
2247
+ "terser": {
2248
+ "optional": true
2249
+ }
2250
+ }
2251
+ },
2252
+ "node_modules/vitefu": {
2253
+ "version": "0.2.5",
2254
+ "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz",
2255
+ "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==",
2256
+ "peerDependencies": {
2257
+ "vite": "^3.0.0 || ^4.0.0 || ^5.0.0"
2258
+ },
2259
+ "peerDependenciesMeta": {
2260
+ "vite": {
2261
+ "optional": true
2262
+ }
2263
+ }
2264
+ },
2265
+ "node_modules/which": {
2266
+ "version": "2.0.2",
2267
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2268
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2269
+ "dependencies": {
2270
+ "isexe": "^2.0.0"
2271
+ },
2272
+ "bin": {
2273
+ "node-which": "bin/node-which"
2274
+ },
2275
+ "engines": {
2276
+ "node": ">= 8"
2277
+ }
2278
+ },
2279
+ "node_modules/wrap-ansi": {
2280
+ "version": "8.1.0",
2281
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
2282
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
2283
+ "dependencies": {
2284
+ "ansi-styles": "^6.1.0",
2285
+ "string-width": "^5.0.1",
2286
+ "strip-ansi": "^7.0.1"
2287
+ },
2288
+ "engines": {
2289
+ "node": ">=12"
2290
+ },
2291
+ "funding": {
2292
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2293
+ }
2294
+ },
2295
+ "node_modules/wrap-ansi-cjs": {
2296
+ "name": "wrap-ansi",
2297
+ "version": "7.0.0",
2298
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
2299
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
2300
+ "dependencies": {
2301
+ "ansi-styles": "^4.0.0",
2302
+ "string-width": "^4.1.0",
2303
+ "strip-ansi": "^6.0.0"
2304
+ },
2305
+ "engines": {
2306
+ "node": ">=10"
2307
+ },
2308
+ "funding": {
2309
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2310
+ }
2311
+ },
2312
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
2313
+ "version": "5.0.1",
2314
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2315
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
2316
+ "engines": {
2317
+ "node": ">=8"
2318
+ }
2319
+ },
2320
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
2321
+ "version": "4.3.0",
2322
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2323
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2324
+ "dependencies": {
2325
+ "color-convert": "^2.0.1"
2326
+ },
2327
+ "engines": {
2328
+ "node": ">=8"
2329
+ },
2330
+ "funding": {
2331
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2332
+ }
2333
+ },
2334
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
2335
+ "version": "8.0.0",
2336
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2337
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
2338
+ },
2339
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
2340
+ "version": "4.2.3",
2341
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2342
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2343
+ "dependencies": {
2344
+ "emoji-regex": "^8.0.0",
2345
+ "is-fullwidth-code-point": "^3.0.0",
2346
+ "strip-ansi": "^6.0.1"
2347
+ },
2348
+ "engines": {
2349
+ "node": ">=8"
2350
+ }
2351
+ },
2352
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
2353
+ "version": "6.0.1",
2354
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2355
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2356
+ "dependencies": {
2357
+ "ansi-regex": "^5.0.1"
2358
+ },
2359
+ "engines": {
2360
+ "node": ">=8"
2361
+ }
2362
+ },
2363
+ "node_modules/wrappy": {
2364
+ "version": "1.0.2",
2365
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2366
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
2367
+ "dev": true
2368
+ }
2369
+ }
2370
+ }
package.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "node-py-test",
3
+ "version": "0.0.1",
4
+ "scripts": {
5
+ "dev": "vite dev",
6
+ "build": "vite build",
7
+ "preview": "vite preview",
8
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
9
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
10
+ "lint": "prettier --check .",
11
+ "format": "prettier --write ."
12
+ },
13
+ "devDependencies": {
14
+ "@fontsource/fira-mono": "^4.5.10",
15
+ "@neoconfetti/svelte": "^1.0.0",
16
+ "@sveltejs/adapter-auto": "^3.0.0",
17
+ "@sveltejs/kit": "^2.0.0",
18
+ "@sveltejs/vite-plugin-svelte": "^3.0.0",
19
+ "prettier": "^3.1.1",
20
+ "prettier-plugin-svelte": "^3.1.2",
21
+ "svelte": "^4.2.7",
22
+ "svelte-check": "^3.6.0",
23
+ "typescript": "^5.0.0",
24
+ "vite": "^5.0.3"
25
+ },
26
+ "type": "module",
27
+ "dependencies": {
28
+ "@sveltejs/adapter-node": "^5.2.0"
29
+ }
30
+ }
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ httpx==0.24.1
2
+ fastapi==0.95.2
3
+ uvicorn==0.22.0
run.py ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import httpx
2
+ from fastapi import FastAPI, Request
3
+ from fastapi.responses import StreamingResponse, JSONResponse
4
+ from fastapi.middleware.cors import CORSMiddleware
5
+ import uvicorn
6
+ import subprocess
7
+ import signal
8
+
9
+ app = FastAPI()
10
+
11
+ app.add_middleware(
12
+ CORSMiddleware,
13
+ allow_origins=["*"],
14
+ allow_credentials=True,
15
+ allow_methods=["*"],
16
+ allow_headers=["*"],
17
+ )
18
+
19
+
20
+ PYTHON_PORT = 7860
21
+ NODE_PORT = 4321
22
+ NODE_SCRIPT_PATH = "build"
23
+
24
+ node_process = subprocess.Popen(["node", NODE_SCRIPT_PATH])
25
+
26
+
27
+ def handle_sigterm(signum, frame):
28
+ print("Stopping Node.js server...")
29
+ node_process.terminate()
30
+ node_process.wait()
31
+ exit(0)
32
+
33
+
34
+ signal.signal(signal.SIGTERM, handle_sigterm)
35
+
36
+
37
+ @app.on_event("shutdown")
38
+ def shutdown_event():
39
+ print("Stopping Node.js server...")
40
+ node_process.terminate()
41
+ node_process.wait()
42
+
43
+
44
+ @app.get("/config")
45
+ async def route_with_config():
46
+ return JSONResponse(content={"one": "hello", "two": "from", "three": "Python"})
47
+
48
+
49
+ async def proxy_to_node(request: Request):
50
+ client = httpx.AsyncClient()
51
+
52
+ # Preserve the full path including query parameters
53
+ full_path = request.url.path
54
+ if request.url.query:
55
+ full_path += f"?{request.url.query}"
56
+
57
+ url = f"http://localhost:{NODE_PORT}{full_path}"
58
+
59
+ headers = {
60
+ k: v
61
+ for k, v in request.headers.items()
62
+ if k.lower() not in ["host", "content-length"]
63
+ }
64
+ body = await request.body()
65
+
66
+ async with client:
67
+ response = await client.request(
68
+ method=request.method, url=url, headers=headers, content=body
69
+ )
70
+
71
+ return StreamingResponse(
72
+ response.iter_bytes(),
73
+ status_code=response.status_code,
74
+ headers=response.headers,
75
+ )
76
+
77
+
78
+ @app.api_route(
79
+ "/{path:path}", methods=["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"]
80
+ )
81
+ async def catch_all(request: Request, path: str):
82
+ return await proxy_to_node(request)
83
+
84
+
85
+ if __name__ == "__main__":
86
+ print(
87
+ f"Starting dual server. Python handles specific routes, Node handles the rest."
88
+ )
89
+ uvicorn.run(app, host="0.0.0.0", port=PYTHON_PORT)
src/app.css ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import '@fontsource/fira-mono';
2
+
3
+ :root {
4
+ --font-body: Arial, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
5
+ Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
6
+ --font-mono: 'Fira Mono', monospace;
7
+ --color-bg-0: rgb(202, 216, 228);
8
+ --color-bg-1: hsl(209, 36%, 86%);
9
+ --color-bg-2: hsl(224, 44%, 95%);
10
+ --color-theme-1: #ff3e00;
11
+ --color-theme-2: #4075a6;
12
+ --color-text: rgba(0, 0, 0, 0.7);
13
+ --column-width: 42rem;
14
+ --column-margin-top: 4rem;
15
+ font-family: var(--font-body);
16
+ color: var(--color-text);
17
+ }
18
+
19
+ body {
20
+ min-height: 100vh;
21
+ margin: 0;
22
+ background-attachment: fixed;
23
+ background-color: var(--color-bg-1);
24
+ background-size: 100vw 100vh;
25
+ background-image: radial-gradient(
26
+ 50% 50% at 50% 50%,
27
+ rgba(255, 255, 255, 0.75) 0%,
28
+ rgba(255, 255, 255, 0) 100%
29
+ ),
30
+ linear-gradient(180deg, var(--color-bg-0) 0%, var(--color-bg-1) 15%, var(--color-bg-2) 50%);
31
+ }
32
+
33
+ h1,
34
+ h2,
35
+ p {
36
+ font-weight: 400;
37
+ }
38
+
39
+ p {
40
+ line-height: 1.5;
41
+ }
42
+
43
+ a {
44
+ color: var(--color-theme-1);
45
+ text-decoration: none;
46
+ }
47
+
48
+ a:hover {
49
+ text-decoration: underline;
50
+ }
51
+
52
+ h1 {
53
+ font-size: 2rem;
54
+ text-align: center;
55
+ }
56
+
57
+ h2 {
58
+ font-size: 1rem;
59
+ }
60
+
61
+ pre {
62
+ font-size: 16px;
63
+ font-family: var(--font-mono);
64
+ background-color: rgba(255, 255, 255, 0.45);
65
+ border-radius: 3px;
66
+ box-shadow: 2px 2px 6px rgb(255 255 255 / 25%);
67
+ padding: 0.5em;
68
+ overflow-x: auto;
69
+ color: var(--color-text);
70
+ }
71
+
72
+ .text-column {
73
+ display: flex;
74
+ max-width: 48rem;
75
+ flex: 0.6;
76
+ flex-direction: column;
77
+ justify-content: center;
78
+ margin: 0 auto;
79
+ }
80
+
81
+ input,
82
+ button {
83
+ font-size: inherit;
84
+ font-family: inherit;
85
+ }
86
+
87
+ button:focus:not(:focus-visible) {
88
+ outline: none;
89
+ }
90
+
91
+ @media (min-width: 720px) {
92
+ h1 {
93
+ font-size: 2.4rem;
94
+ }
95
+ }
96
+
97
+ .visually-hidden {
98
+ border: 0;
99
+ clip: rect(0 0 0 0);
100
+ height: auto;
101
+ margin: 0;
102
+ overflow: hidden;
103
+ padding: 0;
104
+ position: absolute;
105
+ width: 1px;
106
+ white-space: nowrap;
107
+ }
src/app.d.ts ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // See https://kit.svelte.dev/docs/types#app
2
+ // for information about these interfaces
3
+ declare global {
4
+ namespace App {
5
+ // interface Error {}
6
+ // interface Locals {}
7
+ // interface PageData {}
8
+ // interface PageState {}
9
+ // interface Platform {}
10
+ }
11
+ }
12
+
13
+ export {};
src/app.html ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <link rel="icon" href="%sveltekit.assets%/favicon.png" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+ %sveltekit.head%
8
+ </head>
9
+ <body data-sveltekit-preload-data="hover">
10
+ <div style="display: contents">%sveltekit.body%</div>
11
+ </body>
12
+ </html>
src/lib/images/github.svg ADDED
src/lib/images/svelte-logo.svg ADDED
src/lib/images/svelte-welcome.png ADDED
src/lib/images/svelte-welcome.webp ADDED
src/routes/+layout.svelte ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script>
2
+ import Header from './Header.svelte';
3
+ import '../app.css';
4
+ </script>
5
+
6
+ <div class="app">
7
+ <Header />
8
+
9
+ <main>
10
+ <slot />
11
+ </main>
12
+
13
+ <footer>
14
+ <p>visit <a href="https://kit.svelte.dev">kit.svelte.dev</a> to learn SvelteKit</p>
15
+ </footer>
16
+ </div>
17
+
18
+ <style>
19
+ .app {
20
+ display: flex;
21
+ flex-direction: column;
22
+ min-height: 100vh;
23
+ }
24
+
25
+ main {
26
+ flex: 1;
27
+ display: flex;
28
+ flex-direction: column;
29
+ padding: 1rem;
30
+ width: 100%;
31
+ max-width: 64rem;
32
+ margin: 0 auto;
33
+ box-sizing: border-box;
34
+ }
35
+
36
+ footer {
37
+ display: flex;
38
+ flex-direction: column;
39
+ justify-content: center;
40
+ align-items: center;
41
+ padding: 12px;
42
+ }
43
+
44
+ footer a {
45
+ font-weight: bold;
46
+ }
47
+
48
+ @media (min-width: 480px) {
49
+ footer {
50
+ padding: 12px 0;
51
+ }
52
+ }
53
+ </style>
src/routes/+page.svelte ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script>
2
+ import Counter from './Counter.svelte';
3
+ import welcome from '$lib/images/svelte-welcome.webp';
4
+ import welcome_fallback from '$lib/images/svelte-welcome.png';
5
+ </script>
6
+
7
+ <svelte:head>
8
+ <title>Home</title>
9
+ <meta name="description" content="Svelte demo app" />
10
+ </svelte:head>
11
+
12
+ <section>
13
+ <h1>
14
+ <span class="welcome">
15
+ <picture>
16
+ <source srcset={welcome} type="image/webp" />
17
+ <img src={welcome_fallback} alt="Welcome" />
18
+ </picture>
19
+ </span>
20
+
21
+ to your new<br />SvelteKit app
22
+ </h1>
23
+
24
+ <h2>
25
+ try editing <strong>src/routes/+page.svelte</strong>
26
+ </h2>
27
+
28
+ <Counter />
29
+ </section>
30
+
31
+ <style>
32
+ section {
33
+ display: flex;
34
+ flex-direction: column;
35
+ justify-content: center;
36
+ align-items: center;
37
+ flex: 0.6;
38
+ }
39
+
40
+ h1 {
41
+ width: 100%;
42
+ }
43
+
44
+ .welcome {
45
+ display: block;
46
+ position: relative;
47
+ width: 100%;
48
+ height: 0;
49
+ padding: 0 0 calc(100% * 495 / 2048) 0;
50
+ }
51
+
52
+ .welcome img {
53
+ position: absolute;
54
+ width: 100%;
55
+ height: 100%;
56
+ top: 0;
57
+ display: block;
58
+ }
59
+ </style>
src/routes/+page.ts ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ // since there's no dynamic data here, we can prerender
2
+ // it so that it gets served as a static asset in production
3
+ export const prerender = true;
src/routes/Counter.svelte ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ import { spring } from 'svelte/motion';
3
+
4
+ let count = 0;
5
+
6
+ const displayed_count = spring();
7
+ $: displayed_count.set(count);
8
+ $: offset = modulo($displayed_count, 1);
9
+
10
+ function modulo(n: number, m: number) {
11
+ // handle negative numbers
12
+ return ((n % m) + m) % m;
13
+ }
14
+ </script>
15
+
16
+ <div class="counter">
17
+ <button on:click={() => (count -= 1)} aria-label="Decrease the counter by one">
18
+ <svg aria-hidden="true" viewBox="0 0 1 1">
19
+ <path d="M0,0.5 L1,0.5" />
20
+ </svg>
21
+ </button>
22
+
23
+ <div class="counter-viewport">
24
+ <div class="counter-digits" style="transform: translate(0, {100 * offset}%)">
25
+ <strong class="hidden" aria-hidden="true">{Math.floor($displayed_count + 1)}</strong>
26
+ <strong>{Math.floor($displayed_count)}</strong>
27
+ </div>
28
+ </div>
29
+
30
+ <button on:click={() => (count += 1)} aria-label="Increase the counter by one">
31
+ <svg aria-hidden="true" viewBox="0 0 1 1">
32
+ <path d="M0,0.5 L1,0.5 M0.5,0 L0.5,1" />
33
+ </svg>
34
+ </button>
35
+ </div>
36
+
37
+ <style>
38
+ .counter {
39
+ display: flex;
40
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
41
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
42
+ margin: 1rem 0;
43
+ }
44
+
45
+ .counter button {
46
+ width: 2em;
47
+ padding: 0;
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ border: 0;
52
+ background-color: transparent;
53
+ touch-action: manipulation;
54
+ font-size: 2rem;
55
+ }
56
+
57
+ .counter button:hover {
58
+ background-color: var(--color-bg-1);
59
+ }
60
+
61
+ svg {
62
+ width: 25%;
63
+ height: 25%;
64
+ }
65
+
66
+ path {
67
+ vector-effect: non-scaling-stroke;
68
+ stroke-width: 2px;
69
+ stroke: #444;
70
+ }
71
+
72
+ .counter-viewport {
73
+ width: 8em;
74
+ height: 4em;
75
+ overflow: hidden;
76
+ text-align: center;
77
+ position: relative;
78
+ }
79
+
80
+ .counter-viewport strong {
81
+ position: absolute;
82
+ display: flex;
83
+ width: 100%;
84
+ height: 100%;
85
+ font-weight: 400;
86
+ color: var(--color-theme-1);
87
+ font-size: 4rem;
88
+ align-items: center;
89
+ justify-content: center;
90
+ }
91
+
92
+ .counter-digits {
93
+ position: absolute;
94
+ width: 100%;
95
+ height: 100%;
96
+ }
97
+
98
+ .hidden {
99
+ top: -100%;
100
+ user-select: none;
101
+ }
102
+ </style>
src/routes/Header.svelte ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script>
2
+ import { page } from '$app/stores';
3
+ import logo from '$lib/images/svelte-logo.svg';
4
+ import github from '$lib/images/github.svg';
5
+ </script>
6
+
7
+ <header>
8
+ <div class="corner">
9
+ <a href="https://kit.svelte.dev">
10
+ <img src={logo} alt="SvelteKit" />
11
+ </a>
12
+ </div>
13
+
14
+ <nav>
15
+ <svg viewBox="0 0 2 3" aria-hidden="true">
16
+ <path d="M0,0 L1,2 C1.5,3 1.5,3 2,3 L2,0 Z" />
17
+ </svg>
18
+ <ul>
19
+ <li aria-current={$page.url.pathname === '/' ? 'page' : undefined}>
20
+ <a href="/">Home</a>
21
+ </li>
22
+ <li aria-current={$page.url.pathname === '/about' ? 'page' : undefined}>
23
+ <a href="/about">About</a>
24
+ </li>
25
+ <li aria-current={$page.url.pathname.startsWith('/config-page') ? 'page' : undefined}>
26
+ <a href="/config-page">Config</a>
27
+ </li>
28
+ </ul>
29
+ <svg viewBox="0 0 2 3" aria-hidden="true">
30
+ <path d="M0,0 L0,3 C0.5,3 0.5,3 1,2 L2,0 Z" />
31
+ </svg>
32
+ </nav>
33
+
34
+ <div class="corner">
35
+ <a href="https://github.com/sveltejs/kit">
36
+ <img src={github} alt="GitHub" />
37
+ </a>
38
+ </div>
39
+ </header>
40
+
41
+ <style>
42
+ header {
43
+ display: flex;
44
+ justify-content: space-between;
45
+ }
46
+
47
+ .corner {
48
+ width: 3em;
49
+ height: 3em;
50
+ }
51
+
52
+ .corner a {
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ width: 100%;
57
+ height: 100%;
58
+ }
59
+
60
+ .corner img {
61
+ width: 2em;
62
+ height: 2em;
63
+ object-fit: contain;
64
+ }
65
+
66
+ nav {
67
+ display: flex;
68
+ justify-content: center;
69
+ --background: rgba(255, 255, 255, 0.7);
70
+ }
71
+
72
+ svg {
73
+ width: 2em;
74
+ height: 3em;
75
+ display: block;
76
+ }
77
+
78
+ path {
79
+ fill: var(--background);
80
+ }
81
+
82
+ ul {
83
+ position: relative;
84
+ padding: 0;
85
+ margin: 0;
86
+ height: 3em;
87
+ display: flex;
88
+ justify-content: center;
89
+ align-items: center;
90
+ list-style: none;
91
+ background: var(--background);
92
+ background-size: contain;
93
+ }
94
+
95
+ li {
96
+ position: relative;
97
+ height: 100%;
98
+ }
99
+
100
+ li[aria-current='page']::before {
101
+ --size: 6px;
102
+ content: '';
103
+ width: 0;
104
+ height: 0;
105
+ position: absolute;
106
+ top: 0;
107
+ left: calc(50% - var(--size));
108
+ border: var(--size) solid transparent;
109
+ border-top: var(--size) solid var(--color-theme-1);
110
+ }
111
+
112
+ nav a {
113
+ display: flex;
114
+ height: 100%;
115
+ align-items: center;
116
+ padding: 0 0.5rem;
117
+ color: var(--color-text);
118
+ font-weight: 700;
119
+ font-size: 0.8rem;
120
+ text-transform: uppercase;
121
+ letter-spacing: 0.1em;
122
+ text-decoration: none;
123
+ transition: color 0.2s linear;
124
+ }
125
+
126
+ a:hover {
127
+ color: var(--color-theme-1);
128
+ }
129
+ </style>
src/routes/about/+page.svelte ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svelte:head>
2
+ <title>About</title>
3
+ <meta name="description" content="About this app" />
4
+ </svelte:head>
5
+
6
+ <div class="text-column">
7
+ <h1>About this app</h1>
8
+
9
+ <p>
10
+ This is a <a href="https://kit.svelte.dev">SvelteKit</a> app. You can make your own by typing the
11
+ following into your command line and following the prompts:
12
+ </p>
13
+
14
+ <pre>npm create svelte@latest</pre>
15
+
16
+ <p>
17
+ The page you're looking at is purely static HTML, with no client-side interactivity needed.
18
+ Because of that, we don't need to load any JavaScript. Try viewing the page's source, or opening
19
+ the devtools network panel and reloading.
20
+ </p>
21
+ </div>
src/routes/about/+page.ts ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import { dev } from '$app/environment';
2
+
3
+ // we don't need any JS on this page, though we'll load
4
+ // it in dev so that we get hot module replacement
5
+ export const csr = dev;
6
+
7
+ // since there's no dynamic data here, we can prerender
8
+ // it so that it gets served as a static asset in production
9
+ export const prerender = true;
src/routes/config-page/+page.svelte ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script>
2
+ export let data = {
3
+ config: {
4
+ foo: 'bar'
5
+ }
6
+ };
7
+ </script>
8
+
9
+ <h1>
10
+ Welcome to the config page! This config is loaded from the python server backing this application.
11
+ </h1>
12
+ <pre>{JSON.stringify(data.config, null, 2)}</pre>
src/routes/config-page/+page.ts ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ // @ts-ignore
2
+ export async function load({ fetch }) {
3
+ const res = await fetch('http://127.0.0.1:7860/config');
4
+ const data = await res.json();
5
+ return {
6
+ config: data
7
+ };
8
+ }
static/favicon.png ADDED
static/robots.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ # https://www.robotstxt.org/robotstxt.html
2
+ User-agent: *
3
+ Disallow:
svelte.config.js ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import adapter from '@sveltejs/adapter-node';
2
+ import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
3
+
4
+ /** @type {import('@sveltejs/kit').Config} */
5
+ const config = {
6
+ // Consult https://kit.svelte.dev/docs/integrations#preprocessors
7
+ // for more information about preprocessors
8
+ preprocess: vitePreprocess(),
9
+
10
+ kit: {
11
+ // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
12
+ // If your environment is not supported, or you settled on a specific environment, switch out the adapter.
13
+ // See https://kit.svelte.dev/docs/adapters for more information about adapters.
14
+ adapter: adapter()
15
+ }
16
+ };
17
+
18
+ export default config;
tsconfig.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "extends": "./.svelte-kit/tsconfig.json",
3
+ "compilerOptions": {
4
+ "allowJs": true,
5
+ "checkJs": true,
6
+ "esModuleInterop": true,
7
+ "forceConsistentCasingInFileNames": true,
8
+ "resolveJsonModule": true,
9
+ "skipLibCheck": true,
10
+ "sourceMap": true,
11
+ "strict": true,
12
+ "moduleResolution": "bundler"
13
+ }
14
+ // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
15
+ // except $lib which is handled by https://kit.svelte.dev/docs/configuration#files
16
+ //
17
+ // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
18
+ // from the referenced tsconfig.json - TypeScript does not merge them in
19
+ }
vite.config.ts ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ import { sveltekit } from '@sveltejs/kit/vite';
2
+ import { defineConfig } from 'vite';
3
+
4
+ export default defineConfig({
5
+ plugins: [sveltekit()]
6
+ });