From c71306264b68b3f1bccd29c1a86c61fc57057db5 Mon Sep 17 00:00:00 2001 From: Florian Schmitt Date: Thu, 14 Apr 2022 09:21:17 +0300 Subject: [PATCH] WIP refacto --- .nodemonignore | 4 - client/css/bigcards.css | 3 - client/css/style.css | 1349 ++++++++++++--------------- client/script.js | 150 +-- config.js | 2 +- package-lock.json | 1930 ++++++++++++++++++++++++++------------- package.json | 22 +- server.js | 36 +- views/home.jade | 4 +- views/index.jade | 137 +-- views/layout.jade | 141 ++- 11 files changed, 2146 insertions(+), 1632 deletions(-) delete mode 100644 .nodemonignore diff --git a/.nodemonignore b/.nodemonignore deleted file mode 100644 index 6edb2b5..0000000 --- a/.nodemonignore +++ /dev/null @@ -1,4 +0,0 @@ -/client/* -.DS_Store -/.git/* -*.rdb diff --git a/client/css/bigcards.css b/client/css/bigcards.css index 2cbab07..3e9be9f 100644 --- a/client/css/bigcards.css +++ b/client/css/bigcards.css @@ -1,8 +1,6 @@ .card { width: 230px; height: 152px; - xpadding: 5px; float: left; - xmargin: 0 10px 10px 0; font-size: .9em; @@ -32,7 +30,6 @@ .card-image { position: absolute; - xtop: -10; left: -3px; width: 100%; height: 100%; diff --git a/client/css/style.css b/client/css/style.css index 886d900..3ce010e 100644 --- a/client/css/style.css +++ b/client/css/style.css @@ -1,135 +1,108 @@ -@font-face { - font-family: 'geomanistregular'; - src: url('/fonts/geomanist/geomanist-book-webfont.woff2') format('woff2'), - url('/fonts/geomanist/geomanist-book-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'geomanistitalic'; - src: url('/fonts/geomanist/geomanist-book-italic-webfont.woff2') format('woff2'), - url('/fonts/geomanist/geomanist-book-italic-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} -/* -@font-face { - font-family: 'ubuntubold'; - src: url('/fonts/ubuntu/ubuntu-b-webfont.woff2') format('woff2'), - url('/fonts/ubuntu/ubuntu-b-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; +:root { + --primary-color: #59ffac; + --secondary-color: #d8604c; + --background-color: #fff; + --board-background-color: #eee8; + --text-color: #1c2020; } @font-face { - font-family: 'ubuntubold_italic'; - src: url('/fonts/ubuntu/ubuntu-bi-webfont.woff2') format('woff2'), - url('/fonts/ubuntu/ubuntu-bi-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; + font-family: "geomanistregular"; + src: url("/fonts/geomanist/geomanist-book-webfont.woff2") format("woff2"), + url("/fonts/geomanist/geomanist-book-webfont.woff") format("woff"); + font-weight: normal; + font-style: normal; } @font-face { - font-family: 'ubuntu_condensedregular'; - src: url('/fonts/ubuntu/ubuntu-c-webfont.woff2') format('woff2'), - url('/fonts/ubuntu/ubuntu-c-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; - -} */ - -@font-face { - font-family: 'ubuntulight'; - src: url('/fonts/ubuntu/ubuntu-l-webfont.woff2') format('woff2'), - url('/fonts/ubuntu/ubuntu-l-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; + font-family: "geomanistitalic"; + src: url("/fonts/geomanist/geomanist-book-italic-webfont.woff2") format("woff2"), + url("/fonts/geomanist/geomanist-book-italic-webfont.woff") format("woff"); + font-weight: normal; + font-style: normal; } @font-face { - font-family: 'ubuntulight_italic'; - src: url('/fonts/ubuntu/ubuntu-li-webfont.woff2') format('woff2'), - url('/fonts/ubuntu/ubuntu-li-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; - + font-family: "ubuntulight"; + src: url("/fonts/ubuntu/ubuntu-l-webfont.woff2") format("woff2"), + url("/fonts/ubuntu/ubuntu-l-webfont.woff") format("woff"); + font-weight: normal; + font-style: normal; } @font-face { - font-family: 'ubuntumedium'; - src: url('/fonts/ubuntu/ubuntu-m-webfont.woff2') format('woff2'), - url('/fonts/ubuntu/ubuntu-m-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} -/* -@font-face { - font-family: 'ubuntumedium_italic'; - src: url('/fonts/ubuntu/ubuntu-mi-webfont.woff2') format('woff2'), - url('/fonts/ubuntu/ubuntu-mi-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; + font-family: "ubuntulight_italic"; + src: url("/fonts/ubuntu/ubuntu-li-webfont.woff2") format("woff2"), + url("/fonts/ubuntu/ubuntu-li-webfont.woff") format("woff"); + font-weight: normal; + font-style: normal; } @font-face { - font-family: 'ubunturegular'; - src: url('/fonts/ubuntu/ubuntu-r-webfont.woff2') format('woff2'), - url('/fonts/ubuntu/ubuntu-r-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; + font-family: "ubuntumedium"; + src: url("/fonts/ubuntu/ubuntu-m-webfont.woff2") format("woff2"), + url("/fonts/ubuntu/ubuntu-m-webfont.woff") format("woff"); + font-weight: normal; + font-style: normal; } -/* -@font-face { - font-family: 'ubuntuitalic'; - src: url('/fonts/ubuntu/ubuntu-ri-webfont.woff2') format('woff2'), - url('/fonts/ubuntu/ubuntu-ri-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} */ body { - font-family: 'ubuntulight', Verdana, Geneva, Tahoma, sans-serif; - font-size: 16px; - color: #333; - padding: 0; - margin: 0; - user-select: none; - -o-user-select: none; - -moz-user-select: none; - -khtml-user-select: none; - -webkit-user-select: none; + font-family: "ubuntulight", Verdana, Geneva, Tahoma, sans-serif; + font-size: 16px; + color: var(--text-color); + padding: 0; + margin: 0; + user-select: none; + -o-user-select: none; + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + background: url("/images/backgrounds/kiwi.jpg") no-repeat scroll center center / cover; + min-height: 100vh; } -a, a:visited { - color:#64d29b; - text-decoration: none; +a, +a:visited { + color: var(--primary-color); + text-decoration: none; } -a:hover, a:focus, a:active { - color:#64d29b; - text-decoration: underline; +a:hover, +a:focus, +a:active { + color: var(--secondary-color); + text-decoration: underline; } #header-bar { - margin-bottom:1em + background: linear-gradient( + 180deg, + rgb(255, 255, 255) 0%, + rgba(255, 255, 255, 0.7553221117548582) 45%, + rgb(255, 255, 255, 0) 100% + ); + height: 100px; + display: block; + width: 100%; + position: absolute; + z-index: 0; } + #colibris-menu, #archipel { - background: #5a696b; - height:22px; + background: #5a696b; + height: 22px; } #archipel .archipel__islands a::before { - font-weight: 400; - font-family: sans-serif; - content: ''; - display: inline-block; - margin-right: 0; + font-weight: 400; + font-family: sans-serif; + content: ""; + display: inline-block; + margin-right: 0; } #archipel .archipel__islands a:hover, #archipel .archipel__islands a:focus, -#archipel .archipel__islands a:active -{ - color:#64d29b; +#archipel .archipel__islands a:active { + color: var(--primary-color); } .social-links a::before { width: 16px; @@ -138,1036 +111,740 @@ a:hover, a:focus, a:active { } .main-header { - display: flex; - align-content: space-around; - justify-content: space-between; - align-items: center; + display: flex; + align-content: space-around; + justify-content: space-between; + align-items: center; + z-index: 1; + position: relative; } .title { - display: flex; - align-content: space-around; - align-items: center; + display: flex; + align-content: space-around; + align-items: center; } .logo { - width: 120px; + width: 120px; } .base-line { - font-family: 'geomanistitalic', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - color:#5b6a6c; - font-size: 16px; - margin-left:1em; + font-family: "geomanistitalic", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, + "Open Sans", "Helvetica Neue", sans-serif; + color: var(--text-color); + font-size: 16px; + margin-left: 1em; } .container { - max-width:1140px; - margin: 0 auto; + max-width: 1140px; + margin: 0 auto; } .container-fluid { - margin: 1em; + margin: 1em; } .board-container { - margin: 1em auto; - width:100%; + margin: 1em auto; + width: 100%; } -.actions { - float:right; -} .actions a { - font-weight: bold; - text-transform: uppercase; - font-family: 'geomanistregular', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - margin-left:1em; - transition: color ease-out .2s; + font-weight: bold; + text-transform: uppercase; + font-family: "geomanistregular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, + "Open Sans", "Helvetica Neue", sans-serif; + margin-left: 1em; + transition: color ease-out 0.2s; + color: var(--text-color); } .actions a:hover { - text-decoration: none; - color:#e33d8a; + text-decoration: none; + color: var(--primary-color); } #smallify .fa-search-plus ~ .big { - display:inline-block; + display: inline-block; } #smallify .fa-search-plus ~ .big ~ .small { - display:none; + display: none; } #smallify .fa-search-minus ~ .big { - display:none; + display: none; } #smallify .fa-search-minus ~ .big ~ .small { - display:inline-block; + display: inline-block; } #full-page .fa-expand ~ .full-screen { - display:inline-block; + display: inline-block; } #full-page .fa-expand ~ .full-screen ~ .contain-screen { - display:none; + display: none; } #full-page .fa-compress ~ .full-screen { - display:none; + display: none; } #full-page .fa-compress ~ .full-screen ~ .contain-screen { - display:inline-block; + display: inline-block; } .clearfix { - clear:both; + clear: both; } #board { - position: relative; - background-color: #EEE; - - height: 100%; - - background-image: -webkit-gradient(linear, - left top, - right bottom, - color-stop(0.49, #EEE), - color-stop(0.84, #CCC)); - - -moz-box-shadow: inset 1px 1px 3px #999; - box-shadow: inset 1px 1px 3px #999; + position: relative; + background-color: var(--board-background-color); + height: 100%; + -moz-box-shadow: inset 1px 1px 3px #999; + box-shadow: inset 1px 1px 3px #999; } .board-outline { - border: solid #ddd 6px; - display: block; - height: 466px; - box-shadow: 1px 1px 1px #aaa; - margin: 0 auto; + border: solid #ddda 6px; + display: block; + height: 466px; + box-shadow: 1px 1px 1px #aaa; + margin: 0 auto; } #board-doodles { - width: 100%; - height: 100%; - position: absolute; - display: inline; - opacity: 0.035; - background-image: url('/images/scribbles2.png'); + width: 100%; + height: 100%; + position: absolute; + display: inline; + opacity: 0.035; + background-image: url("/images/scribbles2.png"); } .card-icon { - display: none; - position: absolute; - top: 3%; - left: 82%; - opacity: .3; - width: 16px; - height: 16px; + display: none; + position: absolute; + top: 3%; + left: 82%; + opacity: 0.3; + width: 16px; + height: 16px; } .card-icon-hover { - opacity: .9; + opacity: 0.9; } .card-edit-form, .card-edit-form input, .card-edit-form textarea { - border: none; - font-size: inherit; - font-weight: inherit; - background-color: inherit; - xvertical-align: inherit; - font-family: inherit; - text-align: center; - xcolor: #444; - padding: 0; - margin: 0; - outline-width: 0; - overflow: hidden; - resize: none; - width: 100%; - color: #330066; - color: #666; - + border: none; + font-size: inherit; + font-weight: inherit; + background-color: inherit; + font-family: inherit; + text-align: center; + padding: 0; + margin: 0; + outline-width: 0; + overflow: hidden; + resize: none; + width: 100%; + color: #330066; + color: #666; } - - .board-table { - xz-index: 1; - position: absolute; - top: 0px; - left: 0px; - xborder: solid #5b6a6c 1px; - height: 100%; - width: 100%; + position: absolute; + top: 0px; + left: 0px; + height: 100%; + width: 100%; } .board-table .col { - xborder-left: dashed #64d29b 5px; - text-align: center; - vertical-align: top; - height: 100%; - xopacity: 1; - background-image: url('../images/green-board-line.png'); - background-repeat: repeat-y; - background-position: left top; + text-align: center; + vertical-align: top; + height: 100%; + background-image: url("../images/green-board-line.png"); + background-repeat: repeat-y; + background-position: left top; } .board-table .first { - border-left: none; - text-align: center; - vertical-align: top; - height: 100%; - background-image: none; - + border-left: none; + text-align: center; + vertical-align: top; + height: 100%; + background-image: none; } h1, h1 a { - color: #b6b6b6; - padding: 0px; - margin: 0px; - margin-left: 1px; - font-weight: normal; - xtext-shadow: 1px 1px 1px #b6b6b6; - font-size: 15px; - padding-top: 14px; - letter-spacing: +1px; - font-family: 'geomanistregular', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - text-decoration: none; + color: #b6b6b6; + padding: 0px; + margin: 0px; + margin-left: 1px; + font-weight: normal; + font-size: 15px; + padding-top: 14px; + letter-spacing: +1px; + font-family: "geomanistregular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, + "Open Sans", "Helvetica Neue", sans-serif; + text-decoration: none; } h2 { - font-family: 'geomanistregular', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - color: #64d29b; - font-size: 18px; + font-family: "geomanistregular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, + "Open Sans", "Helvetica Neue", sans-serif; + color: var(--text-color); + font-size: 18px; } .bottom-icon { - padding: 5px; - opacity: .4; + padding: 5px; + opacity: 0.4; } .bottom-icon:hover { - padding: 5px; - opacity: .6; + padding: 5px; + opacity: 0.6; } .faded-icon { - opacity: .4; + opacity: 0.4; } .faded-icon:hover { - opacity: .6; + opacity: 0.6; } #add-col { - position: absolute; - right: 3px; - top: 200px; - display: none; - opacity: .15; + position: absolute; + right: 3px; + top: 200px; + display: none; + opacity: 0.15; } #add-col:hover { - opacity: .5; + opacity: 0.5; } #delete-col { - position: absolute; - right: 3px; - top: 224px; - display: none; - opacity: .15; + position: absolute; + right: 3px; + top: 224px; + display: none; + opacity: 0.15; } #delete-col:hover { - opacity: .5; + opacity: 0.5; } #config-dropdown { - border: solid #666 5px; - width: 200px; - height: 34px; - border-radius: 15px; - background-color: #888; - box-shadow: 0px 0px 10px #444; - padding: 2px; - display: none; + border: solid #666 5px; + width: 200px; + height: 34px; + border-radius: 15px; + background-color: #888; + box-shadow: 0px 0px 10px #444; + padding: 2px; + display: none; } .config-dropdown-icon { - padding: 5px; - opacity: .5; -} - -.buttons { - float: left; + padding: 5px; + opacity: 0.5; } .names { - padding-left: 10px; - width: 980px; - text-align: right; - color: #bbb; - letter-spacing: 4px; - font-family: 'geomanistregular', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - font-size: 13px; - + color: var(--text-color); + letter-spacing: 4px; + font-family: "geomanistregular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, + "Open Sans", "Helvetica Neue", sans-serif; + font-size: 13px; } .names p { - padding: 0; - margin 0; + padding: 0; + margin: 0; } .names ul { - list-style: none; - margin-top: 4px; - margin-bottom: 4px; + list-style: none; + margin-top: 4px; + margin-bottom: 4px; } #yourname-li { - color: #888; + color: #888; } .names input { - padding: 0; - border: none; - outline: 0; - width: 100px; - background: -webkit-gradient(linear, left top, left 25, from(#FFFFFF), color-stop(4%, #EEEEEE), to(#FFFFFF)); - background: -moz-linear-gradient(top, #FFFFFF, #EEEEEE 1px, #FFFFFF 25px); + padding: 0; + border: none; + outline: 0; + width: 100px; + background: -webkit-gradient(linear, left top, left 25, from(#ffffff), color-stop(4%, #eeeeee), to(#ffffff)); + background: -moz-linear-gradient(top, #ffffff, #eeeeee 1px, #ffffff 25px); - background: none; - border-radius: 10px; - color: #666; - text-align: right; - font-family: 'geomanistregular', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - font-size: 13px; - letter-spacing: 4px; - margin: 0; + background: none; + border-radius: 10px; + color: #666; + text-align: right; + font-family: "geomanistregular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, + "Open Sans", "Helvetica Neue", sans-serif; + font-size: 13px; + letter-spacing: 4px; + margin: 0; - position: relative; + position: relative; } .names input:hover { - outline: 0; - width: 100px; - background: -webkit-gradient(linear, left top, left 25, from(#FFFFFF), color-stop(4%, #EEEEEE), to(#FFFFFF)); - background: -moz-linear-gradient(top, #FFFFFF, #EEEEEE 1px, #FFFFFF 25px); - background: none; - box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; - border-radius: 10px; - color: #aaa; - text-align: right; - font-family: 'geomanistregular', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - font-size: 13px; - letter-spacing: 4px; - margin: 0; - + outline: 0; + width: 100px; + background: -webkit-gradient(linear, left top, left 25, from(#ffffff), color-stop(4%, #eeeeee), to(#ffffff)); + background: -moz-linear-gradient(top, #ffffff, #eeeeee 1px, #ffffff 25px); + background: none; + box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; + border-radius: 10px; + color: #aaa; + text-align: right; + font-family: "geomanistregular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, + "Open Sans", "Helvetica Neue", sans-serif; + font-size: 13px; + letter-spacing: 4px; + margin: 0; } .names .focused { - color: #444; + color: #444; } .you-text { - letter-spacing: 2px; + letter-spacing: 2px; } - #user-icon { - vertical-align: text-top; - position: relative; - left: 0px; + vertical-align: text-top; + position: relative; + left: 0px; } .sticker { - padding-top: 0px; - padding-left: 2px; - xz-index: 10; - display: inline-block; - width: 11px; - height: 11px; - background-repeat: no-repeat; + padding-top: 0px; + padding-left: 2px; + display: inline-block; + width: 11px; + height: 11px; + background-repeat: no-repeat; } .stickers { - text-align: right; - padding-top: 6px; - margin: 0; + display: inline-block; + margin: 0 1em; } - #sticker-red { - background-image: url('../images/stickers/sticker-red.png'); + background-image: url("../images/stickers/sticker-red.png"); } #sticker-blue { - background-image: url('../images/stickers/sticker-blue.png'); + background-image: url("../images/stickers/sticker-blue.png"); } #sticker-yellow { - background-image: url('../images/stickers/sticker-yellow.png'); + background-image: url("../images/stickers/sticker-yellow.png"); } #sticker-green { - background-image: url('../images/stickers/sticker-green.png'); + background-image: url("../images/stickers/sticker-green.png"); } #sticker-pink { - background-image: url('../images/stickers/sticker-pink.png'); + background-image: url("../images/stickers/sticker-pink.png"); } #sticker-lightblue { - background-image: url('../images/stickers/sticker-lightblue.png'); + background-image: url("../images/stickers/sticker-lightblue.png"); } #sticker-orange { - background-image: url('../images/stickers/sticker-orange.png'); + background-image: url("../images/stickers/sticker-orange.png"); } #sticker-purple { - background-image: url('../images/stickers/sticker-purple.png'); + background-image: url("../images/stickers/sticker-purple.png"); } #sticker-gold { - background-image: url('../images/stickers/sticker-gold.png'); + background-image: url("../images/stickers/sticker-gold.png"); } #sticker-silverstar { - background-image: url('../images/stickers/sticker-silverstar.png'); + background-image: url("../images/stickers/sticker-silverstar.png"); } #sticker-bluestar { - background-image: url('../images/stickers/sticker-bluestar.png'); + background-image: url("../images/stickers/sticker-bluestar.png"); } #sticker-redstar { - background-image: url('../images/stickers/sticker-redstar.png'); + background-image: url("../images/stickers/sticker-redstar.png"); } #addsticker { - background-image: url('../images/icons/iconic/raster/#5b6a6c/plus_8x8.png'); - background-position: 2px 2px; - opacity: 0.3; + background-image: url("../images/icons/iconic/raster/black/plus_8x8.png"); + background-position: 2px 2px; + opacity: 0.3; - display: inline-block; - width: 11px; - height: 11px; - background-repeat: no-repeat; + display: inline-block; + width: 11px; + height: 11px; + background-repeat: no-repeat; } #addsticker:hover { - opacity: 0.7; + opacity: 0.7; } #nosticker { - background-image: url('../images/stickers/sticker-deletestar.png'); + background-image: url("../images/stickers/sticker-deletestar.png"); } #sticker-nostar { - position: relative; - top: 3px; - opacity: .5; + position: relative; + top: 3px; + opacity: 0.5; } #sticker-redstar { - top: 1px; + top: 1px; } -/*.sticker-red { - background-image: url('../images/stickers/sticker-red.png'); - background-repeat: no-repeat; - background-position: right bottom; -} - -.sticker-blue { - background-image: url('../images/stickers/sticker-blue.png'); - background-repeat: no-repeat; - background-position: right bottom; -} - -.sticker-yellow { - background-image: url('../images/stickers/sticker-yellow.png'); - background-repeat: no-repeat; - background-position: right bottom; -} - -.sticker-green { - background-image: url('../images/stickers/sticker-green.png'); - background-repeat: no-repeat; - background-position: right bottom; -} - -.sticker-gold { - background-image: url('../images/stickers/sticker-gold.png'); - background-repeat: no-repeat; - background-position: right bottom; -} - -.sticker-bluestar { - background-image: url('../images/stickers/sticker-bluestar.png'); - background-repeat: no-repeat; - background-position: right bottom; -} - -.sticker-silverstar { - background-image: url('../images/stickers/sticker-silverstar.png'); - background-repeat: no-repeat; - background-position: right bottom; -} - -.sticker-redstar { - background-image: url('../images/stickers/sticker-redstar.png'); - background-repeat: no-repeat; - background-position: right bottom; -} - -.sticker-pink { - background-image: url('../images/stickers/sticker-pink.png'); - background-repeat: no-repeat; - background-position: right bottom; -} - -.sticker-orange { - background-image: url('../images/stickers/sticker-orange.png'); - background-repeat: no-repeat; - background-position: right bottom; -} - -.sticker-lightblue { - background-image: url('../images/stickers/sticker-lightblue.png'); - background-repeat: no-repeat; - background-position: right bottom; -} - -.sticker-purple { - background-image: url('../images/stickers/sticker-purple.png'); - background-repeat: no-repeat; - background-position: right bottom; -}*/ - - - - /* Stuff for landing page */ h1.home { - font-size: 100px; - font-family: 'geomanistregular', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - color: #64d29b; - opacity: .8; - padding: 0; - margin: 0; - text-align: center; - xline-height: .9em; + font-size: 100px; + font-family: "geomanistregular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, + "Open Sans", "Helvetica Neue", sans-serif; + color: var(--primary-color); + opacity: 0.8; + padding: 0; + margin: 0; + text-align: center; } .home { - font-size: 30px; - font-family: 'geomanistregular', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - color: #5b6a6c; - opacity: 1; - padding: 0; - margin: 0; - text-align: center; + font-size: 30px; + font-family: "geomanistregular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, + "Open Sans", "Helvetica Neue", sans-serif; + color: var(--text-color); + opacity: 1; + padding: 0; + margin: 0; + text-align: center; } form.home { - margin-bottom:2em; + margin-bottom: 2em; } p.home a { - color: #64d29b; + color: var(--primary-color); - text-decoration: none; + text-decoration: none; } p.small { - font-size: 22px; + font-size: 22px; } #video { - height: 450px; - width: 1000px; - padding-top: 100px; + height: 450px; + width: 1000px; + padding-top: 100px; } input.text { - width: 230px; - background: none; - padding: 6px; - margin-bottom: 10px; - border: none; - font-size: 30px; - font-family: 'geomanistregular', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - color: #64d29b; - text-align: center; - border-bottom: dashed 3px #64d29b; + width: 230px; + background: none; + padding: 6px; + margin-bottom: 10px; + border: none; + font-size: 30px; + font-family: "geomanistregular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, + "Open Sans", "Helvetica Neue", sans-serif; + color: var(--primary-color); + text-align: center; + border-bottom: dashed 3px var(--primary-color); } #go:hover { - box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, .2); - text-decoration: none; - background-color: #64d29bcc; + box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.2); + text-decoration: none; + background-color: var(--text-color); + color:var(--primary-color) } #go { - display: inline-block; - background-color: #64d29b; - margin-left: 30px; - box-shadow: unset; - border: none; - padding: 2px 10px; - border-radius: 5px; - margin-bottom: 0px; - font-size: 25px; - text-transform: uppercase; - font-weight: bold; - transition: all ease-out .1s; - font-family: 'geomanistregular', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - color: #5b6a6c; + display: inline-block; + background-color: var(--primary-color); + margin-left: 30px; + box-shadow: unset; + border: none; + padding: 2px 10px; + border-radius: 5px; + margin-bottom: 0px; + font-size: 25px; + text-transform: uppercase; + font-weight: bold; + transition: all ease-out 0.1s; + font-family: "geomanistregular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, + "Open Sans", "Helvetica Neue", sans-serif; + color: var(--text-color); } @media (max-width: 442px) { - #go { - margin-left: 0; - } + #go { + margin-left: 0; + } } .notice-bar { - padding: 0; - margin: 1em 0 0 0; - text-align: center; - color:#e33d8a; - text-transform:uppercase; - font-weight: bold; + padding: 0; + margin: 1em 0 0 0; + text-align: center; + color: #e33d8a; + text-transform: uppercase; + font-weight: bold; } .notice-bar a { - color: #333; + color: #333; } #marker { - position: absolute; - bottom: 0; - right: 200px; - z-index: 1; + position: absolute; + bottom: 0; + right: 200px; + z-index: 1; } #eraser { - position: absolute; - bottom: 0; - right: 70px; - z-index: 1; + position: absolute; + bottom: 0; + right: 70px; + z-index: 1; } - .card-hover-draggable { - xborder: 1px dashed blue; - box-shadow: inset 0 0 40px rgba(128, 128, 256, 0.2); - background-color: rgba(128, 128, 256, 0.1) -} - -/*img ~ .card-hover-draggable { - -webkit-filter: hue-rotate(180deg); -}*/ - -img { - user-drag: none; - -moz-user-select: none; - -webkit-user-drag: none; + box-shadow: inset 0 0 40px rgba(128, 128, 256, 0.2); + background-color: rgba(128, 128, 256, 0.1); } .config { - position: fixed; - right: 18px; - top: 4px; + position: fixed; + right: 18px; + top: 4px; } .trash { - position: fixed; - right: 18px; - bottom: 4px; + position: fixed; + right: 18px; + bottom: 4px; } .filler { - right: 0; - bottom: 0; - position: absolute; - text-align: right; + right: 0; + bottom: 0; + position: absolute; + text-align: right; } -.active-connections, .credits { - color: #999; - margin: 1em 0; +.active-connections, +.credits { + color: #999; + margin: 1em 0; +} +.credits { + display: none; } - - - - /* states and images */ .ui-icon { - width: 16px; - height: 16px; - background-image: url(../images/ui-icons_222222_256x240.png); + width: 16px; + height: 16px; + background-image: url(../images/ui-icons_222222_256x240.png); } .ui-widget-content .ui-icon { - background-image: url(../images/ui-icons_222222_256x240.png); + background-image: url(../images/ui-icons_222222_256x240.png); } .ui-widget-header .ui-icon { - background-image: url(../images/ui-icons_222222_256x240.png); + background-image: url(../images/ui-icons_222222_256x240.png); } .ui-state-default .ui-icon { - background-image: url(../images/ui-icons_888888_256x240.png); + background-image: url(../images/ui-icons_888888_256x240.png); } .ui-state-hover .ui-icon, .ui-state-focus .ui-icon { - background-image: url(../images/ui-icons_454545_256x240.png); + background-image: url(../images/ui-icons_454545_256x240.png); } .ui-state-active .ui-icon { - background-image: url(../images/ui-icons_454545_256x240.png); + background-image: url(../images/ui-icons_454545_256x240.png); } .ui-state-highlight .ui-icon { - background-image: url(../images/ui-icons_2e83ff_256x240.png); + background-image: url(../images/ui-icons_2e83ff_256x240.png); } .ui-state-error .ui-icon, .ui-state-error-text .ui-icon { - background-image: url(../images/ui-icons_cd0a0a_256x240.png); + background-image: url(../images/ui-icons_cd0a0a_256x240.png); } - .ui-resizable { - position: relative; + position: relative; } .ui-resizable-handle { - position: absolute; - font-size: 0.1px; - z-index: 99999; - display: block; + position: absolute; + font-size: 0.1px; + z-index: 99999; + display: block; } .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { - display: none; + display: none; } .ui-resizable-n { - cursor: n-resize; - height: 7px; - width: 100%; - top: -5px; - left: 0; + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; } .ui-resizable-s { - cursor: s-resize; - height: 7px; - width: 100%; - bottom: -5px; - left: 0; + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; } .ui-resizable-e { - cursor: e-resize; - width: 7px; - right: -5px; - top: 0; - height: 100%; + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; } .ui-resizable-w { - cursor: w-resize; - width: 7px; - left: -5px; - top: 0; - height: 100%; + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; } .ui-resizable-se { - cursor: se-resize; - width: 12px; - height: 12px; - right: 1px; - bottom: 1px; + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; } .ui-resizable-sw { - cursor: sw-resize; - width: 9px; - height: 9px; - left: -5px; - bottom: -5px; + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; } .ui-resizable-nw { - cursor: nw-resize; - width: 9px; - height: 9px; - left: -5px; - top: -5px; + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; } .ui-resizable-ne { - cursor: ne-resize; - width: 9px; - height: 9px; - right: -5px; - top: -5px; + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; } .ui-icon-gripsmall-diagonal-se { - background-position: -64px -224px; + background-position: -64px -224px; } .export button, .import * { - margin-right: 15px; + margin-right: 15px; } .content h1 { - font-family: 'geomanistregular', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - color: #64d29b; - font-size: 22px; + font-family: "geomanistregular", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, + "Open Sans", "Helvetica Neue", sans-serif; + color: var(--primary-color); + font-size: 22px; } .content * { - margin-top: 0; - margin-bottom: 0; - padding-top: 0; - padding-bottom: 0; + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; } -#revisions-list li>* { - cursor: pointer; +#revisions-list li > * { + cursor: pointer; } #revisions-list li img { - margin-left: 10px; + margin-left: 10px; } .active-connections { - float:left; + float: left; } .credits { - text-align: center; + text-align: center; } -/** -* modal.css -* Author: Pedro Laxe -* Version: 1.0.6 -* License: GPLv2 -**/ -.modal { - left: 50%; - margin: -250px 0 0 -32%; - opacity: 0; - position: absolute; - top: -50%; - visibility: hidden; - width: 65%; - box-shadow: 0 3px 3px rgba(0,0,0,.25); - box-sizing: border-box; - transition: all .4s ease-in-out; - -moz-transition: all .4s ease-in-out; - -webkit-transition: all .4s ease-in-out; -} -.modal:target { - opacity: 1; - top: 50%; - visibility: visible; -} -.modal .header, .modal .footer { - border-bottom: 1px solid #e7e7e7; - border-radius: 5px 5px 0 0; -} -.modal .footer { - border: none; - border-top: 1px solid #e7e7e7; - border-radius: 0 0 5px 5px; -} -.modal h2 { - margin: 0; - color: #333333; -} -.modal .btn { - float: right; -} -.modal .copy, .modal .header, .modal .footer { - padding: 5px; - color: #333333; -} -.modal-content { - background: #f7f7f7; - position: relative; - z-index: 20; - border-radius: 5px; - color: #333333; -} -.modal .copy { - background: #fff; - min-height:200px; -} -.modal .overlay { - background-color: #000; - background: rgba(0,0,0,.8); - height: 100%; - left: 0; - position: fixed; - top: 0; - width: 100%; - z-index: 10; -} -.copy ul li a { - color: #333333; - text-decoration: none; -} -/* Responsive Options */ -@media screen and (min-width: 768px) { - .modal{ - width:600px; - margin:-250px 0px 0px -18.2%; - top: -50%; - } -} -.modalcss-button { - /* Structure */ - display: inline-block; - line-height: normal; - white-space: nowrap; - vertical-align: middle; - text-align: center; - cursor: pointer; - -webkit-user-drag: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -/* Firefox: Get rid of the inner focus border */ -.modalcss-button::-moz-focus-inner { - padding: 0; - border: 0; -} - -.modalcss-button { - font-family: inherit; - font-size: 100%; - padding: 0.5em 1em; - color: #444; /* rgba not supported (IE 8) */ - color: rgba(0, 0, 0, 0.80); /* rgba supported */ - border: 1px solid #999; /*IE 6/7/8*/ - border: none rgba(0, 0, 0, 0); /*IE9 + everything else*/ - background-color: #E6E6E6; - text-decoration: none; - border-radius: 2px; -} - -.modalcss-button-hover, -.modalcss-button:hover, -.modalcss-button:focus { - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000',GradientType=0); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(transparent), color-stop(40%, rgba(0,0,0, 0.05)), to(rgba(0,0,0, 0.10))); - background-image: -webkit-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10)); - background-image: -moz-linear-gradient(top, rgba(0,0,0, 0.05) 0%, rgba(0,0,0, 0.10)); - background-image: -o-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10)); - background-image: linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10)); -} -.modalcss-button:focus { - outline: 0; -} -.modalcss-button-active, -.modalcss-button:active { - box-shadow: 0 0 0 1px rgba(0,0,0, 0.15) inset, 0 0 6px rgba(0,0,0, 0.20) inset; - border-color: #000\9; -} -.modalcss-button[disabled], -.modalcss-button-disabled, -.modalcss-button-disabled:hover, -.modalcss-button-disabled:focus, -.modalcss-button-disabled:active { - border: none; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - filter: alpha(opacity=40); - -khtml-opacity: 0.40; - -moz-opacity: 0.40; - opacity: 0.40; - cursor: not-allowed; - box-shadow: none; -} - -.modalcss-button-hidden { - display: none; -} - -/* Firefox: Get rid of the inner focus border */ -.modalcss-button::-moz-focus-inner{ - padding: 0; - border: 0; -} - -.modalcss-button-primary, -.modalcss-button-selected, -a.modalcss-button-primary, -a.modalcss-button-selected { - background-color: rgb(0, 120, 231); - color: #fff; -} -.button-success, - .button-error, - .button-warning, - .button-secondary { - color: white; - border-radius: 4px; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); - } - - .button-success { - background: rgb(28, 184, 65); /* this is a green */ - } - - .button-error { - background: rgb(202, 60, 60); /* this is a maroon */ - } - - .button-warning { - background: rgb(223, 117, 20); /* this is an orange */ - } - - .button-secondary { - background: rgb(66, 184, 221); /* this is a light blue */ - } /* Responsive Video */ .video { - position: relative; - padding-bottom: 56.25%; - padding-top: 30px; height: 0; overflow: hidden; + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; + height: 0; + overflow: hidden; } .video iframe, .video object, .video embed { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } /* Close Button */ -.box3 { - width: 25px; - right: 0px; - position: absolute; - margin: 5px; +.box3 { + width: 25px; + right: 0px; + position: absolute; + margin: 5px; } svg { - display: block; + display: block; } .close-x { stroke: black; @@ -1177,5 +854,99 @@ svg { } .pull-right { - float: right; -} \ No newline at end of file + float: right; +} +.post-it-actions { + display: flex; +} +a.add-post-it { + display: inline-block; + transition: color ease-out 0.2s; + color: var(--text-color); +} +a.add-post-it:hover { + color: var(--primary-color); +} +.add-post-it img { + width: 70px; + display: inline-block; + margin-left: -30px; + vertical-align: top; +} +.add-post-it .fa { + display: inline-block; + z-index: 1; + position: relative; + top: 9px; + left: 19px; +} + +#site-wrapper { + position: relative; + width: 100%; + height:100vh; + overflow-x: hidden; +} +#site-canvas { + min-height: 100%; + position: relative; + + -webkit-transform: translateX(0); + transform: translateX(0); + + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + + -webkit-transition: 300ms ease all; + transition: 300ms ease all; + + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.show-nav #site-canvas { + -webkit-transform: translateX(-295px); + transform: translateX(-300px); + + -webkit-transform: translate3d(-295px, 0, 0); + transform: translate3d(-295px, 0, 0); +} +#site-menu { + width: 270px; + height: 100%; + position: fixed; + top: 0; + bottom: 0; + right: -295px; + background: linear-gradient( 270deg, rgb(255, 255, 255) 0%, rgba(255, 255, 255, 0.7553221117548582) 98%, rgba(255, 255, 255, 0) 100% ); + padding: 15px; + z-index: 1; +} +#site-menu .close-link { + color: var(--text-color); + font-weight: bold; + text-transform: uppercase; + font-size: 12px; +} +#site-menu .close-link i { + font-size: 16px; +} +#site-menu .close-link:hover { + text-decoration: none; +} + +.backgrounds { + display:grid; + grid-template-columns: repeat(3, 1fr); + grid-gap: 5px; +} +.backgrounds .bg { + max-width:100px; + width: 100%; + border: 1px solid transparent; +} +.backgrounds .bg:hover { + cursor:pointer; +} +.backgrounds .bg.selected { + border: 1px solid var(--primary-color); +} diff --git a/client/script.js b/client/script.js index 7a69d11..7c6edbf 100644 --- a/client/script.js +++ b/client/script.js @@ -47,7 +47,7 @@ socket.on("connect", function () { socket.on("disconnect", function () { blockUI("Serveur déconnecté. Veuillez rafraîchir la page pour essayer de vous reconnecter…") - //$('.blockOverlay').click($.unblockUI); + //$('.blockOverlay').on('click', $.unblockUI); }) socket.on("message", function (data) { @@ -189,7 +189,7 @@ function getMessage(m) { } } -$(document).bind("keyup", function (event) { +$(document).on("keyup", function (event) { keyTrap = event.which }) @@ -229,7 +229,7 @@ function drawNewCard(id, text, x, y, rot, colour, sticker, animationspeed) { //we click on a card //The following doesn't work so we will do the bug //fix recommended in the above bug report - // card.click( function() { + // card.on('click', function() { // $(this).focus(); // } ); @@ -251,7 +251,7 @@ function drawNewCard(id, text, x, y, rot, colour, sticker, animationspeed) { }) //After a drag: - card.bind("dragstop", function (event, ui) { + card.on("dragstop", function (event, ui) { if (keyTrap == 27) { keyTrap = null return @@ -323,7 +323,7 @@ function drawNewCard(id, text, x, y, rot, colour, sticker, animationspeed) { } ) - card.children(".delete-card-icon").click(function () { + card.children(".delete-card-icon").on("click", function () { $("#" + id).remove() //notify server of delete sendAction("deleteCard", { @@ -415,11 +415,6 @@ function createCard(id, text, x, y, rot, colour) { } function randomCardColour() { - var choosed = $("#choose-card-color").val() - if (choosed !== "random") { - return choosed - } - var colours = ["yellow", "green", "blue", "white"] var i = Math.floor(Math.random() * colours.length) @@ -726,16 +721,14 @@ function download(filename, text) { element.style.display = "none" document.body.appendChild(element) - element.click() - document.body.removeChild(element) } function addRevision(timestamp) { var li = $('
  • ') var s1 = $("") - var s2 = $('delete revision') + var s2 = $('delete revision') if (typeof timestamp === "string") { timestamp = parseInt(timestamp) } @@ -745,13 +738,13 @@ function addRevision(timestamp) { li.append(s2) $("#revisions-list").append(li) - s1.click(function () { + $('body').on("click", s1, function () { socket.json.send({ action: "exportRevision", data: timestamp, }) }) - s2.click(function () { + $('body').on("click", s2, function () { socket.json.send({ action: "deleteRevision", data: timestamp, @@ -770,39 +763,29 @@ $(function () { //setTimeout($.unblockUI, 2000); - $("#create-card").click(function () { + $(".add-post-it").on("click", function () { var rotation = Math.random() * 10 - 5 //add a bit of random rotation (+/- 10deg) - uniqueID = Math.round(Math.random() * 99999999) //is this big enough to assure uniqueness? + var cardLeft = 150 + Math.random() * 400 + var cardTop = 20 + Math.random() * 50 + var uniqueID = Math.round(Math.random() * 99999999) //is this big enough to assure uniqueness? //alert(uniqueID); - createCard( - "card" + uniqueID, - "", - 58, - $("div.board-outline").height(), // hack - not a great way to get the new card coordinates, but most consistant ATM - rotation, - randomCardColour() - ) + createCard("card" + uniqueID, "", cardLeft, cardTop, rotation, $(this).data("color")) }) // Style changer - $("#smallify").click(function () { + $("#smallify").on("click", function () { if (currentTheme == "bigcards") { changeThemeTo("smallcards") } else if (currentTheme == "smallcards") { changeThemeTo("bigcards") } - /*else if (currentTheme == "nocards") - { - currentTheme = "bigcards"; - $("link[title=cardsize]").attr("href", "css/bigcards.css"); - }*/ - sendAction("changeTheme", currentTheme) return false }) - $("#icon-col").hover( + $("#icon-col").on( + "hover", function () { $(".col-icon").fadeIn(10) }, @@ -811,29 +794,19 @@ $(function () { } ) - $("#add-col").click(function () { + $("#add-col").on("click", function () { createColumn("Nouveau") return false }) - $("#delete-col").click(function () { + $("#delete-col").on("click", function () { deleteColumn() return false }) - // $('#cog-button').click( function(){ - // $('#config-dropdown').fadeToggle(); - // } ); - - // $('#config-dropdown').hover( - // function(){ /*$('#config-dropdown').fadeIn()*/ }, - // function(){ $('#config-dropdown').fadeOut() } - // ); - // - var user_name = getCookie("scrumscrum-username") - $("#yourname-input").focus(function () { + $("#yourname-input").on("focus", function () { if ($(this).val() == "anonyme") { $(this).val("") } @@ -841,7 +814,7 @@ $(function () { $(this).addClass("focused") }) - $("#yourname-input").blur(function () { + $("#yourname-input").on("blur", function () { if ($(this).val() === "") { $(this).val("anonyme") } @@ -851,14 +824,14 @@ $(function () { }) $("#yourname-input").val(user_name) - $("#yourname-input").blur() + $("#yourname-input").trigger("blur") $("#yourname-li").hide() - $("#yourname-input").keypress(function (e) { + $("#yourname-input").on("keypress", function (e) { code = e.keyCode ? e.keyCode : e.which if (code == 10 || code == 13) { - $(this).blur() + $(this).trigger("blur") } }) @@ -879,13 +852,13 @@ $(function () { ;(function () { var offsets - $(".board-outline").bind("resizestart", function () { + $(".board-outline").on("resizestart", function () { offsets = calcCardOffset() }) - $(".board-outline").bind("resize", function (event, ui) { + $(".board-outline").on("resize", function (event, ui) { adjustCard(offsets, false) }) - $(".board-outline").bind("resizestop", function (event, ui) { + $(".board-outline").on("resizestop", function (event, ui) { boardResizeHappened(event, ui) adjustCard(offsets, true) }) @@ -901,7 +874,7 @@ $(function () { containment: "parent", }) - $("#export-txt").click(function () { + $("#export-txt").on("click", function () { $('.nav-tabs a[href="#scrumblr"]').tab("show") socket.json.send({ action: "exportTxt", @@ -909,7 +882,7 @@ $(function () { }) }) - $("#export-csv").click(function () { + $("#export-csv").on("click", function () { $('.nav-tabs a[href="#scrumblr"]').tab("show") socket.json.send({ action: "exportCsv", @@ -917,7 +890,7 @@ $(function () { }) }) - $("#export-json").click(function () { + $("#export-json").on("click", function () { socket.json.send({ action: "exportJson", data: { @@ -927,7 +900,7 @@ $(function () { }) }) - $("#import-file").click(function (evt) { + $("#import-file").on("click", function (evt) { evt.stopPropagation() evt.preventDefault() @@ -943,7 +916,7 @@ $(function () { fr.readAsText(f) }) - $("#create-revision").click(function () { + $("#create-revision").on("click", function () { socket.json.send({ action: "createRevision", data: { @@ -1048,8 +1021,6 @@ $(document).ready(function () { } }, 500) - $(".names").css({ margin: "auto", width: "auto" }).addClass("pull-right") - $("#scrumblr") .append($(".names, .stickers, .buttons")) .after( @@ -1065,7 +1036,6 @@ $(document).ready(function () { $("#about").append($("#tuto-faq, #le-logiciel, #jardin")) // Style - $("#create-card").addClass("vert fa-3x").css("opacity", "1") $("#smallify").on("click", function () { if (currentTheme == "bigcards") { $(this).children("i").removeClass("fa-search-plus").addClass("fa-search-minus") @@ -1091,9 +1061,11 @@ $(document).ready(function () { } // put URL in share input - $("#taburl").val(location) + var mainurl = location.toString().split('#')[0] + $(".replace-url").val(mainurl) + $(".share-iframe").text($(".share-iframe").text().replace('{{replace-url}}', mainurl)) // copy URL to clipboard - $("#copyurl").click(function (e) { + $("#copyurl").on("click", function (e) { e.preventDefault() var node = document.getElementById("taburl") node.disabled = null @@ -1115,7 +1087,7 @@ $(document).ready(function () { //Close with Escape Button window.onkeydown = function (event) { if (event.keyCode === 27) { - document.getElementById("close").click() + document.getElementById("close").on("click") } } @@ -1155,3 +1127,53 @@ $(function () { }) } }) + +$(function () { + // Toggle Nav on Click + $(".toggle-nav").on("click", function () { + var target = $(this).attr("href") + if (target === '#') { + target = false + } else { + history.replaceState('', '', target); + } + toggleNav(target) + return false + }) + // When nav opened, a click on the canvas hides the menu + $("body").on("click", ".show-nav #site-canvas main", function () { + toggleNav(false) + return false + }) + $(".backgrounds .bg").on("click", function () { + if ($(this).hasClass("selected")) { + $("body").css("background-image", "none") + $(this).removeClass("selected") + } else { + $(".selected").removeClass("selected") + $('.bgurl').val('') + $("body").css("background-image", 'url("/' + $(this).attr("src") + '")') + $(this).addClass("selected") + } + }) + $('.bgurl').on('change', function() { + var url = $(this).val() + if (url) { + $(".selected").removeClass("selected") + $("body").css("background-image", 'url("' + url + '")') + } + }) +}) + +function toggleNav(target) { + if ($("#site-wrapper").hasClass("show-nav") && target === false) { + $("#site-wrapper").removeClass("show-nav") + } else { + $("#share, #settings").hide() + if (target !== false) { + $(target).show() + } + $("#site-wrapper").addClass("show-nav") + } + return false +} diff --git a/config.js b/config.js index 345721e..5f48f99 100644 --- a/config.js +++ b/config.js @@ -40,4 +40,4 @@ exports.database = { exports.headerBarUrl = argv['headerBarUrl'] || null /* example url with appropriate json markup : 'https://colibris-lemouvement.org/archipel-markup?domain=colibris-outilslibres.org' */ exports.logoUrl = argv['logoUrl'] || null /* example logo url : 'https://postit.colibris-outilslibres.org/images/logo-Post-it.svg' */ -exports.faviconUrl = argv['faviconUrl'] || null /* example favicon url : 'https://postit.colibris-outilslibres.org/images/favicon.png' */ +exports.faviconUrl = argv['faviconUrl'] || null /* example favicon url : 'https://postit.colibris-outilslibres.org/images/favicon.png' */ \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index bbbae76..c7b0a9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9 +1,35 @@ { "name": "scrumblr", - "version": "0.2.0", + "version": "1.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { + "@picocss/pico": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@picocss/pico/-/pico-1.4.4.tgz", + "integrity": "sha512-MuL4MOY1Tugf91N06mhYETVqMiNeT9gObMJ0WNrnbSGBw61gsqXzn7ScjXvVpnQmFC8DP13mluzz1s+ogpiuEQ==" + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -23,6 +49,30 @@ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", @@ -169,9 +219,9 @@ "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==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true } } @@ -200,6 +250,16 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "blob": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", @@ -229,6 +289,35 @@ } } }, + "bootstrap-icons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.8.1.tgz", + "integrity": "sha512-IXUqislddPJfwq6H+2nTkHyr9epO9h6u1AG0OZCx616w+TgzeoCjfmI3qJMQqt1J586gN2IxzB4M99Ip4sTZ1w==" + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -331,6 +420,38 @@ } } }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, "caller": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/caller/-/caller-0.0.1.tgz", @@ -350,6 +471,33 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "character-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.0.tgz", @@ -620,9 +768,9 @@ "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==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "micromatch": { @@ -659,6 +807,12 @@ } } }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -688,6 +842,24 @@ } } }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "cli-color": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.1.tgz", + "integrity": "sha512-eBbxZF6fqPUNnf7CLAFOersUnyYzv83tHFLSlts+OAHsNendaqv2tHCq+/MO+b3Y+9JeoUlIvobyxG/Z8GNeOg==", + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-iterator": "^2.0.3", + "memoizee": "^0.4.15", + "timers-ext": "^0.1.7" + } + }, "cliff": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", @@ -713,6 +885,15 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -723,6 +904,21 @@ "object-visit": "^1.0.0" } }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "colors": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", @@ -776,6 +972,20 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, "constantinople": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-2.0.1.tgz", @@ -814,9 +1024,15 @@ "dev": true }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, "css": { @@ -828,6 +1044,14 @@ "css-stringify": "1.0.5" } }, + "css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "requires": { + "utrie": "^1.0.2" + } + }, "css-parse": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz", @@ -844,6 +1068,15 @@ "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", "dev": true }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -863,12 +1096,38 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", "dev": true }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -915,9 +1174,9 @@ "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==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true } } @@ -944,16 +1203,46 @@ "integrity": "sha1-v9N0EHX9f7GlsuE2WMX0vsd3NvM=", "dev": true }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, "engine.io": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.5.tgz", @@ -1002,9 +1291,9 @@ } }, "engine.io-client": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.5.tgz", - "integrity": "sha512-AYTgHyeVUPitsseqjoedjhYJapNVoSPShbZ+tEUX9/73jgZ/Z3sUlJf9oYgdEBBdVhupUpUqSxH0kBCXlQnmZg==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.6.tgz", + "integrity": "sha512-6+rInQu8xU7c0fIF6RC4SRKuHVWPt8Xq0bZYS4lMrTwmhRineOlEMsU3X0zS5mHIvCgJsmpOKEX7DhihGk7j0g==", "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", @@ -1016,7 +1305,7 @@ "parseqs": "0.0.5", "parseuri": "0.0.5", "ws": "~1.1.5", - "xmlhttprequest-ssl": "1.5.3", + "xmlhttprequest-ssl": "1.6.3", "yeast": "0.1.2" }, "dependencies": { @@ -1053,6 +1342,52 @@ "wtf-8": "1.0.0" } }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -1063,6 +1398,15 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, "event-stream": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz", @@ -1144,6 +1488,21 @@ "vary": "~1.1.2" } }, + "ext": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "requires": { + "type": "^2.5.0" + }, + "dependencies": { + "type": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", + "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" + } + } + }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", @@ -1180,6 +1539,13 @@ "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "dev": true }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -1294,16 +1660,44 @@ } }, "forever-monitor": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.7.1.tgz", - "integrity": "sha1-XYIPSjp42y2BriZx8Vi56GoJG7g=", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.7.2.tgz", + "integrity": "sha512-TGFkX9Hg1X0A4o0ShOvI7AH+p0Ra2kUfhA4kNL0/DY1lQO7T+DUBbSODFBQrykcrxjyw+D1RiawNOX3X2NFfrw==", "dev": true, "requires": { "broadway": "~0.3.6", - "chokidar": "^1.0.1", + "chokidar": "^1.7.0", "minimatch": "~3.0.2", "ps-tree": "0.0.x", - "utile": "~0.2.1" + "utile": "^0.3.0" + }, + "dependencies": { + "deep-equal": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz", + "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=", + "dev": true + }, + "ncp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz", + "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=", + "dev": true + }, + "utile": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz", + "integrity": "sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo=", + "dev": true, + "requires": { + "async": "~0.9.0", + "deep-equal": "~0.2.1", + "i": "0.3.x", + "mkdirp": "0.x.x", + "ncp": "1.0.x", + "rimraf": "2.x.x" + } + } } }, "forwarded": { @@ -1332,551 +1726,23 @@ "dev": true }, "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, "optional": true, "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true - } + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" } }, "get-value": { @@ -1918,10 +1784,46 @@ "is-glob": "^2.0.0" } }, + "global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "requires": { + "ini": "2.0.0" + }, + "dependencies": { + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + } + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, "graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", "dev": true }, "has-binary": { @@ -1937,6 +1839,12 @@ "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -1997,6 +1905,27 @@ } } }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "requires": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -2010,9 +1939,9 @@ } }, "i": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", - "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz", + "integrity": "sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q==", "dev": true }, "iconv-lite": { @@ -2023,6 +1952,24 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", @@ -2044,9 +1991,9 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, "ipaddr.js": { @@ -2078,6 +2025,15 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -2106,6 +2062,11 @@ } } }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -2133,6 +2094,12 @@ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", @@ -2142,6 +2109,22 @@ "is-extglob": "^1.0.0" } }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true + }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", @@ -2151,6 +2134,18 @@ "kind-of": "^3.0.2" } }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -2185,12 +2180,32 @@ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz", "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU=" }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -2233,10 +2248,11 @@ "with": "~3.0.0" } }, - "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true }, "json3": { "version": "3.3.2", @@ -2249,6 +2265,15 @@ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -2258,12 +2283,61 @@ "is-buffer": "^1.1.5" } }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, "lazy": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=", "dev": true }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "requires": { + "es5-ext": "~0.10.2" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -2290,6 +2364,33 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, + "memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + }, + "dependencies": { + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + } + } + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -2339,6 +2440,12 @@ "mime-db": "1.40.0" } }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -2350,7 +2457,8 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true }, "mixin-deep": { "version": "1.3.2", @@ -2374,11 +2482,18 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + } } }, "monocle": { @@ -2401,9 +2516,9 @@ "dev": true }, "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", "dev": true, "optional": true }, @@ -2439,9 +2554,9 @@ "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==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true } } @@ -2486,6 +2601,175 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "nodemon": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", + "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "dev": true, + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5", + "update-notifier": "^5.1.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -2495,6 +2779,12 @@ "remove-trailing-separator": "^1.0.1" } }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true + }, "nssocket": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.5.3.tgz", @@ -2603,6 +2893,16 @@ "wrappy": "1" } }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, "optimist": { "version": "0.3.7", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", @@ -2616,6 +2916,32 @@ "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -2674,6 +3000,12 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, "pkginfo": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", @@ -2686,6 +3018,12 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", @@ -2709,9 +3047,9 @@ "dev": true }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } @@ -2761,11 +3099,41 @@ "event-stream": "~0.5" } }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, "randomatic": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", @@ -2784,9 +3152,9 @@ "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==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true } } @@ -2814,6 +3182,32 @@ } } }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } + } + }, "read": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", @@ -2824,9 +3218,9 @@ } }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -2878,6 +3272,57 @@ "safe-regex": "^1.1.0" } }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "reload": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/reload/-/reload-3.2.0.tgz", + "integrity": "sha512-30iJoDvFHGbfq6tT3Vag/4RV3wkpuCOqPSM3GyeuOSSo48wKfZT/iI19oeO0GCVX0XSr+44XJ6yBiRJWqOq+sw==", + "requires": { + "cli-color": "~2.0.0", + "commander": "~7.2.0", + "finalhandler": "~1.1.1", + "minimist": "~1.2.0", + "open": "^8.0.0", + "serve-static": "~1.14.0", + "supervisor": "~0.12.0", + "url-parse": "~1.5.0", + "ws": "~7.4.0" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + } + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -2885,9 +3330,9 @@ "dev": true }, "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true }, "repeat-string": { @@ -2896,12 +3341,26 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "resumer": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", @@ -2956,6 +3415,29 @@ "resolved": "https://registry.npmjs.org/sanitizer/-/sanitizer-0.1.3.tgz", "integrity": "sha1-1PCvdHXZp7ryqeWmEXGLqheKOeE=" }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -3032,6 +3514,12 @@ "strip-json-comments": "~0.1.1" } }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "simplesets": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/simplesets/-/simplesets-1.2.0.tgz", @@ -3135,9 +3623,9 @@ "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==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true } } @@ -3277,12 +3765,12 @@ } }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { - "atob": "^2.1.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -3290,9 +3778,9 @@ } }, "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, "split-string": { @@ -3336,6 +3824,17 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -3345,12 +3844,35 @@ "safe-buffer": "~5.1.0" } }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-json-comments": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz", "integrity": "sha1-Fkxk43Coo8wAyeAbU55WmCPw7lQ=", "dev": true }, + "supervisor": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/supervisor/-/supervisor-0.12.0.tgz", + "integrity": "sha1-3n5jNwFbKRhRwQ81OMSn8EkX7ME=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, "tape": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/tape/-/tape-2.3.3.tgz", @@ -3373,12 +3895,29 @@ } } }, + "text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "requires": { + "utrie": "^1.0.2" + } + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, + "timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "requires": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, "timespan": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", @@ -3399,6 +3938,12 @@ "kind-of": "^3.0.2" } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -3437,6 +3982,15 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + } + }, "transformers": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz", @@ -3458,6 +4012,17 @@ } } }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -3467,6 +4032,20 @@ "mime-types": "~2.1.24" } }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typeface-inter": { + "version": "3.18.1", + "resolved": "https://registry.npmjs.org/typeface-inter/-/typeface-inter-3.18.1.tgz", + "integrity": "sha512-c+TBanYFCvmg3j5vPk+zxK4ocMZbPxMEmjnwG7rPQoV87xvQ6b07VbAOC0Va0XBbbZCGw6cWNeFuLeg1YQru3Q==" + }, "uglify-js": { "version": "2.4.24", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", @@ -3506,6 +4085,12 @@ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -3518,6 +4103,15 @@ "set-value": "^2.0.1" } }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -3575,12 +4169,63 @@ } } }, + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, + "url-parse": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.6.tgz", + "integrity": "sha512-xj3QdUJ1DttD1LeSfvJlU1eiF1RvBSBfUu8GplFGdUzSO28y5yUtEl7wb//PI4Af6qh0o/K8545vUmucRrfWsw==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -3620,11 +4265,35 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, + "utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "requires": { + "base64-arraybuffer": "^1.0.2" + }, + "dependencies": { + "base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==" + } + } + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", @@ -3666,12 +4335,35 @@ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, "ws": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", @@ -3686,10 +4378,22 @@ "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=" }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, "xmlhttprequest-ssl": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", - "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=" + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", + "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "yargs": { "version": "2.3.0", diff --git a/package.json b/package.json index 341ba9f..caf67d3 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,10 @@ { "name": "scrumblr", "description": "Web-based simulation of a physical agile sprint board that supports real-time collaboration.", - "version": "0.2.1", + "version": "1.0.0", + "license": "AGPL-3.0", "repository": { - "url": "http://framagit.org/colibris/framemo" + "url": "https://framagit.org/colibris/framemo" }, "author": "Ali Asaria", "main": "server.js", @@ -14,20 +15,33 @@ "node": "0.4.7" }, "scripts": { - "start": "node server.js" + "start": "nodemon server.js -e js,css,jade,json" + }, + "nodemonConfig": { + "ignore": [ + ".DS_Store", + " /.git/*", + "*.rdb", + "docs/*" + ] }, "dependencies": { "async": "~0.9.0", + "bootstrap-icons": "^1.8.1", "compression": "^1.1.0", "express": "4.x", + "html2canvas": "^1.4.1", "jade": "~1.5.0", "redis": "~0.12.1", + "reload": "^3.2.0", "sanitizer": "~0.1.1", "simplesets": "~1.2.0", "socket.io": "1.x", + "typeface-inter": "^3.18.1", "yargs": "~2.3.0" }, "devDependencies": { - "forever": "^0.15.3" + "forever": "^0.15.3", + "nodemon": "^2.0.15" } } diff --git a/server.js b/server.js index 4bd4967..6e83f74 100644 --- a/server.js +++ b/server.js @@ -3,8 +3,7 @@ SYSTEM INCLUDES **************/ var http = require("http") -// var sys = require('sys'); -var async = require("async") +var reload = require('reload') var sanitizer = require("sanitizer") var compression = require("compression") var express = require("express") @@ -33,12 +32,22 @@ var router = express.Router() app.use(compression()) app.use(conf.baseurl, router) +router.use(express.static(__dirname + "/node_modules")) router.use(express.static(__dirname + "/client")) -var server = require("http").Server(app) -server.listen(conf.port) +var server = http.createServer(app) -console.log("Server running at http://127.0.0.1:" + conf.port + "/") +// Reload code here +reload(app).then(function (reloadReturned) { + // reloadReturned is documented in the returns API in the README + + // Reload started, start web server + server.listen(conf.port, function () { + console.log('Web server available on http://127.0.0.1:'+ conf.port ) + }) +}).catch(function (err) { + console.error('Reload could not start, could not start server/sample app', err) +}) /************** SETUP Socket.IO @@ -53,15 +62,14 @@ var io = require("socket.io")(server, { router.get("/", function (req, res) { //console.log(req.header('host')); url = req.header("host") + req.baseUrl - var connected = io.sockets.connected clientsCount = Object.keys(connected).length - res.render("home.jade", { url: url, headerBarUrl: headerBarUrl, logoUrl: logoUrl, - connected: clientsCount + connected: clientsCount, + home: true, }) }) @@ -69,10 +77,10 @@ router.get("/demo", function (req, res) { url = req.header("host") + req.baseUrl res.render("index.jade", { pageTitle: "Post-it - demo", - headerBarUrl: headerBarUrl, + headerBarUrl: headerBarUrl, logoUrl: logoUrl, url: url, - demo: true + demo: true, }) }) @@ -80,12 +88,16 @@ router.get("/:id", function (req, res) { url = req.header("host") + req.baseUrl res.render("index.jade", { pageTitle: "Post-it - " + req.params.id, - headerBarUrl: headerBarUrl, + headerBarUrl: headerBarUrl, logoUrl: logoUrl, - url: url + url: url, }) }) +router.get("/stats", function (req, res) { + console.log('TODO: stats') +}) + /************** SOCKET.I0 **************/ diff --git a/views/home.jade b/views/home.jade index 9c6fb58..910e508 100644 --- a/views/home.jade +++ b/views/home.jade @@ -12,9 +12,9 @@ block body tr td form.home(onsubmit="return go();") - label Nommez votre nouveau tableau : + label Créer/ouvrir un tableau intitulé : br input.text(type="text", name="name") - a#go(onclick="return go();")  Allons-y. + a#go(onclick="return go();") OK p.home Exemple : p.home!= '' + locals.url + '/demo' diff --git a/views/index.jade b/views/index.jade index 94a8c7b..9b5e549 100644 --- a/views/index.jade +++ b/views/index.jade @@ -1,22 +1,42 @@ extends layout block header - - if (locals.demo) - div.notice-bar Tableau de démonstration.
    N’y mettez rien d’important ! + div#create-card.post-it-actions + a.add-post-it.add-white-card(href="#", data-color="white") + i.fa.fa-fw.fa-lg.fa-plus-circle(title='Ajouter une note blanche') + img(alt="blanc", src="images/white-card.png") + a.add-post-it.add-yellow-card(href="#", data-color="yellow") + i.fa.fa-fw.fa-lg.fa-plus-circle(title='Ajouter une note jaune') + img(alt="jaune", src="images/yellow-card.png") + a.add-post-it.add-green-card(href="#", data-color="green") + i.fa.fa-fw.fa-lg.fa-plus-circle(title='Ajouter une note verte') + img(alt="vert", src="images/green-card.png") + a.add-post-it.add-blue-card(href="#", data-color="blue") + i.fa.fa-fw.fa-lg.fa-plus-circle(title='Ajouter une note bleu') + img(alt="bleu", src="images/blue-card.png") + div.stickers + div.sticker#sticker-red(title='Glisser-déposer la pastille rouge') + div.sticker#sticker-blue(title='Glisser-déposer la pastille bleue') + div.sticker#sticker-yellow(title='Glisser-déposer la pastille jaune') + div.sticker#sticker-green(title='Glisser-déposer la pastille verte') + div.sticker#sticker-pink(title='Glisser-déposer la pastille rose') + div.sticker#sticker-lightblue(title='Glisser-déposer la pastille bleu clair') + div.sticker#sticker-orange(title='Glisser-déposer la pastille orange') + div.sticker#sticker-purple(title='Glisser-déposer la pastille violette') + br + div.sticker#sticker-gold(title='Glisser-déposer une étoile dorée') + div.sticker#sticker-bluestar(title='Glisser-déposer une étoile bleue') + div.sticker#sticker-silverstar(title='Glisser-déposer une étoile argentée') + div.sticker#sticker-redstar(title='Glisser-déposer une étoile rouge') + div.sticker#nosticker(title='Supprimer les pastilles ou les étoiles d\'une note') div.actions - a#share-link(href="#share", aria-controls="share", title="Partager le tableau") - i.fa.fa-fw.fa-lg.fa-share-alt - span Partager - a#revisions-link(href="#revisions", aria-controls="revisions", title="Révisions") - i.fa.fa-fw.fa-lg.fa-exchange - span Révisions - a#smallify(href="javascript:void(0);", title="Réduire la taille des post-it") + a#smallify(href="#size", title="Changer la taille des post-it") i.fa.fa-fw.fa-lg.fa-search-plus - span.big Grands Post-it - span.small Petits Post-it - a#full-page(href="javascript:void(0);", aria-hidden="true", title="Plein écran") + a#full-page(href="#fullscreen", aria-hidden="true", title="Plein écran") i.fa.fa-fw.fa-lg.fa-expand - span.full-screen Plein écran - span.contain-screen Réduire + a.toggle-nav(href="#share",aria-hidden="true", title="Partager le tableau") + i.fa.fa-fw.fa-lg.fa-share-alt + a.toggle-nav(href="#settings", aria-hidden="true", title="Options") + i.fa.fa-fw.fa-lg.fa-cog block body div.container @@ -30,87 +50,8 @@ block body image#add-col.col-icon(width='20', height='20', src='images/icons/iconic/raster/black/plus_alt_32x32.png' alt='Ajouter une colonne') image#delete-col.col-icon(width='20', height='20', src='images/icons/iconic/raster/black/minus_alt_32x32.png' alt='Supprimer une colonne') - div.container - div.buttons - i#create-card.fa.fa-plus-circle.fa-2x.bottom-icon(title='Ajouter une note') - span Ajouter un Post-it - div.form-group - label.control-label(for='choose-card-color') Couleur - select#choose-card-color.form-control - option(value='random') Au hasard - option(value='yellow') Jaune - option(value='green') Vert - option(value='blue') Bleu - option(value='white') Blanc - - - div.stickers - div.sticker#sticker-red(title='Ajouter une pastille rouge') - div.sticker#sticker-blue(title='Ajouter une pastille bleue') - div.sticker#sticker-yellow(title='Ajouter une pastille jaune') - div.sticker#sticker-green(title='Ajouter une pastille verte') - br - div.sticker#sticker-pink(title='Ajouter une pastille rose') - div.sticker#sticker-lightblue(title='Ajouter une pastille bleu clair') - div.sticker#sticker-orange(title='Ajouter une pastille orange') - div.sticker#sticker-purple(title='Ajouter une pastille violette') - br - div.sticker#sticker-gold(title='Ajouter une étoile dorée') - div.sticker#sticker-bluestar(title='Ajouter une étoile bleue') - div.sticker#sticker-silverstar(title='Ajouter une étoile argentée') - div.sticker#sticker-redstar(title='Ajouter une étoile rouge') - br - div.sticker#nosticker(title='Supprimer les pastilles ou les étoiles d\'une note') - - - div.names - p connectés : - input#yourname-input - span.you-text (vous) - ul#names-ul - - div#share.modal - div.modal-content - div.header - a#close(href="#") - div.box.box3 - - h2 Partager le tableau - div.copy - div.form-inline - div.input-group - input#taburl.form-control(disabled='disabled') - div.input-group-addon - a#copyurl(href='#', title='Copier l\'adresse du tableau dans votre presse-papier') - i.fa.fa-clipboard - a(href="#") - div.overlay - - div#revisions.modal - div.modal-content - div.header - a#close(href="#") - div.box.box3 - - h2 Révisions - Import/Export - div.copy - div.revisions - h3 Révisions - button#create-revision.btn.btn-primary Créer une révision - div - ul#revisions-list - div.export - h3 Exporter le tableau - button#export-txt.btn.btn-primary Format texte - button#export-csv.btn.btn-primary Format CSV - button#export-json.btn.btn-primary Format JSON (pour import dans Post-it) - - div.import - h3 Importer un tableau - div.form-inline - div.form-group - label(for="import-input") Fichier JSON à importer - input(type="file")#import-input.form-control - button#import-file.btn.btn-primary Importer - a(href="#") - div.overlay \ No newline at end of file + div.names + p connectés : + input#yourname-input + span.you-text (vous) + ul#names-ul \ No newline at end of file diff --git a/views/layout.jade b/views/layout.jade index a1a788c..adfddba 100644 --- a/views/layout.jade +++ b/views/layout.jade @@ -1,49 +1,106 @@ doctype html html(lang="fr") head - - - - - - - - - - - - - - - - - - - - - - + link(href="css/font-awesome.min.css", rel="stylesheet") + link(href="bootstrap-icons/font/bootstrap-icons.css", rel="stylesheet") + link(rel="stylesheet", type="text/css", href="css/style.css") + link(rel="stylesheet" title="cardsize", href="css/bigcards.css", type="text/css", media="all") if locals.faviconUrl - link(rel="icon" type="image/png" href=locals.faviconUrl) + link(rel="icon", type="image/png", href=locals.faviconUrl) else - link(rel="icon" type="image/png" href="/images/favicon.png") - + link(rel="icon", type="image/png", href="/images/favicon.png") title= locals.pageTitle - body - div#header-bar(data-url=locals.headerBarUrl) - header.container.main-header - div.title - a(href="//" + locals.url, title="Retour à la page d'accueil") - if locals.logoUrl - img.logo(src=locals.logoUrl, alt="logo Post-it") - else - img.logo(src="images/logo-Post-it.svg", alt="logo Post-it") - div.base-line Organiser ses idées collectivement - block header - main - block body - div.clearfix - footer.container - block footer - div.credits Logiciel libre basé sur Framemo et Scrumblr - Code source + div#site-wrapper + div#site-canvas + div#site-menu + a.toggle-nav.pull-right.close-link(href="#") Fermer   + i.fa.fa-times + + div#share + div.copy + h2 Partager le tableau + h3 par lien + div.form-inline + div.input-group + input.replace-url.form-control(disabled='disabled') + div.input-group-addon + a.copyurl(href='#', title='Copier l\'adresse du tableau dans votre presse-papier') + i.fa.fa-clipboard + h3 en iframe HTML + div.form-inline + div.input-group + textarea.share-iframe.form-control(disabled='disabled', name="html-widget", cols="30", rows="3") + <iframe src="{{replace-url}}" width="100%" height="600" frameborder="0"></iframe> + div.input-group-addon + a#copyurl(href='#', title='Copier l\'adresse du tableau dans votre presse-papier') + i.fa.fa-clipboard + div.export + h2 Exporter le tableau + button#export-txt.btn.btn-primary Format texte + button#export-csv.btn.btn-primary Format CSV + button#export-json.btn.btn-primary Format JSON (pour import dans Post-it) + + div#settings + h2 Image de fond + div.backgrounds + img.bg(src="images/backgrounds/lagune.jpg", alt="lagune") + img.bg(src="images/backgrounds/canoe.jpg", alt="canoe") + img.bg(src="images/backgrounds/ciel.jpg", alt="ciel") + img.bg(src="images/backgrounds/contreplaque.jpg", alt="contreplaque") + img.bg(src="images/backgrounds/muscaris.jpg", alt="muscaris") + img.bg(src="images/backgrounds/nuagesoir.jpg", alt="nuagesoir") + img.bg(src="images/backgrounds/osier.jpg", alt="osier") + img.bg(src="images/backgrounds/planches.jpg", alt="planches") + img.bg(src="images/backgrounds/ardoise.jpg", alt="ardoise") + img.bg(src="images/backgrounds/clouds.jpg", alt="clouds") + img.bg(src="images/backgrounds/crab.jpg", alt="crab") + img.bg(src="images/backgrounds/ecorces.jpg", alt="ecorces") + img.bg(src="images/backgrounds/kiwi.jpg", alt="kiwi") + img.bg(src="images/backgrounds/plants.jpg", alt="plants") + img.bg(src="images/backgrounds/straw.jpg", alt="straw") + img.bg(src="images/backgrounds/textile.jpg", alt="textile") + img.bg(src="images/backgrounds/trees.jpg", alt="trees") + img.bg(src="images/backgrounds/yellow-bamboos.jpg", alt="yellow-bamboos") + input.bgurl.form-control(type="url", placeholder="URL vers image de fond", name="bgurl") + div.revisions + h2 Révisions + button#create-revision.btn.btn-primary Créer une révision + div + ul#revisions-list + div.import + h2 Importer un tableau + div.form-inline + div.form-group + label(for="import-input") Fichier JSON à importer + input(type="file")#import-input.form-control + button#import-file.btn.btn-primary Importer + div#header-bar(data-url=locals.headerBarUrl) + header.container.main-header + div.title + a(href="/", title="Retour à la page d'accueil") + if locals.logoUrl + img.logo(src=locals.logoUrl, alt="logo Post-it") + else + img.logo(src="images/logo-Post-it.svg", alt="logo Post-it") + if (locals.home === true) + div.base-line Organiser ses idées collectivement + if (locals.demo === true) + div.base-line Tableau de démonstration.
    N’y mettez rien d’important ! + block header + main + block body + div.clearfix + footer.container + block footer + div.credits Logiciel libre basé sur Framemo et Scrumblr - Code source + script(src="/reload/reload.js") + script(src="lib/jquery.min.js") + script(src="lib/jquery-ui.min.js") + script(src="lib/jquery.ui.touch-punch.min.js") + script(src="lib/jquery.jeditable.js") + script(src="lib/jquery.blockUI.js") + script(src="lib/marked.min.js") + script(src="lib/moment-with-locales.min.js") + script(src="socket.io/socket.io.js") + script(src="script.js") \ No newline at end of file