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,32 @@
"use strict";
var _util = require("./util.js");
describe('findNumbers/util', function () {
it('should generate regexp limit', function () {
var thrower = function thrower() {
return (0, _util.limit)(1, 0);
};
expect(thrower).to["throw"]();
thrower = function thrower() {
return (0, _util.limit)(-1, 1);
};
expect(thrower).to["throw"]();
thrower = function thrower() {
return (0, _util.limit)(0, 0);
};
expect(thrower).to["throw"]();
});
it('should trimAfterFirstMatch', function () {
expect((0, _util.trimAfterFirstMatch)(/\d/, 'abc123')).to.equal('abc');
expect((0, _util.trimAfterFirstMatch)(/\d/, 'abc')).to.equal('abc');
});
it('should determine if a string starts with a substring', function () {
expect((0, _util.startsWith)('𐍈123', '𐍈')).to.equal(true);
expect((0, _util.startsWith)('1𐍈', '𐍈')).to.equal(false);
});
it('should determine if a string ends with a substring', function () {
expect((0, _util.endsWith)('123𐍈', '𐍈')).to.equal(true);
expect((0, _util.endsWith)('𐍈1', '𐍈')).to.equal(false);
});
});
//# sourceMappingURL=util.test.js.map