- 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
57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
import { node, schemaScope } from "./scope.js";
|
|
import { $ark } from "./shared/registry.js";
|
|
import { arrayIndexSource } from "./structure/shared.js";
|
|
const intrinsicBases = schemaScope({
|
|
bigint: "bigint",
|
|
// since we know this won't be reduced, it can be safely cast to a union
|
|
boolean: [{ unit: false }, { unit: true }],
|
|
false: { unit: false },
|
|
never: [],
|
|
null: { unit: null },
|
|
number: "number",
|
|
object: "object",
|
|
string: "string",
|
|
symbol: "symbol",
|
|
true: { unit: true },
|
|
unknown: {},
|
|
undefined: { unit: undefined },
|
|
Array,
|
|
Date
|
|
}, { prereducedAliases: true }).export();
|
|
$ark.intrinsic = { ...intrinsicBases };
|
|
const intrinsicRoots = schemaScope({
|
|
integer: {
|
|
domain: "number",
|
|
divisor: 1
|
|
},
|
|
lengthBoundable: ["string", Array],
|
|
key: ["string", "symbol"],
|
|
nonNegativeIntegerString: { domain: "string", pattern: arrayIndexSource }
|
|
}, { prereducedAliases: true }).export();
|
|
// needed to parse index signatures for JSON
|
|
Object.assign($ark.intrinsic, intrinsicRoots);
|
|
const intrinsicJson = schemaScope({
|
|
jsonPrimitive: [
|
|
"string",
|
|
"number",
|
|
{ unit: true },
|
|
{ unit: false },
|
|
{ unit: null }
|
|
],
|
|
jsonObject: {
|
|
domain: "object",
|
|
index: {
|
|
signature: "string",
|
|
value: "$jsonData"
|
|
}
|
|
},
|
|
jsonData: ["$jsonPrimitive", "$jsonObject"]
|
|
}, { prereducedAliases: true }).export();
|
|
export const intrinsic = {
|
|
...intrinsicBases,
|
|
...intrinsicRoots,
|
|
...intrinsicJson,
|
|
emptyStructure: node("structure", {}, { prereduced: true })
|
|
};
|
|
$ark.intrinsic = { ...intrinsic };
|