- 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
48 lines
1.7 KiB
JavaScript
48 lines
1.7 KiB
JavaScript
import { unionWith } from "eslint-visitor-keys";
|
|
const svelteKeys = {
|
|
Program: ["body"],
|
|
SvelteScriptElement: ["name", "startTag", "body", "endTag"],
|
|
SvelteStyleElement: ["name", "startTag", "children", "endTag"],
|
|
SvelteElement: ["name", "startTag", "children", "endTag"],
|
|
SvelteStartTag: ["attributes"],
|
|
SvelteEndTag: [],
|
|
SvelteName: [],
|
|
SvelteMemberExpressionName: ["object", "property"],
|
|
SvelteLiteral: [],
|
|
SvelteMustacheTag: ["expression"],
|
|
SvelteDebugTag: ["identifiers"],
|
|
SvelteConstTag: ["declarations"],
|
|
SvelteRenderTag: ["expression"],
|
|
SvelteIfBlock: ["expression", "children", "else"],
|
|
SvelteElseBlock: ["children"],
|
|
SvelteEachBlock: [
|
|
"expression",
|
|
"context",
|
|
"index",
|
|
"key",
|
|
"children",
|
|
"else",
|
|
],
|
|
SvelteAwaitBlock: ["expression", "pending", "then", "catch"],
|
|
SvelteAwaitPendingBlock: ["children"],
|
|
SvelteAwaitThenBlock: ["value", "children"],
|
|
SvelteAwaitCatchBlock: ["error", "children"],
|
|
SvelteKeyBlock: ["expression", "children"],
|
|
SvelteSnippetBlock: ["id", "params", "children"],
|
|
SvelteAttribute: ["key", "value"],
|
|
SvelteShorthandAttribute: ["key", "value"],
|
|
SvelteSpreadAttribute: ["argument"],
|
|
SvelteAttachTag: ["expression"],
|
|
SvelteDirective: ["key", "expression"],
|
|
SvelteStyleDirective: ["key", "value"],
|
|
SvelteSpecialDirective: ["key", "expression"],
|
|
SvelteGenericsDirective: ["key", "params"],
|
|
SvelteDirectiveKey: ["name"],
|
|
SvelteSpecialDirectiveKey: [],
|
|
SvelteText: [],
|
|
SvelteHTMLComment: [],
|
|
SvelteReactiveStatement: ["label", "body"],
|
|
SvelteFunctionBindingsExpression: ["expressions"],
|
|
};
|
|
export const KEYS = unionWith(svelteKeys);
|