Fetches last build date
This commit is contained in:
		
							parent
							
								
									4b23b5d897
								
							
						
					
					
						commit
						f6b92ada16
					
				
					 10 changed files with 555 additions and 69 deletions
				
			
		| 
						 | 
					@ -2,3 +2,5 @@ mkdir -p public
 | 
				
			||||||
cp src/index.html public
 | 
					cp src/index.html public
 | 
				
			||||||
cp -R src/assets public
 | 
					cp -R src/assets public
 | 
				
			||||||
cp node_modules/vital-css/dist/css/vital.min.css public/assets
 | 
					cp node_modules/vital-css/dist/css/vital.min.css public/assets
 | 
				
			||||||
 | 
					cp node_modules/vue/dist/vue.min.js public/assets
 | 
				
			||||||
 | 
					cp node_modules/axios/dist/axios.min.js public/assets
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										37
									
								
								index.js
									
										
									
									
									
								
							
							
						
						
									
										37
									
								
								index.js
									
										
									
									
									
								
							| 
						 | 
					@ -1,12 +1,31 @@
 | 
				
			||||||
var static = require('node-static');
 | 
					const express = require('express');
 | 
				
			||||||
 | 
					const path = require('path');
 | 
				
			||||||
 | 
					const fs = require('fs');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var fileServer = new static.Server('./public');
 | 
					const app = express();
 | 
				
			||||||
 | 
					const apiPrefix = '/api';
 | 
				
			||||||
 | 
					const port = 8080;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require('http').createServer(function (request, response) {
 | 
					app.use(express.static(path.join(__dirname + '/public'), {
 | 
				
			||||||
  request.addListener('end', function () {
 | 
					  dotfiles: 'ignore',
 | 
				
			||||||
    fileServer.serve(request, response);
 | 
					  etag: false,
 | 
				
			||||||
  }).resume();
 | 
					  extensions: ['html'],
 | 
				
			||||||
}).listen(8080);
 | 
					  maxAge: '1d',
 | 
				
			||||||
 | 
					  redirect: false,
 | 
				
			||||||
 | 
					  setHeaders: (res, path, stat) => {
 | 
				
			||||||
 | 
					    res.set('x-timestamp', Date.now());
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					}));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					app.listen(port, () => {
 | 
				
			||||||
 | 
					  console.log(`Serving on http://localhost:${port}`);
 | 
				
			||||||
 | 
					  console.log('Should be proxied to https://basking.wroten.me/');
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					app.route(apiPrefix + '/builddate').get((req, res) => {
 | 
				
			||||||
 | 
					  fs.readFile(path.join(__dirname, 'data/json', 'date.json'), 'utf8', (err, json) => {
 | 
				
			||||||
 | 
					    if (err) { throw new Error(err); }
 | 
				
			||||||
 | 
					    res.json(JSON.parse(json));
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
console.log('Serving on http://localhost:8080');
 | 
					 | 
				
			||||||
console.log('Should be proxied to https://basking.wroten.me/');
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,7 +13,7 @@ module.exports = async function(useTestData = false) {
 | 
				
			||||||
      pretty: date.toDateString(),
 | 
					      pretty: date.toDateString(),
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fs.writeFile(path.join(__dirname, 'data/json/real', 'date.json'), jsonString, err => {
 | 
					    fs.writeFile(path.join(__dirname, 'data/json', 'date.json'), jsonString, err => {
 | 
				
			||||||
      if (err) throw err;
 | 
					      if (err) throw err;
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@ module.exports = async function(useTestData = false) {
 | 
				
			||||||
      capacity,
 | 
					      capacity,
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fs.writeFile(path.join(__dirname, 'data/json/real', 'diskspace.json'), jsonString, err => {
 | 
					    fs.writeFile(path.join(__dirname, 'data/json', 'diskspace.json'), jsonString, err => {
 | 
				
			||||||
      if (err) throw err;
 | 
					      if (err) throw err;
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										457
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										457
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							| 
						 | 
					@ -4,55 +4,456 @@
 | 
				
			||||||
  "lockfileVersion": 1,
 | 
					  "lockfileVersion": 1,
 | 
				
			||||||
  "requires": true,
 | 
					  "requires": true,
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "colors": {
 | 
					    "accepts": {
 | 
				
			||||||
      "version": "1.3.3",
 | 
					      "version": "1.3.7",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
 | 
				
			||||||
      "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==",
 | 
					      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "mime-types": "~2.1.24",
 | 
				
			||||||
 | 
					        "negotiator": "0.6.2"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "array-flatten": {
 | 
				
			||||||
 | 
					      "version": "1.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "axios": {
 | 
				
			||||||
 | 
					      "version": "0.18.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "follow-redirects": "^1.3.0",
 | 
				
			||||||
 | 
					        "is-buffer": "^1.1.5"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "body-parser": {
 | 
				
			||||||
 | 
					      "version": "1.18.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "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=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "content-disposition": {
 | 
				
			||||||
 | 
					      "version": "0.5.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "content-type": {
 | 
				
			||||||
 | 
					      "version": "1.0.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "cookie": {
 | 
				
			||||||
 | 
					      "version": "0.3.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "cookie-signature": {
 | 
				
			||||||
 | 
					      "version": "1.0.6",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "debug": {
 | 
				
			||||||
 | 
					      "version": "2.6.9",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "ms": "2.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "depd": {
 | 
				
			||||||
 | 
					      "version": "1.1.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "destroy": {
 | 
				
			||||||
 | 
					      "version": "1.0.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "ee-first": {
 | 
				
			||||||
 | 
					      "version": "1.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "encodeurl": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "escape-html": {
 | 
				
			||||||
 | 
					      "version": "1.0.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "etag": {
 | 
				
			||||||
 | 
					      "version": "1.8.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "express": {
 | 
				
			||||||
 | 
					      "version": "4.16.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "accepts": "~1.3.5",
 | 
				
			||||||
 | 
					        "array-flatten": "1.1.1",
 | 
				
			||||||
 | 
					        "body-parser": "1.18.3",
 | 
				
			||||||
 | 
					        "content-disposition": "0.5.2",
 | 
				
			||||||
 | 
					        "content-type": "~1.0.4",
 | 
				
			||||||
 | 
					        "cookie": "0.3.1",
 | 
				
			||||||
 | 
					        "cookie-signature": "1.0.6",
 | 
				
			||||||
 | 
					        "debug": "2.6.9",
 | 
				
			||||||
 | 
					        "depd": "~1.1.2",
 | 
				
			||||||
 | 
					        "encodeurl": "~1.0.2",
 | 
				
			||||||
 | 
					        "escape-html": "~1.0.3",
 | 
				
			||||||
 | 
					        "etag": "~1.8.1",
 | 
				
			||||||
 | 
					        "finalhandler": "1.1.1",
 | 
				
			||||||
 | 
					        "fresh": "0.5.2",
 | 
				
			||||||
 | 
					        "merge-descriptors": "1.0.1",
 | 
				
			||||||
 | 
					        "methods": "~1.1.2",
 | 
				
			||||||
 | 
					        "on-finished": "~2.3.0",
 | 
				
			||||||
 | 
					        "parseurl": "~1.3.2",
 | 
				
			||||||
 | 
					        "path-to-regexp": "0.1.7",
 | 
				
			||||||
 | 
					        "proxy-addr": "~2.0.4",
 | 
				
			||||||
 | 
					        "qs": "6.5.2",
 | 
				
			||||||
 | 
					        "range-parser": "~1.2.0",
 | 
				
			||||||
 | 
					        "safe-buffer": "5.1.2",
 | 
				
			||||||
 | 
					        "send": "0.16.2",
 | 
				
			||||||
 | 
					        "serve-static": "1.13.2",
 | 
				
			||||||
 | 
					        "setprototypeof": "1.1.0",
 | 
				
			||||||
 | 
					        "statuses": "~1.4.0",
 | 
				
			||||||
 | 
					        "type-is": "~1.6.16",
 | 
				
			||||||
 | 
					        "utils-merge": "1.0.1",
 | 
				
			||||||
 | 
					        "vary": "~1.1.2"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "finalhandler": {
 | 
				
			||||||
 | 
					      "version": "1.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "debug": "2.6.9",
 | 
				
			||||||
 | 
					        "encodeurl": "~1.0.2",
 | 
				
			||||||
 | 
					        "escape-html": "~1.0.3",
 | 
				
			||||||
 | 
					        "on-finished": "~2.3.0",
 | 
				
			||||||
 | 
					        "parseurl": "~1.3.2",
 | 
				
			||||||
 | 
					        "statuses": "~1.4.0",
 | 
				
			||||||
 | 
					        "unpipe": "~1.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "follow-redirects": {
 | 
				
			||||||
 | 
					      "version": "1.7.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "debug": "^3.2.6"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "debug": {
 | 
				
			||||||
 | 
					          "version": "3.2.6",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
 | 
				
			||||||
 | 
					          "dev": true,
 | 
				
			||||||
 | 
					          "requires": {
 | 
				
			||||||
 | 
					            "ms": "^2.1.1"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "ms": {
 | 
				
			||||||
 | 
					          "version": "2.1.1",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
 | 
				
			||||||
 | 
					          "dev": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "forwarded": {
 | 
				
			||||||
 | 
					      "version": "0.1.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "fresh": {
 | 
				
			||||||
 | 
					      "version": "0.5.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "http-errors": {
 | 
				
			||||||
 | 
					      "version": "1.6.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "depd": "~1.1.2",
 | 
				
			||||||
 | 
					        "inherits": "2.0.3",
 | 
				
			||||||
 | 
					        "setprototypeof": "1.1.0",
 | 
				
			||||||
 | 
					        "statuses": ">= 1.4.0 < 2"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "iconv-lite": {
 | 
				
			||||||
 | 
					      "version": "0.4.23",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "safer-buffer": ">= 2.1.2 < 3"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "inherits": {
 | 
				
			||||||
 | 
					      "version": "2.0.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "ipaddr.js": {
 | 
				
			||||||
 | 
					      "version": "1.9.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "is-buffer": {
 | 
				
			||||||
 | 
					      "version": "1.1.6",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "media-typer": {
 | 
				
			||||||
 | 
					      "version": "0.3.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "merge-descriptors": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "methods": {
 | 
				
			||||||
 | 
					      "version": "1.1.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "mime": {
 | 
					    "mime": {
 | 
				
			||||||
      "version": "1.6.0",
 | 
					      "version": "1.4.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
 | 
					      "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "minimist": {
 | 
					    "mime-db": {
 | 
				
			||||||
      "version": "0.0.10",
 | 
					      "version": "1.40.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
 | 
				
			||||||
      "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
 | 
					      "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node-static": {
 | 
					    "mime-types": {
 | 
				
			||||||
      "version": "0.7.11",
 | 
					      "version": "2.1.24",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/node-static/-/node-static-0.7.11.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
 | 
				
			||||||
      "integrity": "sha512-zfWC/gICcqb74D9ndyvxZWaI1jzcoHmf4UTHWQchBNuNMxdBLJMDiUgZ1tjGLEIe/BMhj2DxKD8HOuc2062pDQ==",
 | 
					      "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "colors": ">=0.6.0",
 | 
					        "mime-db": "1.40.0"
 | 
				
			||||||
        "mime": "^1.2.9",
 | 
					 | 
				
			||||||
        "optimist": ">=0.3.4"
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "optimist": {
 | 
					    "ms": {
 | 
				
			||||||
      "version": "0.6.1",
 | 
					      "version": "2.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
 | 
				
			||||||
      "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
 | 
					      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "negotiator": {
 | 
				
			||||||
 | 
					      "version": "0.6.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "on-finished": {
 | 
				
			||||||
 | 
					      "version": "2.3.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "minimist": "~0.0.1",
 | 
					        "ee-first": "1.1.1"
 | 
				
			||||||
        "wordwrap": "~0.0.2"
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "parseurl": {
 | 
				
			||||||
 | 
					      "version": "1.3.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "path-to-regexp": {
 | 
				
			||||||
 | 
					      "version": "0.1.7",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "proxy-addr": {
 | 
				
			||||||
 | 
					      "version": "2.0.5",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "forwarded": "~0.1.2",
 | 
				
			||||||
 | 
					        "ipaddr.js": "1.9.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "qs": {
 | 
				
			||||||
 | 
					      "version": "6.5.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "range-parser": {
 | 
				
			||||||
 | 
					      "version": "1.2.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "raw-body": {
 | 
				
			||||||
 | 
					      "version": "2.3.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "bytes": "3.0.0",
 | 
				
			||||||
 | 
					        "http-errors": "1.6.3",
 | 
				
			||||||
 | 
					        "iconv-lite": "0.4.23",
 | 
				
			||||||
 | 
					        "unpipe": "1.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "safe-buffer": {
 | 
				
			||||||
 | 
					      "version": "5.1.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "safer-buffer": {
 | 
				
			||||||
 | 
					      "version": "2.1.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "send": {
 | 
				
			||||||
 | 
					      "version": "0.16.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "debug": "2.6.9",
 | 
				
			||||||
 | 
					        "depd": "~1.1.2",
 | 
				
			||||||
 | 
					        "destroy": "~1.0.4",
 | 
				
			||||||
 | 
					        "encodeurl": "~1.0.2",
 | 
				
			||||||
 | 
					        "escape-html": "~1.0.3",
 | 
				
			||||||
 | 
					        "etag": "~1.8.1",
 | 
				
			||||||
 | 
					        "fresh": "0.5.2",
 | 
				
			||||||
 | 
					        "http-errors": "~1.6.2",
 | 
				
			||||||
 | 
					        "mime": "1.4.1",
 | 
				
			||||||
 | 
					        "ms": "2.0.0",
 | 
				
			||||||
 | 
					        "on-finished": "~2.3.0",
 | 
				
			||||||
 | 
					        "range-parser": "~1.2.0",
 | 
				
			||||||
 | 
					        "statuses": "~1.4.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "serve-static": {
 | 
				
			||||||
 | 
					      "version": "1.13.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "encodeurl": "~1.0.2",
 | 
				
			||||||
 | 
					        "escape-html": "~1.0.3",
 | 
				
			||||||
 | 
					        "parseurl": "~1.3.2",
 | 
				
			||||||
 | 
					        "send": "0.16.2"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "setprototypeof": {
 | 
				
			||||||
 | 
					      "version": "1.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "statuses": {
 | 
				
			||||||
 | 
					      "version": "1.4.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "type-is": {
 | 
				
			||||||
 | 
					      "version": "1.6.18",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "media-typer": "0.3.0",
 | 
				
			||||||
 | 
					        "mime-types": "~2.1.24"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "unpipe": {
 | 
				
			||||||
 | 
					      "version": "1.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "utils-merge": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "vary": {
 | 
				
			||||||
 | 
					      "version": "1.1.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "vital-css": {
 | 
					    "vital-css": {
 | 
				
			||||||
      "version": "2.2.1",
 | 
					      "version": "2.2.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/vital-css/-/vital-css-2.2.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/vital-css/-/vital-css-2.2.1.tgz",
 | 
				
			||||||
      "integrity": "sha1-I+BVkd94LM8SVfq7jrrGpkz3xc8=",
 | 
					      "integrity": "sha1-I+BVkd94LM8SVfq7jrrGpkz3xc8=",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "wordwrap": {
 | 
					    "vue": {
 | 
				
			||||||
      "version": "0.0.3",
 | 
					      "version": "2.6.10",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz",
 | 
				
			||||||
      "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
 | 
					      "integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,9 @@
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "homepage": "https://github.com/sharpshark28/basking-dashboard#readme",
 | 
					  "homepage": "https://github.com/sharpshark28/basking-dashboard#readme",
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "node-static": "^0.7.11",
 | 
					    "axios": "^0.18.0",
 | 
				
			||||||
    "vital-css": "^2.2.1"
 | 
					    "express": "^4.16.4",
 | 
				
			||||||
 | 
					    "vital-css": "^2.2.1",
 | 
				
			||||||
 | 
					    "vue": "^2.6.10"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,21 +8,38 @@
 | 
				
			||||||
  <link rel="stylesheet" type="text/css" href="./assets/styles.css" />
 | 
					  <link rel="stylesheet" type="text/css" href="./assets/styles.css" />
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
  <main>
 | 
					  <script src="./assets/axios.min.js"></script>
 | 
				
			||||||
    <div class="autogrid">
 | 
					  <script src="./assets/vue.min.js"></script>
 | 
				
			||||||
      <section class="col">
 | 
					 | 
				
			||||||
        <div class="feed-card">
 | 
					 | 
				
			||||||
          <img src="assets/emby.png" alt="" />
 | 
					 | 
				
			||||||
          <h3><a href="/emby">Emby</a></h3>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
      </section>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <section class="col">
 | 
					  <div id="app">
 | 
				
			||||||
        <div class="feed-card">
 | 
					    <main>
 | 
				
			||||||
          <h3><a href="/portainer">Portainer</a></h3>
 | 
					      <div class="autogrid">
 | 
				
			||||||
        </div>
 | 
					        <section class="col">
 | 
				
			||||||
 | 
					          <div class="feed-card">
 | 
				
			||||||
 | 
					            <img src="assets/emby.png" alt="" class="fadein" />
 | 
				
			||||||
 | 
					            <h3><a href="/emby">Emby</a></h3>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <section class="col">
 | 
				
			||||||
 | 
					          <div class="feed-card">
 | 
				
			||||||
 | 
					            <h3><a href="/portainer">Portainer</a></h3>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </section>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </main>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <footer class="row">
 | 
				
			||||||
 | 
					      <section class="section">
 | 
				
			||||||
 | 
					        <small class="small">
 | 
				
			||||||
 | 
					          Last Built:
 | 
				
			||||||
 | 
					          <span v-if="fetchingLastBuildDate" class="load smallest"></span>
 | 
				
			||||||
 | 
					          <span v-else class="fadein">{{lastBuildDate}}</span>
 | 
				
			||||||
 | 
					        </small>
 | 
				
			||||||
      </section>
 | 
					      </section>
 | 
				
			||||||
    </div>
 | 
					    </footer>
 | 
				
			||||||
  </main>
 | 
					  </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <script src="./assets/app.js"></script>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										20
									
								
								src/assets/app.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/assets/app.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,20 @@
 | 
				
			||||||
 | 
					new Vue({
 | 
				
			||||||
 | 
					  el: '#app',
 | 
				
			||||||
 | 
					  data: {
 | 
				
			||||||
 | 
					    lastBuildDate: '',
 | 
				
			||||||
 | 
					    fetchingLastBuildDate: true,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  created() {
 | 
				
			||||||
 | 
					    this.fetchLastBuildDate();
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    async fetchLastBuildDate() {
 | 
				
			||||||
 | 
					      this.fetchingLastBuildDate = true;
 | 
				
			||||||
 | 
					      try {
 | 
				
			||||||
 | 
					        let { data } = await axios.get('/api/builddate');
 | 
				
			||||||
 | 
					        this.lastBuildDate = data.pretty;
 | 
				
			||||||
 | 
					        this.fetchingLastBuildDate = false;
 | 
				
			||||||
 | 
					      } catch (err) { throw new Error(err); }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					.fadein {
 | 
				
			||||||
 | 
					  animation: fadein 1s;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@keyframes fadein {
 | 
				
			||||||
 | 
					  from { opacity: 0; }
 | 
				
			||||||
 | 
					  to   { opacity: 1; }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -8,21 +8,38 @@
 | 
				
			||||||
  <link rel="stylesheet" type="text/css" href="./assets/styles.css" />
 | 
					  <link rel="stylesheet" type="text/css" href="./assets/styles.css" />
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
  <main>
 | 
					  <script src="./assets/axios.min.js"></script>
 | 
				
			||||||
    <div class="autogrid">
 | 
					  <script src="./assets/vue.min.js"></script>
 | 
				
			||||||
      <section class="col">
 | 
					 | 
				
			||||||
        <div class="feed-card">
 | 
					 | 
				
			||||||
          <img src="assets/emby.png" alt="" />
 | 
					 | 
				
			||||||
          <h3><a href="/emby">Emby</a></h3>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
      </section>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <section class="col">
 | 
					  <div id="app">
 | 
				
			||||||
        <div class="feed-card">
 | 
					    <main>
 | 
				
			||||||
          <h3><a href="/portainer">Portainer</a></h3>
 | 
					      <div class="autogrid">
 | 
				
			||||||
        </div>
 | 
					        <section class="col">
 | 
				
			||||||
 | 
					          <div class="feed-card">
 | 
				
			||||||
 | 
					            <img src="assets/emby.png" alt="" class="fadein" />
 | 
				
			||||||
 | 
					            <h3><a href="/emby">Emby</a></h3>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <section class="col">
 | 
				
			||||||
 | 
					          <div class="feed-card">
 | 
				
			||||||
 | 
					            <h3><a href="/portainer">Portainer</a></h3>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </section>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </main>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <footer class="row">
 | 
				
			||||||
 | 
					      <section class="section">
 | 
				
			||||||
 | 
					        <small class="small">
 | 
				
			||||||
 | 
					          Last Built:
 | 
				
			||||||
 | 
					          <span v-if="fetchingLastBuildDate" class="load smallest"></span>
 | 
				
			||||||
 | 
					          <span v-else class="fadein">{{lastBuildDate}}</span>
 | 
				
			||||||
 | 
					        </small>
 | 
				
			||||||
      </section>
 | 
					      </section>
 | 
				
			||||||
    </div>
 | 
					    </footer>
 | 
				
			||||||
  </main>
 | 
					  </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <script src="./assets/app.js"></script>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue