- 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
50 lines
2.0 KiB
TypeScript
50 lines
2.0 KiB
TypeScript
import { type requireKeys } from "@ark/util";
|
|
import type { Morph } from "../roots/morph.ts";
|
|
import type { BaseRoot } from "../roots/root.ts";
|
|
import type { declareNode } from "../shared/declare.ts";
|
|
import { type nodeImplementationOf } from "../shared/implement.ts";
|
|
import { BaseProp, type Prop } from "./prop.ts";
|
|
export declare namespace Optional {
|
|
interface Schema extends Prop.Schema {
|
|
default?: unknown;
|
|
}
|
|
interface Inner extends Prop.Inner {
|
|
default?: unknown;
|
|
}
|
|
type Declaration = declareNode<Prop.Declaration<"optional"> & {
|
|
schema: Schema;
|
|
normalizedSchema: Schema;
|
|
inner: Inner;
|
|
}>;
|
|
type Node = OptionalNode;
|
|
namespace Node {
|
|
type withDefault = requireKeys<Node, "default" | "defaultValueMorph" | "defaultValueMorphRef">;
|
|
}
|
|
}
|
|
export declare class OptionalNode extends BaseProp<"optional"> {
|
|
constructor(...args: ConstructorParameters<typeof BaseProp>);
|
|
get rawIn(): OptionalNode;
|
|
get outProp(): Prop.Node;
|
|
expression: string;
|
|
defaultValueMorph: Morph | undefined;
|
|
defaultValueMorphRef: string | undefined;
|
|
}
|
|
export declare const Optional: {
|
|
implementation: nodeImplementationOf<{
|
|
reducibleTo: "optional";
|
|
errorContext: null;
|
|
kind: "optional";
|
|
prerequisite: object;
|
|
intersectionIsOpen: true;
|
|
childKind: import("../shared/implement.ts").RootKind;
|
|
schema: Optional.Schema;
|
|
normalizedSchema: Optional.Schema;
|
|
inner: Optional.Inner;
|
|
}>;
|
|
Node: typeof OptionalNode;
|
|
};
|
|
export declare const computeDefaultValueMorph: (key: PropertyKey, value: BaseRoot, defaultInput: unknown) => Morph<any>;
|
|
export declare const assertDefaultValueAssignability: (node: BaseRoot, value: unknown, key: PropertyKey | null) => unknown;
|
|
export type writeUnassignableDefaultValueMessage<baseDef extends string, defaultValue extends string> = `Default value ${defaultValue} must be assignable to ${baseDef}`;
|
|
export declare const writeNonPrimitiveNonFunctionDefaultValueMessage: (key: PropertyKey | null) => string;
|