From 80c2c7baab15c78c7cca324b3218866b12727f0a Mon Sep 17 00:00:00 2001 From: mtgmonkey Date: Mon, 2 Jun 2025 14:40:51 -0400 Subject: [PATCH] clean up --- assets/js/main.js | 1 - assets/json/init.json | 2 - assets/json/test.json | 4 - backend/.gitignore | 2 - backend/CHANGELOG.md | 11 - backend/LICENSE | 26 - backend/README.md | 2 - backend/Setup.hs | 2 - backend/app/Main.hs | 108 -- backend/hs-server.cabal | 91 -- backend/package.yaml | 68 - backend/stack.yaml | 74 -- backend/stack.yaml.lock | 13 - flake.lock | 41 - frontend/elm-stuff/0.19.1/d.dat | Bin 746 -> 0 bytes frontend/elm-stuff/0.19.1/i.dat | Bin 99990 -> 0 bytes frontend/elm-stuff/0.19.1/lock | 0 frontend/elm-stuff/0.19.1/o.dat | Bin 440795 -> 0 bytes frontend/shell.nix | 9 - .../src/ElmskellTypes/Generated/Decoder.elm | 40 - .../src/ElmskellTypes/Generated/ElmStreet.elm | 52 - .../src/ElmskellTypes/Generated/Encoder.elm | 47 - .../src/ElmskellTypes/Generated/Types.elm | 197 --- frontend/src/Main.elm | 1173 ----------------- justfile | 32 - 25 files changed, 1995 deletions(-) delete mode 100755 assets/js/main.js delete mode 100755 assets/json/init.json delete mode 100755 assets/json/test.json delete mode 100755 backend/.gitignore delete mode 100755 backend/CHANGELOG.md delete mode 100755 backend/LICENSE delete mode 100755 backend/README.md delete mode 100755 backend/Setup.hs delete mode 100755 backend/app/Main.hs delete mode 100755 backend/hs-server.cabal delete mode 100755 backend/package.yaml delete mode 100755 backend/stack.yaml delete mode 100755 backend/stack.yaml.lock delete mode 100644 flake.lock delete mode 100644 frontend/elm-stuff/0.19.1/d.dat delete mode 100644 frontend/elm-stuff/0.19.1/i.dat delete mode 100644 frontend/elm-stuff/0.19.1/lock delete mode 100644 frontend/elm-stuff/0.19.1/o.dat delete mode 100755 frontend/shell.nix delete mode 100755 frontend/src/ElmskellTypes/Generated/Decoder.elm delete mode 100755 frontend/src/ElmskellTypes/Generated/ElmStreet.elm delete mode 100755 frontend/src/ElmskellTypes/Generated/Encoder.elm delete mode 100755 frontend/src/ElmskellTypes/Generated/Types.elm delete mode 100755 frontend/src/Main.elm delete mode 100755 justfile diff --git a/assets/js/main.js b/assets/js/main.js deleted file mode 100755 index dd36290..0000000 --- a/assets/js/main.js +++ /dev/null @@ -1 +0,0 @@ -(function(qr){"use strict";function jr(r,e,n){return n.a=r,n.f=e,n}function c(r){return jr(2,r,function(e){return function(n){return r(e,n)}})}function D(r){return jr(3,r,function(e){return function(n){return function(t){return r(e,n,t)}}})}function W(r){return jr(4,r,function(e){return function(n){return function(t){return function(a){return r(e,n,t,a)}}}})}function ar(r){return jr(5,r,function(e){return function(n){return function(t){return function(a){return function($){return r(e,n,t,a,$)}}}}})}function je(r){return jr(6,r,function(e){return function(n){return function(t){return function(a){return function($){return function(o){return r(e,n,t,a,$,o)}}}}}})}function pt(r){return jr(7,r,function(e){return function(n){return function(t){return function(a){return function($){return function(o){return function(i){return r(e,n,t,a,$,o,i)}}}}}}})}function ht(r){return jr(8,r,function(e){return function(n){return function(t){return function(a){return function($){return function(o){return function(i){return function(s){return r(e,n,t,a,$,o,i,s)}}}}}}}})}function dt(r){return jr(9,r,function(e){return function(n){return function(t){return function(a){return function($){return function(o){return function(i){return function(s){return function(f){return r(e,n,t,a,$,o,i,s,f)}}}}}}}}})}function u(r,e,n){return r.a===2?r.f(e,n):r(e)(n)}function v(r,e,n,t){return r.a===3?r.f(e,n,t):r(e)(n)(t)}function U(r,e,n,t,a){return r.a===4?r.f(e,n,t,a):r(e)(n)(t)(a)}function L(r,e,n,t,a,$){return r.a===5?r.f(e,n,t,a,$):r(e)(n)(t)(a)($)}function $n(r,e,n,t,a,$,o){return r.a===6?r.f(e,n,t,a,$,o):r(e)(n)(t)(a)($)(o)}function Su(r,e,n,t,a,$,o,i){return r.a===7?r.f(e,n,t,a,$,o,i):r(e)(n)(t)(a)($)(o)(i)}function gu(r,e,n,t,a,$,o,i,s){return r.a===8?r.f(e,n,t,a,$,o,i,s):r(e)(n)(t)(a)($)(o)(i)(s)}function tv(r,e,n,t,a,$,o,i,s,f){return r.a===9?r.f(e,n,t,a,$,o,i,s,f):r(e)(n)(t)(a)($)(o)(i)(s)(f)}function oe(r,e){for(var n,t=[],a=on(r,e,0,t);a&&(n=t.pop());a=on(n.a,n.b,0,t));return a}function on(r,e,n,t){if(r===e)return!0;if(typeof r!="object"||r===null||e===null)return typeof r=="function"&&fr(5),!1;if(n>100)return t.push(l(r,e)),!0;r.$<0&&(r=Oe(r),e=Oe(e));for(var a in r)if(!on(r[a],e[a],n+1,t))return!1;return!0}var wu=c(oe),Du=c(function(r,e){return!oe(r,e)});function rr(r,e,n){if(typeof r!="object")return r===e?0:r0}),av=c(function(r,e){return rr(r,e)>=0}),Bu=c(function(r,e){var n=rr(r,e);return n<0?Nt:n?Wo:Kt}),Jr=0,uv={$:"#0"};function l(r,e){return{a:r,b:e}}function $v(r,e){return{$:"#2",a:r,b:e}}function ov(r,e,n){return{a:r,b:e,c:n}}function iv(r,e,n){return{$:"#3",a:r,b:e,c:n}}function cv(r){return r}function sv(r){return new String(r)}function y(r,e){var n={};for(var t in r)n[t]=r[t];for(var t in e)n[t]=e[t];return n}var Eu=c(C);function C(r,e){if(typeof r=="string")return r+e;if(!r.b)return e;var n=Sr(r.a,e);r=r.b;for(var t=n;r.b;r=r.b)t=t.b=Sr(r.a,e);return n}var d={$:0},fv={$:"[]"};function Sr(r,e){return{$:1,a:r,b:e}}function vv(r,e){return{$:"::",a:r,b:e}}var ju=c(Sr);function _(r){for(var e=d,n=r.length;n--;)e=Sr(r[n],e);return e}function Pe(r){for(var e=[];r.b;r=r.b)e.push(r.a);return e}var Pu=D(function(r,e,n){for(var t=[];e.b&&n.b;e=e.b,n=n.b)t.push(u(r,e.a,n.a));return _(t)}),lv=W(function(r,e,n,t){for(var a=[];e.b&&n.b&&t.b;e=e.b,n=n.b,t=t.b)a.push(v(r,e.a,n.a,t.a));return _(a)}),mv=ar(function(r,e,n,t,a){for(var $=[];e.b&&n.b&&t.b&&a.b;e=e.b,n=n.b,t=t.b,a=a.b)$.push(U(r,e.a,n.a,t.a,a.a));return _($)}),_v=je(function(r,e,n,t,a,$){for(var o=[];e.b&&n.b&&t.b&&a.b&&$.b;e=e.b,n=n.b,t=t.b,a=a.b,$=$.b)o.push(L(r,e.a,n.a,t.a,a.a,$.a));return _(o)}),bv=c(function(r,e){return _(Pe(e).sort(function(n,t){return rr(r(n),r(t))}))}),pv=c(function(r,e){return _(Pe(e).sort(function(n,t){var a=u(r,n,t);return a===Kt?0:a===Nt?-1:1}))}),Au=[];function hv(r){return[r]}function Mu(r){return r.length}var Fu=D(function(r,e,n){for(var t=new Array(r),a=0;a=0;t--)e=u(r,n[t],e);return e}),Dv=c(function(r,e){for(var n=e.length,t=new Array(n),a=0;an.length&&(a=n.length);for(var $=t+a,o=new Array($),i=0;i"}function Av(r){return Cr(!1,r)}function Cr(r,e){if(typeof e=="function")return Me(r,"");if(typeof e=="boolean")return ie(r,e?"True":"False");if(typeof e=="number")return Ju(r,e+"");if(e instanceof String)return Uu(r,"'"+gt(e,!0)+"'");if(typeof e=="string")return wt(r,'"'+gt(e,!1)+'"');if(typeof e=="object"&&"$"in e){var n=e.$;if(typeof n=="number")return Me(r,"");if(n[0]==="#"){var a=[];for(var t in e)t!=="$"&&a.push(Cr(r,e[t]));return"("+a.join(",")+")"}if(n==="Set_elm_builtin")return ie(r,"Set")+Ae(r,".fromList")+" "+Cr(r,Yo(e));if(n==="RBNode_elm_builtin"||n==="RBEmpty_elm_builtin")return ie(r,"Dict")+Ae(r,".fromList")+" "+Cr(r,Oe(e));if(n==="Array_elm_builtin")return ie(r,"Array")+Ae(r,".fromList")+" "+Cr(r,Qo(e));if(n==="::"||n==="[]"){var a="[";for(e.b&&(a+=Cr(r,e.a),e=e.b);e.b;e=e.b)a+=","+Cr(r,e.a);return a+"]"}var a="";for(var $ in e)if($!=="$"){var o=Cr(r,e[$]),i=o[0],s=i==="{"||i==="("||i==="["||i==="<"||i==='"'||o.indexOf(" ")<0;a+=" "+(s?o:"("+o+")")}return ie(r,n)+a}if(typeof DataView=="function"&&e instanceof DataView)return wt(r,"<"+e.byteLength+" bytes>");if(typeof File!="undefined"&&e instanceof File)return Me(r,"<"+e.name+">");if(typeof e=="object"){var a=[];for(var f in e){var m=f[0]==="_"?f.slice(1):f;a.push(Ae(r,m)+" = "+Cr(r,e[f]))}return a.length===0?"{}":"{ "+a.join(", ")+" }"}return Me(r,"")}function gt(r,e){var n=r.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/\v/g,"\\v").replace(/\0/g,"\\0");return e?n.replace(/\'/g,"\\'"):n.replace(/\"/g,'\\"')}function ie(r,e){return r?"\x1B[96m"+e+"\x1B[0m":e}function Ju(r,e){return r?"\x1B[95m"+e+"\x1B[0m":e}function wt(r,e){return r?"\x1B[93m"+e+"\x1B[0m":e}function Uu(r,e){return r?"\x1B[92m"+e+"\x1B[0m":e}function Ae(r,e){return r?"\x1B[37m"+e+"\x1B[0m":e}function Me(r,e){return r?"\x1B[36m"+e+"\x1B[0m":e}function Mv(r){return String.fromCharCode(r<10?48+r:55+r)}function fr(r){throw new Error("https://github.com/elm/core/blob/1.0.0/hints/"+r+".md")}function Fv(r,e,n,t,a){switch(r){case 0:throw new Error('What node should I take over? In JavaScript I need something like:\n\n Elm.Main.init({\n node: document.getElementById("elm-node")\n })\n\nYou need to do this with any Browser.sandbox or Browser.element program.');case 1:throw new Error("Browser.application programs cannot handle URLs like this:\n\n "+document.location.href+"\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.");case 2:var $=e;throw new Error("Problem with the flags given to your Elm program on initialization.\n\n"+$);case 3:var o=e;throw new Error("There can only be one port named `"+o+"`, but your program has multiple.");case 4:var o=e,i=n;throw new Error("Trying to send an unexpected type of value through port `"+o+"`:\n"+i);case 5:throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.');case 6:var s=e;throw new Error("Your page is loading multiple Elm scripts with a module named "+s+". Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!");case 8:var s=e,f=n,b=t;throw new Error("TODO in module `"+s+"` "+Dt(f)+"\n\n"+b);case 9:var s=e,f=n,m=t,b=a;throw new Error("TODO in module `"+s+"` from the `case` expression "+Dt(f)+"\n\nIt received the following value:\n\n "+St(m).replace("\n","\n ")+"\n\nBut the branch that handles it says:\n\n "+b.replace("\n","\n "));case 10:throw new Error("Bug in https://github.com/elm/virtual-dom/issues");case 11:throw new Error("Cannot perform mod 0. Division by zero error.")}}function Dt(r){return r.bl.aE===r.bH.aE?"on line "+r.bl.aE:"on lines "+r.bl.aE+" through "+r.bH.aE}var Lu=c(function(r,e){return r+e}),Ou=c(function(r,e){return r-e}),Hu=c(function(r,e){return r*e}),Ru=c(function(r,e){return r/e}),Gu=c(function(r,e){return r/e|0}),Iu=c(Math.pow),zu=c(function(r,e){return e%r}),Wu=c(function(r,e){var n=e%r;return r===0?fr(11):n>0&&r<0||n<0&&r>0?n+r:n}),Vv=Math.PI,kv=Math.E,Jv=Math.cos,Uv=Math.sin,Lv=Math.tan,Ov=Math.acos,Hv=Math.asin,Rv=Math.atan,Gv=c(Math.atan2);function qu(r){return r}function Iv(r){return r|0}function zv(r){return r===1/0||r===-1/0}var Yu=Math.ceil,Zu=Math.floor,Wv=Math.round,qv=Math.sqrt,Ct=Math.log,Yv=isNaN;function Qu(r){return!r}var Xu=c(function(r,e){return r&&e}),Ku=c(function(r,e){return r||e}),Zv=c(function(r,e){return r!==e}),Nu=c(function(r,e){return r+e});function xu(r){var e=r.charCodeAt(0);return isNaN(e)?M:G(55296<=e&&e<=56319?l(r[0]+r[1],r.slice(2)):l(r[0],r.slice(1)))}var r$=c(function(r,e){return r+e});function e$(r){return r.length}var Qv=c(function(r,e){for(var n=e.length,t=new Array(n),a=0;a-1}),f$=c(function(r,e){return e.indexOf(r)===0}),v$=c(function(r,e){return e.length>=r.length&&e.lastIndexOf(r)===e.length-r.length}),l$=c(function(r,e){var n=r.length;if(n<1)return d;for(var t=0,a=[];(t=e.indexOf(r,t))>-1;)a.push(t),t=t+n;return _(a)});function yt(r){return r+""}function m$(r){for(var e=0,n=r.charCodeAt(0),t=n==43||n==45?1:0,a=t;a=e.length)return $r("a LONGER array. Need index "+t+" but only see "+e.length+" entries",e);var f=ur(r.b,e[t]);return br(f)?f:z(u(ra,t,f.a));case 8:if(typeof e!="object"||e===null||Fe(e))return $r("an OBJECT",e);var a=d;for(var $ in e)if(e.hasOwnProperty($)){var f=ur(r.b,e[$]);if(!br(f))return z(u(xt,$,f.a));a=Sr(l($,f.a),a)}return J(R(a));case 9:for(var o=r.f,i=r.g,s=0;s=0&&e.splice(i,1)}return{subscribe:a,unsubscribe:$}}function N$(r,e){return Ft(r),er[r]={f:x$,u:e,a:ro},bn(r)}var x$=c(function(r,e){return function(n){return r(e(n))}});function ro(r,e){var n=d,t=er[r].u,a=vr(null);er[r].b=a,er[r].c=D(function(o,i,s){return n=i,a});function $(o){var i=u(cn,t,o);br(i)||fr(4,r,i.a);for(var s=i.a,f=n;f.b;f=f.b)e(f.a(s))}return{send:$}}function eo(r){qr.Elm?kt(qr.Elm,r):qr.Elm=r}function kt(r,e){for(var n in e)n in r?n=="init"?fr(6):kt(r[n],e[n]):r[n]=e[n]}function Ml(r){qr.Elm?Jt("Elm",qr.Elm,r):qr.Elm=r}function Jt(r,e,n){for(var t in n)t in e?t=="init"?fr(6,r):Jt(r+"."+t,e[t],n[t]):e[t]=n[t]}var ke,nr=typeof document!="undefined"?document:{};function hn(r,e){r.appendChild(e)}var Fl=W(function(r,e,n,t){var a=t.node;return a.parentNode.replaceChild(Mr(r,function(){}),a),{}});function dn(r){return{$:0,a:r}}var Ut=c(function(r,e){return c(function(n,t){for(var a=[],$=0;t.b;t=t.b){var o=t.a;$+=o.b||0,a.push(o)}return $+=a.length,{$:1,c:e,d:gn(n),e:a,f:r,b:$}})}),Sn=Ut(void 0),Lt=c(function(r,e){return c(function(n,t){for(var a=[],$=0;t.b;t=t.b){var o=t.a;$+=o.b.b||0,a.push(o)}return $+=a.length,{$:2,c:e,d:gn(n),e:a,f:r,b:$}})}),no=Lt(void 0);function Vl(r,e,n,t){return{$:3,d:gn(r),g:e,h:n,i:t}}var kl=c(function(r,e){return{$:4,j:r,k:e,b:1+(e.b||0)}});function Ar(r,e){return{$:5,l:r,m:e,k:void 0}}var Jl=c(function(r,e){return Ar([r,e],function(){return r(e)})}),Ul=D(function(r,e,n){return Ar([r,e,n],function(){return u(r,e,n)})}),Ll=W(function(r,e,n,t){return Ar([r,e,n,t],function(){return v(r,e,n,t)})}),Ol=ar(function(r,e,n,t,a){return Ar([r,e,n,t,a],function(){return U(r,e,n,t,a)})}),Hl=je(function(r,e,n,t,a,$){return Ar([r,e,n,t,a,$],function(){return L(r,e,n,t,a,$)})}),Rl=pt(function(r,e,n,t,a,$,o){return Ar([r,e,n,t,a,$,o],function(){return $n(r,e,n,t,a,$,o)})}),Gl=ht(function(r,e,n,t,a,$,o,i){return Ar([r,e,n,t,a,$,o,i],function(){return Su(r,e,n,t,a,$,o,i)})}),Il=dt(function(r,e,n,t,a,$,o,i,s){return Ar([r,e,n,t,a,$,o,i,s],function(){return gu(r,e,n,t,a,$,o,i,s)})}),Ot=c(function(r,e){return{$:"a0",n:r,o:e}}),zl=c(function(r,e){return{$:"a1",n:r,o:e}}),to=c(function(r,e){return{$:"a2",n:r,o:e}}),Ht=c(function(r,e){return{$:"a3",n:r,o:e}}),Wl=D(function(r,e,n){return{$:"a4",n:e,o:{f:r,o:n}}}),ao=/^script$/i,uo=/^(on|formAction$)/i,$o=/^\s*j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:/i,Rt=/^\s*(j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:|d\s*a\s*t\s*a\s*:\s*t\s*e\s*x\s*t\s*\/\s*h\s*t\s*m\s*l\s*(,|;))/i;function Je(r){return ao.test(r)?"p":r}function oo(r){return uo.test(r)?"data-"+r:r}function io(r){return r=="innerHTML"||r=="formAction"?"data-"+r:r}function ql(r){return $o.test(r)?"":r}function co(r){return Rt.test(r)?"":r}function so(r){return typeof r=="string"&&Rt.test(r)?"":r}var Yl=c(function(r,e){return e.$==="a0"?u(Ot,e.n,fo(r,e.o)):e});function fo(r,e){var n=Fn(e);return{$:e.$,a:n?v(sa,n<3?vo:lo,me(r),e.a):u(Mn,r,e.a)}}var vo=c(function(r,e){return l(r(e.a),e.b)}),lo=c(function(r,e){return{L:r(e.L),bm:e.bm,bh:e.bh}});function gn(r){for(var e={};r.b;r=r.b){var n=r.a,t=n.$,a=n.n,$=n.o;if(t==="a2"){a==="className"?Gt(e,a,$):e[a]=$;continue}var o=e[t]||(e[t]={});t==="a3"&&a==="class"?Gt(o,a,$):o[a]=$}return e}function Gt(r,e,n){var t=r[e];r[e]=t?t+" "+n:n}function Mr(r,e){var n=r.$;if(n===5)return Mr(r.k||(r.k=r.m()),e);if(n===0)return nr.createTextNode(r.a);if(n===4){for(var t=r.k,a=r.j;t.$===4;)typeof a!="object"?a=[a,t.j]:a.push(t.j),t=t.k;var $={j:a,p:e},o=Mr(t,$);return o.elm_event_node_ref=$,o}if(n===3){var o=r.h(r.g);return wn(o,e,r.d),o}var o=r.f?nr.createElementNS(r.f,r.c):nr.createElement(r.c);ke&&r.c=="a"&&o.addEventListener("click",ke(o)),wn(o,e,r.d);for(var i=r.e,s=0;s0&&K(n,1,t,m);return;case 4:for(var b=r.j,h=e.j,p=!1,g=r.k;g.$===4;)p=!0,typeof b!="object"?b=[b,g.j]:b.push(g.j),g=g.k;for(var w=e.k;w.$===4;)p=!0,typeof h!="object"?h=[h,w.j]:h.push(w.j),w=w.k;if(p&&b.length!==h.length){K(n,0,t,e);return}(p?!go(b,h):b!==h)&&K(n,2,t,h),lr(g,w,n,t+1);return;case 0:r.a!==e.a&&K(n,3,t,e.a);return;case 1:zt(r,e,n,t,wo);return;case 2:zt(r,e,n,t,Do);return;case 3:if(r.h!==e.h){K(n,0,t,e);return}var T=Cn(r.d,e.d);T&&K(n,4,t,T);var A=e.i(r.g,e.g);A&&K(n,5,t,A);return}}}function go(r,e){for(var n=0;ni?K(n,6,t,{v:i,i:o-i}):o0||o.length>0||dr)&&K(n,8,t,{w:a,x:o,y:dr})}var Wt="_elmW6BL";function se(r,e,n,t,a,$){var o=r[n];if(!o){o={c:0,z:t,r:a,s:void 0},$.push({r:a,A:o}),r[n]=o;return}if(o.c===1){$.push({r:a,A:o}),o.c=2;var i=[];lr(o.z,t,i,o.r),o.r=a,o.s.s={w:i,A:o};return}se(r,e,n+Wt,t,a,$)}function fe(r,e,n,t,a){var $=r[n];if(!$){var o=K(e,9,a,void 0);r[n]={c:1,z:t,r:a,s:o};return}if($.c===0){$.c=2;var i=[];lr(t,$.z,i,a),K(e,9,a,{w:i,A:$});return}fe(r,e,n+Wt,t,a)}function qt(r,e,n,t){ve(r,e,n,0,0,e.b,t)}function ve(r,e,n,t,a,$,o){for(var i=n[t],s=i.r;s===a;){var f=i.$;if(f===1)qt(r,e.k,i.s,o);else if(f===8){i.t=r,i.u=o;var m=i.s.w;m.length>0&&ve(r,e,m,0,a,$,o)}else if(f===9){i.t=r,i.u=o;var b=i.s;if(b){b.A.s=r;var m=b.w;m.length>0&&ve(r,e,m,0,a,$,o)}}else i.t=r,i.u=o;if(t++,!(i=n[t])||(s=i.r)>$)return t}var h=e.$;if(h===4){for(var p=e.k;p.$===4;)p=p.k;return ve(r,p,n,t,a+1,$,r.elm_event_node_ref)}for(var g=e.e,w=r.childNodes,T=0;T$))return t;a=B}return t}function Yt(r,e,n,t){return n.length===0?r:(qt(r,e,n,t),Ue(r,n))}function Ue(r,e){for(var n=0;n>r}),Go=c(function(r,e){return e>>>r}),Io=function(r){return{$:0,a:r}},zo=function(r){return{$:1,a:r}},Kt=1,Wo=2,Nt=0,S=ju,Bn=D(function(r,e,n){r:for(;;){if(n.$===-2)return e;var t=n.b,a=n.c,$=n.d,o=n.e,i=r,s=v(r,t,a,v(Bn,r,e,o)),f=$;r=i,e=s,n=f;continue r}}),Oe=function(r){return v(Bn,D(function(e,n,t){return u(S,l(e,n),t)}),d,r)},qo=function(r){return v(Bn,D(function(e,n,t){return u(S,e,t)}),d,r)},Yo=function(r){var e=r;return qo(e)},He=ku,Zo=D(function(r,e,n){var t=n.c,a=n.d,$=c(function(o,i){if(o.$){var f=o.a;return v(He,r,i,f)}else{var s=o.a;return v(He,$,i,s)}});return v(He,$,v(He,r,e,a),t)}),Qo=function(r){return v(Zo,S,d,r)},z=function(r){return{$:1,a:r}},En=c(function(r,e){return{$:3,a:r,b:e}}),xt=c(function(r,e){return{$:0,a:r,b:e}}),ra=c(function(r,e){return{$:1,a:r,b:e}}),J=function(r){return{$:0,a:r}},Xo=function(r){return{$:2,a:r}},sm=1,fm=Lu,G=function(r){return{$:0,a:r}},M={$:1},Ko=c$,vm=Xu,No=Eu,xo=j$,Qr=yt,mr=c(function(r,e){return u(u$,r,Pe(e))}),Re=c(function(r,e){return _(u(a$,r,e))}),ea=function(r){return u(mr,"\n ",u(Re,"\n",r))},V=D(function(r,e,n){r:for(;;)if(n.b){var t=n.a,a=n.b,$=r,o=u(r,t,e),i=a;r=$,e=o,n=i;continue r}else return e}),Ur=function(r){return v(V,c(function(e,n){return n+1}),0,r)},ri=Pu,lm=yu,mm=Ou,ei=D(function(r,e,n){r:for(;;)if(rr(r,e)<1){var t=r,a=e-1,$=u(S,e,n);r=t,e=a,n=$;continue r}else return n}),ni=c(function(r,e){return v(ei,r,e,d)}),ti=c(function(r,e){return v(ri,r,u(ni,0,Ur(e)-1),e)}),Ge=p$,na=function(r){var e=Ge(r);return 97<=e&&e<=122},ta=function(r){var e=Ge(r);return e<=90&&65<=e},_m=Ku,ai=function(r){return na(r)||ta(r)},ui=function(r){var e=Ge(r);return e<=57&&48<=e},$i=function(r){return na(r)||ta(r)||ui(r)},R=function(r){return v(V,S,d,r)},oi=xu,ii=c(function(r,e){return"\n\n("+(Qr(r+1)+(") "+ea(aa(e))))}),aa=function(r){return u(ci,r,d)},ci=c(function(r,e){r:for(;;)switch(r.$){case 0:var n=r.a,o=r.b,t=function(){var w=oi(n);if(w.$===1)return!1;var T=w.a,A=T.a,B=T.b;return ai(A)&&u(Ko,$i,B)}(),a=t?"."+n:"['"+(n+"']"),s=o,f=u(S,a,e);r=s,e=f;continue r;case 1:var $=r.a,o=r.b,i="["+(Qr($)+"]"),s=o,f=u(S,i,e);r=s,e=f;continue r;case 2:var m=r.a;if(m.b)if(m.b.b){var b=function(){return e.b?"The Json.Decode.oneOf at json"+u(mr,"",R(e)):"Json.Decode.oneOf"}(),g=b+(" failed in the following "+(Qr(Ur(m))+" ways:"));return u(mr,"\n\n",u(S,g,u(ti,ii,m)))}else{var o=m.a,s=o,f=e;r=s,e=f;continue r}else return"Ran into a Json.Decode.oneOf with no possibilities"+function(){return e.b?" at json"+u(mr,"",R(e)):"!"}();default:var h=r.a,p=r.b,g=function(){return e.b?"Problem with the value at json"+(u(mr,"",R(e))+":\n\n "):"Problem with the given value:\n\n"}();return g+(ea(u(xo,4,p))+("\n\n"+h))}}),_r=32,jn=W(function(r,e,n,t){return{$:0,a:r,b:e,c:n,d:t}}),Pn=Au,ua=Yu,bm=Ru,$a=c(function(r,e){return Ct(e)/Ct(r)}),pm=qu,An=ua(u($a,2,_r)),si=U(jn,0,An,Pn,Pn),oa=Fu,fi=function(r){return{$:1,a:r}},hm=c(function(r,e){return r(e)}),vi=c(function(r,e){return e(r)}),dm=wu,li=Zu,ia=Mu,Sm=Tu,mi=c(function(r,e){return rr(r,e)>0?r:e}),gm=Hu,_i=function(r){return{$:0,a:r}},ca=Vu,bi=c(function(r,e){r:for(;;){var n=u(ca,_r,r),t=n.a,a=n.b,$=u(S,_i(t),e);if(a.b){var o=a,i=$;r=o,e=i;continue r}else return R($)}}),wm=function(r){var e=r.a;return e},pi=c(function(r,e){r:for(;;){var n=ua(e/_r);if(n===1)return u(ca,_r,r).a;var t=u(bi,r,d),a=n;r=t,e=a;continue r}}),hi=c(function(r,e){if(e.l){var n=e.l*_r,t=li(u($a,_r,n-1)),a=r?R(e.o):e.o,$=u(pi,a,e.l);return U(jn,ia(e.n)+n,u(mi,5,t*An),$,e.n)}else return U(jn,ia(e.n),An,Pn,e.n)}),Dm=Gu,Cm=Cu,di=ar(function(r,e,n,t,a){r:for(;;){if(e<0)return u(hi,!1,{o:t,l:n/_r|0,n:a});var $=fi(v(oa,_r,e,r)),o=r,i=e-_r,s=n,f=u(S,$,t),m=a;r=o,e=i,n=s,t=f,a=m;continue r}}),ym=zu,Si=c(function(r,e){if(r<=0)return si;var n=r%_r,t=v(oa,n,r-n,e),a=r-n-_r;return L(di,e,a,r,d,t)}),Tm=0,br=function(r){return!r.$},Mn=T$,sa=B$,me=h$,Fn=function(r){switch(r.$){case 0:return 0;case 1:return 1;case 2:return 2;default:return 3}},gi=function(r){return{$:1,a:r}},wi=function(r){return{$:0,a:r}},Xr=function(r){return r},Di=Xr,Bm=0,Em=1,fa=je(function(r,e,n,t,a,$){return{bN:$,bR:e,b0:t,b2:n,b6:r,b7:a}}),Ci=s$,va=e$,la=$$,Lr=c(function(r,e){return r<1?e:v(la,r,va(e),e)}),Ie=l$,Kr=function(r){return r===""},ze=c(function(r,e){return r<1?"":v(la,0,r,e)}),yi=m$,ma=ar(function(r,e,n,t,a){if(Kr(a)||u(Ci,"@",a))return M;var $=u(Ie,":",a);if($.b){if($.b.b)return M;var o=$.a,i=yi(u(Lr,o+1,a));if(i.$===1)return M;var s=i;return G($n(fa,r,u(ze,o,a),s,e,n,t))}else return G($n(fa,r,a,M,e,n,t))}),_a=W(function(r,e,n,t){if(Kr(t))return M;var a=u(Ie,"/",t);if(a.b){var $=a.a;return L(ma,r,u(Lr,$,t),e,n,u(ze,$,t))}else return L(ma,r,"/",e,n,t)}),ba=D(function(r,e,n){if(Kr(n))return M;var t=u(Ie,"?",n);if(t.b){var a=t.a;return U(_a,r,G(u(Lr,a+1,n)),e,u(ze,a,n))}else return U(_a,r,M,e,n)}),pa=c(function(r,e){if(Kr(e))return M;var n=u(Ie,"#",e);if(n.b){var t=n.a;return v(ba,r,G(u(Lr,t+1,e)),u(ze,t,e))}else return v(ba,r,M,e)}),_e=f$,ha=function(r){return u(_e,"http://",r)?u(pa,0,u(Lr,7,r)):u(_e,"https://",r)?u(pa,1,u(Lr,8,r)):M},be=function(r){r:for(;;){var e=r,n=e;r=n;continue r}},jm=Xr,Or=vr,Ti=Or(0),da=W(function(r,e,n,t){if(t.b){var a=t.a,$=t.b;if($.b){var o=$.a,i=$.b;if(i.b){var s=i.a,f=i.b;if(f.b){var m=f.a,b=f.b,h=n>500?v(V,r,e,R(b)):U(da,r,e,n+1,b);return u(r,a,u(r,o,u(r,s,u(r,m,h))))}else return u(r,a,u(r,o,u(r,s,e)))}else return u(r,a,u(r,o,e))}else return u(r,a,e)}else return e}),Hr=D(function(r,e,n){return U(da,r,e,0,n)}),F=c(function(r,e){return v(Hr,c(function(n,t){return u(S,r(n),t)}),d,e)}),pe=fn,Vn=c(function(r,e){return u(pe,function(n){return Or(r(n))},e)}),Bi=D(function(r,e,n){return u(pe,function(t){return u(pe,function(a){return Or(u(r,t,a))},n)},e)}),Ei=function(r){return v(Hr,Bi(S),Or(d),r)},ji=W$,Pi=c(function(r,e){var n=e;return Et(u(pe,ji(r),n))}),Ai=D(function(r,e,n){return u(Vn,function(t){return 0},Ei(u(F,Pi(r),e)))}),Mi=D(function(r,e,n){return Or(0)}),Fi=c(function(r,e){var n=e;return u(Vn,r,n)});er.Task=I$(Ti,Ai,Mi,Fi);var Sa=bn("Task"),he=c(function(r,e){return Sa(u(Vn,r,e))}),Vi=Fo,ki={$:3},Nr=D(function(r,e,n){return r(e(n))}),Ji=k$,Ui=c(function(r,e){return Sa(u(Ji,u(Nr,u(Nr,Or,r),z),u(pe,u(Nr,u(Nr,Or,r),J),e)))}),Li=D(function(r,e,n){return{cT:r,cU:e,cV:n}}),kn=S$,Oi=sa(vi),gr=C$,de=D(function(r,e,n){return u(Oi,u(gr,r,e),n)}),Hi=v(de,"keepTheme",kn,v(de,"keepPrompt",kn,v(de,"keepFont",kn,me(Li)))),Ri=function(r){return{cM:r}},Gi=g$,ga=v(de,"fontSize",Gi,me(Ri)),Ii=function(r){return{c1:r}},We=D$,wa=v(de,"prompt",We,me(Ii)),zi=y$,Wi=d$,qi=c(function(r,e){var n=r(e);if(n.$)return Wi("Constructor not matched");var t=n.a;return me(t)}),Yi=function(r){return u(zi,qi(r),We)},Pm=1,Am=0,Mm=2,Fm=3,Zi=function(r){switch(r){case"Pit":return G(0);case"Dim":return G(1);case"Sky":return G(2);case"Sun":return G(3);default:return M}},Da=Yi(Zi),Fr=cn,qe={r:{cT:!0,cU:!0,cV:!0},p:{cM:20},c1:{c1:">"},F:1},Qi=Jo("focus"),Xi=function(r){return{$:4,a:r}},Ca=dn,Ki=function(r){return Xi(Ca(r))},k=Ki,Ni=D(function(r,e,n){var t=function(){var s=u(Fr,u(gr,"Theme",Da),r);if(s.$)return qe.F;var f=s.a;return f}(),a=function(){var s=u(Fr,u(gr,"Prompt",wa),r);if(s.$)return qe.c1;var f=s.a;return f}(),$=_([k("Welcome to my website! Pardon the alpha quality for the time being"),k("\nRun `help` to get started")]),o=function(){var s=u(Fr,u(gr,"Font",ga),r);if(s.$)return qe.p;var f=s.a;return f}(),i=function(){var s=u(Fr,u(gr,"CookiesKept",Hi),r);if(s.$)return qe.r;var f=s.a;return f}();return l({ay:"",a:$,r:i,p:o,bb:n,c1:a,F:t,bo:e},u(Ui,function(s){return ki},Qi("init-focus")))}),xi=function(r){return{$:4,a:r}},ya=w$,rc=N$("receiveStorageFromJS",ya),ec=function(r){return rc(xi)},Vm=10,km=0,Ta=function(r){return{$:0,a:r}},Jm=Xr,Ye=c(function(r,e){return Ta(r+(":"+e))}),xr=function(r){return u(Ye,"background-color",r.G)},Y=c(function(r,e){return u(Ye,r,e.G)}),Ze=Y("border-width"),Se=function(r){return u(Ye,"color",r.G)},re=Y("margin"),ee=Y("padding"),Um=0,Lm=0,Jn=yt,Qe=D(function(r,e,n){return{bp:0,bA:0,af:0,cM:0,aD:0,ai:0,K:0,aj:0,ak:0,S:0,T:0,D:0,al:0,M:n,aq:0,as:e,aM:r,G:C(Jn(n),e)}}),H=u(Qe,0,"px"),nc=D(function(r,e,n){return{$:0,a:r,b:e,c:n}}),tc=nc,Un=tc,Xe=Un("span"),Ln=D(function(r,e,n){return{$:0,a:r,b:e,c:n}}),ne=c(function(r,e){return u(Ht,oo(r),co(e))}),ac=c(function(r,e){r:for(;;)if(e.b){var n=e.a,t=e.b;if(r(n))return!0;var a=r,$=t;r=a,e=$;continue r}else return!1}),uc=Qu,Ba=c(function(r,e){return!u(ac,u(Nr,uc,r),e)}),Om=1,or=ar(function(r,e,n,t,a){return{$:-1,a:r,b:e,c:n,d:t,e:a}}),On={$:-2},Hm=0,Ea=ar(function(r,e,n,t,a){if(a.$===-1&&!a.a){var $=a.a,o=a.b,i=a.c,s=a.d,f=a.e;if(t.$===-1&&!t.a){var m=t.a,b=t.b,h=t.c,p=t.d,g=t.e;return L(or,0,e,n,L(or,1,b,h,p,g),L(or,1,o,i,s,f))}else return L(or,r,o,i,L(or,0,e,n,t,s),f)}else if(t.$===-1&&!t.a&&t.d.$===-1&&!t.d.a){var w=t.a,b=t.b,h=t.c,T=t.d,A=T.a,B=T.b,Z=T.c,I=T.d,O=T.e,g=t.e;return L(or,0,b,h,L(or,1,B,Z,I,O),L(or,1,e,n,g,a))}else return L(or,r,e,n,t,a)}),ja=Bu,Hn=D(function(r,e,n){if(n.$===-2)return L(or,0,r,e,On,On);var t=n.a,a=n.b,$=n.c,o=n.d,i=n.e,s=u(ja,r,a);switch(s){case 0:return L(Ea,t,a,$,v(Hn,r,e,o),i);case 1:return L(or,t,a,e,o,i);default:return L(Ea,t,a,$,o,v(Hn,r,e,i))}}),Pa=D(function(r,e,n){var t=v(Hn,r,e,n);if(t.$===-1&&!t.a){var a=t.a,$=t.b,o=t.c,i=t.d,s=t.e;return L(or,1,$,o,i,s)}else{var f=t;return f}}),Tr=function(r){return!r.b},$c=c(function(r,e){var n=e.a,t=e.b;switch(r.$){case 0:var a=r.a,s=a.c;return Tr(s)?l(n,t):l(n,u(S,r,t));case 1:var $=r.b;return u(Ba,function(m){var b=m.c;return Tr(b)},$)?l(n,t):l(n,u(S,r,t));case 2:var o=r.b;return Tr(o)?l(n,t):l(n,u(S,r,t));case 3:return l(n,u(S,r,t));case 4:var s=r.a;return Tr(s)?l(n,t):l(n,u(S,r,t));case 5:var s=r.a;return Tr(s)?l(n,t):l(n,u(S,r,t));case 6:var i=r.a;return Kr(i.cH)?l(n,t):l(v(Pa,i.cY,i.cH,n),t);case 7:var s=r.a;return Tr(s)?l(n,t):l(n,u(S,r,t));case 8:var s=r.a;return Tr(s)?l(n,t):l(n,u(S,r,t));default:var f=r.a;return u(Ba,function(m){var b=m.b;return Tr(b)},f)?l(n,t):l(n,u(S,r,t))}}),ge=On,Aa=function(r){return{$:6,a:r}},Rn=c(function(r,e){return e.b?v(Hr,S,e,r):r}),oc=c(function(r,e){return u(Rn,u(F,function(n){var t=n.a,a=n.b;return Aa({cH:a,cY:t})},Oe(r)),e)}),ic=function(r){var e=v(Hr,$c,l(ge,d),r),n=e.a,t=e.b;return u(oc,n,t)},cc=function(r){var e=r.cI,n=r.bZ,t=r.bS,a=r.bD;return{bD:a,cI:ic(e),bS:t,bZ:n}},Ke=c(function(r,e){if(e.$)return M;var n=e.a;return G(r(n))}),pr=c(function(r,e){if(e.$)return r;var n=e.a;return n}),sc=function(r){return u(pr,"",u(Ke,function(e){return'@charset "'+(e+'"')},r))},fc=W(function(r,e,n,t){r:for(;;)if(n.b)if(n.b.b){var a=n.a,$=n.b,o=r,i=e,s=$,f=t+(r(a)+(e+""));r=o,e=i,n=s,t=f;continue r}else{var a=n.a;return t+(r(a)+"")}else return t}),ir=D(function(r,e,n){return U(fc,r,e,n,"")}),Ma=function(r){return"("+(r.bK+(u(pr,"",u(Ke,No(": "),r.G))+")"))},vc=function(r){switch(r){case 0:return"print";case 1:return"screen";default:return"speech"}},Fa=function(r){var e=D(function($,o,i){return $+(" "+u(mr," and ",u(S,vc(o),u(F,Ma,i))))});switch(r.$){case 0:var t=r.a;return v(ir,Ma," and ",t);case 1:var n=r.a,t=r.b;return v(e,"only",n,t);case 2:var n=r.a,t=r.b;return v(e,"not",n,t);default:var a=r.a;return a}},lc=c(function(r,e){return'@import "'+(r+(Fa(e)+'"'))}),mc=function(r){var e=r.a,n=r.b;return v(ir,lc(e),"\n",n)},_c=function(r){var e=r.a,n=r.b;return"@namespace "+(e+('"'+(n+'"')))},bc=function(r){return v(ir,function(e){var n=e;return n+";"},"",r)},pc=r$,hc=function(r){var e=r;return"::"+e},dc=function(r){switch(r){case 0:return"+";case 1:return"~";case 2:return">";default:return""}},Gn=function(r){switch(r.$){case 0:var e=r.a;return"."+e;case 1:var e=r.a;return"#"+e;case 2:var e=r.a;return":"+e;default:var e=r.a;return"["+(e+"]")}},Va=function(r){switch(r.$){case 0:var e=r.a,n=r.b;return C(e,v(ir,Gn,"",n));case 1:var n=r.a;return Tr(n)?"*":v(ir,Gn,"",n);default:var e=r.a,n=r.b;return C(e,v(ir,Gn,"",n))}},Sc=function(r){var e=r.a,n=r.b;return dc(e)+(" "+Va(n))},gc=function(r){var e=r.a,n=r.b,t=r.c,a=u(S,Va(e),u(F,Sc,n)),$=u(pr,"",u(Ke,hc,t));return u(pc,u(mr," ",a),$)},ka=function(r){var e=r.a,n=r.b,t=r.c,a=v(ir,gc,",",u(S,e,n));return a+("{"+(bc(t)+"}"))},wc=function(r){switch(r.$){case 0:var e=r.a;return ka(e);case 1:var n=r.a,t=r.b,a=v(ir,Fa,", ",n),$=v(ir,ka,"\n",t);return"@media "+(a+("{"+($+"}")));case 2:return"TODO";case 3:return"TODO";case 4:return"TODO";case 5:return"TODO";case 6:var o=r.a.cH,i=r.a.cY;return"@keyframes "+(i+("{"+(o+"}")));case 7:return"TODO";case 8:return"TODO";default:return"TODO"}},Dc=function(r){var e=r.cI,n=r.bZ,t=r.bS,a=r.bD;return sc(a)+(v(ir,mc,"\n",t)+(v(ir,_c,"\n",n)+(v(ir,wc,"\n",e)+"")))},In=function(r){return v(Hr,Rn,d,r)},we=c(function(r,e){return In(u(F,r,e))}),Ja=function(r){return{$:8,a:r}},Ua=function(r){return{$:5,a:r}},La=function(r){return{$:4,a:r}},De=D(function(r,e,n){return{$:0,a:r,b:e,c:n}}),Vr=D(function(r,e,n){return{$:0,a:r,b:e,c:n}}),Ce=function(r){return{$:0,a:r}},zn=c(function(r,e){return{$:2,a:r,b:e}}),Oa=function(r){return{$:7,a:r}},Rr=c(function(r,e){return{$:1,a:r,b:e}}),Wn=c(function(r,e){if(e.b)if(e.b.b){var t=e.a,a=e.b;return u(S,t,u(Wn,r,a))}else{var n=e.a;return _([r(n)])}else return e}),Ha=c(function(r,e){var n=e.a,t=e.b,a=e.c;return v(Vr,n,t,C(a,_([r])))}),qn=c(function(r,e){if(e.b)if(e.b.b){var o=e.a,i=e.b;return u(S,o,u(qn,r,i))}else switch(e.a.$){case 0:var n=e.a.a;return _([Ce(u(Ha,r,n))]);case 1:var t=e.a,a=t.a,$=t.b;return _([u(Rr,a,u(Wn,Ha(r),$))]);default:return e}else return e}),Ra=c(function(r,e){if(e.b.b){var a=e.a,$=e.b,t=e.c,o=u(F,r,$),i=r(a);return _([v(Vr,a,$,t),v(Vr,i,o,d)])}else{var n=e.a,t=e.c;return _([v(Vr,n,d,t),v(Vr,r(n),d,d)])}}),Cc=c(function(r,e){var n=e.a,t=e.b;return v(De,n,t,G(r))}),yc=c(function(r,e){return u(Ra,Cc(r),e)}),Tc=c(function(r,e){return{$:2,a:r,b:e}}),Bc=c(function(r,e){return{$:0,a:r,b:e}}),Ga=function(r){return{$:1,a:r}},Ia=c(function(r,e){switch(e.$){case 0:var n=e.a,a=e.b;return u(Bc,n,C(a,_([r])));case 1:var a=e.a;return Ga(C(a,_([r])));default:var t=e.a,a=e.b;return u(Tc,t,C(a,_([r])))}}),za=c(function(r,e){if(e.b)if(e.b.b){var $=e.a,o=e.b;return u(S,$,u(za,r,o))}else{var n=e.a,t=n.a,a=n.b;return _([l(t,u(Ia,r,a))])}else return d}),Ec=c(function(r,e){if(e.b.b){var a=e.a,$=e.b,t=e.c;return v(De,a,u(za,r,$),t)}else{var n=e.a,t=e.c;return v(De,u(Ia,r,n),d,t)}}),jc=c(function(r,e){return u(Ra,Ec(r),e)}),Yn=function(r){r:for(;;)if(r.b)if(r.a.$){var a=r.b,$=a;r=$;continue r}else{var e=r.a.a,n=e.a,t=e.b,a=r.b;return C(u(S,n,t),Yn(a))}else return d},Zn=ar(function(r,e,n,t,a){return{$:3,a:r,b:e,c:n,d:t,e:a}}),Ne=c(function(r,e){r:for(;;)if(e.b){if(e.b.b)break r;switch(e.a.$){case 0:var I=e.a.a;return u(F,Ce,r(I));case 1:if(e.a.b.b)if(e.a.b.b.b){var $=e.a,t=$.a,o=$.b,O=o.a,E=o.b,i=u(Ne,r,_([u(Rr,t,E)]));if(i.b&&i.a.$===1&&!i.b.b){var s=i.a,f=s.a,m=s.b;return _([u(Rr,f,u(S,O,m))])}else{var b=i;return b}}else{var n=e.a,t=n.a,a=n.b,I=a.a;return _([u(Rr,t,r(I))])}else break r;case 2:var h=e.a,p=h.a,g=h.b;return _([u(zn,p,u(Ne,r,g))]);case 3:var w=e.a,T=w.a,A=w.b,B=w.c,Z=w.d,I=w.e;return u(F,U(Zn,T,A,B,Z),r(I));case 4:return e;case 5:return e;case 6:return e;case 7:return e;case 8:return e;default:return e}}else return e;var O=e.a,E=e.b;return u(S,O,u(Ne,r,E))}),Qn=Nu,Pc=W(function(r,e,n,t){return{ac:t,ah:n,W:e,an:r}}),Wa=3432918353,qa=461845907,Rm=Lo,Gm=Ro,Im=Go,Gr=c(function(r,e){return(e&65535)*r+(((e>>>16)*r&65535)<<16)}),Ac=Du,zm=Oo,Xn=c(function(r,e){return e<>>32-r}),Wm=Ho,Mc=function(r){var e=r.ah?r.W^u(Gr,qa,u(Xn,15,u(Gr,Wa,r.ah))):r.W,n=e^r.ac,t=u(Gr,2246822507,n^n>>>16),a=u(Gr,3266489909,t^t>>>13);return(a^a>>>16)>>>0},Fc=n$,Vc=c(function(r,e){return u(Gr,5,u(Xn,13,r^u(Gr,qa,u(Xn,15,u(Gr,Wa,e)))))+3864292196}),kc=c(function(r,e){var n=e.ah|(255&Ge(r))<1e3?u(S,B,u(S,o,u(S,m,u(S,w,u(qc,e-4,T))))):u(S,B,u(S,o,u(S,m,u(S,w,v(xa,r+1,e-4,T)))))}else break e}else{if(t.a===1)break r;break e}else return n;return n}var A=t.b,B=A.a;return _([B])}),Yc=c(function(r,e){return v(xa,0,r,e)}),ru=ar(function(r,e,n,t,a){if(a.$)return a;var $=a.a;return L(Zn,r,e,n,t,$)}),eu=c(function(r,e){switch(e.$){case 0:var m=e.a;return u(Rr,r,_([m]));case 1:var n=e.a,t=e.b;return u(Rr,C(r,n),t);case 2:var a=e.a,$=e.b;return u(zn,a,u(F,eu(r),$));case 3:var o=e.a,i=e.b,s=e.c,f=e.d,m=e.e;return L(Zn,o,i,s,f,m);case 4:return e;case 5:return e;case 6:return e;case 7:return e;case 8:return e;default:return e}}),Nn=function(r){var e=r;return e},nu=W(function(r,e,n,t){var a=function(f){return u(pr,d,Ir(f))},$=u(wr,e,u(pr,d,Ka(t))),o=function(){var f=l(N($),Rc(t));if(!f.a.$&&!f.b.$){var m=f.a.a,b=f.b.a;return C(u(Yc,Ur(t)-1,t),_([oe(b,m)?b:m]))}else return t}(),i=function(f){return In(u(Wn,wr(r),u(F,Kn,u(Ne,n,f))))},s=u(pr,d,u(Ke,i,Ka(t)));return C(o,C(a(s),a($)))}),wr=c(function(r,e){if(r.b)switch(r.a.$){case 0:var n=r.a.a,O=r.b;return u(wr,O,u(qn,n,e));case 1:var t=r.a,a=t.a,B=t.b,O=r.b;return U(nu,B,O,jc(a),e);case 2:var $=r.a,o=$.a,i=$.b,O=r.b,s=c(function(E,Q){var hr=E.a,tr=E.b,Er=E.c,sr=Q.a,dr=Q.b,Ee=Q.c;return v(De,hr,C(tr,u(S,l(o,sr),dr)),Gc(_([Ee,Er])))}),f=function(E){switch(E.$){case 0:var Q=E.a,hr=Q.a,tr=Q.b,Er=Q.c,sr=u(we,function(bt){return u(F,s(bt),u(S,hr,tr))},Yn(e)),dr=function(){if(sr.b){var bt=sr.a,nv=sr.b;return _([Ce(v(Vr,bt,nv,d))])}else return d}();return u(wr,Er,dr);case 1:var Ee=E.a,mt=E.b;return u(tu,Ee,mt);case 2:var _t=E.a,Qf=E.b;return u(au,_t,Qf);case 3:var Xf=E.a,Kf=E.b,Nf=E.c,xf=E.d,rv=E.e;return u(F,U(ru,Xf,Kf,Nf,xf),xe(rv));case 4:var Wr=E.a;return _([La(Wr)]);case 5:var Wr=E.a;return _([Ua(Wr)]);case 6:var Wr=E.a;return _([Oa(Wr)]);case 7:var Wr=E.a;return _([Ja(Wr)]);default:var ev=E.a;return Na(ev)}};return In(C(_([u(wr,O,e)]),u(F,f,u(we,Nn,i))));case 3:var m=r.a,b=m.a,B=m.b,O=r.b;return U(nu,B,O,yc(b),e);case 5:var h=r.a.a,O=r.b,p=Xa(h),g="animation-name:"+p,w=u(wr,O,u(qn,g,e));return u(Rn,w,_([Aa({cH:h,cY:p})]));case 4:var T=r.a,A=T.a,B=T.b,O=r.b,Z=function(){var E=Yn(e);if(E.b){var Q=E.a,hr=E.b;return u(F,zc(A),u(wr,B,Kn(Ce(v(Vr,Q,hr,d)))))}else return d}();return C(u(wr,O,e),Z);default:var I=r.a.a,O=r.b;return u(wr,C(I,O),e)}else return e}),xe=function(r){var e=r.a,n=r.b,t=r.c;return u(wr,t,_([Ce(v(Vr,e,n,d))]))},xn=function(r){if(r.b){var e=r.a,n=r.b;return C(Zc(e),xn(n))}else return d},tu=c(function(r,e){var n=function(t){return u(F,eu(r),xe(t))};return u(we,n,e)}),au=c(function(r,e){var n=xn(u(we,Nn,e));return _([u(zn,r,n)])}),Zc=function(r){switch(r.$){case 0:var f=r.a;return xe(f);case 1:var e=r.a,n=r.b;return u(tu,e,n);case 2:var t=r.a,a=r.b;return u(au,t,a);case 3:var $=r.a,o=r.b,i=r.c,s=r.d,f=r.e;return u(F,U(ru,$,o,i,s),xe(f));case 4:var m=r.a;return _([La(m)]);case 5:var m=r.a;return _([Ua(m)]);case 6:var m=r.a;return _([Oa(m)]);case 7:var m=r.a;return _([Ja(m)]);default:var b=r.a;return Na(b)}},Qc=function(r){var e=r.ci,n=r.bZ,t=r.bS,a=r.bD,$=xn(u(we,Nn,e));return{bD:a,cI:$,bS:t,bZ:n}},Xc=function(r){return Dc(cc(Qc(r)))},qm=Xr,Kc=D(function(r,e,n){return{$:0,a:r,b:e,c:n}}),Nc=function(r){return{$:0,a:r}},xc=c(function(r,e){var n=v(De,e,d,M);return _([Nc(v(Kc,n,d,r))])}),rs=function(r){return{bD:M,bS:d,bZ:d,ci:r}},es=function(r){return{$:0,a:r}},rt="\x07",ns=Ga(_([es(rt)])),ts=function(r){if(r.b){var e=r;return Xc(rs(_([u(xc,r,ns)])))}else return""},as=function(r){var e=ts(r),n=u(ne,"","");return v(Ln,n,!0,e)},te=W(function(r,e,n,t){return u(r,u(S,as(e),n),t)}),us=D(function(r,e,n){return U(te,Xe,_([Se(r),xr(e),ee(H(0)),re(H(0)),Ze(H(0))]),d,_([k(n)]))}),$s=c(function(r,e){return r+("("+(u(mr,",",e)+")"))}),os=W(function(r,e,n,t){return{av:t,ax:n,C:0,aC:e,aH:r,G:u($s,"rgba",C(u(F,Qr,_([r,e,n])),_([Jn(t)])))}}),ye=c(function(r,e){return v(us,r,U(os,0,0,0,0),e)}),uu=function(r){return u(_e,"#",r)?r:u(Qn,"#",r)},$u=function(r){return{av:1,ax:0,C:0,aC:0,aH:0,G:uu(r)}},is=t$,et=function(r){return v(is,S,d,r)},ou=D(function(r,e,n){return e(r(n))}),cs=function(r){return u(Qn,r,"")},x=Iu,iu=D(function(r,e,n){r:for(;;)if(e.b){var t=e.a,a=e.b;switch(t){case"0":var $=r-1,o=a,i=n;r=$,e=o,n=i;continue r;case"1":var $=r-1,o=a,i=n+u(x,16,r);r=$,e=o,n=i;continue r;case"2":var $=r-1,o=a,i=n+2*u(x,16,r);r=$,e=o,n=i;continue r;case"3":var $=r-1,o=a,i=n+3*u(x,16,r);r=$,e=o,n=i;continue r;case"4":var $=r-1,o=a,i=n+4*u(x,16,r);r=$,e=o,n=i;continue r;case"5":var $=r-1,o=a,i=n+5*u(x,16,r);r=$,e=o,n=i;continue r;case"6":var $=r-1,o=a,i=n+6*u(x,16,r);r=$,e=o,n=i;continue r;case"7":var $=r-1,o=a,i=n+7*u(x,16,r);r=$,e=o,n=i;continue r;case"8":var $=r-1,o=a,i=n+8*u(x,16,r);r=$,e=o,n=i;continue r;case"9":var $=r-1,o=a,i=n+9*u(x,16,r);r=$,e=o,n=i;continue r;case"a":var $=r-1,o=a,i=n+10*u(x,16,r);r=$,e=o,n=i;continue r;case"b":var $=r-1,o=a,i=n+11*u(x,16,r);r=$,e=o,n=i;continue r;case"c":var $=r-1,o=a,i=n+12*u(x,16,r);r=$,e=o,n=i;continue r;case"d":var $=r-1,o=a,i=n+13*u(x,16,r);r=$,e=o,n=i;continue r;case"e":var $=r-1,o=a,i=n+14*u(x,16,r);r=$,e=o,n=i;continue r;case"f":var $=r-1,o=a,i=n+15*u(x,16,r);r=$,e=o,n=i;continue r;default:var s=t;return z(cs(s)+" is not a valid hexadecimal character.")}}else return J(n)}),ss=c(function(r,e){if(e.$){var t=e.a;return z(t)}else{var n=e.a;return J(r(n))}}),fs=c(function(r,e){if(e.$){var t=e.a;return z(r(t))}else{var n=e.a;return J(n)}}),vs=function(r){if(Kr(r))return z("Empty strings are not valid hexadecimal strings.");var e=function(){if(u(_e,"-",r)){var t=u(pr,d,Ir(et(r)));return u(ss,Lc,v(iu,Ur(t)-1,t,0))}else return v(iu,va(r)-1,et(r),0)}(),n=function(t){return u(mr," ",_(['"'+(r+'"'),"is not a valid hexadecimal string because",t]))};return u(fs,n,e)},ls=i$,rn=ar(function(r,e,n,t,a){var $=e.a,o=e.b,i=n.a,s=n.b,f=t.a,m=t.b,b=a.a,h=a.b,p=u(ou,Ya,u(ou,ls,vs)),g=l(l(p(_([$,o])),p(_([i,s]))),l(p(_([f,m])),p(_([b,h]))));if(!g.a.a.$&&!g.a.b.$&&!g.b.a.$&&!g.b.b.$){var w=g.a,T=w.a.a,A=w.b.a,B=g.b,Z=B.a.a,I=B.b.a;return{av:I/255,ax:Z,C:0,aC:A,aH:T,G:uu(r)}}else return $u(r)}),j=function(r){var e=u(_e,"#",r)?u(Lr,1,r):r,n=et(e);r:for(;;)if(n.b&&n.b.b&&n.b.b.b)if(n.b.b.b.b)if(n.b.b.b.b.b)if(n.b.b.b.b.b.b)if(n.b.b.b.b.b.b.b)if(n.b.b.b.b.b.b.b.b&&!n.b.b.b.b.b.b.b.b.b){var h=n.a,Q=n.b,g=Q.a,hr=Q.b,T=hr.a,tr=hr.b,B=tr.a,Er=tr.b,I=Er.a,sr=Er.b,E=sr.a,dr=sr.b,Ee=dr.a,mt=dr.b,_t=mt.a;return L(rn,r,l(h,g),l(T,B),l(I,E),l(Ee,_t))}else break r;else{var h=n.a,p=n.b,g=p.a,w=p.b,T=w.a,A=w.b,B=A.a,Z=A.b,I=Z.a,O=Z.b,E=O.a;return L(rn,r,l(h,g),l(T,B),l(I,E),l("f","f"))}else break r;else{var t=n.a,s=n.b,$=s.a,f=s.b,i=f.a,m=f.b,b=m.a;return L(rn,r,l(t,t),l($,$),l(i,i),l(b,b))}else{var t=n.a,a=n.b,$=a.a,o=a.b,i=o.a;return L(rn,r,l(t,t),l($,$),l(i,i),l("f","f"))}else break r;return $u(r)},Te=function(r){switch(r){case 0:return j("e14433");case 1:return j("#359b54");case 2:return j("#a08016");case 3:return j("#5a77f2");case 4:return j("#cf2ec8");case 5:return j("1894a5");case 6:return j("#f36552");case 7:return j("#3db361");case 8:return j("#b9941a");case 9:return j("#7491f8");case 10:return j("#e54ede");default:return j("#1eabbf")}},ms=q$,P=ms(d),en=c(function(r,e){return l(y(r,{a:C(r.a,_([u(ye,Te(0),"\n"+aa(e))]))}),P)}),_s=c(function(r,e){var n=u(Fr,u(gr,"name",We),e);if(n.$){var $=n.a;return u(en,r,$)}else switch(n.a){case"Theme":var t=u(Fr,u(gr,"data",Da),e);if(t.$){var $=t.a;return u(en,r,$)}else{var a=t.a;return l(y(r,{F:a}),P)}case"Prompt":var o=u(Fr,u(gr,"data",wa),e);if(o.$){var $=o.a;return u(en,r,$)}else{var i=o.a;return l(y(r,{c1:i}),P)}case"Font":var s=u(Fr,u(gr,"data",ga),e);if(s.$){var $=s.a;return u(en,r,$)}else{var f=s.a;return l(y(r,{p:f}),P)}default:return l(y(r,{a:C(r.a,_([k("expecting field `name` to contain type while applyJSONData")]))}),P)}}),bs=v$,ps=Uo,Ym=0,Zm=1,Qm=2,Xm=3,Km=4,Nm=5,xm=6,r_=7,e_=8,n_=9,hs=c(function(r,e){return v(Hr,c(function(n,t){return r(n)?u(S,n,t):t}),d,e)}),cu=o$,ds=function(r){var e=u(F,cu,u(Re," ",r)),n=function(){var i=N(e);if(i.$)return z("error in parseInput parsing tokens");switch(i.a){case"help":return J(6);case"clear":return J(0);case"colors":return J(1);case"cookies":return J(2);case"debug":return J(3);case"font":return J(4);case"hello":return J(5);case"prompt":return J(7);case"theme":return J(8);case"todo":return J(9);default:var s=i.a;return z(s)}}(),t=function(){var i=Ir(e);if(i.$)return z("error in parseInput parsing tokens");var s=i.a;return J(u(hs,Ac(""),s))}();if(t.$){var o=t.a;return z(o)}else{var a=t.a;if(n.$){var o=n.a;return z(o)}else{var $=n.a;return J({cB:a,cF:$})}}},Ss=Vo,gs=function(r){return"["+(u(mr,",",r)+"]")},q=D(function(r,e,n){var t=function(){switch(r){case 6:return"help";case 0:return"clear";case 1:return"colors";case 2:return"cookies";case 3:return"debug";case 4:return"font";case 5:return"hello";case 7:return"prompt";case 8:return"theme";default:return"todo"}}();return _([k((rr(e,Ur(n))>0?"\nToo few arguments for "+t:rr(e,Ur(n))<0?"\nToo many arguments for "+t:"\nUnexpected arguments "+gs(n))+(". Run `help "+(t+"` for usage")))])}),ws=c(function(r,e){return l(function(){var n=N(e);if(n.$===1)return y(r,{a:d});var t=n.a;return y(r,{a:C(r.a,v(q,0,0,e))})}(),P)}),Ds=c(function(r,e){var n=N(e);return n.$===1?l(y(r,{a:C(r.a,v(q,1,1,e))}),P):n.a==="test"?l(y(r,{a:C(r.a,_([u(ye,Te(0),"Red")]))}),P):l(y(r,{a:C(r.a,v(q,1,1,e))}),P)}),nt=function(r){return r?"True":"False"},Cs=function(r){return"{ keepFont = "+(nt(r.cT)+("\n, keepPrompt = "+(nt(r.cU)+("\n, keepTheme = "+(nt(r.cV)+"\n}")))))},tt=sn,at=function(r){return v(V,c(function(e,n){var t=e.a,a=e.b;return v(M$,t,a,n)}),A$(0),r)},Dr=sn,ys=function(r){return at(_([l("tag",Dr("CookiesKept")),l("keepFont",tt(r.cT)),l("keepPrompt",tt(r.cU)),l("keepTheme",tt(r.cV))]))},Ts=c(function(r,e){return v(V,F$(r),P$(0),e)}),nn=Vt("setStorage",function(r){var e=r.a,n=r.b;return u(Ts,Xr,_([Dr(e),Xr(n)]))}),ae=function(r){return l(r,nn(l("CookiesKept",ys(r.r))))},Bs=c(function(r,e){var n=N(e);if(n.$===1)return l(y(r,{a:C(r.a,_([k("\n"+Cs(r.r))]))}),P);if(n.a==="set"){var t=function(){var i=Ir(e);if(i.$)return"";var s=i.a,f=Ir(s);if(f.$)return"";var m=f.a;return u(pr,"",N(m))}(),a=function(){var i=Ir(e);if(i.$)return"";var s=i.a;return u(pr,"",N(s))}(),$=r.r;if(t==="")return l(y(r,{a:C(r.a,v(q,2,3,e))}),P);switch(a){case"":return l(y(r,{a:C(r.a,v(q,2,2,e))}),P);case"keepFont":switch(t){case"true":return ae(y(r,{r:y($,{cT:!0})}));case"false":return ae(y(r,{r:y($,{cT:!1})}));default:return l(y(r,{a:C(r.a,v(q,2,3,e))}),P)}case"keepTheme":switch(t){case"true":return ae(y(r,{r:y($,{cV:!0})}));case"false":return ae(y(r,{r:y($,{cV:!1})}));default:return l(y(r,{a:C(r.a,v(q,2,3,e))}),P)}case"keepPrompt":switch(t){case"true":return ae(y(r,{r:y($,{cU:!0})}));case"false":return ae(y(r,{r:y($,{cU:!1})}));default:return l(y(r,{a:C(r.a,v(q,2,3,e))}),P)}default:return l(y(r,{a:C(r.a,v(q,2,2,e))}),P)}}else{var o=n.a;return l(y(r,{a:C(r.a,v(q,2,1,e))}),P)}}),Es=Vt("getStorage",Dr),js=c(function(r,e){return l(r,Es("Theme"))}),Ps=sn,As=function(r){return at(_([l("tag",Dr("Font")),l("fontSize",Ps(r.cM))]))},ut=function(r){return l(r,nn(l("Font",As(r.p))))},Ms=_$,Fs=c(function(r,e){var n=N(e);if(n.$===1)return l(y(r,{a:C(r.a,v(q,4,1,e))}),P);switch(n.a){case"size":var o=function(){var i=Ir(e);if(i.$)return"";var s=i.a;return u(pr,"",N(s))}(),t=Ms(o);if(t.$)switch(o){case"":return l(y(r,{a:C(r.a,_([k("\nfontSize is "+(Jn(r.p.cM)+"px"))]))}),P);case"reset":var $=y(r,{a:C(r.a,_([k("\nfontSize reset to 20px")])),p:{cM:20}});return ut($);default:return l(y(r,{a:C(r.a,_([k("\nfontSize "+(o+" not recognised; font size expected"))]))}),P)}else{var a=t.a;if(a>0){var $=y(r,{a:C(r.a,_([k("\nfontSize successfully set to "+(o+"px"))])),p:{cM:a}});return ut($)}else return l(y(r,{a:C(r.a,_([k("\nPlease enter a valid fontSize, a Float greater than 0")]))}),P)}case"reset":var $=y(r,{a:C(r.a,_([k("\nfontSize reset to 20px")])),p:{cM:20}});return ut($);default:var o=n.a;return l(y(r,{a:C(r.a,v(q,4,1,e))}),P)}}),Vs=c(function(r,e){var n=N(e);return n.$===1?l(y(r,{a:C(r.a,_([k("\nHello World!")]))}),P):l(y(r,{a:C(r.a,v(q,5,0,e))}),P)}),t_=11,ks=c(function(r,e){return l(y(r,{a:C(r.a,function(){if(Ur(e)<2){var n=N(e);if(n.$===1)return _([k("\n+--------------------------------------------------+\n|help prints this message |\n|help prints more information about |\n+--------------------------------------------------+\nclear clears the screen\ncookies [UNSTABLE] manages cookies\nhello prints hello world message\nfont manages font\nprompt [UNFINISHED] manages prompt\ntheme manages theme\ntodo prints aspirations for the site")]);switch(n.a){case"help":return _([k("\nhelp lists available commands with a short summary\nhelp prints more information about ")]);case"clear":return _([k("\nclear clears the screen")]);case"colors":return _([k("\ncolors "),u(ye,Te(11),"[UNIMPLEMENTED]")]);case"cookies":return _([k("\ncookies prints info about the current cookie settings\ncookies set [true|false] sets whether to store a certain cookie\noptions for are:\n keepFont - whether to store fontSize. Default fontSize is 20\n keepPrompt - whether to store prompt. Default prompt is >\n keepTheme - whether to store theme. Default theme is pit")]);case"hello":return _([k("\nhello prints `Hello World!`")]);case"font":return _([k("\nfont size prints info about the current font size\nfont size changes fontSize to if is >0\nfont reset changes fontSize to the default of 20px")]);case"prompt":return _([k("\nprompt prints info about the current prompt\nprompt set sets prompt text to \n is specified in quotes\nprompt color sets prompt color to \n run `colors` to list available colors")]);case"theme":return _([k("\ntheme sets the current theme according to \nOptions for are:\n sun - a theme blinding like the sun\n sky - a toned-down light theme\n dim - a deep and colorful dark theme\n pit - nearly black like the bottom of a pit")]);case"todo":return _([k("\ntodo prints aspirations for the site")]);default:var t=n.a;return v(q,6,1,e)}}else return v(q,6,1,e)}())}),P)}),Js=function(r){return at(_([l("tag",Dr("Prompt")),l("prompt",Dr(r.c1))]))},Us=function(r){return l(r,nn(l("Prompt",Js(r.c1))))},Ls=c(function(r,e){var n=N(e);if(n.$===1)return l(y(r,{a:C(r.a,_([k("\ncurrent prompt is "+r.c1.c1)]))}),P);var t=n.a,a=r.c1;return Us(y(r,{c1:y(a,{c1:t})}))}),Os=function(r){switch(r){case 0:return"Pit";case 1:return"Dim";case 2:return"Sky";default:return"Sun"}},Hs=u(Nr,Dr,Os),Rs=function(r){return l(r,nn(l("Theme",Hs(r.F))))},tn=c(function(r,e){var n=y(r,{F:e});return Rs(n)}),Gs=c(function(r,e){var n=N(e);if(n.$===1)return l(y(r,{a:C(r.a,_([k("\nThe current theme is "+function(){var a=r.F;switch(a){case 3:return"sun";case 2:return"sky";case 1:return"dim";default:return"pit"}}())]))}),P);switch(n.a){case"sun":return u(tn,r,3);case"sky":return u(tn,r,2);case"dim":return u(tn,r,1);case"pit":return u(tn,r,0);default:var t=n.a;return l(y(r,{a:C(r.a,v(q,8,1,e))}),P)}}),Is=c(function(r,e){return l(function(){var n=N(e);return n.$===1?y(r,{a:C(r.a,_([k("\nIn no particular order:\n- Implement colors throughout existing methods\n- Something like Neofetch\n- Collect and store feedback in a database\n- Create a style guide for programs involving console colors\n- Modularise the code (to have something more elegant than a single 2k line file)\n- Figure out a better way to parse commands\n- Add cache headers")]))}):y(r,{a:C(r.a,v(q,9,0,e))})}(),P)}),zs=c(function(r,e){if(e.$){if(e.a==="")return l(r,P);var a=e.a;return l(y(r,{a:C(r.a,_([k("\ncommand "+(a+" not recognised. Run `help` to find a valid command"))]))}),P)}else{var n=e.a.cB,t=e.a.cF;return u(function(){switch(t){case 6:return ks;case 0:return ws;case 1:return Ds;case 2:return Bs;case 3:return js;case 4:return Fs;case 5:return Vs;case 7:return Ls;case 8:return Gs;default:return Is}}(),r,n)}}),Ws=c(function(r,e){if(r.$===1)return e;var n=r.a;return e+(":"+Qr(n))}),su=D(function(r,e,n){if(e.$===1)return n;var t=e.a;return C(n,C(r,t))}),qs=function(r){var e=function(){var n=r.b6;return n?"https://":"http://"}();return v(su,"#",r.bN,v(su,"?",r.b7,C(u(Ws,r.b2,C(e,r.bR)),r.b0)))},Ys=c(function(r,e){switch(r.$){case 0:var n=r.a;if(n.$){var t=n.a;return l(e,ps(t))}else{var a=n.a;return l(e,u(Ss,e.bb,qs(a)))}case 1:var a=r.a;return l(y(e,{bo:a}),P);case 2:var $=r.a;return u(bs,"\n",$)?u(zs,y(e,{ay:"",a:C(e.a,_([k(oe(e.a,d)?"":"\n"),u(ye,Te(10),e.c1.c1),k(cu($))]))}),ds($)):l(y(e,{ay:$}),P);case 3:return l(e,P);default:var o=r.a;return u(_s,e,o)}}),Zs=c(function(r,e){return{cD:e,db:r}}),an=function(r){return{$:0,a:r}},$t=c(function(r,e){r:for(;;){if(e.$===-2)return M;var n=e.b,t=e.c,a=e.d,$=e.e,o=u(ja,r,n);switch(o){case 0:var i=r,s=a;r=i,e=s;continue r;case 1:return G(t);default:var i=r,s=$;r=i,e=s;continue r}}}),cr=c(function(r,e){var n=r.b,t=r.c;if(n){var a=u($t,t,e);return a.$?v(Pa,t,Xa(t),e):e}else return e}),ot=c(function(r,e){return u(to,io(r),so(e))}),kr=c(function(r,e){var n=e.a,t=e.b,a=e.c;if(t){var $=u($t,a,r);if($.$)return u(ot,"className",Dr("_unstyled"));var o=$.a;return u(ot,"className",Dr(o))}else return n}),un=c(function(r,e){var n=e.a,t=e.b,a=e.c;if(t){var $=u($t,a,r);if($.$)return u(ne,"class","_unstyled");var o=$.a;return u(ne,"class",o)}else return n}),it=function(r){return no(Je(r))},ct=c(function(r,e){return u(Lt,r,Je(e))}),Be=function(r){return Sn(Je(r))},st=c(function(r,e){return u(Ut,r,Je(e))}),ue=c(function(r,e){var n=r.a,t=r.b,a=e.a,$=e.b;switch(t.$){case 4:var A=t.a;return l(u(S,l(n,A),a),$);case 0:var m=t.a,b=t.b,h=t.c,p=v(V,cr,$,b),o=v(V,$e,l(d,p),h),w=o.a,T=o.b,A=v(Be,m,u(F,kr(T),b),R(w));return l(u(S,l(n,A),a),T);case 1:var f=t.a,m=t.b,b=t.c,h=t.d,p=v(V,cr,$,b),i=v(V,$e,l(d,p),h),w=i.a,T=i.b,A=U(st,f,m,u(F,kr(T),b),R(w));return l(u(S,l(n,A),a),T);case 2:var m=t.a,b=t.b,h=t.c,p=v(V,cr,$,b),s=v(V,ue,l(d,p),h),w=s.a,T=s.b,A=v(it,m,u(F,kr(T),b),R(w));return l(u(S,l(n,A),a),T);default:var f=t.a,m=t.b,b=t.c,h=t.d,p=v(V,cr,$,b),g=v(V,ue,l(d,p),h),w=g.a,T=g.b,A=U(ct,f,m,u(F,kr(T),b),R(w));return l(u(S,l(n,A),a),T)}}),$e=c(function(r,e){var n=e.a,t=e.b;switch(r.$){case 4:var w=r.a;return l(u(S,w,n),t);case 0:var s=r.a,f=r.b,m=r.c,b=v(V,cr,t,f),a=v(V,$e,l(d,b),m),p=a.a,g=a.b,w=v(Be,s,u(F,kr(g),f),R(p));return l(u(S,w,n),g);case 1:var i=r.a,s=r.b,f=r.c,m=r.d,b=v(V,cr,t,f),$=v(V,$e,l(d,b),m),p=$.a,g=$.b,w=U(st,i,s,u(F,un(g),f),R(p));return l(u(S,w,n),g);case 2:var s=r.a,f=r.b,m=r.c,b=v(V,cr,t,f),o=v(V,ue,l(d,b),m),p=o.a,g=o.b,w=v(it,s,u(F,kr(g),f),R(p));return l(u(S,w,n),g);default:var i=r.a,s=r.b,f=r.c,m=r.d,b=v(V,cr,t,f),h=v(V,ue,l(d,b),m),p=h.a,g=h.b,w=U(ct,i,s,u(F,un(g),f),R(p));return l(u(S,w,n),g)}}),ft=D(function(r,e,n){r:for(;;){if(n.$===-2)return e;var t=n.b,a=n.c,$=n.d,o=n.e,i=r,s=v(r,t,a,v(ft,r,e,$)),f=o;r=i,e=s,n=f;continue r}}),fu=D(function(r,e,n){return u(mr,e,u(Re,r,n))}),Qs=D(function(r,e,n){return n+("\n"+v(fu,rt,e,r))}),Xs=function(r){return v(ft,Qs,"",r)},vu=c(function(r,e){return v(ft,D(function(n,t,a){return a+("\n"+v(fu,"."+rt,"#"+(r+("."+t)),n))}),"",e)}),vt=c(function(r,e){var n=function(){if(e.$){var a=e.a,$=e.b,o=e.c;return u(vu,a,$)+("\n"+u(vu,a+" ",o))}else{var t=e.a;return Xs(t)}}();return v(Be,"span",_([u(ne,"style","display: none;"),u(ne,"class","elm-css-style-wrapper")]),_([v(Be,"style",function(){if(r.$)return d;var t=r.a;return _([u(ne,"nonce",t)])}(),Kn(Ca(n)))]))}),Ks=W(function(r,e,n,t){var a=v(V,cr,ge,n),$=v(V,$e,l(d,a),t),o=$.a,i=$.b,s=u(vt,r,an(i)),f=u(F,kr(i),n);return v(Be,e,f,u(S,s,R(o)))}),Ns=c(function(r,e){r:for(;;)if(e.b){var n=e.a,t=n.a,a=e.b;if(oe(r,t))return!0;var $=r,o=a;r=$,e=o;continue r}else return!1}),xs=c(function(r,e){r:for(;;)if(e.b){var n=e.a,t=n.a,a=e.b,$="_"+t;if(u(Ns,$,a)){var o=$,i=a;r=o,e=i;continue r}else return $}else return r}),lu=D(function(r,e,n){var t=u(xs,"_",n),a=u(vt,r,e);return l(t,a)}),rf=W(function(r,e,n,t){var a=v(V,cr,ge,n),$=v(V,ue,l(d,a),t),o=$.a,i=$.b,s=v(lu,r,an(i),o),f=u(F,kr(i),n);return v(it,e,f,u(S,s,R(o)))}),ef=ar(function(r,e,n,t,a){var $=v(V,cr,ge,t),o=v(V,ue,l(d,$),a),i=o.a,s=o.b,f=v(lu,r,an(s),i),m=u(F,un(s),t);return U(ct,e,n,m,u(S,f,R(i)))}),nf=ar(function(r,e,n,t,a){var $=v(V,cr,ge,t),o=v(V,$e,l(d,$),a),i=o.a,s=o.b,f=u(vt,r,an(s)),m=u(F,un(s),t);return U(st,e,n,m,u(S,f,R(i)))}),tf=function(r){switch(r.$){case 4:var e=r.a;return e;case 0:var t=r.a,a=r.b,$=r.c;return U(Ks,M,t,a,$);case 1:var n=r.a,t=r.b,a=r.c,$=r.d;return L(nf,M,n,t,a,$);case 2:var t=r.a,a=r.b,$=r.c;return U(rf,M,t,a,$);default:var n=r.a,t=r.b,a=r.c,$=r.d;return L(ef,M,n,t,a,$)}},af=tf,uf=function(r){return{$:2,a:r}},$f=c(function(r,e){return v(Ln,u(ot,r,e),!1,"")}),mu=c(function(r,e){return u($f,r,Dr(e))}),of=mu("id"),cf=function(r){return l(r,!0)},sf=function(r){return{$:1,a:r}},ff=Ot,vf=c(function(r,e){return v(Ln,u(ff,r,e),!1,"")}),lf=c(function(r,e){return u(vf,r,sf(e))}),mf=c(function(r,e){return v(Hr,gr,e,r)}),_f=u(mf,_(["target","value"]),We),bf=function(r){return u(lf,"input",u(Mn,cf,u(Mn,r,_f)))},a_=0,u_=1,pf=Un("main"),hf=Y("min-height"),$_=4,Br=c(function(r,e){r:for(;;){var n=r.F;switch(n){case 0:switch(e){case 0:return j("#120211");case 1:return j("#f3d9f0");case 2:var t=r,a=4;r=t,e=a;continue r;case 3:return j("#380e36");case 4:return j("#e29edc");case 5:return j("#7c2b77");default:return j("#f9ecf7")}case 1:switch(e){case 0:return j("#380e36");case 1:return j("#f7e5f4");case 2:var t=r,a=4;r=t,e=a;continue r;case 3:return j("#5e1c56");case 4:return j("#e8b2e2");case 5:return j("#9d3c98");default:return j("#fbf4fa")}case 2:switch(e){case 0:return j("#f3d9f0");case 1:return j("#380e36");case 2:var t=r,a=4;r=t,e=a;continue r;case 3:return j("#eec6e9");case 4:return j("#7c2b77");case 5:return j("#d575cd");default:return j("#120211")}default:switch(e){case 0:return j("#f9ecf7");case 1:return j("#5a1c56");case 2:var t=r,a=4;r=t,e=a;continue r;case 3:return j("#f3d9f0");case 4:return j("#9d3c98");case 5:return j("#dc8ed5");default:return j("#380e36")}}}}),o_=0,df=u(Qe,0,"vh"),i_=0,_u=u(Qe,0,"vw"),bu=Y("width"),Sf=function(r){return u(te,pf,_([xr(u(Br,r,0)),Se(u(Br,r,1)),hf(df(100)),bu(_u(100)),re(H(0)),ee(H(0))]))},gf=u(Ye,"display","flex"),wf=Y("flex-direction"),Df=Y("flex-start"),Cf=Y("flex-wrap"),yf=function(r){return{$:6,a:r}},zr=c(function(r,e){return Ta(r+(":"+e))}),Tf=D(function(r,e,n){r:for(;;)switch(n.$){case 0:var t=n.a,a=u(pr,"",N(u(Re,":",t)));return u(zr,e,a);case 1:var $=n.a;return u(zr,e,"elm-css-error-cannot-apply-"+(r+"-with-inapplicable-Style-for-selector"));case 2:var o=n.a;return u(zr,e,"elm-css-error-cannot-apply-"+(r+"-with-inapplicable-Style-for-combinator"));case 3:var i=n.a;return u(zr,e,"elm-css-error-cannot-apply-"+(r+"-with-inapplicable-Style-for-pseudo-element setter"));case 4:return u(zr,e,"elm-css-error-cannot-apply-"+(r+"-with-inapplicable-Style-for-media-query"));case 5:return u(zr,e,"elm-css-error-cannot-apply-"+(r+"-with-inapplicable-Style-for-keyframes"));default:if(n.a.b)if(n.a.b.b){var p=n.a,g=p.a,w=p.b,m=r,b=e,h=yf(w);r=m,e=b,n=h;continue r}else{var s=n.a,f=s.a,m=r,b=e,h=f;r=m,e=b,n=h;continue r}else return u(zr,e,"elm-css-error-cannot-apply-"+(r+"-with-empty-Style"))}}),c_=0,Bf=v(Qe,0,"",0),Ef=function(r){return v(Tf,"justifyContent","justify-content",r(Bf))},jf={az:0,aS:0,G:"nowrap",_:0},Pf={a9:0,az:0,G:"row"},Af=function(r){return u(te,Xe,_([xr(u(Br,r,0)),ee(H(0)),re(H(0)),gf,wf(Pf),Cf(jf),Ef(Df)]))},Mf=Y("flex-grow"),lt=Y("font-size"),pu=Y("height"),Ff={t:0,am:0,G:"hidden",aO:0},s_=0,Vf=function(r){return{Q:0,aT:0,T:0,D:0,aF:0,aV:0,M:r,as:"",aM:0,G:Qr(r)}},kf={aa:0,by:0,t:0,d:0,k:0,cO:0,bT:0,bc:0,ak:0,S:0,D:0,f:0,e:0,bf:0,aX:0,c0:0,A:0,aY:0,c4:0,ap:0,Y:0,w:0,j:0,dd:0,G:"none"},Jf=Y("outline-width"),Uf=Y("overflow"),Lf=Y("resize"),Of=Un("textarea"),Hf=function(r){return u(te,Of,_([Se(u(Br,r,1)),lt(H(r.p.cM)),ee(H(0)),re(H(0)),xr(u(Br,r,0)),Ze(H(0)),Jf(H(0)),pu(H(r.p.cM)),Lf(kf),Uf(Ff),Mf(Vf(100))]))},hu=Y("font-family"),du={P:0,G:"monospace"},Rf={G:"pre-wrap",_:0},Gf=Y("white-space"),If=function(r){return u(te,Xe,_([Se(u(Br,r,1)),lt(H(r.p.cM)),ee(H(0)),re(H(0)),xr(u(Br,r,0)),Ze(H(0)),bu(_u(100)),Gf(Rf),hu(du)]))},zf=function(r){return u(te,Xe,_([Se(u(Br,r,1)),lt(H(r.p.cM)),ee(H(0)),re(H(0)),xr(u(Br,r,0)),Ze(H(0)),pu(H(r.p.cM)),hu(du)]))},Wf=mu("value"),qf=function(r){return v(Sf,r,d,_([v(If,r,d,r.a),v(Af,r,d,_([v(zf,r,d,_([u(ye,Te(10),r.c1.c1)])),v(Hf,r,_([bf(uf),Wf(r.ay),of("init-focus")]),d)]))]))},Yf=function(r){return u(Zs,"elmskell",_([af(qf(r))]))},Zf=Vi({cQ:Ni,cZ:zo,c_:Io,c9:ec,dc:Ys,de:Yf});eo({Main:{init:Zf(ya)(0)}})})(this); diff --git a/assets/json/init.json b/assets/json/init.json deleted file mode 100755 index 2c63c08..0000000 --- a/assets/json/init.json +++ /dev/null @@ -1,2 +0,0 @@ -{ -} diff --git a/assets/json/test.json b/assets/json/test.json deleted file mode 100755 index da132be..0000000 --- a/assets/json/test.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "message0": "Hello World!", - "message1": "This is another message. Hello World!" -} diff --git a/backend/.gitignore b/backend/.gitignore deleted file mode 100755 index c368d45..0000000 --- a/backend/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.stack-work/ -*~ \ No newline at end of file diff --git a/backend/CHANGELOG.md b/backend/CHANGELOG.md deleted file mode 100755 index 1e535cd..0000000 --- a/backend/CHANGELOG.md +++ /dev/null @@ -1,11 +0,0 @@ -# Changelog for `hs-server` - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to the -[Haskell Package Versioning Policy](https://pvp.haskell.org/). - -## Unreleased - -## 0.1.0.0 - YYYY-MM-DD diff --git a/backend/LICENSE b/backend/LICENSE deleted file mode 100755 index 4810e24..0000000 --- a/backend/LICENSE +++ /dev/null @@ -1,26 +0,0 @@ -Copyright 2025 Author name here - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/README.md b/backend/README.md deleted file mode 100755 index de045bf..0000000 --- a/backend/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# hs-server -this is a custom-built single-purpose server infrastructure based on Scorry, Warp, and Wai. It holds up MTGmonkey's personal website diff --git a/backend/Setup.hs b/backend/Setup.hs deleted file mode 100755 index 9a994af..0000000 --- a/backend/Setup.hs +++ /dev/null @@ -1,2 +0,0 @@ -import Distribution.Simple -main = defaultMain diff --git a/backend/app/Main.hs b/backend/app/Main.hs deleted file mode 100755 index e2b879a..0000000 --- a/backend/app/Main.hs +++ /dev/null @@ -1,108 +0,0 @@ -{-# LANGUAGE DeriveGeneric #-} -{-# LANGUAGE OverloadedStrings #-} -module Main (main) where - -import ElmskellTypes -import Data.Text.Lazy (Text) -import Network.Wai.Handler.Warp (Port) -import Network.Wai.Middleware.RequestLogger (logStdoutDev) -import Text.Blaze ((!)) -import Text.Blaze.Html.Renderer.Text (renderHtml) - -import Network.HTTP.Types -import Network.Wai.Middleware.Gzip -import Web.Scotty as S - -import qualified Control.Exception as E -import qualified Text.Blaze.Html5 as H -import qualified Text.Blaze.Html5.Attributes as A - --- HTML -index :: H.Html -> Text -index compiledElmApp = renderHtml $ do - H.docTypeHtml $ do - H.head $ do - H.title "TESTING Scotty+Elm" - H.meta ! A.charset "utf-8" - H.style "body{margin:0px;}" - (H.body ! A.id "body") $ do - embedJs compiledElmApp - --- CONF -port :: Port -port = 8080 - -adminContact :: String -adminContact = "[Matrix] @mtgmonkey:calitabby.net" - -compiledElmAppFile :: AssetPath -compiledElmAppFile = "/js/main.js" - -boilerplateJsFile :: AssetPath -boilerplateJsFile = "/js/init.js" - -assetsFolder :: FilePath -assetsFolder = "/home/mtgmonkey/elmskell/assets" - --- MAIN -main :: IO () -main = do - - generateElmskellTypes - - compiledElmAppOrExc <- E.try $ readFile $ assetsFolder ++ compiledElmAppFile :: IO (Either E.IOException String) - let compiledElmApp = case compiledElmAppOrExc of - Left e -> serverErrorReadFile e - Right contents -> H.toHtml $ contents - - boilerplateJsOrExc <- E.try $ readFile $ assetsFolder ++ boilerplateJsFile :: IO (Either E.IOException String) - let boilerplateJs = case boilerplateJsOrExc of - Left e -> serverErrorReadFile e - Right contents -> H.toHtml $ contents - - let anyRoute = regex "^.*$" - scotty port $ do - - middleware $ gzip $ def { gzipFiles = GzipCompress } - middleware logStdoutDev - - -- GET requests - get "/" $ do - shortCache - status ok200 - S.html $ index $ do - compiledElmApp - boilerplateJs - - get "/favicon.ico/" $ do - shortCache - status notFound404 - S.html $ "you want a favi-whatnow!?" - - -- ERR - notFound $ do - noCache - status methodNotAllowed405 - S.text "Verb disallowed; OR, route doesn't exist :(" - - --- FUNC -serverErrorReadFile :: E.IOException -> Js -serverErrorReadFile e = H.toHtml $ "document.getElementById('body').innerHTML='Server-side error occurred: " - ++ (show e) - ++ "; report this to a site administrator: " - ++ adminContact - ++ "';" - -shortCache :: ActionM () -shortCache = addHeader "Cache-Control" "max-age=21600" - -noCache :: ActionM () -noCache = addHeader "Cache-Control" "no-cache" - -embedJs :: Js -> H.Html -embedJs js = H.script $ js - - -- TYPES -type AssetPath = FilePath -type Js = H.Html diff --git a/backend/hs-server.cabal b/backend/hs-server.cabal deleted file mode 100755 index 3d73eab..0000000 --- a/backend/hs-server.cabal +++ /dev/null @@ -1,91 +0,0 @@ -cabal-version: 2.2 - --- This file has been generated from package.yaml by hpack version 0.37.0. --- --- see: https://github.com/sol/hpack - -name: hs-server -version: 0.1.0.0 -description: Please see README.md -author: mtgmonkey -maintainer: mtgmonkey -copyright: 2025 mtgmonkey -license: BSD-3-Clause -license-file: LICENSE -build-type: Simple -extra-source-files: - README.md - CHANGELOG.md - -library - exposed-modules: - ElmskellTypes - other-modules: - Paths_hs_server - autogen-modules: - Paths_hs_server - hs-source-dirs: - src - ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints - build-depends: - aeson >=2.2.3 && <2.3 - , base >=4.19.2 && <4.20 - , blaze-html >=0.9.2 && <0.10 - , blaze-markup >=0.8.3 && <0.9 - , directory >=1.3.8 && <1.4 - , elm-street >=0.2.2 && <0.3 - , http-types >=0.12.4 && <0.13 - , scotty ==0.22.* - , text >=2.1.1 && <2.2 - , wai-extra >=3.1.16 && <3.2 - , warp >=3.4.7 && <3.5 - default-language: Haskell2010 - -executable hs-server-exe - main-is: Main.hs - other-modules: - Paths_hs_server - autogen-modules: - Paths_hs_server - hs-source-dirs: - app - ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N - build-depends: - aeson >=2.2.3 && <2.3 - , base >=4.19.2 && <4.20 - , blaze-html >=0.9.2 && <0.10 - , blaze-markup >=0.8.3 && <0.9 - , directory >=1.3.8 && <1.4 - , elm-street >=0.2.2 && <0.3 - , hs-server - , http-types >=0.12.4 && <0.13 - , scotty ==0.22.* - , text >=2.1.1 && <2.2 - , wai-extra >=3.1.16 && <3.2 - , warp >=3.4.7 && <3.5 - default-language: Haskell2010 - -test-suite hs-server-test - type: exitcode-stdio-1.0 - main-is: Spec.hs - other-modules: - Paths_hs_server - autogen-modules: - Paths_hs_server - hs-source-dirs: - test - ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N - build-depends: - aeson >=2.2.3 && <2.3 - , base >=4.19.2 && <4.20 - , blaze-html >=0.9.2 && <0.10 - , blaze-markup >=0.8.3 && <0.9 - , directory >=1.3.8 && <1.4 - , elm-street >=0.2.2 && <0.3 - , hs-server - , http-types >=0.12.4 && <0.13 - , scotty ==0.22.* - , text >=2.1.1 && <2.2 - , wai-extra >=3.1.16 && <3.2 - , warp >=3.4.7 && <3.5 - default-language: Haskell2010 diff --git a/backend/package.yaml b/backend/package.yaml deleted file mode 100755 index 6fecc4f..0000000 --- a/backend/package.yaml +++ /dev/null @@ -1,68 +0,0 @@ -name: hs-server -version: 0.1.0.0 -license: BSD-3-Clause -author: "mtgmonkey" -maintainer: "mtgmonkey" -copyright: "2025 mtgmonkey" - -extra-source-files: -- README.md -- CHANGELOG.md - -# Metadata used when publishing your package -# synopsis: Short description of your package -# category: Web - -# To avoid duplicated efforts in documentation and dealing with the -# complications of embedding Haddock markup inside cabal files, it is -# common to point users to the README.md file. -description: Please see README.md - -dependencies: -- aeson >= 2.2.3 && < 2.3 -- base >= 4.19.2 && < 4.20 -- blaze-html >= 0.9.2 && < 0.10 -- blaze-markup >= 0.8.3 && < 0.9 -- directory >= 1.3.8 && < 1.4 -- elm-street >= 0.2.2 && < 0.3 -- http-types >= 0.12.4 && < 0.13 -- scotty >= 0.22 && < 0.23 -- text >= 2.1.1 && < 2.2 -- wai-extra >= 3.1.16 && < 3.2 -- warp >= 3.4.7 && < 3.5 - -ghc-options: -- -Wall -- -Wcompat -- -Widentities -- -Wincomplete-record-updates -- -Wincomplete-uni-patterns -- -Wmissing-export-lists -- -Wmissing-home-modules -- -Wpartial-fields -- -Wredundant-constraints - -library: - source-dirs: src - -executables: - hs-server-exe: - main: Main.hs - source-dirs: app - ghc-options: - - -threaded - - -rtsopts - - -with-rtsopts=-N - dependencies: - - hs-server - -tests: - hs-server-test: - main: Spec.hs - source-dirs: test - ghc-options: - - -threaded - - -rtsopts - - -with-rtsopts=-N - dependencies: - - hs-server diff --git a/backend/stack.yaml b/backend/stack.yaml deleted file mode 100755 index e4f847c..0000000 --- a/backend/stack.yaml +++ /dev/null @@ -1,74 +0,0 @@ -# This file was automatically generated by 'stack init' -# -# Some commonly used options have been documented as comments in this file. -# For advanced use and comprehensive documentation of the format, please see: -# https://docs.haskellstack.org/en/stable/yaml_configuration/ - -# A 'specific' Stackage snapshot or a compiler version. -# A snapshot resolver dictates the compiler version and the set of packages -# to be used for project dependencies. For example: -# -# snapshot: lts-22.28 -# snapshot: nightly-2024-07-05 -# snapshot: ghc-9.6.6 -# -# The location of a snapshot can be provided as a file or url. Stack assumes -# a snapshot provided as a file might change, whereas a url resource does not. -# -# snapshot: ./custom-snapshot.yaml -# snapshot: https://example.com/snapshots/2024-01-01.yaml -snapshot: - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/23/19.yaml - -# User packages to be built. -# Various formats can be used as shown in the example below. -# -# packages: -# - some-directory -# - https://example.com/foo/bar/baz-0.0.2.tar.gz -# subdirs: -# - auto-update -# - wai -# -# packages is represented in package.yaml -packages: -- . - -nix: - enable: true - packages: [zlib] - -# Dependency packages to be pulled from upstream that are not in the snapshot. -# These entries can reference officially published versions as well as -# forks / in-progress versions pinned to a git hash. For example: -# -# extra-deps: -# - acme-missiles-0.3 -# - git: https://github.com/commercialhaskell/stack.git -# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a -# -# extra-deps: [] - -# Override default flag values for project packages and extra-deps -# flags: {} - -# Extra package databases containing global packages -# extra-package-dbs: [] - -# Control whether we use the GHC we find on the path -# system-ghc: true -# -# Require a specific version of Stack, using version ranges -# require-stack-version: -any # Default -# require-stack-version: ">=3.1" -# -# Override the architecture used by Stack, especially useful on Windows -# arch: i386 -# arch: x86_64 -# -# Extra directories used by Stack for building -# extra-include-dirs: [/path/to/dir] -# extra-lib-dirs: [/path/to/dir] -# -# Allow a newer minor version of GHC than the snapshot specifies -# compiler-check: newer-minor diff --git a/backend/stack.yaml.lock b/backend/stack.yaml.lock deleted file mode 100755 index e0ca7a4..0000000 --- a/backend/stack.yaml.lock +++ /dev/null @@ -1,13 +0,0 @@ -# This file was autogenerated by Stack. -# You should not edit this file by hand. -# For more information, please see the documentation at: -# https://docs.haskellstack.org/en/stable/lock_files - -packages: [] -snapshots: -- completed: - sha256: 296a7960c37efa382432ab497161a092684191815eb92a608c5d6ea5f894ace3 - size: 683835 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/23/19.yaml - original: - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/23/19.yaml diff --git a/flake.lock b/flake.lock deleted file mode 100644 index 1a2b6d9..0000000 --- a/flake.lock +++ /dev/null @@ -1,41 +0,0 @@ -{ - "nodes": { - "nixpkgs": { - "locked": { -<<<<<<< HEAD - "lastModified": 1748708770, - "narHash": "sha256-q8jG2HJWgooWa9H0iatZqBPF3bp0504e05MevFmnFLY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a59eb7800787c926045d51b70982ae285faa2346", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-25.05", - "type": "indirect" -======= - "lastModified": 1747958103, - "narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fe51d34885f7b5e3e7b59572796e1bcb427eccb1", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" ->>>>>>> master - } - }, - "root": { - "inputs": { - "nixpkgs": "nixpkgs" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/frontend/elm-stuff/0.19.1/d.dat b/frontend/elm-stuff/0.19.1/d.dat deleted file mode 100644 index c440da6cb4220ed7792c6eeb3f9f4f475c2b30f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmZQ%WPkw9AGz$4-(7M%8pi+=VlFO9hDhQhrC1${iV`cCQ*&}zlJkpFVG7xt5{omF zi!sF6oiaQRJQTr!hOFhxB|a&y3<86~+nFfZ_f zMD-j?N{TX*N=s6~Ze&4LzztS_@BoS=7g*9ewK6pY!(>jdoKIpEBodI#Wbw%?#&jU7 zZ(?NZv4q28xpeR2%wHV@GWC^yQ m)Z)?{OxH07r(z1S1(y_M=3$9}ki_C_3_DpvN(*u@JqQ4KX{d4l diff --git a/frontend/elm-stuff/0.19.1/i.dat b/frontend/elm-stuff/0.19.1/i.dat deleted file mode 100644 index 0571e15d497c33b8e2971fed4ed8b7d07b56fb66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99990 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 C4^Tw_ diff --git a/frontend/elm-stuff/0.19.1/lock b/frontend/elm-stuff/0.19.1/lock deleted file mode 100644 index e69de29..0000000 diff --git a/frontend/elm-stuff/0.19.1/o.dat b/frontend/elm-stuff/0.19.1/o.dat deleted file mode 100644 index f6bb556b6ad8edbef89e7b5e5ae1403979c00034..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440795 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%0D;n=$Q*2= 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 diff --git a/frontend/shell.nix b/frontend/shell.nix deleted file mode 100755 index 20dc38c..0000000 --- a/frontend/shell.nix +++ /dev/null @@ -1,9 +0,0 @@ -{pkgs ? import {}}: -pkgs.mkShell { - nativeBuildInputs = [ - pkgs.elmPackages.elm - pkgs.elmPackages.elm-format - pkgs.uglify-js - pkgs.ungoogled-chromium - ]; -} diff --git a/frontend/src/ElmskellTypes/Generated/Decoder.elm b/frontend/src/ElmskellTypes/Generated/Decoder.elm deleted file mode 100755 index 2992128..0000000 --- a/frontend/src/ElmskellTypes/Generated/Decoder.elm +++ /dev/null @@ -1,40 +0,0 @@ -module ElmskellTypes.Generated.Decoder exposing (..) - -import Iso8601 as Iso -import Json.Decode as D exposing (..) -import Json.Decode.Pipeline as D exposing (required) - -import ElmskellTypes.Generated.ElmStreet exposing (..) -import ElmskellTypes.Generated.Types as T - - -decodeCommand : Decoder T.Command -decodeCommand = elmStreetDecodeEnum T.readCommand - -decodeCookiesKept : Decoder T.CookiesKept -decodeCookiesKept = D.succeed T.CookiesKept - |> required "keepFont" D.bool - |> required "keepPrompt" D.bool - |> required "keepTheme" D.bool - -decodeCoreColor : Decoder T.CoreColor -decodeCoreColor = elmStreetDecodeEnum T.readCoreColor - -decodeFont : Decoder T.Font -decodeFont = D.succeed T.Font - |> required "fontSize" D.float - -decodeInput : Decoder T.Input -decodeInput = D.succeed T.Input - |> required "command" decodeCommand - |> required "args" (D.list D.string) - -decodePrompt : Decoder T.Prompt -decodePrompt = D.succeed T.Prompt - |> required "prompt" D.string - -decodeTheme : Decoder T.Theme -decodeTheme = elmStreetDecodeEnum T.readTheme - -decodeThemeColor : Decoder T.ThemeColor -decodeThemeColor = elmStreetDecodeEnum T.readThemeColor diff --git a/frontend/src/ElmskellTypes/Generated/ElmStreet.elm b/frontend/src/ElmskellTypes/Generated/ElmStreet.elm deleted file mode 100755 index 129371a..0000000 --- a/frontend/src/ElmskellTypes/Generated/ElmStreet.elm +++ /dev/null @@ -1,52 +0,0 @@ -module ElmskellTypes.Generated.ElmStreet exposing (..) - -import Json.Encode as E exposing (Value) -import Json.Decode as D exposing (Decoder) -import Json.Decode.Pipeline as D exposing (..) - - -elmStreetEncodeMaybe : (a -> Value) -> Maybe a -> Value -elmStreetEncodeMaybe enc = Maybe.withDefault E.null << Maybe.map enc - -elmStreetEncodeEither : (a -> Value) -> (b -> Value) -> Result a b -> Value -elmStreetEncodeEither encA encB res = E.object <| case res of - Err a -> [("Left", encA a)] - Ok b -> [("Right", encB b)] - -elmStreetEncodePair : (a -> Value) -> (b -> Value) -> (a, b) -> Value -elmStreetEncodePair encA encB (a, b) = E.list identity [encA a, encB b] - -elmStreetEncodeTriple : (a -> Value) -> (b -> Value) -> (c -> Value) -> (a, b, c) -> Value -elmStreetEncodeTriple encA encB encC (a, b, c) = E.list identity [encA a, encB b, encC c] - -elmStreetEncodeNonEmpty : (a -> Value) -> (a, List a) -> Value -elmStreetEncodeNonEmpty encA (a, xs) = E.list encA <| a :: xs - -decodeStr : (String -> Maybe a) -> String -> Decoder a -decodeStr readX x = case readX x of - Just a -> D.succeed a - Nothing -> D.fail "Constructor not matched" - -elmStreetDecodeEnum : (String -> Maybe a) -> Decoder a -elmStreetDecodeEnum r = D.andThen (decodeStr r) D.string - -elmStreetDecodeChar : Decoder Char -elmStreetDecodeChar = D.andThen (decodeStr (Maybe.map Tuple.first << String.uncons)) D.string - -elmStreetDecodeEither : Decoder a -> Decoder b -> Decoder (Result a b) -elmStreetDecodeEither decA decB = D.oneOf - [ D.field "Left" (D.map Err decA) - , D.field "Right" (D.map Ok decB) - ] - -elmStreetDecodePair : Decoder a -> Decoder b -> Decoder (a, b) -elmStreetDecodePair decA decB = D.map2 Tuple.pair (D.index 0 decA) (D.index 1 decB) - -elmStreetDecodeTriple : Decoder a -> Decoder b -> Decoder c -> Decoder (a, b, c) -elmStreetDecodeTriple decA decB decC = D.map3 (\a b c -> (a,b,c)) (D.index 0 decA) (D.index 1 decB) (D.index 2 decC) - -elmStreetDecodeNonEmpty : Decoder a -> Decoder (a, List a) -elmStreetDecodeNonEmpty decA = D.list decA |> D.andThen (\xs -> case xs of - h::t -> D.succeed (h, t) - _ -> D.fail "Expecting non-empty array") - diff --git a/frontend/src/ElmskellTypes/Generated/Encoder.elm b/frontend/src/ElmskellTypes/Generated/Encoder.elm deleted file mode 100755 index 3ae7cbd..0000000 --- a/frontend/src/ElmskellTypes/Generated/Encoder.elm +++ /dev/null @@ -1,47 +0,0 @@ -module ElmskellTypes.Generated.Encoder exposing (..) - -import Iso8601 as Iso -import Json.Encode as E exposing (..) - -import ElmskellTypes.Generated.ElmStreet exposing (..) -import ElmskellTypes.Generated.Types as T - - -encodeCommand : T.Command -> Value -encodeCommand = E.string << T.showCommand - -encodeCookiesKept : T.CookiesKept -> Value -encodeCookiesKept x = E.object - [ ("tag", E.string "CookiesKept") - , ("keepFont", E.bool x.keepFont) - , ("keepPrompt", E.bool x.keepPrompt) - , ("keepTheme", E.bool x.keepTheme) - ] - -encodeCoreColor : T.CoreColor -> Value -encodeCoreColor = E.string << T.showCoreColor - -encodeFont : T.Font -> Value -encodeFont x = E.object - [ ("tag", E.string "Font") - , ("fontSize", E.float x.fontSize) - ] - -encodeInput : T.Input -> Value -encodeInput x = E.object - [ ("tag", E.string "Input") - , ("command", encodeCommand x.command) - , ("args", (E.list E.string) x.args) - ] - -encodePrompt : T.Prompt -> Value -encodePrompt x = E.object - [ ("tag", E.string "Prompt") - , ("prompt", E.string x.prompt) - ] - -encodeTheme : T.Theme -> Value -encodeTheme = E.string << T.showTheme - -encodeThemeColor : T.ThemeColor -> Value -encodeThemeColor = E.string << T.showThemeColor diff --git a/frontend/src/ElmskellTypes/Generated/Types.elm b/frontend/src/ElmskellTypes/Generated/Types.elm deleted file mode 100755 index 9086a31..0000000 --- a/frontend/src/ElmskellTypes/Generated/Types.elm +++ /dev/null @@ -1,197 +0,0 @@ -module ElmskellTypes.Generated.Types exposing (..) - -import Time exposing (Posix) -import Json.Decode exposing (Value) - - -type Command - = ClearCommand - | ColorsCommand - | CookiesCommand - | DebugCommand - | FontCommand - | HelloCommand - | HelpCommand - | PromptCommand - | ThemeCommand - | TodoCommand - -showCommand : Command -> String -showCommand x = case x of - ClearCommand -> "ClearCommand" - ColorsCommand -> "ColorsCommand" - CookiesCommand -> "CookiesCommand" - DebugCommand -> "DebugCommand" - FontCommand -> "FontCommand" - HelloCommand -> "HelloCommand" - HelpCommand -> "HelpCommand" - PromptCommand -> "PromptCommand" - ThemeCommand -> "ThemeCommand" - TodoCommand -> "TodoCommand" - -readCommand : String -> Maybe Command -readCommand x = case x of - "ClearCommand" -> Just ClearCommand - "ColorsCommand" -> Just ColorsCommand - "CookiesCommand" -> Just CookiesCommand - "DebugCommand" -> Just DebugCommand - "FontCommand" -> Just FontCommand - "HelloCommand" -> Just HelloCommand - "HelpCommand" -> Just HelpCommand - "PromptCommand" -> Just PromptCommand - "ThemeCommand" -> Just ThemeCommand - "TodoCommand" -> Just TodoCommand - _ -> Nothing - -universeCommand : List Command -universeCommand = [ ClearCommand - , ColorsCommand - , CookiesCommand - , DebugCommand - , FontCommand - , HelloCommand - , HelpCommand - , PromptCommand - , ThemeCommand - , TodoCommand ] - -type alias CookiesKept = - { keepFont : Bool - , keepPrompt : Bool - , keepTheme : Bool - } - -type CoreColor - = Red - | Green - | Yellow - | Blue - | Magenta - | Cyan - | BrightRed - | BrightGreen - | BrightYellow - | BrightBlue - | BrightMagenta - | BrightCyan - -showCoreColor : CoreColor -> String -showCoreColor x = case x of - Red -> "Red" - Green -> "Green" - Yellow -> "Yellow" - Blue -> "Blue" - Magenta -> "Magenta" - Cyan -> "Cyan" - BrightRed -> "BrightRed" - BrightGreen -> "BrightGreen" - BrightYellow -> "BrightYellow" - BrightBlue -> "BrightBlue" - BrightMagenta -> "BrightMagenta" - BrightCyan -> "BrightCyan" - -readCoreColor : String -> Maybe CoreColor -readCoreColor x = case x of - "Red" -> Just Red - "Green" -> Just Green - "Yellow" -> Just Yellow - "Blue" -> Just Blue - "Magenta" -> Just Magenta - "Cyan" -> Just Cyan - "BrightRed" -> Just BrightRed - "BrightGreen" -> Just BrightGreen - "BrightYellow" -> Just BrightYellow - "BrightBlue" -> Just BrightBlue - "BrightMagenta" -> Just BrightMagenta - "BrightCyan" -> Just BrightCyan - _ -> Nothing - -universeCoreColor : List CoreColor -universeCoreColor = [ Red - , Green - , Yellow - , Blue - , Magenta - , Cyan - , BrightRed - , BrightGreen - , BrightYellow - , BrightBlue - , BrightMagenta - , BrightCyan ] - -type alias Font = - { fontSize : Float - } - -type alias Input = - { command : Command - , args : List String - } - -type alias Prompt = - { prompt : String - } - -type Theme - = Pit - | Dim - | Sky - | Sun - -showTheme : Theme -> String -showTheme x = case x of - Pit -> "Pit" - Dim -> "Dim" - Sky -> "Sky" - Sun -> "Sun" - -readTheme : String -> Maybe Theme -readTheme x = case x of - "Pit" -> Just Pit - "Dim" -> Just Dim - "Sky" -> Just Sky - "Sun" -> Just Sun - _ -> Nothing - -universeTheme : List Theme -universeTheme = [Pit, Dim, Sky, Sun] - -type ThemeColor - = Background - | Foreground - | Cursor - | Black - | White - | BrightBlack - | BrightWhite - -showThemeColor : ThemeColor -> String -showThemeColor x = case x of - Background -> "Background" - Foreground -> "Foreground" - Cursor -> "Cursor" - Black -> "Black" - White -> "White" - BrightBlack -> "BrightBlack" - BrightWhite -> "BrightWhite" - -readThemeColor : String -> Maybe ThemeColor -readThemeColor x = case x of - "Background" -> Just Background - "Foreground" -> Just Foreground - "Cursor" -> Just Cursor - "Black" -> Just Black - "White" -> Just White - "BrightBlack" -> Just BrightBlack - "BrightWhite" -> Just BrightWhite - _ -> Nothing - -universeThemeColor : List ThemeColor -universeThemeColor = [ Background - , Foreground - , Cursor - , Black - , White - , BrightBlack - , BrightWhite ] diff --git a/frontend/src/Main.elm b/frontend/src/Main.elm deleted file mode 100755 index 7ef05a4..0000000 --- a/frontend/src/Main.elm +++ /dev/null @@ -1,1173 +0,0 @@ -port module Main exposing (..) - -import Browser -import Browser.Dom as Dom -import Browser.Navigation as Nav -import Css exposing (..) -import ElmskellTypes.Generated.Decoder exposing (..) -import ElmskellTypes.Generated.ElmStreet exposing (..) -import ElmskellTypes.Generated.Encoder exposing (..) -import ElmskellTypes.Generated.Types exposing (..) -import Html.Styled exposing (Attribute, Html, styled, text, toUnstyled) -import Html.Styled.Attributes exposing (id, value) -import Html.Styled.Events exposing (onInput) -import Json.Decode as D -import Json.Encode as E -import Task -import Url - - - --- MAIN - - -main : Program E.Value Model Msg -main = - Browser.application - { init = init - , view = view - , update = update - , subscriptions = subscriptions - , onUrlChange = UrlChanged - , onUrlRequest = LinkClicked - } - - - --- MODEL - - -type alias Model = - { key : Nav.Key - , url : Url.Url - , theme : Theme - , font : Font - , cookiesKept : CookiesKept - , prompt : Prompt - , content : List (Html Msg) - , cliContent : String - } - - -defaultCookies : - { cookiesKept : CookiesKept - , font : Font - , prompt : Prompt - , theme : Theme - } -defaultCookies = - { font = { fontSize = 20.0 } - , cookiesKept = - { keepTheme = True - , keepFont = True - , keepPrompt = True - } - , theme = Dim - , prompt = { prompt = ">" } - } - - -init : E.Value -> Url.Url -> Nav.Key -> ( Model, Cmd Msg ) -init flags url key = - let - initContent = - [ text "Welcome to my website! Pardon the alpha quality for the time being" - , text "\nRun `help` to get started" - ] - - th = - case D.decodeValue (D.field "Theme" decodeTheme) flags of - Ok val -> - val - - Err _ -> - defaultCookies.theme - - pr = - case D.decodeValue (D.field "Prompt" decodePrompt) flags of - Ok val -> - val - - Err _ -> - defaultCookies.prompt - - cK = - case D.decodeValue (D.field "CookiesKept" decodeCookiesKept) flags of - Ok val -> - val - - Err _ -> - defaultCookies.cookiesKept - - fo = - case D.decodeValue (D.field "Font" decodeFont) flags of - Ok val -> - val - - Err _ -> - defaultCookies.font - in - ( { key = key - , url = url - , theme = th - , font = fo - , cookiesKept = cK - , prompt = pr - , content = initContent - , cliContent = "" - } - , Task.attempt (\_ -> NoInitFocus) (Dom.focus "init-focus") - ) - - - --- UPDATE - - -type Msg - = LinkClicked Browser.UrlRequest - | UrlChanged Url.Url - | TakeInput String - | NoInitFocus - | ReceivedStorage E.Value - - -update : Msg -> Model -> ( Model, Cmd Msg ) -update msg model = - case msg of - LinkClicked urlRequest -> - case urlRequest of - Browser.Internal url -> - ( model, Nav.pushUrl model.key (Url.toString url) ) - - Browser.External href -> - ( model, Nav.load href ) - - UrlChanged url -> - ( { model | url = url } - , Cmd.none - ) - - TakeInput string -> - if String.endsWith "\n" string then - runCommand - { model - | cliContent = "" - , content = - model.content - ++ [ text - (if model.content /= [] then - "\n" - - else - "" - ) - , coloredText (coreColor BrightMagenta) model.prompt.prompt - , text <| String.trim string - ] - } - (parseInput string) - - else - ( { model | cliContent = string }, Cmd.none ) - - NoInitFocus -> - ( model, Cmd.none ) - - ReceivedStorage value -> - applyJSONData model value - - -applyJSONData : Model -> E.Value -> ( Model, Cmd Msg ) -applyJSONData model data = - case D.decodeValue (D.field "name" D.string) data of - Ok "Theme" -> - case D.decodeValue (D.field "data" decodeTheme) data of - Ok th -> - ( { model | theme = th }, Cmd.none ) - - Err e -> - errApplyingJSON model e - - Ok "Prompt" -> - case D.decodeValue (D.field "data" decodePrompt) data of - Ok pr -> - ( { model | prompt = pr }, Cmd.none ) - - Err e -> - errApplyingJSON model e - - Ok "Font" -> - case D.decodeValue (D.field "data" decodeFont) data of - Ok fo -> - ( { model | font = fo }, Cmd.none ) - - Err e -> - errApplyingJSON model e - - Ok _ -> - ( { model | content = model.content ++ [ text "expecting field `name` to contain type while applyJSONData" ] }, Cmd.none ) - - Err e -> - errApplyingJSON model e - - -errApplyingJSON : Model -> D.Error -> ( Model, Cmd Msg ) -errApplyingJSON model e = - ( { model | content = model.content ++ [ coloredText (coreColor Red) <| "\n" ++ D.errorToString e ] }, Cmd.none ) - - -isOK : Result x a -> Bool -isOK res = - case res of - Ok _ -> - True - - Err _ -> - False - - - --- COMMANDS - - -parseInput : String -> Result String Input -parseInput input = - let - tokens = - List.map String.trim (String.split " " input) - - command = - case List.head tokens of - Just "help" -> - Ok HelpCommand - - Just "clear" -> - Ok ClearCommand - - Just "colors" -> - Ok ColorsCommand - - Just "cookies" -> - Ok CookiesCommand - - Just "debug" -> - Ok DebugCommand - - Just "font" -> - Ok FontCommand - - Just "hello" -> - Ok HelloCommand - - Just "prompt" -> - Ok PromptCommand - - Just "theme" -> - Ok ThemeCommand - - Just "todo" -> - Ok TodoCommand - - Just trimput -> - Err trimput - - _ -> - Err "error in parseInput parsing tokens" - - args = - case List.tail tokens of - Just tail -> - Ok <| List.filter ((/=) "") tail - - _ -> - Err "error in parseInput parsing tokens" - in - case args of - Ok arguments -> - case command of - Ok cmd -> - Ok { command = cmd, args = arguments } - - Err err -> - Err err - - Err err -> - Err err - - -runCommand : Model -> Result String Input -> ( Model, Cmd Msg ) -runCommand model input = - case input of - Ok { command, args } -> - (case command of - HelpCommand -> - runHelp - - ClearCommand -> - runClear - - ColorsCommand -> - runColors - - CookiesCommand -> - runCookies - - DebugCommand -> - runDebug - - FontCommand -> - runFont - - HelloCommand -> - runHello - - PromptCommand -> - runPrompt - - ThemeCommand -> - runTheme - - TodoCommand -> - runTodo - ) - model - args - - Err "" -> - ( model, Cmd.none ) - - Err string -> - ( { model - | content = model.content ++ [ text <| "\ncommand " ++ string ++ " not recognised. Run `help` to find a valid command" ] - } - , Cmd.none - ) - - -type alias CommandRunner = - Model -> List String -> ( Model, Cmd Msg ) - - -runHelp : CommandRunner -runHelp model args = - ( { model - | content = - model.content - ++ (if List.length args < 2 then - case List.head args of - Nothing -> - [ text <| - "\n+--------------------------------------------------+" - ++ "\n|help prints this message |" - ++ "\n|help prints more information about |" - ++ "\n+--------------------------------------------------+" - ++ "\nclear clears the screen" - ++ "\ncookies [UNSTABLE] manages cookies" - ++ "\nhello prints hello world message" - ++ "\nfont manages font" - ++ "\nprompt [UNFINISHED] manages prompt" - ++ "\ntheme manages theme" - ++ "\ntodo prints aspirations for the site" - ] - - Just "help" -> - [ text <| - "\nhelp lists available commands with a short summary" - ++ "\nhelp prints more information about " - ] - - Just "clear" -> - [ text <| "\nclear clears the screen" - ] - - Just "colors" -> - [ text "\ncolors ", coloredText (coreColor BrightCyan) "[UNIMPLEMENTED]" ] - - Just "cookies" -> - [ text <| - "\ncookies prints info about the current cookie settings" - ++ "\ncookies set [true|false] sets whether to store a certain cookie" - ++ "\noptions for are:" - ++ "\n keepFont - whether to store fontSize. Default fontSize is 20" - ++ "\n keepPrompt - whether to store prompt. Default prompt is >" - ++ "\n keepTheme - whether to store theme. Default theme is pit" - ] - - Just "hello" -> - [ text <| "\nhello prints `Hello World!`" - ] - - Just "font" -> - [ text <| - "\nfont size prints info about the current font size" - ++ "\nfont size changes fontSize to if is >0" - ++ "\nfont reset changes fontSize to the default of 20px" - ] - - Just "prompt" -> - [ text <| - "\nprompt prints info about the current prompt" - ++ "\nprompt set sets prompt text to " - ++ "\n is specified in quotes" - ++ "\nprompt color sets prompt color to " - ++ "\n run `colors` to list available colors" - ] - - Just "theme" -> - [ text <| - "\ntheme sets the current theme according to " - ++ "\nOptions for are:" - ++ "\n sun - a theme blinding like the sun" - ++ "\n sky - a toned-down light theme" - ++ "\n dim - a deep and colorful dark theme" - ++ "\n pit - nearly black like the bottom of a pit" - ] - - Just "todo" -> - [ text "\ntodo prints aspirations for the site" ] - - Just string -> - wrongArgs HelpCommand 1 args - - else - wrongArgs HelpCommand 1 args - ) - } - , Cmd.none - ) - - -runClear : CommandRunner -runClear model args = - ( case List.head args of - Nothing -> - { model | content = [] } - - Just string -> - { model | content = model.content ++ wrongArgs ClearCommand 0 args } - , Cmd.none - ) - - -runColors : CommandRunner -runColors model args = - case List.head args of - Nothing -> - ( { model | content = model.content ++ wrongArgs ColorsCommand 1 args }, Cmd.none ) - - Just "test" -> - ( { model - | content = - model.content - ++ [ coloredText (coreColor Red) "Red" ] - } - , Cmd.none - ) - - Just _ -> - ( { model | content = model.content ++ wrongArgs ColorsCommand 1 args }, Cmd.none ) - - -runCookies : CommandRunner -runCookies model args = - case List.head args of - Nothing -> - ( { model | content = model.content ++ [ text <| "\n" ++ cookiesKeptToString model.cookiesKept ] }, Cmd.none ) - - Just "set" -> - let - cookiesKept = - model.cookiesKept - - second = - case List.tail args of - Just tail -> - Maybe.withDefault "" (List.head tail) - - Nothing -> - "" - - third = - case List.tail args of - Just tail -> - case List.tail tail of - Just tail2 -> - Maybe.withDefault "" (List.head tail2) - - Nothing -> - "" - - Nothing -> - "" - in - if third == "" then - ( { model | content = model.content ++ wrongArgs CookiesCommand 3 args }, Cmd.none ) - - else - case second of - "" -> - ( { model | content = model.content ++ wrongArgs CookiesCommand 2 args }, Cmd.none ) - - "keepFont" -> - case third of - "true" -> - saveCookiesKept { model | cookiesKept = { cookiesKept | keepFont = True } } - - "false" -> - saveCookiesKept { model | cookiesKept = { cookiesKept | keepFont = False } } - - _ -> - ( { model | content = model.content ++ wrongArgs CookiesCommand 3 args }, Cmd.none ) - - "keepTheme" -> - case third of - "true" -> - saveCookiesKept { model | cookiesKept = { cookiesKept | keepTheme = True } } - - "false" -> - saveCookiesKept { model | cookiesKept = { cookiesKept | keepTheme = False } } - - _ -> - ( { model | content = model.content ++ wrongArgs CookiesCommand 3 args }, Cmd.none ) - - "keepPrompt" -> - case third of - "true" -> - saveCookiesKept { model | cookiesKept = { cookiesKept | keepPrompt = True } } - - "false" -> - saveCookiesKept { model | cookiesKept = { cookiesKept | keepPrompt = False } } - - _ -> - ( { model | content = model.content ++ wrongArgs CookiesCommand 3 args }, Cmd.none ) - - _ -> - ( { model | content = model.content ++ wrongArgs CookiesCommand 2 args }, Cmd.none ) - - Just string -> - ( { model | content = model.content ++ wrongArgs CookiesCommand 1 args }, Cmd.none ) - - -runDebug : CommandRunner -runDebug model args = - ( model, getStorage "Theme" ) - - -runHello : CommandRunner -runHello model args = - case List.head args of - Nothing -> - ( { model | content = model.content ++ [ text "\nHello World!" ] }, Cmd.none ) - - _ -> - ( { model | content = model.content ++ wrongArgs HelloCommand 0 args }, Cmd.none ) - - -runFont : CommandRunner -runFont model args = - case List.head args of - Nothing -> - ( { model | content = model.content ++ wrongArgs FontCommand 1 args }, Cmd.none ) - - Just "size" -> - let - string = - case List.tail args of - Just tail -> - Maybe.withDefault "" (List.head tail) - - Nothing -> - "" - - fl = - String.toFloat string - in - case fl of - Just float -> - if float > 0 then - let - newModel = - { model - | content = - model.content - ++ [ text <| - "\nfontSize successfully set to " - ++ string - ++ "px" - ] - , font = { fontSize = float } - } - in - saveFont newModel - - else - ( { model - | content = - model.content - ++ [ text "\nPlease enter a valid fontSize, a Float greater than 0" ] - } - , Cmd.none - ) - - Nothing -> - case string of - "" -> - ( { model | content = model.content ++ [ text <| "\nfontSize is " ++ String.fromFloat model.font.fontSize ++ "px" ] } - , Cmd.none - ) - - "reset" -> - let - newModel = - { model - | content = - model.content - ++ [ text "\nfontSize reset to 20px" ] - , font = { fontSize = 20 } - } - in - saveFont newModel - - _ -> - ( { model - | content = - model.content - ++ [ text <| - "\nfontSize " - ++ string - ++ " not recognised; font size expected" - ] - } - , Cmd.none - ) - - Just "reset" -> - let - newModel = - { model - | content = model.content ++ [ text "\nfontSize reset to 20px" ] - , font = { fontSize = 20 } - } - in - saveFont newModel - - Just string -> - ( { model | content = model.content ++ wrongArgs FontCommand 1 args }, Cmd.none ) - - -runPrompt : CommandRunner -runPrompt model args = - case List.head args of - Nothing -> - ( { model | content = model.content ++ [ text <| "\ncurrent prompt is " ++ model.prompt.prompt ] }, Cmd.none ) - - Just string -> - let - oldPrompt = - model.prompt - in - savePrompt { model | prompt = { oldPrompt | prompt = string } } - - -runTheme : CommandRunner -runTheme model args = - case List.head args of - Nothing -> - ( { model - | content = - model.content - ++ [ text <| - "\nThe current theme is " - ++ (case model.theme of - Sun -> - "sun" - - Sky -> - "sky" - - Dim -> - "dim" - - Pit -> - "pit" - ) - ] - } - , Cmd.none - ) - - Just "sun" -> - setTheme model Sun - - Just "sky" -> - setTheme model Sky - - Just "dim" -> - setTheme model Dim - - Just "pit" -> - setTheme model Pit - - Just string -> - ( { model | content = model.content ++ wrongArgs ThemeCommand 1 args }, Cmd.none ) - - -runTodo : CommandRunner -runTodo model args = - ( case List.head args of - Nothing -> - { model - | content = - model.content - ++ [ text <| - "\nIn no particular order:" - ++ "\n- Implement colors throughout existing methods" - ++ "\n- Something like Neofetch" - ++ "\n- Collect and store feedback in a database" - ++ "\n- Create a style guide for programs involving console colors" - ++ "\n- Modularise the code (to have something more elegant than a single 2k line file)" - ++ "\n- Figure out a better way to parse commands" - ++ "\n- Add cache headers" - ] - } - - Just _ -> - { model | content = model.content ++ wrongArgs TodoCommand 0 args } - , Cmd.none - ) - - - --- COMMAND ABSTRACTIONS - - -setTheme : Model -> Theme -> ( Model, Cmd Msg ) -setTheme model theme = - let - newModel = - { model | theme = theme } - in - saveTheme newModel - - -wrongArgs : Command -> Int -> List String -> List (Html Msg) -wrongArgs command expected args = - let - comstr = - case command of - HelpCommand -> - "help" - - ClearCommand -> - "clear" - - ColorsCommand -> - "colors" - - CookiesCommand -> - "cookies" - - DebugCommand -> - "debug" - - FontCommand -> - "font" - - HelloCommand -> - "hello" - - PromptCommand -> - "prompt" - - ThemeCommand -> - "theme" - - TodoCommand -> - "todo" - in - [ text - ((if expected > List.length args then - "\nToo few arguments for " ++ comstr - - else if expected < List.length args then - "\nToo many arguments for " ++ comstr - - else - "\nUnexpected arguments " ++ listToString args - ) - ++ ". Run `help " - ++ comstr - ++ "` for usage" - ) - ] - - -listToString : List String -> String -listToString list = - "[" ++ String.join "," list ++ "]" - - -boolToString : Bool -> String -boolToString bool = - case bool of - True -> - "True" - - False -> - "False" - - -cookiesKeptToString : CookiesKept -> String -cookiesKeptToString cookiesKept = - "{ keepFont = " - ++ boolToString cookiesKept.keepFont - ++ "\n, keepPrompt = " - ++ boolToString cookiesKept.keepPrompt - ++ "\n, keepTheme = " - ++ boolToString cookiesKept.keepTheme - ++ "\n}" - - - --- PORTS --- sets localStorage 'cookies' to E.Value - - -port setStorage : ( String, E.Value ) -> Cmd a - - -port getStorage : String -> Cmd a - - -port receiveStorageFromJS : (E.Value -> msg) -> Sub msg - - - --- JSON - - -saveCookiesKept : Model -> ( Model, Cmd Msg ) -saveCookiesKept model = - ( model, setStorage ( "CookiesKept", encodeCookiesKept model.cookiesKept ) ) - - -saveFont : Model -> ( Model, Cmd Msg ) -saveFont model = - ( model, setStorage ( "Font", encodeFont model.font ) ) - - -savePrompt : Model -> ( Model, Cmd Msg ) -savePrompt model = - ( model, setStorage ( "Prompt", encodePrompt model.prompt ) ) - - -saveTheme : Model -> ( Model, Cmd Msg ) -saveTheme model = - ( model, setStorage ( "Theme", encodeTheme model.theme ) ) - - -loadStorage : Model -> String -> ( Model, Cmd Msg ) -loadStorage model key = - ( model, getStorage key ) - - - --- SUBSCRIPTIONS - - -subscriptions : Model -> Sub Msg -subscriptions model = - receiveStorageFromJS ReceivedStorage - - - --- VIEW - - -view : Model -> Browser.Document Msg -view model = - Browser.Document "elmskell" - [ toUnstyled <| viewBody model ] - - -viewBody : Model -> Html Msg -viewBody model = - styledBody model - [] - [ styledContent model [] model.content - , styledCL - model - [] - [ styledPrompt model [] [ coloredText (coreColor BrightMagenta) model.prompt.prompt ] - , styledCLI model [ onInput TakeInput, value model.cliContent, id "init-focus" ] [] - ] - ] - - - --- STYLES - - -allColors : Model -> List Color -allColors model = - List.map - coreColor - [ Red - , Green - , Yellow - , Blue - , Magenta - , Cyan - , BrightRed - , BrightGreen - , BrightYellow - , BrightBlue - , BrightMagenta - , BrightCyan - ] - ++ List.map - (themeColor model) - [ Background - , Foreground - , Cursor - , Black - , White - , BrightBlack - , BrightWhite - ] - - - --- Colors from Root Loops --- flavor: intense --- fruit: raspberry --- milk: each option --- sugar: 6 --- colors: 9 --- sogginess: 7 - - -coreColor : CoreColor -> Color -coreColor color = - case color of - Red -> - hex "e14433" - - Green -> - hex "#359b54" - - Yellow -> - hex "#a08016" - - Blue -> - hex "#5a77f2" - - Magenta -> - hex "#cf2ec8" - - Cyan -> - hex "1894a5" - - BrightRed -> - hex "#f36552" - - BrightGreen -> - hex "#3db361" - - BrightYellow -> - hex "#b9941a" - - BrightBlue -> - hex "#7491f8" - - BrightMagenta -> - hex "#e54ede" - - BrightCyan -> - hex "#1eabbf" - - -themeColor : Model -> ThemeColor -> Color -themeColor model color = - case model.theme of - Pit -> - case color of - Background -> - hex "#120211" - - Foreground -> - hex "#f3d9f0" - - Cursor -> - themeColor model White - - Black -> - hex "#380e36" - - White -> - hex "#e29edc" - - BrightBlack -> - hex "#7c2b77" - - BrightWhite -> - hex "#f9ecf7" - - Dim -> - case color of - Background -> - hex "#380e36" - - Foreground -> - hex "#f7e5f4" - - Cursor -> - themeColor model White - - Black -> - hex "#5e1c56" - - White -> - hex "#e8b2e2" - - BrightBlack -> - hex "#9d3c98" - - BrightWhite -> - hex "#fbf4fa" - - Sky -> - case color of - Background -> - hex "#f3d9f0" - - Foreground -> - hex "#380e36" - - Cursor -> - themeColor model White - - Black -> - hex "#eec6e9" - - White -> - hex "#7c2b77" - - BrightBlack -> - hex "#d575cd" - - BrightWhite -> - hex "#120211" - - Sun -> - case color of - Background -> - hex "#f9ecf7" - - Foreground -> - hex "#5a1c56" - - Cursor -> - themeColor model White - - Black -> - hex "#f3d9f0" - - White -> - hex "#9d3c98" - - BrightBlack -> - hex "#dc8ed5" - - BrightWhite -> - hex "#380e36" - - -styledBody : Model -> List (Attribute Msg) -> List (Html Msg) -> Html Msg -styledBody model = - styled Html.Styled.main_ - [ backgroundColor <| themeColor model Background - , color <| themeColor model Foreground - , minHeight (vh 100) - , width (vw 100) - , margin (px 0) - , padding (px 0) - ] - - -styledContent : Model -> List (Attribute Msg) -> List (Html Msg) -> Html Msg -styledContent model = - styled Html.Styled.span - [ color <| themeColor model Foreground - , fontSize (px model.font.fontSize) - , padding (px 0) - , margin (px 0) - , backgroundColor <| themeColor model Background - , borderWidth (px 0) - , width (vw 100) - , whiteSpace preWrap - , fontFamily monospace - ] - - -styledCL : Model -> List (Attribute Msg) -> List (Html Msg) -> Html Msg -styledCL model = - styled Html.Styled.span - [ backgroundColor <| themeColor model Background - , padding (px 0) - , margin (px 0) - , displayFlex - , flexDirection row - , flexWrap noWrap - , justifyContent flexStart - ] - - -styledCLI : Model -> List (Attribute Msg) -> List (Html Msg) -> Html Msg -styledCLI model = - styled Html.Styled.textarea - [ color <| themeColor model Foreground - , fontSize (px model.font.fontSize) - , padding (px 0) - , margin (px 0) - , backgroundColor <| themeColor model Background - , borderWidth (px 0) - , outlineWidth (px 0) - , height (px model.font.fontSize) - , resize none - , overflow hidden - , flexGrow (Css.int 100) - ] - - -styledPrompt : Model -> List (Attribute Msg) -> List (Html Msg) -> Html Msg -styledPrompt model = - styled Html.Styled.span - [ color <| themeColor model Foreground - , fontSize (px model.font.fontSize) - , padding (px 0) - , margin (px 0) - , backgroundColor <| themeColor model Background - , borderWidth (px 0) - , height (px model.font.fontSize) - , fontFamily monospace - ] - - -coloredText : Color -> String -> Html Msg -coloredText fgColor string = - coloredTextWBackground fgColor (rgba 0 0 0 0) string - - -coloredTextWBackground : Color -> Color -> String -> Html Msg -coloredTextWBackground fgColor bgColor string = - styled Html.Styled.span - [ color fgColor - , backgroundColor bgColor - , padding (px 0) - , margin (px 0) - , borderWidth (px 0) - ] - [] - [ text string ] diff --git a/justfile b/justfile deleted file mode 100755 index 123d885..0000000 --- a/justfile +++ /dev/null @@ -1,32 +0,0 @@ -produce: produce-elm haskell - echo "REMEMBER to RESTART elmskell.service TO UPDATE SITE IN PLACE" - echo "REMEMBER to RUN sudo iptables-apply -t 60 /etc/iptables/iptables.rules IF YOU HAVEN'T SINCE RESTART" - -types: haskell - rm -rf frontend/src/ElmskellTypes/Generated - stack exec ~/.local/bin/hs-server-exe - -compile: elm haskell - -run: produce exec - -exec: - stack exec ~/.local/bin/hs-server-exe - -haskell: - cd backend && stack install - -elm: - cd frontend && elm make src/Main.elm --output=../assets/js/main.js - rm -rf frontend/elm-stuff - -produce-elm: - cd frontend && elm make src/Main.elm --optimize --output=tmp.js - mv frontend/tmp.js assets/js/tmp.js - rm -rf frontend/elm-stuff - rm assets/js/main.js - esbuild assets/js/tmp.js --minify --target=es5 --outfile=assets/js/main.js - rm assets/js/tmp.js - -format-elm: - elm-format frontend/src/Main.elm --yes