- 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
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import type { BaseConstraint } from "../constraint.ts";
|
|
import type { nodeImplementationOf } from "../shared/implement.ts";
|
|
import { After } from "./after.ts";
|
|
import { Before } from "./before.ts";
|
|
import { ExactLength } from "./exactLength.ts";
|
|
import { Max } from "./max.ts";
|
|
import { MaxLength } from "./maxLength.ts";
|
|
import { Min } from "./min.ts";
|
|
import { MinLength } from "./minLength.ts";
|
|
export interface BoundDeclarations {
|
|
min: Min.Declaration;
|
|
max: Max.Declaration;
|
|
minLength: MinLength.Declaration;
|
|
maxLength: MaxLength.Declaration;
|
|
exactLength: ExactLength.Declaration;
|
|
after: After.Declaration;
|
|
before: Before.Declaration;
|
|
}
|
|
export interface BoundNodesByKind {
|
|
min: Min.Node;
|
|
max: Max.Node;
|
|
minLength: MinLength.Node;
|
|
maxLength: MaxLength.Node;
|
|
exactLength: ExactLength.Node;
|
|
after: After.Node;
|
|
before: Before.Node;
|
|
}
|
|
export type BoundKind = keyof BoundDeclarations;
|
|
export type RangeKind = Exclude<BoundKind, "exactLength">;
|
|
export type boundImplementationsByKind = {
|
|
[k in BoundKind]: nodeImplementationOf<BoundDeclarations[k]>;
|
|
};
|
|
export declare const boundImplementationsByKind: boundImplementationsByKind;
|
|
export declare const boundClassesByKind: Record<BoundKind, typeof BaseConstraint<any>>;
|