- 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
23 lines
1.2 KiB
TypeScript
23 lines
1.2 KiB
TypeScript
import { ReadonlyArray, type array } from "./arrays.ts";
|
|
import type { requireKeys } from "./records.ts";
|
|
import { type JsonArray } from "./serialize.ts";
|
|
export type StringifyPathOptions<stringifiable = PropertyKey> = requireKeys<{
|
|
stringifySymbol?: (s: symbol) => string;
|
|
stringifyNonKey?: (o: Exclude<stringifiable, PropertyKey>) => string;
|
|
}, stringifiable extends PropertyKey ? never : "stringifyNonKey">;
|
|
export type StringifyPathFn = <stringifiable>(path: array<stringifiable>, ...[opts]: [stringifiable] extends [PropertyKey] ? [
|
|
opts?: StringifyPathOptions
|
|
] : NoInfer<[opts: StringifyPathOptions<stringifiable>]>) => string;
|
|
export type AppendStringifiedKeyFn = <stringifiable>(path: string, prop: stringifiable, ...[opts]: [stringifiable] extends [PropertyKey] ? [
|
|
opts?: StringifyPathOptions
|
|
] : NoInfer<[opts: StringifyPathOptions<stringifiable>]>) => string;
|
|
export declare const appendStringifiedKey: AppendStringifiedKeyFn;
|
|
export declare const stringifyPath: StringifyPathFn;
|
|
export declare class ReadonlyPath extends ReadonlyArray<PropertyKey> {
|
|
private cache;
|
|
constructor(...items: array<PropertyKey>);
|
|
toJSON(): JsonArray;
|
|
stringify(): string;
|
|
stringifyAncestors(): readonly string[];
|
|
}
|