blob: fdb6c432e875e5b4798330a1324c70ccd5e8b695 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
/- 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]
--
|