From f8ddb3924fab877375676d17d8accee57a327018 Mon Sep 17 00:00:00 2001 From: Jack Foltz Date: Mon, 31 Dec 2018 14:45:37 -0500 Subject: [PATCH] Only use one browserify bundle --- app/public/css/form.css | 109 ------------ app/public/css/form.min.css | 1 - app/public/css/home.css | 155 ----------------- app/public/css/home.min.css | 1 - app/public/css/index.css | 45 ----- app/public/css/index.min.css | 1 - app/public/css/navbar.css | 67 ------- app/public/css/panel.css | 148 ---------------- app/public/css/panel.min.css | 1 - app/public/css/subpanel/dash.css | 47 ----- app/public/css/subpanel/keys.css | 105 ----------- gulpfile.js | 124 +++++-------- package-lock.json | 368 ++++++++++++++++++++++++++++++++++++++- package.json | 4 +- public/views/home.html | 9 +- public/views/index.html | 4 +- public/views/login.html | 2 +- public/views/panel.html | 4 +- public/views/panel/dash.html | 8 +- public/views/register.html | 2 +- 20 files changed, 429 insertions(+), 776 deletions(-) delete mode 100644 app/public/css/form.css delete mode 100644 app/public/css/form.min.css delete mode 100644 app/public/css/home.css delete mode 100644 app/public/css/home.min.css delete mode 100644 app/public/css/index.css delete mode 100644 app/public/css/index.min.css delete mode 100644 app/public/css/navbar.css delete mode 100644 app/public/css/panel.css delete mode 100644 app/public/css/panel.min.css delete mode 100644 app/public/css/subpanel/dash.css delete mode 100644 app/public/css/subpanel/keys.css diff --git a/app/public/css/form.css b/app/public/css/form.css deleted file mode 100644 index b344f2d..0000000 --- a/app/public/css/form.css +++ /dev/null @@ -1,109 +0,0 @@ -body { - background-color: #000000; - margin: 0; - color: #d3d3d3; - font-family: 'Roboto', sans-serif; -} - -::-moz-focus-inner { - border: 0; -} - -.form { - margin: 50px auto; - width: 300px; -} - -.form h3 { - background-color: #000; - border: 2px solid #2a9fd6; - border-radius: 5px 5px 0 0; - color: #eee; - font-size: 18px; - padding: 20px; - margin: 0; - text-align: center; - text-transform: uppercase; -} - -fieldset { - border: 2px solid #2a9fd6; - border-top: none; - margin: 0; - background: #000; - border-radius: 0 0 5px 5px; - padding: 20px; - position: relative; -} - -fieldset:before { - border-bottom: 2px solid #2a9fd6; - border-right: 2px solid #2a9fd6; - background-color: #000; - content: ""; - width: 8px; - height: 8px; - left: 50%; - margin: -4px 0 0 -4px; - position: absolute; - top: 0; - transform: rotate(45deg) translateY(-2px); -} - -.form input { - display: block; - font-size: 14px; - background: #000; - color: #d3d3d3; - border: 1px solid #999; - width: 226px; - padding: 12px 12px; - margin: auto auto 5px; -} - -button { - background: #000; - border: 2px solid #2a9fd6; - border-radius: 4px; - color: #d3d3d3; - cursor: pointer; - display: block; - padding: 10px 30px; - margin: 20px auto auto; - transition: background 0.25s, border-color 0.25s; -} - -button:hover { - background: #2a9fd6; - color: #fff; - text-decoration: none; - outline: none; -} - -button.shake { - background: #ff6666; - border-color: #ff6666; - color: #fff; - animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both; - transform: translate3d(0, 0, 0); - backface-visibility: hidden; - perspective: 1000px; -} - -@keyframes shake { - 10%, 90% { - transform: translate3d(-1px, 0, 0); - } - - 20%, 80% { - transform: translate3d(2px, 0, 0); - } - - 30%, 50%, 70% { - transform: translate3d(-4px, 0, 0); - } - - 40%, 60% { - transform: translate3d(4px, 0, 0); - } -} diff --git a/app/public/css/form.min.css b/app/public/css/form.min.css deleted file mode 100644 index dd12058..0000000 --- a/app/public/css/form.min.css +++ /dev/null @@ -1 +0,0 @@ -body{background-color:#000;margin:0;color:#d3d3d3;font-family:Roboto,sans-serif}::-moz-focus-inner{border:0}.form{margin:50px auto;width:300px}.form h3{background-color:#000;border:2px solid #2a9fd6;border-radius:5px 5px 0 0;color:#eee;font-size:18px;padding:20px;margin:0;text-align:center;text-transform:uppercase}fieldset{border:2px solid #2a9fd6;border-top:none;margin:0;background:#000;border-radius:0 0 5px 5px;padding:20px;position:relative}fieldset:before{border-bottom:2px solid #2a9fd6;border-right:2px solid #2a9fd6;background-color:#000;content:"";width:8px;height:8px;left:50%;margin:-4px 0 0 -4px;position:absolute;top:0;transform:rotate(45deg) translateY(-2px)}.form input{display:block;font-size:14px;background:#000;color:#d3d3d3;border:1px solid #999;width:226px;padding:12px 12px;margin:auto;margin-bottom:5px}button{background:#000;border:2px solid #2a9fd6;border-radius:4px;color:#d3d3d3;cursor:pointer;display:block;padding:10px 30px;margin:auto;margin-top:20px;transition:background .25s}button:hover{background:#2a9fd6;color:#fff;text-decoration:none;outline:0} \ No newline at end of file diff --git a/app/public/css/home.css b/app/public/css/home.css deleted file mode 100644 index 794211a..0000000 --- a/app/public/css/home.css +++ /dev/null @@ -1,155 +0,0 @@ -body { - background-color: #060606; - color: #D3D3D3; - font-family: 'Roboto', sans-serif; - font-size: 14px; - height: 100%; - line-height: 20px; - margin: 0; - padding-top: 20px; - padding-bottom: 40px; -} - -#container { - max-width: 700px; - text-align: center; - display: flex; - flex-direction: column; - margin: auto; -} - -a { - color: #0078B4; - text-decoration: none; - transition: color 0.25s; -} - -a:hover, -a:focus, -a:active { - color: #005580; -} - - -h1 { - font-size: 72px; - font-weight: bold; -} -.upload { - margin: 60px 0; -} -.btn { - font-family: 'Roboto', sans-serif; - background: #000000; - border: 2px solid #2A9FD6; - border-radius: 4px; - color: #D3D3D3; - cursor: pointer; - display: inline-block; - font-size: 24px; - padding: 28px 48px; - transition: background-color 0.25s, width 0.5s, height 0.5s; -} -.btn:hover { - background-color: #2A9FD6; - color: #FFFFFF; - text-decoration: none; - outline: none; -} - -:focus { - outline: none; -} -::-moz-focus-inner {border: 0;} - -#upload-filelist { - list-style-type: none; - margin: 20px 50px; - padding: 0; - text-align: left; -} - - - -#upload-filelist > li { - margin-top: 5px; - overflow: hidden; - display: flex; -} - -.list-name { - margin-top: 6px; - overflow: hidden; - max-width: 70%; - text-overflow: ellipsis; - white-space: nowrap; -} - -.list-url { - font-family: 'Roboto Mono', monospace; - margin-left: auto; -} - -.list-progress { - margin: 10px 30px 10px 30px; - flex-grow: 2; -} - - -.list-url a { - vertical-align: super; - color: #5C5C5C; -} -.list-url a:hover { - color: #D3D3D3; -} - -.list-url-clipboard-btn { - border: 2px solid #222222; - height: 32px; - margin-left: 5px; - border-radius: 3px; - cursor: pointer; - background-color: #5C5C5C; - transition: background-color 0.25s; -} -.list-url-clipboard-btn:hover, -.list-url-clipboard-btn:focus { - background-color: #ABABAB; - outline: none; -} - -.list-err { - font-family: 'Roboto Mono', monospace; - margin-left: auto; - color: #ff6666; - vertical-align: super; -} - - - -nav > ul, -nav a { - color: #32809F; - list-style: none; - margin: 0; - padding: 0; - text-align: center; -} - -nav > ul > li { - display: inline-block; - margin: 0; - padding: 0; - cursor: default; -} - -nav > ul > li:after { - content: "|"; - margin: 0 8px; - opacity: 0.3; -} -nav > ul > li:last-child:after { - content: ""; - margin: 0; -} \ No newline at end of file diff --git a/app/public/css/home.min.css b/app/public/css/home.min.css deleted file mode 100644 index 6d3536a..0000000 --- a/app/public/css/home.min.css +++ /dev/null @@ -1 +0,0 @@ -body{background-color:#060606;color:#d3d3d3;font-family:Roboto,sans-serif;font-size:14px;height:100%;line-height:20px;margin:0;padding-top:20px;padding-bottom:40px}#container{max-width:700px;text-align:center;display:flex;flex-direction:column;margin:auto}a{color:#0078b4;text-decoration:none;transition:color .25s}a:active,a:focus,a:hover{color:#005580}h1{font-size:72px;font-weight:700}.upload{margin:60px 0}.btn{font-family:Roboto,sans-serif;background:#000;border:2px solid #2a9fd6;border-radius:4px;color:#d3d3d3;cursor:pointer;display:inline-block;font-size:24px;padding:28px 48px;transition:background-color .25s,width .5s,height .5s}.btn:hover{background-color:#2a9fd6;color:#fff;text-decoration:none;outline:0}:focus{outline:0}::-moz-focus-inner{border:0}#upload-filelist{list-style-type:none;margin:20px 50px;padding:0;text-align:left}#upload-filelist>li{margin-top:5px;overflow:hidden;display:flex}.list-name{margin-top:6px;overflow:hidden;max-width:70%;text-overflow:ellipsis;white-space:nowrap}.list-url{font-family:'Roboto Mono',monospace;margin-left:auto}.list-progress{margin:10px 30px 10px 30px;flex-grow:2}.list-url a{vertical-align:super;color:#5c5c5c}.list-url a:hover{color:#d3d3d3}.list-url-clipboard-btn{border:2px solid #222;height:32px;margin-left:5px;border-radius:3px;cursor:pointer;background-color:#5c5c5c;transition:background-color .25s}.list-url-clipboard-btn:focus,.list-url-clipboard-btn:hover{background-color:#ababab;outline:0}.list-err{font-family:'Roboto Mono',monospace;margin-left:auto;color:#f66;vertical-align:super}nav a,nav>ul{color:#32809f;list-style:none;margin:0;padding:0;text-align:center}nav>ul>li{display:inline-block;margin:0;padding:0;cursor:default}nav>ul>li:after{content:"|";margin:0 8px;opacity:.3}nav>ul>li:last-child:after{content:"";margin:0} \ No newline at end of file diff --git a/app/public/css/index.css b/app/public/css/index.css deleted file mode 100644 index 2bcbff1..0000000 --- a/app/public/css/index.css +++ /dev/null @@ -1,45 +0,0 @@ -* { - margin: 0; -} - -body { - background: #000; -} - -a { - position: absolute; - top: 40px; - left: 48%; - opacity: 0.1; - height: 30px; - width: 30px; - z-index: 100; - cursor: default; -} - -a img { - width: 30px; - height: 30px; -} - -canvas { - position: absolute; - top: 0; - left: 0; -} - -video { - position: fixed; - top: 50%; - left: 50%; - min-width: 100%; - min-height: 100%; - z-index: -100; - transform: translateX(-50%) translateY(-50%); - background-size: cover; - transition: 1s opacity; -} - -#buffer { - display: none; -} \ No newline at end of file diff --git a/app/public/css/index.min.css b/app/public/css/index.min.css deleted file mode 100644 index 36dc467..0000000 --- a/app/public/css/index.min.css +++ /dev/null @@ -1 +0,0 @@ -*{margin:0}body{background:#000}a{position:absolute;top:5px;left:48%;opacity:.1;height:30px;width:30px;z-index:100;cursor:default}a img{width:30px;height:30px}canvas{position:absolute;top:0;left:0}video{position:fixed;top:50%;left:50%;min-width:100%;min-height:100%;width:1920px;height:760px;z-index:-100;transform:translateX(-50%) translateY(-50%);background-size:cover;transition:1s opacity}#buffer{display:none} \ No newline at end of file diff --git a/app/public/css/navbar.css b/app/public/css/navbar.css deleted file mode 100644 index 6cffe94..0000000 --- a/app/public/css/navbar.css +++ /dev/null @@ -1,67 +0,0 @@ -/* SHIMAPAN title */ -.sidebar-title { - grid-row-start: 1; - grid-row-end: 1; - place-self: center; - - cursor: pointer; - - display: flex; - justify-content: center; - align-items: center; - - width: 200px; - height: 60px; - /*border-bottom: 1px solid #999;*/ -} -.sidebar-title span { - color: #2a9fd6; - font-size: 20px; - text-transform: uppercase; - letter-spacing: 6px; -} - -/* Nav Container */ -.sidebar { - grid-row-start: 2; - grid-row-end: 2; -} - -/* Nav Elements */ -.nav li { - cursor: pointer; - display: flex; - align-items: center; -} -.nav li a { - flex: 1; - outline: none; - padding: 20px 0 20px; - margin-left: 20px; - font-size: 14px; - color: #666; - text-decoration: none; -} -.nav li span { - background: #0d0d0d; - width: 35px; - height: 35px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - margin-left: 20px; -} -.nav-icon { - font: 14px fontawesome; - color: #fff; -} -.nav li a:hover { - color: #fff; -} -.nav li a.active { - color: #fff; -} - -/* Prevent annoying outline on firefox */ -::-moz-focus-inner {border: 0;} diff --git a/app/public/css/panel.css b/app/public/css/panel.css deleted file mode 100644 index 334606a..0000000 --- a/app/public/css/panel.css +++ /dev/null @@ -1,148 +0,0 @@ -@import url('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'); -@import url('https://fonts.googleapis.com/css?family=Roboto'); -@import url('https://fonts.googleapis.com/css?family=Roboto+Mono'); - -@import "navbar.css"; - -/* Subpanels */ -@import "subpanel/dash.css"; -@import "subpanel/keys.css"; - -*, *:before, *:after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font: 12px 'Roboto', sans-serif; - color: #eeeeee; - background: #020202; -} - -.container { - display: grid; - grid-template-columns: 240px auto; - grid-template-rows: 60px auto; - width: 100vw; - height: 100vh; -} - -.view { - grid-row-start: 2; - grid-column-start: 2; - background: #121212; - padding: 20px; - border-left: 1px solid #2a9fd6; - border-top: 1px solid #2a9fd6; -} - - -.inner { - display: flex; - flex-direction: column; -} - -.modal, -.modal-box { - z-index: 900; -} - -.modal-sandbox { - position: fixed; - width: 100%; - height: 100%; - top: 0; - left: 0; - background: transparent; -} - -.modal { - display: none; - position: fixed; - width: 100%; - height: 100%; - left: 0; - top: 0; - background: rgb(0,0,0); - background: rgba(0,0,0,.8); - overflow: auto; -} - -.modal-box { - position: relative; - width: 80%; - max-width: 700px; - margin: 60px auto; - animation-name: modalbox; - animation-duration: .3s; - animation-timing-function: ease; -} - -.modal-header { - border: 1px solid #2a9fd6; - border-radius: 8px 8px 0 0; - display: flex; - flex-direction: row; - justify-content: space-between; - padding: 20px 40px; - background: #000; - color: #ffffff; - overflow: hidden; -} - -.modal-body { - border: 1px solid #2a9fd6; - border-top: none; - background: #000; - padding: 30px; -} - -.modal-footer { - display: flex; - justify-content: flex-end; - border: 1px solid #2a9fd6; - border-radius: 0 0 8px 8px; - border-top: none; - background: #000; - padding: 20px; -} - -.close-modal { - text-align: right; - font-size: 24px; - cursor: pointer; -} - -@keyframes modalbox { - 0% { - top: -250px; - opacity: 0; - } - 100% { - top: 0; - opacity: 1; - } -} - -button { - margin-left: 20px; - color: #d3d3d3; - background: #000; - border: 2px solid #2a9fd6; - border-radius: 5px; - padding: 10px; - cursor: pointer; - transition: background-color 0.25s; -} - -button:hover { - color: #fff; - background-color: #2a9fd6; - text-decoration: none; - outline: none; -} - -::-moz-focus-inner { - outline: none; -} diff --git a/app/public/css/panel.min.css b/app/public/css/panel.min.css deleted file mode 100644 index 9c6728c..0000000 --- a/app/public/css/panel.min.css +++ /dev/null @@ -1 +0,0 @@ -@import url(https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css);@import url(https://fonts.googleapis.com/css?family=Roboto);@import url(https://fonts.googleapis.com/css?family=Roboto+Mono);*,:after,:before{margin:0;padding:0;box-sizing:border-box}body,html{height:100vh}body{font:600 14px Roboto,sans-serif;color:#000;background:#000;overflow-x:hidden}.container{display:flex;min-height:100%}.sidebar{position:absolute;width:220px}.content{flex:1;padding:30px;background:#444;box-shadow:0 0 5px rgba(0,0,0,1);transform:translate3d(0,0,0);transition:transform .3s;color:#ccc}.content.isOpen{transform:translate3d(220px,0,0)}.button{position:relative;width:120px;height:40px;cursor:pointer;margin:10px 0 40px 0;padding:15px;transition-property:opacity,filter;transition-duration:.15s;text-transform:none}.button-inner{left:0;top:50%;display:inline-block;margin-top:-2px}.button-inner,.button-inner::after,.button-inner::before{background-color:#fff;position:absolute;width:40px;height:4px;transition:transform .15s ease;border-radius:4px}.button-inner::after,.button-inner::before{content:"";display:block}.button-inner::before{top:-10px}.button-inner::after{bottom:-10px}.button.isOpen .button-inner::before{transform:translate3d(-8px,0,0) rotate(-45deg) scale(.7,1)}.button.isOpen .button-inner::after{transform:translate3d(-8px,0,0) rotate(45deg) scale(.7,1)}.button-label{position:absolute;top:6px;left:50px;font-size:24px;color:#fff}.sidebar-title{color:#2a9fd6;cursor:pointer;font-size:16px;line-height:50px;text-align:center;text-transform:uppercase;letter-spacing:7px;border-bottom:1px solid #222;background:#2a2a2a}.nav li a{outline:0;position:relative;display:block;padding:20px 0 20px 50px;font-size:14px;color:#eee;background:#333;border-bottom:1px solid #222;text-decoration:none}.nav li a:before{font:14px fontawesome;position:absolute;top:19px;left:20px}.nav li:nth-child(1) a:before{content:'\f00a'}.nav li:nth-child(2) a:before{content:'\f002'}.nav li:nth-child(3) a:before{content:'\f084'}.nav li:nth-child(4) a:before{content:'\f0e0'}.nav li:nth-child(5) a:before{content:'\f0c0'}.nav li:nth-child(6) a:before{content:'\f233'}.nav li:nth-child(7) a:before{content:'\f023';left:23px}.nav li a:hover{background:#444}::-moz-focus-inner{border:0}.nav li a.active{box-shadow:inset 5px 0 0 #2a9fd6,inset 6px 0 0 #222;background:#444}.inner{display:flex;flex-direction:column}.keys{display:flex;flex-direction:row;flex-wrap:wrap}.key{background:#555;border:3px solid #2a9fd6;border-radius:5px;box-shadow:5px 5px 10px #000;margin:20px;width:300px;height:100px;cursor:pointer;display:flex;justify-content:flex-start;flex-direction:row;transition:box-shadow .2s}.key:hover{box-shadow:0 0 10px #eee}.key i{font-size:48px;margin:auto 0 auto 20px}.key span{font-size:16px;vertical-align:center;margin:auto;-moz-user-select:none;user-select:none}.modal{display:block;position:fixed;z-index:1;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.4)}.modal-header{margin:15% auto;padding:20px;border:1px solid #888;width:80%}.modal-body{margin:auto;padding:20px;border:1px solid #888;width:80%}.modal-footer{margin:auto;padding:20px;border:1px solid #888;width:80%} \ No newline at end of file diff --git a/app/public/css/subpanel/dash.css b/app/public/css/subpanel/dash.css deleted file mode 100644 index 53d5432..0000000 --- a/app/public/css/subpanel/dash.css +++ /dev/null @@ -1,47 +0,0 @@ -.dash-row { - display: flex; - flex-wrap: nowrap; - align-items: center; -} - -.dash-card { - background: #020202; - border-radius: 4px; - padding: 30px; - margin: 5px; - flex-grow: 1; - display: flex; - align-items: center; - justify-content: center; - border: 1px solid #2a9fd6; -} - -#dash-singlestats { - flex-grow: 1; -} -.dash-card.dash-card-singlestat { - justify-content: space-between; -} -.dash-stat { - align-self: flex-start; - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: flex-start; -} -.dash-stat-title { - font-size: 18px; -} -.dash-stat-value { - font-size: 48px; -} -.dash-stat-icon { - color: #2a9fd6; -} - -#dash-historical { - -} -.dash-card.dash-card-graph { - width: 100px; -} \ No newline at end of file diff --git a/app/public/css/subpanel/keys.css b/app/public/css/subpanel/keys.css deleted file mode 100644 index eef03d2..0000000 --- a/app/public/css/subpanel/keys.css +++ /dev/null @@ -1,105 +0,0 @@ -.keys { - display: flex; - flex-direction: row; - flex-wrap: wrap; -} - -.key { - background: #000; - border: 1px solid #2a9fd6; - border-radius: 4px; - box-shadow: 5px 5px 10px #000; - margin: 20px; - width: 300px; - height: 100px; - cursor: pointer; - display: flex; - justify-content: flex-start; - flex-direction: row; - transition: box-shadow 0.2s; - overflow: hidden; -} - -.key:hover { - box-shadow: 0 0 5px #eee; -} - -.key i { - font-size: 48px; - margin: auto 0 auto 20px; -} - -.key span { - font-size: 16px; - vertical-align: center; - margin: auto; - -moz-user-select: none; - user-select: none; -} - -.key-name { - color: #2a9fd6; - font-family: 'Roboto Mono', monospace; -} - -pre { - overflow: auto; - line-height: 1.7em; - font-family: 'Roboto Mono', monospace; - border: 1px solid #666; - border-radius: 4px; - display: block; - padding: 10px; - font-size: 14px; - margin: 10px 0; - background: #222; - color: #2a9fd6; -} - -#createKey { - max-width: 920px; -} - -.btn-del { - text-transform: uppercase; - border: 2px solid #ff6666; - color: #ccc; -} - -.btn-del:hover { - background-color: #ff6666; -} - -#identifier { - font-size: 14px; - background: #222; - color: #d3d3d3; - border: 1px solid #666; - border-radius: 4px; - padding: 10px; - margin: 10px 0; -} - -th { - text-transform: uppercase; - font-weight: bold; - padding: 10px; -} - -td { - padding: 10px; -} - -td input { - vertical-align: middle; -} - -td label { - margin-bottom: 2px; - padding-left: 3px; -} - -em { - text-transform: uppercase; - font-weight: bold; -} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index bc3106a..1f03df0 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,11 +1,16 @@ 'use strict'; const gulp = require('gulp'); -const rename = require('gulp-rename'); -const uglify = require('gulp-uglify-es').default; +const gutil = require('gutil'); + +const watchify = require('watchify'); +const browserify = require('browserify'); + const source = require('vinyl-source-stream'); const buffer = require('vinyl-buffer'); -const browserify = require('browserify'); + +const rename = require('gulp-rename'); +const uglify = require('gulp-uglify-es').default; const es = require('event-stream'); const cleanCSS = require('gulp-clean-css'); const nodemon = require('gulp-nodemon'); @@ -13,91 +18,58 @@ const sourcemaps = require('gulp-sourcemaps'); const path = require('path'); const glob = require('glob'); -gulp.task('start', done => { - nodemon({ - script: 'server.js', - ignore: '*.*' - }); - done(); -}); +let jsFiles = { + src: [ + glob.sync('app/public/services/*.js'), + glob.sync('app/public/panel/**/*.js'), + glob.sync('app/public/shimapan/**/*.js'), + ], + dest: 'shimapan.bundle.js' +}; -gulp.task('watch', () => { - const fileTasks = new Map([ - ['.js', 'BuildJS'], - ['.css', 'BuildCSS'] - ]); +let staticJs = [{ + src: 'app/public/index/typegraph.js', + dest: 'typegraph.min.js' +}]; - nodemon({ - script: 'server.js', - ext: 'js css', - env: {'NODE_ENV': 'dev'}, - watch: [ - 'app/', - 'config/' - ], - tasks: changedFiles => - changedFiles - .map(file => fileTasks.get(path.extname(file))) - .filter((value, index, self) => self.indexOf(value) === index) - }).on('restart?', 'default') -}); +const bundler = () => + browserify({ + entries: jsFiles.src, + debug: true, + cache: {}, + packageCache: {} + }); -gulp.task('BuildCSS', () => { - const files = [{ - src: 'app/public/css/form.css', - dest: 'form.min.css' - }, { - src: 'app/public/css/home.css', - dest: 'home.min.css' - }, { - src: 'app/public/css/panel.css', - dest: 'panel.min.css' - }, { - src: 'app/public/css/index.css', - dest: 'index.min.css' - }]; +const watcher = watchify(bundler()); +watcher.on('log', gutil.log); - const tasks = files.map(file => - gulp.src(file.src) - .pipe(cleanCSS()) - .pipe(rename(file.dest))); +const bundle = pkg => + pkg.bundle() + .pipe(source(jsFiles.dest)) + .pipe(buffer()) + .pipe(sourcemaps.init({loadMaps: true})) + .pipe(uglify()) + .pipe(sourcemaps.write('./')) + .pipe(gulp.dest('public/js')); - return es.merge(tasks) - .pipe(gulp.dest('public/css')); -}); +gulp.task('build', () => bundle(bundler())); -gulp.task('BuildJS', () => { - const files = [{ - src: [ - 'app/public/services/*.js', - 'app/public/panel/**/*.js' - ], - dest: 'panel.bundle.js' - }, { - src: [ - 'app/public/services/*.js', - 'app/public/shimapan/**/*.js' - ], - dest: 'shimapan.bundle.js' - }, { - src: [ - 'app/public/index/*.js' - ], - dest: 'index.bundle.js' - }]; +gulp.task('watch', () => { + bundle(watcher); + watcher.on('update', () => bundle(watcher)); +}); - const tasks = files.map(file => - browserify({entries: file.src.map(g => glob.sync(g)), debug: true}) - .bundle() - .pipe(source(file.dest)) +gulp.task('minify', () => { + const tasks = staticJs.map(file => + gulp.src(file.src) + .pipe(rename(file.dest)) .pipe(buffer()) .pipe(sourcemaps.init({loadMaps: true})) .pipe(uglify()) - .pipe(sourcemaps.write('./')) - .pipe(gulp.dest('public/js'))); + .pipe(sourcemaps.write('./'))); return es.merge(tasks) .pipe(gulp.dest('public/js')); }); -gulp.task('default', gulp.parallel('BuildJS', 'BuildCSS')); +gulp.task('default', gulp.parallel('build', 'minify')); diff --git a/package-lock.json b/package-lock.json index d2fd1bf..49264e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2603,6 +2603,54 @@ } } }, + "expand-range": { + "version": "1.8.2", + "resolved": "http://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -2801,6 +2849,12 @@ "resolved": "https://registry.npmjs.org/feature-policy/-/feature-policy-0.2.0.tgz", "integrity": "sha512-2hGrlv6efG4hscYVZeaYjpzpT6I2OZgYqE2yDUzeAcKj2D1SH0AsEzqJNXzdoglEddcIXQQYop3lD97XpG75Jw==" }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, "fileset": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", @@ -3201,6 +3255,15 @@ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, "foreach": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", @@ -3778,6 +3841,42 @@ "path-is-absolute": "^1.0.0" } }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -4229,9 +4328,9 @@ "dev": true }, "glogg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", - "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", "requires": { "sparkles": "^1.0.0" } @@ -4479,6 +4578,15 @@ "glogg": "^1.0.0" } }, + "gutil": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/gutil/-/gutil-1.6.4.tgz", + "integrity": "sha1-d8+fqgWMBHbWO506xfvgTgcvbNI=", + "dev": true, + "requires": { + "sliced": "*" + } + }, "handlebars": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", @@ -5027,6 +5135,21 @@ } } }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -5123,6 +5246,18 @@ } } }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", @@ -5949,6 +6084,12 @@ } } }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -12620,6 +12761,16 @@ } } }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -12755,6 +12906,15 @@ "lcid": "^1.0.0" } }, + "outpipe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", + "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "dev": true, + "requires": { + "shell-quote": "^1.4.2" + } + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -12809,6 +12969,35 @@ "path-root": "^0.1.1" } }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -13026,6 +13215,12 @@ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, "pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", @@ -13131,6 +13326,31 @@ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, "randombytes": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", @@ -13318,6 +13538,15 @@ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -15146,6 +15375,139 @@ "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", "dev": true }, + "watchify": { + "version": "3.11.0", + "resolved": "http://registry.npmjs.org/watchify/-/watchify-3.11.0.tgz", + "integrity": "sha512-7jWG0c3cKKm2hKScnSAMUEUjRJKXUShwMPk0ASVhICycQhwND3IMAdhJYmc1mxxKzBUJTSF5HZizfrKrS6BzkA==", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "browserify": "^16.1.0", + "chokidar": "^1.0.0", + "defined": "^1.0.0", + "outpipe": "^1.1.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + } + } + }, "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", diff --git a/package.json b/package.json index f157902..c06c034 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "gulp-concat": "^2.6.1", "gulp-rename": "^1.4.0", "gulp-uglify": "^3.0.1", + "gutil": "^1.6.4", "istanbul": "^1.1.0-alpha.1", "minimatch": "^3.0.4", "mocha": "^5.2.0", @@ -52,7 +53,8 @@ "npx": "^10.2.0", "nyc": "^12.0.2", "uglify-es": "^3.3.9", - "vinyl-buffer": "^1.0.1" + "vinyl-buffer": "^1.0.1", + "watchify": "^3.11.0" }, "author": "Jack Foltz", "license": "MIT", diff --git a/public/views/home.html b/public/views/home.html index 6454054..5e7b944 100644 --- a/public/views/home.html +++ b/public/views/home.html @@ -1,16 +1,13 @@ - - + Shimapan - - + + - -
diff --git a/public/views/index.html b/public/views/index.html index 99d4e8c..d87c6b9 100644 --- a/public/views/index.html +++ b/public/views/index.html @@ -2,9 +2,9 @@ - - 「shimapan.rocks」 + + diff --git a/public/views/login.html b/public/views/login.html index bf2c315..290015e 100644 --- a/public/views/login.html +++ b/public/views/login.html @@ -4,7 +4,7 @@ Login - + diff --git a/public/views/panel.html b/public/views/panel.html index b6c1ecc..002c155 100644 --- a/public/views/panel.html +++ b/public/views/panel.html @@ -4,10 +4,10 @@ Panel - + - +
diff --git a/public/views/panel/dash.html b/public/views/panel/dash.html index d284de8..4006137 100644 --- a/public/views/panel/dash.html +++ b/public/views/panel/dash.html @@ -15,25 +15,25 @@ chart-colors="viewColors">
-
+
Week Uploads - +
Week Uploaded Size - +
Week Views - +
diff --git a/public/views/register.html b/public/views/register.html index 937792e..972128f 100644 --- a/public/views/register.html +++ b/public/views/register.html @@ -4,7 +4,7 @@ Register - +