From 370548f63ffc100c444367e53a9cd0ff7eec900f Mon Sep 17 00:00:00 2001 From: oguzhaninan Date: Tue, 30 May 2017 22:03:50 +0300 Subject: [PATCH] language and theme added --- assets/css/amaran.min.css | 2 +- assets/css/style.css | 330 ++++---- assets/css/themes/dark.css | 203 +++++ assets/css/themes/light.css | 215 +++++ assets/img/collapse-light.png | Bin 0 -> 347 bytes assets/img/fit-light.png | Bin 0 -> 319 bytes assets/img/settings.png | Bin 0 -> 485 bytes bundle/index.html | 5 +- package.json | 11 +- src/components/App.js | 34 +- src/components/dashboard/CircleBar.js | 8 +- src/components/dashboard/CpuBar.js | 2 +- src/components/dashboard/Dashboard.js | 4 +- src/components/dashboard/DiskBar.js | 2 +- src/components/dashboard/DownBar.js | 20 +- src/components/dashboard/MemoryBar.js | 2 +- src/components/dashboard/SystemInfo.js | 21 +- src/components/dashboard/UpBar.js | 8 +- src/components/process/Process.js | 48 ++ src/components/process/STable.js | 37 + src/components/process/proc.js | 30 + src/components/resources/CpuHistory.js | 2 +- src/components/resources/MemoryHistory.js | 6 +- src/components/resources/NetworkHistory.js | 10 +- src/components/services/Service.js | 6 +- src/components/services/Services.js | 6 +- src/components/settings/Settings.js | 46 ++ src/components/settings/theme-list.js | 4 + src/components/startup-apps/STApp.js | 2 +- src/components/startup-apps/StartupApps.js | 18 +- src/components/system-cleaner/SidebarItem.js | 2 +- .../system-cleaner/SystemCleaner.js | 28 +- src/components/system-cleaner/TableTitle.js | 2 +- src/components/uninstaller/Uninstaller.js | 58 +- src/index.js | 12 +- src/languages/Language.js | 15 + src/languages/lang-list.js | 5 + src/languages/langs/lang.en.js | 74 ++ src/languages/langs/lang.pt.js | 71 ++ src/languages/langs/lang.tr.js | 71 ++ src/utils/config.js | 4 +- yarn.lock | 752 +++++++++++++++++- 42 files changed, 1874 insertions(+), 302 deletions(-) create mode 100644 assets/css/themes/dark.css create mode 100644 assets/css/themes/light.css create mode 100644 assets/img/collapse-light.png create mode 100644 assets/img/fit-light.png create mode 100644 assets/img/settings.png create mode 100644 src/components/process/Process.js create mode 100644 src/components/process/STable.js create mode 100644 src/components/process/proc.js create mode 100644 src/components/settings/Settings.js create mode 100644 src/components/settings/theme-list.js create mode 100644 src/languages/Language.js create mode 100644 src/languages/lang-list.js create mode 100644 src/languages/langs/lang.en.js create mode 100644 src/languages/langs/lang.pt.js create mode 100644 src/languages/langs/lang.tr.js diff --git a/assets/css/amaran.min.css b/assets/css/amaran.min.css index 73a69c26..db83f008 100755 --- a/assets/css/amaran.min.css +++ b/assets/css/amaran.min.css @@ -1,6 +1,6 @@ .amaran-overlay{position:fixed;width:100%;height:100%;top:0;left:0;background:rgba(153,204,51,.9);display:block;z-index:777}.amaran-overlay .amaran-wrapper{z-index:9999} .amaran.awesome{width:300px;min-height:65px;background:#f3f3f3;color:#222;margin:15px;padding:5px 5px 5px 70px;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:16px;font-weight:600;box-shadow:1px 1px 1px #000}.amaran.awesome .icon{width:50px;height:50px;position:absolute;top:50%;left:10px;background:#000;margin-top:-25px;border-radius:50%;text-align:center;line-height:50px;font-size:22px}.amaran.awesome p{padding:0;margin:0}.amaran.awesome p span{font-weight:300}.amaran.awesome p span.light{font-size:13px;display:block;color:#777}.amaran.awesome.ok p.bold{color:#178B13}.amaran.awesome.ok .icon{background-color:#178B13;color:#fff}.amaran.awesome.error p.bold{color:#D82222}.amaran.awesome.error .icon{background-color:#D82222;color:#fff}.amaran.awesome.warning p.bold{color:#9F6000}.amaran.awesome.warning .icon{background-color:#9F6000;color:#fff}.amaran.awesome.yellow p.bold{color:#CFA846}.amaran.awesome.yellow .icon{background-color:#CFA846;color:#fff}.amaran.awesome.blue p.bold{color:#2980b9}.amaran.awesome.blue .icon{background-color:#2980b9;color:#fff}.amaran.awesome.green p.bold{color:#e12b28}.amaran.awesome.green .icon{background-color:#e12b28;color:#fff}.amaran.awesome.purple p.bold{color:#5B54AA}.amaran.awesome.purple .icon{background-color:#5B54AA;color:#fff} -.amaran.colorful{width:300px;min-height:45px;overflow:hidden;background-color:transparent;z-index:1}.amaran.colorful .colorful-inner{width:100%;min-height:45px;display:block;position:relative;background-color:#484860;padding:15px 25px 15px 15px;color:#fff;font-size:14px;border-bottom:1px solid rgba(0,0,0,.2);border-radius:4px}.amaran.colorful .amaran-close{color:#fff;z-index:2;top:8px;right:8px;text-align:center;line-height:18px}.amaran-wrapper.center .amaran.colorful{margin:0 auto} +.amaran.colorful{width:300px;min-height:45px;overflow:hidden;background-color:transparent;z-index:1}.amaran.colorful .colorful-inner{width:100%;min-height:45px;display:block;position:relative;background-color:#484860;padding:15px 25px 15px 15px;color:#fff;font-size:14px;border-bottom:1px solid rgba(0,0,0,.2);border-radius:4px}.amaran.colorful .amaran-close{color:#fff;z-index:2;top:8px;right:8px;text-align:center;line-height:23px}.amaran-wrapper.center .amaran.colorful{margin:0 auto} .amaran.default{width:300px;min-height:45px;background:#1B1E24;background:-webkit-linear-gradient(left,#111213,#111213 15%,#1b1e24 15%,#1b1e24);background:linear-gradient(to right,#111213,#111213 15%,#1b1e24 15%,#1b1e24);color:#fff;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:13px;font-weight:300;margin:5px;overflow:hidden;border-bottom:1px solid #111213;border-radius:6px}.amaran.default .default-spinner{width:45px;min-height:45px;display:block;float:left;position:relative}.amaran.default .default-spinner span{width:18px;height:18px;background:#27ae60;display:block;border-radius:50%;position:absolute;top:50%;left:50%;margin-left:-11px;margin-top:-9px}.amaran.default .default-message{padding:5px; width:240px; float:left}.amaran.default .default-message span{padding:3px;}.amaran.default .default-message:after{clear:both} @charset "UTF-8";.amaran-close,.amaran-sticky{height:20px;top:2px;cursor:pointer}.amaran-wrapper *{box-sizing:border-box}.amaran-wrapper{position:fixed;z-index:9999}.amaran-wrapper.top{top:0;bottom:auto}.amaran-wrapper.bottom{bottom:0;top:auto}.amaran-wrapper.left{left:0}.amaran-wrapper.right{right:0;left:auto}.amaran-wrapper.center{width:50%;height:50%;margin:auto;position:fixed;top:0;left:0;bottom:0;right:0}.amaran{width:200px;background:rgba(0,0,0,.7);padding:3px;color:#fff;border-radius:4px;display:none;font-size:13px;cursor:pointer;position:relative;text-align:left;min-height:50px;margin:10px}.amaran-close,.amaran-sticky{width:20px;display:block;position:absolute}.amaran-close{right:2px}.amaran-close:before{content:"x";color:#fff;font-weight:700;font-family:Arial,sans-serif;font-size:18px}.amaran-sticky{right:20px}.amaran-sticky:before{content:"●";color:#fff;font-weight:700;font-family:Arial,sans-serif;font-size:18px}.amaran-sticky.sticky:before{color:#e12b28} .amaran.user{width:300px;min-height:100px;background:#f3f3f3;color:#222;margin:15px;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:13px;font-weight:300;box-shadow:1px 1px 1px #000;border-radius:0;padding:0}.amaran.user .icon{width:100px;height:100px;position:relative;background:#000;float:left}.amaran.user img{max-width:100%}.amaran.user .info{padding-left:110px;padding-top:10px}.amaran.user b{display:block;font-size:16px}.amaran.user.blue{background:#2773ed;color:#fff}.amaran.user.yellow{background:#f4b300;color:#fff}.amaran.user.green{background:#78ba00;color:#fff} \ No newline at end of file diff --git a/assets/css/style.css b/assets/css/style.css index 59fe8a21..ff01216e 100755 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -43,148 +43,6 @@ button { } -/*-------------Colors---------------*/ - -body { - background-color: #202b33; -} - - -/*---------DASHBOARD---------*/ - - -/*Trail Color*/ - -svg path:first-child { - stroke: #202b33; -} - -.cont, -.line-cont { - background-color: #293945; - color: #eee; -} - -.cont h3, -.line-cont h3, -.system-info h3 { - color: #eee; -} - -.system-info ul li { - color: #748390; -} - - -/*---------DASHBOARD---------*/ - - -/*---------ITEM LIST---------*/ - -.switch+label, -.switch:not(:checked)+label:hover:active { - background-color: #EF4836; -} - -.switch+label::after { - background-color: #fff; -} - -.switch:checked+label { - box-shadow: inset 0 0 0 13px #4BD865; -} - -.scroll::-webkit-scrollbar-thumb { - background-color: #3d474e; -} - -.item-list ul li { - background-color: #293945; -} - -.item-list ul li:hover { - background-color: #3d474e; -} - -.item-list h3, -.item-list ul li { - color: #aeb5bf; -} - -.item-list input[type=text] { - background-color: #202b33; - border: 1px solid #3d474e; - color: #aeb5bf; -} - - -/*---------ITEM LIST---------*/ - - -/*---------ITEM TABLE---------*/ - -.item-table { - border: 1px solid #3d474e; -} - -.item-table ul li { - border-bottom: 1px solid #3d474e; -} - -.item-table ul li:hover { - background-color: #293945; -} - -.cleaner-side i, -.item-table i { - background-color: #748390; -} - -.item-table input[type=checkbox]:checked+i::after, -.cleaner-side input[type=checkbox]:checked+i::after { - background-color: #293945; -} - -.item-table span { - color: #aeb5bf; -} - -.item-table h3 { - background-color: #293945; - color: #aeb5bf; -} - -.cleaner-side ul li label { - color: #aeb5bf; -} - -.cleaner-side ul li { - border: 1px solid #3d474e; -} - -.cleaner-side ul li label:hover { - background-color: #293945; - color: #2285c3; -} - -#clean-btn, -#system-scan-btn { - color: #eee; - border: 1px solid #293945; -} - -#clean-btn:hover, -#system-scan-btn:hover { - background-color: #293945; -} - - -/*---------ITEM TABLE---------*/ - - -/*------------------------------------------------------------------*/ - - /*---------DASHBOARD---------*/ .cont, @@ -345,7 +203,7 @@ svg path:first-child { cursor: pointer; font-size: 15px; margin: 6px 3px; - width: calc(100% - 68px); + width: calc(100% - 70px); border-radius: 4px; padding: 10px 15px 10px 50px; } @@ -408,19 +266,13 @@ svg path:first-child { } .add-startup-app { - background-color: #2196f3; border: 0; padding: 8px 15px; - color: #eee; float: right; margin: 10px 140px 0px 0px; border-radius: 4px; } -.add-startup-app:hover { - background-color: #2285c3; -} - /*---------STARTUP APPS---------*/ @@ -442,6 +294,9 @@ svg path:first-child { /*---------UNINSTALLER---------*/ +.uninstaller-list { + height: 510px; +} .uninstaller-list ul { float: left; @@ -453,6 +308,48 @@ svg path:first-child { background-position: 13px 9px; } +.check { + float: left; + width: 20px; + height: 20px; + background: #ddd; + margin: 1px 10px 0px 0px; + border-radius: 100%; + position: relative; +} + +.check label { + display: block; + width: 16px; + height: 16px; + border-radius: 100px; + cursor: pointer; + position: absolute; + top: 2px; + left: 2px; + z-index: 1; + background-color: #3d474e; +} + +.check input[type=checkbox]:checked + label { + background: #2285c3; +} + +#uninstall-selected { + padding: 7px 15px; + color: #aeb5bf; + border: 1px solid #293945; + cursor: pointer; + font-size: 15px; + margin: 15px 268px; + background-color: transparent; + border-radius: 4px; +} + +#uninstall-selected:hover { + background-color: #293945; +} + .uninstaller-list ul li a { width: 24px; height: 24px; @@ -489,7 +386,7 @@ svg path:first-child { .item-table { float: right; margin: 10px 10px 0px 0px; - width: 650px; + width: 630px; height: 500px; } @@ -574,7 +471,7 @@ input[type=checkbox] { .cleaner-side { margin: 10px 0 0 10px; - width: 180px; + width: 200px; float: left; position: relative; } @@ -588,13 +485,13 @@ input[type=checkbox] { .cleaner-side ul li { padding: 0; - margin: 0 0 6px 0; + margin: 0 0 8px 0; } .cleaner-side ul li label { display: block; padding: 10px 0px 10px 10px; - width: 175px; + width: 195px; font-size: 14px; cursor: pointer; position: relative; @@ -606,6 +503,11 @@ input[type=checkbox] { .cleaner-side span { margin-left: 22px; + width: 160px; + display: block; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; } @@ -622,7 +524,6 @@ input[type=checkbox] { display: block; float: left; padding: 10px; - color: #aeb5bf; font-weight: 400; margin: 0; } @@ -631,7 +532,6 @@ input[type=checkbox] { #memory-chart, #network-chart { float: left; - background-color: #293945; height: 125px; width: calc(100% - 20px); padding: 10px; @@ -645,14 +545,9 @@ input[type=checkbox] { width: 15px; height: 15px; border: 0; - background: url(../img/fit.png) no-repeat 0 0; margin: 1px 0px 0px 10px; } -.collapse { - background: url(../img/collapse.png) no-repeat 0 0; -} - /*---------STATISTICS---------*/ @@ -663,7 +558,6 @@ input[type=checkbox] { width: 100%; float: left; margin: 30px auto; - color: #748390; display: block; background: url(../img/not-found.png) no-repeat center 30px; } @@ -693,8 +587,7 @@ input[type=checkbox] { } #nav li { - color: #eee; - padding: 0px 10px; + padding: 0px 6px; display: inline-block; } @@ -708,17 +601,7 @@ input[type=checkbox] { font-size: 16px; transition: 0.9s ease; padding: 6px; -} - -#nav li label:hover { - cursor: pointer; - color: white; -} - -.nav-active, -#nav li label:hover { - color: #47b1f3; - border-bottom: 1px solid #47b1f3; + border: 1px solid transparent; } .slide-fade-enter-active { @@ -829,4 +712,103 @@ input[type=checkbox] { .dialog button:hover { background-color: #293945; +} + + +/*----SETTINGS-----*/ + +.settings { + width: 844px; + padding: 0 15px; +} + +.settings h3 { + margin: 0 0 20px 0; + padding-bottom: 6px; + font-size: 17px; + font-weight: normal; + border-bottom: 1px solid #2285c3; + color: #2285c3; +} + +.settings div { + float: left; + margin: 0 25px 0 0; +} + +.settings div label { + float: left; + font-size: 15px; + padding: 0 0 5px 0; +} + +.settings div select { + float: left; + border: 0px; + border-radius: 3px; + clear: left; + margin: 8px 0 0 0; + padding: 5px 10px; + width: 150px; +} + +.settings-btn { + position: fixed; + top: 7px; + padding: 0; + right: 0; + width: 30px; + height: 30px; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + border: 0; +} + +/*------Processes--------*/ + +.processes { + float: left; + position: relative; + margin: 20px 20px 0 20px; + padding: 0; + width: calc(100% - 40px); +} + + +/*-----STable-----*/ + +.stable { + background-color: #3d474e; + width: 100%; + height: 550px; + margin: 0; + padding: 0; + text-align: left; + box-sizing: border-box; + font-size: 15px; + border-radius: 5px; + table-layout: fixed; + border-spacing: 1px; +} + +.stable tr { + background-color: #293945; + color: #a9b1bb; +} + +.stable tr:hover { + cursor: pointer; + background-color: #3d474e; +} + +.stable th { + color: #2285c3; +} + +.stable td, +.stable th { + padding: 8px; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; } \ No newline at end of file diff --git a/assets/css/themes/dark.css b/assets/css/themes/dark.css new file mode 100644 index 00000000..9f7b5631 --- /dev/null +++ b/assets/css/themes/dark.css @@ -0,0 +1,203 @@ +/** + author @oguzhaninan +*/ + +/*----------Colors-----------*/ + +.dark { + background-color: #202b33; +} + + +/*---------DASHBOARD---------*/ + + +/*Trail Color*/ + +.dark svg path:first-child { + stroke: #202b33; +} + +.dark .cont, +.dark .line-cont { + background-color: #293945; + color: #eee; +} + +.dark .cont h3, +.dark .line-cont h3, +.dark .system-info h3 { + color: #eee; +} + +.dark .system-info ul li { + color: #748390; +} + +.dark #nav li { + color: #eee; +} + +.dark .nav-active, +.dark #nav li label:hover { + color: #47b1f3; + border-bottom: 1px solid #47b1f3; +} + + +/*---------DASHBOARD---------*/ + + +/*---------ITEM LIST---------*/ + +.dark .switch+label, +.dark .switch:not(:checked)+label:hover:active { + background-color: #EF4836; +} + +.dark .switch+label::after { + background-color: #fff; +} + +.dark .switch:checked+label { + box-shadow: inset 0 0 0 13px #4BD865; +} + +.dark .scroll::-webkit-scrollbar-thumb { + background-color: #3d474e; +} + +.dark .item-list ul li { + background-color: #293945; +} + +.dark .item-list ul li:hover { + background-color: #3d474e; +} + +.dark .item-list h3, +.dark .item-list ul li { + color: #aeb5bf; +} + +.dark .item-list input[type=text] { + background-color: #202b33; + border: 1px solid #3d474e; + color: #aeb5bf; +} + + +/*---------ITEM LIST---------*/ + + +/*---------ITEM TABLE---------*/ + +.dark .item-table { + border: 1px solid #3d474e; +} + +.dark .item-table ul li { + border-bottom: 1px solid #3d474e; +} + +.dark .item-table ul li:hover { + background-color: #293945; +} + +.dark .cleaner-side i, +.dark .item-table i { + background-color: #748390; +} + +.dark .item-table input[type=checkbox]:checked+i::after, +.dark .cleaner-side input[type=checkbox]:checked+i::after { + background-color: #293945; +} + +.dark .item-table span { + color: #aeb5bf; +} + +.dark .item-table h3 { + background-color: #293945; + color: #aeb5bf; +} + +.dark .cleaner-side ul li label { + color: #aeb5bf; +} + +.dark .cleaner-side ul li { + border: 1px solid #3d474e; +} + +.dark .cleaner-side ul li label:hover { + background-color: #293945; + color: #2285c3; +} + +.dark #clean-btn, +.dark #system-scan-btn { + color: #eee; + border: 1px solid #293945; +} + +.dark #clean-btn:hover, +.dark #system-scan-btn:hover { + background-color: #293945; +} + + +/*---------ITEM TABLE---------*/ + +.dark .add-startup-app { + background-color: #2196f3; + color: #eee; +} + +.dark .add-startup-app:hover { + background-color: #2285c3; +} + +.dark .resources h4 { + color: #aeb5bf; +} + +.dark .fit-chart { + background: url(../../img/fit.png) no-repeat 0 0; +} + +.dark .collapse { + background: url(../../img/collapse.png) no-repeat 0 0; +} + +.dark #cpus-chart, +.dark #memory-chart, +.dark #network-chart { + background-color: #293945; +} + +.dark .empty-list { + color: #748390; +} + + +/*----SETTINGS-----*/ + +.dark .settings h3 { + border-bottom: 1px solid #2285c3; + color: #2285c3; +} + +.dark .settings div label { + color: #748390; +} + +.dark .settings div select { + background-color: #293945; + color: #fff; +} + +.dark .settings-btn { + background: #293945 url(../../img/settings.png) no-repeat 6px center; +} \ No newline at end of file diff --git a/assets/css/themes/light.css b/assets/css/themes/light.css new file mode 100644 index 00000000..c2769a48 --- /dev/null +++ b/assets/css/themes/light.css @@ -0,0 +1,215 @@ +/*-------------Colors---------------*/ + +.light { + background-color: #eef4f6; +} + + +/*---------DASHBOARD---------*/ + + +/*Trail Color*/ + +.light svg path:first-child { + stroke: #ddd; +} + +.light .cont, +.light .line-cont { + background-color: #fff; + box-shadow: 0px 0px 20px 0px #ddd; + color: #6d7278; +} + +.light .cont h3, +.light .line-cont h3, +.light .system-info h3 { + color: #6d7278; +} + +.light .system-info ul li { + color: #6d7278; +} + +.light #nav li { + color: #6d7278; +} + +.light .nav-active, +.light #nav li label:hover { + color: #47b1f3; + border-bottom: 1px solid #47b1f3; +} + + +/*---------DASHBOARD---------*/ + + +/*---------ITEM LIST---------*/ + +.light .switch+label, +.light .switch:not(:checked)+label:hover:active { + background-color: #EF4836; +} + +.light .switch+label::after { + background-color: #fff; +} + +.light .switch:checked+label { + box-shadow: inset 0 0 0 13px #4BD865; +} + +.light .scroll::-webkit-scrollbar-thumb { + background-color: #748390; +} + +.light .item-list ul li { + background-color: #fff; + box-shadow: 0px 0px 10px 0px #ddd; +} + +.light .item-list ul li:hover { + background-color: #748390; + color: #fff; +} + +.light .item-list h3, +.light .item-list ul li { + color: #6d7278; +} + +.light .item-list input[type=text] { + background-color: #fff; + border: 1px solid #eee; + box-shadow: 0px 0px 5px 0px #ddd; + color: #aeb5bf; +} + + +/*---------ITEM LIST---------*/ + + +/*---------ITEM TABLE---------*/ + +.light .item-table { + background-color: #fff; + box-shadow: 0px 0px 20px 0px #ddd; + border: 0; +} + +.light .item-table ul li { + border-bottom: 1px solid #ddd; +} + +.light .item-table ul li:hover { + background-color: #bdc4ca; +} + +.light .cleaner-side i, +.light .item-table i { + background-color: #748390; +} + +.light .item-table input[type=checkbox]:checked+i::after, +.light .cleaner-side input[type=checkbox]:checked+i::after { + background-color: #293945; +} + +.light .item-table li span { + color: #aeb5bf; +} + +.light .item-table li span:hover { + color: #fff; +} + +.light .item-table h3, +.light .item-table h3 span { + background-color: #bdc4ca; + color: #fff; +} + +.light .cleaner-side ul li label { + color: #aeb5bf; +} + +.light .cleaner-side ul li { + background-color: #fff; + box-shadow: 0px 0px 20px 0px #ddd; + border: 0; +} + +.light .cleaner-side ul li label:hover { + background-color: #bdc4ca; + color: #2285c3; +} + +.light #clean-btn, +.light #system-scan-btn { + color: #fff; + background-color: #bdc4ca; + box-shadow: 0px 0px 20px 0px #ddd; + border: 0; +} + +.light #clean-btn:hover, +.light #system-scan-btn:hover { + background-color: #748390; +} + + +/*---------ITEM TABLE---------*/ + +.light .add-startup-app { + background-color: #2196f3; + color: #eee; +} + +.light .add-startup-app:hover { + background-color: #2285c3; +} + +.light .resources h4 { + color: #6d7278; +} + +.light .fit-chart { + background: url(../../img/fit-light.png) no-repeat 0 0; +} + +.light .collapse { + background: url(../../img/collapse-light.png) no-repeat 0 0; +} + +.light #cpus-chart, +.light #memory-chart, +.light #network-chart { + background-color: #fff; + box-shadow: 0px 0px 20px 0px #ddd; +} + +.light .empty-list { + color: #748390; +} + + +/*----SETTINGS-----*/ + +.light .settings h3 { + border-bottom: 1px solid #2285c3; + color: #2285c3; +} + +.light .settings div label { + color: #6d7278; +} + +.light .settings div select { + background-color: #748390; + color: #fff; +} + +.light .settings-btn { + background: #6d7278 url(../../img/settings.png) no-repeat 6px center; +} \ No newline at end of file diff --git a/assets/img/collapse-light.png b/assets/img/collapse-light.png new file mode 100644 index 0000000000000000000000000000000000000000..031bc96f86c219a442ba8c1c28d5c205630b336b GIT binary patch literal 347 zcmV-h0i^zkP) z!BN9N4Ad(8Ne7_>Iv{l5RDe?fcw+K2N1lm22^C-}AXI?qfD%Fn<_{9O8|*NifeGQk zy>ut7PSUR6iXv8}E6DrEO{dRf$1RtAmn5~fyLUIAA1n7B0ZNc9@*2RQ1=S!O3sFRh z&FpgG8gRBKoCOce|Dc3hd+#gh3w$O4SDy(&yjAjK;Ncgr`RSy&tLiJO3=zu8^T;yZ zZ=FAbt%8wD({%u6d0v8Wwkz1;%IkD8h98c+$%Q?%Wtv@ed+z%AfLGz?ea}CFL(d}T zP;Glwg{P{+vu>#ZDrUafYuYA|yIGpXf8)8)s+Zg^c&=?1PGJJsm_Pl} tiPoZ2w!7fBN>m+-M7wU4aIdtFRv+wq!sWz~*Iobs002ovPDHLkV1nwbo5}zH literal 0 HcmV?d00001 diff --git a/assets/img/fit-light.png b/assets/img/fit-light.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8197089cc96fd2798d7dcc63cdd944a25fea1a GIT binary patch literal 319 zcmV-F0l@x=P)S2$OLpkz$YLo@j=e*28kj5s1HE&x;pOAkj&c0$UPJ9!KrsOs)|?fy^5jjBrLY*#Q)dj#*PZP_uZ zc57p&ww18T1faEJsP?aoT+`GUA$tik0brZFO9^AU$|gvE=e}&;`d1Or_ZbqctkgSX RvAh5P002ovPDHLkV1hnejVu5F literal 0 HcmV?d00001 diff --git a/assets/img/settings.png b/assets/img/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..c8395f07dcae1360403709d99860e10fb568bd7c GIT binary patch literal 485 zcmV*p)tp3?Ifq-2Qb1DgZ7C@X`PxdmBgnR%O7UlnX%C1XSI4 zFi7>qJ2^uaU?ln`iFh&z5cnelNa??>J(Fi>z!=>823GW&&=b;A_cF?8zw}}Y3+e#Q zQra~4QBW4A65hw6ALv*P7|-Vo^|ej`;PensMEv9@wIJ^GbmkjCz46MfgiFdlk@B4_ z4h`T`uKWy1*%!{#J&|8m2p!u(&f7BL?>qs(vMoO)4MuIEg~^xOm&Nl)LO}+8 zTeyd)ecEvpX+`rDOBo`A=UsdpA5fRf5E|AEUKzf)}t|$jv{ekXtA$%U83zo zk%R_dxYg*y8QodBG1o0cQMBR=0$$^x_2$m;rM - + + + + diff --git a/package.json b/package.json index 37e3dd8a..9a072d5f 100644 --- a/package.json +++ b/package.json @@ -22,14 +22,11 @@ "build": { "linux": { "icon": "assets/img/icons" - }, - "target": [ - "arch" - ] + } }, "homepage": "https://github.com/oguzhaninan/Stacer", "scripts": { - "start": "electron .", + "start": "yarn run build; electron .", "build": "babel src/ -d bundle/", "clean": "rm bundle/*.js bundle/**/*.js", "package-x86": "electron-packager . --overwrite --platform=linux --arch=ia32 --icon=assets/img/icons/icon256x256.png --prune=true --out=release-builds --electron-version=1.6.2", @@ -44,12 +41,12 @@ "chart.js": "^2.5.0", "chartkick": "^2.2.3", "chokidar": "^1.6.1", + "glob": "^7.1.2", "jquery": "^3.1.1", "progressbar.js": "^1.0.1", "properties-reader": "^0.0.15", "sudo-prompt": "^6.2.1", - "systeminformation": "^3.13.0", - "vuex": "^2.2.1" + "systeminformation": "^3.13.0" }, "devDependencies": { "babel-cli": "^6.24.0", diff --git a/src/components/App.js b/src/components/App.js index a24f45f9..d53e33d2 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -2,19 +2,23 @@ import Dashboard from './dashboard/Dashboard' import SystemCleaner from './system-cleaner/SystemCleaner' import StartupApps from './startup-apps/StartupApps' import Services from './services/Services' +import Process from './process/Process' import Uninstaller from './uninstaller/Uninstaller' import Resources from './resources/Resources' +import Settings from './settings/Settings' export default { template: `
- + @@ -24,10 +28,14 @@ export default { - - - + + + + + + +
@@ -45,7 +53,7 @@ export default {
`, data() { return ({ - activeNav: 1 + activeNav: 5 }) }, components: { @@ -53,7 +61,9 @@ export default { 'system-cleaner': SystemCleaner, 'startup-apps': StartupApps, 'services': Services, + 'process': Process, 'uninstaller': Uninstaller, - 'resources': Resources + 'resources': Resources, + 'settings': Settings, } } \ No newline at end of file diff --git a/src/components/dashboard/CircleBar.js b/src/components/dashboard/CircleBar.js index 91665d2c..8d67f90a 100644 --- a/src/components/dashboard/CircleBar.js +++ b/src/components/dashboard/CircleBar.js @@ -1,14 +1,14 @@ const { - BrowserWindow, + BrowserWindow, ipcRenderer } = require('electron') export default { template: `

{{ title }}

- - - + + + {{ text }}
`, diff --git a/src/components/dashboard/CpuBar.js b/src/components/dashboard/CpuBar.js index 9ea1e974..65e2ceba 100644 --- a/src/components/dashboard/CpuBar.js +++ b/src/components/dashboard/CpuBar.js @@ -5,7 +5,7 @@ import si from 'systeminformation' import CircleBar from './CircleBar' export default { - template: ``, + template: ``, components: { 'circle-bar': CircleBar }, diff --git a/src/components/dashboard/Dashboard.js b/src/components/dashboard/Dashboard.js index a98b2fcb..ddb6a3d6 100644 --- a/src/components/dashboard/Dashboard.js +++ b/src/components/dashboard/Dashboard.js @@ -23,9 +23,9 @@ export default {
- There are updates currently available. + {{ lang('updateMsg') }}
diff --git a/src/components/dashboard/DiskBar.js b/src/components/dashboard/DiskBar.js index b3f8809e..12694312 100644 --- a/src/components/dashboard/DiskBar.js +++ b/src/components/dashboard/DiskBar.js @@ -6,7 +6,7 @@ import helpers from '../../utils/helpers' import CircleBar from './CircleBar' export default { - template: ``, + template: ``, components: { 'circle-bar': CircleBar }, diff --git a/src/components/dashboard/DownBar.js b/src/components/dashboard/DownBar.js index 6ed9bdd2..3b20f9c6 100644 --- a/src/components/dashboard/DownBar.js +++ b/src/components/dashboard/DownBar.js @@ -5,14 +5,13 @@ import si from 'systeminformation' export default { template: `
-

DOWNLOAD

+

{{ lang('download') }}

- {{ this.downSpeed + this.unit }} + {{ downSpeed + ' kB/s' }}
`, data() { return ({ - downSpeed: 0, - unit:'KiB/s' + downSpeed: 0 }) }, mounted() { @@ -24,20 +23,17 @@ export default { }) let max = 1000 - // Get network nameMath.abs(data.rx_sec / 1024).toFixed(2) || 0.00 + // Get network name si.networkInterfaceDefault(defaultNetwork => { setInterval(() => { // get down speed si.networkStats(defaultNetwork, data => { - speedInKB = Math.abs(data.rx_sec / 1024).toFixed(2) || 0.00 - if(speedInKB>1024){ - speedInKB = speedInKB/1024 - this.unit = 'MiB/s' - } - this.downSpeed = speedInKB + let speed = Math.abs(data.rx_sec / 1024).toFixed(2) + this.downSpeed = speed > 0 ? speed : 0 // down bar update max = max < this.downSpeed ? this.downSpeed : max - downBar.animate(this.downSpeed / max) + let percent = this.downSpeed / max < 1 ? this.downSpeed / max : 1 + downBar.animate(percent) }) }, 1000) }) diff --git a/src/components/dashboard/MemoryBar.js b/src/components/dashboard/MemoryBar.js index 02f8cd08..8783fa96 100644 --- a/src/components/dashboard/MemoryBar.js +++ b/src/components/dashboard/MemoryBar.js @@ -6,7 +6,7 @@ import helpers from '../../utils/helpers' import CircleBar from './CircleBar' export default { - template: ``, + template: ``, components: { 'circle-bar': CircleBar }, diff --git a/src/components/dashboard/SystemInfo.js b/src/components/dashboard/SystemInfo.js index c8810104..64c4de07 100644 --- a/src/components/dashboard/SystemInfo.js +++ b/src/components/dashboard/SystemInfo.js @@ -2,7 +2,7 @@ import si from 'systeminformation' export default { template: `
-

SYSTEM INFO

+

{{ lang('systemInfo') }}

  • {{ info }}
`, data() { @@ -12,15 +12,20 @@ export default { }, created() { si.osInfo(o => { - this.information.push("Hostname: " + o.hostname) - this.information.push("Platform: " + o.platform + " " + o.arch) - this.information.push("Distribution: " + o.distro + " " + o.release) - this.information.push("Kernel Release: " + o.kernel) + this.information.push(lang('hostname') + ': ' + isUndefined(o.hostname)) + this.information.push(lang('platform') + ': ' + isUndefined(o.platform) + " " + isUndefined(o.arch)) + this.information.push(lang('distribution') + ': ' + isUndefined(o.distro) + " " + isUndefined(o.release)) + this.information.push(lang('kernelRel') + ': ' + isUndefined(o.kernel)) si.cpu(c => { - this.information.push("Cpu Model: " + c.manufacturer + " " + c.brand) - this.information.push("Cpu Speed: " + c.speed + "GHz") - this.information.push("Cpu Cores: " + c.cores) + this.information.push(lang('cpuModel') + ': ' + isUndefined(c.manufacturer) + " " + isUndefined(c.brand)) + this.information.push(lang('cpuSpeed') + ': ' + isUndefined(c.speed) + "GHz") + this.information.push(lang('cpuCores') + ': ' + c.cores) }) }) } +} + +function isUndefined(o) { + if(typeof o == 'string') return o + else return 'Undefined' } \ No newline at end of file diff --git a/src/components/dashboard/UpBar.js b/src/components/dashboard/UpBar.js index c62ae411..c0748582 100644 --- a/src/components/dashboard/UpBar.js +++ b/src/components/dashboard/UpBar.js @@ -5,7 +5,7 @@ import si from 'systeminformation' export default { template: `
-

UPLOAD

+

{{ lang('upload') }}

{{ this.upSpeed + ' kB/s' }}
`, @@ -28,10 +28,12 @@ export default { setInterval(() => { // get upload speed si.networkStats(defaultNetwork, data => { - this.upSpeed = Math.abs(data.tx_sec / 1024).toFixed(2) || 0.00 + let speed = Math.abs(data.tx_sec / 1024).toFixed(2) + this.upSpeed = speed > 0 ? speed : 0 // up bar update max = max < this.upSpeed ? this.upSpeed : max - upBar.animate(this.upSpeed / max) + let percent = this.upSpeed / max < 1 ? this.upSpeed / max : 1 + upBar.animate(percent) }) }, 1000) }) diff --git a/src/components/process/Process.js b/src/components/process/Process.js new file mode 100644 index 00000000..c08b5c97 --- /dev/null +++ b/src/components/process/Process.js @@ -0,0 +1,48 @@ + +import proc from './proc' + +export default { + template: ` +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
PIDProcess NameStatus
{{ p.pid }} + {{ p.comm }}{{ p.state }}
Andrew Chalkley + andrew@example.comFront-End Developer
Dave McFarland + dave@example.comFront-End Developer
+
+
+
`, + data() { + return({ + processes: proc() + }) + }, + created() { + }, + components: { + + } +} \ No newline at end of file diff --git a/src/components/process/STable.js b/src/components/process/STable.js new file mode 100644 index 00000000..e8c16b52 --- /dev/null +++ b/src/components/process/STable.js @@ -0,0 +1,37 @@ + + +export default { + template: ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Process
PIDProcess NameStatus
Nick Pettitnick@example.comWeb Designer
Andrew Chalkleyandrew@example.comFront-End Developer
Dave McFarlanddave@example.comFront-End Developer
Guil Hernandezguil@example.comWeb Designer
+ ` +} \ No newline at end of file diff --git a/src/components/process/proc.js b/src/components/process/proc.js new file mode 100644 index 00000000..eac3279e --- /dev/null +++ b/src/components/process/proc.js @@ -0,0 +1,30 @@ +var fs = require('fs') + +var glob = require("glob") + +export default () => { + let processesList = [] + glob('/proc/[0-9]*', (er, procs) => { + // get all process ids + procs.forEach(pid => { + fs.readFile(`${pid}/stat`, 'utf-8', (err, data) => { + processesList.push(procStat(data)); + }) + }) + }) + + return processesList +} + +function procStat(data) { + var columns = data.split(' ') + + return { + pid: columns[0], + comm: columns[1], + state: columns[2], + ppid: columns[3], + pgrp: columns[4], + session: columns[5] + } +} \ No newline at end of file diff --git a/src/components/resources/CpuHistory.js b/src/components/resources/CpuHistory.js index 7db83cba..b4d04d92 100644 --- a/src/components/resources/CpuHistory.js +++ b/src/components/resources/CpuHistory.js @@ -3,7 +3,7 @@ import Chartkick from 'chartkick' export default { template: `
-

Cpu History

+

{{ lang('cpuHistory') }}

`, props: ['fheight'], diff --git a/src/components/resources/MemoryHistory.js b/src/components/resources/MemoryHistory.js index f7ec564e..b8ce3ac5 100644 --- a/src/components/resources/MemoryHistory.js +++ b/src/components/resources/MemoryHistory.js @@ -4,7 +4,7 @@ import Chartkick from 'chartkick' export default { template: `
-

Memory History

+

{{ lang('memHistory') }}

`, props: ['fheight'], @@ -48,12 +48,12 @@ export default { this.memoryData = [] this.memoryData.push({ - name: "Memory", + name: lang('memory'), data: this.memoryValues[0].map((d, i) => [this.seconds[i], d]) }) this.memoryData.push({ - name: "Swap", + name: lang('swap').toString().toUpperCase(), data: this.memoryValues[1].map((d, i) => [this.seconds[i], d]) }) diff --git a/src/components/resources/NetworkHistory.js b/src/components/resources/NetworkHistory.js index bc78f5b9..c70b4a35 100644 --- a/src/components/resources/NetworkHistory.js +++ b/src/components/resources/NetworkHistory.js @@ -4,7 +4,7 @@ import Chartkick from 'chartkick' export default { template: `
-

Network History

+

{{ lang('networkHistory') }}

`, props: ['fheight'], @@ -39,18 +39,18 @@ export default { this.networkValues.forEach((n, i) => this.networkValues[i].splice(0, 1)) - this.networkValues[0].push(Math.abs(downSpeed)) - this.networkValues[1].push(Math.abs(upSpeed)) + this.networkValues[0].push(downSpeed > 0 ? downSpeed : 0) + this.networkValues[1].push(upSpeed > 0 ? upSpeed : 0) this.networkData = [] this.networkData.push({ - name: "Download", + name: lang('download'), data: this.networkValues[0].map((d, i) => [this.seconds[i], d]) }) this.networkData.push({ - name: "Upload", + name: lang('upload'), data: this.networkValues[1].map((d, i) => [this.seconds[i], d]) }) diff --git a/src/components/services/Service.js b/src/components/services/Service.js index 82c0789e..9c764f80 100644 --- a/src/components/services/Service.js +++ b/src/components/services/Service.js @@ -30,15 +30,15 @@ export default { (error, stdout, stderr) => { if (stderr) { e.target.checked = ! isChecked - showMessage('Operation not successful.', 'error') + showMessage(lang('opFail'), 'error') } else { - showMessage(serviceName + ' service ' + status + (e.target.checked ? 'ed' : 'ped'), 'success') + showMessage(serviceName + lang('service').toLowerCase() + status + (e.target.checked ? 'ed' : 'ped'), 'success') } this.isBusy = false }) } else { - showMessage('Another process continues.', 'error') + showMessage(lang('anotherProc'), 'error') } } } diff --git a/src/components/services/Services.js b/src/components/services/Services.js index ff0edede..da281c25 100644 --- a/src/components/services/Services.js +++ b/src/components/services/Services.js @@ -17,14 +17,14 @@ export default {
-

System Services ({{ filteredServices.length }})

- +

{{ lang('serviceTitle') }} ({{ filteredServices.length }})

+
- No service found. + {{ lang('noService') }}
diff --git a/src/components/settings/Settings.js b/src/components/settings/Settings.js new file mode 100644 index 00000000..81d150da --- /dev/null +++ b/src/components/settings/Settings.js @@ -0,0 +1,46 @@ +import LanguageList from '../../languages/lang-list' +import ThemeList from './theme-list' +import { showMessage } from '../../utils/helpers' + +export default { + template: ` +
+

{{ lang('appSettings') }}

+
+ + +
+
+ + +
+
+
`, + data() { + return({ + langList: LanguageList, + selectedLang: '', + + themeList: ThemeList, + selectedTheme: '' + }) + }, + created() { + this.selectedLang = localStorage.getItem('appLanguage') || 'en' + this.selectedTheme = localStorage.getItem('appTheme') || 'dark' + }, + methods: { + langChange() { + localStorage.setItem('appLanguage', this.selectedLang) + showMessage(lang('changedLang'), 'warning') + }, + themeChange() { + localStorage.setItem('appTheme', this.selectedTheme) + document.body.classList = [this.selectedTheme] + } + } +} diff --git a/src/components/settings/theme-list.js b/src/components/settings/theme-list.js new file mode 100644 index 00000000..823159ef --- /dev/null +++ b/src/components/settings/theme-list.js @@ -0,0 +1,4 @@ +export default { + "dark": "Dark", + "light": "Light" +} \ No newline at end of file diff --git a/src/components/startup-apps/STApp.js b/src/components/startup-apps/STApp.js index ab45d948..ae5daf58 100644 --- a/src/components/startup-apps/STApp.js +++ b/src/components/startup-apps/STApp.js @@ -34,7 +34,7 @@ export default { fs.writeFileSync(commands.autostartApps + '/' + fileName, data) } catch (err) { console.log(err) - showMessage('Operation failed.', 'error') + showMessage(lang('opFail'), 'error') } } } diff --git a/src/components/startup-apps/StartupApps.js b/src/components/startup-apps/StartupApps.js index ad7cbf44..ebb0f29f 100644 --- a/src/components/startup-apps/StartupApps.js +++ b/src/components/startup-apps/StartupApps.js @@ -13,25 +13,25 @@ export default { template: `
-

System Startup Applications ({{ apps.length }})

+

{{ lang('startupTitle') }} ({{ apps.length }})

- No startup apps found. + {{ lang('noStartup') }}
- +
- Application - - - - - + {{ lang('app') }} + + + + +
diff --git a/src/components/system-cleaner/SidebarItem.js b/src/components/system-cleaner/SidebarItem.js index 224b913f..3a215729 100644 --- a/src/components/system-cleaner/SidebarItem.js +++ b/src/components/system-cleaner/SidebarItem.js @@ -3,7 +3,7 @@ export default { `, props: ['length', 'text'] diff --git a/src/components/system-cleaner/SystemCleaner.js b/src/components/system-cleaner/SystemCleaner.js index e42e61b2..621147c3 100644 --- a/src/components/system-cleaner/SystemCleaner.js +++ b/src/components/system-cleaner/SystemCleaner.js @@ -20,33 +20,33 @@ export default {
    - + - + - + - + - +
- +
    - + @@ -55,7 +55,7 @@ export default { - + @@ -64,7 +64,7 @@ export default { - + @@ -73,7 +73,7 @@ export default { - + @@ -83,7 +83,7 @@ export default {
- +
`, @@ -243,7 +243,7 @@ export default { }, (error, stdout, stderr) => { if (stderr) - showMessage(`System cleaning failed.`, 'error') + showMessage(lang('sysCleanFail'), 'error') else { this.pkgCachesList = this.pkgCachesList.filter(item => this.checkedPkgCaches.indexOf(item) == -1) this.crashReportsList = this.crashReportsList.filter(item => this.checkedCrashReports.indexOf(item) == -1) @@ -256,7 +256,7 @@ export default { this.checkedAppCaches = [] this.trashSize = '0 Bytes' - showMessage(`System cleaned.`, 'success') + showMessage(lang('sysCleanSuc'), 'success') } }) } @@ -286,7 +286,7 @@ export default { watch: { appCacheSelect: checked => { if (checked) - showMessage('Deleting applications\' caches can cause problems. Please be careful.', 'warning') + showMessage(lang('appCacheWarning'), 'warning') } } } \ No newline at end of file diff --git a/src/components/system-cleaner/TableTitle.js b/src/components/system-cleaner/TableTitle.js index fc52992d..7776e9a5 100644 --- a/src/components/system-cleaner/TableTitle.js +++ b/src/components/system-cleaner/TableTitle.js @@ -3,7 +3,7 @@ export default { `, props: ['length', 'text'] diff --git a/src/components/uninstaller/Uninstaller.js b/src/components/uninstaller/Uninstaller.js index c8a09f55..674d76ed 100644 --- a/src/components/uninstaller/Uninstaller.js +++ b/src/components/uninstaller/Uninstaller.js @@ -14,25 +14,34 @@ export default { template: `
-
-

System Installed Packages ({{ filteredPackages.length }})

- +
+

{{ lang('uninstallerTitle') }} ({{ filteredPackages.length }})

+
  • +
    + + +
    {{ package }}
- - No package found. + + {{ lang('noPackage') }} +
`, data() { return ({ packagesList: [], + selectedPackages: [], + isMultiUninstall: false, searchString: '', isBusy: false }) @@ -48,6 +57,39 @@ export default { }) }, methods: { + uninstallSelected() { + console.log(this.selectedPackages.join(' ')) + if (this.selectedPackages) { + if (!this.isBusy) { + this.isBusy = true + + let sPackages = [] + this.selectedPackages.forEach(pkg => sPackages.push(commands.removePackage + pkg)) + console.log(sPackages.join('; ')) + sudo.exec(command(sPackages.join('; ')), { + name: 'Stacer' + }, + (error, stdout, stderr) => { + if (stderr) { + showMessage(lang('uninstallFail'), 'error') + } else { + this.searchString = '' + + this.selectedPackages.forEach(packageName => { + var i = this.packagesList.indexOf(packageName) + if (i != -1) this.packagesList.splice(i, 1) + }) + + showMessage(sPackages + lang('packageUninstalled'), 'success') + } + this.isBusy = false + }) + } else { + showMessage(lang('anotherProc'), 'error') + } + this.selectedPackages = [] + } + }, removePackage(e) { if (!this.isBusy) { this.isBusy = true @@ -60,18 +102,18 @@ export default { (error, stdout, stderr) => { if (stderr) { e.target.className = '' - showMessage('Operation not successful.', 'error') + showMessage(lang('uninstallFail'), 'error') } else { this.searchString = e.target.className = '' var i = this.packagesList.indexOf(packageName) if (i != -1) this.packagesList.splice(i, 1) - showMessage(`${packageName} package uninstalled.`, 'success') + showMessage(packageName + lang('packageUninstalled'), 'success') } this.isBusy = false }) } else { - showMessage('Another process continues.', 'error') + showMessage(lang('anotherProc'), 'error') } } }, diff --git a/src/index.js b/src/index.js index 30eb2cf4..679aa8ae 100755 --- a/src/index.js +++ b/src/index.js @@ -1,11 +1,21 @@ import App from './components/App' +import Language from './languages/Language' window.vm = new Vue({ el: 'app', components: { 'app': App }, + beforeCreate() { + // Check Language + let appLanguage = localStorage.getItem('appLanguage') || 'en' + let language = new Language(appLanguage) + window.lang = (key) => language.get(key) + // Check Theme + let appTheme = localStorage.getItem('appTheme') || 'dark' + document.body.classList = [appTheme] + }, mounted() { - setTimeout(() => document.getElementById('loading').remove(), 2000) + setTimeout(() => document.getElementById('loading').remove(), 20) } }) \ No newline at end of file diff --git a/src/languages/Language.js b/src/languages/Language.js new file mode 100644 index 00000000..0260ab13 --- /dev/null +++ b/src/languages/Language.js @@ -0,0 +1,15 @@ +import langList from './lang-list' +export default class Language { + + constructor(lang) { + if (Object.keys(langList).indexOf(lang) !== -1) { + this.lang = require(`./langs/lang.${lang}`) + } else { + this.lang = require('./langs/lang.en') + } + } + + get(key) { + return this.lang.default[key] + } +} \ No newline at end of file diff --git a/src/languages/lang-list.js b/src/languages/lang-list.js new file mode 100644 index 00000000..61dc9f3c --- /dev/null +++ b/src/languages/lang-list.js @@ -0,0 +1,5 @@ +export default { + "en": "English", + "tr": "Turkish", + "pt": "Portuguese", +} \ No newline at end of file diff --git a/src/languages/langs/lang.en.js b/src/languages/langs/lang.en.js new file mode 100644 index 00000000..20703c16 --- /dev/null +++ b/src/languages/langs/lang.en.js @@ -0,0 +1,74 @@ +export default { + // Top Menu + dashboard: "Dashboard", + sysCleaner: "System Cleaner", + startupApps: "Startup Apps", + services: "Services", + process: "Processes", + uninstaller: "Uninstaller", + resources: "Resources", + // Dashboard Page + cpu: "CPU", + memory: "MEMORY", + disk: "DISK", + download: "DOWNLOAD", + upload: "UPLOAD", + systemInfo: "SYSTEM INFO", + hostname: "Hostname", + platform: "Platform", + distribution: "Distribution", + kernelRel: "Kernel Release", + cpuModel: "Cpu Model", + cpuSpeed: "Cpu Speed", + cpuCores: "Cpu Cores", + // System Cleaner Page + packageCache: "Package Cache", + crashReports: "Crash Reports", + systemLogs: "System Logs", + appCache: "App Cache", + trash: "Trash", + systemScan: "System Scan", + clean: "Clean", + selectAll: "Select All", + // Startup Apps Page + startupTitle: "System Startup Applications", + addStartup: "Add Startup App", + noStartup: "No startup apps found.", + app: "Application", + appName: "App Name", + appComment: "App Comment", + appCommand: "Command", + add: "Add", + cancel: "Cancel", + // Services Page + serviceTitle: "System Services", + noService: "No Service Found", + // Process Page + processTitle: "", + // Uninstaller Page + uninstallerTitle: "System Installed Packages", + noPackage: "No package found.", + // Resources Page + cpuHistory: "Cpu History", + memHistory: "Memory History", + networkHistory: "Network History", + swap: "Swap", + // Settings + settings: "Settings", + appSettings: "Application Settings", + appLanguage: "App Language", + appTheme: "App Theme", + // Global + search: "Search", + downloadUpdate: "Download Update", + updateMsg: "There are updates currently available.", + // Messages + opFail: "Operation failed.", + sysCleanFail: "System cleaning failed.", + sysCleanSuc: "System cleaned.", + appCacheWarning: "Deleting applications\' caches can cause problems. Please be careful.", + uninstallFail: "Uninstall failed.", + packageUninstalled: " package uninstalled.", + anotherProc: "Another process continues.", + changedLang: "Restart the program for the changes to take effect.", +} \ No newline at end of file diff --git a/src/languages/langs/lang.pt.js b/src/languages/langs/lang.pt.js new file mode 100644 index 00000000..977aefbd --- /dev/null +++ b/src/languages/langs/lang.pt.js @@ -0,0 +1,71 @@ +export default { + // Top Menu + dashboard: "Visão Geral", + sysCleaner: "Limpador de Sistema", + startupApps: "Aplicativos de Inicialização", + services: "Serviços", + uninstaller: "Desinstalador", + resources: "Recursos", + // Dashboard Page + cpu: "CPU", + memory: "MEMÓRIA", + disk: "DISCO", + download: "BAIXAR", + upload: "ENVIO", + systemInfo: "INFORMAÇÃO DO SISTEMA", + hostname: "Nome de anfitrião", + platform: "Plataforma", + distribution: "Distribuição", + kernelRel: "Lançamento do Kernel", + cpuModel: "Cpu Modelo", + cpuSpeed: "Cpu Rapidez", + cpuCores: "Cpu Núcleos", + // System Cleaner Page + packageCache: "Cache do pacote", + crashReports: "Relatórios de Falha", + systemLogs: "Registros do Sistema", + appCache: "Cache de Aplicativos", + trash: "Lixo", + systemScan: "Verificação do Sistema", + clean: "Limpar", + selectAll: "Selecionar Tudo", + // Startup Apps Page + startupTitle: "Aplicativos de Inicialização do Sistema", + addStartup: "Adicionar Aplicativo", + noStartup: "Nenhum aplicativo de inicialização foi encontrado.", + app: "Aplicação", + appName: "Nome do Aplicativo", + appComment: "Comentário do Aplicativo", + appCommand: "Comando", + add: "Adicionar", + cancel: "Cancelar", + // Services Page + serviceTitle: "Serviços de Sistema", + noService: "Nenhum serviço encontrado.", + // Uninstaller Page + uninstallerTitle: "Pacotes Instalados do Sistema", + noPackage: "Nenhum pacote encontrado.", + // Resources Page + cpuHistory: "História da Cpu", + memHistory: "Histórico da Memória", + networkHistory: "Histórico da Rede", + swap: "Troca", + // Settings + settings: "Configurações", + appSettings: "Aplicação Configurações", + appLanguage: "Aplicativo Língua", + appTheme: "Aplicativo Tema", + // Global + search: "Pesquisar", + downloadUpdate: "Atualizar o download", + updateMsg: "Existem atualizações disponíveis atualmente.", + // Messages + opFail: "Operação falhou.", + sysCleanFail: "A limpeza do sistema falhou.", + sysCleanSuc: "Sistema limpo.", + appCacheWarning: "A exclusão de caches de aplicativos pode causar problemas. Por favor, seja cuidadoso.", + uninstallFail: "A desinstalação falhou.", + packageUninstalled: " pacote desinstalado.", + anotherProc: "Outro processo continua.", + changedLang: "Reinicie o programa para que as alterações entrem em vigor.", +} \ No newline at end of file diff --git a/src/languages/langs/lang.tr.js b/src/languages/langs/lang.tr.js new file mode 100644 index 00000000..f7bd1684 --- /dev/null +++ b/src/languages/langs/lang.tr.js @@ -0,0 +1,71 @@ +export default { + // Top Menu + dashboard: "Genel", + sysCleaner: "Sistem Temizleyici", + startupApps: "Başlangıç Uygulamaları", + services: "Servisler", + uninstaller: "Kaldırıcı", + resources: "Kaynaklar", + // Dashboard Page + cpu: "CPU", + memory: "BELLEK", + disk: "DİSK", + download: "İNDİRME", + upload: "YÜKLEME", + systemInfo: "SİSTEM BİLGİSİ", + hostname: "Hostname", + platform: "Platform", + distribution: "Dağıtım", + kernelRel: "Çekirdek Sürümü", + cpuModel: "Cpu Modeli", + cpuSpeed: "Cpu Hızı", + cpuCores: "Cpu Çekirdek", + // System Cleaner Page + packageCache: "Paket Önbelleği", + crashReports: "Hata Raporları", + systemLogs: "Sistem Günlükleri", + appCache: "Uygulama Önbelleği", + trash: "Çöp Kutusu", + systemScan: "Sistemi Tara", + clean: "Temizle", + selectAll: "Hepsini Seç", + // Startup Apps Page + startupTitle: "Sistem Başlangıç Uygulamaları", + addStartup: "Başlangıç Uygulaması Ekle", + noStartup: "Başlangıç Uygulaması Bulunamadı.", + app: "Uygulama", + appName: "Uygulama Adı", + appComment: "Uygulama Yorumu", + appCommand: "Command", + add: "Ekle", + cancel: "İptal", + // Services Page + serviceTitle: "Sistem Servisleri", + noService: "Servis Bulunamadı.", + // Uninstaller Page + uninstallerTitle: "Sistemdeki Yüklü Paketler", + noPackage: "Paket Bulunamadı.", + // Resources Page + cpuHistory: "Cpu Geçmişi", + memHistory: "Bellek Geçmişi", + networkHistory: "Ağ Geçmişi", + swap: "Takas", + // Settings + settings: "Ayarlar", + appSettings: "Uygulama Ayarları", + appLanguage: "Uygulama Dili", + appTheme: "Uygulama Tema", + // Global + search: "Arama", + downloadUpdate: "Güncellemeyi İndir", + updateMsg: "Mevcut olan yeni güncelleme var.", + // Messages + opFail: "İşlem başarısız.", + sysCleanFail: "Sistem temizleme başarısız.", + sysCleanSuc: "Sistem temizlendi.", + appCacheWarning: "Uygulamaların önbelleklerini silmek sorunlara neden olabilir. Lütfen dikkatli olun.", + uninstallFail: "Kaldırma başarısız.", + packageUninstalled: " paketi kaldırıldı.", + anotherProc: "Başka işlem devam ediyor.", + changedLang: "Değişikliklerin aktif olması için programı yeniden başlatın.", +} \ No newline at end of file diff --git a/src/utils/config.js b/src/utils/config.js index 826b218f..0aafa7a2 100755 --- a/src/utils/config.js +++ b/src/utils/config.js @@ -4,7 +4,7 @@ import { import { spawnSync } from 'child_process' let uname = spawnSync('uname', ['-a']).stdout.toString().toLowerCase() -window.systemOs = uname.indexOf('ubuntu') !== -1 ? 'ubuntu' : 'arch' +var systemOs = uname.indexOf('ubuntu') !== -1 ? 'ubuntu' : 'arch' let conf = {} @@ -16,7 +16,7 @@ conf.getAllService = "systemctl list-unit-files --state=enabled,disabled --type= conf.trashPath = homedir() + "/.local/share/Trash/files", conf.trashInfoPath = homedir() + "/.local/share/Trash/info" -switch (window.systemOs) { +switch (systemOs) { case 'ubuntu': { conf.pkgCachePath = "/var/cache/apt/archives/" conf.getInstalledPackages = "dpkg --get-selections | cut -f 1" diff --git a/yarn.lock b/yarn.lock index 84af66ee..1170fd92 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6,6 +6,10 @@ abbrev@1: version "1.1.0" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" +acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + ajv@^4.9.1: version "4.11.5" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.5.tgz#b6ee74657b993a01dce44b7944d56f485828d5bd" @@ -13,6 +17,18 @@ ajv@^4.9.1: co "^4.6.0" json-stable-stringify "^1.0.1" +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -39,6 +55,12 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.0 || ^1.1.13" +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + arr-diff@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" @@ -73,10 +95,18 @@ assert-plus@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" +ast-types@0.9.6: + version "0.9.6" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" + async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" +async@~0.2.6: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -472,7 +502,7 @@ babel-register@^6.24.0: mkdirp "^0.5.1" source-map-support "^0.4.2" -babel-runtime@^6.18.0, babel-runtime@^6.22.0: +babel-runtime@^6.0.0, babel-runtime@^6.18.0, babel-runtime@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" dependencies: @@ -520,12 +550,20 @@ balanced-match@^0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" +base62@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/base62/-/base62-1.2.0.tgz#31e7e560dc846c9f44c1a531df6514da35474157" + bcrypt-pbkdf@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" dependencies: tweetnacl "^0.14.3" +big.js@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + binary-extensions@^1.0.0: version "1.8.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" @@ -536,15 +574,19 @@ block-stream@*: dependencies: inherits "~2.0.0" +bluebird@^3.0.5, bluebird@^3.1.1: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" dependencies: hoek "2.x.x" -brace-expansion@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" +brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" dependencies: balanced-match "^0.4.1" concat-map "0.0.1" @@ -565,6 +607,13 @@ builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" +camel-case@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -572,15 +621,30 @@ camelcase-keys@^2.0.0: camelcase "^2.0.0" map-obj "^1.0.0" +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" -chalk@^1.1.0: +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.1.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -590,6 +654,29 @@ chalk@^1.1.0: strip-ansi "^3.0.0" supports-color "^2.0.0" +change-case@3.0.x: + version "3.0.1" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.1.tgz#ee5f5ad0415ad1ad9e8072cf49cd4cfa7660a554" + dependencies: + camel-case "^3.0.0" + constant-case "^2.0.0" + dot-case "^2.1.0" + header-case "^1.0.0" + is-lower-case "^1.1.0" + is-upper-case "^1.1.0" + lower-case "^1.1.1" + lower-case-first "^1.0.0" + no-case "^2.2.0" + param-case "^2.1.0" + pascal-case "^2.0.0" + path-case "^2.1.0" + sentence-case "^2.1.0" + snake-case "^2.1.0" + swap-case "^1.1.0" + title-case "^2.1.0" + upper-case "^1.1.1" + upper-case-first "^1.1.0" + chart.js@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.5.0.tgz#fe6e751a893769f56e72bee5ad91207e1c592957" @@ -629,6 +716,21 @@ chokidar@^1.6.1: optionalDependencies: fsevents "^1.0.0" +clean-css@3.4.x: + version "3.4.26" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.26.tgz#55323b344ff3bcee684a2eac81c93df8fa73deeb" + dependencies: + commander "2.8.x" + source-map "0.4.x" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -651,12 +753,32 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@^2.8.1: +commander@2.8.x: + version "2.8.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@2.9.x, commander@^2.5.0, commander@^2.8.1, commander@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: graceful-readlink ">= 1.0.0" +commoner@^0.10.1: + version "0.10.8" + resolved "https://registry.yarnpkg.com/commoner/-/commoner-0.10.8.tgz#34fc3672cd24393e8bb47e70caa0293811f4f2c5" + dependencies: + commander "^2.5.0" + detective "^4.3.1" + glob "^5.0.15" + graceful-fs "^4.1.2" + iconv-lite "^0.4.5" + mkdirp "^0.5.0" + private "^0.1.6" + q "^1.1.2" + recast "^0.11.17" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -669,10 +791,30 @@ concat-stream@1.5.0: readable-stream "~2.0.0" typedarray "~0.0.5" +config-chain@~1.1.5: + version "1.1.11" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" +consolidate@^0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.14.5.tgz#5a25047bc76f73072667c8cb52c989888f494c63" + dependencies: + bluebird "^3.1.1" + +constant-case@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46" + dependencies: + snake-case "^2.1.0" + upper-case "^1.1.1" + convert-source-map@^1.1.0: version "1.5.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" @@ -685,6 +827,24 @@ core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" +cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.1.3.tgz#952771eb0dddc1cb3fa2f6fbe51a522e93b3ee0a" + dependencies: + is-directory "^0.3.1" + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.1.0" + os-homedir "^1.0.1" + parse-json "^2.2.0" + require-from-string "^1.1.0" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" @@ -713,7 +873,7 @@ debug@^2.1.1, debug@^2.1.3, debug@^2.2.0: dependencies: ms "0.7.2" -decamelize@^1.1.2: +decamelize@^1.0.0, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -721,6 +881,10 @@ deep-extend@~0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -735,12 +899,38 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" +detective@^4.3.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-4.5.0.tgz#6e5a8c6b26e6c7a254b1c6b6d7490d98ec91edd1" + dependencies: + acorn "^4.0.3" + defined "^1.0.0" + +dot-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee" + dependencies: + no-case "^2.2.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" dependencies: jsbn "~0.1.0" +editorconfig@^0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.13.2.tgz#8e57926d9ee69ab6cb999f027c2171467acceb35" + dependencies: + bluebird "^3.0.5" + commander "^2.9.0" + lru-cache "^3.2.0" + sigmund "^1.0.1" + electron-download@^3.0.1: version "3.3.0" resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-3.3.0.tgz#2cfd54d6966c019c4d49ad65fbe65cc9cdef68c8" @@ -762,6 +952,17 @@ electron@^1.6.2: electron-download "^3.0.1" extract-zip "^1.0.3" +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +envify@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/envify/-/envify-3.4.1.tgz#d7122329e8df1688ba771b12501917c9ce5cbce8" + dependencies: + jstransform "^11.0.3" + through "~2.3.4" + error-ex@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" @@ -772,10 +973,25 @@ es6-promise@^4.0.5: version "4.1.0" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.0.tgz#dda03ca8f9f89bc597e689842929de7ba8cebdf0" +es6-templates@^0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" + dependencies: + recast "~0.11.12" + through "~2.3.6" + escape-string-regexp@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" +esprima-fb@^15001.1.0-dev-harmony-fb: + version "15001.1.0-dev-harmony-fb" + resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz#30a947303c6b8d5e955bee2b99b1d233206a6901" + +esprima@^3.1.1, esprima@~3.1.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -815,6 +1031,10 @@ extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" +fastparse@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + fd-slicer@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" @@ -842,6 +1062,10 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" +flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + for-in@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -923,6 +1147,10 @@ get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + getpass@^0.1.1: version "0.1.6" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" @@ -942,14 +1170,24 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@^7.0.0, glob@^7.0.5: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" +glob@^5.0.15: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.5, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.2" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" @@ -957,6 +1195,22 @@ globals@^9.0.0: version "9.17.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -982,10 +1236,18 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" +hash-sum@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" @@ -995,6 +1257,17 @@ hawk@~3.1.3: hoek "2.x.x" sntp "1.x.x" +he@1.1.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +header-case@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-1.0.1.tgz#9535973197c144b09613cd65d317ef19963bd02d" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.3" + hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" @@ -1014,6 +1287,18 @@ hosted-git-info@^2.1.4: version "2.4.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.1.tgz#4b0445e41c004a8bd1337773a4ff790ca40318c8" +html-minifier@^2.1.5: + version "2.1.7" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-2.1.7.tgz#9051d6fcbbcf214ed307e1ad74f432bb9ad655cc" + dependencies: + change-case "3.0.x" + clean-css "3.4.x" + commander "2.9.x" + he "1.1.x" + ncname "1.0.x" + relateurl "0.2.x" + uglify-js "2.6.x" + http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" @@ -1022,12 +1307,20 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" +iconv-lite@^0.4.5: + version "0.4.17" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d" + indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" dependencies: repeating "^2.0.0" +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -1039,7 +1332,7 @@ inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" -ini@~1.3.0: +ini@^1.3.4, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" @@ -1069,6 +1362,10 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + is-dotfile@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" @@ -1105,6 +1402,12 @@ is-glob@^2.0.0, is-glob@^2.0.1: dependencies: is-extglob "^1.0.0" +is-lower-case@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" + dependencies: + lower-case "^1.1.0" + is-number@^2.0.2, is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -1119,10 +1422,28 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" +is-upper-case@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" + dependencies: + upper-case "^1.1.0" + is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" @@ -1155,10 +1476,30 @@ jquery@^3.1.1: version "3.2.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787" +js-base64@^2.1.9: + version "2.1.9" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" + +js-beautify@^1.6.3: + version "1.6.14" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.6.14.tgz#d3b8f7322d02b9277d58bd238264c327e58044cd" + dependencies: + config-chain "~1.1.5" + editorconfig "^0.13.2" + mkdirp "~0.5.0" + nopt "~3.0.1" + js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" +js-yaml@^3.4.3: + version "3.8.4" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6" + dependencies: + argparse "^1.0.7" + esprima "^3.1.1" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -1208,6 +1549,16 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.3.6" +jstransform@^11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/jstransform/-/jstransform-11.0.3.tgz#09a78993e0ae4d4ef4487f6155a91f6190cb4223" + dependencies: + base62 "^1.1.0" + commoner "^0.10.1" + esprima-fb "^15001.1.0-dev-harmony-fb" + object-assign "^2.0.0" + source-map "^0.4.2" + kind-of@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" @@ -1220,6 +1571,10 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -1230,10 +1585,22 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" +loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + lodash@^4.2.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + loose-envify@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" @@ -1247,6 +1614,33 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" +lower-case-first@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" + dependencies: + lower-case "^1.1.2" + +lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lru-cache@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" + dependencies: + pseudomap "^1.0.1" + +lru-cache@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" + dependencies: + pseudomap "^1.0.1" + yallist "^2.0.0" + map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" @@ -1294,11 +1688,11 @@ mime-types@^2.1.12, mime-types@~2.1.7: dependencies: mime-db "~1.27.0" -minimatch@^3.0.0, minimatch@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: - brace-expansion "^1.0.0" + brace-expansion "^1.1.7" minimist@0.0.8: version "0.0.8" @@ -1314,7 +1708,7 @@ mkdirp@0.5.0: dependencies: minimist "0.0.8" -"mkdirp@>=0.5 0", mkdirp@^0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -1336,6 +1730,18 @@ nan@^2.3.0: version "2.5.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.1.tgz#d5b01691253326a97a2bbee9e61c55d8d60351e2" +ncname@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" + dependencies: + xml-char-classes "^1.0.0" + +no-case@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.1.tgz#7aeba1c73a52184265554b7dc03baf720df80081" + dependencies: + lower-case "^1.1.1" + node-pre-gyp@^0.6.29: version "0.6.34" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" @@ -1357,6 +1763,12 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" +nopt@~3.0.1: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.3.6" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.6.tgz#498fa420c96401f787402ba21e600def9f981fff" @@ -1401,6 +1813,10 @@ oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" +object-assign@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" + object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -1422,7 +1838,7 @@ once@^1.3.0, once@^1.3.3: dependencies: wrappy "1" -os-homedir@^1.0.0: +os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -1445,6 +1861,12 @@ output-file-sync@^1.1.0: mkdirp "^0.5.1" object-assign "^4.1.0" +param-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + dependencies: + no-case "^2.2.0" + parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -1460,6 +1882,19 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +pascal-case@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-2.0.1.tgz#2d578d3455f660da65eca18ef95b4e0de912761e" + dependencies: + camel-case "^3.0.0" + upper-case-first "^1.1.0" + +path-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5" + dependencies: + no-case "^2.2.0" + path-exists@^2.0.0, path-exists@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" @@ -1470,6 +1905,10 @@ path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -1500,6 +1939,50 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +postcss-load-config@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + +postcss-selector-parser@^2.0.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss@^5.0.21: + version "5.2.17" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" @@ -1511,7 +1994,7 @@ pretty-bytes@^1.0.2: get-stdin "^4.0.1" meow "^3.1.0" -private@^0.1.6: +private@^0.1.6, private@~0.1.5: version "0.1.7" resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" @@ -1538,10 +2021,22 @@ properties-reader@^0.0.15: dependencies: mkdirp "~0.3.5" +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + +pseudomap@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" +q@^1.1.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" + qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" @@ -1618,6 +2113,15 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" +recast@^0.11.17, recast@~0.11.12: + version "0.11.23" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" + dependencies: + ast-types "0.9.6" + esprima "~3.1.0" + private "~0.1.5" + source-map "~0.5.0" + redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" @@ -1666,6 +2170,10 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + remove-trailing-separator@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" @@ -1711,6 +2219,22 @@ request@^2.45.0, request@^2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + +resolve@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" + dependencies: + path-parse "^1.0.5" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" @@ -1725,6 +2249,13 @@ safe-buffer@^5.0.1: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" +sentence-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4" + dependencies: + no-case "^2.2.0" + upper-case-first "^1.1.2" + set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -1737,6 +2268,10 @@ shifty@^1.5.2: version "1.5.4" resolved "https://registry.yarnpkg.com/shifty/-/shifty-1.5.4.tgz#d4362fc914dd280ddf6e522be408b21203208346" +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + signal-exit@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -1751,6 +2286,12 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" +snake-case@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" + dependencies: + no-case "^2.2.0" + sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" @@ -1763,7 +2304,13 @@ source-map-support@^0.4.2: dependencies: source-map "^0.5.6" -source-map@^0.5.0, source-map@^0.5.6: +source-map@0.4.x, source-map@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" @@ -1785,6 +2332,10 @@ speedometer@~0.1.2: version "0.1.4" resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + sshpk@^1.7.0: version "1.11.0" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.11.0.tgz#2d8d5ebb4a6fab28ffba37fa62a90f4a3ea59d77" @@ -1853,6 +2404,19 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +swap-case@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" + dependencies: + lower-case "^1.1.1" + upper-case "^1.1.1" + systeminformation@^3.13.0: version "3.17.0" resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-3.17.0.tgz#d8010335d5ba4a10cf9800b1b8ab23b5f8a613fd" @@ -1889,6 +2453,21 @@ through2@~0.2.3: readable-stream "~1.1.9" xtend "~2.1.1" +through@~2.3.4, through@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +title-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa" + dependencies: + no-case "^2.2.0" + upper-case "^1.0.3" + to-fast-properties@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" @@ -1921,10 +2500,47 @@ typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" +uglify-js@2.6.x: + version "2.6.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.6.4.tgz#65ea2fb3059c9394692f15fed87c2b36c16b9adf" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + uid-number@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +upper-case-first@^1.1.0, upper-case-first@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" + dependencies: + upper-case "^1.1.1" + +upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" @@ -1956,9 +2572,74 @@ verror@1.3.6: dependencies: extsprintf "1.0.2" -vuex@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/vuex/-/vuex-2.2.1.tgz#a42d0ce18cb0e0359258f84bfd76835ed468c185" +vue-datatable@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vue-datatable/-/vue-datatable-1.0.4.tgz#f605d09120e15fb933dd05a2cafa21ffaac31287" + dependencies: + babel-runtime "^6.0.0" + vue "^1.0.21" + +vue-hot-reload-api@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.1.0.tgz#9ca58a6e0df9078554ce1708688b6578754d86de" + +vue-html-loader@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/vue-html-loader/-/vue-html-loader-1.2.4.tgz#54ce489be06065c91dc2a1173122f3e004e0a253" + dependencies: + es6-templates "^0.2.2" + fastparse "^1.0.0" + html-minifier "^2.1.5" + loader-utils "^1.0.2" + object-assign "^4.1.0" + +vue-loader@^12.2.0: + version "12.2.0" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-12.2.0.tgz#ddcf189398f08384be341d2af0100f6f797c3a34" + dependencies: + consolidate "^0.14.0" + hash-sum "^1.0.2" + js-beautify "^1.6.3" + loader-utils "^1.1.0" + lru-cache "^4.0.1" + postcss "^5.0.21" + postcss-load-config "^1.1.0" + postcss-selector-parser "^2.0.0" + resolve "^1.3.3" + source-map "^0.5.6" + vue-hot-reload-api "^2.1.0" + vue-style-loader "^3.0.0" + vue-template-es2015-compiler "^1.2.2" + +vue-resource@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/vue-resource/-/vue-resource-1.3.3.tgz#6f12cfc77cccd47fb7e07aff6c42d75e34005992" + dependencies: + got "^6.7.1" + +vue-smart-table@^2.6.0-beta5: + version "2.6.0-beta5" + resolved "https://registry.yarnpkg.com/vue-smart-table/-/vue-smart-table-2.6.0-beta5.tgz#54b4e99c02f2cb029a47ee0fd49b138fd52ff8bf" + dependencies: + camel-case "^3.0.0" + pascal-case "^2.0.0" + +vue-style-loader@^3.0.0, vue-style-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-3.0.1.tgz#c8b639bb2f24baf9d78274dc17e4f264c1deda08" + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-template-es2015-compiler@^1.2.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.5.2.tgz#a0a6c50c941d2a4abda963f2f42c337ac450ee95" + +vue@^1.0.21: + version "1.0.28" + resolved "https://registry.yarnpkg.com/vue/-/vue-1.0.28.tgz#ed2ff07b200bde15c87a90ef8727ceea7d38567d" + dependencies: + envify "^3.4.0" wide-align@^1.1.0: version "1.1.0" @@ -1966,16 +2647,41 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.1" +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" +xml-char-classes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" + xtend@~2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" dependencies: object-keys "~0.4.0" +yallist@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + yauzl@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"