Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ITPDP2019
Gain.fam
web-server
Commits
fc6968c0
Commit
fc6968c0
authored
May 13, 2019
by
Magnus Holm Brunbjerg
Browse files
Prototype update
parent
ca402744
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
fc6968c0
# web-server
The web server provides the visualisation layer
\ No newline at end of file
The web server provides the visualisation layer.
\ No newline at end of file
package-lock.json
View file @
fc6968c0
...
...
@@ -85,6 +85,11 @@
"es-abstract"
:
"^1.7.0"
}
},
"asap"
:
{
"version"
:
"2.0.6"
,
"resolved"
:
"https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"
,
"integrity"
:
"sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
},
"babel-code-frame"
:
{
"version"
:
"6.26.0"
,
"resolved"
:
"https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz"
,
...
...
@@ -123,24 +128,23 @@
"balanced-match"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
,
"integrity"
:
"sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
,
"dev"
:
true
"integrity"
:
"sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"body-parser"
:
{
"version"
:
"1.1
8.3
"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.1
8.3
.tgz"
,
"integrity"
:
"sha
1-WykhmP/dVTs6DyDe0FkrlWlVyLQ
="
,
"version"
:
"1.1
9.0
"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.1
9.0
.tgz"
,
"integrity"
:
"sha
512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw=
="
,
"requires"
:
{
"bytes"
:
"3.
0
.0"
,
"bytes"
:
"3.
1
.0"
,
"content-type"
:
"~1.0.4"
,
"debug"
:
"2.6.9"
,
"depd"
:
"~1.1.2"
,
"http-errors"
:
"
~
1.
6.3
"
,
"iconv-lite"
:
"0.4.2
3
"
,
"http-errors"
:
"1.
7.2
"
,
"iconv-lite"
:
"0.4.2
4
"
,
"on-finished"
:
"~2.3.0"
,
"qs"
:
"6.
5.2
"
,
"raw-body"
:
"2.
3.3
"
,
"type-is"
:
"~1.6.1
6
"
"qs"
:
"6.
7.0
"
,
"raw-body"
:
"2.
4.0
"
,
"type-is"
:
"~1.6.1
7
"
},
"dependencies"
:
{
"debug"
:
{
...
...
@@ -151,18 +155,37 @@
"ms"
:
"2.0.0"
}
},
"
iconv-lite
"
:
{
"version"
:
"
0.4
.2
3
"
,
"resolved"
:
"https://registry.npmjs.org/
iconv-lite/-/iconv-lite-0.4
.2
3
.tgz"
,
"integrity"
:
"sha512-
neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA
=="
,
"
http-errors
"
:
{
"version"
:
"
1.7
.2"
,
"resolved"
:
"https://registry.npmjs.org/
http-errors/-/http-errors-1.7
.2.tgz"
,
"integrity"
:
"sha512-
uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg
=="
,
"requires"
:
{
"safer-buffer"
:
">= 2.1.2 < 3"
"depd"
:
"~1.1.2"
,
"inherits"
:
"2.0.3"
,
"setprototypeof"
:
"1.1.1"
,
"statuses"
:
">= 1.5.0 < 2"
,
"toidentifier"
:
"1.0.0"
}
},
"ms"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"qs"
:
{
"version"
:
"6.7.0"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"
,
"integrity"
:
"sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
},
"setprototypeof"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
,
"integrity"
:
"sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
},
"statuses"
:
{
"version"
:
"1.5.0"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
,
"integrity"
:
"sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
}
}
},
...
...
@@ -170,16 +193,15 @@
"version"
:
"1.1.11"
,
"resolved"
:
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
,
"integrity"
:
"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
,
"dev"
:
true
,
"requires"
:
{
"balanced-match"
:
"^1.0.0"
,
"concat-map"
:
"0.0.1"
}
},
"bytes"
:
{
"version"
:
"3.
0
.0"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.
0
.0.tgz"
,
"integrity"
:
"sha
1-0ygVQE1olpn4Wk6k+odV3ROpYEg
="
"version"
:
"3.
1
.0"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.
1
.0.tgz"
,
"integrity"
:
"sha
512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=
="
},
"caller-path"
:
{
"version"
:
"0.1.0"
,
...
...
@@ -269,11 +291,16 @@
"integrity"
:
"sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
,
"dev"
:
true
},
"commander"
:
{
"version"
:
"2.20.0"
,
"resolved"
:
"https://registry.npmjs.org/commander/-/commander-2.20.0.tgz"
,
"integrity"
:
"sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="
,
"optional"
:
true
},
"concat-map"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
"integrity"
:
"sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
,
"dev"
:
true
"integrity"
:
"sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"contains-path"
:
{
"version"
:
"0.1.0"
,
...
...
@@ -339,7 +366,6 @@
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz"
,
"integrity"
:
"sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ=="
,
"dev"
:
true
,
"requires"
:
{
"object-keys"
:
"^1.0.12"
}
...
...
@@ -762,6 +788,28 @@
"vary"
:
"~1.1.2"
},
"dependencies"
:
{
"body-parser"
:
{
"version"
:
"1.18.3"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz"
,
"integrity"
:
"sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ="
,
"requires"
:
{
"bytes"
:
"3.0.0"
,
"content-type"
:
"~1.0.4"
,
"debug"
:
"2.6.9"
,
"depd"
:
"~1.1.2"
,
"http-errors"
:
"~1.6.3"
,
"iconv-lite"
:
"0.4.23"
,
"on-finished"
:
"~2.3.0"
,
"qs"
:
"6.5.2"
,
"raw-body"
:
"2.3.3"
,
"type-is"
:
"~1.6.16"
}
},
"bytes"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz"
,
"integrity"
:
"sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
},
"debug"
:
{
"version"
:
"2.6.9"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
,
...
...
@@ -770,13 +818,44 @@
"ms"
:
"2.0.0"
}
},
"iconv-lite"
:
{
"version"
:
"0.4.23"
,
"resolved"
:
"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz"
,
"integrity"
:
"sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA=="
,
"requires"
:
{
"safer-buffer"
:
">= 2.1.2 < 3"
}
},
"ms"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"raw-body"
:
{
"version"
:
"2.3.3"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz"
,
"integrity"
:
"sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw=="
,
"requires"
:
{
"bytes"
:
"3.0.0"
,
"http-errors"
:
"1.6.3"
,
"iconv-lite"
:
"0.4.23"
,
"unpipe"
:
"1.0.0"
}
}
}
},
"express-handlebars"
:
{
"version"
:
"3.0.2"
,
"resolved"
:
"https://registry.npmjs.org/express-handlebars/-/express-handlebars-3.0.2.tgz"
,
"integrity"
:
"sha512-rPaSqR8xPnSqfvWvI8Mhtn7nifaMmySq6yhWkjH07Ks/nuDaRngJyf7eDN2I7PBkNVdZHf0Bz+1rY1yrZFdx8g=="
,
"requires"
:
{
"glob"
:
"^7.1.3"
,
"graceful-fs"
:
"^4.1.2"
,
"handlebars"
:
"^4.0.13"
,
"object.assign"
:
"^4.1.0"
,
"promise"
:
"^8.0.2"
}
},
"external-editor"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz"
,
...
...
@@ -894,14 +973,12 @@
"fs.realpath"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
,
"integrity"
:
"sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
,
"dev"
:
true
"integrity"
:
"sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"function-bind"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
,
"integrity"
:
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
,
"dev"
:
true
"integrity"
:
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"functional-red-black-tree"
:
{
"version"
:
"1.0.1"
,
...
...
@@ -919,7 +996,6 @@
"version"
:
"7.1.3"
,
"resolved"
:
"https://registry.npmjs.org/glob/-/glob-7.1.3.tgz"
,
"integrity"
:
"sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ=="
,
"dev"
:
true
,
"requires"
:
{
"fs.realpath"
:
"^1.0.0"
,
"inflight"
:
"^1.0.4"
,
...
...
@@ -938,8 +1014,18 @@
"graceful-fs"
:
{
"version"
:
"4.1.15"
,
"resolved"
:
"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz"
,
"integrity"
:
"sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
,
"dev"
:
true
"integrity"
:
"sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
},
"handlebars"
:
{
"version"
:
"4.1.2"
,
"resolved"
:
"https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz"
,
"integrity"
:
"sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw=="
,
"requires"
:
{
"neo-async"
:
"^2.6.0"
,
"optimist"
:
"^0.6.1"
,
"source-map"
:
"^0.6.1"
,
"uglify-js"
:
"^3.1.4"
}
},
"has"
:
{
"version"
:
"1.0.3"
,
...
...
@@ -968,8 +1054,7 @@
"has-symbols"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz"
,
"integrity"
:
"sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
,
"dev"
:
true
"integrity"
:
"sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
},
"hosted-git-info"
:
{
"version"
:
"2.7.1"
,
...
...
@@ -992,7 +1077,6 @@
"version"
:
"0.4.24"
,
"resolved"
:
"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
,
"integrity"
:
"sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="
,
"dev"
:
true
,
"requires"
:
{
"safer-buffer"
:
">= 2.1.2 < 3"
}
...
...
@@ -1013,7 +1097,6 @@
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
,
"integrity"
:
"sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk="
,
"dev"
:
true
,
"requires"
:
{
"once"
:
"^1.3.0"
,
"wrappy"
:
"1"
...
...
@@ -1254,7 +1337,6 @@
"version"
:
"3.0.4"
,
"resolved"
:
"https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
,
"integrity"
:
"sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="
,
"dev"
:
true
,
"requires"
:
{
"brace-expansion"
:
"^1.1.7"
}
...
...
@@ -1262,8 +1344,7 @@
"minimist"
:
{
"version"
:
"0.0.8"
,
"resolved"
:
"https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
,
"integrity"
:
"sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
,
"dev"
:
true
"integrity"
:
"sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
"mkdirp"
:
{
"version"
:
"0.5.1"
,
...
...
@@ -1297,12 +1378,22 @@
"resolved"
:
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz"
,
"integrity"
:
"sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
},
"neo-async"
:
{
"version"
:
"2.6.0"
,
"resolved"
:
"https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz"
,
"integrity"
:
"sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA=="
},
"nice-try"
:
{
"version"
:
"1.0.5"
,
"resolved"
:
"https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz"
,
"integrity"
:
"sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
,
"dev"
:
true
},
"node-fetch"
:
{
"version"
:
"2.5.0"
,
"resolved"
:
"https://registry.npmjs.org/node-fetch/-/node-fetch-2.5.0.tgz"
,
"integrity"
:
"sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw=="
},
"normalize-package-data"
:
{
"version"
:
"2.5.0"
,
"resolved"
:
"https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"
,
...
...
@@ -1324,8 +1415,18 @@
"object-keys"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
,
"integrity"
:
"sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
,
"dev"
:
true
"integrity"
:
"sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
},
"object.assign"
:
{
"version"
:
"4.1.0"
,
"resolved"
:
"https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz"
,
"integrity"
:
"sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w=="
,
"requires"
:
{
"define-properties"
:
"^1.1.2"
,
"function-bind"
:
"^1.1.1"
,
"has-symbols"
:
"^1.0.0"
,
"object-keys"
:
"^1.0.11"
}
},
"on-finished"
:
{
"version"
:
"2.3.0"
,
...
...
@@ -1339,7 +1440,6 @@
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmjs.org/once/-/once-1.4.0.tgz"
,
"integrity"
:
"sha1-WDsap3WWHUsROsF9nFC6753Xa9E="
,
"dev"
:
true
,
"requires"
:
{
"wrappy"
:
"1"
}
...
...
@@ -1353,6 +1453,22 @@
"mimic-fn"
:
"^1.0.0"
}
},
"optimist"
:
{
"version"
:
"0.6.1"
,
"resolved"
:
"https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz"
,
"integrity"
:
"sha1-2j6nRob6IaGaERwybpDrFaAZZoY="
,
"requires"
:
{
"minimist"
:
"~0.0.1"
,
"wordwrap"
:
"~0.0.2"
},
"dependencies"
:
{
"wordwrap"
:
{
"version"
:
"0.0.3"
,
"resolved"
:
"https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz"
,
"integrity"
:
"sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
}
}
},
"optionator"
:
{
"version"
:
"0.8.2"
,
"resolved"
:
"https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz"
,
...
...
@@ -1420,8 +1536,7 @@
"path-is-absolute"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
,
"integrity"
:
"sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
,
"dev"
:
true
"integrity"
:
"sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"path-is-inside"
:
{
"version"
:
"1.0.2"
,
...
...
@@ -1539,6 +1654,14 @@
"integrity"
:
"sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
,
"dev"
:
true
},
"promise"
:
{
"version"
:
"8.0.3"
,
"resolved"
:
"https://registry.npmjs.org/promise/-/promise-8.0.3.tgz"
,
"integrity"
:
"sha512-HeRDUL1RJiLhyA0/grn+PTShlBAcLuh/1BJGtrvjwbvRDCTLLMEz9rOGCV+R3vHY4MixIuoMEd9Yq/XvsTPcjw=="
,
"requires"
:
{
"asap"
:
"~2.0.6"
}
},
"prop-types"
:
{
"version"
:
"15.7.2"
,
"resolved"
:
"https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz"
,
...
...
@@ -1576,23 +1699,37 @@
"integrity"
:
"sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
},
"raw-body"
:
{
"version"
:
"2.
3.3
"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.
3.3
.tgz"
,
"integrity"
:
"sha512-
9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw
=="
,
"version"
:
"2.
4.0
"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.
4.0
.tgz"
,
"integrity"
:
"sha512-
4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q
=="
,
"requires"
:
{
"bytes"
:
"3.
0
.0"
,
"http-errors"
:
"1.
6.3
"
,
"iconv-lite"
:
"0.4.2
3
"
,
"bytes"
:
"3.
1
.0"
,
"http-errors"
:
"1.
7.2
"
,
"iconv-lite"
:
"0.4.2
4
"
,
"unpipe"
:
"1.0.0"
},
"dependencies"
:
{
"
iconv-lite
"
:
{
"version"
:
"
0.4
.2
3
"
,
"resolved"
:
"https://registry.npmjs.org/
iconv-lite/-/iconv-lite-0.4
.2
3
.tgz"
,
"integrity"
:
"sha512-
neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA
=="
,
"
http-errors
"
:
{
"version"
:
"
1.7
.2"
,
"resolved"
:
"https://registry.npmjs.org/
http-errors/-/http-errors-1.7
.2.tgz"
,
"integrity"
:
"sha512-
uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg
=="
,
"requires"
:
{
"safer-buffer"
:
">= 2.1.2 < 3"
"depd"
:
"~1.1.2"
,
"inherits"
:
"2.0.3"
,
"setprototypeof"
:
"1.1.1"
,
"statuses"
:
">= 1.5.0 < 2"
,
"toidentifier"
:
"1.0.0"
}
},
"setprototypeof"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
,
"integrity"
:
"sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
},
"statuses"
:
{
"version"
:
"1.5.0"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
,
"integrity"
:
"sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
}
}
},
...
...
@@ -1794,6 +1931,11 @@
"is-fullwidth-code-point"
:
"^2.0.0"
}
},
"source-map"
:
{
"version"
:
"0.6.1"
,
"resolved"
:
"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
,
"integrity"
:
"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"spdx-correct"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz"
,
...
...
@@ -1960,6 +2102,11 @@
"os-tmpdir"
:
"~1.0.2"
}
},
"toidentifier"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"
,
"integrity"
:
"sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
},
"type-check"
:
{
"version"
:
"0.3.2"
,
"resolved"
:
"https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"
,
...
...
@@ -1978,6 +2125,16 @@
"mime-types"
:
"~2.1.24"
}
},
"uglify-js"
:
{
"version"
:
"3.5.12"
,
"resolved"
:
"https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.12.tgz"
,
"integrity"
:
"sha512-KeQesOpPiZNgVwJj8Ge3P4JYbQHUdZzpx6Fahy6eKAYRSV4zhVmLXoC+JtOeYxcHCHTve8RG1ZGdTvpeOUM26Q=="
,
"optional"
:
true
,
"requires"
:
{
"commander"
:
"~2.20.0"
,
"source-map"
:
"~0.6.1"
}
},
"uniq"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz"
,
...
...
@@ -2036,8 +2193,7 @@
"wrappy"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
,
"integrity"
:
"sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
,
"dev"
:
true
"integrity"
:
"sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"write"
:
{
"version"
:
"0.2.1"
,
...
...
package.json
View file @
fc6968c0
...
...
@@ -14,9 +14,12 @@
"author"
:
"gain.fam"
,
"license"
:
"
ISC
"
,
"dependencies"
:
{
"
body-parser
"
:
"
^1.19.0
"
,
"
dotenv
"
:
"
^7.0.0
"
,
"
express
"
:
"
^4.16.4
"
,
"
ip
"
:
"
^1.1.5
"
"
express-handlebars
"
:
"
^3.0.2
"
,
"
ip
"
:
"
^1.1.5
"
,
"
node-fetch
"
:
"
^2.5.0
"
},
"devDependencies"
:
{
"
standard
"
:
"
^12.0.1
"
...
...
src/app/index.js
View file @
fc6968c0
'
use strict
'
const
path
=
require
(
'
path
'
)
const
express
=
require
(
'
express
'
)
const
exphbs
=
require
(
'
express-handlebars
'
)
const
bodyParser
=
require
(
'
body-parser
'
)
const
fetch
=
require
(
'
node-fetch
'
)
const
app
=
express
()
const
port
=
process
.
env
.
PORT
app
.
listen
(
port
,
(
err
)
=>
{
if
(
err
)
return
console
.
error
(
err
)
console
.
log
(
`Web server startet på http://
${
require
(
'
ip
'
).
address
()}
:
${
port
}
`
)
})
/*
*
* Middleware and engine stuff
*
*/
app
.
engine
(
'
.hbs
'
,
exphbs
({
defaultLayout
:
'
main
'
,
extname
:
'
.hbs
'
,
layoutsDir
:
path
.
join
(
__dirname
,
'
../views/layouts
'
)
}))
app
.
set
(
'
view engine
'
,
'
.hbs
'
)
app
.
set
(
'
views
'
,
path
.
join
(
__dirname
,
'
../views
'
))
app
.
use
(
express
.
static
(
path
.
join
(
__dirname
,
'
../public
'
)))
app
.
use
(
bodyParser
.
json
())
app
.
use
(
bodyParser
.
urlencoded
({
extended
:
true
}))
// Console logging of request type, url and time
app
.
use
((
req
,
res
,
next
)
=>
{
console
.
log
(
`
${
new
Date
().
toLocaleTimeString
(
'
en-GB
'
,
{
hour12
:
false
})}
-
${
req
.
ip
.
substring
(
7
)}
-
${
req
.
method
}
${
req
.
originalUrl
}
`
)
next
()
})
/*
*
* Web page serving stuff
*
*/
// Frontpage
app
.
get
(
'
/
'
,
(
req
,
res
,
next
)
=>
{
res
.
render
(
'
index
'
,
{
meta
:
{
title
:
'
Forside
'
}
})
})
// List all experiments
app
.
get
(
'
/experiments
'
,
(
req
,
res
,
next
)
=>
{
fetch
(
`http://
${
process
.
env
.
API_IP
}
:
${
process
.
env
.
API_PORT
}${
process
.
env
.
API_PATH
}
/experiments`
,
{
method
:
'
GET
'
,
mode
:
'
cors
'
,
headers
:
{
'
Accept
'
:
'
application/json
'
}
}).
then
((
response
)
=>
{
return
response
.
json
()
}).
then
((
data
)
=>
{
res
.
render
(
'
experiments
'
,
{
meta
:
{
title
:
'
Eksperimenter
'
},
experiments
:
data
})
})
})
// Specific experiment
app
.
get
(
'
/experiments/:id
'
,
(
req
,
res
,
next
)
=>
{
const
id
=
req
.
params
.
id
})
// 404 handling, keep at bottom
app
.
use
((
req
,
res
,
next
)
=>
{
res
.
status
(
404
).
send
(
'
404 side ikke fundet
'
)
})
module
.
exports
=
app
src/public/js/Chart.min.js
0 → 100644
View file @
fc6968c0
This diff is collapsed.
Click to expand it.
src/public/style/main.css
View file @
fc6968c0
*
{
box-sizing
:
border-box
;
}
body
{
margin
:
0
;
}
.main
{
height
:
100vh
;
}
.nav
{
height
:
100vh
;
width
:
200px
;
position
:
fixed
;
border-right
:
1px
solid
#000000
;