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,205 @@
import HTMLElement from '../html-element/HTMLElement.js';
import * as PropertySymbol from '../../PropertySymbol.js';
/**
* HTML Image Element.
*
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.
*/
export default class HTMLImageElement extends HTMLElement {
[PropertySymbol.tagName]: string;
[PropertySymbol.complete]: boolean;
[PropertySymbol.naturalHeight]: number;
[PropertySymbol.naturalWidth]: number;
[PropertySymbol.loading]: string;
[PropertySymbol.x]: number;
[PropertySymbol.y]: number;
cloneNode: (deep?: boolean) => HTMLImageElement;
/**
* Returns complete.
*
* @returns Complete.
*/
get complete(): boolean;
/**
* Returns natural height.
*
* @returns Natural height.
*/
get naturalHeight(): number;
/**
* Returns natural width.
*
* @returns Natural width.
*/
get naturalWidth(): number;
/**
* Returns loading.
*
* @returns Loading.
*/
get loading(): string;
/**
* Sets loading.
*
* @param loading Loading.
*/
set loading(loading: string);
/**
* Returns x.
*/
get x(): number;
/**
* Returns y.
*/
get y(): number;
/**
* Returns decoding.
*
* @returns Decoding.
*/
get decoding(): string;
/**
* Sets decoding.
*
* @param decoding Decoding.
*/
set decoding(decoding: string);
/**
* Returns cross origin.
*
* @returns Cross origin.
*/
get crossOrigin(): string | null;
/**
* Sets cross origin.
*
* @param crossOrigin Cross origin.
*/
set crossOrigin(crossOrigin: string | null);
/**
* Returns alt.
*
* @returns Alt.
*/
get alt(): string;
/**
* Sets alt.
*
* @param alt Alt.
*/
set alt(alt: string);
/**
* Returns current src.
*
* @returns Current src.
*/
get currentSrc(): string;
/**
* Returns width.
*
* @returns Width.
*/
get width(): number;
/**
* Sets width.
*
* @param width Width.
*/
set width(width: number);
/**
* Returns height.
*
* @returns Height.
*/
get height(): number;
/**
* Sets height.
*
* @param height Height.
*/
set height(height: number);
/**
* Returns is map.
*
* @returns Is map.
*/
get isMap(): boolean;
/**
* Sets is map.
*
* @param ismap Is map.
*/
set isMap(isMap: boolean);
/**
* Returns referrer policy.
*
* @returns Referrer policy.
*/
get referrerPolicy(): string;
/**
* Sets referrer policy.
*
* @param referrerPolicy Referrer policy.
*/
set referrerPolicy(referrerPolicy: string);
/**
* Returns sizes.
*
* @returns Sizes.
*/
get sizes(): string;
/**
* Sets sizes.
*
* @param sizes Sizes.
*/
set sizes(sizes: string);
/**
* Returns source.
*
* @returns Source.
*/
get src(): string;
/**
* Sets source.
*
* @param src Source.
*/
set src(src: string);
/**
* Returns srcset.
*
* @returns Source.
*/
get srcset(): string;
/**
* Sets src set.
*
* @param srcset Src set.
*/
set srcset(srcset: string);
/**
* Returns use map.
*
* @returns Use map.
*/
get useMap(): string;
/**
* Sets is map.
*
* @param useMap Is map.
*/
set useMap(useMap: string);
/**
* The decode() method of the HTMLImageElement interface returns a Promise that resolves when the image is decoded and it is safe to append the image to the DOM.
*
* @returns Promise.
*/
decode(): Promise<void>;
/**
* @override
*/
[PropertySymbol.cloneNode](deep?: boolean): HTMLImageElement;
}
//# sourceMappingURL=HTMLImageElement.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"HTMLImageElement.d.ts","sourceRoot":"","sources":["../../../src/nodes/html-image-element/HTMLImageElement.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,287 @@
import HTMLElement from '../html-element/HTMLElement.js';
import * as PropertySymbol from '../../PropertySymbol.js';
/**
* HTML Image Element.
*
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement.
*/
export default class HTMLImageElement extends HTMLElement {
[PropertySymbol.tagName] = 'IMG';
[PropertySymbol.complete] = false;
[PropertySymbol.naturalHeight] = 0;
[PropertySymbol.naturalWidth] = 0;
[PropertySymbol.loading] = 'auto';
[PropertySymbol.x] = 0;
[PropertySymbol.y] = 0;
/**
* Returns complete.
*
* @returns Complete.
*/
get complete() {
return this[PropertySymbol.complete];
}
/**
* Returns natural height.
*
* @returns Natural height.
*/
get naturalHeight() {
return this[PropertySymbol.naturalHeight];
}
/**
* Returns natural width.
*
* @returns Natural width.
*/
get naturalWidth() {
return this[PropertySymbol.naturalWidth];
}
/**
* Returns loading.
*
* @returns Loading.
*/
get loading() {
const loading = this.getAttribute('loading');
return loading === 'eager' || loading === 'lazy' ? loading : 'auto';
}
/**
* Sets loading.
*
* @param loading Loading.
*/
set loading(loading) {
this.setAttribute('loading', loading);
}
/**
* Returns x.
*/
get x() {
return this[PropertySymbol.x];
}
/**
* Returns y.
*/
get y() {
return this[PropertySymbol.y];
}
/**
* Returns decoding.
*
* @returns Decoding.
*/
get decoding() {
return this.getAttribute('decoding') || 'auto';
}
/**
* Sets decoding.
*
* @param decoding Decoding.
*/
set decoding(decoding) {
this.setAttribute('decoding', decoding);
}
/**
* Returns cross origin.
*
* @returns Cross origin.
*/
get crossOrigin() {
return this.getAttribute('crossOrigin');
}
/**
* Sets cross origin.
*
* @param crossOrigin Cross origin.
*/
set crossOrigin(crossOrigin) {
if (crossOrigin === 'anonymous' || crossOrigin === 'use-credentials') {
this.setAttribute('crossOrigin', crossOrigin);
}
}
/**
* Returns alt.
*
* @returns Alt.
*/
get alt() {
return this.getAttribute('alt') || '';
}
/**
* Sets alt.
*
* @param alt Alt.
*/
set alt(alt) {
this.setAttribute('alt', alt);
}
/**
* Returns current src.
*
* @returns Current src.
*/
get currentSrc() {
return this.src;
}
/**
* Returns width.
*
* @returns Width.
*/
get width() {
const width = this.getAttribute('width');
return width !== null ? Number(width) : 0;
}
/**
* Sets width.
*
* @param width Width.
*/
set width(width) {
this.setAttribute('width', String(width));
}
/**
* Returns height.
*
* @returns Height.
*/
get height() {
const height = this.getAttribute('height');
return height !== null ? Number(height) : 0;
}
/**
* Sets height.
*
* @param height Height.
*/
set height(height) {
this.setAttribute('height', String(height));
}
/**
* Returns is map.
*
* @returns Is map.
*/
get isMap() {
return this.getAttribute('ismap') !== null;
}
/**
* Sets is map.
*
* @param ismap Is map.
*/
set isMap(isMap) {
if (!isMap) {
this.removeAttribute('ismap');
}
else {
this.setAttribute('ismap', '');
}
}
/**
* Returns referrer policy.
*
* @returns Referrer policy.
*/
get referrerPolicy() {
return this.getAttribute('referrerpolicy') || '';
}
/**
* Sets referrer policy.
*
* @param referrerPolicy Referrer policy.
*/
set referrerPolicy(referrerPolicy) {
this.setAttribute('referrerpolicy', referrerPolicy);
}
/**
* Returns sizes.
*
* @returns Sizes.
*/
get sizes() {
return this.getAttribute('sizes') || '';
}
/**
* Sets sizes.
*
* @param sizes Sizes.
*/
set sizes(sizes) {
this.setAttribute('sizes', sizes);
}
/**
* Returns source.
*
* @returns Source.
*/
get src() {
if (!this.hasAttribute('src')) {
return '';
}
try {
return new URL(this.getAttribute('src'), this[PropertySymbol.ownerDocument].location.href)
.href;
}
catch (e) {
return this.getAttribute('src');
}
}
/**
* Sets source.
*
* @param src Source.
*/
set src(src) {
this.setAttribute('src', src);
}
/**
* Returns srcset.
*
* @returns Source.
*/
get srcset() {
return this.getAttribute('srcset') || '';
}
/**
* Sets src set.
*
* @param srcset Src set.
*/
set srcset(srcset) {
this.setAttribute('srcset', srcset);
}
/**
* Returns use map.
*
* @returns Use map.
*/
get useMap() {
return this.getAttribute('usemap') || '';
}
/**
* Sets is map.
*
* @param useMap Is map.
*/
set useMap(useMap) {
this.setAttribute('usemap', useMap);
}
/**
* The decode() method of the HTMLImageElement interface returns a Promise that resolves when the image is decoded and it is safe to append the image to the DOM.
*
* @returns Promise.
*/
decode() {
return Promise.resolve();
}
/**
* @override
*/
[PropertySymbol.cloneNode](deep = false) {
return super[PropertySymbol.cloneNode](deep);
}
}
//# sourceMappingURL=HTMLImageElement.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"HTMLImageElement.js","sourceRoot":"","sources":["../../../src/nodes/html-image-element/HTMLImageElement.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,21 @@
import HTMLImageElement from './HTMLImageElement.js';
import * as PropertySymbol from '../../PropertySymbol.js';
/**
* Image as constructor.
*
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/Image.
*/
export default class Image extends HTMLImageElement {
[PropertySymbol.tagName]: string;
[PropertySymbol.localName]: string;
[PropertySymbol.namespaceURI]: string;
/**
* Constructor.
*
* @param [width] Width.
* @param [height] Height.
*/
constructor(width?: number, height?: number);
}
//# sourceMappingURL=Image.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../src/nodes/html-image-element/Image.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAG1D;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,gBAAgB;IAC3C,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS;IACjC,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS;IACnC,CAAC,cAAc,CAAC,YAAY,CAAC,SAAqB;IAEzD;;;;;OAKG;gBACS,KAAK,GAAE,MAAa,EAAE,MAAM,GAAE,MAAa;CAWvD"}

View File

@@ -0,0 +1,30 @@
import HTMLImageElement from './HTMLImageElement.js';
import * as PropertySymbol from '../../PropertySymbol.js';
import NamespaceURI from '../../config/NamespaceURI.js';
/**
* Image as constructor.
*
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/Image.
*/
export default class Image extends HTMLImageElement {
[PropertySymbol.tagName] = 'IMG';
[PropertySymbol.localName] = 'img';
[PropertySymbol.namespaceURI] = NamespaceURI.html;
/**
* Constructor.
*
* @param [width] Width.
* @param [height] Height.
*/
constructor(width = null, height = null) {
super();
if (width !== null) {
this.width = width;
}
if (height !== null) {
this.height = height;
}
}
}
//# sourceMappingURL=Image.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../src/nodes/html-image-element/Image.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAC1D,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,gBAAgB;IAC3C,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;IACjC,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IACnC,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC;IAEzD;;;;;OAKG;IACH,YAAY,QAAgB,IAAI,EAAE,SAAiB,IAAI;QACtD,KAAK,EAAE,CAAC;QAER,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;IACF,CAAC;CACD"}