feat: Reinitialize frontend with SvelteKit and TypeScript

- 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
This commit is contained in:
2026-02-17 16:19:59 -05:00
parent 54df6018f5
commit de2d83092e
28274 changed files with 3816354 additions and 90 deletions

View File

@@ -0,0 +1,86 @@
import * as array_ from "../../Array.js";
import * as Inspectable from "../../Inspectable.js";
import * as util_ from "./util.js";
const getErrorMessage = (reason, details, path, ast) => {
let out = reason;
if (path && array_.isNonEmptyReadonlyArray(path)) {
out += `\nat path: ${util_.formatPath(path)}`;
}
if (details !== undefined) {
out += `\ndetails: ${details}`;
}
if (ast) {
out += `\nschema (${ast._tag}): ${ast}`;
}
return out;
};
// ---------------------------------------------
// generic
// ---------------------------------------------
/** @internal */
export const getInvalidArgumentErrorMessage = details => getErrorMessage("Invalid Argument", details);
const getUnsupportedSchemaErrorMessage = (details, path, ast) => getErrorMessage("Unsupported schema", details, path, ast);
const getMissingAnnotationErrorMessage = (details, path, ast) => getErrorMessage("Missing annotation", details, path, ast);
// ---------------------------------------------
// Arbitrary
// ---------------------------------------------
/** @internal */
export const getArbitraryUnsupportedErrorMessage = (path, ast) => getUnsupportedSchemaErrorMessage("Cannot build an Arbitrary for this schema", path, ast);
/** @internal */
export const getArbitraryMissingAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating an Arbitrary for this schema requires an "arbitrary" annotation`, path, ast);
/** @internal */
export const getArbitraryEmptyEnumErrorMessage = path => getErrorMessage("Empty Enums schema", "Generating an Arbitrary for this schema requires at least one enum", path);
// ---------------------------------------------
// Equivalence
// ---------------------------------------------
/** @internal */
export const getEquivalenceUnsupportedErrorMessage = (ast, path) => getUnsupportedSchemaErrorMessage("Cannot build an Equivalence", path, ast);
// ---------------------------------------------
// JSON Schema
// ---------------------------------------------
/** @internal */
export const getJSONSchemaMissingAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a JSON Schema for this schema requires a "jsonSchema" annotation`, path, ast);
/** @internal */
export const getJSONSchemaMissingIdentifierAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a JSON Schema for this schema requires an "identifier" annotation`, path, ast);
/** @internal */
export const getJSONSchemaUnsupportedPostRestElementsErrorMessage = path => getErrorMessage("Generating a JSON Schema for post-rest elements is not currently supported. You're welcome to contribute by submitting a Pull Request", undefined, path);
/** @internal */
export const getJSONSchemaUnsupportedKeyErrorMessage = (key, path) => getErrorMessage("Unsupported key", `Cannot encode ${Inspectable.formatPropertyKey(key)} key to JSON Schema`, path);
// ---------------------------------------------
// Pretty
// ---------------------------------------------
/** @internal */
export const getPrettyMissingAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a Pretty for this schema requires a "pretty" annotation`, path, ast);
/** @internal */
export const getPrettyNeverErrorMessage = "Cannot pretty print a `never` value";
/** @internal */
export const getPrettyNoMatchingSchemaErrorMessage = (actual, path, ast) => getErrorMessage("Unexpected Error", `Cannot find a matching schema for ${Inspectable.formatUnknown(actual)}`, path, ast);
// ---------------------------------------------
// Schema
// ---------------------------------------------
/** @internal */
export const getSchemaExtendErrorMessage = (x, y, path) => getErrorMessage("Unsupported schema or overlapping types", `cannot extend ${x} with ${y}`, path);
/** @internal */
export const getSchemaUnsupportedLiteralSpanErrorMessage = ast => getErrorMessage("Unsupported template literal span", undefined, undefined, ast);
// ---------------------------------------------
// AST
// ---------------------------------------------
/** @internal */
export const getASTUnsupportedSchemaErrorMessage = ast => getUnsupportedSchemaErrorMessage(undefined, undefined, ast);
/** @internal */
export const getASTUnsupportedKeySchemaErrorMessage = ast => getErrorMessage("Unsupported key schema", undefined, undefined, ast);
/** @internal */
export const getASTUnsupportedLiteralErrorMessage = literal => getErrorMessage("Unsupported literal", `literal value: ${Inspectable.formatUnknown(literal)}`);
/** @internal */
export const getASTDuplicateIndexSignatureErrorMessage = type => getErrorMessage("Duplicate index signature", `${type} index signature`);
/** @internal */
export const getASTIndexSignatureParameterErrorMessage = /*#__PURE__*/getErrorMessage("Unsupported index signature parameter", "An index signature parameter type must be `string`, `symbol`, a template literal type or a refinement of the previous types");
/** @internal */
export const getASTRequiredElementFollowinAnOptionalElementErrorMessage = /*#__PURE__*/getErrorMessage("Invalid element", "A required element cannot follow an optional element. ts(1257)");
/** @internal */
export const getASTDuplicatePropertySignatureTransformationErrorMessage = key => getErrorMessage("Duplicate property signature transformation", `Duplicate key ${Inspectable.formatUnknown(key)}`);
/** @internal */
export const getASTUnsupportedRenameSchemaErrorMessage = ast => getUnsupportedSchemaErrorMessage(undefined, undefined, ast);
/** @internal */
export const getASTDuplicatePropertySignatureErrorMessage = key => getErrorMessage("Duplicate property signature", `Duplicate key ${Inspectable.formatUnknown(key)}`);
//# sourceMappingURL=errors.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"errors.js","names":["array_","Inspectable","util_","getErrorMessage","reason","details","path","ast","out","isNonEmptyReadonlyArray","formatPath","undefined","_tag","getInvalidArgumentErrorMessage","getUnsupportedSchemaErrorMessage","getMissingAnnotationErrorMessage","getArbitraryUnsupportedErrorMessage","getArbitraryMissingAnnotationErrorMessage","getArbitraryEmptyEnumErrorMessage","getEquivalenceUnsupportedErrorMessage","getJSONSchemaMissingAnnotationErrorMessage","getJSONSchemaMissingIdentifierAnnotationErrorMessage","getJSONSchemaUnsupportedPostRestElementsErrorMessage","getJSONSchemaUnsupportedKeyErrorMessage","key","formatPropertyKey","getPrettyMissingAnnotationErrorMessage","getPrettyNeverErrorMessage","getPrettyNoMatchingSchemaErrorMessage","actual","formatUnknown","getSchemaExtendErrorMessage","x","y","getSchemaUnsupportedLiteralSpanErrorMessage","getASTUnsupportedSchemaErrorMessage","getASTUnsupportedKeySchemaErrorMessage","getASTUnsupportedLiteralErrorMessage","literal","getASTDuplicateIndexSignatureErrorMessage","type","getASTIndexSignatureParameterErrorMessage","getASTRequiredElementFollowinAnOptionalElementErrorMessage","getASTDuplicatePropertySignatureTransformationErrorMessage","getASTUnsupportedRenameSchemaErrorMessage","getASTDuplicatePropertySignatureErrorMessage"],"sources":["../../../../src/internal/schema/errors.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}

View File

@@ -0,0 +1,43 @@
/** @internal */
export const DateFromSelfSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/DateFromSelf");
/** @internal */
export const GreaterThanSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/GreaterThan");
/** @internal */
export const GreaterThanOrEqualToSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/GreaterThanOrEqualTo");
/** @internal */
export const LessThanSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/LessThan");
/** @internal */
export const LessThanOrEqualToSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/LessThanOrEqualTo");
/** @internal */
export const IntSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/Int");
/** @internal */
export const NonNaNSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/NonNaN");
/** @internal */
export const FiniteSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/Finite");
/** @internal */
export const JsonNumberSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/JsonNumber");
/** @internal */
export const BetweenSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/Between");
/** @internal */
export const GreaterThanBigintSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/GreaterThanBigint");
/** @internal */
export const GreaterThanOrEqualToBigIntSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/GreaterThanOrEqualToBigint");
/** @internal */
export const LessThanBigIntSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/LessThanBigint");
/** @internal */
export const LessThanOrEqualToBigIntSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/LessThanOrEqualToBigint");
/** @internal */
export const BetweenBigintSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/BetweenBigint");
/** @internal */
export const MinLengthSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/MinLength");
/** @internal */
export const MaxLengthSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/MaxLength");
/** @internal */
export const LengthSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/Length");
/** @internal */
export const MinItemsSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/MinItems");
/** @internal */
export const MaxItemsSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/MaxItems");
/** @internal */
export const ItemsCountSchemaId = /*#__PURE__*/Symbol.for("effect/SchemaId/ItemsCount");
//# sourceMappingURL=schemaId.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"schemaId.js","names":["DateFromSelfSchemaId","Symbol","for","GreaterThanSchemaId","GreaterThanOrEqualToSchemaId","LessThanSchemaId","LessThanOrEqualToSchemaId","IntSchemaId","NonNaNSchemaId","FiniteSchemaId","JsonNumberSchemaId","BetweenSchemaId","GreaterThanBigintSchemaId","GreaterThanOrEqualToBigIntSchemaId","LessThanBigIntSchemaId","LessThanOrEqualToBigIntSchemaId","BetweenBigintSchemaId","MinLengthSchemaId","MaxLengthSchemaId","LengthSchemaId","MinItemsSchemaId","MaxItemsSchemaId","ItemsCountSchemaId"],"sources":["../../../../src/internal/schema/schemaId.ts"],"sourcesContent":[null],"mappings":"AAEA;AACA,OAAO,MAAMA,oBAAoB,gBAAgCC,MAAM,CAACC,GAAG,CACzE,8BAA8B,CACA;AAEhC;AACA,OAAO,MAAMC,mBAAmB,gBAA+BF,MAAM,CAACC,GAAG,CACvE,6BAA6B,CACA;AAE/B;AACA,OAAO,MAAME,4BAA4B,gBAAwCH,MAAM,CAACC,GAAG,CACzF,sCAAsC,CACA;AAExC;AACA,OAAO,MAAMG,gBAAgB,gBAA4BJ,MAAM,CAACC,GAAG,CACjE,0BAA0B,CACA;AAE5B;AACA,OAAO,MAAMI,yBAAyB,gBAAqCL,MAAM,CAACC,GAAG,CACnF,mCAAmC,CACA;AAErC;AACA,OAAO,MAAMK,WAAW,gBAAuBN,MAAM,CAACC,GAAG,CACvD,qBAAqB,CACA;AAEvB;AACA,OAAO,MAAMM,cAAc,gBAA0BP,MAAM,CAACC,GAAG,CAC7D,wBAAwB,CACA;AAE1B;AACA,OAAO,MAAMO,cAAc,gBAA0BR,MAAM,CAACC,GAAG,CAC7D,wBAAwB,CACA;AAE1B;AACA,OAAO,MAAMQ,kBAAkB,gBAA8BT,MAAM,CAACC,GAAG,CACrE,4BAA4B,CACA;AAE9B;AACA,OAAO,MAAMS,eAAe,gBAA2BV,MAAM,CAACC,GAAG,CAC/D,yBAAyB,CACA;AAE3B;AACA,OAAO,MAAMU,yBAAyB,gBAAqCX,MAAM,CAACC,GAAG,CACnF,mCAAmC,CACA;AAErC;AACA,OAAO,MAAMW,kCAAkC,gBAA8CZ,MAAM,CAACC,GAAG,CACrG,4CAA4C,CACA;AAE9C;AACA,OAAO,MAAMY,sBAAsB,gBAAkCb,MAAM,CAACC,GAAG,CAC7E,gCAAgC,CACA;AAElC;AACA,OAAO,MAAMa,+BAA+B,gBAA2Cd,MAAM,CAACC,GAAG,CAC/F,yCAAyC,CACA;AAE3C;AACA,OAAO,MAAMc,qBAAqB,gBAAiCf,MAAM,CAACC,GAAG,CAC3E,+BAA+B,CACA;AAEjC;AACA,OAAO,MAAMe,iBAAiB,gBAA6BhB,MAAM,CAACC,GAAG,CACnE,2BAA2B,CACA;AAE7B;AACA,OAAO,MAAMgB,iBAAiB,gBAA6BjB,MAAM,CAACC,GAAG,CACnE,2BAA2B,CACA;AAE7B;AACA,OAAO,MAAMiB,cAAc,gBAA0BlB,MAAM,CAACC,GAAG,CAC7D,wBAAwB,CACA;AAE1B;AACA,OAAO,MAAMkB,gBAAgB,gBAA4BnB,MAAM,CAACC,GAAG,CACjE,0BAA0B,CACA;AAE5B;AACA,OAAO,MAAMmB,gBAAgB,gBAA4BpB,MAAM,CAACC,GAAG,CACjE,0BAA0B,CACA;AAE5B;AACA,OAAO,MAAMoB,kBAAkB,gBAA8BrB,MAAM,CAACC,GAAG,CACrE,4BAA4B,CACA","ignoreList":[]}

View File

@@ -0,0 +1,35 @@
import * as Inspectable from "../../Inspectable.js";
/** @internal */
export const getKeysForIndexSignature = (input, parameter) => {
switch (parameter._tag) {
case "StringKeyword":
case "TemplateLiteral":
return Object.keys(input);
case "SymbolKeyword":
return Object.getOwnPropertySymbols(input);
case "Refinement":
return getKeysForIndexSignature(input, parameter.from);
}
};
/** @internal */
export const memoizeThunk = f => {
let done = false;
let a;
return () => {
if (done) {
return a;
}
a = f();
done = true;
return a;
};
};
/** @internal */
export const isNonEmpty = x => Array.isArray(x);
/** @internal */
export const isSingle = x => !Array.isArray(x);
/** @internal */
export const formatPathKey = key => `[${Inspectable.formatPropertyKey(key)}]`;
/** @internal */
export const formatPath = path => isNonEmpty(path) ? path.map(formatPathKey).join("") : formatPathKey(path);
//# sourceMappingURL=util.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"util.js","names":["Inspectable","getKeysForIndexSignature","input","parameter","_tag","Object","keys","getOwnPropertySymbols","from","memoizeThunk","f","done","a","isNonEmpty","x","Array","isArray","isSingle","formatPathKey","key","formatPropertyKey","formatPath","path","map","join"],"sources":["../../../../src/internal/schema/util.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,WAAW,MAAM,sBAAsB;AAInD;AACA,OAAO,MAAMC,wBAAwB,GAAGA,CACtCC,KAA6C,EAC7CC,SAAwB,KACyB;EACjD,QAAQA,SAAS,CAACC,IAAI;IACpB,KAAK,eAAe;IACpB,KAAK,iBAAiB;MACpB,OAAOC,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC;IAC3B,KAAK,eAAe;MAClB,OAAOG,MAAM,CAACE,qBAAqB,CAACL,KAAK,CAAC;IAC5C,KAAK,YAAY;MACf,OAAOD,wBAAwB,CAACC,KAAK,EAAEC,SAAS,CAACK,IAAI,CAAC;EAC1D;AACF,CAAC;AAED;AACA,OAAO,MAAMC,YAAY,GAAOC,CAAU,IAAa;EACrD,IAAIC,IAAI,GAAG,KAAK;EAChB,IAAIC,CAAI;EACR,OAAO,MAAK;IACV,IAAID,IAAI,EAAE;MACR,OAAOC,CAAC;IACV;IACAA,CAAC,GAAGF,CAAC,EAAE;IACPC,IAAI,GAAG,IAAI;IACX,OAAOC,CAAC;EACV,CAAC;AACH,CAAC;AAKD;AACA,OAAO,MAAMC,UAAU,GAAOC,CAAkC,IAAoCC,KAAK,CAACC,OAAO,CAACF,CAAC,CAAC;AAEpH;AACA,OAAO,MAAMG,QAAQ,GAAOH,CAAuB,IAAa,CAACC,KAAK,CAACC,OAAO,CAACF,CAAC,CAAC;AAEjF;AACA,OAAO,MAAMI,aAAa,GAAIC,GAAgB,IAAa,IAAInB,WAAW,CAACoB,iBAAiB,CAACD,GAAG,CAAC,GAAG;AAEpG;AACA,OAAO,MAAME,UAAU,GAAIC,IAAsB,IAC/CT,UAAU,CAACS,IAAI,CAAC,GAAGA,IAAI,CAACC,GAAG,CAACL,aAAa,CAAC,CAACM,IAAI,CAAC,EAAE,CAAC,GAAGN,aAAa,CAACI,IAAI,CAAC","ignoreList":[]}