diff --git a/frontend/package.json b/frontend/package.json index c45addd2..f6a7a939 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,62 +1,62 @@ { - "name": "pocket-id-frontend", - "version": "0.52.0", - "private": true, - "type": "module", - "scripts": { - "dev": "vite dev --port 3000", - "build": "vite build", - "preview": "vite preview --port 3000", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "prettier --check . && eslint .", - "format": "prettier --write ." - }, - "dependencies": { - "@simplewebauthn/browser": "^13.1.0", - "@tailwindcss/vite": "^4.0.0", - "axios": "^1.8.2", - "clsx": "^2.1.1", - "crypto": "^1.0.1", - "formsnap": "^1.0.1", - "jose": "^5.9.6", - "lucide-svelte": "^0.487.0", - "mode-watcher": "^0.5.1", - "qrcode": "^1.5.4", - "svelte-sonner": "^0.3.28", - "sveltekit-superforms": "^2.23.1", - "tailwind-merge": "^2.6.0", - "tailwind-variants": "^0.3.1", - "zod": "^3.24.1" - }, - "devDependencies": { - "@inlang/paraglide-js": "^2.0.0", - "@inlang/plugin-m-function-matcher": "^2.0.7", - "@inlang/plugin-message-format": "^4.0.0", - "@internationalized/date": "^3.7.0", - "@playwright/test": "^1.50.0", - "@sveltejs/adapter-auto": "^4.0.0", - "@sveltejs/adapter-node": "^5.2.12", - "@sveltejs/kit": "^2.20.7", - "@sveltejs/vite-plugin-svelte": "^5.0.3", - "@types/eslint": "^9.6.1", - "@types/node": "^22.10.10", - "@types/qrcode": "^1.5.5", - "bits-ui": "^0.22.0", - "cmdk-sv": "^0.0.19", - "eslint": "^9.19.0", - "eslint-config-prettier": "^10.0.1", - "eslint-plugin-svelte": "^2.46.1", - "globals": "^15.14.0", - "prettier": "^3.4.2", - "prettier-plugin-svelte": "^3.3.3", - "prettier-plugin-tailwindcss": "^0.6.11", - "svelte": "^5.19.3", - "svelte-check": "^4.1.4", - "tailwindcss": "^4.0.0", - "tslib": "^2.8.1", - "typescript": "^5.7.3", - "typescript-eslint": "^8.21.0", - "vite": "^6.3.4" - } + "name": "pocket-id-frontend", + "version": "0.52.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite dev --port 3000", + "build": "vite build", + "preview": "vite preview --port 3000", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "prettier --check . && eslint .", + "format": "prettier --write ." + }, + "dependencies": { + "@simplewebauthn/browser": "^13.1.0", + "@tailwindcss/vite": "^4.0.0", + "axios": "^1.8.2", + "clsx": "^2.1.1", + "crypto": "^1.0.1", + "formsnap": "^1.0.1", + "jose": "^5.9.6", + "lucide-svelte": "^0.487.0", + "mode-watcher": "^0.5.1", + "qrcode": "^1.5.4", + "svelte-sonner": "^0.3.28", + "sveltekit-superforms": "^2.23.1", + "tailwind-merge": "^2.6.0", + "tailwind-variants": "^0.3.1", + "zod": "^3.24.1" + }, + "devDependencies": { + "@inlang/paraglide-js": "^2.0.0", + "@inlang/plugin-m-function-matcher": "^2.0.7", + "@inlang/plugin-message-format": "^4.0.0", + "@internationalized/date": "^3.7.0", + "@playwright/test": "^1.50.0", + "@sveltejs/adapter-auto": "^4.0.0", + "@sveltejs/adapter-node": "^5.2.12", + "@sveltejs/kit": "^2.20.7", + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "@types/eslint": "^9.6.1", + "@types/node": "^22.10.10", + "@types/qrcode": "^1.5.5", + "bits-ui": "^0.22.0", + "cmdk-sv": "^0.0.19", + "eslint": "^9.19.0", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-svelte": "^2.46.1", + "globals": "^15.14.0", + "prettier": "^3.4.2", + "prettier-plugin-svelte": "^3.3.3", + "prettier-plugin-tailwindcss": "^0.6.11", + "svelte": "^5.19.3", + "svelte-check": "^4.1.4", + "tailwindcss": "^4.0.0", + "tslib": "^2.8.1", + "typescript": "^5.7.3", + "typescript-eslint": "^8.21.0", + "vite": "^6.3.4" + } } diff --git a/frontend/src/hooks.server.ts b/frontend/src/hooks.server.ts index b0acec56..67c83d0a 100644 --- a/frontend/src/hooks.server.ts +++ b/frontend/src/hooks.server.ts @@ -24,7 +24,8 @@ const authenticationHandle: Handle = async ({ event, resolve }) => { const { isSignedIn, isAdmin } = verifyJwt(event.cookies.get(ACCESS_TOKEN_COOKIE_NAME)); const path = event.url.pathname; - const isUnauthenticatedOnlyPath = path == '/login' || path.startsWith('/login/') || path == '/lc' || path.startsWith('/lc/') + const isUnauthenticatedOnlyPath = + path == '/login' || path.startsWith('/login/') || path == '/lc' || path.startsWith('/lc/'); const isPublicPath = ['/authorize', '/device', '/health', '/healthz'].includes(path); const isAdminPath = path == '/settings/admin' || path.startsWith('/settings/admin/'); @@ -79,7 +80,7 @@ function verifyJwt(accessToken: string | undefined) { const jwtPayload = decodeJwt<{ isAdmin: boolean }>(accessToken); if (jwtPayload?.exp && jwtPayload.exp * 1000 > Date.now()) { isSignedIn = true; - isAdmin = !!(jwtPayload?.isAdmin); + isAdmin = !!jwtPayload?.isAdmin; } } diff --git a/frontend/src/lib/components/audit-log-list.svelte b/frontend/src/lib/components/audit-log-list.svelte index 12c54e25..1163a079 100644 --- a/frontend/src/lib/components/audit-log-list.svelte +++ b/frontend/src/lib/components/audit-log-list.svelte @@ -37,7 +37,7 @@ : (auditLogs = await auditLogService.list(options))} columns={[ { label: m.time(), sortColumn: 'createdAt' }, - ...(isAdmin ? [{ label: 'Username' }] : []), + ...(isAdmin ? [{ label: 'Username' }] : []), { label: m.event(), sortColumn: 'event' }, { label: m.approximate_location(), sortColumn: 'city' }, { label: m.ip_address(), sortColumn: 'ipAddress' }, diff --git a/frontend/src/lib/components/copy-to-clipboard.svelte b/frontend/src/lib/components/copy-to-clipboard.svelte index b7f35454..0e1f4e21 100644 --- a/frontend/src/lib/components/copy-to-clipboard.svelte +++ b/frontend/src/lib/components/copy-to-clipboard.svelte @@ -29,7 +29,9 @@ - {@render children()} + {@render children()} {#if copied} {m.copied()} diff --git a/frontend/src/lib/components/error.svelte b/frontend/src/lib/components/error.svelte index afbb1550..789fb777 100644 --- a/frontend/src/lib/components/error.svelte +++ b/frontend/src/lib/components/error.svelte @@ -7,7 +7,7 @@
- +

{m.something_went_wrong()}

{message}

{#if showButton} diff --git a/frontend/src/lib/components/form/auto-complete-input.svelte b/frontend/src/lib/components/form/auto-complete-input.svelte index 814a5a2a..b100c7b0 100644 --- a/frontend/src/lib/components/form/auto-complete-input.svelte +++ b/frontend/src/lib/components/form/auto-complete-input.svelte @@ -92,7 +92,7 @@ onkeydown={(e) => { if (e.key === 'Enter') handleSuggestionClick(suggestion); }} - class="relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none hover:bg-accent hover:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 {selectedIndex === + class="hover:bg-accent hover:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 {selectedIndex === index ? 'bg-accent text-accent-foreground' : ''}" diff --git a/frontend/src/lib/components/form/checkbox-with-label.svelte b/frontend/src/lib/components/form/checkbox-with-label.svelte index 9cfbd2ef..550d0f64 100644 --- a/frontend/src/lib/components/form/checkbox-with-label.svelte +++ b/frontend/src/lib/components/form/checkbox-with-label.svelte @@ -27,7 +27,7 @@ bind:checked />
-