From 3bbc96c76ca7594a587901f6ec6ccf5ce82a3fc1 Mon Sep 17 00:00:00 2001 From: Lang Date: Sun, 27 Oct 2019 13:35:33 +0100 Subject: [PATCH] new: usr: add mineseeker game to the symfony 4 project #3 --- assets/css/app.css | 3 - assets/css/style.homepage.scss | 186 + assets/css/style.layout.scss | 398 + assets/css/style.mineseeker.scss | 1027 + assets/js/mine-seeker.js | 10 + assets/js/mine-seeker/app.js | 459 + assets/js/mine-seeker/grid/grid-control.js | 449 + assets/js/mine-seeker/grid/grid-field.js | 145 + assets/js/mine-seeker/grid/grid.js | 101 + assets/js/mine-seeker/user/user-control.js | 78 + assets/js/mine-seeker/user/user.js | 90 + assets/js/src/build/react-dom-server.js | 42 + assets/js/src/build/react-dom-server.min.js | 12 + assets/js/src/build/react-dom.js | 42 + assets/js/src/build/react-dom.min.js | 12 + assets/js/src/build/react-with-addons.js | 22926 ++++++++++++++++ assets/js/src/build/react-with-addons.min.js | 16 + assets/js/src/build/react.js | 20595 ++++++++++++++ assets/js/src/build/react.min.js | 16 + composer.json | 3 +- composer.lock | 2 +- config/bundles.php | 1 + config/packages/doctrine.yaml | 1 + config/packages/fos_user.yaml | 4 +- config/packages/gos_web_socket.yaml | 27 +- config/packages/sonata_user.yaml | 3 + config/packages/twig.yaml | 5 + config/pubsub/routing.yaml | 17 + config/routes/mineseeker.yaml | 27 + config/services.yaml | 40 + package.json | 18 +- public/images/bg-bomb-bottom-center-outbg.png | Bin 0 -> 1675 bytes public/images/bg-bomb-bottom-left-outbg.png | Bin 0 -> 10941 bytes public/images/bg-bomb-bottom-right-outbg.png | Bin 0 -> 9969 bytes public/images/bg-bomb-disabled-outbg.png | Bin 0 -> 34133 bytes public/images/bg-bomb-empty-outbg.png | Bin 0 -> 713 bytes public/images/bg-bomb-exploded-outbg.png | Bin 0 -> 33536 bytes public/images/bg-bomb-middle-left-outbg.png | Bin 0 -> 4608 bytes public/images/bg-bomb-middle-right-outbg.png | Bin 0 -> 4616 bytes public/images/bg-bomb-outbg.png | Bin 0 -> 110772 bytes public/images/bg-bomb-top-center-outbg.png | Bin 0 -> 1724 bytes public/images/bg-bomb-top-left-outbg.png | Bin 0 -> 10064 bytes public/images/bg-bomb-top-right-outbg.png | Bin 0 -> 9878 bytes public/images/bg-corner-outbg.png | Bin 0 -> 44764 bytes public/images/bg-cursor-blue-outbg.png | Bin 0 -> 64345 bytes public/images/bg-cursor-red-outbg.png | Bin 0 -> 77267 bytes public/images/bg-figure-blue-outbg.png | Bin 0 -> 100147 bytes public/images/bg-figure-red-outbg.png | Bin 0 -> 84602 bytes public/images/bg-flag-blue-outbg.png | Bin 0 -> 24168 bytes public/images/bg-flag-red-outbg.png | Bin 0 -> 22786 bytes public/images/bg-last-blue-outbg.png | Bin 0 -> 12793 bytes public/images/bg-last-red-outbg.png | Bin 0 -> 12763 bytes public/images/bg-left-mine-outbg.png | Bin 0 -> 6346 bytes public/images/bg-mineseeker-0-outbg.jpg | Bin 0 -> 169712 bytes public/images/bg-mineseeker-1-outbg.jpg | Bin 0 -> 288868 bytes public/images/bg-target-bomb-outbg.png | Bin 0 -> 12444 bytes public/images/bg-target-outbg.png | Bin 0 -> 17234 bytes public/images/bg-wave-1-outbg.png | Bin 0 -> 13141 bytes public/images/bg-wave-2-outbg.png | Bin 0 -> 11061 bytes public/images/bg-wave-3-outbg.png | Bin 0 -> 12359 bytes public/images/clippy.svg | 3 + .../images/favicon/android-chrome-192x192.png | Bin 0 -> 6718 bytes .../images/favicon/android-chrome-512x512.png | Bin 0 -> 17417 bytes .../images/favicon/android-icon-144x144.png | Bin 0 -> 5056 bytes .../images/favicon/android-icon-192x192.png | Bin 0 -> 7210 bytes public/images/favicon/android-icon-36x36.png | Bin 0 -> 1146 bytes public/images/favicon/android-icon-48x48.png | Bin 0 -> 1504 bytes public/images/favicon/android-icon-72x72.png | Bin 0 -> 2226 bytes public/images/favicon/android-icon-96x96.png | Bin 0 -> 3042 bytes public/images/favicon/apple-icon-114x114.png | Bin 0 -> 3765 bytes public/images/favicon/apple-icon-120x120.png | Bin 0 -> 4005 bytes public/images/favicon/apple-icon-144x144.png | Bin 0 -> 5056 bytes public/images/favicon/apple-icon-152x152.png | Bin 0 -> 5569 bytes public/images/favicon/apple-icon-180x180.png | Bin 0 -> 7143 bytes public/images/favicon/apple-icon-57x57.png | Bin 0 -> 1754 bytes public/images/favicon/apple-icon-60x60.png | Bin 0 -> 1841 bytes public/images/favicon/apple-icon-72x72.png | Bin 0 -> 2226 bytes public/images/favicon/apple-icon-76x76.png | Bin 0 -> 2386 bytes .../images/favicon/apple-icon-precomposed.png | Bin 0 -> 7210 bytes public/images/favicon/apple-icon.png | Bin 0 -> 7210 bytes public/images/favicon/apple-touch-icon.png | Bin 0 -> 4450 bytes public/images/favicon/browserconfig.xml | 9 + public/images/favicon/favicon-16x16.png | Bin 0 -> 621 bytes public/images/favicon/favicon-32x32.png | Bin 0 -> 1180 bytes public/images/favicon/favicon-96x96.png | Bin 0 -> 3042 bytes public/images/favicon/favicon.ico | Bin 0 -> 15086 bytes public/images/favicon/manifest.json | 17 + public/images/favicon/ms-icon-144x144.png | Bin 0 -> 5056 bytes public/images/favicon/ms-icon-150x150.png | Bin 0 -> 5415 bytes public/images/favicon/ms-icon-310x310.png | Bin 0 -> 15902 bytes public/images/favicon/ms-icon-70x70.png | Bin 0 -> 2197 bytes public/images/favicon/mstile-150x150.png | Bin 0 -> 4606 bytes public/images/favicon/safari-pinned-tab.svg | 75 + public/images/homepage/bg-clouds-outbg.jpg | Bin 0 -> 397464 bytes public/images/homepage/header.jpg | Bin 0 -> 329033 bytes public/images/homepage/mineseeker-1.png | Bin 0 -> 309188 bytes public/images/homepage/mineseeker-2.png | Bin 0 -> 460850 bytes public/images/homepage/mineseeker.png | Bin 0 -> 9772 bytes public/images/mine-1600x627.png | Bin 0 -> 237085 bytes public/images/mine-logo-logo.png | Bin 0 -> 55765 bytes public/images/mine-logo-txt.png | Bin 0 -> 47909 bytes public/images/msn-logo.png | Bin 0 -> 39581 bytes public/images/technologies/jquery.png | Bin 0 -> 9067 bytes public/images/technologies/lets-encrypt.png | Bin 0 -> 14857 bytes public/images/technologies/react.png | Bin 0 -> 12988 bytes public/images/technologies/symfony.png | Bin 0 -> 10632 bytes public/images/technologies/websocket.png | Bin 0 -> 5111 bytes {assets => public}/sound/bomb.mp3 | Bin {assets => public}/sound/click.mp3 | Bin .../sound/messenger/newalert.wav | Bin .../sound/messenger/newemail.wav | Bin {assets => public}/sound/messenger/nudge.wav | Bin {assets => public}/sound/messenger/online.wav | Bin {assets => public}/sound/messenger/phone.wav | Bin {assets => public}/sound/messenger/ring.wav | Bin {assets => public}/sound/messenger/type.wav | Bin .../sound/messenger/vimdone.wav | Bin {assets => public}/sound/mine.mp3 | Bin {assets => public}/sound/warning.mp3 | Bin {assets => public}/sound/won.mp3 | Bin .../ApplicationSonataUserBundle.php | 24 + .../Sonata/UserBundle/Document/Group.php | 31 + .../Sonata/UserBundle/Document/User.php | 31 + .../Sonata/UserBundle/Entity/Group.php | 31 + .../Sonata/UserBundle/Entity/User.php | 31 + .../config/doctrine/Group.mongodb.xml | 13 + .../Resources/config/doctrine/Group.orm.xml | 15 + .../config/doctrine/User.mongodb.xml | 13 + .../Resources/config/doctrine/User.orm.xml | 15 + .../config/serializer/Document.Group.xml | 7 + .../config/serializer/Document.User.xml | 7 + .../config/serializer/Entity.Group.xml | 7 + .../config/serializer/Entity.User.xml | 7 + src/Controller/GameController.php | 42 + src/Entity/Gamer.php | 163 + src/Entity/Grid.php | 70 + src/Entity/GridRow.php | 70 + src/Entity/PlayedGame.php | 351 + src/Entity/Step.php | 138 + .../MineseekerClientEventListener.php | 72 + src/Periodic/MinePeriodic.php | 35 + src/Repository/GamerRepository.php | 50 + src/Repository/GridRepository.php | 50 + src/Repository/GridRowRepository.php | 50 + src/Repository/PlayedGameRepository.php | 50 + src/Repository/StepRepository.php | 50 + src/Rpc/MineseekerRpc.php | 180 + src/Topic/MineseekerTopic.php | 321 + templates/Game/index.html.twig | 95 + templates/Game/play.html.twig | 44 + templates/Official/contact.html.twig | 13 + templates/Official/landing.html.twig | 11 + templates/Official/privacy.html.twig | 52 + templates/Official/terms.html.twig | 100 + templates/Recent/facebook.html.twig | 23 + templates/Recent/favicon.html.twig | 12 + templates/Recent/google-analytics.html.twig | 19 + templates/base.html.twig | 43 +- webpack.config.js | 36 +- yarn.lock | 1322 +- 160 files changed, 49951 insertions(+), 602 deletions(-) delete mode 100644 assets/css/app.css create mode 100644 assets/css/style.homepage.scss create mode 100644 assets/css/style.layout.scss create mode 100644 assets/css/style.mineseeker.scss create mode 100644 assets/js/mine-seeker.js create mode 100644 assets/js/mine-seeker/app.js create mode 100644 assets/js/mine-seeker/grid/grid-control.js create mode 100644 assets/js/mine-seeker/grid/grid-field.js create mode 100644 assets/js/mine-seeker/grid/grid.js create mode 100644 assets/js/mine-seeker/user/user-control.js create mode 100644 assets/js/mine-seeker/user/user.js create mode 100644 assets/js/src/build/react-dom-server.js create mode 100644 assets/js/src/build/react-dom-server.min.js create mode 100644 assets/js/src/build/react-dom.js create mode 100644 assets/js/src/build/react-dom.min.js create mode 100644 assets/js/src/build/react-with-addons.js create mode 100644 assets/js/src/build/react-with-addons.min.js create mode 100644 assets/js/src/build/react.js create mode 100644 assets/js/src/build/react.min.js create mode 100644 config/pubsub/routing.yaml create mode 100644 config/routes/mineseeker.yaml create mode 100644 public/images/bg-bomb-bottom-center-outbg.png create mode 100644 public/images/bg-bomb-bottom-left-outbg.png create mode 100644 public/images/bg-bomb-bottom-right-outbg.png create mode 100644 public/images/bg-bomb-disabled-outbg.png create mode 100644 public/images/bg-bomb-empty-outbg.png create mode 100644 public/images/bg-bomb-exploded-outbg.png create mode 100644 public/images/bg-bomb-middle-left-outbg.png create mode 100644 public/images/bg-bomb-middle-right-outbg.png create mode 100644 public/images/bg-bomb-outbg.png create mode 100644 public/images/bg-bomb-top-center-outbg.png create mode 100644 public/images/bg-bomb-top-left-outbg.png create mode 100644 public/images/bg-bomb-top-right-outbg.png create mode 100644 public/images/bg-corner-outbg.png create mode 100644 public/images/bg-cursor-blue-outbg.png create mode 100644 public/images/bg-cursor-red-outbg.png create mode 100644 public/images/bg-figure-blue-outbg.png create mode 100644 public/images/bg-figure-red-outbg.png create mode 100644 public/images/bg-flag-blue-outbg.png create mode 100644 public/images/bg-flag-red-outbg.png create mode 100644 public/images/bg-last-blue-outbg.png create mode 100644 public/images/bg-last-red-outbg.png create mode 100644 public/images/bg-left-mine-outbg.png create mode 100644 public/images/bg-mineseeker-0-outbg.jpg create mode 100644 public/images/bg-mineseeker-1-outbg.jpg create mode 100644 public/images/bg-target-bomb-outbg.png create mode 100644 public/images/bg-target-outbg.png create mode 100644 public/images/bg-wave-1-outbg.png create mode 100644 public/images/bg-wave-2-outbg.png create mode 100644 public/images/bg-wave-3-outbg.png create mode 100644 public/images/clippy.svg create mode 100644 public/images/favicon/android-chrome-192x192.png create mode 100644 public/images/favicon/android-chrome-512x512.png create mode 100644 public/images/favicon/android-icon-144x144.png create mode 100644 public/images/favicon/android-icon-192x192.png create mode 100644 public/images/favicon/android-icon-36x36.png create mode 100644 public/images/favicon/android-icon-48x48.png create mode 100644 public/images/favicon/android-icon-72x72.png create mode 100644 public/images/favicon/android-icon-96x96.png create mode 100644 public/images/favicon/apple-icon-114x114.png create mode 100644 public/images/favicon/apple-icon-120x120.png create mode 100644 public/images/favicon/apple-icon-144x144.png create mode 100644 public/images/favicon/apple-icon-152x152.png create mode 100644 public/images/favicon/apple-icon-180x180.png create mode 100644 public/images/favicon/apple-icon-57x57.png create mode 100644 public/images/favicon/apple-icon-60x60.png create mode 100644 public/images/favicon/apple-icon-72x72.png create mode 100644 public/images/favicon/apple-icon-76x76.png create mode 100644 public/images/favicon/apple-icon-precomposed.png create mode 100644 public/images/favicon/apple-icon.png create mode 100644 public/images/favicon/apple-touch-icon.png create mode 100644 public/images/favicon/browserconfig.xml create mode 100644 public/images/favicon/favicon-16x16.png create mode 100644 public/images/favicon/favicon-32x32.png create mode 100644 public/images/favicon/favicon-96x96.png create mode 100644 public/images/favicon/favicon.ico create mode 100644 public/images/favicon/manifest.json create mode 100644 public/images/favicon/ms-icon-144x144.png create mode 100644 public/images/favicon/ms-icon-150x150.png create mode 100644 public/images/favicon/ms-icon-310x310.png create mode 100644 public/images/favicon/ms-icon-70x70.png create mode 100644 public/images/favicon/mstile-150x150.png create mode 100644 public/images/favicon/safari-pinned-tab.svg create mode 100644 public/images/homepage/bg-clouds-outbg.jpg create mode 100644 public/images/homepage/header.jpg create mode 100644 public/images/homepage/mineseeker-1.png create mode 100644 public/images/homepage/mineseeker-2.png create mode 100644 public/images/homepage/mineseeker.png create mode 100644 public/images/mine-1600x627.png create mode 100644 public/images/mine-logo-logo.png create mode 100644 public/images/mine-logo-txt.png create mode 100644 public/images/msn-logo.png create mode 100644 public/images/technologies/jquery.png create mode 100644 public/images/technologies/lets-encrypt.png create mode 100644 public/images/technologies/react.png create mode 100644 public/images/technologies/symfony.png create mode 100644 public/images/technologies/websocket.png rename {assets => public}/sound/bomb.mp3 (100%) rename {assets => public}/sound/click.mp3 (100%) rename {assets => public}/sound/messenger/newalert.wav (100%) rename {assets => public}/sound/messenger/newemail.wav (100%) rename {assets => public}/sound/messenger/nudge.wav (100%) rename {assets => public}/sound/messenger/online.wav (100%) rename {assets => public}/sound/messenger/phone.wav (100%) rename {assets => public}/sound/messenger/ring.wav (100%) rename {assets => public}/sound/messenger/type.wav (100%) rename {assets => public}/sound/messenger/vimdone.wav (100%) rename {assets => public}/sound/mine.mp3 (100%) rename {assets => public}/sound/warning.mp3 (100%) rename {assets => public}/sound/won.mp3 (100%) create mode 100644 src/Application/Sonata/UserBundle/ApplicationSonataUserBundle.php create mode 100644 src/Application/Sonata/UserBundle/Document/Group.php create mode 100644 src/Application/Sonata/UserBundle/Document/User.php create mode 100644 src/Application/Sonata/UserBundle/Entity/Group.php create mode 100644 src/Application/Sonata/UserBundle/Entity/User.php create mode 100644 src/Application/Sonata/UserBundle/Resources/config/doctrine/Group.mongodb.xml create mode 100644 src/Application/Sonata/UserBundle/Resources/config/doctrine/Group.orm.xml create mode 100644 src/Application/Sonata/UserBundle/Resources/config/doctrine/User.mongodb.xml create mode 100644 src/Application/Sonata/UserBundle/Resources/config/doctrine/User.orm.xml create mode 100644 src/Application/Sonata/UserBundle/Resources/config/serializer/Document.Group.xml create mode 100644 src/Application/Sonata/UserBundle/Resources/config/serializer/Document.User.xml create mode 100644 src/Application/Sonata/UserBundle/Resources/config/serializer/Entity.Group.xml create mode 100644 src/Application/Sonata/UserBundle/Resources/config/serializer/Entity.User.xml create mode 100644 src/Controller/GameController.php create mode 100644 src/Entity/Gamer.php create mode 100644 src/Entity/Grid.php create mode 100644 src/Entity/GridRow.php create mode 100644 src/Entity/PlayedGame.php create mode 100644 src/Entity/Step.php create mode 100644 src/EventListener/MineseekerClientEventListener.php create mode 100644 src/Periodic/MinePeriodic.php create mode 100644 src/Repository/GamerRepository.php create mode 100644 src/Repository/GridRepository.php create mode 100644 src/Repository/GridRowRepository.php create mode 100644 src/Repository/PlayedGameRepository.php create mode 100644 src/Repository/StepRepository.php create mode 100644 src/Rpc/MineseekerRpc.php create mode 100644 src/Topic/MineseekerTopic.php create mode 100644 templates/Game/index.html.twig create mode 100644 templates/Game/play.html.twig create mode 100644 templates/Official/contact.html.twig create mode 100644 templates/Official/landing.html.twig create mode 100644 templates/Official/privacy.html.twig create mode 100644 templates/Official/terms.html.twig create mode 100644 templates/Recent/facebook.html.twig create mode 100644 templates/Recent/favicon.html.twig create mode 100644 templates/Recent/google-analytics.html.twig diff --git a/assets/css/app.css b/assets/css/app.css deleted file mode 100644 index cb33b13..0000000 --- a/assets/css/app.css +++ /dev/null @@ -1,3 +0,0 @@ -body { - background-color: lightgray; -} diff --git a/assets/css/style.homepage.scss b/assets/css/style.homepage.scss new file mode 100644 index 0000000..866e107 --- /dev/null +++ b/assets/css/style.homepage.scss @@ -0,0 +1,186 @@ +* { + outline: none; + padding: 0; + margin: 0; +} + +html, body { + background: #ffffff; + display: block; + width: 100%; + height: 100%; +} + +header { + background: #d1e8ff; + position: relative; + width: 100%; + height: 950px; + color: #ffffff; + + overflow: hidden; +} + +header section { + display: flex; + align-items: flex-start; + justify-content: flex-start; + flex-direction: column; + max-width: 1300px; + width: 100%; + height: 100%; + padding: 20px; + margin: 0 auto; +} + +header section div.logo img { + width: 350px; + margin: 50px 0; +} + +header section div.logo a { + display: block; +} + +header section > img { + position: absolute; + width: 1300px; + height: 1300px; + right: -20%; + top: -10%; + + z-index: 1; +} + +header section > div { + z-index: 2; +} + +header section h1 { + font: bold 40px 'Rajdhani', sans-serif; + color: #434242; + margin-bottom: 100px; +} + +header section h2 { + font: normal 32px 'Rajdhani', sans-serif; + color: #434242; + margin-top: 100px; +} + +header section h3 { + display: block; + font: bold 16px 'Rajdhani', sans-serif; + color: #434242; + margin-top: 10px; +} + +header section h3 img { + width: 16px; +} + +header section div.buttons > a { + background: #69788e; + display: table; + font: bold 32px 'Rajdhani', sans-serif; + text-transform: uppercase; + text-decoration: none; + border: 5px solid #57667b; + color: #FFFFFF; + padding: 25px 150px; + margin-bottom: 20px; + + -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3); + -webkit-border-radius: 3px; + border-radius: 3px; + -webkit-transition: all 250ms ease-in-out; + -moz-transition: all 250ms ease-in-out; + -o-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +header section div.buttons > a:hover { + background: #57667b; + + -webkit-box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2); + box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2); + -webkit-transition: all 250ms ease-in-out; + -moz-transition: all 250ms ease-in-out; + -o-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +header section div.buttons > a.small { + background: #83aed9; + display: inline-block; + font: bold 22px 'Rajdhani', sans-serif; + border: 1px solid #6890ba; + color: #FFFFFF; + padding: 10px; + + -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3); + -webkit-transition: all 250ms ease-in-out; + -moz-transition: all 250ms ease-in-out; + -o-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; + +} + +header section div.buttons > a.small:hover { + background: #86b5e1; + border: 1px solid #658fb8; + color: #FFFFFF; + + -webkit-box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2); + box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2); + -webkit-transition: all 250ms ease-in-out; + -moz-transition: all 250ms ease-in-out; + -o-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +@media screen and (max-width: 1100px) { + header section { + align-items: center; + justify-content: center; + text-align: center; + } + + header section div.buttons > a { + margin: 0 auto 20px auto; + } + + header section h1 { + margin-bottom: 20px; + } + + header section div.logo img { + margin-bottom: 0; + } + + header section > img { + display: none; + } +} + +@media screen and (max-width: 500px) { + /*header {*/ + /*min-height: 100%;*/ + /*height: auto;*/ + /*}*/ + + header section { + width: auto; + } + + header section div.logo img { + width: 100%; + } + + header section div.buttons > a { + display: block; + padding: 25px 5px; + } +} diff --git a/assets/css/style.layout.scss b/assets/css/style.layout.scss new file mode 100644 index 0000000..65361b7 --- /dev/null +++ b/assets/css/style.layout.scss @@ -0,0 +1,398 @@ +@import url('https://fonts.googleapis.com/css?family=Rajdhani:300,400,500,600,700&subset=latin-ext'); +@import "~bootstrap/dist/css/bootstrap.min.css"; +@import "style.homepage"; + +::-webkit-input-placeholder { + color: #888982; +} + +::-moz-placeholder { + color: #888982; +} + +:-ms-input-placeholder { + color: #888982; +} + +:-moz-placeholder { + color: #888982; +} + +* { + padding: 0; + margin: 0; + outline: 0; +} + +*, +*:after, +*::before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.ac-custom { + width: 100%; +} + +header section .form-check { + display: table; + position: relative; + margin: 20px 0; +} + +header section h1 { + margin: 10px 0; +} + +header section .input-submit button, +header section .input-submit button:hover, +header section .form-input, +header section .form-input:focus, +header section .form-input:hover { + -webkit-transition: all 250ms ease-in-out; + -moz-transition: all 250ms ease-in-out; + -o-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +header section .input-submit button { + background: #83aed9; + display: table; + font: bold 32px 'Rajdhani', sans-serif; + text-transform: uppercase; + text-decoration: none; + width: 500px; + border: 1px solid #658fb8; + color: #FFFFFF; + padding: 25px 150px; + margin-top: 20px; + + -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3); + -webkit-border-radius: 3px; + border-radius: 3px; +} + +header section .input-submit button:hover { + background: #86b5e1; + + -webkit-box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2); + box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2); +} + +header section .form-input { + display: block; + width: 500px; + font: bold 22px 'Rajdhani', sans-serif; + border: 1px solid #dddddd; + color: #000000; + padding: 15px; + margin-bottom: 10px; + + -webkit-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.15); + box-shadow: 0 3px 5px rgba(0, 0, 0, 0.15); +} + +header section .form-input:focus, +header section .form-input:hover { + -webkit-box-shadow: 0 7px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 7px 10px rgba(0, 0, 0, 0.1); +} + +header section .failure { + background: #f00; + position: relative; + border: 3px solid #fff; + font: bold 16px 'Rajdhani', sans-serif; + color: #FFFFFF; + padding: 10px; + margin: 30px 0 10px 0; + + -webkit-border-radius: 5px; + border-radius: 5px; +} + +header section .failure:after, +header section .failure:before { + content: " "; + position: absolute; + bottom: 100%; + left: 50px; + height: 0; + width: 0; + border: solid transparent; + pointer-events: none; +} + +header section .failure:after { + border-color: rgba(0, 0, 0, 0); + border-bottom-color: #f00; + border-width: 20px; + margin-left: -20px; +} + +header section .failure:before { + border-color: rgba(255, 255, 255, 0); + border-bottom-color: #ffffff; + border-width: 26px; + margin-left: -26px; +} + +header section .failure ul { + display: inline-block; + list-style: none; + padding: 0; + margin: 0 10px 0 0; +} + +header section h3.or { + font: bold 16px 'Rajdhani', sans-serif; + text-transform: uppercase; + color: #a1a1a1; + margin: 20px 0; +} + +header section #id_welcome { + display: flex; + flex-direction: row; + margin-bottom: 115px; +} + +header section #id_welcome > div { + padding-right: 20px; +} + +header section #id_welcome img { + width: 100px; + border: 5px solid #414040; + + -webkit-border-radius: 50%; + border-radius: 50%; +} + +header section .buttons, +header section form { + z-index: 2; +} + +header section div.buttons > a.fb-login, +header section div.buttons > a.slack-login { + position: relative; + display: block; + width: 500px; + height: 93px; + padding: 25px 0 25px 150px; + margin-bottom: 10px; + + overflow: hidden; + cursor: pointer; + + -webkit-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.15); + box-shadow: 0 3px 5px rgba(0, 0, 0, 0.15); +} + +header section div.buttons > a.fb-login:hover, +header section div.buttons > a.slack-login:hover { + text-decoration: none; + + -webkit-box-shadow: 0 7px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 7px 10px rgba(0, 0, 0, 0.1); +} + +header section div.buttons > a.fb-login i, +header section div.buttons > a.slack-login i { + position: absolute; + font-size: 130px; + top: 0; + left: 15px; +} + +header section div.buttons > a.fb-login { + background: #5975b1; + border: 1px solid #50649f; +} + +header section div.buttons > a.fb-login:hover { + background: #42598c; + color: #FFFFFF; +} + +header section div.buttons > a.slack-login { + background: #FFFFFF; + border: 1px solid #5c3a58; + color: #5c3a58; +} + +header section div.buttons > a.slack-login:hover { + background: #e6e6e6; + color: #5c3a58; +} + +header section .failure-main { + background: #f00; + max-width: 500px; + border: 3px solid #fff; + font: bold 16px 'Rajdhani', sans-serif; + color: #FFFFFF; + padding: 10px; + margin: 0 0 20px 0; + + -webkit-border-radius: 5px; + border-radius: 5px; +} + +main div.txt { + width: 100%; + max-width: 1000px; + font-family: 'Rajdhani', sans-serif; + color: #414040; + margin: 50px auto 0 auto; +} + +main div.txt h2 { + margin: 0 0 50px 0; +} + +main div.txt p { + font: normal 16px 'Rajdhani', sans-serif; +} + +main div.txt li { + font: normal 16px 'Rajdhani', sans-serif; + padding-left: 10px; + margin-left: 50px; +} + +main .technologies { + text-align: center; +} + +main .technologies img { + display: inline-block; + width: 90%; + max-width: 100px; + margin: 20px; +} + +main .technologies h1 { + font-weight: bold; +} + +footer { + background: #414040; + width: 100%; + min-height: 50px; + margin-top: 50px; +} + +footer nav { + display: block; + text-align: center; +} + +footer nav ul { + display: inline-block; + list-style: none; + padding: 0; + margin: 0; +} + +footer nav ul li { + display: inline-block; + font: bold 16px 'Rajdhani', sans-serif; + color: #FFFFFF; +} + +footer nav ul li:nth-child(even) { + width: 50px; + text-align: center; +} + +footer nav ul li a { + text-align: center; + line-height: 50px; + color: #FFFFFF; +} + +footer nav ul li a:hover { + color: #FFFFFF; +} + +@media screen and (max-width: 1100px) { + header section #id_welcome { + align-items: center; + justify-content: center; + margin-top: 50px; + } + + header section .form-input, + header section .form-check { + margin-left: auto; + margin-right: auto; + } + + header section .input-submit button { + margin: 0 auto; + } + + header section > div { + width: 100%; + } + + header section div.buttons > a.fb-login, + header section div.buttons > a.slack-login { + margin: 0 auto; + } + + main div.txt { + padding: 0 20px; + } +} + +@media screen and (max-width: 550px) { + header section #id_welcome { + display: block; + } + + header section { + padding: 20px; + } + + header section .form-input { + width: 100%; + margin-left: auto; + margin-right: auto; + } + + header section .form-check { + margin: 20px auto; + } + + header section .input-submit button { + width: 100%; + } + + header section div.buttons > a.fb-login, + header section div.buttons > a.slack-login { + width: 100%; + } + + header section div.buttons > a.fb-login span, + header section div.buttons > a.slack-login span { + display: none; + } + + footer nav ul li { + display: block; + } + + footer nav ul li:nth-child(even) { + display: none; + } +} diff --git a/assets/css/style.mineseeker.scss b/assets/css/style.mineseeker.scss new file mode 100644 index 0000000..d78d32b --- /dev/null +++ b/assets/css/style.mineseeker.scss @@ -0,0 +1,1027 @@ +@import url('https://fonts.googleapis.com/css?family=Changa+One|Open+Sans:700'); +@import url('https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css'); + +html { + height: 100%; + padding: 0; + margin: 0; +} + +body { + height: 100%; + min-height: 100%; + padding: 0; + margin: 0; +} + +main { + width: 100%; + height: 100%; +} + +.mine-container { + background: url("/images/bg-mineseeker-0-outbg.jpg") no-repeat; + background-size: cover; + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + margin: 0; + padding: 0; +} + +.clear { + clear: both +} + +#mine-wrapper, +#mine-wrapper * { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +#mine-wrapper { + display: table; + width: 842px; + margin: 0 auto; +} + +#mine-wrapper .game-wrapper { + background: #000; + position: relative; + display: flex; + flex-direction: row; + align-items: flex-start; + padding: 10px; + + -webkit-border-radius: 10px; + border-radius: 10px; +} + +#mine-wrapper .game-wrapper .game-overlay { + background: rgba(255, 255, 255, 0.2); + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + + z-index: 200; + + -webkit-border-radius: 10px; + border-radius: 10px; +} + +#mine-wrapper .game-wrapper .game-overlay.hide { + display: none; +} + +#mine-wrapper .game-wrapper .game-overlay .game-overlay-window { + background: rgba(204, 204, 204, 0.8); + border: 5px solid rgba(255, 255, 255, 0.5); + font-family: 'Open Sans', sans-serif; + text-align: center; + color: #354d6a; + width: 500px; + padding: 10px; + + -webkit-border-radius: 10px; + border-radius: 10px; +} + +#mine-wrapper .game-wrapper .game-overlay .game-overlay-window h1 { + font-weight: bold; + font-size: 26px; +} + +#mine-wrapper .game-wrapper .game-overlay .game-overlay-window h2 { + font-size: 18px; +} + +#mine-wrapper .game-wrapper .game-overlay .game-overlay-window h3 { + font-size: 16px; + color: #386e8c; +} + +#mine-wrapper .game-wrapper .game-overlay .game-overlay-window .clippy { + display: flex; + align-items: center; + width: 100%; + margin-bottom: 10px; +} + +#mine-wrapper .game-wrapper .game-overlay .game-overlay-window .clippy input { + border: 0; + height: 40px; + width: 100%; + padding: 0 20px; + + -webkit-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075); +} + +#mine-wrapper .game-wrapper .game-overlay .game-overlay-window a { + background: #d8e3ea; + display: inline-table; + text-decoration: none; + color: #126aa2; + padding: 10px 50px; + margin: 0 2.5px; + + cursor: pointer; + + -webkit-border-radius: 3px; + border-radius: 3px; + -webkit-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +#mine-wrapper .game-wrapper .game-overlay .game-overlay-window a:hover { + background: #a4afb6; + color: #ffffff; + + -webkit-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +#mine-wrapper .game-wrapper .users { + width: 180px; + padding: 0 10px 0 0; +} + +#mine-wrapper .game-wrapper .users .user-container { + background: #FFFFFF; + height: 40%; + font-family: 'Open Sans', sans-serif; + padding: 5px; + margin: 5px; + + z-index: 99; + + -webkit-border-radius: 10px; + border-radius: 10px; +} + +#mine-wrapper .game-wrapper .users .user-container.user-blue { + background: rgb(35, 111, 135); + background: -moz-linear-gradient(top, rgba(35, 111, 135, 1) 0%, rgba(149, 207, 245, 1) 100%); + background: -webkit-linear-gradient(top, rgba(35, 111, 135, 1) 0%, rgba(149, 207, 245, 1) 100%); + background: linear-gradient(to bottom, rgba(35, 111, 135, 1) 0%, rgba(149, 207, 245, 1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#236f87', endColorstr='#95cff5', GradientType=0); + + margin-top: 0; +} + +#mine-wrapper .game-wrapper .users .user-container.user-red { + background: rgb(173, 10, 5); + background: -moz-linear-gradient(top, rgba(173, 10, 5, 1) 0%, rgba(246, 125, 82, 1) 100%); + background: -webkit-linear-gradient(top, rgba(173, 10, 5, 1) 0%, rgba(246, 125, 82, 1) 100%); + background: linear-gradient(to bottom, rgba(173, 10, 5, 1) 0%, rgba(246, 125, 82, 1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ad0a05', endColorstr='#f67d52', GradientType=0); +} + +#mine-wrapper .game-wrapper .users .user-container .user-header { + background: -moz-linear-gradient(top, rgba(255, 255, 255, 0.7) 39%, rgba(255, 255, 255, 0.21) 87%, rgba(0, 0, 0, 0) 100%); + background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.7) 39%, rgba(255, 255, 255, 0.21) 87%, rgba(0, 0, 0, 0) 100%); + background: linear-gradient(to bottom, rgba(255, 255, 255, 0.7) 39%, rgba(255, 255, 255, 0.21) 87%, rgba(0, 0, 0, 0) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#00000000', GradientType=0); + position: relative; + font: bolder 25px 'Changa One', cursive; + letter-spacing: 5px; + text-transform: uppercase; + text-align: center; + padding: 6px 5px 20px 5px; + margin-bottom: 40px; + + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-text-shadow: 1px 1px 0 #FFF; + text-shadow: 1px 1px 0 #FFF; +} + +#mine-wrapper .game-wrapper .users .user-container.user-blue .user-header { + color: #236f87; +} + +#mine-wrapper .game-wrapper .users .user-container.user-red .user-header { + color: #AD0A05; +} + +#mine-wrapper .game-wrapper .users .user-container .user-header > img { + position: absolute; + left: 50%; + bottom: 0; + width: 40%; + margin-left: -20%; + margin-bottom: -25%; +} + +#mine-wrapper .game-wrapper .users .user-container .user-header > img.user-cursor { + display: block; + width: 30%; + top: 20px; + left: 10px; + margin-left: 0; + + -webkit-animation: cursorJumping 1.2s cubic-bezier(.36, .07, .19, .97) infinite; + animation: cursorJumping 1.2s cubic-bezier(.36, .07, .19, .97) infinite; + +} + +#mine-wrapper .game-wrapper .users .user-container .user-header > img.user-cursor::after { + content: ''; + width: 50px; + height: 50px; + background: #1A6844; + animation: animate .5s linear infinite; + position: absolute; + top: 0; + left: 0; + border-radius: 3px; +} + +@keyframes cursorJumping { + 0% { + top: 15px; + } + 50% { + top: 25px; + } + 100% { + top: 15px; + } +} + +#mine-wrapper .game-wrapper .users .user-container .user-name { + min-height: 30px; + font-weight: normal; + text-align: center; + white-space: nowrap; + text-overflow: ellipsis; + padding: 3px 0; + margin: 0 5px; + + overflow: hidden; +} + +#mine-wrapper .game-wrapper .users .user-container.user-blue .user-name { + border-top: 1px dashed #0b3776; + border-bottom: 1px dashed #0b3776; + color: #0b3776; +} + +#mine-wrapper .game-wrapper .users .user-container.user-red .user-name { + color: #fdf612; + border-top: 1px dashed #fdf612; + border-bottom: 1px dashed #fdf612; +} + +#mine-wrapper .game-wrapper .users .user-container .user-caret { + height: 30px; + font-size: 30px; + text-align: center; + line-height: 15px; +} + +#mine-wrapper .game-wrapper .users .user-container.user-blue .user-caret > i { + color: #0b3776; +} + +#mine-wrapper .game-wrapper .users .user-container.user-red .user-caret > i { + color: #fdf612; +} + +#mine-wrapper .game-wrapper .users .user-container .user-desc { + height: 65px; + font-size: 14px; + text-align: center; +} + +#mine-wrapper .game-wrapper .users .user-container.user-blue .user-desc { + color: #0b3776; +} + +#mine-wrapper .game-wrapper .users .user-container.user-red .user-desc { + color: #fdf612; +} + +#mine-wrapper .game-wrapper .users .user-container .user-control { + background: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.5) 0%, rgba(125, 185, 232, 0) 100%); + background: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.5) 0%, rgba(125, 185, 232, 0) 100%); + background: linear-gradient(135deg, rgba(255, 255, 255, 0.5) 0%, rgba(125, 185, 232, 0) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#007db9e8', GradientType=1); + position: relative; + padding: 5px; + + -webkit-border-radius: 5px; + border-radius: 5px; +} + +#mine-wrapper .game-wrapper .users .user-container .user-control > img { + position: absolute; + width: 55px; + left: -5px; + bottom: 10px; + + -ms-transform: rotate(-15deg); + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); +} + +#mine-wrapper .game-wrapper .users .user-container .user-control .user-control-mines { + display: inline-block; + background: #FFFFFF; + font-size: 25px; + text-align: center; + width: 45px; + height: 35px; + margin-left: 25px; + margin-top: 5px; + + -webkit-border-radius: 5px; + border-radius: 5px; +} + +#mine-wrapper .game-wrapper .users .user-container.user-blue .user-control .user-control-mines { + color: #1a3955; +} + +#mine-wrapper .game-wrapper .users .user-container.user-red .user-control .user-control-mines { + color: #b10000; +} + +#mine-wrapper .game-wrapper .users .user-container .user-control .bomb-container { + display: inline-block; + float: right; + width: 65px; + height: 45px; + border: 1px solid #000; + + -webkit-border-radius: 7px; + border-radius: 7px; + -webkit-border-radius: 7px; + border-radius: 7px; + -webkit-transform: translateZ(0); + transform: translateZ(0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -moz-osx-font-smoothing: grayscale; + box-shadow: 0 0 1px rgba(0, 0, 0, 0); +} + +#mine-wrapper .game-wrapper .users .user-container .user-control .bomb-container.buzz:hover { + -webkit-animation-name: hvr-buzz-out; + animation-name: hvr-buzz-out; + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; +} + +@-webkit-keyframes hvr-buzz-out { + 10% { + -webkit-transform: translateX(3px) rotate(2deg); + transform: translateX(3px) rotate(2deg); + } + 20% { + -webkit-transform: translateX(-3px) rotate(-2deg); + transform: translateX(-3px) rotate(-2deg); + } + 30% { + -webkit-transform: translateX(3px) rotate(2deg); + transform: translateX(3px) rotate(2deg); + } + 40% { + -webkit-transform: translateX(-3px) rotate(-2deg); + transform: translateX(-3px) rotate(-2deg); + } + 50% { + -webkit-transform: translateX(2px) rotate(1deg); + transform: translateX(2px) rotate(1deg); + } + 60% { + -webkit-transform: translateX(-2px) rotate(-1deg); + transform: translateX(-2px) rotate(-1deg); + } + 70% { + -webkit-transform: translateX(2px) rotate(1deg); + transform: translateX(2px) rotate(1deg); + } + 80% { + -webkit-transform: translateX(-2px) rotate(-1deg); + transform: translateX(-2px) rotate(-1deg); + } + 90% { + -webkit-transform: translateX(1px) rotate(0); + transform: translateX(1px) rotate(0); + } + 100% { + -webkit-transform: translateX(-1px) rotate(0); + transform: translateX(-1px) rotate(0); + } +} + +@keyframes hvr-buzz-out { + 10% { + -webkit-transform: translateX(3px) rotate(2deg); + transform: translateX(3px) rotate(2deg); + } + 20% { + -webkit-transform: translateX(-3px) rotate(-2deg); + transform: translateX(-3px) rotate(-2deg); + } + 30% { + -webkit-transform: translateX(3px) rotate(2deg); + transform: translateX(3px) rotate(2deg); + } + 40% { + -webkit-transform: translateX(-3px) rotate(-2deg); + transform: translateX(-3px) rotate(-2deg); + } + 50% { + -webkit-transform: translateX(2px) rotate(1deg); + transform: translateX(2px) rotate(1deg); + } + 60% { + -webkit-transform: translateX(-2px) rotate(-1deg); + transform: translateX(-2px) rotate(-1deg); + } + 70% { + -webkit-transform: translateX(2px) rotate(1deg); + transform: translateX(2px) rotate(1deg); + } + 80% { + -webkit-transform: translateX(-2px) rotate(-1deg); + transform: translateX(-2px) rotate(-1deg); + } + 90% { + -webkit-transform: translateX(1px) rotate(0); + transform: translateX(1px) rotate(0); + } + 100% { + -webkit-transform: translateX(-1px) rotate(0); + transform: translateX(-1px) rotate(0); + } +} + +#mine-wrapper .game-wrapper .users .user-container .user-control .bomb-container .bomb { + width: 100%; + height: 100%; + text-align: center; + cursor: pointer; +} + +#mine-wrapper .game-wrapper .users .user-container .user-control .bomb-container .bomb img { + display: inline-block; + height: 100%; +} + +#mine-wrapper .game-wrapper .users .resign { + background: rgba(70, 73, 66, 1); + background: -moz-linear-gradient(top, rgba(70, 73, 66, 1) 0%, rgba(140, 138, 139, 1) 69%, rgba(96, 89, 97, 1) 100%); + background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(70, 73, 66, 1)), color-stop(69%, rgba(140, 138, 139, 1)), color-stop(100%, rgba(96, 89, 97, 1))); + background: -webkit-linear-gradient(top, rgba(70, 73, 66, 1) 0%, rgba(140, 138, 139, 1) 69%, rgba(96, 89, 97, 1) 100%); + background: -o-linear-gradient(top, rgba(70, 73, 66, 1) 0%, rgba(140, 138, 139, 1) 69%, rgba(96, 89, 97, 1) 100%); + background: -ms-linear-gradient(top, rgba(70, 73, 66, 1) 0%, rgba(140, 138, 139, 1) 69%, rgba(96, 89, 97, 1) 100%); + background: linear-gradient(to bottom, rgba(70, 73, 66, 1) 0%, rgba(140, 138, 139, 1) 69%, rgba(96, 89, 97, 1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#464942', endColorstr='#605961', GradientType=0); + display: block; + position: relative; + width: 95%; + height: 50px; + font-family: 'Open Sans', sans-serif; + font-weight: bold; + font-size: 22px; + text-transform: uppercase; + text-align: center; + line-height: 40px; + border: 3px solid #484742; + color: #fff; + margin: 10px auto 0 auto; + + outline: none; + cursor: pointer; + + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-transition: all 250ms ease-in-out; + -moz-transition: all 250ms ease-in-out; + -o-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +#mine-wrapper .game-wrapper .users .resign:hover { + background: rgba(70, 73, 66, 1); + color: #FFFFFF; + + -webkit-transition: all 250ms ease-in-out; + -moz-transition: all 250ms ease-in-out; + -o-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +#mine-wrapper .game-wrapper .users .resign.disabled { + background: rgba(70, 73, 66, 1); + color: #848484; + + cursor: default; +} + +#mine-wrapper .game-wrapper .users .resign.disabled:hover { + background: rgba(70, 73, 66, 1); + color: #848484; +} + +#mine-wrapper .game-wrapper .users .resign .resign-shine { + background: rgba(255, 255, 255, 1); + background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(0, 0, 0, 0) 100%); + background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(255, 255, 255, 1)), color-stop(100%, rgba(0, 0, 0, 0))); + background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(0, 0, 0, 0) 100%); + background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(0, 0, 0, 0) 100%); + background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(0, 0, 0, 0) 100%); + background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(0, 0, 0, 0) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#000000', GradientType=0); + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 33%; + + opacity: 0.7; + + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-transition: all 250ms ease-in-out; + -moz-transition: all 250ms ease-in-out; + -o-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +#mine-wrapper .game-wrapper .users .resign:hover .resign-shine, +#mine-wrapper .game-wrapper .users .resign.disabled .resign-shine { + display: none; + + -webkit-transition: all 250ms ease-in-out; + -moz-transition: all 250ms ease-in-out; + -o-transition: all 250ms ease-in-out; + transition: all 250ms ease-in-out; +} + +#mine-wrapper .game-wrapper .users .user-container .user-control .bomb-container:hover .bomb img { + -webkit-animation-name: hvr-buzz; + animation-name: hvr-buzz; + -webkit-animation-duration: 0.15s; + animation-duration: 0.15s; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +#mine-wrapper .game-wrapper .users .user-container .user-control .bomb-container .bomb { + -webkit-border-radius: 5px; + border-radius: 5px; +} + +#mine-wrapper .game-wrapper .users .user-container.user-blue .user-control .bomb-container .bomb { + background: rgb(131, 194, 245); + background: -moz-linear-gradient(top, rgba(131, 194, 245, 1) 0%, rgba(108, 190, 230, 1) 39%, rgba(221, 255, 252, 1) 100%); + background: -webkit-linear-gradient(top, rgba(131, 194, 245, 1) 0%, rgba(108, 190, 230, 1) 39%, rgba(221, 255, 252, 1) 100%); + background: linear-gradient(to bottom, rgba(131, 194, 245, 1) 0%, rgba(108, 190, 230, 1) 39%, rgba(221, 255, 252, 1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#83c2f5', endColorstr='#ddfffc', GradientType=0); + border: 3px solid #0b538e; +} + +#mine-wrapper .game-wrapper .users .user-container.user-red .user-control .bomb-container .bomb { + background: rgb(255, 175, 159); + background: -moz-linear-gradient(top, rgba(255, 175, 159, 1) 0%, rgba(231, 113, 7, 1) 54%, rgba(231, 113, 7, 1) 54%, rgba(237, 172, 16, 1) 100%); + background: -webkit-linear-gradient(top, rgba(255, 175, 159, 1) 0%, rgba(231, 113, 7, 1) 54%, rgba(231, 113, 7, 1) 54%, rgba(237, 172, 16, 1) 100%); + background: linear-gradient(to bottom, rgba(255, 175, 159, 1) 0%, rgba(231, 113, 7, 1) 54%, rgba(231, 113, 7, 1) 54%, rgba(237, 172, 16, 1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffaf9f', endColorstr='#edac10', GradientType=0); + border: 3px solid #c9221c; +} + +#mine-wrapper .game-wrapper .users .active-mines-container { + background: -moz-radial-gradient(center, ellipse cover, rgba(255, 252, 252, 1) 0%, rgba(255, 252, 252, 0.99) 1%, rgba(106, 106, 106, 0.39) 61%, rgba(106, 106, 106, 0) 100%); + background: -webkit-radial-gradient(center, ellipse cover, rgba(255, 252, 252, 1) 0%, rgba(255, 252, 252, 0.99) 1%, rgba(106, 106, 106, 0.39) 61%, rgba(106, 106, 106, 0) 100%); + background: radial-gradient(ellipse at center, rgba(255, 252, 252, 1) 0%, rgba(255, 252, 252, 0.99) 1%, rgba(106, 106, 106, 0.39) 61%, rgba(106, 106, 106, 0) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcfc', endColorstr='#006a6a6a', GradientType=1); + background-repeat: no-repeat; + background-position: center center; + background-size: 72% 179%; + position: relative; + height: 30px; +} + +#mine-wrapper .game-wrapper .users .active-mines-container i { + font-size: 27px; + color: #b1b1b3; + margin-top: 3px; + + text-shadow: 0 0 3px #000000; +} + +#mine-wrapper .game-wrapper .users .active-mines-container i:first-child { + float: left; + margin-left: 20px; +} + +#mine-wrapper .game-wrapper .users .active-mines-container i:last-child { + float: right; + margin-right: 20px; +} + +#mine-wrapper .game-wrapper .users .active-mines-container .active-mines { + background: -moz-linear-gradient(top, rgba(0, 0, 0, 1) 0%, rgba(135, 136, 131, 1) 100%); + background: -webkit-linear-gradient(top, rgba(0, 0, 0, 1) 0%, rgba(135, 136, 131, 1) 100%); + background: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(135, 136, 131, 1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#3e3f41', endColorstr='#878883', GradientType=0); + position: absolute; + width: 50px; + height: 50px; + top: -7.5px; + left: 50%; + font-family: 'Open Sans', sans-serif; + font-size: 25px; + line-height: 39px; + text-align: center; + color: #FFFFFF; + border: 5px solid #000000; + margin-left: -25px; + + z-index: 100; + + -webkit-border-radius: 50%; + border-radius: 50%; +} + +#mine-wrapper .game-wrapper .users .active-mines-container .active-mines.found-mine { + -webkit-animation: bubbleLeftMine 750ms cubic-bezier(.36, .07, .19, .97) both; + animation: bubbleLeftMine 750ms cubic-bezier(.36, .07, .19, .97) both; +} + +@keyframes bubbleLeftMine { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + 50% { + border-color: #2e3337; + -webkit-transform: scale(2); + transform: scale(2); + } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +#mine-wrapper .game-wrapper .users .active-mines-container .active-mines .active-mines-shine { + background: -moz-linear-gradient(top, rgba(213, 214, 216, 1) 0%, rgba(106, 106, 106, 1) 100%); + background: -webkit-linear-gradient(top, rgba(213, 214, 216, 1) 0%, rgba(106, 106, 106, 1) 100%); + background: linear-gradient(to bottom, rgba(213, 214, 216, 1) 0%, rgba(106, 106, 106, 1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#d5d6d8', endColorstr='#6a6a6a', GradientType=0); + position: absolute; + top: 0; + left: 50%; + width: 30px; + height: 20px; + margin-left: -14.5px; + + z-index: 101; + + -webkit-border-radius: 50%; + border-radius: 50%; +} + +#mine-wrapper .game-wrapper .users .active-mines-container .active-mines .active-mines-nbr { + position: absolute; + top: 0; + width: 100%; + + z-index: 102; +} + +/** game grid */ + +#mine-wrapper .grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; + justify-content: center; + width: 643px; + border: 1px solid #cac3e5; + + cursor: none; +} + +#mine-wrapper .grid-container { + background: #4E4E4E; + padding: 15px 10px; + + -webkit-border-radius: 5px; + border-radius: 5px; +} + +#mine-wrapper .grid .field-wrapper { + position: relative; +} + +#mine-wrapper .grid .field-wrapper > img.field-target { + position: absolute; + display: none; + width: 45px; + top: -2.5px; + left: -2.5px; + + z-index: 100; +} + +#mine-wrapper .grid .field-wrapper:hover > img.field-target { + display: block; +} + +/*#mine-wrapper .grid .field-wrapper.targeted > img.field-target {*/ +/*display: block;*/ +/*}*/ + +/** width = 4 x .field */ +#mine-wrapper .grid .field-wrapper > img.field-bomb-target { + position: absolute; + display: block; + top: 0; + left: 0; + width: 100%; + + z-index: 100; +} + +#mine-wrapper .grid .field-wrapper > img.field-blue-last, +#mine-wrapper .grid .field-wrapper > img.field-red-last { + position: absolute; + display: none; + width: 100%; + top: 0; + left: 0; + z-index: 99; +} + +#mine-wrapper .grid .field-wrapper > img.field-blue-last.last-clicked, +#mine-wrapper .grid .field-wrapper > img.field-red-last.last-clicked { + display: block; +} + +#mine-wrapper .grid .field-wrapper .field { + background: #61defa; + background: -moz-linear-gradient(left, #61defa 0%, #119dec 100%); + background: -webkit-linear-gradient(left, #61defa 0%, #119dec 100%); + background: linear-gradient(to right, #61defa 0%, #119dec 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#61defa', endColorstr='#119dec', GradientType=1); + width: 40px; + height: 40px; + border: 2px solid #51c2fe; + font-family: 'Open Sans', sans-serif; + font-weight: bold; + font-size: 35px; + text-align: center; + line-height: 35px; +} + +#mine-wrapper .grid .field-wrapper .field .field-corner { + background: url('/images/bg-corner-outbg.png') no-repeat top left; + background-size: 100%; + width: 100%; + height: 100%; +} + +#mine-wrapper .grid .field-wrapper .field.active { + background: #fde717; + background: -moz-linear-gradient(left, #fde717 0%, #f5b807 100%); + background: -webkit-linear-gradient(left, #fde717 0%, #f5b807 100%); + background: linear-gradient(to right, #fde717 0%, #f5b807 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fde717', endColorstr='#f5b807', GradientType=1); + border: 2px solid #f6d762; + color: #000; +} + +#mine-wrapper .grid .field-wrapper .field.active .flag-number { + -webkit-animation: bubbleNumber 500ms cubic-bezier(.36, .07, .19, .97) both; + animation: bubbleNumber 500ms cubic-bezier(.36, .07, .19, .97) both; + -webkit-transform: scale(1); + transform: scale(1); +} + +@keyframes bubbleNumber { + 0% { + background: #61defa; + background: -moz-linear-gradient(left, #61defa 0%, #119dec 100%); + background: -webkit-linear-gradient(left, #61defa 0%, #119dec 100%); + background: linear-gradient(to right, #61defa 0%, #119dec 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#61defa', endColorstr='#119dec', GradientType=1); + + -webkit-border-radius: 50%; + border-radius: 50%; + -webkit-transform: scale(1); + transform: scale(1); + } + 50% { + -webkit-border-radius: 50%; + border-radius: 50%; + -webkit-transform: scale(0); + transform: scale(0); + } + 100% { + -webkit-border-radius: 0; + border-radius: 0; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +#mine-wrapper .grid .field-wrapper .field.active .flag-mine { + position: relative; + overflow: hidden; +} + +#mine-wrapper .grid .field-wrapper .field.active .flag-mine > img { + width: 75%; + margin-left: 15px; + + -ms-transform: rotate(7deg); + -webkit-transform: rotate(7deg); + transform: rotate(7deg); + -webkit-animation: mineFlagLoad 500ms cubic-bezier(.36, .07, .19, .97) both; + animation: mineFlagLoad 500ms cubic-bezier(.36, .07, .19, .97) both; +} + +@keyframes mineFlagLoad { + 0% { + margin-bottom: 0; + margin-left: 15px; + + -ms-transform: rotate(9deg); + -webkit-transform: rotate(9deg); + transform: rotate(9deg); + } + 50% { + margin-bottom: -5px; + margin-left: 7px; + } + 100% { + margin-bottom: 3px; + margin-left: 0; + + -ms-transform: rotate(-9deg); + -webkit-transform: rotate(-9deg); + transform: rotate(-9deg); + } +} + +#mine-wrapper .grid .field-wrapper .field.active .flag-mine .flag-mine-base { + position: absolute; + background: #000000; + width: 25px; + height: 22px; + bottom: -12px; + left: 50%; + margin-left: -10.5px; + + -webkit-border-radius: 50%; + border-radius: 50%; + -webkit-animation: mineBaseLoad 500ms cubic-bezier(.36, .07, .19, .97) both; + animation: mineBaseLoad 500ms cubic-bezier(.36, .07, .19, .97) both; +} + +@keyframes mineBaseLoad { + 0% { + margin-bottom: 0; + } + 50% { + margin-bottom: -5px; + } + 100% { + margin-bottom: 0; + } +} + +#mine-wrapper .grid .field-wrapper .field.active.mine { + background: #61defa; + background: -moz-linear-gradient(left, #61defa 0%, #119dec 100%); + background: -webkit-linear-gradient(left, #61defa 0%, #119dec 100%); + background: linear-gradient(to right, #61defa 0%, #119dec 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#61defa', endColorstr='#119dec', GradientType=1); + border: 2px solid #51c2fe; +} + +#mine-wrapper .grid .field-wrapper .field.active.color-1 { + color: #0000ff; +} + +#mine-wrapper .grid .field-wrapper .field.active.color-2 { + color: #079433; +} + +#mine-wrapper .grid .field-wrapper .field.active.color-3 { + color: #fd1400; +} + +#mine-wrapper .grid .field-wrapper .field.active.color-4 { + color: #0c099e; +} + +#mine-wrapper .grid .field-wrapper .field.active.color-5 { + color: #7b4c01; +} + +#mine-wrapper .grid .field-wrapper .field.active.color-6 { + color: #008388; +} + +#mine-wrapper .grid .field-wrapper .field.active.color-7 { + color: #000000; +} + +#mine-wrapper .grid .field-wrapper .field.active.color-8 { + color: #ff0000; +} + +#mine-wrapper .grid .field-wrapper .field img { + width: 80%; +} + +.back-from-game { + display: inline-block; + position: fixed; + top: 20px; + left: 20px; + + -ms-transform: scale(1); /* IE 9 */ + -webkit-transform: scale(1); /* Safari */ + transform: scale(1); + -webkit-transition: all 250ms cubic-bezier(.17, .67, .83, .67); + transition: all 250ms cubic-bezier(.17, .67, .83, .67); +} + +.back-from-game img { + width: 100px; +} + +.back-from-game:hover { + -ms-transform: scale(1.2); /* IE 9 */ + -webkit-transform: scale(1.2); /* Safari */ + transform: scale(1.2); + -webkit-transition: all 250ms cubic-bezier(.17, .67, .83, .67); + transition: all 250ms cubic-bezier(.17, .67, .83, .67); +} + +@media screen and (max-width: 900px) { + #mine-wrapper .game-wrapper .users { + visibility: hidden; + display: none; + } + + #mine-wrapper { + display: block; + width: 100%; + } + + #mine-wrapper .game-wrapper { + width: 100%; + flex-direction: column-reverse; + } + + #mine-wrapper .grid-container { + width: 100%; + padding: 0; + } + + #mine-wrapper .grid { + width: 100%; + } + + #mine-wrapper .grid .field-wrapper { + width: 6.25%; + } + + #mine-wrapper .grid .field-wrapper > img.field-target { + width: 105%; + top: -2.5%; + left: -2.5%; + } + + #mine-wrapper .grid .field-wrapper .field { + width: 100%; + height: auto; + } +} + diff --git a/assets/js/mine-seeker.js b/assets/js/mine-seeker.js new file mode 100644 index 0000000..3d47443 --- /dev/null +++ b/assets/js/mine-seeker.js @@ -0,0 +1,10 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import MineSeeker from './mine-seeker/app'; + +ReactDOM.render( + , + document.getElementById('mine-wrapper') +); diff --git a/assets/js/mine-seeker/app.js b/assets/js/mine-seeker/app.js new file mode 100644 index 0000000..03a951a --- /dev/null +++ b/assets/js/mine-seeker/app.js @@ -0,0 +1,459 @@ +import React from 'react'; +import Grid from './grid/grid'; +import GridControl from './grid/grid-control'; + +class MineSeeker extends React.Component { + constructor(props) { + super(props); + + let gameAssoc = props.gameId !== '' ? props.gameId : this.makeGameAssoc(50); + let channel = "mineseeker/channel/" + gameAssoc; + + this.state = { + env: props.env, + ssl: props.ssl, + gameInherited: props.gameId !== '', + gameAssoc: gameAssoc, + channel: channel, + session: null, + createGrid: false, + stepCache: [], + connectionLost: false, + end: false + } + } + + makeGameAssoc(len) { + let text = ""; + let possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + for (let i = 0; i < len; i++) { + text += possible.charAt(Math.floor(Math.random() * possible.length)); + } + return text; + } + + currectGridSize() { + let $field = $('#mine-wrapper .grid'); + $field.height($field.width()); + + $field = $('#mine-wrapper .grid .field-wrapper'); + $field.height($field.width()); + + $('#mine-wrapper .grid .field-wrapper .field') + .height($field.width()) + .css('line-height', ($field.width() - 2) + 'px'); + } + + /** + * STEP + * + * @param coords + * @returns {{red: *, blue: *}} + */ + makePointsCalcAndStep(coords) { + let users = this.refs.gridControl.refs.userControl, + activePlayer = users.state.activePlayer ? 'blue' : 'red', + inactivePlayer = users.state.activePlayer ? 'red' : 'blue', + redPoints = activePlayer === 'red' + ? users.refs[activePlayer].state.mines + : users.refs[inactivePlayer].state.mines, + bluePoints = activePlayer === 'blue' + ? users.refs[activePlayer].state.mines + : users.refs[inactivePlayer].state.mines; + + this.refs.gridControl.stepEvent(coords); + + let mineCache = this.refs.gridControl.state.foundUserMineCache; + redPoints += activePlayer === 'red' ? mineCache : 0; + bluePoints += activePlayer === 'blue' ? mineCache : 0; + + return {red: redPoints, blue: bluePoints}; + } + + /** + * START + * + * @param payload + */ + makeGameStart(payload) { + /** every time the blue starts */ + this.refs.gridControl.refs.userControl.setState({activePlayer: 1}); + + /** Set up player names w/ server data */ + this.refs.gridControl.refs.userControl.refs.red.setState({ + name: payload.users.red !== '' ? payload.users.red : payload.users.redAnon, + }); + + this.refs.gridControl.refs.userControl.refs.blue.setState({ + name: payload.users.blue !== '' ? payload.users.blue : payload.users.blueAnon, + desc: this.refs.gridControl.state.webPlayer === 'blue' + ? this.refs.gridControl.state.desc.you + : this.refs.gridControl.state.desc.buddy, + active: true, + }); + + this.refs.gridControl.setState({overlay: false}); + } + + /** + * THE END + * + * @param bluePoints + * @param redPoints + * @param resign + */ + makeGameEndIfItEnds(bluePoints, redPoints, resign = false) { + let redWins = redPoints > 25, + blueWins = bluePoints > 25; + + if (redWins || blueWins || resign) { + this.refs.gridControl.state.sound.won.play(); + + if (false === resign) { + this.refs.gridControl.setState({ + overlay: true, + overlayTitle: (redWins ? 'Red' : 'Blue') + " wins the game!", + overlaySubTitle: "Play again!" + }); + } + + this.refs.gridControl.showLeftMines(); + + this.refs.gridControl.refs.userControl.setState({activePlayer: false}); + this.refs.gridControl.refs.userControl.refs.red.setState({desc: ""}); + this.refs.gridControl.refs.userControl.refs.blue.setState({desc: ""}); + } + } + + resignProcess(color) { + this.refs.gridControl.setState({ + overlay: true, + overlayTitle: color === this.refs.gridControl.state.webPlayer + ? "You have been give up" + : "Your opponent has been resigned", + overlaySubTitle: color === this.refs.gridControl.state.webPlayer + ? "You LOSE!" + : "You WIN!" + }); + + this.setState({end: true}); + + this.makeGameEndIfItEnds(0, 0, true); + } + + clickResign() { + /** PUBLISH */ + this.state.session.publish(this.state.channel, { + 'resign': this.refs.gridControl.refs.userControl.state.activePlayer ? 'blue' : 'red' + }); + this.resignProcess(this.refs.gridControl.state.webPlayer); + } + + clickResignCancel() { + this.refs.gridControl.setState({ + overlay: false + }); + } + + /** RESIGN */ + resign() { + let users = this.refs.gridControl.refs.userControl, + activePlayer = users.state.activePlayer ? 'blue' : 'red'; + + if (this.refs.gridControl.state.webPlayer === activePlayer) { + this.refs.gridControl.setState({ + overlay: true, + overlayTitle: "Are u sure u want to resign?!", + overlaySubTitle:
+ Yes + No! +
+ }); + } + } + + /** + * @see https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus + * @see https://developers.facebook.com/docs/sharing/reference/send-dialog + * @see https://developers.facebook.com/docs/plugins/share-button/ + */ + clickFBShare() { + let display = 'popup'; + + FB.getLoginStatus(function (response) { + display = response.status === 'connected' + ? 'dialog' + : 'popup'; + }); + + FB.ui({ + method: 'send', + display: display, + link: window.location.href + '/' + this.state.gameAssoc, + }); + } + + wInit(session, gridServer, gridClient) { + this.setState({session: session}); + + /** save session to GridControl */ + /** render grid fields - @see #12 */ + this.refs.gridControl.setState({ + grid: this.state.gameInherited ? gridServer : gridClient, + channel: this.state.channel, + desc: { + buddy:
+ Your buddy is
+ making a
+ move. +
, + you:
+ It is your turn!
+ Make a move. +
+ }, + overlay: true, + overlayTitle: "We are waiting for your opponent...", + overlaySubTitle: this.state.gameAssoc + ? +
+

Share this unique link w/ your opponent

+
+ +
+ {this.state.env !== 'dev' && + Share in Facebook message + } + {this.state.env === 'dev' && + Play w/ me! + } +
+ : '', + renderGridFields: this.state.gameAssoc + }); + } + + wSubscribe(payload, rpcUsers = null) { + this.state.env === 'dev' && console.info( + (typeof payload.user !== 'undefined' ? payload.user : 'user') + " has been subscribed to the channel!" + ); + + let firstUser = !rpcUsers; + + this.refs.gridControl.state.webPlayer === null && this.refs.gridControl.setState({ + webPlayer: payload.user === payload.users.blue || + ( + firstUser && payload.users.blueAnon !== '' || + !firstUser && (rpcUsers.blueAnon === '' && rpcUsers.blue === '') + ) + ? 'blue' : 'red' + }); + + /** rwd */ + (900 > $(document).width()) && this.currectGridSize(); + + /** every user has been came */ + if ( + payload.userCnt === 2 && + ( + !this.state.connectionLost || + this.state.connectionLost && false === this.refs.gridControl.refs.userControl.state.activePlayer && !this.state.end + ) + ) { + this.makeGameStart(payload); + } + } + + wUnsubscribe(payload) { + this.state.env === 'dev' && console.info(payload.msg); + + this.refs.gridControl.setState({ + overlay: true, + overlayTitle: "The connection has been lost w/ your friend...", + overlaySubTitle: "Please, restart the game!" + }); + } + + wTopic(payload) { + /** Auto-Step if this player is not the current user */ + if (this.refs.gridControl.state.webPlayer !== payload.data.player) { + if (null === payload.data.resign) { + this.state.env === 'dev' && console.warn(payload.user + " has been stepped to coords: " + payload.data.coords[0] + ', ' + payload.data.coords[1]); + this.state.env === 'dev' && console.warn('Opponent stepped: Auto-Step process'); + + this.refs.gridControl.refs.userControl.setState({bombSelected: payload.data.bomb}); + + /** STEP */ + let points = this.makePointsCalcAndStep(payload.data.coords); + + /** THE END */ + this.makeGameEndIfItEnds(points.blue, points.red); + } else { + /** RESIGN */ + /** THE END */ + this.resignProcess(payload.data.resign); + } + } + } + + /** Connect - Subscribe */ + subscribe(rpcUsers = null) { + this.state.session.subscribe( + this.state.channel, + (uri, payload, log) => { + let isTopicEvent = typeof payload.data !== 'undefined', + isNotUnsubscribe = typeof payload.msg === 'undefined'; + + /** CONNECTION */ + if (isTopicEvent) { + this.wTopic(payload); + } else { + if (isNotUnsubscribe) { + this.wSubscribe(payload, rpcUsers); + } else { + this.wUnsubscribe(payload); + } + } + + /** RECONNECTION */ + if (payload.userCnt === 2 && this.state.connectionLost) { + this.state.env === 'dev' && console.info('Reconnection process'); + + /** PUBLISH */ + let cache = this.state.stepCache; + cache.forEach((item) => this.state.session.publish(this.state.channel, item)); + this.setState({connectionLost: false, stepCache: []}); + } + }); + } + + connectWithWebsocket() { + /** Create Websocket w/ Bahnhof.js */ + let websocket = WS.connect( + // this.state.env === 'dev' + // ? "ws://localhost:6450" + (this.state.ssl === 'true' ? "wss" : "ws") + "://" + window.location.hostname + ":6450/" + // : (this.state.ssl === 'true' ? "wss" : "ws") + "://mineseeker.splendidbear.org:6450" + ); + + /** + * Connect + * Session is an Autobahn JS WAMP session. + */ + websocket.on("socket/connect", (session) => { + this.state.env === 'dev' && console.info("Successfully connected to the Server!"); + + if (!this.state.connectionLost) { + let gridClient = this.state.gameInherited || new Grid().state.grid; + + /** + * Connect - RPC + * Send grid information to the server + */ + session + .call( + this.state.gameInherited ? "mineseeker-rpc/connectGame" : "mineseeker-rpc/startGame", + this.state.gameInherited ? this.state.gameAssoc : [window.btoa(JSON.stringify(gridClient)), this.state.gameAssoc] + ) + .then( + (data) => { + this.state.env === 'dev' && console.info('RPC has been called'); + + let serverData = data[0] !== true + ? JSON.parse(window.atob(data)) + : data; + + /** Check the grid if the user is inherited @see #30 */ + if ((this.state.gameInherited && typeof serverData.grid !== 'undefined') || !this.state.gameInherited) { + this.wInit(session, serverData.grid, gridClient); + this.subscribe(this.state.gameInherited && serverData.users); + } else { + this.refs.gridControl.setState({ + overlay: true, + overlayTitle: "This channel does not exists!", + overlaySubTitle: Restart game! + }); + + console.error("This channel does not exists!"); + } + }, + (error, desc) => this.state.env === 'dev' && console.error(["RPC Error", error, desc]) + ); + } else { + this.setState({session: session}); + this.subscribe(); + } + }); + + /** + * DisConnect + * Error provides us with some insight into the disconnection: error.reason and error.code + */ + websocket.on("socket/disconnect", (error) => { + this.state.env === 'dev' && console.error("Disconnected for " + error.reason + " with code " + error.code); + + error.code === 6 && this.setState({connectionLost: true}); + error.code === 3 && setTimeout(this.componentDidMount().bind(this), 500); + }); + } + + /** After rendering */ + componentDidMount() { + this.connectWithWebsocket(); + } + + /** + * Cache the steps unless reconnection + * + * @param dataPack + */ + cachePublish(dataPack) { + let cache = this.state.stepCache; + cache.push(dataPack); + this.setState({stepCache: cache}); + } + + onClick(coords) { + let activePlayer = this.refs.gridControl.refs.userControl.state.activePlayer ? 'blue' : 'red'; + + /** if the clicked field is NEVER CLICKED */ + if (this.refs.gridControl.checkFieldHasBeenNeverClicked(coords[0], coords[1])) { + /** Player step and it is the current player */ + if (activePlayer === this.refs.gridControl.state.webPlayer) { + /** STEP */ + let points = this.makePointsCalcAndStep(coords); + + /** THE END */ + this.makeGameEndIfItEnds(points.blue, points.red); + + let dataPack = { + 'coords': coords, + 'player': activePlayer, + 'bomb': this.refs.gridControl.refs.userControl.state.bombSelected, + 'redPoints': points.red, + 'bluePoints': points.blue, + 'resign': null, + 'redExplodedBomb': activePlayer === 'red' && this.refs.gridControl.refs.userControl.state.bombSelected, + 'blueExplodedBomb': activePlayer === 'blue' && this.refs.gridControl.refs.userControl.state.bombSelected + }; + + /** PUBLISH */ + !this.state.connectionLost + ? this.state.session.publish(this.state.channel, dataPack) + : this.cachePublish(dataPack); + } + } + } + + render() { + return ( + + ); + } +} + +export default MineSeeker; diff --git a/assets/js/mine-seeker/grid/grid-control.js b/assets/js/mine-seeker/grid/grid-control.js new file mode 100644 index 0000000..7506d18 --- /dev/null +++ b/assets/js/mine-seeker/grid/grid-control.js @@ -0,0 +1,449 @@ +import React from 'react'; +import GridField from './grid-field'; +import UserControl from '../user/user-control'; +import {Howl, Howler} from 'howler'; + +class GridControl extends React.Component { + constructor(props) { + super(props); + + let click = new Howl({src: ['/sound/click.mp3']}), + bomb = new Howl({src: ['/sound/bomb.mp3']}), + mine = new Howl({src: ['/sound/mine.mp3']}), + warning = new Howl({src: ['/sound/warning.mp3']}), + won = new Howl({src: ['/sound/won.mp3']}); + + this.state = { + env: props.env, + webPlayer: null, + grid: null, + desc: null, + renderGridFields: false, + gridFields: [], + updatedFieldCache: [], + bombFieldCache: [], + foundUserMineCache: 0, + playBomb: false, + overlay: false, + overlayTitle: "", + overlaySubTitle: "", + sound: { + click: click, + bomb: bomb, + mine: mine, + warning: warning, + won: won + }, + lastClicked: { + red: null, + blue: null + } + }; + } + + refString(row, col) { + return 'gridField_' + row + '_' + col; + } + + checkMine(row, col) { + return typeof this.state.grid[row] !== 'undefined' && typeof this.state.grid[row][col] !== 'undefined' && this.state.grid[row][col] !== 'm'; + } + + checkFieldHasBeenNeverClicked(row, col) { + return this.state.updatedFieldCache.indexOf(this.refString(row, col)) < 0 && !this.refs[this.refString(row, col)].state.active; + } + + getBombRadius(row, col) { + let isBombTargetCenter = row > 1 && row < this.state.grid.length - 2 && col > 1 && col < this.state.grid[row].length - 2; + + /** if the (5x5) target not fits the grid */ + if (!isBombTargetCenter) { + col = col < 2 ? 2 : col; + row = row < 2 ? 2 : row; + row = row > this.state.grid.length - 3 ? this.state.grid.length - 3 : row; + col = col > this.state.grid[0].length - 3 ? this.state.grid[0].length - 3 : col; + } + + return [ + [row, col], [row - 2, col - 2], [row - 2, col], [row - 2, col + 2], [row, col - 2], [row, col + 2], + [row + 2, col - 2], [row + 2, col], [row + 2, col + 2], [row - 2, col + 1], [row - 2, col - 1], + [row - 1, col - 2], [row - 1, col - 1], [row - 1, col], [row - 1, col + 1], [row - 1, col + 2], + [row, col - 1], [row, col + 1], [row + 1, col - 2], [row + 1, col - 1], [row + 1, col], + [row + 1, col + 1], [row + 1, col + 2], [row + 2, col - 1], [row + 2, col + 1] + ]; + } + + getBombFieldRadius() { + return [ + [null, null], [0, 0], [1, 0], [2, 0], [0, 1], [2, 1], [0, 2], [1, 2], [2, 2], + [null, null], [null, null], [null, null], [null, null], [null, null], [null, null], [null, null], + [null, null], [null, null], [null, null], [null, null], [null, null], [null, null], [null, null], + [null, null], [null, null] + ]; + } + + getNeighbourRadius(row, col) { + return [ + [row - 1, col], [row - 1, col - 1], [row - 1, col + 1], [row, col - 1], [row, col + 1], [row + 1, col], + [row + 1, col + 1], [row + 1, col - 1] + ]; + } + + checkNeighbourItem(row, col) { + if (this.checkMine(row, col)) { + var currentField = this.refs[this.refString(row, col)]; + + /** + * It must be cached because the GridField.state not updated until + * all showAppropriateFields() method runned out!! + */ + if (this.checkFieldHasBeenNeverClicked(row, col)) { + this.state.updatedFieldCache.push(this.refString(row, col)); + + currentField.setState({ + currentImage: this.state.grid[row][col], + currentObj: this.state.grid[row][col], + active: true + }); + + if (this.state.grid[row][col] === 0) { + return { + row: row, + col: col + }; + } + } + } + + return false; + } + + checkNeighbours(row, col) { + let anotherFields = [], + neighbours = this.getNeighbourRadius(row, col); + + for (let i = 0, j = neighbours.length; i < j; i++) { + anotherFields.push(this.checkNeighbourItem(neighbours[i][0], neighbours[i][1])); + } + + return anotherFields; + } + + bombClear() { + if (this.state.bombFieldCache.length) { + for (var i = 0, j = this.state.bombFieldCache.length; i < j; i++) { + var cacheItem = this.state.bombFieldCache[i]; + this.refs[this.refString(cacheItem[0], cacheItem[1])] + .setState({bombTargetArea: null}); + } + this.state.bombFieldCache = []; + } + } + + bombCreate(row, col) { + var bombFieldSymbols = this.getBombFieldRadius(), + bombFields = this.getBombRadius(row, col); + + for (var i = 0, j = bombFields.length; i < j; i++) { + this.state.bombFieldCache.push(bombFields[i]); + + this.refs[this.refString(bombFields[i][0], bombFields[i][1])] + .setState({bombTargetArea: bombFieldSymbols[i]}); + } + } + + showLeftMines() { + for (let i = 0, j = this.state.grid.length; i < j; i++) { + for (let k = 0, l = this.state.grid[i].length; k < l; k++) { + let currentField = this.refs[this.refString(i, k)]; + + if (this.state.grid[i][k] === 'm' && this.checkFieldHasBeenNeverClicked(i, k)) { + currentField.setState({ + currentImage: currentField.state.icons.root + currentField.state.icons.left + }); + } + } + } + } + + /** set __ACTIVE__ player in the UserControl !!!! */ + changePlayer(idx, max, currentObject) { + var userControl = this.refs.userControl, + activePlayer = userControl.state.activePlayer ? 'blue' : 'red', + inactivePlayer = userControl.state.activePlayer ? 'red' : 'blue'; + + if ( + userControl.state.bombSelected && idx === (max - 1) || + !idx && !userControl.state.bombSelected && currentObject !== 'm' + ) { + userControl.setState({ + activePlayer: userControl.state.activePlayer ? 0 : 1 + }); + + /** the desc is inversely because the user.active is not changed yet !!! */ + userControl.refs[activePlayer].setState({ + active: false, + desc: "" + }); + + userControl.refs[inactivePlayer].setState({ + active: true, + desc: activePlayer === this.state.webPlayer + ? this.state.desc.buddy + : this.state.desc.you + }); + } + } + + /** + * Show all fields that needed after click + * + * @param currentField + * @param row + * @param col + */ + showAppropriateFields(currentField, row, col) { + currentField.setState({ + currentObj: this.state.grid[row][col], + active: true + }); + + if (this.checkFieldHasBeenNeverClicked(row, col)) { + this.state.updatedFieldCache.push(this.refString(row, col)); + } + + if (this.state.grid[row][col] === 0) { + var neighbours = this.checkNeighbours(row, col); + + neighbours + .filter((i) => { + return i !== false; + }) + .forEach((element, index, array) => { + var currentField = this.refs[this.refString(element.row, element.col)]; + this.showAppropriateFields(currentField, element.row, element.col); + }); + } + } + + /** + * Player control method + * + * @param currentObject {int|string} Current object from Grid class + * @param row {int} + * @param col {int} + * @param justOnFirstIteration {int} When bomb is being used check the whole explosion area + */ + handleGridField(currentObject, row, col, justOnFirstIteration = 0) { + var userControl = this.refs.userControl, + gridFieldControl = this.refs[this.refString(row, col)], + activePlayer = userControl.state.activePlayer ? 'blue' : 'red', + inactivePlayer = userControl.state.activePlayer ? 'red' : 'blue'; + + /** if the clicked field is NEVER CLICKED */ + if (this.checkFieldHasBeenNeverClicked(row, col)) { + /** update LAST CLICKED grid field */ + if (!justOnFirstIteration) { + if (this.state.lastClicked[activePlayer] !== null) { + this.refs[this.refString(this.state.lastClicked[activePlayer][0], this.state.lastClicked[activePlayer][1])].setState({ + lastClickedRed: false, + lastClickedBlue: false + }); + } + } + + this.state.lastClicked[activePlayer] = [row, col]; + + /** if you found mine */ + if (currentObject === 'm') { + this.state.foundUserMineCache++; + + if (!justOnFirstIteration) { + /** set last clicked field w/ color */ + this.state.lastClicked[activePlayer] = [row, col]; + + this.state.sound[ + (userControl.refs[activePlayer].state.mines + this.state.foundUserMineCache) > 20 + ? 'warning' + : 'mine' + ].play(); + } + + /** set current image in field */ + gridFieldControl.setState({ + currentImage: gridFieldControl.state.icons.root + gridFieldControl.state.icons.flag[activePlayer] + }); + } else { + this.state.sound.click.play(); + + /** set current image in field - WHEN it is a number */ + if (!isNaN(currentObject)) { + gridFieldControl.setState({ + currentImage: currentObject + }); + } + } + + /** + * set bombs status - we must add one mine (currentObject === 'm' ? 1 : 0) to current mine + * when it found NOW because the status is not refreshed unless the handleGridField() ends + */ + userControl.refs[activePlayer].setState({ + enabledBomb: userControl.refs[activePlayer].state.mines + (currentObject === 'm' ? 1 : 0) <= userControl.refs[inactivePlayer].state.mines + }); + + userControl.refs[inactivePlayer].setState({ + enabledBomb: userControl.refs[activePlayer].state.mines + (currentObject === 'm' ? 1 : 0) >= userControl.refs[inactivePlayer].state.mines + }); + + /** set-up last clicked */ + if (!justOnFirstIteration) { + gridFieldControl.setState({ + lastClickedRed: activePlayer === 'red', + lastClickedBlue: activePlayer === 'blue' + }); + } + } + } + + /** + * Show elems w/ conditions + * + * @param row + * @param col + * @param idx + * @param max + */ + show(row, col, idx = 0, max = 0) { + this.handleGridField(this.state.grid[row][col], row, col, idx); + this.showAppropriateFields(this.refs[this.refString(row, col)], row, col); + this.changePlayer(idx, max, this.state.grid[row][col]); + } + + /** + * STEP one + * + * @param coords + */ + stepEvent(coords) { + /** if the clicked field is NEVER CLICKED */ + if (this.checkFieldHasBeenNeverClicked(coords[0], coords[1])) { + var activePlayer = this.refs.userControl.state.activePlayer ? 'blue' : 'red'; + + this.state.foundUserMineCache = 0; + this.state.playBomb = true; + + /** Show elements */ + if (this.refs.userControl.state.bombSelected) { + this.state.sound.bomb.play(); + + var bombRadius = this.getBombRadius(coords[0], coords[1]); + for (var i = 0, j = bombRadius.length; i < j; i++) { + this.show(bombRadius[i][0], bombRadius[i][1], i, j); + } + + /** remove BOMB from activePlayer */ + this.refs.userControl.refs[activePlayer].setState({ + haveBomb: false + }); + } else { + this.show(coords[0], coords[1]); + } + + /** Mine score handling */ + if (this.state.foundUserMineCache) { + this.refs.userControl.setState({ + mines: this.refs.userControl.state.mines - this.state.foundUserMineCache, + foundMines: true + }, () => { + /** because of CSS animation in .found-mine */ + setTimeout(() => this.refs.userControl.setState({foundMines: false}), 500); + + /** add the found mines to the active Player */ + this.refs.userControl.refs[activePlayer].setState({ + mines: this.refs.userControl.refs[activePlayer].state.mines + this.state.foundUserMineCache + }); + }); + } + + /** Reset BOMB status */ + if (this.refs.userControl.state.bombSelected) { + /** reset bomb selected status */ + this.refs.userControl.setState({bombSelected: false}); + + /** clear cache, reset symbols */ + this.bombClear(); + } + } + } + + /** + * On Hover when you want to drop BOMB + * Target grid field + * @param coords + */ + onHoverGridField(coords) { + if (this.refs.userControl.state.bombSelected) { + var activePlayer = this.refs.userControl.state.activePlayer ? 'blue' : 'red'; + + if (activePlayer === this.state.webPlayer) { + /** clear cache, reset symbols */ + this.bombClear(); + + /** new cache && field activate */ + this.bombCreate(coords[0], coords[1]); + } else { + this.refs.userControl.setState({bombSelected: false}); + } + } + } + + overlayClass() { + return 'game-overlay' + (this.state.overlay ? '' : ' hide'); + } + + renderGridFields() { + for (let i = 0, j = this.state.grid.length; i < j; i++) { + for (let k = 0, l = this.state.grid[i].length; k < l; k++) { + this.state.gridFields.push( + + ); + } + } + } + + render() { + /** Render the grid fields just one time in one party #12 */ + this.state.renderGridFields && this.renderGridFields(); + this.state.renderGridFields = false; + + return ( +
+
+
+

{this.state.overlayTitle}

+

{this.state.overlaySubTitle}

+
+
+ +
+
+ <> + {this.state.gridFields} + +
+
+
+ ); + } +} + +export default GridControl; diff --git a/assets/js/mine-seeker/grid/grid-field.js b/assets/js/mine-seeker/grid/grid-field.js new file mode 100644 index 0000000..f649740 --- /dev/null +++ b/assets/js/mine-seeker/grid/grid-field.js @@ -0,0 +1,145 @@ +import React from 'react'; + +class GridField extends React.Component { + constructor(props) { + super(props); + + this.state = { + currentObj: 'w', + currentImage: null, + active: false, + lastClickedRed: false, + lastClickedBlue: false, + bombTargetArea: null, + icons: { + root: '/images/', + water: { + 1: 'bg-wave-1-outbg.png', + 2: 'bg-wave-1-outbg.png', + 3: 'bg-wave-2-outbg.png' + }, + flag: { + red: 'bg-flag-red-outbg.png', + blue: 'bg-flag-blue-outbg.png' + }, + target: { + lastBlue: 'bg-last-blue-outbg.png', + lastRed: 'bg-last-red-outbg.png', + crosshair: 'bg-target-outbg.png', + crosshairBomb: 'bg-target-bomb-outbg.png' + }, + left: 'bg-left-mine-outbg.png' + } + }; + } + + componentWillMount() { + var wave = Math.floor(Math.random() * 3) + 1; + + this.setState({ + currentImage: this.state.icons.root + this.state.icons.water[wave] + }); + } + + classNameWhenActive() { + return 'field' + + (this.state.active === true ? ' active' : '') + + (this.state.active === true && this.state.currentObj === 'm' ? ' mine' : '') + + ' color-' + this.state.currentObj; + } + + currentImage() { + return isNaN(this.state.currentImage) + ? +
+ +
+
+ : this.state.currentImage ?
{this.state.currentImage}
: ''; + } + + lastClickedClass() { + return 'field-' + + (this.state.lastClickedRed ? 'red' : '') + + (this.state.lastClickedBlue ? 'blue' : '') + '-last last-clicked'; + } + + lastClickedSrc() { + return this.state.lastClickedRed + ? "/images/bg-last-red-outbg.png" + : "/images/bg-last-blue-outbg.png"; + } + + currentLastClicked() { + return this.state.lastClickedRed || this.state.lastClickedBlue + ? blue last + : ''; + } + + createBombTarget() { + if (this.state.bombTargetArea !== null) { + var vert = '', hor = ''; + + switch (this.state.bombTargetArea[0]) { + case 0: + vert = 'left'; + break; + case 1: + vert = 'center'; + break; + case 2: + vert = 'right'; + break; + default: + vert = null; + break; + } + + switch (this.state.bombTargetArea[1]) { + case 0: + hor = 'top'; + break; + case 1: + hor = 'middle'; + break; + case 2: + hor = 'bottom'; + break; + default: + vert = null; + break; + } + + var src = vert === null + ? '/images/bg-bomb-empty-outbg.png' + : '/images/bg-bomb-' + hor + '-' + vert + '-outbg.png'; + + return bomb target + } + } + + render() { + return ( +
+ target + {this.createBombTarget()} + {this.currentLastClicked()} +
+
+ {this.currentImage()} +
+
+
+ ); + } +} + +export default GridField; diff --git a/assets/js/mine-seeker/grid/grid.js b/assets/js/mine-seeker/grid/grid.js new file mode 100644 index 0000000..66857c7 --- /dev/null +++ b/assets/js/mine-seeker/grid/grid.js @@ -0,0 +1,101 @@ +import React from 'react'; + +class Grid extends React.Component { + constructor() { + super(); + + this.state = { + row: 16, + col: 16, + mines: 51, + set: [] + }; + + this.state.grid = this.numberingGrid( + this.createGrid( + this.shuffleSet( + this.createSet( + this.state.set + ) + ) + ) + ); + } + + createSet(obj) { + for (var i = 0, j = this.state.row * this.state.col; i < j; i++) { + obj.push( + this.state.mines > 0 + ? "m" + : "w" + ); + this.state.mines--; + } + + return obj; + } + + shuffleSet(obj) { + return obj.sort(function () { + return Math.round(Math.random()) - .5; + }); + } + + createGrid(obj) { + var grid = [[]], + row = 0, + col = 0; + + for (var i = 0, j = obj.length; i < j; i++) { + grid[row][col] = obj[i]; + + if (col === 15 && row !== 15) { + row++; + col = 0; + grid.push([]); + } else { + col++; + } + } + + return grid; + } + + checkMine(field, i, j) { + return typeof field[i] !== 'undefined' && typeof field[i][j] !== 'undefined' && field[i][j] === 'm'; + } + + isThereMine(obj, row, col) { + if (this.checkMine(obj, row, col)) { + return 1; + } + return 0; + } + + numberingGrid(obj) { + var nbr = 0; + + for (var i = 0; i < this.state.row; i++) { + for (var j = 0; j < this.state.col; j++) { + if (obj[i][j] === 'w') { + nbr = 0; + + nbr += this.isThereMine(obj, i - 1, j); + nbr += this.isThereMine(obj, i - 1, j - 1); + nbr += this.isThereMine(obj, i - 1, j + 1); + nbr += this.isThereMine(obj, i, j - 1); + nbr += this.isThereMine(obj, i, j + 1); + nbr += this.isThereMine(obj, i + 1, j); + nbr += this.isThereMine(obj, i + 1, j + 1); + nbr += this.isThereMine(obj, i + 1, j - 1); + + obj[i][j] = nbr; + } + } + } + + return obj; + } +} + +export default Grid; diff --git a/assets/js/mine-seeker/user/user-control.js b/assets/js/mine-seeker/user/user-control.js new file mode 100644 index 0000000..86afcd4 --- /dev/null +++ b/assets/js/mine-seeker/user/user-control.js @@ -0,0 +1,78 @@ +import React from 'react'; +import User from './user'; + +class UserControl extends React.Component { + constructor() { + super(); + + /** + * activePlayer - red: 0, blue: 1 + * @type {{activePlayer: boolean, mines: number, bombSelected: boolean, foundMines: boolean}} + */ + this.state = { + activePlayer: false, + mines: 51, + bombSelected: false, + foundMines: false + }; + } + + youCanSelectBomb(activePlayer, clickedPlayer) { + return this.refs[activePlayer].state.haveBomb && + this.refs[activePlayer].state.enabledBomb && + this.state.activePlayer === clickedPlayer; + } + + onClickBombSelector(clickedPlayer) { + let activePlayer = this.state.activePlayer ? 'blue' : 'red'; + + if (this.youCanSelectBomb(activePlayer, clickedPlayer)) { + this.state.bombSelected = !this.state.bombSelected; + + if (!this.state.bombSelected) { + this.props.bombClear(); + } + } + } + + getResignClass(webPlayer) { + let activePlayer = this.state.activePlayer === 1 ? 'blue' : 'red'; + return "resign" + (webPlayer !== activePlayer ? ' disabled' : ''); + } + + activeMines() { + return "active-mines" + (this.state.foundMines ? ' found-mine' : ''); + } + + render() { + return ( +
+ +
+ +
+
{this.state.mines}
+
+
+ +
+
+ + +
+ ); + } +} + +export default UserControl; diff --git a/assets/js/mine-seeker/user/user.js b/assets/js/mine-seeker/user/user.js new file mode 100644 index 0000000..851d082 --- /dev/null +++ b/assets/js/mine-seeker/user/user.js @@ -0,0 +1,90 @@ +import React from 'react'; + +class User extends React.Component { + constructor(props) { + super(props); + + this.state = { + name: "...", + desc: "", + active: props.active, + color: props.color === 'blue' ? 1 : 0, + mines: 0, + srcRoot: '/images/', + haveBomb: true, + enabledBomb: true + }; + } + + setColor(color) { + return 'user-container user-' + color; + } + + getSrc(color) { + return this.state.srcRoot + 'bg-flag-' + color + '-outbg.png'; + } + + getBombBuzzClass(webPlayer) { + let activePlayer = this.state.color === 1 ? 'blue' : 'red'; + + return "bomb-container" + + ( + this.state.active && (activePlayer === webPlayer) && this.state.haveBomb && this.state.enabledBomb + ? ' buzz' + : '' + ); + } + + getBomb() { + let src = this.state.srcRoot; + + if (this.state.haveBomb) { + src += this.state.enabledBomb && this.state.active + ? 'bg-bomb-outbg.png' + : 'bg-bomb-disabled-outbg.png'; + } else { + src += 'bg-bomb-exploded-outbg.png'; + } + + return src; + } + + getFigure(color) { + return this.state.srcRoot + 'bg-figure-' + color + '-outbg.png'; + } + + getCursor(state, color) { + return state + ? cursor + : ''; + } + + render() { + return ( +
+
+
{this.props.color}
+ {this.getCursor(this.props.active, this.props.color)} + figure +
+
{this.state.name}
+
+
{this.state.desc}
+
+ flag +
+ {this.state.mines} +
+
+
+ bomb +
+
+
+
+
+ ); + } +} + +export default User; diff --git a/assets/js/src/build/react-dom-server.js b/assets/js/src/build/react-dom-server.js new file mode 100644 index 0000000..3ce1843 --- /dev/null +++ b/assets/js/src/build/react-dom-server.js @@ -0,0 +1,42 @@ +/** + * ReactDOMServer v15.3.2 + * + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ +// Based off https://github.com/ForbesLindesay/umd/blob/master/template.js +;(function(f) { + // CommonJS + if (typeof exports === "object" && typeof module !== "undefined") { + module.exports = f(require('react')); + + // RequireJS + } else if (typeof define === "function" && define.amd) { + define(['react'], f); + + // + + + {{ encore_entry_script_tags('mineseeker') }} +{% endblock %} diff --git a/templates/Official/contact.html.twig b/templates/Official/contact.html.twig new file mode 100644 index 0000000..c98a896 --- /dev/null +++ b/templates/Official/contact.html.twig @@ -0,0 +1,13 @@ +{% extends 'Game/index.html.twig' %} + +{% block title %} - Contact{% endblock %} + +{% block body %} +
+

Contact and user support

+ +

Under construction

+ + langlasz@gmail.com +
+{% endblock %} diff --git a/templates/Official/landing.html.twig b/templates/Official/landing.html.twig new file mode 100644 index 0000000..181fbb3 --- /dev/null +++ b/templates/Official/landing.html.twig @@ -0,0 +1,11 @@ +{% extends 'Game/index.html.twig' %} + +{% block title %} - Landing page{% endblock %} + +{% block body %} +
+

Landing page w/ marketing

+ +

Under construction

+
+{% endblock %} diff --git a/templates/Official/privacy.html.twig b/templates/Official/privacy.html.twig new file mode 100644 index 0000000..e88cd97 --- /dev/null +++ b/templates/Official/privacy.html.twig @@ -0,0 +1,52 @@ +{% extends 'Game/index.html.twig' %} + +{% block title %} - Privacy Policy{% endblock %} + +{% block body %} +
+

MineSeeker Privacy Policy

+ +

Your privacy is important to us.

+ +

It is MineSeeker's policy to respect your privacy regarding any information we may collect while operating + our + website. Accordingly, we have developed this privacy policy in order for you to understand how we collect, + use, + communicate, disclose and otherwise make use of personal information. We have outlined our privacy policy + below.

+ +
    +
  • We will collect personal information by lawful and fair means and, where appropriate, with the knowledge + or + consent of the individual concerned. +
  • +
  • Before or at the time of collecting personal information, we will identify the purposes for which + information is being collected. +
  • +
  • We will collect and use personal information solely for fulfilling those purposes specified by us and + for + other ancillary purposes, unless we obtain the consent of the individual concerned or as required by + law. +
  • +
  • Personal data should be relevant to the purposes for which it is to be used, and, to the extent + necessary + for those purposes, should be accurate, complete, and up-to-date. +
  • +
  • We will protect personal information by using reasonable security safeguards against loss or theft, as + well + as unauthorized access, disclosure, copying, use or modification. +
  • +
  • We will make readily available to customers information about our policies and practices relating to the + management of personal information. +
  • +
  • We will only retain personal information for as long as necessary for the fulfilment of those + purposes. +
  • +
+ +

We are committed to conducting our business in accordance with these principles in order to ensure that the + confidentiality of personal information is protected and maintained. MineSeeker may change this privacy + policy + from time to time at MineSeeker's sole discretion.

+
+{% endblock %} diff --git a/templates/Official/terms.html.twig b/templates/Official/terms.html.twig new file mode 100644 index 0000000..12cb981 --- /dev/null +++ b/templates/Official/terms.html.twig @@ -0,0 +1,100 @@ +{% extends 'Game/index.html.twig' %} + +{% block title %} - Terms of Service{% endblock %} + +{% block body %} +
+

MineSeeker Terms of Service

+ +

1. Terms

+ +

By accessing the website at https://www.mineseeker.ninja, you are + agreeing to be bound by these terms of service, all applicable laws and regulations, and agree that you are + responsible for compliance with any applicable local laws. If you do not agree with any of these terms, you + are + prohibited from using or accessing this site. The materials contained in this website are protected by + applicable copyright and trademark law.

+ +

2. Use License

+ +
    +
  1. + Permission is granted to temporarily download one copy of the materials (information or software) on + MineSeeker's website for personal, non-commercial transitory viewing only. This is the grant of a + license, + not a transfer of title, and under this license you may not: + +
      +
    1. modify or copy the materials;
    2. +
    3. use the materials for any commercial purpose, or for any public display (commercial or + non-commercial); +
    4. +
    5. attempt to decompile or reverse engineer any software contained on MineSeeker's website;
    6. +
    7. remove any copyright or other proprietary notations from the materials; or
    8. +
    9. transfer the materials to another person or "mirror" the materials on any other server.
    10. +
    +
  2. +
  3. This license shall automatically terminate if you violate any of these restrictions and may be + terminated by + MineSeeker at any time. Upon terminating your viewing of these materials or upon the termination of this + license, you must destroy any downloaded materials in your possession whether in electronic or printed + format. +
  4. +
+ +

3. Disclaimer

+ +
    +
  1. The materials on MineSeeker's website are provided on an 'as is' basis. MineSeeker makes no warranties, + expressed or implied, and hereby disclaims and negates all other warranties including, without + limitation, + implied warranties or conditions of merchantability, fitness for a particular purpose, or + non-infringement + of intellectual property or other violation of rights. +
  2. +
  3. Further, MineSeeker does not warrant or make any representations concerning the accuracy, likely + results, or + reliability of the use of the materials on its website or otherwise relating to such materials or on any + sites linked to this site. +
  4. +
+ +

4. Limitations

+ +

In no event shall MineSeeker or its suppliers be liable for any damages (including, without limitation, + damages + for loss of data or profit, or due to business interruption) arising out of the use or inability to use the + materials on MineSeeker's website, even if MineSeeker or a MineSeeker authorized representative has been + notified orally or in writing of the possibility of such damage. Because some jurisdictions do not allow + limitations on implied warranties, or limitations of liability for consequential or incidental damages, + these + limitations may not apply to you.

+ +

5. Accuracy of materials

+ +

The materials appearing on MineSeeker's website could include technical, typographical, or photographic + errors. + MineSeeker does not warrant that any of the materials on its website are accurate, complete or current. + MineSeeker may make changes to the materials contained on its website at any time without notice. However + MineSeeker does not make any commitment to update the materials.

+ +

6. Links

+ +

MineSeeker has not reviewed all of the sites linked to its website and is not responsible for the contents of + any + such linked site. The inclusion of any link does not imply endorsement by MineSeeker of the site. Use of any + such linked website is at the user's own risk.

+ +

7. Modifications

+ +

MineSeeker may revise these terms of service for its website at any time without notice. By using this + website + you are agreeing to be bound by the then current version of these terms of service.

+ +

8. Governing Law

+ +

These terms and conditions are governed by and construed in accordance with the laws of Budapest, Hungary and + you + irrevocably submit to the exclusive jurisdiction of the courts in that State or location.

+
+{% endblock %} diff --git a/templates/Recent/facebook.html.twig b/templates/Recent/facebook.html.twig new file mode 100644 index 0000000..29885f2 --- /dev/null +++ b/templates/Recent/facebook.html.twig @@ -0,0 +1,23 @@ + diff --git a/templates/Recent/favicon.html.twig b/templates/Recent/favicon.html.twig new file mode 100644 index 0000000..39ff550 --- /dev/null +++ b/templates/Recent/favicon.html.twig @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/templates/Recent/google-analytics.html.twig b/templates/Recent/google-analytics.html.twig new file mode 100644 index 0000000..a6f7db7 --- /dev/null +++ b/templates/Recent/google-analytics.html.twig @@ -0,0 +1,19 @@ +{% if app.environment == 'prod' %} + +{% endif %} diff --git a/templates/base.html.twig b/templates/base.html.twig index 043f42d..0cf614e 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -1,12 +1,39 @@ - - - {% block title %}Welcome!{% endblock %} - {% block stylesheets %}{% endblock %} - - + + + + + + + + + + + + + + + + {% block metas %}{% endblock %} + MineSeeker{% block title %}{% endblock %} + + {% block stylesheets %}{% endblock %} + + + + {% block bodyTop %}{% endblock %} + +
+ {% block header %}{% endblock %} +
+
{% block body %}{% endblock %} - {% block javascripts %}{% endblock %} - +
+ + + {% block javascripts %}{% endblock %} + diff --git a/webpack.config.js b/webpack.config.js index e36fa20..5b99a32 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,24 +1,50 @@ var Encore = require('@symfony/webpack-encore'); +// Manually configure the runtime environment if not already configured yet by the "encore" command. +// It's useful when you use tools that rely on webpack.config.js file. +if (!Encore.isRuntimeEnvironmentConfigured()) { + Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev'); +} + +// the project directory where compiled assets will be stored Encore - // the project directory where compiled assets will be stored .setOutputPath('public/build/') // the public path used by the web server to access the previous directory .setPublicPath('/build') - .cleanupOutputBeforeBuild() + + // .cleanupOutputBeforeBuild() + .enableBuildNotifications() .enableSourceMaps(!Encore.isProduction()) // uncomment to create hashed filenames (e.g. app.abc123.css) - // .enableVersioning(Encore.isProduction()) + .enableVersioning(Encore.isProduction()) + + // .copyFiles([ + // {from: './public/bundles/goswebsocket/', to: '/[path][name].[ext]', pattern: /\.(js|css|map)$/, includeSubdirectories: false}, + // ]) // uncomment to define the assets of the project // .addEntry('js/app', './assets/js/app.js') // .addStyleEntry('css/app', './assets/css/app.scss') + // .addEntry('mineseeker', ['babel-polyfill', './assets/js/mine-seeker.js']) + .addEntry('mineseeker', './assets/js/mine-seeker.js') + .addEntry('mineseekerStyle', './assets/css/style.mineseeker.scss') + .addEntry('homeStyle', './assets/css/style.layout.scss') + // uncomment if you use Sass/SCSS files - // .enableSassLoader() + .enableSassLoader() // uncomment for legacy applications that require $/jQuery as a global variable - // .autoProvidejQuery() + .autoProvidejQuery() + + // .configureBabel(function (babelConfig) { + // babelConfig.presets.push('env'); + // }) + + .enableReactPreset() + + // .enableSingleRuntimeChunk() + .disableSingleRuntimeChunk() ; module.exports = Encore.getWebpackConfig(); diff --git a/yarn.lock b/yarn.lock index ac6520e..9517ba8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -54,6 +54,14 @@ "@babel/helper-explode-assignable-expression" "^7.1.0" "@babel/types" "^7.0.0" +"@babel/helper-builder-react-jsx@^7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" + integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw== + dependencies: + "@babel/types" "^7.3.0" + esutils "^2.0.0" + "@babel/helper-call-delegate@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" @@ -288,6 +296,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-jsx@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" + integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" @@ -488,6 +503,38 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-react-display-name@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" + integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-jsx-self@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" + integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-react-jsx-source@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" + integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" + integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg== + dependencies: + "@babel/helper-builder-react-jsx" "^7.3.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + "@babel/plugin-transform-regenerator@^7.4.5": version "7.4.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" @@ -604,6 +651,17 @@ js-levenshtein "^1.1.3" semver "^5.5.0" +"@babel/preset-react@^7.6.3": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.6.3.tgz#d5242c828322520205ae4eda5d4f4f618964e2f6" + integrity sha512-07yQhmkZmRAfwREYIQgW0HEwMY9GBJVuPY4Q12UC72AbfaawuupVWa8zQs2tlL+yun45Nv/1KreII/0PLfEsgA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + "@babel/template@^7.1.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" @@ -628,7 +686,7 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.6.3": +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.6.3": version "7.6.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09" integrity sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA== @@ -880,11 +938,6 @@ accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= - acorn@^6.2.1: version "6.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" @@ -983,14 +1036,6 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA== - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1020,17 +1065,11 @@ arity-n@^1.0.4: resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" -arr-flatten@^1.0.1, arr-flatten@^1.1.0: +arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" @@ -1060,19 +1099,10 @@ array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - asn1.js@^4.0.0: version "4.10.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" @@ -1127,21 +1157,11 @@ async-foreach@^0.1.3: resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= -async-limiter@~1.0.0: +async-limiter@^1.0.0, async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= - -async@^1.3.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - async@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -1149,11 +1169,6 @@ async@^2.6.2: dependencies: lodash "^4.17.14" -async@~0.2.6: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - integrity sha1-trvgsGdLnXGXCMo43owjfLUmw9E= - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1163,6 +1178,21 @@ atob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" +autobahn@^19.10.1: + version "19.10.1" + resolved "https://registry.yarnpkg.com/autobahn/-/autobahn-19.10.1.tgz#9c9c6cf5f2548a9463599aaf045f81507b09384d" + integrity sha512-E1xbW30a3Jw+JB3J4RyklKww6FcVb4J4Jr7OcHLoBjy/6KLH54BwRvVHSDF8Mut+axal4zkoxVmOGyG3vldUgQ== + dependencies: + cbor ">= 3.0.0" + crypto-js ">=3.1.8" + msgpack5 ">= 3.6.0" + tweetnacl ">= 0.14.3" + when ">= 3.7.7" + ws ">= 1.1.4" + optionalDependencies: + bufferutil ">= 1.2.1" + utf-8-validate ">= 1.2.1" + autoprefixer@^7.2.2: version "7.2.6" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" @@ -1185,6 +1215,120 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + babel-loader@^8.0.0: version "8.0.6" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" @@ -1195,6 +1339,20 @@ babel-loader@^8.0.0: mkdirp "^0.5.1" pify "^4.0.1" +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= + dependencies: + babel-runtime "^6.22.0" + babel-plugin-dynamic-import-node@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" @@ -1202,6 +1360,338 @@ babel-plugin-dynamic-import-node@^2.3.0: dependencies: object.assign "^4.1.0" +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.22.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" + integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^3.2.6" + invariant "^2.2.2" + semver "^5.3.0" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1242,10 +1732,23 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +bignumber.js@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" + integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== + binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" +bl@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-2.2.0.tgz#e1a574cdf528e4053019bb800b041c0ac88da493" + integrity sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" @@ -1293,6 +1796,11 @@ boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" +bootstrap@3: + version "3.4.1" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz#c3a347d419e289ad11f4033e3c4132b87c081d72" + integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1300,14 +1808,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - braces@^2.3.0, braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -1327,13 +1827,6 @@ brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" -browserify-aes@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-0.4.0.tgz#067149b668df31c4b58533e02d01e806d8608e2c" - integrity sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw= - dependencies: - inherits "^2.0.1" - browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -1380,13 +1873,6 @@ browserify-sign@^4.0.0: inherits "^2.0.1" parse-asn1 "^5.0.0" -browserify-zlib@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" - integrity sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0= - dependencies: - pako "~0.2.0" - browserify-zlib@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" @@ -1401,6 +1887,14 @@ browserslist@^2.11.3: caniuse-lite "^1.0.30000792" electron-to-chromium "^1.3.30" +browserslist@^3.2.6: + version "3.2.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" + integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== + dependencies: + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" + browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.7.2: version "4.7.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.2.tgz#1bb984531a476b5d389cedecb195b2cd69fb1348" @@ -1423,7 +1917,7 @@ buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" -buffer@^4.3.0, buffer@^4.9.0: +buffer@^4.3.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= @@ -1432,6 +1926,21 @@ buffer@^4.3.0, buffer@^4.9.0: ieee754 "^1.1.4" isarray "^1.0.0" +buffer@^5.4.3: + version "5.4.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz#3fbc9c69eb713d323e3fc1a895eee0710c072115" + integrity sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +"bufferutil@>= 1.2.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7" + integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA== + dependencies: + node-gyp-build "~3.7.0" + builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1542,7 +2051,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30001004: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001004: version "1.0.30001004" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001004.tgz#d879b73981b255488316da946c39327d8c00a586" integrity sha512-3nfOR4O8Wa2RWoYfJkMtwRVOsK96TQ+eq57wd0iKaEWl8dwG4hKZ/g0MVBfCvysFvMLi9fQGR/DvozMdkEPl3g== @@ -1552,6 +2061,14 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +"cbor@>= 3.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.0.1.tgz#243eea46b19c6e54ffb18fb07fa52c1c627a6f05" + integrity sha512-l4ghwqioCyuAaD3LvY4ONwv8NMuERz62xjbMHGdWBqERJPygVmoFER1b4+VS6iW0rXwoVGuKZPPPTofwWOg3YQ== + dependencies: + bignumber.js "^9.0.0" + nofilter "^1.0.3" + center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" @@ -1568,7 +2085,7 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^1.1.1: +chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -1587,22 +2104,6 @@ chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chokidar@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg= - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - chokidar@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" @@ -1722,10 +2223,6 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - coa@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" @@ -1914,10 +2411,10 @@ core-js-compat@^3.1.1: browserslist "^4.7.2" semver "^6.3.0" -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= +core-js@^2.4.0, core-js@^2.5.0: + version "2.6.10" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" + integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA== core-js@^3.0.0: version "3.3.4" @@ -1966,15 +2463,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-react-class@^15.6.0: - version "15.6.3" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" - integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== - dependencies: - fbjs "^0.8.9" - loose-envify "^1.3.1" - object-assign "^4.1.1" - cross-spawn@6.0.5, cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -1994,16 +2482,6 @@ cross-spawn@^3.0.0: lru-cache "^4.0.1" which "^1.2.9" -crypto-browserify@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c" - integrity sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw= - dependencies: - browserify-aes "0.4.0" - pbkdf2-compat "2.0.1" - ripemd160 "0.2.0" - sha.js "2.2.6" - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2020,6 +2498,11 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" +crypto-js@>=3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.8.tgz#715f070bf6014f2ae992a98b3929258b713f08d5" + integrity sha1-cV8HC/YBTyrpkqmLOSkli3E/CNU= + css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" @@ -2225,7 +2708,7 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -2470,7 +2953,7 @@ ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" -electron-to-chromium@^1.3.295, electron-to-chromium@^1.3.30: +electron-to-chromium@^1.3.295, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47: version "1.3.296" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.296.tgz#a1d4322d742317945285d3ba88966561b67f3ac8" integrity sha512-s5hv+TSJSVRsxH190De66YHb50pBGTweT9XGWYu/LMR20KX6TsjFzObo36CjVAzM+PUeeKSBRtm/mISlCzeojQ== @@ -2500,13 +2983,6 @@ encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= - dependencies: - iconv-lite "~0.4.13" - end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -2532,15 +3008,6 @@ enhanced-resolve@^4.1.0: memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@~0.9.0: - version "0.9.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" - integrity sha1-TW5omzcl+GCQknzMhs2fFjW4ni4= - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.2.0" - tapable "^0.1.8" - entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" @@ -2651,6 +3118,11 @@ estraverse@^4.1.0, estraverse@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" +esutils@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -2664,10 +3136,6 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - events@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" @@ -2700,12 +3168,6 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -2718,12 +3180,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" @@ -2785,12 +3241,6 @@ extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -2839,19 +3289,6 @@ faye-websocket@~0.11.1: dependencies: websocket-driver ">=0.5.1" -fbjs@^0.8.9: - version "0.8.17" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" - integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.18" - figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -2865,20 +3302,6 @@ file-loader@^1.1.10: loader-utils "^1.0.2" schema-utils "^0.4.5" -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -2948,16 +3371,10 @@ follow-redirects@^1.0.0: dependencies: debug "^3.1.0" -for-in@^1.0.1, for-in@^1.0.2: +for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" @@ -3044,14 +3461,6 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.0.0, fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== - dependencies: - nan "^2.12.1" - node-pre-gyp "^0.12.0" - fsevents@^1.1.2: version "1.2.4" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" @@ -3059,6 +3468,14 @@ fsevents@^1.1.2: nan "^2.9.2" node-pre-gyp "^0.10.0" +fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + fstream@^1.0.0, fstream@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" @@ -3124,19 +3541,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -3208,6 +3612,11 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -3265,10 +3674,6 @@ 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-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -3360,7 +3765,7 @@ hosted-git-info@^2.1.4: version "2.6.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" -howler@^2.0.1: +howler@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/howler/-/howler-2.1.2.tgz#8433a09d8fe84132a3e726e05cb2bd352ef8bd49" integrity sha512-oKrTFaVXsDRoB/jik7cEpWKTj7VieoiuzMYJ7E/EU5ayvmpRhumCv3YQ3823zi9VTJkSWAhbryHnlZAionGAJg== @@ -3469,16 +3874,11 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" - integrity sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI= - https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" -iconv-lite@0.4.24, iconv-lite@~0.4.13: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -3553,10 +3953,6 @@ indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - infer-owner@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -3599,11 +3995,6 @@ interpret@1.2.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== -interpret@^0.6.4: - version "0.6.6" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" - integrity sha1-/s16GOfOXKar+5U+H4YhOknxYls= - invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -3738,16 +4129,6 @@ is-directory@^0.3.1: resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -3758,10 +4139,6 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3782,12 +4159,6 @@ is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -3800,12 +4171,6 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -3852,14 +4217,6 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" @@ -3871,7 +4228,7 @@ is-resolvable@^1.0.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -3929,20 +4286,12 @@ isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jquery@^3.3.1: +jquery@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== @@ -3961,7 +4310,7 @@ js-levenshtein@^1.1.3: resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== -js-tokens@^3.0.0: +js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" @@ -4135,16 +4484,6 @@ loader-utils@1.2.3, loader-utils@^1.0.1, loader-utils@^1.2.3: emojis-list "^2.0.0" json5 "^1.0.1" -loader-utils@^0.2.11: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - 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" @@ -4173,7 +4512,7 @@ lodash.uniq@^4.5.0: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" -lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@~4.17.10: +lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.10: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -4193,7 +4532,7 @@ loose-envify@^1.0.0: dependencies: js-tokens "^3.0.0" -loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0: +loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -4255,10 +4594,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -math-random@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" - md5.js@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" @@ -4289,11 +4624,6 @@ mem@^4.0.0: mimic-fn "^2.0.0" p-is-promise "^2.0.0" -memory-fs@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" - integrity sha1-8rslNovBIeORwlIN6Slpyu4KApA= - memory-fs@^0.4.0, memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -4310,14 +4640,6 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" -memory-fs@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" - integrity sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - meow@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" @@ -4342,25 +4664,6 @@ methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -4460,11 +4763,6 @@ minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= - minipass@^2.2.1, minipass@^2.2.4: version "2.3.1" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.1.tgz#4e872b959131a672837ab3cb554962bc84b1537d" @@ -4501,7 +4799,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -4533,6 +4831,16 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +"msgpack5@>= 3.6.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/msgpack5/-/msgpack5-4.2.1.tgz#007233691af34c4168cea9477cb3236aae854f03" + integrity sha512-Xo7nE9ZfBVonQi1rSopNAqPdts/QHyuSEUwIEzAkB+V2FtmkkLUbP6MyVqVVQxsZYI65FpvW3Bb8Z9ZWEjbgHQ== + dependencies: + bl "^2.0.1" + inherits "^2.0.3" + readable-stream "^2.3.6" + safe-buffer "^5.1.2" + multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" @@ -4614,19 +4922,16 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - node-forge@0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== +node-gyp-build@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d" + integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w== + node-gyp@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" @@ -4645,35 +4950,6 @@ node-gyp@^3.8.0: tar "^2.0.0" which "1" -node-libs-browser@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.7.0.tgz#3e272c0819e308935e26674408d7af0e1491b83b" - integrity sha1-PicsCBnjCJNeJmdECNevDhSRuDs= - dependencies: - assert "^1.1.1" - browserify-zlib "^0.1.4" - buffer "^4.9.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "3.3.0" - domain-browser "^1.1.1" - events "^1.0.0" - https-browserify "0.0.1" - os-browserify "^0.2.0" - path-browserify "0.0.0" - process "^0.11.0" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.0.5" - stream-browserify "^2.0.1" - stream-http "^2.3.1" - string_decoder "^0.10.25" - timers-browserify "^2.0.2" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" - node-libs-browser@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" @@ -4775,6 +5051,11 @@ node-sass@^4.12.0: stdout-stream "^1.4.0" "true-case-path" "^1.0.2" +nofilter@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.3.tgz#34e54b4cc9757de0cad38cc0d19462489b1b7f5d" + integrity sha512-FlUlqwRK6reQCaFLAhMcF+6VkVG2caYjKQY3YsRDTl4/SEch595Qb3oLjJRDr8dkHAAOVj2pOx3VknfnSgkE5g== + "nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -4798,7 +5079,7 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: +normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= @@ -4936,13 +5217,6 @@ object.getownpropertydescriptors@^2.0.3: define-properties "^1.1.2" es-abstract "^1.5.1" -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -4987,14 +5261,6 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optimist@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - optimize-css-assets-webpack-plugin@^5.0.1: version "5.0.3" resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572" @@ -5010,11 +5276,6 @@ original@^1.0.0: dependencies: url-parse "^1.4.3" -os-browserify@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" - integrity sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8= - os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -5094,11 +5355,6 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@~0.2.0: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" - integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= - pako@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" @@ -5122,15 +5378,6 @@ parse-asn1@^5.0.0: evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -5163,10 +5410,6 @@ pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - path-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" @@ -5217,11 +5460,6 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -pbkdf2-compat@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" - integrity sha1-tuDI+plJTZTgURV1gCpZpcFC8og= - pbkdf2@^3.0.3: version "3.0.16" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" @@ -5625,10 +5863,6 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.5, postcss@^7.0.6: source-map "^0.6.1" supports-color "^6.1.0" -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - pretty-error@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" @@ -5644,7 +5878,7 @@ process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" -process@^0.11.0, process@^0.11.10: +process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= @@ -5654,14 +5888,7 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - -prop-types@^15.5.10: +prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -5765,14 +5992,6 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== -randomatic@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" @@ -5820,31 +6039,29 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@^15.3.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730" - integrity sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA= +react-dom@^16.11.0: + version "16.11.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.11.0.tgz#7e7c4a5a85a569d565c2462f5d345da2dd849af5" + integrity sha512-nrRyIUE1e7j8PaXSPtyRKtz+2y9ubW/ghNgqKFHHAHaeP0fpF5uXR+sq8IMRHC+ZUxw7W9NyCDTBtwWxvkb0iA== dependencies: - fbjs "^0.8.9" loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.10" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.17.0" react-is@^16.8.1: version "16.11.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.11.0.tgz#b85dfecd48ad1ce469ff558a882ca8e8313928fa" integrity sha512-gbBVYR2p8mnriqAwWx9LbuUrShnAuSCNnuPGyc7GJrMVQtPDAh8iLpv7FRuMPFb56KkaVZIYSz1PrjI9q0QPCw== -react@^15.3.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72" - integrity sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI= +react@^16.11.0: + version "16.11.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.11.0.tgz#d294545fe62299ccee83363599bf904e4a07fdbb" + integrity sha512-M5Y8yITaLmU0ynd0r1Yvfq98Rmll6q8AxaEe88c8e7LxO8fZ2cNgmFt0aGAS9wzf1Ao32NKXtCl+/tVVtkxq6g== dependencies: - create-react-class "^15.6.0" - fbjs "^0.8.9" loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.10" + object-assign "^4.1.1" + prop-types "^15.6.2" read-pkg-up@^1.0.1: version "1.0.1" @@ -5861,7 +6078,7 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: @@ -5923,11 +6140,30 @@ regenerate-unicode-properties@^8.1.0: dependencies: regenerate "^1.4.0" -regenerate@^1.4.0: +regenerate@^1.2.1, regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + regenerator-transform@^0.14.0: version "0.14.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" @@ -5935,12 +6171,6 @@ regenerator-transform@^0.14.0: dependencies: private "^0.1.6" -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -5953,6 +6183,15 @@ regex-parser@2.2.10: resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.10.tgz#9e66a8f73d89a107616e63b39d4deddfee912b37" integrity sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA== +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + regexpu-core@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" @@ -5965,11 +6204,23 @@ regexpu-core@^4.6.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.1.0" +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= + regjsgen@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= + dependencies: + jsesc "~0.5.0" + regjsparser@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" @@ -6144,11 +6395,6 @@ rimraf@^2.6.1: dependencies: glob "^7.0.5" -ripemd160@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" - integrity sha1-K/GYveFnys+lHAqSjoS2i74XH84= - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -6207,6 +6453,14 @@ sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" +scheduler@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.17.0.tgz#7c9c673e4ec781fac853927916d1c426b6f3ddfe" + integrity sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + schema-utils@^0.4.5: version "0.4.7" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" @@ -6335,7 +6589,7 @@ set-value@^2.0.0: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4, setimmediate@^1.0.5: +setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= @@ -6349,11 +6603,6 @@ setprototypeof@1.1.1: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== -sha.js@2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" - integrity sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo= - sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -6444,11 +6693,6 @@ source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" -source-list-map@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" - integrity sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY= - source-map-resolve@^0.5.0, source-map-resolve@^0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" @@ -6482,7 +6726,7 @@ source-map@^0.1.38: dependencies: amdefine ">=0.0.4" -source-map@^0.4.2, source-map@~0.4.1: +source-map@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" integrity sha1-66T12pwNyZneaAMti092FzZSA2s= @@ -6613,17 +6857,6 @@ stream-each@^1.1.0: end-of-stream "^1.1.0" stream-shift "^1.0.0" -stream-http@^2.3.1: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - stream-http@^2.7.2: version "2.8.2" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.2.tgz#4126e8c6b107004465918aa2fc35549e77402c87" @@ -6679,11 +6912,6 @@ string.prototype.trimright@^2.1.0: define-properties "^1.1.3" function-bind "^1.1.1" -string_decoder@^0.10.25, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - string_decoder@^1.0.0, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -6697,6 +6925,11 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -6764,13 +6997,6 @@ 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.1.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= - dependencies: - has-flag "^1.0.0" - supports-color@^5.3.0, supports-color@^5.4.0: version "5.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" @@ -6796,11 +7022,6 @@ svgo@^1.0.0: unquote "~1.1.1" util.promisify "~1.0.0" -tapable@^0.1.8, tapable@~0.1.8: - version "0.1.10" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" - integrity sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q= - tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" @@ -6863,13 +7084,6 @@ thunky@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" -timers-browserify@^2.0.2: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - timers-browserify@^2.0.4: version "2.0.10" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" @@ -6892,6 +7106,11 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -6959,6 +7178,11 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +"tweetnacl@>= 0.14.3": + version "1.0.1" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.1.tgz#2594d42da73cd036bd0d2a54683dd35a6b55ca17" + integrity sha512-kcoMoKTPYnoeS50tzoqjPY3Uv9axeuuFAZY9M/9zFnhoVvRfxz9K29IMPD7jGmt2c8SW7i3gT9WqDl2+nV7p4A== + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -6977,11 +7201,6 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -ua-parser-js@^0.7.18: - version "0.7.20" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098" - integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw== - uglify-js@^2.7.4: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" @@ -6992,16 +7211,6 @@ uglify-js@^2.7.4: optionalDependencies: uglify-to-browserify "~1.0.0" -uglify-js@~2.7.3: - version "2.7.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" - integrity sha1-RhLAx7qu4rp8SH3kkErhIgefLKg= - 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" @@ -7133,6 +7342,13 @@ use@^3.1.0: dependencies: kind-of "^6.0.2" +"utf-8-validate@>= 1.2.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz#63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3" + integrity sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw== + dependencies: + node-gyp-build "~3.7.0" + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7145,7 +7361,7 @@ util.promisify@~1.0.0: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" -util@0.10.3, util@^0.10.3: +util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" dependencies: @@ -7208,26 +7424,11 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - vm-browserify@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== -watchpack@^0.2.1: - version "0.2.9" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" - integrity sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws= - dependencies: - async "^0.9.0" - chokidar "^1.0.0" - graceful-fs "^4.1.2" - watchpack@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" @@ -7260,14 +7461,6 @@ webpack-cli@^3.0.0: v8-compile-cache "2.0.3" yargs "13.2.4" -webpack-core@~0.6.9: - version "0.6.9" - resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" - integrity sha1-/FcViMhVjad76e+23r3Fo7FyvcI= - dependencies: - source-list-map "~0.1.7" - source-map "~0.4.1" - webpack-dev-middleware@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" @@ -7353,27 +7546,6 @@ webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack- source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.15.0.tgz#4ff31f53db03339e55164a9d468ee0324968fe98" - integrity sha1-T/MfU9sDM55VFkqdRo7gMklo/pg= - dependencies: - acorn "^3.0.0" - async "^1.3.0" - clone "^1.0.2" - enhanced-resolve "~0.9.0" - interpret "^0.6.4" - loader-utils "^0.2.11" - memory-fs "~0.3.0" - mkdirp "~0.5.0" - node-libs-browser "^0.7.0" - optimist "~0.6.0" - supports-color "^3.1.0" - tapable "~0.1.8" - uglify-js "~2.7.3" - watchpack "^0.2.1" - webpack-core "~0.6.9" - webpack@^4.20.0: version "4.41.2" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.2.tgz#c34ec76daa3a8468c9b61a50336d8e3303dce74e" @@ -7414,10 +7586,10 @@ websocket-extensions@>=0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" -whatwg-fetch@>=0.10.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" - integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== +"when@>= 3.7.7": + version "3.7.8" + resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" + integrity sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I= which-module@^1.0.0: version "1.0.0" @@ -7454,11 +7626,6 @@ wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -7486,6 +7653,13 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" +"ws@>= 1.1.4": + version "7.2.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.0.tgz#422eda8c02a4b5dba7744ba66eebbd84bcef0ec7" + integrity sha512-+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg== + dependencies: + async-limiter "^1.0.0" + ws@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"