refactor(frontend): use handleError hook for errors instead of try/catch
This commit is contained in:
		
							parent
							
								
									397ffc2d5e
								
							
						
					
					
						commit
						ddd96e415a
					
				
					 7 changed files with 238 additions and 216 deletions
				
			
		|  | @ -14,7 +14,7 @@ | |||
| 	"devDependencies": { | ||||
| 		"@sveltejs/adapter-node": "^5.2.10", | ||||
| 		"@sveltejs/kit": "^2.12.1", | ||||
| 		"@sveltejs/vite-plugin-svelte": "^4.0.3", | ||||
| 		"@sveltejs/vite-plugin-svelte": "^5.0.2", | ||||
| 		"@sveltestrap/sveltestrap": "^6.2.7", | ||||
| 		"@types/eslint": "^9.6.1", | ||||
| 		"@types/luxon": "^3.4.2", | ||||
|  | @ -34,7 +34,7 @@ | |||
| 		"sveltekit-i18n": "^2.4.2", | ||||
| 		"typescript": "^5.7.2", | ||||
| 		"typescript-eslint": "^8.18.1", | ||||
| 		"vite": "^5.4.11" | ||||
| 		"vite": "^6.0.3" | ||||
| 	}, | ||||
| 	"packageManager": "pnpm@9.15.0+sha512.76e2379760a4328ec4415815bcd6628dee727af3779aaa4c914e3944156c4299921a89f976381ee107d41f12cfa4b66681ca9c718f0668fa0831ed4c6d8ba56c", | ||||
| 	"dependencies": { | ||||
|  | @ -49,5 +49,10 @@ | |||
| 		"svelte-tippy": "^1.3.2", | ||||
| 		"tippy.js": "^6.3.7", | ||||
| 		"tslog": "^4.9.3" | ||||
| 	}, | ||||
| 	"pnpm": { | ||||
| 		"overrides": { | ||||
| 			"esrap@1.3.0": "1.2.3" | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  |  | |||
							
								
								
									
										342
									
								
								Foxnouns.Frontend/pnpm-lock.yaml
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										342
									
								
								Foxnouns.Frontend/pnpm-lock.yaml
									
										
									
										generated
									
									
									
								
							|  | @ -4,6 +4,9 @@ settings: | |||
|   autoInstallPeers: true | ||||
|   excludeLinksFromLockfile: false | ||||
| 
 | ||||
| overrides: | ||||
|   esrap@1.3.0: 1.2.3 | ||||
| 
 | ||||
| importers: | ||||
| 
 | ||||
|   .: | ||||
|  | @ -44,13 +47,13 @@ importers: | |||
|     devDependencies: | ||||
|       '@sveltejs/adapter-node': | ||||
|         specifier: ^5.2.10 | ||||
|         version: 5.2.10(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@4.0.3(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)))(svelte@5.14.2)(vite@5.4.11(sass@1.83.0))) | ||||
|         version: 5.2.10(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)))(svelte@5.14.2)(vite@6.0.3(sass@1.83.0))) | ||||
|       '@sveltejs/kit': | ||||
|         specifier: ^2.12.1 | ||||
|         version: 2.12.1(@sveltejs/vite-plugin-svelte@4.0.3(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)))(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)) | ||||
|         version: 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)))(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)) | ||||
|       '@sveltejs/vite-plugin-svelte': | ||||
|         specifier: ^4.0.3 | ||||
|         version: 4.0.3(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)) | ||||
|         specifier: ^5.0.2 | ||||
|         version: 5.0.2(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)) | ||||
|       '@sveltestrap/sveltestrap': | ||||
|         specifier: ^6.2.7 | ||||
|         version: 6.2.7(svelte@5.14.2) | ||||
|  | @ -109,8 +112,8 @@ importers: | |||
|         specifier: ^8.18.1 | ||||
|         version: 8.18.1(eslint@9.17.0)(typescript@5.7.2) | ||||
|       vite: | ||||
|         specifier: ^5.4.11 | ||||
|         version: 5.4.11(sass@1.83.0) | ||||
|         specifier: ^6.0.3 | ||||
|         version: 6.0.3(sass@1.83.0) | ||||
| 
 | ||||
| packages: | ||||
| 
 | ||||
|  | @ -118,141 +121,147 @@ packages: | |||
|     resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} | ||||
|     engines: {node: '>=6.0.0'} | ||||
| 
 | ||||
|   '@esbuild/aix-ppc64@0.21.5': | ||||
|     resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/aix-ppc64@0.24.0': | ||||
|     resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [ppc64] | ||||
|     os: [aix] | ||||
| 
 | ||||
|   '@esbuild/android-arm64@0.21.5': | ||||
|     resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/android-arm64@0.24.0': | ||||
|     resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [arm64] | ||||
|     os: [android] | ||||
| 
 | ||||
|   '@esbuild/android-arm@0.21.5': | ||||
|     resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/android-arm@0.24.0': | ||||
|     resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [arm] | ||||
|     os: [android] | ||||
| 
 | ||||
|   '@esbuild/android-x64@0.21.5': | ||||
|     resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/android-x64@0.24.0': | ||||
|     resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [x64] | ||||
|     os: [android] | ||||
| 
 | ||||
|   '@esbuild/darwin-arm64@0.21.5': | ||||
|     resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/darwin-arm64@0.24.0': | ||||
|     resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [arm64] | ||||
|     os: [darwin] | ||||
| 
 | ||||
|   '@esbuild/darwin-x64@0.21.5': | ||||
|     resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/darwin-x64@0.24.0': | ||||
|     resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [x64] | ||||
|     os: [darwin] | ||||
| 
 | ||||
|   '@esbuild/freebsd-arm64@0.21.5': | ||||
|     resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/freebsd-arm64@0.24.0': | ||||
|     resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [arm64] | ||||
|     os: [freebsd] | ||||
| 
 | ||||
|   '@esbuild/freebsd-x64@0.21.5': | ||||
|     resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/freebsd-x64@0.24.0': | ||||
|     resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [x64] | ||||
|     os: [freebsd] | ||||
| 
 | ||||
|   '@esbuild/linux-arm64@0.21.5': | ||||
|     resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/linux-arm64@0.24.0': | ||||
|     resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [arm64] | ||||
|     os: [linux] | ||||
| 
 | ||||
|   '@esbuild/linux-arm@0.21.5': | ||||
|     resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/linux-arm@0.24.0': | ||||
|     resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [arm] | ||||
|     os: [linux] | ||||
| 
 | ||||
|   '@esbuild/linux-ia32@0.21.5': | ||||
|     resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/linux-ia32@0.24.0': | ||||
|     resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [ia32] | ||||
|     os: [linux] | ||||
| 
 | ||||
|   '@esbuild/linux-loong64@0.21.5': | ||||
|     resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/linux-loong64@0.24.0': | ||||
|     resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [loong64] | ||||
|     os: [linux] | ||||
| 
 | ||||
|   '@esbuild/linux-mips64el@0.21.5': | ||||
|     resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/linux-mips64el@0.24.0': | ||||
|     resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [mips64el] | ||||
|     os: [linux] | ||||
| 
 | ||||
|   '@esbuild/linux-ppc64@0.21.5': | ||||
|     resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/linux-ppc64@0.24.0': | ||||
|     resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [ppc64] | ||||
|     os: [linux] | ||||
| 
 | ||||
|   '@esbuild/linux-riscv64@0.21.5': | ||||
|     resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/linux-riscv64@0.24.0': | ||||
|     resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [riscv64] | ||||
|     os: [linux] | ||||
| 
 | ||||
|   '@esbuild/linux-s390x@0.21.5': | ||||
|     resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/linux-s390x@0.24.0': | ||||
|     resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [s390x] | ||||
|     os: [linux] | ||||
| 
 | ||||
|   '@esbuild/linux-x64@0.21.5': | ||||
|     resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/linux-x64@0.24.0': | ||||
|     resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [x64] | ||||
|     os: [linux] | ||||
| 
 | ||||
|   '@esbuild/netbsd-x64@0.21.5': | ||||
|     resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/netbsd-x64@0.24.0': | ||||
|     resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [x64] | ||||
|     os: [netbsd] | ||||
| 
 | ||||
|   '@esbuild/openbsd-x64@0.21.5': | ||||
|     resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/openbsd-arm64@0.24.0': | ||||
|     resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [arm64] | ||||
|     os: [openbsd] | ||||
| 
 | ||||
|   '@esbuild/openbsd-x64@0.24.0': | ||||
|     resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [x64] | ||||
|     os: [openbsd] | ||||
| 
 | ||||
|   '@esbuild/sunos-x64@0.21.5': | ||||
|     resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/sunos-x64@0.24.0': | ||||
|     resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [x64] | ||||
|     os: [sunos] | ||||
| 
 | ||||
|   '@esbuild/win32-arm64@0.21.5': | ||||
|     resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/win32-arm64@0.24.0': | ||||
|     resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [arm64] | ||||
|     os: [win32] | ||||
| 
 | ||||
|   '@esbuild/win32-ia32@0.21.5': | ||||
|     resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/win32-ia32@0.24.0': | ||||
|     resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [ia32] | ||||
|     os: [win32] | ||||
| 
 | ||||
|   '@esbuild/win32-x64@0.21.5': | ||||
|     resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} | ||||
|     engines: {node: '>=12'} | ||||
|   '@esbuild/win32-x64@0.24.0': | ||||
|     resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} | ||||
|     engines: {node: '>=18'} | ||||
|     cpu: [x64] | ||||
|     os: [win32] | ||||
| 
 | ||||
|  | @ -576,20 +585,20 @@ packages: | |||
|       svelte: ^4.0.0 || ^5.0.0-next.0 | ||||
|       vite: ^5.0.3 || ^6.0.0 | ||||
| 
 | ||||
|   '@sveltejs/vite-plugin-svelte-inspector@3.0.1': | ||||
|     resolution: {integrity: sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==} | ||||
|   '@sveltejs/vite-plugin-svelte-inspector@4.0.1': | ||||
|     resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==} | ||||
|     engines: {node: ^18.0.0 || ^20.0.0 || >=22} | ||||
|     peerDependencies: | ||||
|       '@sveltejs/vite-plugin-svelte': ^4.0.0-next.0||^4.0.0 | ||||
|       svelte: ^5.0.0-next.96 || ^5.0.0 | ||||
|       vite: ^5.0.0 | ||||
|       '@sveltejs/vite-plugin-svelte': ^5.0.0 | ||||
|       svelte: ^5.0.0 | ||||
|       vite: ^6.0.0 | ||||
| 
 | ||||
|   '@sveltejs/vite-plugin-svelte@4.0.3': | ||||
|     resolution: {integrity: sha512-J7nC5gT5qpmvyD2pmzPUntLUgoinyEaNy9sTpGGE6N7pblggO0A1NyneJJvR2ELlzK6ti28aF2SLXG1yJdnJeA==} | ||||
|   '@sveltejs/vite-plugin-svelte@5.0.2': | ||||
|     resolution: {integrity: sha512-GElAxQMlznx1pRdodtkmiyBZcjlaJntJ8APa2hBhnbUAJqKAFGdmwjRPJhh+2DMxwARRLBzQIs/iZ5EbR4X/og==} | ||||
|     engines: {node: ^18.0.0 || ^20.0.0 || >=22} | ||||
|     peerDependencies: | ||||
|       svelte: ^5.0.0-next.96 || ^5.0.0 | ||||
|       vite: ^5.0.0 | ||||
|       svelte: ^5.0.0 | ||||
|       vite: ^6.0.0 | ||||
| 
 | ||||
|   '@sveltekit-i18n/base@1.3.7': | ||||
|     resolution: {integrity: sha512-kg1kql1/ro/lIudwFiWrv949Q07gmweln87tflUZR51MNdXXzK4fiJQv5Mw50K/CdQ5BOk/dJ0WOH2vOtBI6yw==} | ||||
|  | @ -818,9 +827,9 @@ packages: | |||
|     resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} | ||||
|     engines: {node: '>=0.12'} | ||||
| 
 | ||||
|   esbuild@0.21.5: | ||||
|     resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} | ||||
|     engines: {node: '>=12'} | ||||
|   esbuild@0.24.0: | ||||
|     resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} | ||||
|     engines: {node: '>=18'} | ||||
|     hasBin: true | ||||
| 
 | ||||
|   escape-string-regexp@4.0.0: | ||||
|  | @ -890,8 +899,8 @@ packages: | |||
|     resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} | ||||
|     engines: {node: '>=0.10'} | ||||
| 
 | ||||
|   esrap@1.3.0: | ||||
|     resolution: {integrity: sha512-LPT4X5Ur2sGnkQscwgWXRPVDuQrbuJbrStLmVXVXd+lGQ/HoYmcAa47t0Egzw1bYHwhF0w+6DTkxL1Xctp10XQ==} | ||||
|   esrap@1.2.3: | ||||
|     resolution: {integrity: sha512-ZlQmCCK+n7SGoqo7DnfKaP1sJZa49P01/dXzmjCASSo04p72w8EksT2NMK8CEX8DhKsfJXANioIw8VyHNsBfvQ==} | ||||
| 
 | ||||
|   esrecurse@4.3.0: | ||||
|     resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} | ||||
|  | @ -1400,22 +1409,27 @@ packages: | |||
|   util-deprecate@1.0.2: | ||||
|     resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} | ||||
| 
 | ||||
|   vite@5.4.11: | ||||
|     resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} | ||||
|     engines: {node: ^18.0.0 || >=20.0.0} | ||||
|   vite@6.0.3: | ||||
|     resolution: {integrity: sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==} | ||||
|     engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} | ||||
|     hasBin: true | ||||
|     peerDependencies: | ||||
|       '@types/node': ^18.0.0 || >=20.0.0 | ||||
|       '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 | ||||
|       jiti: '>=1.21.0' | ||||
|       less: '*' | ||||
|       lightningcss: ^1.21.0 | ||||
|       sass: '*' | ||||
|       sass-embedded: '*' | ||||
|       stylus: '*' | ||||
|       sugarss: '*' | ||||
|       terser: ^5.4.0 | ||||
|       terser: ^5.16.0 | ||||
|       tsx: ^4.8.1 | ||||
|       yaml: ^2.4.2 | ||||
|     peerDependenciesMeta: | ||||
|       '@types/node': | ||||
|         optional: true | ||||
|       jiti: | ||||
|         optional: true | ||||
|       less: | ||||
|         optional: true | ||||
|       lightningcss: | ||||
|  | @ -1430,6 +1444,10 @@ packages: | |||
|         optional: true | ||||
|       terser: | ||||
|         optional: true | ||||
|       tsx: | ||||
|         optional: true | ||||
|       yaml: | ||||
|         optional: true | ||||
| 
 | ||||
|   vitefu@1.0.4: | ||||
|     resolution: {integrity: sha512-y6zEE3PQf6uu/Mt6DTJ9ih+kyJLr4XcSgHR2zUkM8SWDhuixEJxfJ6CZGMHh1Ec3vPLoEA0IHU5oWzVqw8ulow==} | ||||
|  | @ -1466,73 +1484,76 @@ snapshots: | |||
|       '@jridgewell/gen-mapping': 0.3.8 | ||||
|       '@jridgewell/trace-mapping': 0.3.25 | ||||
| 
 | ||||
|   '@esbuild/aix-ppc64@0.21.5': | ||||
|   '@esbuild/aix-ppc64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/android-arm64@0.21.5': | ||||
|   '@esbuild/android-arm64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/android-arm@0.21.5': | ||||
|   '@esbuild/android-arm@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/android-x64@0.21.5': | ||||
|   '@esbuild/android-x64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/darwin-arm64@0.21.5': | ||||
|   '@esbuild/darwin-arm64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/darwin-x64@0.21.5': | ||||
|   '@esbuild/darwin-x64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/freebsd-arm64@0.21.5': | ||||
|   '@esbuild/freebsd-arm64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/freebsd-x64@0.21.5': | ||||
|   '@esbuild/freebsd-x64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/linux-arm64@0.21.5': | ||||
|   '@esbuild/linux-arm64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/linux-arm@0.21.5': | ||||
|   '@esbuild/linux-arm@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/linux-ia32@0.21.5': | ||||
|   '@esbuild/linux-ia32@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/linux-loong64@0.21.5': | ||||
|   '@esbuild/linux-loong64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/linux-mips64el@0.21.5': | ||||
|   '@esbuild/linux-mips64el@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/linux-ppc64@0.21.5': | ||||
|   '@esbuild/linux-ppc64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/linux-riscv64@0.21.5': | ||||
|   '@esbuild/linux-riscv64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/linux-s390x@0.21.5': | ||||
|   '@esbuild/linux-s390x@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/linux-x64@0.21.5': | ||||
|   '@esbuild/linux-x64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/netbsd-x64@0.21.5': | ||||
|   '@esbuild/netbsd-x64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/openbsd-x64@0.21.5': | ||||
|   '@esbuild/openbsd-arm64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/sunos-x64@0.21.5': | ||||
|   '@esbuild/openbsd-x64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/win32-arm64@0.21.5': | ||||
|   '@esbuild/sunos-x64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/win32-ia32@0.21.5': | ||||
|   '@esbuild/win32-arm64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/win32-x64@0.21.5': | ||||
|   '@esbuild/win32-ia32@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@esbuild/win32-x64@0.24.0': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0)': | ||||
|  | @ -1778,17 +1799,17 @@ snapshots: | |||
|   '@rollup/rollup-win32-x64-msvc@4.28.1': | ||||
|     optional: true | ||||
| 
 | ||||
|   '@sveltejs/adapter-node@5.2.10(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@4.0.3(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)))(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)))': | ||||
|   '@sveltejs/adapter-node@5.2.10(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)))(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)))': | ||||
|     dependencies: | ||||
|       '@rollup/plugin-commonjs': 28.0.2(rollup@4.28.1) | ||||
|       '@rollup/plugin-json': 6.1.0(rollup@4.28.1) | ||||
|       '@rollup/plugin-node-resolve': 15.3.1(rollup@4.28.1) | ||||
|       '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@4.0.3(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)))(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)) | ||||
|       '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)))(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)) | ||||
|       rollup: 4.28.1 | ||||
| 
 | ||||
|   '@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@4.0.3(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)))(svelte@5.14.2)(vite@5.4.11(sass@1.83.0))': | ||||
|   '@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)))(svelte@5.14.2)(vite@6.0.3(sass@1.83.0))': | ||||
|     dependencies: | ||||
|       '@sveltejs/vite-plugin-svelte': 4.0.3(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)) | ||||
|       '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)) | ||||
|       '@types/cookie': 0.6.0 | ||||
|       cookie: 0.6.0 | ||||
|       devalue: 5.1.1 | ||||
|  | @ -1802,27 +1823,27 @@ snapshots: | |||
|       sirv: 3.0.0 | ||||
|       svelte: 5.14.2 | ||||
|       tiny-glob: 0.2.9 | ||||
|       vite: 5.4.11(sass@1.83.0) | ||||
|       vite: 6.0.3(sass@1.83.0) | ||||
| 
 | ||||
|   '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.3(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)))(svelte@5.14.2)(vite@5.4.11(sass@1.83.0))': | ||||
|   '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)))(svelte@5.14.2)(vite@6.0.3(sass@1.83.0))': | ||||
|     dependencies: | ||||
|       '@sveltejs/vite-plugin-svelte': 4.0.3(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)) | ||||
|       '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)) | ||||
|       debug: 4.4.0 | ||||
|       svelte: 5.14.2 | ||||
|       vite: 5.4.11(sass@1.83.0) | ||||
|       vite: 6.0.3(sass@1.83.0) | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
| 
 | ||||
|   '@sveltejs/vite-plugin-svelte@4.0.3(svelte@5.14.2)(vite@5.4.11(sass@1.83.0))': | ||||
|   '@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.2)(vite@6.0.3(sass@1.83.0))': | ||||
|     dependencies: | ||||
|       '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.3(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)))(svelte@5.14.2)(vite@5.4.11(sass@1.83.0)) | ||||
|       '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)))(svelte@5.14.2)(vite@6.0.3(sass@1.83.0)) | ||||
|       debug: 4.4.0 | ||||
|       deepmerge: 4.3.1 | ||||
|       kleur: 4.1.5 | ||||
|       magic-string: 0.30.17 | ||||
|       svelte: 5.14.2 | ||||
|       vite: 5.4.11(sass@1.83.0) | ||||
|       vitefu: 1.0.4(vite@5.4.11(sass@1.83.0)) | ||||
|       vite: 6.0.3(sass@1.83.0) | ||||
|       vitefu: 1.0.4(vite@6.0.3(sass@1.83.0)) | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
| 
 | ||||
|  | @ -2056,31 +2077,32 @@ snapshots: | |||
| 
 | ||||
|   entities@4.5.0: {} | ||||
| 
 | ||||
|   esbuild@0.21.5: | ||||
|   esbuild@0.24.0: | ||||
|     optionalDependencies: | ||||
|       '@esbuild/aix-ppc64': 0.21.5 | ||||
|       '@esbuild/android-arm': 0.21.5 | ||||
|       '@esbuild/android-arm64': 0.21.5 | ||||
|       '@esbuild/android-x64': 0.21.5 | ||||
|       '@esbuild/darwin-arm64': 0.21.5 | ||||
|       '@esbuild/darwin-x64': 0.21.5 | ||||
|       '@esbuild/freebsd-arm64': 0.21.5 | ||||
|       '@esbuild/freebsd-x64': 0.21.5 | ||||
|       '@esbuild/linux-arm': 0.21.5 | ||||
|       '@esbuild/linux-arm64': 0.21.5 | ||||
|       '@esbuild/linux-ia32': 0.21.5 | ||||
|       '@esbuild/linux-loong64': 0.21.5 | ||||
|       '@esbuild/linux-mips64el': 0.21.5 | ||||
|       '@esbuild/linux-ppc64': 0.21.5 | ||||
|       '@esbuild/linux-riscv64': 0.21.5 | ||||
|       '@esbuild/linux-s390x': 0.21.5 | ||||
|       '@esbuild/linux-x64': 0.21.5 | ||||
|       '@esbuild/netbsd-x64': 0.21.5 | ||||
|       '@esbuild/openbsd-x64': 0.21.5 | ||||
|       '@esbuild/sunos-x64': 0.21.5 | ||||
|       '@esbuild/win32-arm64': 0.21.5 | ||||
|       '@esbuild/win32-ia32': 0.21.5 | ||||
|       '@esbuild/win32-x64': 0.21.5 | ||||
|       '@esbuild/aix-ppc64': 0.24.0 | ||||
|       '@esbuild/android-arm': 0.24.0 | ||||
|       '@esbuild/android-arm64': 0.24.0 | ||||
|       '@esbuild/android-x64': 0.24.0 | ||||
|       '@esbuild/darwin-arm64': 0.24.0 | ||||
|       '@esbuild/darwin-x64': 0.24.0 | ||||
|       '@esbuild/freebsd-arm64': 0.24.0 | ||||
|       '@esbuild/freebsd-x64': 0.24.0 | ||||
|       '@esbuild/linux-arm': 0.24.0 | ||||
|       '@esbuild/linux-arm64': 0.24.0 | ||||
|       '@esbuild/linux-ia32': 0.24.0 | ||||
|       '@esbuild/linux-loong64': 0.24.0 | ||||
|       '@esbuild/linux-mips64el': 0.24.0 | ||||
|       '@esbuild/linux-ppc64': 0.24.0 | ||||
|       '@esbuild/linux-riscv64': 0.24.0 | ||||
|       '@esbuild/linux-s390x': 0.24.0 | ||||
|       '@esbuild/linux-x64': 0.24.0 | ||||
|       '@esbuild/netbsd-x64': 0.24.0 | ||||
|       '@esbuild/openbsd-arm64': 0.24.0 | ||||
|       '@esbuild/openbsd-x64': 0.24.0 | ||||
|       '@esbuild/sunos-x64': 0.24.0 | ||||
|       '@esbuild/win32-arm64': 0.24.0 | ||||
|       '@esbuild/win32-ia32': 0.24.0 | ||||
|       '@esbuild/win32-x64': 0.24.0 | ||||
| 
 | ||||
|   escape-string-regexp@4.0.0: {} | ||||
| 
 | ||||
|  | @ -2183,10 +2205,10 @@ snapshots: | |||
|     dependencies: | ||||
|       estraverse: 5.3.0 | ||||
| 
 | ||||
|   esrap@1.3.0: | ||||
|   esrap@1.2.3: | ||||
|     dependencies: | ||||
|       '@jridgewell/sourcemap-codec': 1.5.0 | ||||
|       '@typescript-eslint/types': 8.18.1 | ||||
|       '@types/estree': 1.0.6 | ||||
| 
 | ||||
|   esrecurse@4.3.0: | ||||
|     dependencies: | ||||
|  | @ -2603,7 +2625,7 @@ snapshots: | |||
|       aria-query: 5.3.2 | ||||
|       axobject-query: 4.1.0 | ||||
|       esm-env: 1.2.1 | ||||
|       esrap: 1.3.0 | ||||
|       esrap: 1.2.3 | ||||
|       is-reference: 3.0.3 | ||||
|       locate-character: 3.0.0 | ||||
|       magic-string: 0.30.17 | ||||
|  | @ -2660,18 +2682,18 @@ snapshots: | |||
| 
 | ||||
|   util-deprecate@1.0.2: {} | ||||
| 
 | ||||
|   vite@5.4.11(sass@1.83.0): | ||||
|   vite@6.0.3(sass@1.83.0): | ||||
|     dependencies: | ||||
|       esbuild: 0.21.5 | ||||
|       esbuild: 0.24.0 | ||||
|       postcss: 8.4.49 | ||||
|       rollup: 4.28.1 | ||||
|     optionalDependencies: | ||||
|       fsevents: 2.3.3 | ||||
|       sass: 1.83.0 | ||||
| 
 | ||||
|   vitefu@1.0.4(vite@5.4.11(sass@1.83.0)): | ||||
|   vitefu@1.0.4(vite@6.0.3(sass@1.83.0)): | ||||
|     optionalDependencies: | ||||
|       vite: 5.4.11(sass@1.83.0) | ||||
|       vite: 6.0.3(sass@1.83.0) | ||||
| 
 | ||||
|   which@2.0.2: | ||||
|     dependencies: | ||||
|  |  | |||
							
								
								
									
										9
									
								
								Foxnouns.Frontend/src/app.d.ts
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								Foxnouns.Frontend/src/app.d.ts
									
										
									
									
										vendored
									
									
								
							|  | @ -1,7 +1,16 @@ | |||
| // See https://svelte.dev/docs/kit/types#app.d.ts
 | ||||
| 
 | ||||
| import type { ErrorCode } from "$api/error"; | ||||
| 
 | ||||
| // for information about these interfaces
 | ||||
| declare global { | ||||
| 	namespace App { | ||||
| 		interface Error { | ||||
| 			message: string; | ||||
| 			status: number; | ||||
| 			code: ErrorCode; | ||||
| 			id: string; | ||||
| 		} | ||||
| 		// interface Error {}
 | ||||
| 		// interface Locals {}
 | ||||
| 		// interface PageData {}
 | ||||
|  |  | |||
|  | @ -1,6 +1,8 @@ | |||
| import ApiError, { ErrorCode } from "$api/error"; | ||||
| import { PRIVATE_API_HOST, PRIVATE_INTERNAL_API_HOST } from "$env/static/private"; | ||||
| import { PUBLIC_API_BASE } from "$env/static/public"; | ||||
| import type { HandleFetch } from "@sveltejs/kit"; | ||||
| import log from "$lib/log"; | ||||
| import type { HandleFetch, HandleServerError } from "@sveltejs/kit"; | ||||
| 
 | ||||
| export const handleFetch: HandleFetch = async ({ request, fetch }) => { | ||||
| 	if (request.url.startsWith(`${PUBLIC_API_BASE}/internal`)) { | ||||
|  | @ -11,3 +13,24 @@ export const handleFetch: HandleFetch = async ({ request, fetch }) => { | |||
| 
 | ||||
| 	return await fetch(request); | ||||
| }; | ||||
| 
 | ||||
| export const handleError: HandleServerError = async ({ error, status, message }) => { | ||||
| 	const id = crypto.randomUUID(); | ||||
| 
 | ||||
| 	if (error instanceof ApiError) { | ||||
| 		return { | ||||
| 			id, | ||||
| 			status: error.raw?.status || status, | ||||
| 			message: error.raw?.message || "Unknown error", | ||||
| 			code: error.code, | ||||
| 		}; | ||||
| 	} | ||||
| 
 | ||||
| 	if (status >= 400 && status <= 499) { | ||||
| 		return { id, status, message, code: ErrorCode.GenericApiError }; | ||||
| 	} | ||||
| 
 | ||||
| 	log.error("[%s] error in handler:", id, error); | ||||
| 
 | ||||
| 	return { id, status, message, code: ErrorCode.InternalServerError }; | ||||
| }; | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| <script lang="ts"> | ||||
| 	import { page } from "$app/stores"; | ||||
| 	import Error from "$components/Error.svelte"; | ||||
| 	import { t } from "$lib/i18n"; | ||||
| 	import type { LayoutData } from "./$types"; | ||||
| 
 | ||||
|  | @ -14,22 +15,8 @@ | |||
| </svelte:head> | ||||
| 
 | ||||
| <div class="container"> | ||||
| 	<h3>{$t("title.an-error-occurred")}</h3> | ||||
| 	<p> | ||||
| 		<strong>{$page.status}</strong>: {error.message} | ||||
| 	</p> | ||||
| 	<p> | ||||
| 		{#if $page.status === 400} | ||||
| 			{$t("error.400-description")} | ||||
| 		{:else if $page.status === 404} | ||||
| 			{$t("error.404-description")} | ||||
| 		{:else if $page.status === 500} | ||||
| 			{$t("error.500-description")} | ||||
| 		{:else} | ||||
| 			{$t("error.unknown-status-description")} | ||||
| 		{/if} | ||||
| 	</p> | ||||
| 	<div class="btn-group"> | ||||
| 	<Error {error} headerElem="h3" /> | ||||
| 	<div class="btn-group mt-2"> | ||||
| 		{#if data.meUser} | ||||
| 			<a class="btn btn-primary" href="/@{data.meUser.username}"> | ||||
| 				{$t("error.back-to-profile-button")} | ||||
|  |  | |||
|  | @ -1,25 +1,14 @@ | |||
| import { apiRequest } from "$api"; | ||||
| import ApiError, { ErrorCode } from "$api/error.js"; | ||||
| import type { UserWithMembers } from "$api/models"; | ||||
| import log from "$lib/log.js"; | ||||
| import paginate from "$lib/paginate"; | ||||
| import { error } from "@sveltejs/kit"; | ||||
| 
 | ||||
| const MEMBERS_PER_PAGE = 20; | ||||
| 
 | ||||
| export const load = async ({ params, fetch, cookies, url }) => { | ||||
| 	let user: UserWithMembers; | ||||
| 
 | ||||
| 	try { | ||||
| 		user = await apiRequest<UserWithMembers>("GET", `/users/${params.username}`, { | ||||
| 			fetch, | ||||
| 			cookies, | ||||
| 		}); | ||||
| 	} catch (e) { | ||||
| 		if (e instanceof ApiError && e.code === ErrorCode.UserNotFound) error(404, "User not found"); | ||||
| 		log.error("Error fetching user %s:", params.username, e); | ||||
| 		throw e; | ||||
| 	} | ||||
| 	const user = await apiRequest<UserWithMembers>("GET", `/users/${params.username}`, { | ||||
| 		fetch, | ||||
| 		cookies, | ||||
| 	}); | ||||
| 
 | ||||
| 	const { data, currentPage, pageCount } = paginate( | ||||
| 		user.members, | ||||
|  |  | |||
|  | @ -1,28 +1,15 @@ | |||
| import { apiRequest } from "$api"; | ||||
| import ApiError, { ErrorCode } from "$api/error.js"; | ||||
| import type { Member } from "$api/models/member"; | ||||
| import log from "$lib/log.js"; | ||||
| import { error } from "@sveltejs/kit"; | ||||
| 
 | ||||
| export const load = async ({ params, fetch, cookies }) => { | ||||
| 	try { | ||||
| 		const member = await apiRequest<Member>( | ||||
| 			"GET", | ||||
| 			`/users/${params.username}/members/${params.memberName}`, | ||||
| 			{ | ||||
| 				fetch, | ||||
| 				cookies, | ||||
| 			}, | ||||
| 		); | ||||
| 	const member = await apiRequest<Member>( | ||||
| 		"GET", | ||||
| 		`/users/${params.username}/members/${params.memberName}`, | ||||
| 		{ | ||||
| 			fetch, | ||||
| 			cookies, | ||||
| 		}, | ||||
| 	); | ||||
| 
 | ||||
| 		return { member }; | ||||
| 	} catch (e) { | ||||
| 		if (e instanceof ApiError) { | ||||
| 			if (e.code === ErrorCode.UserNotFound) error(404, "User not found"); | ||||
| 			if (e.code === ErrorCode.MemberNotFound) error(404, "Member not found"); | ||||
| 		} | ||||
| 
 | ||||
| 		log.error("Error fetching user %s/member %s:", params.username, params.memberName, e); | ||||
| 		throw e; | ||||
| 	} | ||||
| 	return { member }; | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue