[READ-ONLY] Mirror of https://github.com/probablykasper/kadium. App for staying ontop of YouTube channels' uploads kadium.kasper.space
linux macos notifications tauri windows youtube
0

Configure Feed

Select the types of activity you want to include in your feed.

Move to SvelteKit

Kasper (Nov 19, 2023, 12:09 PM +0100) 2c8eb6f8 c10851a4

+476 -963
+6 -1
.gitignore
··· 1 1 .DS_Store 2 2 node_modules 3 - /dist 3 + /build 4 + /.svelte-kit 5 + /package 6 + .env 7 + .env.* 8 + 4 9 /src-tauri/target 5 10 /src-tauri/WixTools 6 11 /src-tauri/appdata
-10
index.html
··· 1 - <!DOCTYPE html> 2 - <html lang="en"> 3 - <head> 4 - <meta charset="UTF-8" /> 5 - <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 - </head> 7 - <body> 8 - <script type="module" src="src/main.ts"></script> 9 - </body> 10 - </html>
+174 -838
package-lock.json
··· 8 8 "website" 9 9 ], 10 10 "devDependencies": { 11 - "@sveltejs/vite-plugin-svelte": "^3.0.0", 11 + "@sveltejs/adapter-static": "^2.0.3", 12 + "@sveltejs/kit": "^1.27.6", 12 13 "@tauri-apps/api": "^1.5.1", 13 14 "@tauri-apps/cli": "^1.5.6", 14 - "@tsconfig/svelte": "^5.0.2", 15 15 "@typescript-eslint/eslint-plugin": "^6.11.0", 16 16 "@typescript-eslint/parser": "^6.11.0", 17 17 "autoprefixer": "^10.4.16", ··· 19 19 "eslint": "^8.54.0", 20 20 "eslint-config-prettier": "^9.0.0", 21 21 "eslint-plugin-svelte": "^2.35.0", 22 - "modal-svelte": "^1.1.1", 22 + "modal-svelte": "^1.2.0", 23 23 "postcss": "^8.4.31", 24 24 "prettier": "^3.1.0", 25 25 "prettier-plugin-svelte": "^3.1.0", ··· 29 29 "tauri-specta": "^0.0.2", 30 30 "tinro": "^0.6.12", 31 31 "typescript": "^5.2.2", 32 - "vite": "^5.0.0" 32 + "vite": "^4.5.0" 33 33 } 34 34 }, 35 35 "node_modules/@aashutoshrathi/word-wrap": { ··· 68 68 } 69 69 }, 70 70 "node_modules/@esbuild/android-arm": { 71 - "version": "0.19.5", 72 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", 73 - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", 71 + "version": "0.18.20", 72 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", 73 + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", 74 74 "cpu": [ 75 75 "arm" 76 76 ], ··· 84 84 } 85 85 }, 86 86 "node_modules/@esbuild/android-arm64": { 87 - "version": "0.19.5", 88 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", 89 - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", 87 + "version": "0.18.20", 88 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", 89 + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", 90 90 "cpu": [ 91 91 "arm64" 92 92 ], ··· 100 100 } 101 101 }, 102 102 "node_modules/@esbuild/android-x64": { 103 - "version": "0.19.5", 104 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", 105 - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", 103 + "version": "0.18.20", 104 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", 105 + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", 106 106 "cpu": [ 107 107 "x64" 108 108 ], ··· 116 116 } 117 117 }, 118 118 "node_modules/@esbuild/darwin-arm64": { 119 - "version": "0.19.5", 120 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", 121 - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", 119 + "version": "0.18.20", 120 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", 121 + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", 122 122 "cpu": [ 123 123 "arm64" 124 124 ], ··· 132 132 } 133 133 }, 134 134 "node_modules/@esbuild/darwin-x64": { 135 - "version": "0.19.5", 136 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", 137 - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", 135 + "version": "0.18.20", 136 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", 137 + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", 138 138 "cpu": [ 139 139 "x64" 140 140 ], ··· 148 148 } 149 149 }, 150 150 "node_modules/@esbuild/freebsd-arm64": { 151 - "version": "0.19.5", 152 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", 153 - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", 151 + "version": "0.18.20", 152 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", 153 + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", 154 154 "cpu": [ 155 155 "arm64" 156 156 ], ··· 164 164 } 165 165 }, 166 166 "node_modules/@esbuild/freebsd-x64": { 167 - "version": "0.19.5", 168 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", 169 - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", 167 + "version": "0.18.20", 168 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", 169 + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", 170 170 "cpu": [ 171 171 "x64" 172 172 ], ··· 180 180 } 181 181 }, 182 182 "node_modules/@esbuild/linux-arm": { 183 - "version": "0.19.5", 184 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", 185 - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", 183 + "version": "0.18.20", 184 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", 185 + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", 186 186 "cpu": [ 187 187 "arm" 188 188 ], ··· 196 196 } 197 197 }, 198 198 "node_modules/@esbuild/linux-arm64": { 199 - "version": "0.19.5", 200 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", 201 - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", 199 + "version": "0.18.20", 200 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", 201 + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", 202 202 "cpu": [ 203 203 "arm64" 204 204 ], ··· 212 212 } 213 213 }, 214 214 "node_modules/@esbuild/linux-ia32": { 215 - "version": "0.19.5", 216 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", 217 - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", 215 + "version": "0.18.20", 216 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", 217 + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", 218 218 "cpu": [ 219 219 "ia32" 220 220 ], ··· 228 228 } 229 229 }, 230 230 "node_modules/@esbuild/linux-loong64": { 231 - "version": "0.19.5", 232 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", 233 - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", 231 + "version": "0.18.20", 232 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", 233 + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", 234 234 "cpu": [ 235 235 "loong64" 236 236 ], ··· 244 244 } 245 245 }, 246 246 "node_modules/@esbuild/linux-mips64el": { 247 - "version": "0.19.5", 248 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", 249 - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", 247 + "version": "0.18.20", 248 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", 249 + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", 250 250 "cpu": [ 251 251 "mips64el" 252 252 ], ··· 260 260 } 261 261 }, 262 262 "node_modules/@esbuild/linux-ppc64": { 263 - "version": "0.19.5", 264 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", 265 - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", 263 + "version": "0.18.20", 264 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", 265 + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", 266 266 "cpu": [ 267 267 "ppc64" 268 268 ], ··· 276 276 } 277 277 }, 278 278 "node_modules/@esbuild/linux-riscv64": { 279 - "version": "0.19.5", 280 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", 281 - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", 279 + "version": "0.18.20", 280 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", 281 + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", 282 282 "cpu": [ 283 283 "riscv64" 284 284 ], ··· 292 292 } 293 293 }, 294 294 "node_modules/@esbuild/linux-s390x": { 295 - "version": "0.19.5", 296 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", 297 - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", 295 + "version": "0.18.20", 296 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", 297 + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", 298 298 "cpu": [ 299 299 "s390x" 300 300 ], ··· 308 308 } 309 309 }, 310 310 "node_modules/@esbuild/linux-x64": { 311 - "version": "0.19.5", 312 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", 313 - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", 311 + "version": "0.18.20", 312 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", 313 + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", 314 314 "cpu": [ 315 315 "x64" 316 316 ], ··· 324 324 } 325 325 }, 326 326 "node_modules/@esbuild/netbsd-x64": { 327 - "version": "0.19.5", 328 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", 329 - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", 327 + "version": "0.18.20", 328 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", 329 + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", 330 330 "cpu": [ 331 331 "x64" 332 332 ], ··· 340 340 } 341 341 }, 342 342 "node_modules/@esbuild/openbsd-x64": { 343 - "version": "0.19.5", 344 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", 345 - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", 343 + "version": "0.18.20", 344 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", 345 + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", 346 346 "cpu": [ 347 347 "x64" 348 348 ], ··· 356 356 } 357 357 }, 358 358 "node_modules/@esbuild/sunos-x64": { 359 - "version": "0.19.5", 360 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", 361 - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", 359 + "version": "0.18.20", 360 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", 361 + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", 362 362 "cpu": [ 363 363 "x64" 364 364 ], ··· 372 372 } 373 373 }, 374 374 "node_modules/@esbuild/win32-arm64": { 375 - "version": "0.19.5", 376 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", 377 - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", 375 + "version": "0.18.20", 376 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", 377 + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", 378 378 "cpu": [ 379 379 "arm64" 380 380 ], ··· 388 388 } 389 389 }, 390 390 "node_modules/@esbuild/win32-ia32": { 391 - "version": "0.19.5", 392 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", 393 - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", 391 + "version": "0.18.20", 392 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", 393 + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", 394 394 "cpu": [ 395 395 "ia32" 396 396 ], ··· 404 404 } 405 405 }, 406 406 "node_modules/@esbuild/win32-x64": { 407 - "version": "0.19.5", 408 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", 409 - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", 407 + "version": "0.18.20", 408 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", 409 + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", 410 410 "cpu": [ 411 411 "x64" 412 412 ], ··· 727 727 "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", 728 728 "dev": true 729 729 }, 730 - "node_modules/@rollup/rollup-android-arm-eabi": { 731 - "version": "4.5.0", 732 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.0.tgz", 733 - "integrity": "sha512-OINaBGY+Wc++U0rdr7BLuFClxcoWaVW3vQYqmQq6B3bqQ/2olkaoz+K8+af/Mmka/C2yN5j+L9scBkv4BtKsDA==", 734 - "cpu": [ 735 - "arm" 736 - ], 737 - "dev": true, 738 - "optional": true, 739 - "os": [ 740 - "android" 741 - ] 742 - }, 743 - "node_modules/@rollup/rollup-android-arm64": { 744 - "version": "4.5.0", 745 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.0.tgz", 746 - "integrity": "sha512-UdMf1pOQc4ZmUA/NTmKhgJTBimbSKnhPS2zJqucqFyBRFPnPDtwA8MzrGNTjDeQbIAWfpJVAlxejw+/lQyBK/w==", 747 - "cpu": [ 748 - "arm64" 749 - ], 750 - "dev": true, 751 - "optional": true, 752 - "os": [ 753 - "android" 754 - ] 755 - }, 756 - "node_modules/@rollup/rollup-darwin-arm64": { 757 - "version": "4.5.0", 758 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.0.tgz", 759 - "integrity": "sha512-L0/CA5p/idVKI+c9PcAPGorH6CwXn6+J0Ys7Gg1axCbTPgI8MeMlhA6fLM9fK+ssFhqogMHFC8HDvZuetOii7w==", 760 - "cpu": [ 761 - "arm64" 762 - ], 763 - "dev": true, 764 - "optional": true, 765 - "os": [ 766 - "darwin" 767 - ] 768 - }, 769 - "node_modules/@rollup/rollup-darwin-x64": { 770 - "version": "4.5.0", 771 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.0.tgz", 772 - "integrity": "sha512-QZCbVqU26mNlLn8zi/XDDquNmvcr4ON5FYAHQQsyhrHx8q+sQi/6xduoznYXwk/KmKIXG5dLfR0CvY+NAWpFYQ==", 773 - "cpu": [ 774 - "x64" 775 - ], 776 - "dev": true, 777 - "optional": true, 778 - "os": [ 779 - "darwin" 780 - ] 781 - }, 782 - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 783 - "version": "4.5.0", 784 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.0.tgz", 785 - "integrity": "sha512-VpSQ+xm93AeV33QbYslgf44wc5eJGYfYitlQzAi3OObu9iwrGXEnmu5S3ilkqE3Pr/FkgOiJKV/2p0ewf4Hrtg==", 786 - "cpu": [ 787 - "arm" 788 - ], 789 - "dev": true, 790 - "optional": true, 791 - "os": [ 792 - "linux" 793 - ] 794 - }, 795 - "node_modules/@rollup/rollup-linux-arm64-gnu": { 796 - "version": "4.5.0", 797 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.0.tgz", 798 - "integrity": "sha512-OrEyIfpxSsMal44JpEVx9AEcGpdBQG1ZuWISAanaQTSMeStBW+oHWwOkoqR54bw3x8heP8gBOyoJiGg+fLY8qQ==", 799 - "cpu": [ 800 - "arm64" 801 - ], 802 - "dev": true, 803 - "optional": true, 804 - "os": [ 805 - "linux" 806 - ] 807 - }, 808 - "node_modules/@rollup/rollup-linux-arm64-musl": { 809 - "version": "4.5.0", 810 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.0.tgz", 811 - "integrity": "sha512-1H7wBbQuE6igQdxMSTjtFfD+DGAudcYWhp106z/9zBA8OQhsJRnemO4XGavdzHpGhRtRxbgmUGdO3YQgrWf2RA==", 812 - "cpu": [ 813 - "arm64" 814 - ], 815 - "dev": true, 816 - "optional": true, 817 - "os": [ 818 - "linux" 819 - ] 820 - }, 821 - "node_modules/@rollup/rollup-linux-x64-gnu": { 822 - "version": "4.5.0", 823 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.0.tgz", 824 - "integrity": "sha512-FVyFI13tXw5aE65sZdBpNjPVIi4Q5mARnL/39UIkxvSgRAIqCo5sCpCELk0JtXHGee2owZz5aNLbWNfBHzr71Q==", 825 - "cpu": [ 826 - "x64" 827 - ], 828 - "dev": true, 829 - "optional": true, 830 - "os": [ 831 - "linux" 832 - ] 833 - }, 834 - "node_modules/@rollup/rollup-linux-x64-musl": { 835 - "version": "4.5.0", 836 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.0.tgz", 837 - "integrity": "sha512-eBPYl2sLpH/o8qbSz6vPwWlDyThnQjJfcDOGFbNjmjb44XKC1F5dQfakOsADRVrXCNzM6ZsSIPDG5dc6HHLNFg==", 838 - "cpu": [ 839 - "x64" 840 - ], 841 - "dev": true, 842 - "optional": true, 843 - "os": [ 844 - "linux" 845 - ] 846 - }, 847 - "node_modules/@rollup/rollup-win32-arm64-msvc": { 848 - "version": "4.5.0", 849 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.0.tgz", 850 - "integrity": "sha512-xaOHIfLOZypoQ5U2I6rEaugS4IYtTgP030xzvrBf5js7p9WI9wik07iHmsKaej8Z83ZDxN5GyypfoyKV5O5TJA==", 851 - "cpu": [ 852 - "arm64" 853 - ], 730 + "node_modules/@sveltejs/adapter-auto": { 731 + "version": "2.1.1", 732 + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.1.1.tgz", 733 + "integrity": "sha512-nzi6x/7/3Axh5VKQ8Eed3pYxastxoa06Y/bFhWb7h3Nu+nGRVxKAy3+hBJgmPCwWScy8n0TsstZjSVKfyrIHkg==", 854 734 "dev": true, 855 - "optional": true, 856 - "os": [ 857 - "win32" 858 - ] 735 + "dependencies": { 736 + "import-meta-resolve": "^4.0.0" 737 + }, 738 + "peerDependencies": { 739 + "@sveltejs/kit": "^1.0.0" 740 + } 859 741 }, 860 - "node_modules/@rollup/rollup-win32-ia32-msvc": { 861 - "version": "4.5.0", 862 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.0.tgz", 863 - "integrity": "sha512-Al6quztQUrHwcOoU2TuFblUQ5L+/AmPBXFR6dUvyo4nRj2yQRK0WIUaGMF/uwKulvRcXkpHe3k9A8Vf93VDktA==", 864 - "cpu": [ 865 - "ia32" 866 - ], 742 + "node_modules/@sveltejs/adapter-static": { 743 + "version": "2.0.3", 744 + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-2.0.3.tgz", 745 + "integrity": "sha512-VUqTfXsxYGugCpMqQv1U0LIdbR3S5nBkMMDmpjGVJyM6Q2jHVMFtdWJCkeHMySc6mZxJ+0eZK3T7IgmUCDrcUQ==", 867 746 "dev": true, 868 - "optional": true, 869 - "os": [ 870 - "win32" 871 - ] 747 + "peerDependencies": { 748 + "@sveltejs/kit": "^1.5.0" 749 + } 872 750 }, 873 - "node_modules/@rollup/rollup-win32-x64-msvc": { 874 - "version": "4.5.0", 875 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.0.tgz", 876 - "integrity": "sha512-8kdW+brNhI/NzJ4fxDufuJUjepzINqJKLGHuxyAtpPG9bMbn8P5mtaCcbOm0EzLJ+atg+kF9dwg8jpclkVqx5w==", 877 - "cpu": [ 878 - "x64" 879 - ], 751 + "node_modules/@sveltejs/kit": { 752 + "version": "1.27.6", 753 + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.27.6.tgz", 754 + "integrity": "sha512-GsjTkMbKzXdbeRg0tk8S7HNShQ4879ftRr0ZHaZfjbig1xQwG57Bvcm9U9/mpLJtCapLbLWUnygKrgcLISLC8A==", 880 755 "dev": true, 881 - "optional": true, 882 - "os": [ 883 - "win32" 884 - ] 756 + "hasInstallScript": true, 757 + "dependencies": { 758 + "@sveltejs/vite-plugin-svelte": "^2.5.0", 759 + "@types/cookie": "^0.5.1", 760 + "cookie": "^0.5.0", 761 + "devalue": "^4.3.1", 762 + "esm-env": "^1.0.0", 763 + "kleur": "^4.1.5", 764 + "magic-string": "^0.30.0", 765 + "mrmime": "^1.0.1", 766 + "sade": "^1.8.1", 767 + "set-cookie-parser": "^2.6.0", 768 + "sirv": "^2.0.2", 769 + "tiny-glob": "^0.2.9", 770 + "undici": "~5.26.2" 771 + }, 772 + "bin": { 773 + "svelte-kit": "svelte-kit.js" 774 + }, 775 + "engines": { 776 + "node": "^16.14 || >=18" 777 + }, 778 + "peerDependencies": { 779 + "svelte": "^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0", 780 + "vite": "^4.0.0" 781 + } 885 782 }, 886 783 "node_modules/@sveltejs/vite-plugin-svelte": { 887 - "version": "3.0.0", 888 - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.0.0.tgz", 889 - "integrity": "sha512-Th0nupxk8hl5Rcg9jm+1xWylwco4bSUAvutWxM4W4bjOAollpXLmrYqSSnYo9pPbZOO6ZGRm6sSqYa/v1d/Saw==", 784 + "version": "2.5.2", 785 + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.5.2.tgz", 786 + "integrity": "sha512-Dfy0Rbl+IctOVfJvWGxrX/3m6vxPLH8o0x+8FA5QEyMUQMo4kGOVIojjryU7YomBAexOTAuYf1RT7809yDziaA==", 890 787 "dev": true, 891 788 "dependencies": { 892 - "@sveltejs/vite-plugin-svelte-inspector": "^2.0.0-next.0 || ^2.0.0", 789 + "@sveltejs/vite-plugin-svelte-inspector": "^1.0.4", 893 790 "debug": "^4.3.4", 894 791 "deepmerge": "^4.3.1", 895 792 "kleur": "^4.1.5", 896 - "magic-string": "^0.30.5", 793 + "magic-string": "^0.30.3", 897 794 "svelte-hmr": "^0.15.3", 898 - "vitefu": "^0.2.5" 795 + "vitefu": "^0.2.4" 899 796 }, 900 797 "engines": { 901 - "node": "^18.0.0 || >=20" 798 + "node": "^14.18.0 || >= 16" 902 799 }, 903 800 "peerDependencies": { 904 - "svelte": "^4.0.0 || ^5.0.0-next.0", 905 - "vite": "^5.0.0" 801 + "svelte": "^3.54.0 || ^4.0.0 || ^5.0.0-next.0", 802 + "vite": "^4.0.0" 906 803 } 907 804 }, 908 805 "node_modules/@sveltejs/vite-plugin-svelte-inspector": { 909 - "version": "2.0.0", 910 - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.0.0.tgz", 911 - "integrity": "sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==", 806 + "version": "1.0.4", 807 + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.4.tgz", 808 + "integrity": "sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==", 912 809 "dev": true, 913 810 "dependencies": { 914 811 "debug": "^4.3.4" 915 812 }, 916 813 "engines": { 917 - "node": "^18.0.0 || >=20" 814 + "node": "^14.18.0 || >= 16" 918 815 }, 919 816 "peerDependencies": { 920 - "@sveltejs/vite-plugin-svelte": "^3.0.0", 921 - "svelte": "^4.0.0 || ^5.0.0-next.0", 922 - "vite": "^5.0.0" 817 + "@sveltejs/vite-plugin-svelte": "^2.2.0", 818 + "svelte": "^3.54.0 || ^4.0.0", 819 + "vite": "^4.0.0" 923 820 } 924 821 }, 925 822 "node_modules/@tailwindcss/forms": { ··· 1136 1033 "engines": { 1137 1034 "node": ">= 10" 1138 1035 } 1139 - }, 1140 - "node_modules/@tsconfig/svelte": { 1141 - "version": "5.0.2", 1142 - "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.2.tgz", 1143 - "integrity": "sha512-BRbo1fOtyVbhfLyuCWw6wAWp+U8UQle+ZXu84MYYWzYSEB28dyfnRBIE99eoG+qdAC0po6L2ScIEivcT07UaMA==", 1144 - "dev": true 1145 1036 }, 1146 1037 "node_modules/@types/cookie": { 1147 1038 "version": "0.5.4", ··· 1935 1826 "dev": true 1936 1827 }, 1937 1828 "node_modules/esbuild": { 1938 - "version": "0.19.5", 1939 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", 1940 - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", 1829 + "version": "0.18.20", 1830 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", 1831 + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", 1941 1832 "dev": true, 1942 1833 "hasInstallScript": true, 1943 1834 "bin": { ··· 1947 1838 "node": ">=12" 1948 1839 }, 1949 1840 "optionalDependencies": { 1950 - "@esbuild/android-arm": "0.19.5", 1951 - "@esbuild/android-arm64": "0.19.5", 1952 - "@esbuild/android-x64": "0.19.5", 1953 - "@esbuild/darwin-arm64": "0.19.5", 1954 - "@esbuild/darwin-x64": "0.19.5", 1955 - "@esbuild/freebsd-arm64": "0.19.5", 1956 - "@esbuild/freebsd-x64": "0.19.5", 1957 - "@esbuild/linux-arm": "0.19.5", 1958 - "@esbuild/linux-arm64": "0.19.5", 1959 - "@esbuild/linux-ia32": "0.19.5", 1960 - "@esbuild/linux-loong64": "0.19.5", 1961 - "@esbuild/linux-mips64el": "0.19.5", 1962 - "@esbuild/linux-ppc64": "0.19.5", 1963 - "@esbuild/linux-riscv64": "0.19.5", 1964 - "@esbuild/linux-s390x": "0.19.5", 1965 - "@esbuild/linux-x64": "0.19.5", 1966 - "@esbuild/netbsd-x64": "0.19.5", 1967 - "@esbuild/openbsd-x64": "0.19.5", 1968 - "@esbuild/sunos-x64": "0.19.5", 1969 - "@esbuild/win32-arm64": "0.19.5", 1970 - "@esbuild/win32-ia32": "0.19.5", 1971 - "@esbuild/win32-x64": "0.19.5" 1841 + "@esbuild/android-arm": "0.18.20", 1842 + "@esbuild/android-arm64": "0.18.20", 1843 + "@esbuild/android-x64": "0.18.20", 1844 + "@esbuild/darwin-arm64": "0.18.20", 1845 + "@esbuild/darwin-x64": "0.18.20", 1846 + "@esbuild/freebsd-arm64": "0.18.20", 1847 + "@esbuild/freebsd-x64": "0.18.20", 1848 + "@esbuild/linux-arm": "0.18.20", 1849 + "@esbuild/linux-arm64": "0.18.20", 1850 + "@esbuild/linux-ia32": "0.18.20", 1851 + "@esbuild/linux-loong64": "0.18.20", 1852 + "@esbuild/linux-mips64el": "0.18.20", 1853 + "@esbuild/linux-ppc64": "0.18.20", 1854 + "@esbuild/linux-riscv64": "0.18.20", 1855 + "@esbuild/linux-s390x": "0.18.20", 1856 + "@esbuild/linux-x64": "0.18.20", 1857 + "@esbuild/netbsd-x64": "0.18.20", 1858 + "@esbuild/openbsd-x64": "0.18.20", 1859 + "@esbuild/sunos-x64": "0.18.20", 1860 + "@esbuild/win32-arm64": "0.18.20", 1861 + "@esbuild/win32-ia32": "0.18.20", 1862 + "@esbuild/win32-x64": "0.18.20" 1972 1863 } 1973 1864 }, 1974 1865 "node_modules/escalade": { ··· 2873 2764 } 2874 2765 }, 2875 2766 "node_modules/modal-svelte": { 2876 - "version": "1.1.1", 2877 - "resolved": "https://registry.npmjs.org/modal-svelte/-/modal-svelte-1.1.1.tgz", 2878 - "integrity": "sha512-O3+ZP3j+Q9CEQ8j1XQ+0WJaniWziwTtXbJb6gPc7gp+9qO4VYnSO+z2KtEdK8FDdu3OqGoBrtU5o4zqZXzJZmA==", 2767 + "version": "1.2.1", 2768 + "resolved": "https://registry.npmjs.org/modal-svelte/-/modal-svelte-1.2.1.tgz", 2769 + "integrity": "sha512-gNb1QnaBp+UDWZm0PEUGP2UBI6253NOQZ7sKtGp+HnbGuli6Ei5k+QgcLjkyKALadPrZipgceK97lQ/b6kPFFA==", 2879 2770 "dev": true, 2880 2771 "peerDependencies": { 2881 2772 "svelte": "^3.0.0 || ^4.0.0" ··· 3546 3437 } 3547 3438 }, 3548 3439 "node_modules/rollup": { 3549 - "version": "4.5.0", 3550 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.5.0.tgz", 3551 - "integrity": "sha512-41xsWhzxqjMDASCxH5ibw1mXk+3c4TNI2UjKbLxe6iEzrSQnqOzmmK8/3mufCPbzHNJ2e04Fc1ddI35hHy+8zg==", 3440 + "version": "3.29.4", 3441 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", 3442 + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", 3552 3443 "dev": true, 3553 3444 "bin": { 3554 3445 "rollup": "dist/bin/rollup" 3555 3446 }, 3556 3447 "engines": { 3557 - "node": ">=18.0.0", 3448 + "node": ">=14.18.0", 3558 3449 "npm": ">=8.0.0" 3559 3450 }, 3560 3451 "optionalDependencies": { 3561 - "@rollup/rollup-android-arm-eabi": "4.5.0", 3562 - "@rollup/rollup-android-arm64": "4.5.0", 3563 - "@rollup/rollup-darwin-arm64": "4.5.0", 3564 - "@rollup/rollup-darwin-x64": "4.5.0", 3565 - "@rollup/rollup-linux-arm-gnueabihf": "4.5.0", 3566 - "@rollup/rollup-linux-arm64-gnu": "4.5.0", 3567 - "@rollup/rollup-linux-arm64-musl": "4.5.0", 3568 - "@rollup/rollup-linux-x64-gnu": "4.5.0", 3569 - "@rollup/rollup-linux-x64-musl": "4.5.0", 3570 - "@rollup/rollup-win32-arm64-msvc": "4.5.0", 3571 - "@rollup/rollup-win32-ia32-msvc": "4.5.0", 3572 - "@rollup/rollup-win32-x64-msvc": "4.5.0", 3573 3452 "fsevents": "~2.3.2" 3574 3453 } 3575 3454 }, ··· 4303 4182 } 4304 4183 }, 4305 4184 "node_modules/vite": { 4306 - "version": "5.0.0", 4307 - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.0.tgz", 4308 - "integrity": "sha512-ESJVM59mdyGpsiNAeHQOR/0fqNoOyWPYesFto8FFZugfmhdHx8Fzd8sF3Q/xkVhZsyOxHfdM7ieiVAorI9RjFw==", 4185 + "version": "4.5.0", 4186 + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", 4187 + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", 4309 4188 "dev": true, 4310 4189 "dependencies": { 4311 - "esbuild": "^0.19.3", 4312 - "postcss": "^8.4.31", 4313 - "rollup": "^4.2.0" 4190 + "esbuild": "^0.18.10", 4191 + "postcss": "^8.4.27", 4192 + "rollup": "^3.27.1" 4314 4193 }, 4315 4194 "bin": { 4316 4195 "vite": "bin/vite.js" 4317 4196 }, 4318 4197 "engines": { 4319 - "node": "^18.0.0 || >=20.0.0" 4198 + "node": "^14.18.0 || >=16.0.0" 4320 4199 }, 4321 4200 "funding": { 4322 4201 "url": "https://github.com/vitejs/vite?sponsor=1" 4323 4202 }, 4324 4203 "optionalDependencies": { 4325 - "fsevents": "~2.3.3" 4204 + "fsevents": "~2.3.2" 4326 4205 }, 4327 4206 "peerDependencies": { 4328 - "@types/node": "^18.0.0 || >=20.0.0", 4207 + "@types/node": ">= 14", 4329 4208 "less": "*", 4330 4209 "lightningcss": "^1.21.0", 4331 4210 "sass": "*", ··· 4447 4326 "vite": "^4.4.2" 4448 4327 } 4449 4328 }, 4450 - "website/node_modules/@esbuild/android-arm": { 4451 - "version": "0.18.20", 4452 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", 4453 - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", 4454 - "cpu": [ 4455 - "arm" 4456 - ], 4457 - "dev": true, 4458 - "optional": true, 4459 - "os": [ 4460 - "android" 4461 - ], 4462 - "engines": { 4463 - "node": ">=12" 4464 - } 4465 - }, 4466 - "website/node_modules/@esbuild/android-arm64": { 4467 - "version": "0.18.20", 4468 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", 4469 - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", 4470 - "cpu": [ 4471 - "arm64" 4472 - ], 4473 - "dev": true, 4474 - "optional": true, 4475 - "os": [ 4476 - "android" 4477 - ], 4478 - "engines": { 4479 - "node": ">=12" 4480 - } 4481 - }, 4482 - "website/node_modules/@esbuild/android-x64": { 4483 - "version": "0.18.20", 4484 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", 4485 - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", 4486 - "cpu": [ 4487 - "x64" 4488 - ], 4489 - "dev": true, 4490 - "optional": true, 4491 - "os": [ 4492 - "android" 4493 - ], 4494 - "engines": { 4495 - "node": ">=12" 4496 - } 4497 - }, 4498 - "website/node_modules/@esbuild/darwin-arm64": { 4499 - "version": "0.18.20", 4500 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", 4501 - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", 4502 - "cpu": [ 4503 - "arm64" 4504 - ], 4505 - "dev": true, 4506 - "optional": true, 4507 - "os": [ 4508 - "darwin" 4509 - ], 4510 - "engines": { 4511 - "node": ">=12" 4512 - } 4513 - }, 4514 - "website/node_modules/@esbuild/darwin-x64": { 4515 - "version": "0.18.20", 4516 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", 4517 - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", 4518 - "cpu": [ 4519 - "x64" 4520 - ], 4521 - "dev": true, 4522 - "optional": true, 4523 - "os": [ 4524 - "darwin" 4525 - ], 4526 - "engines": { 4527 - "node": ">=12" 4528 - } 4529 - }, 4530 - "website/node_modules/@esbuild/freebsd-arm64": { 4531 - "version": "0.18.20", 4532 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", 4533 - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", 4534 - "cpu": [ 4535 - "arm64" 4536 - ], 4537 - "dev": true, 4538 - "optional": true, 4539 - "os": [ 4540 - "freebsd" 4541 - ], 4542 - "engines": { 4543 - "node": ">=12" 4544 - } 4545 - }, 4546 - "website/node_modules/@esbuild/freebsd-x64": { 4547 - "version": "0.18.20", 4548 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", 4549 - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", 4550 - "cpu": [ 4551 - "x64" 4552 - ], 4553 - "dev": true, 4554 - "optional": true, 4555 - "os": [ 4556 - "freebsd" 4557 - ], 4558 - "engines": { 4559 - "node": ">=12" 4560 - } 4561 - }, 4562 - "website/node_modules/@esbuild/linux-arm": { 4563 - "version": "0.18.20", 4564 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", 4565 - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", 4566 - "cpu": [ 4567 - "arm" 4568 - ], 4569 - "dev": true, 4570 - "optional": true, 4571 - "os": [ 4572 - "linux" 4573 - ], 4574 - "engines": { 4575 - "node": ">=12" 4576 - } 4577 - }, 4578 - "website/node_modules/@esbuild/linux-arm64": { 4579 - "version": "0.18.20", 4580 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", 4581 - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", 4582 - "cpu": [ 4583 - "arm64" 4584 - ], 4585 - "dev": true, 4586 - "optional": true, 4587 - "os": [ 4588 - "linux" 4589 - ], 4590 - "engines": { 4591 - "node": ">=12" 4592 - } 4593 - }, 4594 - "website/node_modules/@esbuild/linux-ia32": { 4595 - "version": "0.18.20", 4596 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", 4597 - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", 4598 - "cpu": [ 4599 - "ia32" 4600 - ], 4601 - "dev": true, 4602 - "optional": true, 4603 - "os": [ 4604 - "linux" 4605 - ], 4606 - "engines": { 4607 - "node": ">=12" 4608 - } 4609 - }, 4610 - "website/node_modules/@esbuild/linux-loong64": { 4611 - "version": "0.18.20", 4612 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", 4613 - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", 4614 - "cpu": [ 4615 - "loong64" 4616 - ], 4617 - "dev": true, 4618 - "optional": true, 4619 - "os": [ 4620 - "linux" 4621 - ], 4622 - "engines": { 4623 - "node": ">=12" 4624 - } 4625 - }, 4626 - "website/node_modules/@esbuild/linux-mips64el": { 4627 - "version": "0.18.20", 4628 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", 4629 - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", 4630 - "cpu": [ 4631 - "mips64el" 4632 - ], 4633 - "dev": true, 4634 - "optional": true, 4635 - "os": [ 4636 - "linux" 4637 - ], 4638 - "engines": { 4639 - "node": ">=12" 4640 - } 4641 - }, 4642 - "website/node_modules/@esbuild/linux-ppc64": { 4643 - "version": "0.18.20", 4644 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", 4645 - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", 4646 - "cpu": [ 4647 - "ppc64" 4648 - ], 4649 - "dev": true, 4650 - "optional": true, 4651 - "os": [ 4652 - "linux" 4653 - ], 4654 - "engines": { 4655 - "node": ">=12" 4656 - } 4657 - }, 4658 - "website/node_modules/@esbuild/linux-riscv64": { 4659 - "version": "0.18.20", 4660 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", 4661 - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", 4662 - "cpu": [ 4663 - "riscv64" 4664 - ], 4665 - "dev": true, 4666 - "optional": true, 4667 - "os": [ 4668 - "linux" 4669 - ], 4670 - "engines": { 4671 - "node": ">=12" 4672 - } 4673 - }, 4674 - "website/node_modules/@esbuild/linux-s390x": { 4675 - "version": "0.18.20", 4676 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", 4677 - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", 4678 - "cpu": [ 4679 - "s390x" 4680 - ], 4681 - "dev": true, 4682 - "optional": true, 4683 - "os": [ 4684 - "linux" 4685 - ], 4686 - "engines": { 4687 - "node": ">=12" 4688 - } 4689 - }, 4690 - "website/node_modules/@esbuild/linux-x64": { 4691 - "version": "0.18.20", 4692 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", 4693 - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", 4694 - "cpu": [ 4695 - "x64" 4696 - ], 4697 - "dev": true, 4698 - "optional": true, 4699 - "os": [ 4700 - "linux" 4701 - ], 4702 - "engines": { 4703 - "node": ">=12" 4704 - } 4705 - }, 4706 - "website/node_modules/@esbuild/netbsd-x64": { 4707 - "version": "0.18.20", 4708 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", 4709 - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", 4710 - "cpu": [ 4711 - "x64" 4712 - ], 4713 - "dev": true, 4714 - "optional": true, 4715 - "os": [ 4716 - "netbsd" 4717 - ], 4718 - "engines": { 4719 - "node": ">=12" 4720 - } 4721 - }, 4722 - "website/node_modules/@esbuild/openbsd-x64": { 4723 - "version": "0.18.20", 4724 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", 4725 - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", 4726 - "cpu": [ 4727 - "x64" 4728 - ], 4729 - "dev": true, 4730 - "optional": true, 4731 - "os": [ 4732 - "openbsd" 4733 - ], 4734 - "engines": { 4735 - "node": ">=12" 4736 - } 4737 - }, 4738 - "website/node_modules/@esbuild/sunos-x64": { 4739 - "version": "0.18.20", 4740 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", 4741 - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", 4742 - "cpu": [ 4743 - "x64" 4744 - ], 4745 - "dev": true, 4746 - "optional": true, 4747 - "os": [ 4748 - "sunos" 4749 - ], 4750 - "engines": { 4751 - "node": ">=12" 4752 - } 4753 - }, 4754 - "website/node_modules/@esbuild/win32-arm64": { 4755 - "version": "0.18.20", 4756 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", 4757 - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", 4758 - "cpu": [ 4759 - "arm64" 4760 - ], 4761 - "dev": true, 4762 - "optional": true, 4763 - "os": [ 4764 - "win32" 4765 - ], 4766 - "engines": { 4767 - "node": ">=12" 4768 - } 4769 - }, 4770 - "website/node_modules/@esbuild/win32-ia32": { 4771 - "version": "0.18.20", 4772 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", 4773 - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", 4774 - "cpu": [ 4775 - "ia32" 4776 - ], 4777 - "dev": true, 4778 - "optional": true, 4779 - "os": [ 4780 - "win32" 4781 - ], 4782 - "engines": { 4783 - "node": ">=12" 4784 - } 4785 - }, 4786 - "website/node_modules/@esbuild/win32-x64": { 4787 - "version": "0.18.20", 4788 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", 4789 - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", 4790 - "cpu": [ 4791 - "x64" 4792 - ], 4793 - "dev": true, 4794 - "optional": true, 4795 - "os": [ 4796 - "win32" 4797 - ], 4798 - "engines": { 4799 - "node": ">=12" 4800 - } 4801 - }, 4802 - "website/node_modules/@sveltejs/adapter-auto": { 4803 - "version": "2.1.1", 4804 - "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.1.1.tgz", 4805 - "integrity": "sha512-nzi6x/7/3Axh5VKQ8Eed3pYxastxoa06Y/bFhWb7h3Nu+nGRVxKAy3+hBJgmPCwWScy8n0TsstZjSVKfyrIHkg==", 4806 - "dev": true, 4807 - "dependencies": { 4808 - "import-meta-resolve": "^4.0.0" 4809 - }, 4810 - "peerDependencies": { 4811 - "@sveltejs/kit": "^1.0.0" 4812 - } 4813 - }, 4814 - "website/node_modules/@sveltejs/kit": { 4815 - "version": "1.27.6", 4816 - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.27.6.tgz", 4817 - "integrity": "sha512-GsjTkMbKzXdbeRg0tk8S7HNShQ4879ftRr0ZHaZfjbig1xQwG57Bvcm9U9/mpLJtCapLbLWUnygKrgcLISLC8A==", 4818 - "dev": true, 4819 - "hasInstallScript": true, 4820 - "dependencies": { 4821 - "@sveltejs/vite-plugin-svelte": "^2.5.0", 4822 - "@types/cookie": "^0.5.1", 4823 - "cookie": "^0.5.0", 4824 - "devalue": "^4.3.1", 4825 - "esm-env": "^1.0.0", 4826 - "kleur": "^4.1.5", 4827 - "magic-string": "^0.30.0", 4828 - "mrmime": "^1.0.1", 4829 - "sade": "^1.8.1", 4830 - "set-cookie-parser": "^2.6.0", 4831 - "sirv": "^2.0.2", 4832 - "tiny-glob": "^0.2.9", 4833 - "undici": "~5.26.2" 4834 - }, 4835 - "bin": { 4836 - "svelte-kit": "svelte-kit.js" 4837 - }, 4838 - "engines": { 4839 - "node": "^16.14 || >=18" 4840 - }, 4841 - "peerDependencies": { 4842 - "svelte": "^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0", 4843 - "vite": "^4.0.0" 4844 - } 4845 - }, 4846 - "website/node_modules/@sveltejs/vite-plugin-svelte": { 4847 - "version": "2.5.2", 4848 - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.5.2.tgz", 4849 - "integrity": "sha512-Dfy0Rbl+IctOVfJvWGxrX/3m6vxPLH8o0x+8FA5QEyMUQMo4kGOVIojjryU7YomBAexOTAuYf1RT7809yDziaA==", 4850 - "dev": true, 4851 - "dependencies": { 4852 - "@sveltejs/vite-plugin-svelte-inspector": "^1.0.4", 4853 - "debug": "^4.3.4", 4854 - "deepmerge": "^4.3.1", 4855 - "kleur": "^4.1.5", 4856 - "magic-string": "^0.30.3", 4857 - "svelte-hmr": "^0.15.3", 4858 - "vitefu": "^0.2.4" 4859 - }, 4860 - "engines": { 4861 - "node": "^14.18.0 || >= 16" 4862 - }, 4863 - "peerDependencies": { 4864 - "svelte": "^3.54.0 || ^4.0.0 || ^5.0.0-next.0", 4865 - "vite": "^4.0.0" 4866 - } 4867 - }, 4868 - "website/node_modules/@sveltejs/vite-plugin-svelte-inspector": { 4869 - "version": "1.0.4", 4870 - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.4.tgz", 4871 - "integrity": "sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==", 4872 - "dev": true, 4873 - "dependencies": { 4874 - "debug": "^4.3.4" 4875 - }, 4876 - "engines": { 4877 - "node": "^14.18.0 || >= 16" 4878 - }, 4879 - "peerDependencies": { 4880 - "@sveltejs/vite-plugin-svelte": "^2.2.0", 4881 - "svelte": "^3.54.0 || ^4.0.0", 4882 - "vite": "^4.0.0" 4883 - } 4884 - }, 4885 - "website/node_modules/esbuild": { 4886 - "version": "0.18.20", 4887 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", 4888 - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", 4889 - "dev": true, 4890 - "hasInstallScript": true, 4891 - "bin": { 4892 - "esbuild": "bin/esbuild" 4893 - }, 4894 - "engines": { 4895 - "node": ">=12" 4896 - }, 4897 - "optionalDependencies": { 4898 - "@esbuild/android-arm": "0.18.20", 4899 - "@esbuild/android-arm64": "0.18.20", 4900 - "@esbuild/android-x64": "0.18.20", 4901 - "@esbuild/darwin-arm64": "0.18.20", 4902 - "@esbuild/darwin-x64": "0.18.20", 4903 - "@esbuild/freebsd-arm64": "0.18.20", 4904 - "@esbuild/freebsd-x64": "0.18.20", 4905 - "@esbuild/linux-arm": "0.18.20", 4906 - "@esbuild/linux-arm64": "0.18.20", 4907 - "@esbuild/linux-ia32": "0.18.20", 4908 - "@esbuild/linux-loong64": "0.18.20", 4909 - "@esbuild/linux-mips64el": "0.18.20", 4910 - "@esbuild/linux-ppc64": "0.18.20", 4911 - "@esbuild/linux-riscv64": "0.18.20", 4912 - "@esbuild/linux-s390x": "0.18.20", 4913 - "@esbuild/linux-x64": "0.18.20", 4914 - "@esbuild/netbsd-x64": "0.18.20", 4915 - "@esbuild/openbsd-x64": "0.18.20", 4916 - "@esbuild/sunos-x64": "0.18.20", 4917 - "@esbuild/win32-arm64": "0.18.20", 4918 - "@esbuild/win32-ia32": "0.18.20", 4919 - "@esbuild/win32-x64": "0.18.20" 4920 - } 4921 - }, 4922 4329 "website/node_modules/eslint-config-prettier": { 4923 4330 "version": "8.10.0", 4924 4331 "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", ··· 4939 4346 "peerDependencies": { 4940 4347 "prettier": "^1.16.4 || ^2.0.0", 4941 4348 "svelte": "^3.2.0 || ^4.0.0-next.0" 4942 - } 4943 - }, 4944 - "website/node_modules/rollup": { 4945 - "version": "3.29.4", 4946 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", 4947 - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", 4948 - "dev": true, 4949 - "bin": { 4950 - "rollup": "dist/bin/rollup" 4951 - }, 4952 - "engines": { 4953 - "node": ">=14.18.0", 4954 - "npm": ">=8.0.0" 4955 - }, 4956 - "optionalDependencies": { 4957 - "fsevents": "~2.3.2" 4958 - } 4959 - }, 4960 - "website/node_modules/vite": { 4961 - "version": "4.5.0", 4962 - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", 4963 - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", 4964 - "dev": true, 4965 - "dependencies": { 4966 - "esbuild": "^0.18.10", 4967 - "postcss": "^8.4.27", 4968 - "rollup": "^3.27.1" 4969 - }, 4970 - "bin": { 4971 - "vite": "bin/vite.js" 4972 - }, 4973 - "engines": { 4974 - "node": "^14.18.0 || >=16.0.0" 4975 - }, 4976 - "funding": { 4977 - "url": "https://github.com/vitejs/vite?sponsor=1" 4978 - }, 4979 - "optionalDependencies": { 4980 - "fsevents": "~2.3.2" 4981 - }, 4982 - "peerDependencies": { 4983 - "@types/node": ">= 14", 4984 - "less": "*", 4985 - "lightningcss": "^1.21.0", 4986 - "sass": "*", 4987 - "stylus": "*", 4988 - "sugarss": "*", 4989 - "terser": "^5.4.0" 4990 - }, 4991 - "peerDependenciesMeta": { 4992 - "@types/node": { 4993 - "optional": true 4994 - }, 4995 - "less": { 4996 - "optional": true 4997 - }, 4998 - "lightningcss": { 4999 - "optional": true 5000 - }, 5001 - "sass": { 5002 - "optional": true 5003 - }, 5004 - "stylus": { 5005 - "optional": true 5006 - }, 5007 - "sugarss": { 5008 - "optional": true 5009 - }, 5010 - "terser": { 5011 - "optional": true 5012 - } 5013 4349 } 5014 4350 } 5015 4351 }
+5 -5
package.json
··· 7 7 "scripts": { 8 8 "tauri": "tauri", 9 9 "dev": "DEVELOPMENT=1 tauri dev", 10 - "dev:web": "vite", 10 + "dev:web": "vite dev", 11 11 "build": "tauri build", 12 12 "build:web": "vite build", 13 13 "lint": "svelte-check --tsconfig ./tsconfig.json && eslint src && prettier --check src", 14 14 "format": "eslint --fix src && prettier --write src" 15 15 }, 16 16 "devDependencies": { 17 - "@sveltejs/vite-plugin-svelte": "^3.0.0", 17 + "@sveltejs/adapter-static": "^2.0.3", 18 + "@sveltejs/kit": "^1.27.6", 18 19 "@tauri-apps/api": "^1.5.1", 19 20 "@tauri-apps/cli": "^1.5.6", 20 - "@tsconfig/svelte": "^5.0.2", 21 21 "@typescript-eslint/eslint-plugin": "^6.11.0", 22 22 "@typescript-eslint/parser": "^6.11.0", 23 23 "autoprefixer": "^10.4.16", ··· 25 25 "eslint": "^8.54.0", 26 26 "eslint-config-prettier": "^9.0.0", 27 27 "eslint-plugin-svelte": "^2.35.0", 28 - "modal-svelte": "^1.1.1", 28 + "modal-svelte": "^1.2.1", 29 29 "postcss": "^8.4.31", 30 30 "prettier": "^3.1.0", 31 31 "prettier-plugin-svelte": "^3.1.0", ··· 35 35 "tauri-specta": "^0.0.2", 36 36 "tinro": "^0.6.12", 37 37 "typescript": "^5.2.2", 38 - "vite": "^5.0.0" 38 + "vite": "^4.5.0" 39 39 }, 40 40 "prettier": { 41 41 "printWidth": 100,
+1 -1
src-tauri/tauri.conf.json
··· 1 1 { 2 2 "build": { 3 - "distDir": "../dist", 3 + "distDir": "../build", 4 4 "devPath": "http://localhost:9000", 5 5 "beforeDevCommand": "npm run dev:web", 6 6 "beforeBuildCommand": "npm run build:web"
+16 -23
src/App.svelte src/routes/+layout.svelte
··· 1 1 <script lang="ts"> 2 2 import { event } from '@tauri-apps/api' 3 - import ChannelsPage from './routes/Channels.svelte' 4 - import { checkShortcut, checkModifiers } from './lib/general' 5 - import SettingsModal from './modals/Settings.svelte' 3 + import { checkShortcut, checkModifiers } from '$lib/general' 4 + import SettingsModal from '$lib/modals/Settings.svelte' 6 5 import { 7 6 loadSettings, 8 7 settings, ··· 10 9 viewOptions, 11 10 tags, 12 11 settingsOpen, 13 - } from './lib/data' 14 - import { router } from 'tinro' 15 - import Route from 'tinro/cmp/Route.svelte' // workaround for https://github.com/AlexxNB/tinro/pull/121 16 - import VideosPage from './routes/Videos.svelte' 17 - import Nav from './lib/Nav.svelte' 12 + } from '$lib/data' 13 + import Nav from '$lib/Nav.svelte' 18 14 import { onDestroy } from 'svelte' 19 - import GetStarted from './modals/GetStarted.svelte' 15 + import GetStarted from '$lib/modals/GetStarted.svelte' 16 + import { page } from '$app/stores' 17 + import { goto } from '$app/navigation' 20 18 21 19 let error = false 22 20 loadSettings().catch(() => { ··· 35 33 e.preventDefault() 36 34 } else if (checkModifiers(e, { cmdOrCtrl: true }) && numShortcutDigits.includes(e.key)) { 37 35 const num = Number(e.key) 38 - if ($router.path === '/' && $tags[num - 1] === $viewOptions.tag) { 36 + if ($page.route.id === '/' && $tags[num - 1] === $viewOptions.tag) { 39 37 e.preventDefault() 40 38 $viewOptions.tag = null 41 39 } else if (num <= $tags.length) { 42 - router.goto('/', true) 40 + goto('/', { replaceState: true }) 43 41 e.preventDefault() 44 42 $viewOptions.tag = $tags[num - 1] 45 43 } ··· 48 46 49 47 const unlistenFuture = event.listen('tauri://menu', ({ payload }) => { 50 48 if (payload === 'Videos') { 51 - router.goto('/', true) 49 + goto('/', { replaceState: true }) 52 50 } else if (payload === 'Channels') { 53 - router.goto('/channels', true) 51 + goto('/channels', { replaceState: true }) 54 52 } else if (payload === 'Preferences...' || payload === 'Options...') { 55 53 $settingsOpen = true 56 54 } else if (payload === 'Add Channel...') { 57 - router.goto('/channels#add', true) 55 + goto('/channels?add', { replaceState: true }) 58 56 } else if (payload === 'Show New') { 59 - router.goto('/', true) 57 + goto('/', { replaceState: true }) 60 58 $viewOptions.show_all = false 61 59 $viewOptions.show_archived = false 62 60 } else if (payload === 'Show Archived') { 63 - router.goto('/', true) 61 + goto('/', { replaceState: true }) 64 62 $viewOptions.show_all = false 65 63 $viewOptions.show_archived = true 66 64 } else if (payload === 'Show All') { 67 - router.goto('/', true) 65 + goto('/', { replaceState: true }) 68 66 $viewOptions.show_all = true 69 67 $viewOptions.show_archived = false 70 68 } ··· 87 85 <svelte:window on:keydown={keydown} /> 88 86 {#if $settings !== null} 89 87 <Nav /> 90 - <Route path="/"> 91 - <VideosPage /> 92 - </Route> 93 - <Route path="/channels"> 94 - <ChannelsPage channels={$settings.channels} /> 95 - </Route> 88 + <slot /> 96 89 97 90 <SettingsModal 98 91 apiKey={$settings.api_key}
+12
src/app.d.ts
··· 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 Platform {} 9 + } 10 + } 11 + 12 + export {}
+12
src/app.html
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="utf-8" /> 5 + <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 + 7 + %sveltekit.head% 8 + </head> 9 + <body data-sveltekit-preload-data="hover"> 10 + <div style="display: contents">%sveltekit.body%</div> 11 + </body> 12 + </html>
+12 -4
src/lib/Nav.svelte
··· 2 2 import { event } from '@tauri-apps/api' 3 3 import { onDestroy } from 'svelte' 4 4 import { fade } from 'svelte/transition' 5 - import { active, router } from 'tinro' 6 5 import commands from './commands' 7 6 import { settingsOpen } from './data' 8 7 import { checkShortcut } from './general' 8 + import { page } from '$app/stores' 9 + import { goto } from '$app/navigation' 9 10 function go(e: MouseEvent) { 10 11 if (e.target instanceof HTMLElement) { 11 12 const href = e.target.getAttribute('href') ··· 13 14 e.preventDefault() 14 15 e.stopPropagation() 15 16 e.stopImmediatePropagation() 16 - router.goto(href, true) 17 + goto(href, { replaceState: true }) 17 18 } 18 19 } 19 20 } ··· 47 48 48 49 <!-- svelte-ignore a11y-no-noninteractive-element-interactions --> 49 50 <nav on:keydown={keydown}> 50 - <a on:mousedown={go} use:active data-exact href="/">Videos</a> 51 - <a on:mousedown={go} use:active href="/channels">Channels</a> 51 + <a on:mousedown={go} class:active={$page.route.id === '/'} href="/" data-sveltekit-replacestate 52 + >Videos</a 53 + > 54 + <a 55 + on:mousedown={go} 56 + class:active={$page.route.id === '/channels'} 57 + href="/channels" 58 + data-sveltekit-replacestate>Channels</a 59 + > 52 60 <button class="control-style ml-auto" class:checking={checking > 0} on:click={checkNow}> 53 61 Check Now 54 62 {#if checking > 0}
+150
src/lib/modals/Modal.svelte
··· 1 + <script lang="ts" context="module"> 2 + import { writable } from 'svelte/store' 3 + 4 + export const modalCount = writable(0) 5 + </script> 6 + 7 + <script lang="ts"> 8 + import { onDestroy, onMount } from 'svelte' 9 + import { scale } from 'svelte/transition' 10 + 11 + export let onCancel: () => void 12 + export let noEscapeHandling = false 13 + export let form: (() => void) | undefined = undefined 14 + $: tag = form === undefined ? 'div' : 'form' 15 + export let noCloseIcon = false 16 + export let title: string | null = null 17 + 18 + let dialogEl: HTMLDialogElement 19 + let backdrop = false 20 + 21 + $modalCount += 1 22 + onDestroy(() => { 23 + $modalCount -= 1 24 + }) 25 + 26 + onMount(() => { 27 + dialogEl.showModal() 28 + setTimeout(() => { 29 + // wait for the dialog to be visible before animating. setTimeout requires for Safari 30 + backdrop = true 31 + }) 32 + return () => { 33 + dialogEl.close() 34 + } 35 + }) 36 + 37 + function pos_within(e: MouseEvent, el: HTMLElement) { 38 + const rect = el.getBoundingClientRect() 39 + return ( 40 + rect.top <= e.clientY && 41 + e.clientY <= rect.bottom && 42 + rect.left <= e.clientX && 43 + e.clientX <= rect.right 44 + ) 45 + } 46 + 47 + // Prevent clicks where the mousedown or mouseup happened on a child element. 48 + let clickable = false 49 + </script> 50 + 51 + <!-- svelte-ignore a11y-no-noninteractive-element-interactions --> 52 + <dialog 53 + class="modal" 54 + class:show-backdrop={backdrop} 55 + bind:this={dialogEl} 56 + on:mousedown|self={() => { 57 + clickable = true 58 + }} 59 + on:click|self={(e) => { 60 + if ((clickable || e.type !== 'click') && !pos_within(e, dialogEl)) { 61 + onCancel() 62 + } 63 + }} 64 + on:keydown 65 + on:keydown={(e) => { 66 + if (e.key === 'Escape' && noEscapeHandling) { 67 + e.preventDefault() 68 + } 69 + }} 70 + on:keydown|self={(e) => { 71 + if (form && e.key === 'Enter' && !e.metaKey) { 72 + form() 73 + e.preventDefault() 74 + } 75 + }} 76 + on:cancel={(e) => { 77 + e.preventDefault() 78 + onCancel() 79 + }} 80 + transition:scale={{ duration: 200, start: 0.93, opacity: 0 }} 81 + on:outrostart={() => { 82 + backdrop = false 83 + }} 84 + > 85 + <svelte:element 86 + this={tag} 87 + class="box" 88 + on:submit|preventDefault={form} 89 + on:mousedown={() => { 90 + clickable = false 91 + }} 92 + role="none" 93 + > 94 + {#if !noCloseIcon} 95 + <svg 96 + role="none" 97 + on:click={() => onCancel()} 98 + fill="currentColor" 99 + xmlns="http://www.w3.org/2000/svg" 100 + width="12" 101 + height="12" 102 + viewBox="0 0 24 24" 103 + ><path 104 + d="M23.954 21.03l-9.184-9.095 9.092-9.174-2.832-2.807-9.09 9.179-9.176-9.088-2.81 2.81 9.186 9.105-9.095 9.184 2.81 2.81 9.112-9.192 9.18 9.1z" 105 + /></svg 106 + > 107 + {/if} 108 + {#if title !== null} 109 + <h2>{title}</h2> 110 + {/if} 111 + <slot /> 112 + {#if $$slots.buttons} 113 + <div class="buttons"> 114 + <slot name="buttons" /> 115 + </div> 116 + {/if} 117 + </svelte:element> 118 + </dialog> 119 + 120 + <style lang="sass"> 121 + dialog 122 + background-color: var(--modal-bg, hsl(220, 18%, 11%)) 123 + color: inherit 124 + box-sizing: border-box 125 + border-radius: 8px 126 + box-shadow: 0px 0px 30px 0px rgba(#000000, 0.5) 127 + outline: none 128 + padding: 0px 129 + border: 1px solid hsla(0, 0%, 100%, 0.15) 130 + .box 131 + padding: 24px 132 + ::backdrop 133 + transition: opacity 200ms cubic-bezier(0.33, 1, 0.68, 1) // easeOutCubic 134 + background-color: hsla(0, 0%, 0%, 0.2) 135 + opacity: 0 136 + .show-backdrop::backdrop 137 + opacity: 1 138 + svg 139 + position: absolute 140 + right: 12px 141 + top: 12px 142 + padding: 6px 143 + &:hover 144 + opacity: 0.7 145 + h2 146 + margin-top: -8px 147 + .buttons 148 + display: flex 149 + justify-content: flex-end 150 + </style>
-7
src/main.ts
··· 1 - import App from './App.svelte' 2 - 3 - const app = new App({ 4 - target: document.body, 5 - }) 6 - 7 - export default app
+17 -10
src/modals/Channel.svelte src/lib/modals/Channel.svelte
··· 1 1 <script lang="ts"> 2 - import { loadSettings } from '../lib/data' 3 - import Modal from 'modal-svelte' 2 + import { loadSettings } from '$lib/data' 3 + import Modal from './Modal.svelte' 4 4 import { DateInput } from 'date-picker-svelte' 5 - import Button from '../lib/Button.svelte' 6 - import type { Channel } from '../../bindings' 7 - import commands from '../lib/commands' 5 + import Button from '$lib/Button.svelte' 6 + import type { Channel } from '../../../bindings' 7 + import commands from '$lib/commands' 8 8 9 9 async function saveChannels() { 10 10 await commands.setChannels(channels) ··· 73 73 </script> 74 74 75 75 {#if visible} 76 - <Modal onCancel={() => (visible = false)} noCloseIcon> 77 - <form class="content" on:submit|preventDefault={submit}> 76 + <Modal 77 + onCancel={() => { 78 + visible = false 79 + }} 80 + noCloseIcon 81 + form={submit} 82 + > 83 + <div class="content"> 78 84 {#if editIndex === null} 79 85 <h3>Add Channel</h3> 80 86 {:else} ··· 83 89 84 90 {#if editIndex === null} 85 91 <p>Channel or Video URL</p> 92 + <!-- svelte-ignore a11y-autofocus --> 86 93 <input 87 94 type="text" 88 95 placeholder="https://www.youtube.com/channel/UCeTncCK57upn3lPn6PX18Ng" 89 96 bind:value={url} 97 + autofocus 90 98 /> 91 99 {/if} 92 100 ··· 111 119 <div class="spacer" /> 112 120 <Button type="submit">{editIndex === null ? 'Add' : 'Save'}</Button> 113 121 </div> 114 - </form> 122 + </div> 115 123 </Modal> 116 124 {/if} 117 125 ··· 130 138 font-weight: 500 131 139 margin-top: 5px 132 140 margin-bottom: 7px 133 - cursor: default 134 141 p.sub 135 142 font-weight: 400 136 143 font-size: 12px 137 - opacity: 0.6 144 + color: hsla(0, 0%, 100%, 0.6) 138 145 margin-top: 5px 139 146 margin-bottom: 7px 140 147 input, :global(.date-picker input)
+3 -3
src/modals/GetStarted.svelte src/lib/modals/GetStarted.svelte
··· 1 1 <script lang="ts"> 2 - import { settingsOpen } from '../lib/data' 2 + import { settingsOpen } from '$lib/data' 3 3 import Modal from 'modal-svelte' 4 - import Button from '../lib/Button.svelte' 5 - import Link from '../lib/Link.svelte' 4 + import Button from '$lib/Button.svelte' 5 + import Link from '$lib/Link.svelte' 6 6 7 7 export let visible = true 8 8 </script>
+6 -13
src/modals/Settings.svelte src/lib/modals/Settings.svelte
··· 1 1 <script lang="ts"> 2 - import Button from '../lib/Button.svelte' 3 - import { loadSettings } from '../lib/data' 2 + import Button from '$lib/Button.svelte' 3 + import { loadSettings } from '$lib/data' 4 4 import Modal from 'modal-svelte' 5 - import Link from '../lib/Link.svelte' 6 - import Switch from '../lib/Switch.svelte' 7 - import commands from '../lib/commands' 5 + import Link from '$lib/Link.svelte' 6 + import Switch from '$lib/Switch.svelte' 7 + import commands from '$lib/commands' 8 8 9 9 export let apiKey: string 10 10 export let maxConcurrentRequests: number ··· 25 25 onCancel={() => { 26 26 visible = false 27 27 }} 28 - let:focus 29 28 noCloseIcon 30 29 > 31 30 <form class="page" on:submit|preventDefault={setGeneralSettings}> ··· 37 36 <div>Get your own key</div> 38 37 </Link> 39 38 </p> 40 - <input 41 - class="textbox" 42 - type="text" 43 - bind:value={apiKey} 44 - placeholder="AIzaSyNq5Y9knL..." 45 - use:focus 46 - /> 39 + <input class="textbox" type="text" bind:value={apiKey} placeholder="AIzaSyNq5Y9knL..." /> 47 40 <div class="toggle-row"> 48 41 <label for="check-in-background"> 49 42 <p>Check for new videos automatically</p>
+2
src/routes/+layout.ts
··· 1 + export const ssr = false 2 + export const prerender = true
+13 -9
src/routes/Channels.svelte src/routes/channels/+page.svelte
··· 1 1 <script lang="ts"> 2 - import Link from '../lib/Link.svelte' 3 - import { loadSettings } from '../lib/data' 4 - import Tags from '../lib/Tags.svelte' 5 - import type { Channel } from '../../bindings' 6 - import ChannelModal from '../modals/Channel.svelte' 2 + import Link from '$lib/Link.svelte' 3 + import { loadSettings, settings } from '$lib/data' 4 + import Tags from '$lib/Tags.svelte' 5 + import type { Channel } from '../../../bindings' 6 + import ChannelModal from '$lib/modals/Channel.svelte' 7 7 import { event } from '@tauri-apps/api' 8 8 import { onDestroy } from 'svelte' 9 - import { router } from 'tinro' 10 - import commands from '../lib/commands' 9 + import commands from '$lib/commands' 10 + import { page } from '$app/stores' 11 + import { goto } from '$app/navigation' 11 12 12 - export let channels: Channel[] 13 + $: channels = $settings?.channels ?? [] 13 14 14 15 $: visibleIndexes = getVisibleIndexes(channels, filter) 15 16 function getVisibleIndexes(channels: Channel[], filter: string) { ··· 39 40 editIndex = null 40 41 editVisible = true 41 42 } 42 - $: if ($router.hash === 'add') { 43 + $: if ($page.url.searchParams.has('add')) { 43 44 openAddModal() 45 + } 46 + $: if (!editVisible) { 47 + goto('/channels', { replaceState: true }) 44 48 } 45 49 46 50 let filter = ''
+3 -4
src/routes/Videos.svelte src/routes/+page.svelte
··· 1 1 <script lang="ts"> 2 - import { type ViewOptions, viewOptions } from '../lib/data' 2 + import { type ViewOptions, viewOptions } from '$lib/data' 3 3 import { event, shell } from '@tauri-apps/api' 4 4 import { listen } from '@tauri-apps/api/event' 5 5 import { onDestroy, tick } from 'svelte' 6 6 import type { Video } from '../../bindings' 7 - import { checkModifiers, checkShortcut } from '../lib/general' 7 + import { checkModifiers, checkShortcut } from '$lib/general' 8 8 import VideoBar from './_VideoBar.svelte' 9 - import commands from '../lib/commands' 9 + import commands from '$lib/commands' 10 10 11 11 let videos: Video[] = [] 12 12 let allLoaded = false ··· 404 404 color: hsl(210, 8%, 90%) 405 405 p.sub 406 406 font-size: 12px 407 - cursor: default 408 407 color: hsl(210, 8%, 80%) 409 408 margin-top: 2px 410 409 .box:hover .archive
+2 -2
src/routes/_VideoBar.svelte
··· 1 1 <script lang="ts"> 2 2 import { onDestroy } from 'svelte' 3 - import { tags, viewOptions } from '../lib/data' 4 - import { checkShortcut } from '../lib/general' 3 + import { tags, viewOptions } from '$lib/data' 4 + import { checkShortcut } from '$lib/general' 5 5 import { event } from '@tauri-apps/api' 6 6 7 7 export let loadedVideosCount: number
+11
svelte.config.js
··· 1 + import adapter from '@sveltejs/adapter-static' 2 + import { vitePreprocess } from '@sveltejs/kit/vite' 3 + 4 + /** @type {import('@sveltejs/kit').Config} */ 5 + export default { 6 + preprocess: vitePreprocess(), 7 + 8 + kit: { 9 + adapter: adapter(), 10 + }, 11 + }
+13 -9
tsconfig.json
··· 1 1 { 2 - "extends": "@tsconfig/svelte/tsconfig.json", 2 + "extends": "./.svelte-kit/tsconfig.json", 3 3 "compilerOptions": { 4 - "target": "ESNext", 5 - "useDefineForClassFields": true, 6 - "module": "ESNext", 7 - "resolveJsonModule": true, 8 4 "allowJs": true, 9 5 "checkJs": true, 10 - "isolatedModules": true, 11 - "strict": true 12 - }, 13 - "include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"] 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 + // 16 + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes 17 + // from the referenced tsconfig.json - TypeScript does not merge them in 14 18 }
-24
vite.config.js
··· 1 - import { defineConfig } from 'vite' 2 - import { svelte, vitePreprocess } from '@sveltejs/vite-plugin-svelte' 3 - import autoprefixer from 'autoprefixer' 4 - 5 - export default defineConfig({ 6 - clearScreen: false, 7 - server: { 8 - port: 9000, 9 - strictPort: true, 10 - }, 11 - build: { 12 - sourcemap: true, 13 - target: ['chrome64', 'edge79', 'firefox62', 'safari11.1'], 14 - }, 15 - plugins: [ 16 - svelte({ 17 - preprocess: vitePreprocess({ 18 - postcss: { 19 - plugins: autoprefixer, 20 - }, 21 - }), 22 - }), 23 - ], 24 - })
+18
vite.config.ts
··· 1 + import { sveltekit } from '@sveltejs/kit/vite' 2 + import { defineConfig } from 'vite' 3 + 4 + export default defineConfig({ 5 + clearScreen: false, 6 + server: { 7 + port: 9000, 8 + strictPort: true, 9 + fs: { 10 + allow: ['./bindings.ts'], 11 + }, 12 + }, 13 + build: { 14 + sourcemap: true, 15 + target: ['chrome64', 'edge79', 'firefox62', 'safari11.1'], 16 + }, 17 + plugins: [sveltekit()], 18 + })