- 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
130 lines
2.4 KiB
JavaScript
130 lines
2.4 KiB
JavaScript
// Generated by LiveScript 1.6.0
|
|
var max, min, negate, abs, signum, quot, rem, div, mod, recip, pi, tau, exp, sqrt, ln, pow, sin, tan, cos, asin, acos, atan, atan2, truncate, round, ceiling, floor, isItNaN, even, odd, gcd, lcm;
|
|
max = curry$(function(x$, y$){
|
|
return x$ > y$ ? x$ : y$;
|
|
});
|
|
min = curry$(function(x$, y$){
|
|
return x$ < y$ ? x$ : y$;
|
|
});
|
|
negate = function(x){
|
|
return -x;
|
|
};
|
|
abs = Math.abs;
|
|
signum = function(x){
|
|
if (x < 0) {
|
|
return -1;
|
|
} else if (x > 0) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
};
|
|
quot = curry$(function(x, y){
|
|
return ~~(x / y);
|
|
});
|
|
rem = curry$(function(x$, y$){
|
|
return x$ % y$;
|
|
});
|
|
div = curry$(function(x, y){
|
|
return Math.floor(x / y);
|
|
});
|
|
mod = curry$(function(x$, y$){
|
|
var ref$;
|
|
return ((x$) % (ref$ = y$) + ref$) % ref$;
|
|
});
|
|
recip = (function(it){
|
|
return 1 / it;
|
|
});
|
|
pi = Math.PI;
|
|
tau = pi * 2;
|
|
exp = Math.exp;
|
|
sqrt = Math.sqrt;
|
|
ln = Math.log;
|
|
pow = curry$(function(x$, y$){
|
|
return Math.pow(x$, y$);
|
|
});
|
|
sin = Math.sin;
|
|
tan = Math.tan;
|
|
cos = Math.cos;
|
|
asin = Math.asin;
|
|
acos = Math.acos;
|
|
atan = Math.atan;
|
|
atan2 = curry$(function(x, y){
|
|
return Math.atan2(x, y);
|
|
});
|
|
truncate = function(x){
|
|
return ~~x;
|
|
};
|
|
round = Math.round;
|
|
ceiling = Math.ceil;
|
|
floor = Math.floor;
|
|
isItNaN = function(x){
|
|
return x !== x;
|
|
};
|
|
even = function(x){
|
|
return x % 2 === 0;
|
|
};
|
|
odd = function(x){
|
|
return x % 2 !== 0;
|
|
};
|
|
gcd = curry$(function(x, y){
|
|
var z;
|
|
x = Math.abs(x);
|
|
y = Math.abs(y);
|
|
while (y !== 0) {
|
|
z = x % y;
|
|
x = y;
|
|
y = z;
|
|
}
|
|
return x;
|
|
});
|
|
lcm = curry$(function(x, y){
|
|
return Math.abs(Math.floor(x / gcd(x, y) * y));
|
|
});
|
|
module.exports = {
|
|
max: max,
|
|
min: min,
|
|
negate: negate,
|
|
abs: abs,
|
|
signum: signum,
|
|
quot: quot,
|
|
rem: rem,
|
|
div: div,
|
|
mod: mod,
|
|
recip: recip,
|
|
pi: pi,
|
|
tau: tau,
|
|
exp: exp,
|
|
sqrt: sqrt,
|
|
ln: ln,
|
|
pow: pow,
|
|
sin: sin,
|
|
tan: tan,
|
|
cos: cos,
|
|
acos: acos,
|
|
asin: asin,
|
|
atan: atan,
|
|
atan2: atan2,
|
|
truncate: truncate,
|
|
round: round,
|
|
ceiling: ceiling,
|
|
floor: floor,
|
|
isItNaN: isItNaN,
|
|
even: even,
|
|
odd: odd,
|
|
gcd: gcd,
|
|
lcm: lcm
|
|
};
|
|
function curry$(f, bound){
|
|
var context,
|
|
_curry = function(args) {
|
|
return f.length > 1 ? function(){
|
|
var params = args ? args.concat() : [];
|
|
context = bound ? context || this : this;
|
|
return params.push.apply(params, arguments) <
|
|
f.length && arguments.length ?
|
|
_curry.call(context, params) : f.apply(context, params);
|
|
} : f;
|
|
};
|
|
return _curry();
|
|
} |