Tobias Brugger commited on
Commit
3f209a4
·
1 Parent(s): 8d7f651
package-lock.json ADDED
@@ -0,0 +1,1563 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "svelte",
3
+ "version": "0.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "svelte",
9
+ "version": "0.0.0",
10
+ "dependencies": {
11
+ "@huggingface/hub": "^2.7.1",
12
+ "marked": "^17.0.1"
13
+ },
14
+ "devDependencies": {
15
+ "@sveltejs/vite-plugin-svelte": "^5.0.3",
16
+ "@tsconfig/svelte": "^5.0.4",
17
+ "svelte": "^5.28.1",
18
+ "svelte-check": "^4.1.6",
19
+ "typescript": "~5.8.3",
20
+ "vite": "^6.3.5"
21
+ }
22
+ },
23
+ "node_modules/@esbuild/aix-ppc64": {
24
+ "version": "0.25.12",
25
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
26
+ "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
27
+ "cpu": [
28
+ "ppc64"
29
+ ],
30
+ "dev": true,
31
+ "license": "MIT",
32
+ "optional": true,
33
+ "os": [
34
+ "aix"
35
+ ],
36
+ "engines": {
37
+ "node": ">=18"
38
+ }
39
+ },
40
+ "node_modules/@esbuild/android-arm": {
41
+ "version": "0.25.12",
42
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
43
+ "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
44
+ "cpu": [
45
+ "arm"
46
+ ],
47
+ "dev": true,
48
+ "license": "MIT",
49
+ "optional": true,
50
+ "os": [
51
+ "android"
52
+ ],
53
+ "engines": {
54
+ "node": ">=18"
55
+ }
56
+ },
57
+ "node_modules/@esbuild/android-arm64": {
58
+ "version": "0.25.12",
59
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
60
+ "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
61
+ "cpu": [
62
+ "arm64"
63
+ ],
64
+ "dev": true,
65
+ "license": "MIT",
66
+ "optional": true,
67
+ "os": [
68
+ "android"
69
+ ],
70
+ "engines": {
71
+ "node": ">=18"
72
+ }
73
+ },
74
+ "node_modules/@esbuild/android-x64": {
75
+ "version": "0.25.12",
76
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
77
+ "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
78
+ "cpu": [
79
+ "x64"
80
+ ],
81
+ "dev": true,
82
+ "license": "MIT",
83
+ "optional": true,
84
+ "os": [
85
+ "android"
86
+ ],
87
+ "engines": {
88
+ "node": ">=18"
89
+ }
90
+ },
91
+ "node_modules/@esbuild/darwin-arm64": {
92
+ "version": "0.25.12",
93
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
94
+ "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
95
+ "cpu": [
96
+ "arm64"
97
+ ],
98
+ "dev": true,
99
+ "license": "MIT",
100
+ "optional": true,
101
+ "os": [
102
+ "darwin"
103
+ ],
104
+ "engines": {
105
+ "node": ">=18"
106
+ }
107
+ },
108
+ "node_modules/@esbuild/darwin-x64": {
109
+ "version": "0.25.12",
110
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
111
+ "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
112
+ "cpu": [
113
+ "x64"
114
+ ],
115
+ "dev": true,
116
+ "license": "MIT",
117
+ "optional": true,
118
+ "os": [
119
+ "darwin"
120
+ ],
121
+ "engines": {
122
+ "node": ">=18"
123
+ }
124
+ },
125
+ "node_modules/@esbuild/freebsd-arm64": {
126
+ "version": "0.25.12",
127
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
128
+ "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
129
+ "cpu": [
130
+ "arm64"
131
+ ],
132
+ "dev": true,
133
+ "license": "MIT",
134
+ "optional": true,
135
+ "os": [
136
+ "freebsd"
137
+ ],
138
+ "engines": {
139
+ "node": ">=18"
140
+ }
141
+ },
142
+ "node_modules/@esbuild/freebsd-x64": {
143
+ "version": "0.25.12",
144
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
145
+ "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
146
+ "cpu": [
147
+ "x64"
148
+ ],
149
+ "dev": true,
150
+ "license": "MIT",
151
+ "optional": true,
152
+ "os": [
153
+ "freebsd"
154
+ ],
155
+ "engines": {
156
+ "node": ">=18"
157
+ }
158
+ },
159
+ "node_modules/@esbuild/linux-arm": {
160
+ "version": "0.25.12",
161
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
162
+ "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
163
+ "cpu": [
164
+ "arm"
165
+ ],
166
+ "dev": true,
167
+ "license": "MIT",
168
+ "optional": true,
169
+ "os": [
170
+ "linux"
171
+ ],
172
+ "engines": {
173
+ "node": ">=18"
174
+ }
175
+ },
176
+ "node_modules/@esbuild/linux-arm64": {
177
+ "version": "0.25.12",
178
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
179
+ "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
180
+ "cpu": [
181
+ "arm64"
182
+ ],
183
+ "dev": true,
184
+ "license": "MIT",
185
+ "optional": true,
186
+ "os": [
187
+ "linux"
188
+ ],
189
+ "engines": {
190
+ "node": ">=18"
191
+ }
192
+ },
193
+ "node_modules/@esbuild/linux-ia32": {
194
+ "version": "0.25.12",
195
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
196
+ "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
197
+ "cpu": [
198
+ "ia32"
199
+ ],
200
+ "dev": true,
201
+ "license": "MIT",
202
+ "optional": true,
203
+ "os": [
204
+ "linux"
205
+ ],
206
+ "engines": {
207
+ "node": ">=18"
208
+ }
209
+ },
210
+ "node_modules/@esbuild/linux-loong64": {
211
+ "version": "0.25.12",
212
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
213
+ "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
214
+ "cpu": [
215
+ "loong64"
216
+ ],
217
+ "dev": true,
218
+ "license": "MIT",
219
+ "optional": true,
220
+ "os": [
221
+ "linux"
222
+ ],
223
+ "engines": {
224
+ "node": ">=18"
225
+ }
226
+ },
227
+ "node_modules/@esbuild/linux-mips64el": {
228
+ "version": "0.25.12",
229
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
230
+ "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
231
+ "cpu": [
232
+ "mips64el"
233
+ ],
234
+ "dev": true,
235
+ "license": "MIT",
236
+ "optional": true,
237
+ "os": [
238
+ "linux"
239
+ ],
240
+ "engines": {
241
+ "node": ">=18"
242
+ }
243
+ },
244
+ "node_modules/@esbuild/linux-ppc64": {
245
+ "version": "0.25.12",
246
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
247
+ "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
248
+ "cpu": [
249
+ "ppc64"
250
+ ],
251
+ "dev": true,
252
+ "license": "MIT",
253
+ "optional": true,
254
+ "os": [
255
+ "linux"
256
+ ],
257
+ "engines": {
258
+ "node": ">=18"
259
+ }
260
+ },
261
+ "node_modules/@esbuild/linux-riscv64": {
262
+ "version": "0.25.12",
263
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
264
+ "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
265
+ "cpu": [
266
+ "riscv64"
267
+ ],
268
+ "dev": true,
269
+ "license": "MIT",
270
+ "optional": true,
271
+ "os": [
272
+ "linux"
273
+ ],
274
+ "engines": {
275
+ "node": ">=18"
276
+ }
277
+ },
278
+ "node_modules/@esbuild/linux-s390x": {
279
+ "version": "0.25.12",
280
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
281
+ "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
282
+ "cpu": [
283
+ "s390x"
284
+ ],
285
+ "dev": true,
286
+ "license": "MIT",
287
+ "optional": true,
288
+ "os": [
289
+ "linux"
290
+ ],
291
+ "engines": {
292
+ "node": ">=18"
293
+ }
294
+ },
295
+ "node_modules/@esbuild/linux-x64": {
296
+ "version": "0.25.12",
297
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
298
+ "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
299
+ "cpu": [
300
+ "x64"
301
+ ],
302
+ "dev": true,
303
+ "license": "MIT",
304
+ "optional": true,
305
+ "os": [
306
+ "linux"
307
+ ],
308
+ "engines": {
309
+ "node": ">=18"
310
+ }
311
+ },
312
+ "node_modules/@esbuild/netbsd-arm64": {
313
+ "version": "0.25.12",
314
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
315
+ "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
316
+ "cpu": [
317
+ "arm64"
318
+ ],
319
+ "dev": true,
320
+ "license": "MIT",
321
+ "optional": true,
322
+ "os": [
323
+ "netbsd"
324
+ ],
325
+ "engines": {
326
+ "node": ">=18"
327
+ }
328
+ },
329
+ "node_modules/@esbuild/netbsd-x64": {
330
+ "version": "0.25.12",
331
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
332
+ "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
333
+ "cpu": [
334
+ "x64"
335
+ ],
336
+ "dev": true,
337
+ "license": "MIT",
338
+ "optional": true,
339
+ "os": [
340
+ "netbsd"
341
+ ],
342
+ "engines": {
343
+ "node": ">=18"
344
+ }
345
+ },
346
+ "node_modules/@esbuild/openbsd-arm64": {
347
+ "version": "0.25.12",
348
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
349
+ "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
350
+ "cpu": [
351
+ "arm64"
352
+ ],
353
+ "dev": true,
354
+ "license": "MIT",
355
+ "optional": true,
356
+ "os": [
357
+ "openbsd"
358
+ ],
359
+ "engines": {
360
+ "node": ">=18"
361
+ }
362
+ },
363
+ "node_modules/@esbuild/openbsd-x64": {
364
+ "version": "0.25.12",
365
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
366
+ "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
367
+ "cpu": [
368
+ "x64"
369
+ ],
370
+ "dev": true,
371
+ "license": "MIT",
372
+ "optional": true,
373
+ "os": [
374
+ "openbsd"
375
+ ],
376
+ "engines": {
377
+ "node": ">=18"
378
+ }
379
+ },
380
+ "node_modules/@esbuild/openharmony-arm64": {
381
+ "version": "0.25.12",
382
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
383
+ "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
384
+ "cpu": [
385
+ "arm64"
386
+ ],
387
+ "dev": true,
388
+ "license": "MIT",
389
+ "optional": true,
390
+ "os": [
391
+ "openharmony"
392
+ ],
393
+ "engines": {
394
+ "node": ">=18"
395
+ }
396
+ },
397
+ "node_modules/@esbuild/sunos-x64": {
398
+ "version": "0.25.12",
399
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
400
+ "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
401
+ "cpu": [
402
+ "x64"
403
+ ],
404
+ "dev": true,
405
+ "license": "MIT",
406
+ "optional": true,
407
+ "os": [
408
+ "sunos"
409
+ ],
410
+ "engines": {
411
+ "node": ">=18"
412
+ }
413
+ },
414
+ "node_modules/@esbuild/win32-arm64": {
415
+ "version": "0.25.12",
416
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
417
+ "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
418
+ "cpu": [
419
+ "arm64"
420
+ ],
421
+ "dev": true,
422
+ "license": "MIT",
423
+ "optional": true,
424
+ "os": [
425
+ "win32"
426
+ ],
427
+ "engines": {
428
+ "node": ">=18"
429
+ }
430
+ },
431
+ "node_modules/@esbuild/win32-ia32": {
432
+ "version": "0.25.12",
433
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
434
+ "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
435
+ "cpu": [
436
+ "ia32"
437
+ ],
438
+ "dev": true,
439
+ "license": "MIT",
440
+ "optional": true,
441
+ "os": [
442
+ "win32"
443
+ ],
444
+ "engines": {
445
+ "node": ">=18"
446
+ }
447
+ },
448
+ "node_modules/@esbuild/win32-x64": {
449
+ "version": "0.25.12",
450
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
451
+ "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
452
+ "cpu": [
453
+ "x64"
454
+ ],
455
+ "dev": true,
456
+ "license": "MIT",
457
+ "optional": true,
458
+ "os": [
459
+ "win32"
460
+ ],
461
+ "engines": {
462
+ "node": ">=18"
463
+ }
464
+ },
465
+ "node_modules/@huggingface/hub": {
466
+ "version": "2.7.1",
467
+ "resolved": "https://registry.npmjs.org/@huggingface/hub/-/hub-2.7.1.tgz",
468
+ "integrity": "sha512-XzDVwF8ISi1R7JL+KP44ax4LbG/RhYRyfwaWTg/+zCaCDLTLpIW8LGDgBVQsuSkBBHiPdWp8PaNUGZ04yQCIOQ==",
469
+ "license": "MIT",
470
+ "dependencies": {
471
+ "@huggingface/tasks": "^0.19.64"
472
+ },
473
+ "bin": {
474
+ "hfjs": "dist/cli.js"
475
+ },
476
+ "engines": {
477
+ "node": ">=18"
478
+ },
479
+ "optionalDependencies": {
480
+ "cli-progress": "^3.12.0"
481
+ }
482
+ },
483
+ "node_modules/@huggingface/tasks": {
484
+ "version": "0.19.71",
485
+ "resolved": "https://registry.npmjs.org/@huggingface/tasks/-/tasks-0.19.71.tgz",
486
+ "integrity": "sha512-oDQ3b6p9305s3El4N2PDnfWqFtqwNV2BPmbH2HARt6Zl+oBfdFntwBF8zeRyfh9E5/5vojAZpI4aGAgC/SKmxg==",
487
+ "license": "MIT"
488
+ },
489
+ "node_modules/@jridgewell/gen-mapping": {
490
+ "version": "0.3.13",
491
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
492
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
493
+ "dev": true,
494
+ "license": "MIT",
495
+ "dependencies": {
496
+ "@jridgewell/sourcemap-codec": "^1.5.0",
497
+ "@jridgewell/trace-mapping": "^0.3.24"
498
+ }
499
+ },
500
+ "node_modules/@jridgewell/remapping": {
501
+ "version": "2.3.5",
502
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
503
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
504
+ "dev": true,
505
+ "license": "MIT",
506
+ "dependencies": {
507
+ "@jridgewell/gen-mapping": "^0.3.5",
508
+ "@jridgewell/trace-mapping": "^0.3.24"
509
+ }
510
+ },
511
+ "node_modules/@jridgewell/resolve-uri": {
512
+ "version": "3.1.2",
513
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
514
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
515
+ "dev": true,
516
+ "license": "MIT",
517
+ "engines": {
518
+ "node": ">=6.0.0"
519
+ }
520
+ },
521
+ "node_modules/@jridgewell/sourcemap-codec": {
522
+ "version": "1.5.5",
523
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
524
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
525
+ "dev": true,
526
+ "license": "MIT"
527
+ },
528
+ "node_modules/@jridgewell/trace-mapping": {
529
+ "version": "0.3.31",
530
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
531
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
532
+ "dev": true,
533
+ "license": "MIT",
534
+ "dependencies": {
535
+ "@jridgewell/resolve-uri": "^3.1.0",
536
+ "@jridgewell/sourcemap-codec": "^1.4.14"
537
+ }
538
+ },
539
+ "node_modules/@rollup/rollup-android-arm-eabi": {
540
+ "version": "4.53.5",
541
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.5.tgz",
542
+ "integrity": "sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==",
543
+ "cpu": [
544
+ "arm"
545
+ ],
546
+ "dev": true,
547
+ "license": "MIT",
548
+ "optional": true,
549
+ "os": [
550
+ "android"
551
+ ]
552
+ },
553
+ "node_modules/@rollup/rollup-android-arm64": {
554
+ "version": "4.53.5",
555
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.5.tgz",
556
+ "integrity": "sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==",
557
+ "cpu": [
558
+ "arm64"
559
+ ],
560
+ "dev": true,
561
+ "license": "MIT",
562
+ "optional": true,
563
+ "os": [
564
+ "android"
565
+ ]
566
+ },
567
+ "node_modules/@rollup/rollup-darwin-arm64": {
568
+ "version": "4.53.5",
569
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.5.tgz",
570
+ "integrity": "sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==",
571
+ "cpu": [
572
+ "arm64"
573
+ ],
574
+ "dev": true,
575
+ "license": "MIT",
576
+ "optional": true,
577
+ "os": [
578
+ "darwin"
579
+ ]
580
+ },
581
+ "node_modules/@rollup/rollup-darwin-x64": {
582
+ "version": "4.53.5",
583
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.5.tgz",
584
+ "integrity": "sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==",
585
+ "cpu": [
586
+ "x64"
587
+ ],
588
+ "dev": true,
589
+ "license": "MIT",
590
+ "optional": true,
591
+ "os": [
592
+ "darwin"
593
+ ]
594
+ },
595
+ "node_modules/@rollup/rollup-freebsd-arm64": {
596
+ "version": "4.53.5",
597
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.5.tgz",
598
+ "integrity": "sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==",
599
+ "cpu": [
600
+ "arm64"
601
+ ],
602
+ "dev": true,
603
+ "license": "MIT",
604
+ "optional": true,
605
+ "os": [
606
+ "freebsd"
607
+ ]
608
+ },
609
+ "node_modules/@rollup/rollup-freebsd-x64": {
610
+ "version": "4.53.5",
611
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.5.tgz",
612
+ "integrity": "sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==",
613
+ "cpu": [
614
+ "x64"
615
+ ],
616
+ "dev": true,
617
+ "license": "MIT",
618
+ "optional": true,
619
+ "os": [
620
+ "freebsd"
621
+ ]
622
+ },
623
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
624
+ "version": "4.53.5",
625
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.5.tgz",
626
+ "integrity": "sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==",
627
+ "cpu": [
628
+ "arm"
629
+ ],
630
+ "dev": true,
631
+ "license": "MIT",
632
+ "optional": true,
633
+ "os": [
634
+ "linux"
635
+ ]
636
+ },
637
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
638
+ "version": "4.53.5",
639
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.5.tgz",
640
+ "integrity": "sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==",
641
+ "cpu": [
642
+ "arm"
643
+ ],
644
+ "dev": true,
645
+ "license": "MIT",
646
+ "optional": true,
647
+ "os": [
648
+ "linux"
649
+ ]
650
+ },
651
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
652
+ "version": "4.53.5",
653
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.5.tgz",
654
+ "integrity": "sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==",
655
+ "cpu": [
656
+ "arm64"
657
+ ],
658
+ "dev": true,
659
+ "license": "MIT",
660
+ "optional": true,
661
+ "os": [
662
+ "linux"
663
+ ]
664
+ },
665
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
666
+ "version": "4.53.5",
667
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.5.tgz",
668
+ "integrity": "sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==",
669
+ "cpu": [
670
+ "arm64"
671
+ ],
672
+ "dev": true,
673
+ "license": "MIT",
674
+ "optional": true,
675
+ "os": [
676
+ "linux"
677
+ ]
678
+ },
679
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
680
+ "version": "4.53.5",
681
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.5.tgz",
682
+ "integrity": "sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==",
683
+ "cpu": [
684
+ "loong64"
685
+ ],
686
+ "dev": true,
687
+ "license": "MIT",
688
+ "optional": true,
689
+ "os": [
690
+ "linux"
691
+ ]
692
+ },
693
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
694
+ "version": "4.53.5",
695
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.5.tgz",
696
+ "integrity": "sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==",
697
+ "cpu": [
698
+ "ppc64"
699
+ ],
700
+ "dev": true,
701
+ "license": "MIT",
702
+ "optional": true,
703
+ "os": [
704
+ "linux"
705
+ ]
706
+ },
707
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
708
+ "version": "4.53.5",
709
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.5.tgz",
710
+ "integrity": "sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==",
711
+ "cpu": [
712
+ "riscv64"
713
+ ],
714
+ "dev": true,
715
+ "license": "MIT",
716
+ "optional": true,
717
+ "os": [
718
+ "linux"
719
+ ]
720
+ },
721
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
722
+ "version": "4.53.5",
723
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.5.tgz",
724
+ "integrity": "sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==",
725
+ "cpu": [
726
+ "riscv64"
727
+ ],
728
+ "dev": true,
729
+ "license": "MIT",
730
+ "optional": true,
731
+ "os": [
732
+ "linux"
733
+ ]
734
+ },
735
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
736
+ "version": "4.53.5",
737
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.5.tgz",
738
+ "integrity": "sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==",
739
+ "cpu": [
740
+ "s390x"
741
+ ],
742
+ "dev": true,
743
+ "license": "MIT",
744
+ "optional": true,
745
+ "os": [
746
+ "linux"
747
+ ]
748
+ },
749
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
750
+ "version": "4.53.5",
751
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.5.tgz",
752
+ "integrity": "sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==",
753
+ "cpu": [
754
+ "x64"
755
+ ],
756
+ "dev": true,
757
+ "license": "MIT",
758
+ "optional": true,
759
+ "os": [
760
+ "linux"
761
+ ]
762
+ },
763
+ "node_modules/@rollup/rollup-linux-x64-musl": {
764
+ "version": "4.53.5",
765
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.5.tgz",
766
+ "integrity": "sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==",
767
+ "cpu": [
768
+ "x64"
769
+ ],
770
+ "dev": true,
771
+ "license": "MIT",
772
+ "optional": true,
773
+ "os": [
774
+ "linux"
775
+ ]
776
+ },
777
+ "node_modules/@rollup/rollup-openharmony-arm64": {
778
+ "version": "4.53.5",
779
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.5.tgz",
780
+ "integrity": "sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==",
781
+ "cpu": [
782
+ "arm64"
783
+ ],
784
+ "dev": true,
785
+ "license": "MIT",
786
+ "optional": true,
787
+ "os": [
788
+ "openharmony"
789
+ ]
790
+ },
791
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
792
+ "version": "4.53.5",
793
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.5.tgz",
794
+ "integrity": "sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==",
795
+ "cpu": [
796
+ "arm64"
797
+ ],
798
+ "dev": true,
799
+ "license": "MIT",
800
+ "optional": true,
801
+ "os": [
802
+ "win32"
803
+ ]
804
+ },
805
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
806
+ "version": "4.53.5",
807
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.5.tgz",
808
+ "integrity": "sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==",
809
+ "cpu": [
810
+ "ia32"
811
+ ],
812
+ "dev": true,
813
+ "license": "MIT",
814
+ "optional": true,
815
+ "os": [
816
+ "win32"
817
+ ]
818
+ },
819
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
820
+ "version": "4.53.5",
821
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.5.tgz",
822
+ "integrity": "sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==",
823
+ "cpu": [
824
+ "x64"
825
+ ],
826
+ "dev": true,
827
+ "license": "MIT",
828
+ "optional": true,
829
+ "os": [
830
+ "win32"
831
+ ]
832
+ },
833
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
834
+ "version": "4.53.5",
835
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.5.tgz",
836
+ "integrity": "sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==",
837
+ "cpu": [
838
+ "x64"
839
+ ],
840
+ "dev": true,
841
+ "license": "MIT",
842
+ "optional": true,
843
+ "os": [
844
+ "win32"
845
+ ]
846
+ },
847
+ "node_modules/@sveltejs/acorn-typescript": {
848
+ "version": "1.0.8",
849
+ "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.8.tgz",
850
+ "integrity": "sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==",
851
+ "dev": true,
852
+ "license": "MIT",
853
+ "peerDependencies": {
854
+ "acorn": "^8.9.0"
855
+ }
856
+ },
857
+ "node_modules/@sveltejs/vite-plugin-svelte": {
858
+ "version": "5.1.1",
859
+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.1.1.tgz",
860
+ "integrity": "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==",
861
+ "dev": true,
862
+ "license": "MIT",
863
+ "dependencies": {
864
+ "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1",
865
+ "debug": "^4.4.1",
866
+ "deepmerge": "^4.3.1",
867
+ "kleur": "^4.1.5",
868
+ "magic-string": "^0.30.17",
869
+ "vitefu": "^1.0.6"
870
+ },
871
+ "engines": {
872
+ "node": "^18.0.0 || ^20.0.0 || >=22"
873
+ },
874
+ "peerDependencies": {
875
+ "svelte": "^5.0.0",
876
+ "vite": "^6.0.0"
877
+ }
878
+ },
879
+ "node_modules/@sveltejs/vite-plugin-svelte-inspector": {
880
+ "version": "4.0.1",
881
+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz",
882
+ "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==",
883
+ "dev": true,
884
+ "license": "MIT",
885
+ "dependencies": {
886
+ "debug": "^4.3.7"
887
+ },
888
+ "engines": {
889
+ "node": "^18.0.0 || ^20.0.0 || >=22"
890
+ },
891
+ "peerDependencies": {
892
+ "@sveltejs/vite-plugin-svelte": "^5.0.0",
893
+ "svelte": "^5.0.0",
894
+ "vite": "^6.0.0"
895
+ }
896
+ },
897
+ "node_modules/@tsconfig/svelte": {
898
+ "version": "5.0.6",
899
+ "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.6.tgz",
900
+ "integrity": "sha512-yGxYL0I9eETH1/DR9qVJey4DAsCdeau4a9wYPKuXfEhm8lFO8wg+LLYJjIpAm6Fw7HSlhepPhYPDop75485yWQ==",
901
+ "dev": true,
902
+ "license": "MIT"
903
+ },
904
+ "node_modules/@types/estree": {
905
+ "version": "1.0.8",
906
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
907
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
908
+ "dev": true,
909
+ "license": "MIT"
910
+ },
911
+ "node_modules/acorn": {
912
+ "version": "8.15.0",
913
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
914
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
915
+ "dev": true,
916
+ "license": "MIT",
917
+ "bin": {
918
+ "acorn": "bin/acorn"
919
+ },
920
+ "engines": {
921
+ "node": ">=0.4.0"
922
+ }
923
+ },
924
+ "node_modules/ansi-regex": {
925
+ "version": "5.0.1",
926
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
927
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
928
+ "license": "MIT",
929
+ "optional": true,
930
+ "engines": {
931
+ "node": ">=8"
932
+ }
933
+ },
934
+ "node_modules/aria-query": {
935
+ "version": "5.3.2",
936
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
937
+ "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
938
+ "dev": true,
939
+ "license": "Apache-2.0",
940
+ "engines": {
941
+ "node": ">= 0.4"
942
+ }
943
+ },
944
+ "node_modules/axobject-query": {
945
+ "version": "4.1.0",
946
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
947
+ "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
948
+ "dev": true,
949
+ "license": "Apache-2.0",
950
+ "engines": {
951
+ "node": ">= 0.4"
952
+ }
953
+ },
954
+ "node_modules/chokidar": {
955
+ "version": "4.0.3",
956
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
957
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
958
+ "dev": true,
959
+ "license": "MIT",
960
+ "dependencies": {
961
+ "readdirp": "^4.0.1"
962
+ },
963
+ "engines": {
964
+ "node": ">= 14.16.0"
965
+ },
966
+ "funding": {
967
+ "url": "https://paulmillr.com/funding/"
968
+ }
969
+ },
970
+ "node_modules/cli-progress": {
971
+ "version": "3.12.0",
972
+ "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz",
973
+ "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==",
974
+ "license": "MIT",
975
+ "optional": true,
976
+ "dependencies": {
977
+ "string-width": "^4.2.3"
978
+ },
979
+ "engines": {
980
+ "node": ">=4"
981
+ }
982
+ },
983
+ "node_modules/clsx": {
984
+ "version": "2.1.1",
985
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
986
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
987
+ "dev": true,
988
+ "license": "MIT",
989
+ "engines": {
990
+ "node": ">=6"
991
+ }
992
+ },
993
+ "node_modules/debug": {
994
+ "version": "4.4.3",
995
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
996
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
997
+ "dev": true,
998
+ "license": "MIT",
999
+ "dependencies": {
1000
+ "ms": "^2.1.3"
1001
+ },
1002
+ "engines": {
1003
+ "node": ">=6.0"
1004
+ },
1005
+ "peerDependenciesMeta": {
1006
+ "supports-color": {
1007
+ "optional": true
1008
+ }
1009
+ }
1010
+ },
1011
+ "node_modules/deepmerge": {
1012
+ "version": "4.3.1",
1013
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
1014
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
1015
+ "dev": true,
1016
+ "license": "MIT",
1017
+ "engines": {
1018
+ "node": ">=0.10.0"
1019
+ }
1020
+ },
1021
+ "node_modules/devalue": {
1022
+ "version": "5.6.1",
1023
+ "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.1.tgz",
1024
+ "integrity": "sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==",
1025
+ "dev": true,
1026
+ "license": "MIT"
1027
+ },
1028
+ "node_modules/emoji-regex": {
1029
+ "version": "8.0.0",
1030
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1031
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1032
+ "license": "MIT",
1033
+ "optional": true
1034
+ },
1035
+ "node_modules/esbuild": {
1036
+ "version": "0.25.12",
1037
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
1038
+ "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
1039
+ "dev": true,
1040
+ "hasInstallScript": true,
1041
+ "license": "MIT",
1042
+ "bin": {
1043
+ "esbuild": "bin/esbuild"
1044
+ },
1045
+ "engines": {
1046
+ "node": ">=18"
1047
+ },
1048
+ "optionalDependencies": {
1049
+ "@esbuild/aix-ppc64": "0.25.12",
1050
+ "@esbuild/android-arm": "0.25.12",
1051
+ "@esbuild/android-arm64": "0.25.12",
1052
+ "@esbuild/android-x64": "0.25.12",
1053
+ "@esbuild/darwin-arm64": "0.25.12",
1054
+ "@esbuild/darwin-x64": "0.25.12",
1055
+ "@esbuild/freebsd-arm64": "0.25.12",
1056
+ "@esbuild/freebsd-x64": "0.25.12",
1057
+ "@esbuild/linux-arm": "0.25.12",
1058
+ "@esbuild/linux-arm64": "0.25.12",
1059
+ "@esbuild/linux-ia32": "0.25.12",
1060
+ "@esbuild/linux-loong64": "0.25.12",
1061
+ "@esbuild/linux-mips64el": "0.25.12",
1062
+ "@esbuild/linux-ppc64": "0.25.12",
1063
+ "@esbuild/linux-riscv64": "0.25.12",
1064
+ "@esbuild/linux-s390x": "0.25.12",
1065
+ "@esbuild/linux-x64": "0.25.12",
1066
+ "@esbuild/netbsd-arm64": "0.25.12",
1067
+ "@esbuild/netbsd-x64": "0.25.12",
1068
+ "@esbuild/openbsd-arm64": "0.25.12",
1069
+ "@esbuild/openbsd-x64": "0.25.12",
1070
+ "@esbuild/openharmony-arm64": "0.25.12",
1071
+ "@esbuild/sunos-x64": "0.25.12",
1072
+ "@esbuild/win32-arm64": "0.25.12",
1073
+ "@esbuild/win32-ia32": "0.25.12",
1074
+ "@esbuild/win32-x64": "0.25.12"
1075
+ }
1076
+ },
1077
+ "node_modules/esm-env": {
1078
+ "version": "1.2.2",
1079
+ "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz",
1080
+ "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==",
1081
+ "dev": true,
1082
+ "license": "MIT"
1083
+ },
1084
+ "node_modules/esrap": {
1085
+ "version": "2.2.1",
1086
+ "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.1.tgz",
1087
+ "integrity": "sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==",
1088
+ "dev": true,
1089
+ "license": "MIT",
1090
+ "dependencies": {
1091
+ "@jridgewell/sourcemap-codec": "^1.4.15"
1092
+ }
1093
+ },
1094
+ "node_modules/fdir": {
1095
+ "version": "6.5.0",
1096
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
1097
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
1098
+ "dev": true,
1099
+ "license": "MIT",
1100
+ "engines": {
1101
+ "node": ">=12.0.0"
1102
+ },
1103
+ "peerDependencies": {
1104
+ "picomatch": "^3 || ^4"
1105
+ },
1106
+ "peerDependenciesMeta": {
1107
+ "picomatch": {
1108
+ "optional": true
1109
+ }
1110
+ }
1111
+ },
1112
+ "node_modules/fsevents": {
1113
+ "version": "2.3.3",
1114
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
1115
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1116
+ "dev": true,
1117
+ "hasInstallScript": true,
1118
+ "license": "MIT",
1119
+ "optional": true,
1120
+ "os": [
1121
+ "darwin"
1122
+ ],
1123
+ "engines": {
1124
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1125
+ }
1126
+ },
1127
+ "node_modules/is-fullwidth-code-point": {
1128
+ "version": "3.0.0",
1129
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1130
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1131
+ "license": "MIT",
1132
+ "optional": true,
1133
+ "engines": {
1134
+ "node": ">=8"
1135
+ }
1136
+ },
1137
+ "node_modules/is-reference": {
1138
+ "version": "3.0.3",
1139
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz",
1140
+ "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==",
1141
+ "dev": true,
1142
+ "license": "MIT",
1143
+ "dependencies": {
1144
+ "@types/estree": "^1.0.6"
1145
+ }
1146
+ },
1147
+ "node_modules/kleur": {
1148
+ "version": "4.1.5",
1149
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
1150
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
1151
+ "dev": true,
1152
+ "license": "MIT",
1153
+ "engines": {
1154
+ "node": ">=6"
1155
+ }
1156
+ },
1157
+ "node_modules/locate-character": {
1158
+ "version": "3.0.0",
1159
+ "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
1160
+ "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==",
1161
+ "dev": true,
1162
+ "license": "MIT"
1163
+ },
1164
+ "node_modules/magic-string": {
1165
+ "version": "0.30.21",
1166
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
1167
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
1168
+ "dev": true,
1169
+ "license": "MIT",
1170
+ "dependencies": {
1171
+ "@jridgewell/sourcemap-codec": "^1.5.5"
1172
+ }
1173
+ },
1174
+ "node_modules/marked": {
1175
+ "version": "17.0.1",
1176
+ "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.1.tgz",
1177
+ "integrity": "sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==",
1178
+ "license": "MIT",
1179
+ "bin": {
1180
+ "marked": "bin/marked.js"
1181
+ },
1182
+ "engines": {
1183
+ "node": ">= 20"
1184
+ }
1185
+ },
1186
+ "node_modules/mri": {
1187
+ "version": "1.2.0",
1188
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
1189
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
1190
+ "dev": true,
1191
+ "license": "MIT",
1192
+ "engines": {
1193
+ "node": ">=4"
1194
+ }
1195
+ },
1196
+ "node_modules/ms": {
1197
+ "version": "2.1.3",
1198
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1199
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1200
+ "dev": true,
1201
+ "license": "MIT"
1202
+ },
1203
+ "node_modules/nanoid": {
1204
+ "version": "3.3.11",
1205
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
1206
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
1207
+ "dev": true,
1208
+ "funding": [
1209
+ {
1210
+ "type": "github",
1211
+ "url": "https://github.com/sponsors/ai"
1212
+ }
1213
+ ],
1214
+ "license": "MIT",
1215
+ "bin": {
1216
+ "nanoid": "bin/nanoid.cjs"
1217
+ },
1218
+ "engines": {
1219
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1220
+ }
1221
+ },
1222
+ "node_modules/picocolors": {
1223
+ "version": "1.1.1",
1224
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
1225
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
1226
+ "dev": true,
1227
+ "license": "ISC"
1228
+ },
1229
+ "node_modules/picomatch": {
1230
+ "version": "4.0.3",
1231
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
1232
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
1233
+ "dev": true,
1234
+ "license": "MIT",
1235
+ "engines": {
1236
+ "node": ">=12"
1237
+ },
1238
+ "funding": {
1239
+ "url": "https://github.com/sponsors/jonschlinkert"
1240
+ }
1241
+ },
1242
+ "node_modules/postcss": {
1243
+ "version": "8.5.6",
1244
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
1245
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
1246
+ "dev": true,
1247
+ "funding": [
1248
+ {
1249
+ "type": "opencollective",
1250
+ "url": "https://opencollective.com/postcss/"
1251
+ },
1252
+ {
1253
+ "type": "tidelift",
1254
+ "url": "https://tidelift.com/funding/github/npm/postcss"
1255
+ },
1256
+ {
1257
+ "type": "github",
1258
+ "url": "https://github.com/sponsors/ai"
1259
+ }
1260
+ ],
1261
+ "license": "MIT",
1262
+ "dependencies": {
1263
+ "nanoid": "^3.3.11",
1264
+ "picocolors": "^1.1.1",
1265
+ "source-map-js": "^1.2.1"
1266
+ },
1267
+ "engines": {
1268
+ "node": "^10 || ^12 || >=14"
1269
+ }
1270
+ },
1271
+ "node_modules/readdirp": {
1272
+ "version": "4.1.2",
1273
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
1274
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
1275
+ "dev": true,
1276
+ "license": "MIT",
1277
+ "engines": {
1278
+ "node": ">= 14.18.0"
1279
+ },
1280
+ "funding": {
1281
+ "type": "individual",
1282
+ "url": "https://paulmillr.com/funding/"
1283
+ }
1284
+ },
1285
+ "node_modules/rollup": {
1286
+ "version": "4.53.5",
1287
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.5.tgz",
1288
+ "integrity": "sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==",
1289
+ "dev": true,
1290
+ "license": "MIT",
1291
+ "dependencies": {
1292
+ "@types/estree": "1.0.8"
1293
+ },
1294
+ "bin": {
1295
+ "rollup": "dist/bin/rollup"
1296
+ },
1297
+ "engines": {
1298
+ "node": ">=18.0.0",
1299
+ "npm": ">=8.0.0"
1300
+ },
1301
+ "optionalDependencies": {
1302
+ "@rollup/rollup-android-arm-eabi": "4.53.5",
1303
+ "@rollup/rollup-android-arm64": "4.53.5",
1304
+ "@rollup/rollup-darwin-arm64": "4.53.5",
1305
+ "@rollup/rollup-darwin-x64": "4.53.5",
1306
+ "@rollup/rollup-freebsd-arm64": "4.53.5",
1307
+ "@rollup/rollup-freebsd-x64": "4.53.5",
1308
+ "@rollup/rollup-linux-arm-gnueabihf": "4.53.5",
1309
+ "@rollup/rollup-linux-arm-musleabihf": "4.53.5",
1310
+ "@rollup/rollup-linux-arm64-gnu": "4.53.5",
1311
+ "@rollup/rollup-linux-arm64-musl": "4.53.5",
1312
+ "@rollup/rollup-linux-loong64-gnu": "4.53.5",
1313
+ "@rollup/rollup-linux-ppc64-gnu": "4.53.5",
1314
+ "@rollup/rollup-linux-riscv64-gnu": "4.53.5",
1315
+ "@rollup/rollup-linux-riscv64-musl": "4.53.5",
1316
+ "@rollup/rollup-linux-s390x-gnu": "4.53.5",
1317
+ "@rollup/rollup-linux-x64-gnu": "4.53.5",
1318
+ "@rollup/rollup-linux-x64-musl": "4.53.5",
1319
+ "@rollup/rollup-openharmony-arm64": "4.53.5",
1320
+ "@rollup/rollup-win32-arm64-msvc": "4.53.5",
1321
+ "@rollup/rollup-win32-ia32-msvc": "4.53.5",
1322
+ "@rollup/rollup-win32-x64-gnu": "4.53.5",
1323
+ "@rollup/rollup-win32-x64-msvc": "4.53.5",
1324
+ "fsevents": "~2.3.2"
1325
+ }
1326
+ },
1327
+ "node_modules/sade": {
1328
+ "version": "1.8.1",
1329
+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
1330
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
1331
+ "dev": true,
1332
+ "license": "MIT",
1333
+ "dependencies": {
1334
+ "mri": "^1.1.0"
1335
+ },
1336
+ "engines": {
1337
+ "node": ">=6"
1338
+ }
1339
+ },
1340
+ "node_modules/source-map-js": {
1341
+ "version": "1.2.1",
1342
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
1343
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
1344
+ "dev": true,
1345
+ "license": "BSD-3-Clause",
1346
+ "engines": {
1347
+ "node": ">=0.10.0"
1348
+ }
1349
+ },
1350
+ "node_modules/string-width": {
1351
+ "version": "4.2.3",
1352
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1353
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1354
+ "license": "MIT",
1355
+ "optional": true,
1356
+ "dependencies": {
1357
+ "emoji-regex": "^8.0.0",
1358
+ "is-fullwidth-code-point": "^3.0.0",
1359
+ "strip-ansi": "^6.0.1"
1360
+ },
1361
+ "engines": {
1362
+ "node": ">=8"
1363
+ }
1364
+ },
1365
+ "node_modules/strip-ansi": {
1366
+ "version": "6.0.1",
1367
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1368
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1369
+ "license": "MIT",
1370
+ "optional": true,
1371
+ "dependencies": {
1372
+ "ansi-regex": "^5.0.1"
1373
+ },
1374
+ "engines": {
1375
+ "node": ">=8"
1376
+ }
1377
+ },
1378
+ "node_modules/svelte": {
1379
+ "version": "5.46.0",
1380
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.46.0.tgz",
1381
+ "integrity": "sha512-ZhLtvroYxUxr+HQJfMZEDRsGsmU46x12RvAv/zi9584f5KOX7bUrEbhPJ7cKFmUvZTJXi/CFZUYwDC6M1FigPw==",
1382
+ "dev": true,
1383
+ "license": "MIT",
1384
+ "dependencies": {
1385
+ "@jridgewell/remapping": "^2.3.4",
1386
+ "@jridgewell/sourcemap-codec": "^1.5.0",
1387
+ "@sveltejs/acorn-typescript": "^1.0.5",
1388
+ "@types/estree": "^1.0.5",
1389
+ "acorn": "^8.12.1",
1390
+ "aria-query": "^5.3.1",
1391
+ "axobject-query": "^4.1.0",
1392
+ "clsx": "^2.1.1",
1393
+ "devalue": "^5.5.0",
1394
+ "esm-env": "^1.2.1",
1395
+ "esrap": "^2.2.1",
1396
+ "is-reference": "^3.0.3",
1397
+ "locate-character": "^3.0.0",
1398
+ "magic-string": "^0.30.11",
1399
+ "zimmerframe": "^1.1.2"
1400
+ },
1401
+ "engines": {
1402
+ "node": ">=18"
1403
+ }
1404
+ },
1405
+ "node_modules/svelte-check": {
1406
+ "version": "4.3.4",
1407
+ "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.3.4.tgz",
1408
+ "integrity": "sha512-DVWvxhBrDsd+0hHWKfjP99lsSXASeOhHJYyuKOFYJcP7ThfSCKgjVarE8XfuMWpS5JV3AlDf+iK1YGGo2TACdw==",
1409
+ "dev": true,
1410
+ "license": "MIT",
1411
+ "dependencies": {
1412
+ "@jridgewell/trace-mapping": "^0.3.25",
1413
+ "chokidar": "^4.0.1",
1414
+ "fdir": "^6.2.0",
1415
+ "picocolors": "^1.0.0",
1416
+ "sade": "^1.7.4"
1417
+ },
1418
+ "bin": {
1419
+ "svelte-check": "bin/svelte-check"
1420
+ },
1421
+ "engines": {
1422
+ "node": ">= 18.0.0"
1423
+ },
1424
+ "peerDependencies": {
1425
+ "svelte": "^4.0.0 || ^5.0.0-next.0",
1426
+ "typescript": ">=5.0.0"
1427
+ }
1428
+ },
1429
+ "node_modules/tinyglobby": {
1430
+ "version": "0.2.15",
1431
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
1432
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
1433
+ "dev": true,
1434
+ "license": "MIT",
1435
+ "dependencies": {
1436
+ "fdir": "^6.5.0",
1437
+ "picomatch": "^4.0.3"
1438
+ },
1439
+ "engines": {
1440
+ "node": ">=12.0.0"
1441
+ },
1442
+ "funding": {
1443
+ "url": "https://github.com/sponsors/SuperchupuDev"
1444
+ }
1445
+ },
1446
+ "node_modules/typescript": {
1447
+ "version": "5.8.3",
1448
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
1449
+ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
1450
+ "dev": true,
1451
+ "license": "Apache-2.0",
1452
+ "bin": {
1453
+ "tsc": "bin/tsc",
1454
+ "tsserver": "bin/tsserver"
1455
+ },
1456
+ "engines": {
1457
+ "node": ">=14.17"
1458
+ }
1459
+ },
1460
+ "node_modules/vite": {
1461
+ "version": "6.4.1",
1462
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz",
1463
+ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
1464
+ "dev": true,
1465
+ "license": "MIT",
1466
+ "dependencies": {
1467
+ "esbuild": "^0.25.0",
1468
+ "fdir": "^6.4.4",
1469
+ "picomatch": "^4.0.2",
1470
+ "postcss": "^8.5.3",
1471
+ "rollup": "^4.34.9",
1472
+ "tinyglobby": "^0.2.13"
1473
+ },
1474
+ "bin": {
1475
+ "vite": "bin/vite.js"
1476
+ },
1477
+ "engines": {
1478
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
1479
+ },
1480
+ "funding": {
1481
+ "url": "https://github.com/vitejs/vite?sponsor=1"
1482
+ },
1483
+ "optionalDependencies": {
1484
+ "fsevents": "~2.3.3"
1485
+ },
1486
+ "peerDependencies": {
1487
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
1488
+ "jiti": ">=1.21.0",
1489
+ "less": "*",
1490
+ "lightningcss": "^1.21.0",
1491
+ "sass": "*",
1492
+ "sass-embedded": "*",
1493
+ "stylus": "*",
1494
+ "sugarss": "*",
1495
+ "terser": "^5.16.0",
1496
+ "tsx": "^4.8.1",
1497
+ "yaml": "^2.4.2"
1498
+ },
1499
+ "peerDependenciesMeta": {
1500
+ "@types/node": {
1501
+ "optional": true
1502
+ },
1503
+ "jiti": {
1504
+ "optional": true
1505
+ },
1506
+ "less": {
1507
+ "optional": true
1508
+ },
1509
+ "lightningcss": {
1510
+ "optional": true
1511
+ },
1512
+ "sass": {
1513
+ "optional": true
1514
+ },
1515
+ "sass-embedded": {
1516
+ "optional": true
1517
+ },
1518
+ "stylus": {
1519
+ "optional": true
1520
+ },
1521
+ "sugarss": {
1522
+ "optional": true
1523
+ },
1524
+ "terser": {
1525
+ "optional": true
1526
+ },
1527
+ "tsx": {
1528
+ "optional": true
1529
+ },
1530
+ "yaml": {
1531
+ "optional": true
1532
+ }
1533
+ }
1534
+ },
1535
+ "node_modules/vitefu": {
1536
+ "version": "1.1.1",
1537
+ "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz",
1538
+ "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==",
1539
+ "dev": true,
1540
+ "license": "MIT",
1541
+ "workspaces": [
1542
+ "tests/deps/*",
1543
+ "tests/projects/*",
1544
+ "tests/projects/workspace/packages/*"
1545
+ ],
1546
+ "peerDependencies": {
1547
+ "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0"
1548
+ },
1549
+ "peerDependenciesMeta": {
1550
+ "vite": {
1551
+ "optional": true
1552
+ }
1553
+ }
1554
+ },
1555
+ "node_modules/zimmerframe": {
1556
+ "version": "1.1.4",
1557
+ "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz",
1558
+ "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==",
1559
+ "dev": true,
1560
+ "license": "MIT"
1561
+ }
1562
+ }
1563
+ }
package.json CHANGED
@@ -16,5 +16,9 @@
16
  "svelte-check": "^4.1.6",
17
  "typescript": "~5.8.3",
18
  "vite": "^6.3.5"
 
 
 
 
19
  }
20
  }
 
16
  "svelte-check": "^4.1.6",
17
  "typescript": "~5.8.3",
18
  "vite": "^6.3.5"
19
+ },
20
+ "dependencies": {
21
+ "@huggingface/hub": "^2.7.1",
22
+ "marked": "^17.0.1"
23
  }
24
  }
src/App.svelte CHANGED
@@ -1,47 +1,14 @@
1
  <script lang="ts">
2
- import svelteLogo from './assets/svelte.svg'
3
- import viteLogo from '/vite.svg'
4
- import Counter from './lib/Counter.svelte'
5
  </script>
6
 
7
  <main>
8
- <div>
9
- <a href="https://vite.dev" target="_blank" rel="noreferrer">
10
- <img src={viteLogo} class="logo" alt="Vite Logo" />
11
- </a>
12
- <a href="https://svelte.dev" target="_blank" rel="noreferrer">
13
- <img src={svelteLogo} class="logo svelte" alt="Svelte Logo" />
14
- </a>
15
- </div>
16
- <h1>Vite + Svelte</h1>
17
-
18
- <div class="card">
19
- <Counter />
20
- </div>
21
-
22
- <p>
23
- Check out <a href="https://github.com/sveltejs/kit#readme" target="_blank" rel="noreferrer">SvelteKit</a>, the official Svelte app framework powered by Vite!
24
- </p>
25
-
26
- <p class="read-the-docs">
27
- Click on the Vite and Svelte logos to learn more
28
- </p>
29
  </main>
30
 
31
  <style>
32
- .logo {
33
- height: 6em;
34
- padding: 1.5em;
35
- will-change: filter;
36
- transition: filter 300ms;
37
- }
38
- .logo:hover {
39
- filter: drop-shadow(0 0 2em #646cffaa);
40
- }
41
- .logo.svelte:hover {
42
- filter: drop-shadow(0 0 2em #ff3e00aa);
43
- }
44
- .read-the-docs {
45
- color: #888;
46
  }
47
  </style>
 
1
  <script lang="ts">
2
+ import DatasetViewer from './lib/DatasetViewer.svelte'
 
 
3
  </script>
4
 
5
  <main>
6
+ <DatasetViewer />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  </main>
8
 
9
  <style>
10
+ main {
11
+ width: 100%;
12
+ max-width: none;
 
 
 
 
 
 
 
 
 
 
 
13
  }
14
  </style>
src/lib/DatasetViewer.svelte ADDED
@@ -0,0 +1,515 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ import { fetchAllRows } from './huggingfaceApi';
3
+ import type { TermDefinition, EquivalencyScore } from './types';
4
+ import { marked } from 'marked';
5
+
6
+ // Available jurisdictions
7
+ const availableJurisdictions = [
8
+ { code: 'en-us', label: 'English (US)' },
9
+ { code: 'sv-se', label: 'Swedish (SE)' }
10
+ ];
11
+
12
+ // Hardcoded configuration
13
+ const dataset = 'tbrugger/structured-answers';
14
+ const scoresDataset = 'tbrugger/equivalency-scores';
15
+
16
+ // Form inputs
17
+ let jurisdiction1 = $state('en-us');
18
+ let jurisdiction2 = $state('sv-se');
19
+
20
+ // Data state
21
+ let data1 = $state<TermDefinition[]>([]);
22
+ let data2 = $state<TermDefinition[]>([]);
23
+ let equivalencyScores = $state<EquivalencyScore[]>([]);
24
+ let selectedTerm1 = $state<string | null>(null);
25
+ let selectedTerm2 = $state<string | null>(null);
26
+
27
+ // UI state
28
+ let loading = $state(false);
29
+ let error = $state('');
30
+ let hasLoaded = $state(false);
31
+
32
+ // Track previous values to detect changes
33
+ let prevJurisdiction1 = $state('en-us');
34
+ let prevJurisdiction2 = $state('sv-se');
35
+
36
+ // Reload when jurisdictions change
37
+ $effect(() => {
38
+ if (hasLoaded && (jurisdiction1 !== prevJurisdiction1 || jurisdiction2 !== prevJurisdiction2)) {
39
+ prevJurisdiction1 = jurisdiction1;
40
+ prevJurisdiction2 = jurisdiction2;
41
+ loadComparison();
42
+ }
43
+ });
44
+
45
+ async function loadComparison() {
46
+ if (jurisdiction1 === jurisdiction2) {
47
+ error = 'Please select two different jurisdictions';
48
+ return;
49
+ }
50
+
51
+ loading = true;
52
+ error = '';
53
+ data1 = [];
54
+ data2 = [];
55
+ equivalencyScores = [];
56
+ selectedTerm1 = null;
57
+ selectedTerm2 = null;
58
+ hasLoaded = false;
59
+
60
+ try {
61
+ // Determine the config name for equivalency scores (alphabetically sorted)
62
+ const sortedJurisdictions = [jurisdiction1, jurisdiction2].sort();
63
+ const scoresConfig = `${sortedJurisdictions[0]}_${sortedJurisdictions[1]}`;
64
+
65
+ // Fetch both jurisdictions and equivalency scores in parallel
66
+ const [rows1, rows2, scoresRows] = await Promise.all([
67
+ fetchAllRows(dataset, jurisdiction1, 'train', undefined),
68
+ fetchAllRows(dataset, jurisdiction2, 'train', undefined),
69
+ fetchAllRows(scoresDataset, scoresConfig, 'train', undefined)
70
+ ]);
71
+
72
+ data1 = rows1 as TermDefinition[];
73
+ data2 = rows2 as TermDefinition[];
74
+ equivalencyScores = scoresRows as EquivalencyScore[];
75
+
76
+ console.log('Jurisdiction 1 data:', data1);
77
+ console.log('Jurisdiction 2 data:', data2);
78
+ console.log('Equivalency scores:', equivalencyScores);
79
+
80
+ hasLoaded = true;
81
+
82
+ // Auto-select first term if available
83
+ if (data1.length > 0) selectedTerm1 = data1[0].term;
84
+ if (data2.length > 0) selectedTerm2 = data2[0].term;
85
+
86
+ } catch (e) {
87
+ error = e instanceof Error ? e.message : 'Failed to load jurisdictions';
88
+ console.error('Jurisdiction loading error:', e);
89
+ } finally {
90
+ loading = false;
91
+ }
92
+ }
93
+
94
+ function getSelectedDefinition1(): string {
95
+ if (!selectedTerm1) return '';
96
+ const found = data1.find(item => item.term === selectedTerm1);
97
+ return found?.definition || '';
98
+ }
99
+
100
+ function getSelectedDefinition2(): string {
101
+ if (!selectedTerm2) return '';
102
+ const found = data2.find(item => item.term === selectedTerm2);
103
+ return found?.definition || '';
104
+ }
105
+
106
+ function normalizeTermForComparison(term: string): string {
107
+ // Replace underscores with spaces and normalize whitespace for comparison
108
+ return term.replace(/_/g, ' ').replace(/\s+/g, ' ').trim().toLowerCase();
109
+ }
110
+
111
+ function getSimilarityScore(): EquivalencyScore | null {
112
+ if (!selectedTerm1 || !selectedTerm2 || equivalencyScores.length === 0) {
113
+ return null;
114
+ }
115
+
116
+ // Normalize selected terms for comparison
117
+ const normalizedTerm1 = normalizeTermForComparison(selectedTerm1);
118
+ const normalizedTerm2 = normalizeTermForComparison(selectedTerm2);
119
+
120
+ // Look for the score in both directions, comparing normalized terms
121
+ const score = equivalencyScores.find(s => {
122
+ const normalizedJ1 = normalizeTermForComparison(s.term_j1);
123
+ const normalizedJ2 = normalizeTermForComparison(s.term_j2);
124
+
125
+ return (
126
+ (normalizedJ1 === normalizedTerm1 && normalizedJ2 === normalizedTerm2) ||
127
+ (normalizedJ1 === normalizedTerm2 && normalizedJ2 === normalizedTerm1)
128
+ );
129
+ });
130
+
131
+ return score || null;
132
+ }
133
+ </script>
134
+
135
+ <div class="jurisdiction-comparison">
136
+ <h2>Jurisdiction Term Comparison</h2>
137
+
138
+ <div class="form">
139
+ <div class="form-row">
140
+ <div class="form-group">
141
+ <label for="jurisdiction1">Jurisdiction 1:</label>
142
+ <select id="jurisdiction1" bind:value={jurisdiction1} disabled={loading}>
143
+ {#each availableJurisdictions as jur}
144
+ <option value={jur.code}>{jur.label}</option>
145
+ {/each}
146
+ </select>
147
+ </div>
148
+
149
+ <div class="form-group">
150
+ <label for="jurisdiction2">Jurisdiction 2:</label>
151
+ <select id="jurisdiction2" bind:value={jurisdiction2} disabled={loading}>
152
+ {#each availableJurisdictions as jur}
153
+ <option value={jur.code}>{jur.label}</option>
154
+ {/each}
155
+ </select>
156
+ </div>
157
+ </div>
158
+
159
+ <button onclick={loadComparison} disabled={loading}>
160
+ {loading ? 'Loading...' : 'Load Comparison'}
161
+ </button>
162
+ </div>
163
+
164
+ {#if error}
165
+ <div class="error">
166
+ <strong>Error:</strong> {error}
167
+ </div>
168
+ {/if}
169
+
170
+ {#if hasLoaded}
171
+ <div class="comparison-container">
172
+ <!-- Jurisdiction 1 -->
173
+ <div class="jurisdiction-column">
174
+ <h3>{availableJurisdictions.find(j => j.code === jurisdiction1)?.label}</h3>
175
+ <div class="term-selector">
176
+ <label for="term1">Select Term:</label>
177
+ <select id="term1" bind:value={selectedTerm1}>
178
+ {#each data1 as item}
179
+ <option value={item.term}>{item.term}</option>
180
+ {/each}
181
+ </select>
182
+ </div>
183
+ {#if selectedTerm1}
184
+ <div class="definition-box">
185
+ <h4>Definition:</h4>
186
+ <p>{getSelectedDefinition1()}</p>
187
+ </div>
188
+ {/if}
189
+ <div class="info">
190
+ <small>{data1.length} terms available</small>
191
+ </div>
192
+ </div>
193
+
194
+ <!-- Jurisdiction 2 -->
195
+ <div class="jurisdiction-column">
196
+ <h3>{availableJurisdictions.find(j => j.code === jurisdiction2)?.label}</h3>
197
+ <div class="term-selector">
198
+ <label for="term2">Select Term:</label>
199
+ <select id="term2" bind:value={selectedTerm2}>
200
+ {#each data2 as item}
201
+ <option value={item.term}>{item.term}</option>
202
+ {/each}
203
+ </select>
204
+ </div>
205
+ {#if selectedTerm2}
206
+ <div class="definition-box">
207
+ <h4>Definition:</h4>
208
+ <p>{getSelectedDefinition2()}</p>
209
+ </div>
210
+ {/if}
211
+ <div class="info">
212
+ <small>{data2.length} terms available</small>
213
+ </div>
214
+ </div>
215
+ </div>
216
+
217
+ <!-- Similarity Score Display -->
218
+ {#if selectedTerm1 && selectedTerm2}
219
+ {@const score = getSimilarityScore()}
220
+ {#if score}
221
+ <div class="similarity-score">
222
+ <h3>Equivalency Score</h3>
223
+ <div class="score-display">
224
+ <strong>{score.aggregated_similarity_score.toFixed(2)}</strong>
225
+ </div>
226
+ {#if score.comparative_law_note}
227
+ <div class="comparative-note">
228
+ <h4>Comparative Law Note</h4>
229
+ <div class="markdown-content">
230
+ {@html marked(score.comparative_law_note)}
231
+ </div>
232
+ </div>
233
+ {/if}
234
+ </div>
235
+ {:else}
236
+ <div class="similarity-score no-score">
237
+ <p>No equivalency score found for this term pair.</p>
238
+ </div>
239
+ {/if}
240
+ {/if}
241
+ {/if}
242
+ </div>
243
+
244
+ <style>
245
+ .jurisdiction-comparison {
246
+ max-width: 1400px;
247
+ margin: 0 auto;
248
+ padding: 2rem;
249
+ color: #333;
250
+ }
251
+
252
+ h2 {
253
+ margin-bottom: 1.5rem;
254
+ color: #333;
255
+ text-align: center;
256
+ }
257
+
258
+ h3 {
259
+ margin: 0 0 1rem 0;
260
+ color: #444;
261
+ font-size: 1.25rem;
262
+ }
263
+
264
+ h4 {
265
+ margin: 0 0 0.5rem 0;
266
+ color: #555;
267
+ font-size: 1rem;
268
+ font-weight: 600;
269
+ }
270
+
271
+ .form {
272
+ background: #f5f5f5;
273
+ padding: 1.5rem;
274
+ border-radius: 8px;
275
+ margin-bottom: 2rem;
276
+ color: #333;
277
+ }
278
+
279
+ .form-group {
280
+ margin-bottom: 1rem;
281
+ }
282
+
283
+ .form-row {
284
+ display: grid;
285
+ grid-template-columns: 1fr 1fr;
286
+ gap: 1rem;
287
+ }
288
+
289
+ label {
290
+ display: block;
291
+ margin-bottom: 0.5rem;
292
+ font-weight: 500;
293
+ color: #555;
294
+ }
295
+
296
+ input, select {
297
+ width: 100%;
298
+ padding: 0.5rem;
299
+ border: 1px solid #ddd;
300
+ border-radius: 4px;
301
+ font-size: 1rem;
302
+ box-sizing: border-box;
303
+ background: white;
304
+ color: #333;
305
+ }
306
+
307
+ input:disabled, select:disabled {
308
+ background: #e9e9e9;
309
+ cursor: not-allowed;
310
+ }
311
+
312
+ button {
313
+ background: #646cff;
314
+ color: white;
315
+ padding: 0.75rem 1.5rem;
316
+ border: none;
317
+ border-radius: 4px;
318
+ font-size: 1rem;
319
+ cursor: pointer;
320
+ transition: background 0.2s;
321
+ width: 100%;
322
+ }
323
+
324
+ button:hover:not(:disabled) {
325
+ background: #535bf2;
326
+ }
327
+
328
+ button:disabled {
329
+ background: #ccc;
330
+ cursor: not-allowed;
331
+ }
332
+
333
+ .error {
334
+ background: #fee;
335
+ color: #c33;
336
+ padding: 1rem;
337
+ border-radius: 4px;
338
+ margin-bottom: 1rem;
339
+ border: 1px solid #fcc;
340
+ }
341
+
342
+ .comparison-container {
343
+ display: grid;
344
+ grid-template-columns: 1fr 1fr;
345
+ gap: 2rem;
346
+ margin-top: 2rem;
347
+ }
348
+
349
+ .jurisdiction-column {
350
+ background: white;
351
+ padding: 1.5rem;
352
+ border-radius: 8px;
353
+ border: 1px solid #ddd;
354
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
355
+ color: #333;
356
+ }
357
+
358
+ .term-selector {
359
+ margin-bottom: 1.5rem;
360
+ }
361
+
362
+ .term-selector select {
363
+ font-size: 1rem;
364
+ padding: 0.75rem;
365
+ }
366
+
367
+ .definition-box {
368
+ background: #f9f9f9;
369
+ padding: 1.25rem;
370
+ border-radius: 6px;
371
+ border-left: 4px solid #646cff;
372
+ margin-bottom: 1rem;
373
+ min-height: 100px;
374
+ }
375
+
376
+ .definition-box p {
377
+ margin: 0;
378
+ line-height: 1.6;
379
+ color: #333;
380
+ }
381
+
382
+ .info {
383
+ color: #666;
384
+ font-size: 0.875rem;
385
+ }
386
+
387
+ .info small {
388
+ font-size: 0.875rem;
389
+ }
390
+
391
+ .similarity-score {
392
+ background: white;
393
+ padding: 1.5rem;
394
+ border-radius: 8px;
395
+ border: 2px solid #646cff;
396
+ margin-top: 2rem;
397
+ color: #333;
398
+ }
399
+
400
+ .similarity-score h3 {
401
+ margin-top: 0;
402
+ margin-bottom: 1rem;
403
+ color: #646cff;
404
+ text-align: center;
405
+ }
406
+
407
+ .similarity-score.no-score {
408
+ border-color: #ddd;
409
+ background: #f9f9f9;
410
+ text-align: center;
411
+ }
412
+
413
+ .similarity-score.no-score p {
414
+ margin: 0;
415
+ color: #666;
416
+ }
417
+
418
+ .score-display {
419
+ text-align: center;
420
+ }
421
+
422
+ .score-display strong {
423
+ display: block;
424
+ font-size: 3rem;
425
+ color: #646cff;
426
+ font-weight: 600;
427
+ }
428
+
429
+ .comparative-note {
430
+ margin-top: 1.5rem;
431
+ padding-top: 1.5rem;
432
+ border-top: 1px solid #e0e0e0;
433
+ }
434
+
435
+ .comparative-note h4 {
436
+ margin: 0 0 0.75rem 0;
437
+ color: #555;
438
+ font-size: 1rem;
439
+ font-weight: 600;
440
+ }
441
+
442
+ .markdown-content {
443
+ line-height: 1.6;
444
+ color: #333;
445
+ text-align: left;
446
+ }
447
+
448
+ .markdown-content :global(h1),
449
+ .markdown-content :global(h2),
450
+ .markdown-content :global(h3),
451
+ .markdown-content :global(h4),
452
+ .markdown-content :global(h5),
453
+ .markdown-content :global(h6) {
454
+ margin-top: 1em;
455
+ margin-bottom: 0.5em;
456
+ font-weight: 600;
457
+ }
458
+
459
+ .markdown-content :global(p) {
460
+ margin: 0 0 1em 0;
461
+ }
462
+
463
+ .markdown-content :global(ul),
464
+ .markdown-content :global(ol) {
465
+ margin: 0 0 1em 0;
466
+ padding-left: 2em;
467
+ }
468
+
469
+ .markdown-content :global(code) {
470
+ background: #f5f5f5;
471
+ padding: 0.2em 0.4em;
472
+ border-radius: 3px;
473
+ font-family: monospace;
474
+ font-size: 0.9em;
475
+ }
476
+
477
+ .markdown-content :global(pre) {
478
+ background: #f5f5f5;
479
+ padding: 1em;
480
+ border-radius: 4px;
481
+ overflow-x: auto;
482
+ }
483
+
484
+ .markdown-content :global(pre code) {
485
+ background: none;
486
+ padding: 0;
487
+ }
488
+
489
+ .markdown-content :global(blockquote) {
490
+ border-left: 4px solid #646cff;
491
+ padding-left: 1em;
492
+ margin: 0 0 1em 0;
493
+ color: #666;
494
+ }
495
+
496
+ .markdown-content :global(a) {
497
+ color: #646cff;
498
+ text-decoration: none;
499
+ }
500
+
501
+ .markdown-content :global(a:hover) {
502
+ text-decoration: underline;
503
+ }
504
+
505
+ @media (max-width: 768px) {
506
+ .comparison-container {
507
+ grid-template-columns: 1fr;
508
+ gap: 1.5rem;
509
+ }
510
+
511
+ .form-row {
512
+ grid-template-columns: 1fr;
513
+ }
514
+ }
515
+ </style>
src/lib/huggingfaceApi.ts ADDED
@@ -0,0 +1,158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Hugging Face Dataset Server API Service
2
+ import type {
3
+ DatasetRowsResponse,
4
+ DatasetFirstRowsResponse,
5
+ DatasetSplitsResponse,
6
+ DatasetError,
7
+ } from "./types";
8
+
9
+ const BASE_URL = "https://datasets-server.huggingface.co";
10
+
11
+ /**
12
+ * Fetch the first 100 rows of a dataset
13
+ */
14
+ export async function fetchFirstRows(
15
+ dataset: string,
16
+ config: string = "default",
17
+ split: string = "train",
18
+ token?: string
19
+ ): Promise<DatasetFirstRowsResponse> {
20
+ const url = `${BASE_URL}/first-rows?dataset=${encodeURIComponent(
21
+ dataset
22
+ )}&config=${encodeURIComponent(config)}&split=${encodeURIComponent(split)}`;
23
+
24
+ const headers: HeadersInit = {};
25
+ if (token) {
26
+ headers["Authorization"] = `Bearer ${token}`;
27
+ }
28
+
29
+ const response = await fetch(url, { headers });
30
+
31
+ if (!response.ok) {
32
+ const error: DatasetError = await response.json();
33
+ throw new Error(
34
+ error.error || `Failed to fetch dataset: ${response.statusText}`
35
+ );
36
+ }
37
+
38
+ return response.json();
39
+ }
40
+
41
+ /**
42
+ * Fetch paginated rows from a dataset
43
+ * @param offset Starting row index (0-based)
44
+ * @param length Number of rows to fetch (max 100)
45
+ */
46
+ export async function fetchRows(
47
+ dataset: string,
48
+ config: string = "default",
49
+ split: string = "train",
50
+ offset: number = 0,
51
+ length: number = 100,
52
+ token?: string
53
+ ): Promise<DatasetRowsResponse> {
54
+ const url = `${BASE_URL}/rows?dataset=${encodeURIComponent(
55
+ dataset
56
+ )}&config=${encodeURIComponent(config)}&split=${encodeURIComponent(
57
+ split
58
+ )}&offset=${offset}&length=${length}`;
59
+
60
+ const headers: HeadersInit = {};
61
+ if (token) {
62
+ headers["Authorization"] = `Bearer ${token}`;
63
+ }
64
+
65
+ const response = await fetch(url, { headers });
66
+
67
+ if (!response.ok) {
68
+ const error: DatasetError = await response.json();
69
+ throw new Error(
70
+ error.error || `Failed to fetch dataset: ${response.statusText}`
71
+ );
72
+ }
73
+
74
+ return response.json();
75
+ }
76
+
77
+ /**
78
+ * List available splits for a dataset
79
+ */
80
+ export async function fetchSplits(
81
+ dataset: string,
82
+ token?: string
83
+ ): Promise<DatasetSplitsResponse> {
84
+ const url = `${BASE_URL}/splits?dataset=${encodeURIComponent(dataset)}`;
85
+
86
+ const headers: HeadersInit = {};
87
+ if (token) {
88
+ headers["Authorization"] = `Bearer ${token}`;
89
+ }
90
+
91
+ const response = await fetch(url, { headers });
92
+
93
+ if (!response.ok) {
94
+ const error: DatasetError = await response.json();
95
+ throw new Error(
96
+ error.error || `Failed to fetch splits: ${response.statusText}`
97
+ );
98
+ }
99
+
100
+ return response.json();
101
+ }
102
+
103
+ /**
104
+ * Check if a dataset is valid and accessible
105
+ */
106
+ export async function checkDatasetValid(
107
+ dataset: string,
108
+ token?: string
109
+ ): Promise<boolean> {
110
+ const url = `${BASE_URL}/is-valid?dataset=${encodeURIComponent(dataset)}`;
111
+
112
+ const headers: HeadersInit = {};
113
+ if (token) {
114
+ headers["Authorization"] = `Bearer ${token}`;
115
+ }
116
+
117
+ const response = await fetch(url, { headers });
118
+
119
+ if (!response.ok) {
120
+ return false;
121
+ }
122
+
123
+ const data = await response.json();
124
+ return data.valid === true;
125
+ }
126
+
127
+ /**
128
+ * Fetch all rows from a jurisdiction config (for term/definition data)
129
+ */
130
+ export async function fetchAllRows(
131
+ dataset: string,
132
+ config: string,
133
+ split: string = "train",
134
+ token?: string
135
+ ): Promise<any[]> {
136
+ const allRows: any[] = [];
137
+ let offset = 0;
138
+ const batchSize = 100;
139
+ let hasMore = true;
140
+
141
+ while (hasMore) {
142
+ const response = await fetchRows(
143
+ dataset,
144
+ config,
145
+ split,
146
+ offset,
147
+ batchSize,
148
+ token
149
+ );
150
+ const rows = response.rows.map((r) => r.row);
151
+ allRows.push(...rows);
152
+
153
+ offset += rows.length;
154
+ hasMore = offset < response.num_rows_total;
155
+ }
156
+
157
+ return allRows;
158
+ }
src/lib/types.ts ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Hugging Face Dataset Server API Types
2
+
3
+ export interface DatasetRow {
4
+ [key: string]: any;
5
+ }
6
+
7
+ export interface DatasetFeature {
8
+ _type: string;
9
+ [key: string]: any;
10
+ }
11
+
12
+ export interface DatasetFeatures {
13
+ [key: string]: DatasetFeature;
14
+ }
15
+
16
+ export interface DatasetRowsResponse {
17
+ features: DatasetFeature[];
18
+ rows: {
19
+ row_idx: number;
20
+ row: DatasetRow;
21
+ truncated_cells: string[];
22
+ }[];
23
+ num_rows_total: number;
24
+ num_rows_per_page: number;
25
+ partial: boolean;
26
+ }
27
+
28
+ export interface DatasetFirstRowsResponse {
29
+ features: DatasetFeature[];
30
+ rows: {
31
+ row_idx: number;
32
+ row: DatasetRow;
33
+ truncated_cells: string[];
34
+ }[];
35
+ truncated: boolean;
36
+ }
37
+
38
+ export interface DatasetSplit {
39
+ dataset: string;
40
+ config: string;
41
+ split: string;
42
+ }
43
+
44
+ export interface DatasetSplitsResponse {
45
+ splits: DatasetSplit[];
46
+ pending: any[];
47
+ failed: any[];
48
+ partial: boolean;
49
+ }
50
+
51
+ export interface DatasetError {
52
+ error: string;
53
+ message?: string;
54
+ }
55
+
56
+ export interface DatasetConfig {
57
+ dataset: string;
58
+ token?: string;
59
+ config?: string;
60
+ split?: string;
61
+ }
62
+
63
+ export interface TermDefinition {
64
+ term: string;
65
+ definition: string;
66
+ }
67
+
68
+ export interface JurisdictionData {
69
+ jurisdiction: string;
70
+ terms: TermDefinition[];
71
+ }
72
+
73
+ export interface ComparisonState {
74
+ jurisdiction1: string;
75
+ jurisdiction2: string;
76
+ data1: TermDefinition[];
77
+ data2: TermDefinition[];
78
+ selectedTerm1: string | null;
79
+ selectedTerm2: string | null;
80
+ }
81
+
82
+ export interface EquivalencyScore {
83
+ term_j1: string;
84
+ term_j2: string;
85
+ aggregated_similarity_score: number;
86
+ comparative_law_note: string;
87
+ }