/- sur=zodiac /+ server, metamask, sr=sortug /= login-page /web/index |_ [=bowl:gall eyre-id=@ta req=inbound-request:eyre state=versioned-state:sur] ++ session-timeout ~d300 ++ session-cookie-string |= [session=@uv extend=?] ^- @t %- crip =; max-age=tape :: "urbauth-{(scow %p src.bowl)}={(scow %uv session)}; Path=/; Max-Age={max-age}" "ucm-{(scow %p src.bowl)}={(scow %uv session)}; Path=/; Max-Age={max-age}" %+ scow:parsing:sr %ud ?. extend 0 (div (msec:milly session-timeout) 1.000) ++ get-file-at |= [base=path file=path ext=@ta] ^- (unit octs) =/ =path :* (scot %p our.bowl) q.byk.bowl (scot %da now.bowl) (snoc (weld base file) ext) == ?. .^(? %cu path) ~ %- some %- as-octs:mimes:html .^(@ %cx path) ++ handle-get-request |= [headers=header-list:http request-line:server] ^- simple-payload:http ?~ ext $(ext `%html, site [%index ~]) ?: ?=([%zodiac *] site) $(site +.site) :: serve dynamic session.js :: ?: =([/session `%js] [site ext]) %- js-response:gen:server %- as-octt:mimes:html """ window.ship = '{(scow %p src.bowl)}'; """ =/ file=(unit octs) (get-file-at /web site u.ext) ?~ file ~& "file not found" not-found:gen:server ?+ u.ext not-found:gen:server %html (html-response:gen:server u.file) %js (js-response:gen:server u.file) %css (css-response:gen:server u.file) %png (png-response:gen:server u.file) %woff (woff-response:gen:server u.file) %woff2 (woff2-response:gen:server u.file) == ++ ebail ^- (list card:agent:gall) (send-response pbail) ++ egive |= pl=simple-payload:http ^- (list card:agent:gall) (send-response pl) ++ pbail %- html-response:gen:server %- manx-to-octs:server manx-bail ++ manx-bail ^- manx ;div:"404" ++ manx-payload |= =manx ^- simple-payload:http %- html-response:gen:server %- manx-to-octs:server manx ++ send-response |= =simple-payload:http =/ cookie ['set-cookie' (session-cookie-string 0vublog .y)] =. headers.response-header.simple-payload [cookie headers.response-header.simple-payload] %+ give-simple-payload:app:server eyre-id simple-payload ++ route =/ metalib ~(. metamask [sessions.state bowl]) =/ rl (parse-request-line:server url.request.req) =/ sitepath=path /[(head site.rl)] =/ pat=(pole knot) site.rl ?+ pat ebail [%zodiac %metamask rest=*] (serve-metamask-challenge:metalib eyre-id) [%zodiac %auth rest=*] (process-metamask-auth:metalib eyre-id body.request.req) [%zodiac ~] (send-response (manx-payload (login-page bowl))) :: [site=@t *] (send-response (handle-get-request header-list.request.req rl)) == ++ eyre-binding-card |= =path ~& > adding-binding=[path dap.bowl] [%pass /eyre/connect %arvo %e %connect [~ path] dap.bowl] --