- 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
20 lines
1.6 KiB
TypeScript
20 lines
1.6 KiB
TypeScript
import type { SvelteAwaitBlock, SvelteAwaitCatchBlock, SvelteAwaitPendingBlock, SvelteAwaitThenBlock, SvelteConstTag, SvelteDebugTag, SvelteEachBlock, SvelteElement, SvelteElseBlockAlone, SvelteHTMLComment, SvelteIfBlock, SvelteIfBlockAlone, SvelteKeyBlock, SvelteMustacheTag, SvelteProgram, SvelteRenderTag, SvelteScriptElement, SvelteSnippetBlock, SvelteStyleElement, SvelteText } from "../../ast/index.js";
|
|
import type { Context } from "../../context/index.js";
|
|
import type * as SvAST from "../svelte-ast-types.js";
|
|
import type * as Compiler from "../svelte-ast-types-for-v5.js";
|
|
import type { Child } from "../compat.js";
|
|
/** Convert for Fragment or Element or ... */
|
|
export declare function convertChildren(fragment: {
|
|
children?: SvAST.TemplateNode[];
|
|
} | Compiler.Fragment | {
|
|
nodes: (Child | SvAST.TemplateNode)[];
|
|
}, parent: SvelteProgram | SvelteElement | SvelteIfBlock | SvelteElseBlockAlone | SvelteEachBlock | SvelteAwaitPendingBlock | SvelteAwaitThenBlock | SvelteAwaitCatchBlock | SvelteKeyBlock | SvelteSnippetBlock, ctx: Context): IterableIterator<SvelteText | SvelteElement | SvelteMustacheTag | SvelteDebugTag | SvelteConstTag | SvelteRenderTag | SvelteIfBlockAlone | SvelteEachBlock | SvelteAwaitBlock | SvelteKeyBlock | SvelteSnippetBlock | SvelteHTMLComment>;
|
|
/** Extract element tag and tokens */
|
|
export declare function extractElementTags<E extends SvelteScriptElement | SvelteElement | SvelteStyleElement>(element: E, ctx: Context, options: {
|
|
buildNameNode: (openTokenRange: {
|
|
start: number;
|
|
end: number;
|
|
}) => E["name"];
|
|
extractAttribute?: boolean;
|
|
}): void;
|