- Delete old Vite+Svelte frontend - Initialize new SvelteKit project with TypeScript - Configure Tailwind CSS v4 + DaisyUI - Implement JWT authentication with auto-refresh - Create login page with form validation (Zod) - Add protected route guards - Update Docker configuration for single-stage build - Add E2E tests with Playwright (6/11 passing) - Fix Svelte 5 reactivity with $state() runes Known issues: - 5 E2E tests failing (timing/async issues) - Token refresh implementation needs debugging - Validation error display timing
38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
import { M as derived, z as writable } from './exports-yY1xCm4l.js';
|
|
|
|
function createUserStore() {
|
|
const { subscribe, set, update } = writable(null);
|
|
return {
|
|
subscribe,
|
|
set,
|
|
update,
|
|
clear: () => set(null)
|
|
};
|
|
}
|
|
const user = createUserStore();
|
|
function createAuthStore() {
|
|
const { subscribe, set, update } = writable({
|
|
isAuthenticated: false,
|
|
isLoading: false,
|
|
error: null
|
|
});
|
|
return {
|
|
subscribe,
|
|
set,
|
|
update,
|
|
setLoading: (loading) => update((state) => ({ ...state, isLoading: loading })),
|
|
setError: (error) => update((state) => ({ ...state, error })),
|
|
clearError: () => update((state) => ({ ...state, error: null })),
|
|
setAuthenticated: (authenticated) => update((state) => ({ ...state, isAuthenticated: authenticated }))
|
|
};
|
|
}
|
|
const auth = createAuthStore();
|
|
derived(
|
|
[user, auth],
|
|
([$user, $auth]) => $user !== null && $auth.isAuthenticated
|
|
);
|
|
derived(user, ($user) => $user?.role || null);
|
|
|
|
export { auth as a, user as u };
|
|
//# sourceMappingURL=auth-e49oatML.js.map
|