├── .gitignore ├── LICENSE ├── README.md ├── build └── icon.icns ├── gethalo ├── README.md ├── assets │ ├── desktop-preview.gif │ ├── smiling-face-halo.png │ ├── wave-footer.svg │ └── wave-header.svg ├── css │ └── mystyles.css ├── favicon.png ├── index.html ├── metadata.png ├── package-lock.json ├── package.json ├── sass │ ├── custom.scss │ └── mystyles.scss ├── slider.js └── v1.html ├── halo.js ├── images ├── icon_20x20.png └── icon_20x20@2x.png ├── index.html ├── index.js ├── main.js ├── netlify.toml ├── package-lock.json ├── package.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # next.js build output 61 | .next 62 | 63 | releases 64 | 65 | dist 66 | 67 | .DS_Store 68 | 69 | .sass-cache 70 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Gaurav Chikhale 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # HALO 😇 2 | 3 | A little bot that tries to take care of you when you're using your Mac. It tells you cute, self care things, and tries not to stress you out. 4 | 5 | Screen Shot 2019-07-14 at 1 34 16 AM 6 | 7 | #### How to install 8 | Instructions for installing halo is recorded here https://youtu.be/qdL4G1hdIho, or you can also follow the instructions below. 9 | 10 | 11 | - Go to [release page](https://github.com/gauravchl/halo/releases) and download latest version. eg: [halo-1.0.0.dmg](https://github.com/gauravchl/halo/releases/download/v1.0.0/halo-1.0.0.dmg) 12 | - Click on downloaded file and move it to application folder. 13 | 14 | - Launch it! 15 | 16 | - If you see a message like: **“halo” can’t be opened because it is from an unidentified developer.** You will have to allow your mac to open the app downloaded from other than app store. Or buy me a $100 apple identification certificate to upload it to app store 😅. Alternatively you can build it from source as well, simply cd into repo and run `npm run build`. Build will be inside dist directory. 17 | 18 | - To allow mac to open app go to **System Preferences** -> **Security & Privacy** -> then click Open on blocked app. 19 | 20 | - Have some fun ✌️ 21 | 22 | 23 | #### Tech stack 24 | - [Electron](https://electronjs.org/) 25 | 26 | 27 | #### Inspiration 28 | 29 | HALO is inspired by 💖 [tinyCareTerminal](https://github.com/notwaldorf/tiny-care-terminal), a creation of [Monica Dinculescu](https://twitter.com/notwaldorf). 30 | -------------------------------------------------------------------------------- /build/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gauravchl/halo/56c743f8e9c30ceed09495b3c0f5b9e6e5a02e17/build/icon.icns -------------------------------------------------------------------------------- /gethalo/README.md: -------------------------------------------------------------------------------- 1 | # Details 2 | This page was developed using a [Bulma framework](https://bulma.io/) and custom SASS elements. 3 | Fonts from Google Fonts: included on site are: 4 | - Open Sans 5 | - Fredoka One 6 | 7 | ## How to start 8 | 9 | - cd into `/gethalo` 10 | - Run `npm install` if running app first time. 11 | - Now simply run `npm start` and navigate browser to `http://127.0.0.1:8080/` 12 | 13 | ## Halo 14 | 15 | A little bot that looks our for you with kind reminders when you need them. 16 | 17 | Currently only available for Mac desktops. 18 | 19 | HALO was created by [Gaurav Chikhale ](https://gauravchl.com/)and 20 | was inspired by 💖 [tinyCareTerminal](https://github.com/notwaldorf/tiny-care-terminal), 21 | a creation of [Monica Dinculescu](https://twitter.com/notwaldorf) 22 | 23 | Page design by [Silvia Fuentes](https://twitter.com/silviafuen) 24 | -------------------------------------------------------------------------------- /gethalo/assets/desktop-preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gauravchl/halo/56c743f8e9c30ceed09495b3c0f5b9e6e5a02e17/gethalo/assets/desktop-preview.gif -------------------------------------------------------------------------------- /gethalo/assets/smiling-face-halo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gauravchl/halo/56c743f8e9c30ceed09495b3c0f5b9e6e5a02e17/gethalo/assets/smiling-face-halo.png -------------------------------------------------------------------------------- /gethalo/assets/wave-footer.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gethalo/assets/wave-header.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gethalo/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gauravchl/halo/56c743f8e9c30ceed09495b3c0f5b9e6e5a02e17/gethalo/favicon.png -------------------------------------------------------------------------------- /gethalo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | HALO 11 | 12 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 29 | 30 | 31 | 32 | 33 | 34 | 38 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
49 | 50 | As seen on Product Hunt! 51 | 52 | 😺 53 |
54 | 55 |
56 |
57 |
58 | How to Install 59 | 60 |
61 | A yellow face with smiling eyes, closed smile, and halo, 65 |

👪 No matter what, you are needed.

66 |
67 | 68 | A yellow face with smiling eyes, closed smile, and halo, 74 | 75 |

Halo

76 |

77 | A little bot that looks out for you with kind reminders when you 78 | need them. 79 |

80 | 81 | 86 | Download for Mac 88 |
89 |
90 |
91 | 92 | 93 | 98 | 99 | 100 |
101 |
102 |
103 |

How to Install

104 |
105 | 106 |
107 | 116 |
117 | 118 |
119 |
    120 |
  1. Download the latest version Halo
  2. 121 |
  3. 122 | Once downloaded move it into your Applications folder 123 |
  4. 124 |
  5. 125 | Launch it and have some fun ✌️ 126 |
  6. 127 |
128 |
129 |
130 |
131 | 132 | 133 | 138 | 139 | 140 |
141 |
142 |
143 |

144 | HALO was created by 145 | Gaurav Chikhale 146 |
147 | Page design by 148 | Silvia Fuentes 149 |
150 | 💖inspired by 151 | tinyCareTerminal, a creation of 154 | Monica Dinculescu 155 |

156 | 157 | 162 | 163 | Halo - A little bot that tries to take care of you on Mac | Product Hunt Embed 173 | 174 | 175 |
176 |
177 |
178 | 179 | 196 | 197 | 198 | 202 | 211 | 212 | 213 | -------------------------------------------------------------------------------- /gethalo/metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gauravchl/halo/56c743f8e9c30ceed09495b3c0f5b9e6e5a02e17/gethalo/metadata.png -------------------------------------------------------------------------------- /gethalo/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gethalo", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "abbrev": { 8 | "version": "1.1.1", 9 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 10 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 11 | "dev": true 12 | }, 13 | "ajv": { 14 | "version": "6.10.2", 15 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", 16 | "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", 17 | "dev": true, 18 | "requires": { 19 | "fast-deep-equal": "^2.0.1", 20 | "fast-json-stable-stringify": "^2.0.0", 21 | "json-schema-traverse": "^0.4.1", 22 | "uri-js": "^4.2.2" 23 | } 24 | }, 25 | "amdefine": { 26 | "version": "1.0.1", 27 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 28 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", 29 | "dev": true 30 | }, 31 | "ansi-regex": { 32 | "version": "2.1.1", 33 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 34 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 35 | "dev": true 36 | }, 37 | "ansi-styles": { 38 | "version": "2.2.1", 39 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 40 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 41 | "dev": true 42 | }, 43 | "aproba": { 44 | "version": "1.2.0", 45 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 46 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", 47 | "dev": true 48 | }, 49 | "are-we-there-yet": { 50 | "version": "1.1.5", 51 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", 52 | "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", 53 | "dev": true, 54 | "requires": { 55 | "delegates": "^1.0.0", 56 | "readable-stream": "^2.0.6" 57 | } 58 | }, 59 | "array-find-index": { 60 | "version": "1.0.2", 61 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 62 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", 63 | "dev": true 64 | }, 65 | "asn1": { 66 | "version": "0.2.4", 67 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 68 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 69 | "dev": true, 70 | "requires": { 71 | "safer-buffer": "~2.1.0" 72 | } 73 | }, 74 | "assert-plus": { 75 | "version": "1.0.0", 76 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 77 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 78 | "dev": true 79 | }, 80 | "async": { 81 | "version": "2.6.3", 82 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", 83 | "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", 84 | "dev": true, 85 | "requires": { 86 | "lodash": "^4.17.14" 87 | } 88 | }, 89 | "async-foreach": { 90 | "version": "0.1.3", 91 | "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", 92 | "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", 93 | "dev": true 94 | }, 95 | "asynckit": { 96 | "version": "0.4.0", 97 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 98 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 99 | "dev": true 100 | }, 101 | "aws-sign2": { 102 | "version": "0.7.0", 103 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 104 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 105 | "dev": true 106 | }, 107 | "aws4": { 108 | "version": "1.9.0", 109 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", 110 | "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==", 111 | "dev": true 112 | }, 113 | "balanced-match": { 114 | "version": "1.0.0", 115 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 116 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 117 | "dev": true 118 | }, 119 | "basic-auth": { 120 | "version": "1.1.0", 121 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", 122 | "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=", 123 | "dev": true 124 | }, 125 | "bcrypt-pbkdf": { 126 | "version": "1.0.2", 127 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 128 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 129 | "dev": true, 130 | "requires": { 131 | "tweetnacl": "^0.14.3" 132 | } 133 | }, 134 | "block-stream": { 135 | "version": "0.0.9", 136 | "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", 137 | "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", 138 | "dev": true, 139 | "requires": { 140 | "inherits": "~2.0.0" 141 | } 142 | }, 143 | "bootstrap": { 144 | "version": "4.4.1", 145 | "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.4.1.tgz", 146 | "integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA==" 147 | }, 148 | "brace-expansion": { 149 | "version": "1.1.11", 150 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 151 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 152 | "dev": true, 153 | "requires": { 154 | "balanced-match": "^1.0.0", 155 | "concat-map": "0.0.1" 156 | } 157 | }, 158 | "camelcase": { 159 | "version": "2.1.1", 160 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 161 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 162 | "dev": true 163 | }, 164 | "camelcase-keys": { 165 | "version": "2.1.0", 166 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 167 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 168 | "dev": true, 169 | "requires": { 170 | "camelcase": "^2.0.0", 171 | "map-obj": "^1.0.0" 172 | } 173 | }, 174 | "caseless": { 175 | "version": "0.12.0", 176 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 177 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 178 | "dev": true 179 | }, 180 | "chalk": { 181 | "version": "1.1.3", 182 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 183 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 184 | "dev": true, 185 | "requires": { 186 | "ansi-styles": "^2.2.1", 187 | "escape-string-regexp": "^1.0.2", 188 | "has-ansi": "^2.0.0", 189 | "strip-ansi": "^3.0.0", 190 | "supports-color": "^2.0.0" 191 | } 192 | }, 193 | "cliui": { 194 | "version": "3.2.0", 195 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", 196 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", 197 | "dev": true, 198 | "requires": { 199 | "string-width": "^1.0.1", 200 | "strip-ansi": "^3.0.1", 201 | "wrap-ansi": "^2.0.0" 202 | } 203 | }, 204 | "code-point-at": { 205 | "version": "1.1.0", 206 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 207 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 208 | "dev": true 209 | }, 210 | "color-convert": { 211 | "version": "1.9.3", 212 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 213 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 214 | "dev": true, 215 | "requires": { 216 | "color-name": "1.1.3" 217 | } 218 | }, 219 | "color-name": { 220 | "version": "1.1.3", 221 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 222 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 223 | "dev": true 224 | }, 225 | "colors": { 226 | "version": "1.4.0", 227 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 228 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", 229 | "dev": true 230 | }, 231 | "combined-stream": { 232 | "version": "1.0.8", 233 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 234 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 235 | "dev": true, 236 | "requires": { 237 | "delayed-stream": "~1.0.0" 238 | } 239 | }, 240 | "concat-map": { 241 | "version": "0.0.1", 242 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 243 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 244 | "dev": true 245 | }, 246 | "concurrently": { 247 | "version": "5.0.0", 248 | "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-5.0.0.tgz", 249 | "integrity": "sha512-1yDvK8mduTIdxIxV9C60KoiOySUl/lfekpdbI+U5GXaPrgdffEavFa9QZB3vh68oWOpbCC+TuvxXV9YRPMvUrA==", 250 | "dev": true, 251 | "requires": { 252 | "chalk": "^2.4.2", 253 | "date-fns": "^2.0.1", 254 | "lodash": "^4.17.15", 255 | "read-pkg": "^4.0.1", 256 | "rxjs": "^6.5.2", 257 | "spawn-command": "^0.0.2-1", 258 | "supports-color": "^4.5.0", 259 | "tree-kill": "^1.2.1", 260 | "yargs": "^12.0.5" 261 | }, 262 | "dependencies": { 263 | "ansi-regex": { 264 | "version": "3.0.0", 265 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 266 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 267 | "dev": true 268 | }, 269 | "ansi-styles": { 270 | "version": "3.2.1", 271 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 272 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 273 | "dev": true, 274 | "requires": { 275 | "color-convert": "^1.9.0" 276 | } 277 | }, 278 | "camelcase": { 279 | "version": "5.3.1", 280 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 281 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 282 | "dev": true 283 | }, 284 | "chalk": { 285 | "version": "2.4.2", 286 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 287 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 288 | "dev": true, 289 | "requires": { 290 | "ansi-styles": "^3.2.1", 291 | "escape-string-regexp": "^1.0.5", 292 | "supports-color": "^5.3.0" 293 | }, 294 | "dependencies": { 295 | "supports-color": { 296 | "version": "5.5.0", 297 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 298 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 299 | "dev": true, 300 | "requires": { 301 | "has-flag": "^3.0.0" 302 | } 303 | } 304 | } 305 | }, 306 | "cliui": { 307 | "version": "4.1.0", 308 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", 309 | "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", 310 | "dev": true, 311 | "requires": { 312 | "string-width": "^2.1.1", 313 | "strip-ansi": "^4.0.0", 314 | "wrap-ansi": "^2.0.0" 315 | } 316 | }, 317 | "find-up": { 318 | "version": "3.0.0", 319 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 320 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 321 | "dev": true, 322 | "requires": { 323 | "locate-path": "^3.0.0" 324 | } 325 | }, 326 | "invert-kv": { 327 | "version": "2.0.0", 328 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", 329 | "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", 330 | "dev": true 331 | }, 332 | "is-fullwidth-code-point": { 333 | "version": "2.0.0", 334 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 335 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 336 | "dev": true 337 | }, 338 | "lcid": { 339 | "version": "2.0.0", 340 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", 341 | "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", 342 | "dev": true, 343 | "requires": { 344 | "invert-kv": "^2.0.0" 345 | } 346 | }, 347 | "os-locale": { 348 | "version": "3.1.0", 349 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", 350 | "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", 351 | "dev": true, 352 | "requires": { 353 | "execa": "^1.0.0", 354 | "lcid": "^2.0.0", 355 | "mem": "^4.0.0" 356 | } 357 | }, 358 | "parse-json": { 359 | "version": "4.0.0", 360 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 361 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 362 | "dev": true, 363 | "requires": { 364 | "error-ex": "^1.3.1", 365 | "json-parse-better-errors": "^1.0.1" 366 | } 367 | }, 368 | "pify": { 369 | "version": "3.0.0", 370 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 371 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 372 | "dev": true 373 | }, 374 | "read-pkg": { 375 | "version": "4.0.1", 376 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", 377 | "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", 378 | "dev": true, 379 | "requires": { 380 | "normalize-package-data": "^2.3.2", 381 | "parse-json": "^4.0.0", 382 | "pify": "^3.0.0" 383 | } 384 | }, 385 | "string-width": { 386 | "version": "2.1.1", 387 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 388 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 389 | "dev": true, 390 | "requires": { 391 | "is-fullwidth-code-point": "^2.0.0", 392 | "strip-ansi": "^4.0.0" 393 | } 394 | }, 395 | "strip-ansi": { 396 | "version": "4.0.0", 397 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 398 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 399 | "dev": true, 400 | "requires": { 401 | "ansi-regex": "^3.0.0" 402 | } 403 | }, 404 | "supports-color": { 405 | "version": "4.5.0", 406 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", 407 | "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", 408 | "dev": true, 409 | "requires": { 410 | "has-flag": "^2.0.0" 411 | }, 412 | "dependencies": { 413 | "has-flag": { 414 | "version": "2.0.0", 415 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", 416 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", 417 | "dev": true 418 | } 419 | } 420 | }, 421 | "which-module": { 422 | "version": "2.0.0", 423 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 424 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 425 | "dev": true 426 | }, 427 | "yargs": { 428 | "version": "12.0.5", 429 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", 430 | "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", 431 | "dev": true, 432 | "requires": { 433 | "cliui": "^4.0.0", 434 | "decamelize": "^1.2.0", 435 | "find-up": "^3.0.0", 436 | "get-caller-file": "^1.0.1", 437 | "os-locale": "^3.0.0", 438 | "require-directory": "^2.1.1", 439 | "require-main-filename": "^1.0.1", 440 | "set-blocking": "^2.0.0", 441 | "string-width": "^2.0.0", 442 | "which-module": "^2.0.0", 443 | "y18n": "^3.2.1 || ^4.0.0", 444 | "yargs-parser": "^11.1.1" 445 | } 446 | }, 447 | "yargs-parser": { 448 | "version": "11.1.1", 449 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", 450 | "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", 451 | "dev": true, 452 | "requires": { 453 | "camelcase": "^5.0.0", 454 | "decamelize": "^1.2.0" 455 | } 456 | } 457 | } 458 | }, 459 | "console-control-strings": { 460 | "version": "1.1.0", 461 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 462 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", 463 | "dev": true 464 | }, 465 | "core-util-is": { 466 | "version": "1.0.2", 467 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 468 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 469 | "dev": true 470 | }, 471 | "corser": { 472 | "version": "2.0.1", 473 | "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", 474 | "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", 475 | "dev": true 476 | }, 477 | "cross-spawn": { 478 | "version": "3.0.1", 479 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", 480 | "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", 481 | "dev": true, 482 | "requires": { 483 | "lru-cache": "^4.0.1", 484 | "which": "^1.2.9" 485 | } 486 | }, 487 | "currently-unhandled": { 488 | "version": "0.4.1", 489 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 490 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 491 | "dev": true, 492 | "requires": { 493 | "array-find-index": "^1.0.1" 494 | } 495 | }, 496 | "dashdash": { 497 | "version": "1.14.1", 498 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 499 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 500 | "dev": true, 501 | "requires": { 502 | "assert-plus": "^1.0.0" 503 | } 504 | }, 505 | "date-fns": { 506 | "version": "2.8.1", 507 | "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.8.1.tgz", 508 | "integrity": "sha512-EL/C8IHvYRwAHYgFRse4MGAPSqlJVlOrhVYZ75iQBKrnv+ZedmYsgwH3t+BCDuZDXpoo07+q9j4qgSSOa7irJg==", 509 | "dev": true 510 | }, 511 | "debug": { 512 | "version": "3.2.6", 513 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 514 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 515 | "dev": true, 516 | "requires": { 517 | "ms": "^2.1.1" 518 | } 519 | }, 520 | "decamelize": { 521 | "version": "1.2.0", 522 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 523 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 524 | "dev": true 525 | }, 526 | "delayed-stream": { 527 | "version": "1.0.0", 528 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 529 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 530 | "dev": true 531 | }, 532 | "delegates": { 533 | "version": "1.0.0", 534 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 535 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", 536 | "dev": true 537 | }, 538 | "ecc-jsbn": { 539 | "version": "0.1.2", 540 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 541 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 542 | "dev": true, 543 | "requires": { 544 | "jsbn": "~0.1.0", 545 | "safer-buffer": "^2.1.0" 546 | } 547 | }, 548 | "ecstatic": { 549 | "version": "3.3.2", 550 | "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz", 551 | "integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==", 552 | "dev": true, 553 | "requires": { 554 | "he": "^1.1.1", 555 | "mime": "^1.6.0", 556 | "minimist": "^1.1.0", 557 | "url-join": "^2.0.5" 558 | } 559 | }, 560 | "end-of-stream": { 561 | "version": "1.4.4", 562 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 563 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 564 | "dev": true, 565 | "requires": { 566 | "once": "^1.4.0" 567 | } 568 | }, 569 | "error-ex": { 570 | "version": "1.3.2", 571 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 572 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 573 | "dev": true, 574 | "requires": { 575 | "is-arrayish": "^0.2.1" 576 | } 577 | }, 578 | "escape-string-regexp": { 579 | "version": "1.0.5", 580 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 581 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 582 | "dev": true 583 | }, 584 | "eventemitter3": { 585 | "version": "4.0.0", 586 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", 587 | "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", 588 | "dev": true 589 | }, 590 | "execa": { 591 | "version": "1.0.0", 592 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 593 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 594 | "dev": true, 595 | "requires": { 596 | "cross-spawn": "^6.0.0", 597 | "get-stream": "^4.0.0", 598 | "is-stream": "^1.1.0", 599 | "npm-run-path": "^2.0.0", 600 | "p-finally": "^1.0.0", 601 | "signal-exit": "^3.0.0", 602 | "strip-eof": "^1.0.0" 603 | }, 604 | "dependencies": { 605 | "cross-spawn": { 606 | "version": "6.0.5", 607 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 608 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 609 | "dev": true, 610 | "requires": { 611 | "nice-try": "^1.0.4", 612 | "path-key": "^2.0.1", 613 | "semver": "^5.5.0", 614 | "shebang-command": "^1.2.0", 615 | "which": "^1.2.9" 616 | } 617 | } 618 | } 619 | }, 620 | "extend": { 621 | "version": "3.0.2", 622 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 623 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 624 | "dev": true 625 | }, 626 | "extsprintf": { 627 | "version": "1.3.0", 628 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 629 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 630 | "dev": true 631 | }, 632 | "fast-deep-equal": { 633 | "version": "2.0.1", 634 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 635 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", 636 | "dev": true 637 | }, 638 | "fast-json-stable-stringify": { 639 | "version": "2.0.0", 640 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 641 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 642 | "dev": true 643 | }, 644 | "find-up": { 645 | "version": "1.1.2", 646 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 647 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 648 | "dev": true, 649 | "requires": { 650 | "path-exists": "^2.0.0", 651 | "pinkie-promise": "^2.0.0" 652 | } 653 | }, 654 | "follow-redirects": { 655 | "version": "1.9.0", 656 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz", 657 | "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==", 658 | "dev": true, 659 | "requires": { 660 | "debug": "^3.0.0" 661 | } 662 | }, 663 | "forever-agent": { 664 | "version": "0.6.1", 665 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 666 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 667 | "dev": true 668 | }, 669 | "form-data": { 670 | "version": "2.3.3", 671 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 672 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 673 | "dev": true, 674 | "requires": { 675 | "asynckit": "^0.4.0", 676 | "combined-stream": "^1.0.6", 677 | "mime-types": "^2.1.12" 678 | } 679 | }, 680 | "fs.realpath": { 681 | "version": "1.0.0", 682 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 683 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 684 | "dev": true 685 | }, 686 | "fstream": { 687 | "version": "1.0.12", 688 | "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", 689 | "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", 690 | "dev": true, 691 | "requires": { 692 | "graceful-fs": "^4.1.2", 693 | "inherits": "~2.0.0", 694 | "mkdirp": ">=0.5 0", 695 | "rimraf": "2" 696 | } 697 | }, 698 | "gauge": { 699 | "version": "2.7.4", 700 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 701 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 702 | "dev": true, 703 | "requires": { 704 | "aproba": "^1.0.3", 705 | "console-control-strings": "^1.0.0", 706 | "has-unicode": "^2.0.0", 707 | "object-assign": "^4.1.0", 708 | "signal-exit": "^3.0.0", 709 | "string-width": "^1.0.1", 710 | "strip-ansi": "^3.0.1", 711 | "wide-align": "^1.1.0" 712 | } 713 | }, 714 | "gaze": { 715 | "version": "1.1.3", 716 | "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", 717 | "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", 718 | "dev": true, 719 | "requires": { 720 | "globule": "^1.0.0" 721 | } 722 | }, 723 | "get-caller-file": { 724 | "version": "1.0.3", 725 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", 726 | "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", 727 | "dev": true 728 | }, 729 | "get-stdin": { 730 | "version": "4.0.1", 731 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 732 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 733 | "dev": true 734 | }, 735 | "get-stream": { 736 | "version": "4.1.0", 737 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 738 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 739 | "dev": true, 740 | "requires": { 741 | "pump": "^3.0.0" 742 | } 743 | }, 744 | "getpass": { 745 | "version": "0.1.7", 746 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 747 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 748 | "dev": true, 749 | "requires": { 750 | "assert-plus": "^1.0.0" 751 | } 752 | }, 753 | "glob": { 754 | "version": "7.1.6", 755 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 756 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 757 | "dev": true, 758 | "requires": { 759 | "fs.realpath": "^1.0.0", 760 | "inflight": "^1.0.4", 761 | "inherits": "2", 762 | "minimatch": "^3.0.4", 763 | "once": "^1.3.0", 764 | "path-is-absolute": "^1.0.0" 765 | } 766 | }, 767 | "globule": { 768 | "version": "1.2.1", 769 | "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", 770 | "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", 771 | "dev": true, 772 | "requires": { 773 | "glob": "~7.1.1", 774 | "lodash": "~4.17.10", 775 | "minimatch": "~3.0.2" 776 | } 777 | }, 778 | "graceful-fs": { 779 | "version": "4.2.3", 780 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", 781 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", 782 | "dev": true 783 | }, 784 | "har-schema": { 785 | "version": "2.0.0", 786 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 787 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", 788 | "dev": true 789 | }, 790 | "har-validator": { 791 | "version": "5.1.3", 792 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 793 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 794 | "dev": true, 795 | "requires": { 796 | "ajv": "^6.5.5", 797 | "har-schema": "^2.0.0" 798 | } 799 | }, 800 | "has-ansi": { 801 | "version": "2.0.0", 802 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 803 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 804 | "dev": true, 805 | "requires": { 806 | "ansi-regex": "^2.0.0" 807 | } 808 | }, 809 | "has-flag": { 810 | "version": "3.0.0", 811 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 812 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 813 | "dev": true 814 | }, 815 | "has-unicode": { 816 | "version": "2.0.1", 817 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 818 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", 819 | "dev": true 820 | }, 821 | "he": { 822 | "version": "1.2.0", 823 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 824 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 825 | "dev": true 826 | }, 827 | "hosted-git-info": { 828 | "version": "2.8.5", 829 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", 830 | "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", 831 | "dev": true 832 | }, 833 | "http-proxy": { 834 | "version": "1.18.0", 835 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", 836 | "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", 837 | "dev": true, 838 | "requires": { 839 | "eventemitter3": "^4.0.0", 840 | "follow-redirects": "^1.0.0", 841 | "requires-port": "^1.0.0" 842 | } 843 | }, 844 | "http-server": { 845 | "version": "0.12.0", 846 | "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.0.tgz", 847 | "integrity": "sha512-imGLDSTT1BZ0QG1rBFnaZ6weK5jeisUnCxZQI1cpYTdz0luPUM5e3s+WU5zRWEkiI6DQxL2p54oeKrDlzO6bRw==", 848 | "dev": true, 849 | "requires": { 850 | "basic-auth": "^1.0.3", 851 | "colors": "^1.3.3", 852 | "corser": "^2.0.1", 853 | "ecstatic": "^3.3.2", 854 | "http-proxy": "^1.17.0", 855 | "opener": "^1.5.1", 856 | "optimist": "~0.6.1", 857 | "portfinder": "^1.0.20", 858 | "secure-compare": "3.0.1", 859 | "union": "~0.5.0" 860 | } 861 | }, 862 | "http-signature": { 863 | "version": "1.2.0", 864 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 865 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 866 | "dev": true, 867 | "requires": { 868 | "assert-plus": "^1.0.0", 869 | "jsprim": "^1.2.2", 870 | "sshpk": "^1.7.0" 871 | } 872 | }, 873 | "in-publish": { 874 | "version": "2.0.0", 875 | "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", 876 | "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", 877 | "dev": true 878 | }, 879 | "indent-string": { 880 | "version": "2.1.0", 881 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 882 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 883 | "dev": true, 884 | "requires": { 885 | "repeating": "^2.0.0" 886 | } 887 | }, 888 | "inflight": { 889 | "version": "1.0.6", 890 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 891 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 892 | "dev": true, 893 | "requires": { 894 | "once": "^1.3.0", 895 | "wrappy": "1" 896 | } 897 | }, 898 | "inherits": { 899 | "version": "2.0.4", 900 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 901 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 902 | "dev": true 903 | }, 904 | "invert-kv": { 905 | "version": "1.0.0", 906 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", 907 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", 908 | "dev": true 909 | }, 910 | "is-arrayish": { 911 | "version": "0.2.1", 912 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 913 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 914 | "dev": true 915 | }, 916 | "is-finite": { 917 | "version": "1.0.2", 918 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 919 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 920 | "dev": true, 921 | "requires": { 922 | "number-is-nan": "^1.0.0" 923 | } 924 | }, 925 | "is-fullwidth-code-point": { 926 | "version": "1.0.0", 927 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 928 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 929 | "dev": true, 930 | "requires": { 931 | "number-is-nan": "^1.0.0" 932 | } 933 | }, 934 | "is-stream": { 935 | "version": "1.1.0", 936 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 937 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 938 | "dev": true 939 | }, 940 | "is-typedarray": { 941 | "version": "1.0.0", 942 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 943 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 944 | "dev": true 945 | }, 946 | "is-utf8": { 947 | "version": "0.2.1", 948 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 949 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 950 | "dev": true 951 | }, 952 | "isarray": { 953 | "version": "1.0.0", 954 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 955 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 956 | "dev": true 957 | }, 958 | "isexe": { 959 | "version": "2.0.0", 960 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 961 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 962 | "dev": true 963 | }, 964 | "isstream": { 965 | "version": "0.1.2", 966 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 967 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 968 | "dev": true 969 | }, 970 | "js-base64": { 971 | "version": "2.5.1", 972 | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", 973 | "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", 974 | "dev": true 975 | }, 976 | "jsbn": { 977 | "version": "0.1.1", 978 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 979 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 980 | "dev": true 981 | }, 982 | "json-parse-better-errors": { 983 | "version": "1.0.2", 984 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 985 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 986 | "dev": true 987 | }, 988 | "json-schema": { 989 | "version": "0.2.3", 990 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 991 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 992 | "dev": true 993 | }, 994 | "json-schema-traverse": { 995 | "version": "0.4.1", 996 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 997 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 998 | "dev": true 999 | }, 1000 | "json-stringify-safe": { 1001 | "version": "5.0.1", 1002 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1003 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 1004 | "dev": true 1005 | }, 1006 | "jsprim": { 1007 | "version": "1.4.1", 1008 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 1009 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 1010 | "dev": true, 1011 | "requires": { 1012 | "assert-plus": "1.0.0", 1013 | "extsprintf": "1.3.0", 1014 | "json-schema": "0.2.3", 1015 | "verror": "1.10.0" 1016 | } 1017 | }, 1018 | "lcid": { 1019 | "version": "1.0.0", 1020 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", 1021 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", 1022 | "dev": true, 1023 | "requires": { 1024 | "invert-kv": "^1.0.0" 1025 | } 1026 | }, 1027 | "load-json-file": { 1028 | "version": "1.1.0", 1029 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 1030 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 1031 | "dev": true, 1032 | "requires": { 1033 | "graceful-fs": "^4.1.2", 1034 | "parse-json": "^2.2.0", 1035 | "pify": "^2.0.0", 1036 | "pinkie-promise": "^2.0.0", 1037 | "strip-bom": "^2.0.0" 1038 | } 1039 | }, 1040 | "locate-path": { 1041 | "version": "3.0.0", 1042 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 1043 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 1044 | "dev": true, 1045 | "requires": { 1046 | "p-locate": "^3.0.0", 1047 | "path-exists": "^3.0.0" 1048 | }, 1049 | "dependencies": { 1050 | "path-exists": { 1051 | "version": "3.0.0", 1052 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1053 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 1054 | "dev": true 1055 | } 1056 | } 1057 | }, 1058 | "lodash": { 1059 | "version": "4.17.15", 1060 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", 1061 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", 1062 | "dev": true 1063 | }, 1064 | "loud-rejection": { 1065 | "version": "1.6.0", 1066 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 1067 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 1068 | "dev": true, 1069 | "requires": { 1070 | "currently-unhandled": "^0.4.1", 1071 | "signal-exit": "^3.0.0" 1072 | } 1073 | }, 1074 | "lru-cache": { 1075 | "version": "4.1.5", 1076 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", 1077 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", 1078 | "dev": true, 1079 | "requires": { 1080 | "pseudomap": "^1.0.2", 1081 | "yallist": "^2.1.2" 1082 | } 1083 | }, 1084 | "map-age-cleaner": { 1085 | "version": "0.1.3", 1086 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", 1087 | "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", 1088 | "dev": true, 1089 | "requires": { 1090 | "p-defer": "^1.0.0" 1091 | } 1092 | }, 1093 | "map-obj": { 1094 | "version": "1.0.1", 1095 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 1096 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 1097 | "dev": true 1098 | }, 1099 | "mem": { 1100 | "version": "4.3.0", 1101 | "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", 1102 | "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", 1103 | "dev": true, 1104 | "requires": { 1105 | "map-age-cleaner": "^0.1.1", 1106 | "mimic-fn": "^2.0.0", 1107 | "p-is-promise": "^2.0.0" 1108 | } 1109 | }, 1110 | "meow": { 1111 | "version": "3.7.0", 1112 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 1113 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 1114 | "dev": true, 1115 | "requires": { 1116 | "camelcase-keys": "^2.0.0", 1117 | "decamelize": "^1.1.2", 1118 | "loud-rejection": "^1.0.0", 1119 | "map-obj": "^1.0.1", 1120 | "minimist": "^1.1.3", 1121 | "normalize-package-data": "^2.3.4", 1122 | "object-assign": "^4.0.1", 1123 | "read-pkg-up": "^1.0.1", 1124 | "redent": "^1.0.0", 1125 | "trim-newlines": "^1.0.0" 1126 | } 1127 | }, 1128 | "mime": { 1129 | "version": "1.6.0", 1130 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1131 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 1132 | "dev": true 1133 | }, 1134 | "mime-db": { 1135 | "version": "1.42.0", 1136 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", 1137 | "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==", 1138 | "dev": true 1139 | }, 1140 | "mime-types": { 1141 | "version": "2.1.25", 1142 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", 1143 | "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", 1144 | "dev": true, 1145 | "requires": { 1146 | "mime-db": "1.42.0" 1147 | } 1148 | }, 1149 | "mimic-fn": { 1150 | "version": "2.1.0", 1151 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 1152 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 1153 | "dev": true 1154 | }, 1155 | "minimatch": { 1156 | "version": "3.0.4", 1157 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1158 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1159 | "dev": true, 1160 | "requires": { 1161 | "brace-expansion": "^1.1.7" 1162 | } 1163 | }, 1164 | "minimist": { 1165 | "version": "1.2.0", 1166 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 1167 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 1168 | "dev": true 1169 | }, 1170 | "mkdirp": { 1171 | "version": "0.5.1", 1172 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1173 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1174 | "dev": true, 1175 | "requires": { 1176 | "minimist": "0.0.8" 1177 | }, 1178 | "dependencies": { 1179 | "minimist": { 1180 | "version": "0.0.8", 1181 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1182 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1183 | "dev": true 1184 | } 1185 | } 1186 | }, 1187 | "ms": { 1188 | "version": "2.1.2", 1189 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1190 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1191 | "dev": true 1192 | }, 1193 | "nan": { 1194 | "version": "2.14.0", 1195 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", 1196 | "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", 1197 | "dev": true 1198 | }, 1199 | "nice-try": { 1200 | "version": "1.0.5", 1201 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 1202 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 1203 | "dev": true 1204 | }, 1205 | "node-gyp": { 1206 | "version": "3.8.0", 1207 | "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", 1208 | "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", 1209 | "dev": true, 1210 | "requires": { 1211 | "fstream": "^1.0.0", 1212 | "glob": "^7.0.3", 1213 | "graceful-fs": "^4.1.2", 1214 | "mkdirp": "^0.5.0", 1215 | "nopt": "2 || 3", 1216 | "npmlog": "0 || 1 || 2 || 3 || 4", 1217 | "osenv": "0", 1218 | "request": "^2.87.0", 1219 | "rimraf": "2", 1220 | "semver": "~5.3.0", 1221 | "tar": "^2.0.0", 1222 | "which": "1" 1223 | }, 1224 | "dependencies": { 1225 | "semver": { 1226 | "version": "5.3.0", 1227 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", 1228 | "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", 1229 | "dev": true 1230 | } 1231 | } 1232 | }, 1233 | "node-sass": { 1234 | "version": "4.13.0", 1235 | "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.0.tgz", 1236 | "integrity": "sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==", 1237 | "dev": true, 1238 | "requires": { 1239 | "async-foreach": "^0.1.3", 1240 | "chalk": "^1.1.1", 1241 | "cross-spawn": "^3.0.0", 1242 | "gaze": "^1.0.0", 1243 | "get-stdin": "^4.0.1", 1244 | "glob": "^7.0.3", 1245 | "in-publish": "^2.0.0", 1246 | "lodash": "^4.17.15", 1247 | "meow": "^3.7.0", 1248 | "mkdirp": "^0.5.1", 1249 | "nan": "^2.13.2", 1250 | "node-gyp": "^3.8.0", 1251 | "npmlog": "^4.0.0", 1252 | "request": "^2.88.0", 1253 | "sass-graph": "^2.2.4", 1254 | "stdout-stream": "^1.4.0", 1255 | "true-case-path": "^1.0.2" 1256 | } 1257 | }, 1258 | "nopt": { 1259 | "version": "3.0.6", 1260 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", 1261 | "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", 1262 | "dev": true, 1263 | "requires": { 1264 | "abbrev": "1" 1265 | } 1266 | }, 1267 | "normalize-package-data": { 1268 | "version": "2.5.0", 1269 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 1270 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 1271 | "dev": true, 1272 | "requires": { 1273 | "hosted-git-info": "^2.1.4", 1274 | "resolve": "^1.10.0", 1275 | "semver": "2 || 3 || 4 || 5", 1276 | "validate-npm-package-license": "^3.0.1" 1277 | } 1278 | }, 1279 | "npm-run-path": { 1280 | "version": "2.0.2", 1281 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 1282 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 1283 | "dev": true, 1284 | "requires": { 1285 | "path-key": "^2.0.0" 1286 | } 1287 | }, 1288 | "npmlog": { 1289 | "version": "4.1.2", 1290 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", 1291 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", 1292 | "dev": true, 1293 | "requires": { 1294 | "are-we-there-yet": "~1.1.2", 1295 | "console-control-strings": "~1.1.0", 1296 | "gauge": "~2.7.3", 1297 | "set-blocking": "~2.0.0" 1298 | } 1299 | }, 1300 | "number-is-nan": { 1301 | "version": "1.0.1", 1302 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 1303 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 1304 | "dev": true 1305 | }, 1306 | "oauth-sign": { 1307 | "version": "0.9.0", 1308 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 1309 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", 1310 | "dev": true 1311 | }, 1312 | "object-assign": { 1313 | "version": "4.1.1", 1314 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1315 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1316 | "dev": true 1317 | }, 1318 | "once": { 1319 | "version": "1.4.0", 1320 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1321 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1322 | "dev": true, 1323 | "requires": { 1324 | "wrappy": "1" 1325 | } 1326 | }, 1327 | "opener": { 1328 | "version": "1.5.1", 1329 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", 1330 | "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", 1331 | "dev": true 1332 | }, 1333 | "optimist": { 1334 | "version": "0.6.1", 1335 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 1336 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 1337 | "dev": true, 1338 | "requires": { 1339 | "minimist": "~0.0.1", 1340 | "wordwrap": "~0.0.2" 1341 | }, 1342 | "dependencies": { 1343 | "minimist": { 1344 | "version": "0.0.10", 1345 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", 1346 | "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", 1347 | "dev": true 1348 | } 1349 | } 1350 | }, 1351 | "os-homedir": { 1352 | "version": "1.0.2", 1353 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 1354 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 1355 | "dev": true 1356 | }, 1357 | "os-locale": { 1358 | "version": "1.4.0", 1359 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", 1360 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", 1361 | "dev": true, 1362 | "requires": { 1363 | "lcid": "^1.0.0" 1364 | } 1365 | }, 1366 | "os-tmpdir": { 1367 | "version": "1.0.2", 1368 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1369 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 1370 | "dev": true 1371 | }, 1372 | "osenv": { 1373 | "version": "0.1.5", 1374 | "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", 1375 | "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", 1376 | "dev": true, 1377 | "requires": { 1378 | "os-homedir": "^1.0.0", 1379 | "os-tmpdir": "^1.0.0" 1380 | } 1381 | }, 1382 | "p-defer": { 1383 | "version": "1.0.0", 1384 | "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", 1385 | "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", 1386 | "dev": true 1387 | }, 1388 | "p-finally": { 1389 | "version": "1.0.0", 1390 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 1391 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 1392 | "dev": true 1393 | }, 1394 | "p-is-promise": { 1395 | "version": "2.1.0", 1396 | "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", 1397 | "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", 1398 | "dev": true 1399 | }, 1400 | "p-limit": { 1401 | "version": "2.2.1", 1402 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", 1403 | "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", 1404 | "dev": true, 1405 | "requires": { 1406 | "p-try": "^2.0.0" 1407 | } 1408 | }, 1409 | "p-locate": { 1410 | "version": "3.0.0", 1411 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 1412 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 1413 | "dev": true, 1414 | "requires": { 1415 | "p-limit": "^2.0.0" 1416 | } 1417 | }, 1418 | "p-try": { 1419 | "version": "2.2.0", 1420 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1421 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1422 | "dev": true 1423 | }, 1424 | "parse-json": { 1425 | "version": "2.2.0", 1426 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 1427 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 1428 | "dev": true, 1429 | "requires": { 1430 | "error-ex": "^1.2.0" 1431 | } 1432 | }, 1433 | "path-exists": { 1434 | "version": "2.1.0", 1435 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 1436 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 1437 | "dev": true, 1438 | "requires": { 1439 | "pinkie-promise": "^2.0.0" 1440 | } 1441 | }, 1442 | "path-is-absolute": { 1443 | "version": "1.0.1", 1444 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1445 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1446 | "dev": true 1447 | }, 1448 | "path-key": { 1449 | "version": "2.0.1", 1450 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 1451 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 1452 | "dev": true 1453 | }, 1454 | "path-parse": { 1455 | "version": "1.0.6", 1456 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 1457 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 1458 | "dev": true 1459 | }, 1460 | "path-type": { 1461 | "version": "1.1.0", 1462 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 1463 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 1464 | "dev": true, 1465 | "requires": { 1466 | "graceful-fs": "^4.1.2", 1467 | "pify": "^2.0.0", 1468 | "pinkie-promise": "^2.0.0" 1469 | } 1470 | }, 1471 | "performance-now": { 1472 | "version": "2.1.0", 1473 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 1474 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", 1475 | "dev": true 1476 | }, 1477 | "pify": { 1478 | "version": "2.3.0", 1479 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1480 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1481 | "dev": true 1482 | }, 1483 | "pinkie": { 1484 | "version": "2.0.4", 1485 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 1486 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 1487 | "dev": true 1488 | }, 1489 | "pinkie-promise": { 1490 | "version": "2.0.1", 1491 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 1492 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 1493 | "dev": true, 1494 | "requires": { 1495 | "pinkie": "^2.0.0" 1496 | } 1497 | }, 1498 | "portfinder": { 1499 | "version": "1.0.25", 1500 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", 1501 | "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", 1502 | "dev": true, 1503 | "requires": { 1504 | "async": "^2.6.2", 1505 | "debug": "^3.1.1", 1506 | "mkdirp": "^0.5.1" 1507 | } 1508 | }, 1509 | "process-nextick-args": { 1510 | "version": "2.0.1", 1511 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1512 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 1513 | "dev": true 1514 | }, 1515 | "pseudomap": { 1516 | "version": "1.0.2", 1517 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 1518 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 1519 | "dev": true 1520 | }, 1521 | "psl": { 1522 | "version": "1.5.0", 1523 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.5.0.tgz", 1524 | "integrity": "sha512-4vqUjKi2huMu1OJiLhi3jN6jeeKvMZdI1tYgi/njW5zV52jNLgSAZSdN16m9bJFe61/cT8ulmw4qFitV9QRsEA==", 1525 | "dev": true 1526 | }, 1527 | "pump": { 1528 | "version": "3.0.0", 1529 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 1530 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 1531 | "dev": true, 1532 | "requires": { 1533 | "end-of-stream": "^1.1.0", 1534 | "once": "^1.3.1" 1535 | } 1536 | }, 1537 | "punycode": { 1538 | "version": "2.1.1", 1539 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1540 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1541 | "dev": true 1542 | }, 1543 | "qs": { 1544 | "version": "6.5.2", 1545 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 1546 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", 1547 | "dev": true 1548 | }, 1549 | "read-pkg": { 1550 | "version": "1.1.0", 1551 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 1552 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 1553 | "dev": true, 1554 | "requires": { 1555 | "load-json-file": "^1.0.0", 1556 | "normalize-package-data": "^2.3.2", 1557 | "path-type": "^1.0.0" 1558 | } 1559 | }, 1560 | "read-pkg-up": { 1561 | "version": "1.0.1", 1562 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 1563 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 1564 | "dev": true, 1565 | "requires": { 1566 | "find-up": "^1.0.0", 1567 | "read-pkg": "^1.0.0" 1568 | } 1569 | }, 1570 | "readable-stream": { 1571 | "version": "2.3.6", 1572 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 1573 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 1574 | "dev": true, 1575 | "requires": { 1576 | "core-util-is": "~1.0.0", 1577 | "inherits": "~2.0.3", 1578 | "isarray": "~1.0.0", 1579 | "process-nextick-args": "~2.0.0", 1580 | "safe-buffer": "~5.1.1", 1581 | "string_decoder": "~1.1.1", 1582 | "util-deprecate": "~1.0.1" 1583 | } 1584 | }, 1585 | "redent": { 1586 | "version": "1.0.0", 1587 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 1588 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 1589 | "dev": true, 1590 | "requires": { 1591 | "indent-string": "^2.1.0", 1592 | "strip-indent": "^1.0.1" 1593 | } 1594 | }, 1595 | "repeating": { 1596 | "version": "2.0.1", 1597 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 1598 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 1599 | "dev": true, 1600 | "requires": { 1601 | "is-finite": "^1.0.0" 1602 | } 1603 | }, 1604 | "request": { 1605 | "version": "2.88.0", 1606 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 1607 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 1608 | "dev": true, 1609 | "requires": { 1610 | "aws-sign2": "~0.7.0", 1611 | "aws4": "^1.8.0", 1612 | "caseless": "~0.12.0", 1613 | "combined-stream": "~1.0.6", 1614 | "extend": "~3.0.2", 1615 | "forever-agent": "~0.6.1", 1616 | "form-data": "~2.3.2", 1617 | "har-validator": "~5.1.0", 1618 | "http-signature": "~1.2.0", 1619 | "is-typedarray": "~1.0.0", 1620 | "isstream": "~0.1.2", 1621 | "json-stringify-safe": "~5.0.1", 1622 | "mime-types": "~2.1.19", 1623 | "oauth-sign": "~0.9.0", 1624 | "performance-now": "^2.1.0", 1625 | "qs": "~6.5.2", 1626 | "safe-buffer": "^5.1.2", 1627 | "tough-cookie": "~2.4.3", 1628 | "tunnel-agent": "^0.6.0", 1629 | "uuid": "^3.3.2" 1630 | } 1631 | }, 1632 | "require-directory": { 1633 | "version": "2.1.1", 1634 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 1635 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 1636 | "dev": true 1637 | }, 1638 | "require-main-filename": { 1639 | "version": "1.0.1", 1640 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", 1641 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", 1642 | "dev": true 1643 | }, 1644 | "requires-port": { 1645 | "version": "1.0.0", 1646 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", 1647 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", 1648 | "dev": true 1649 | }, 1650 | "resolve": { 1651 | "version": "1.13.1", 1652 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", 1653 | "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", 1654 | "dev": true, 1655 | "requires": { 1656 | "path-parse": "^1.0.6" 1657 | } 1658 | }, 1659 | "rimraf": { 1660 | "version": "2.7.1", 1661 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 1662 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 1663 | "dev": true, 1664 | "requires": { 1665 | "glob": "^7.1.3" 1666 | } 1667 | }, 1668 | "rxjs": { 1669 | "version": "6.5.3", 1670 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", 1671 | "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", 1672 | "dev": true, 1673 | "requires": { 1674 | "tslib": "^1.9.0" 1675 | } 1676 | }, 1677 | "safe-buffer": { 1678 | "version": "5.1.2", 1679 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1680 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 1681 | "dev": true 1682 | }, 1683 | "safer-buffer": { 1684 | "version": "2.1.2", 1685 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1686 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 1687 | "dev": true 1688 | }, 1689 | "sass-graph": { 1690 | "version": "2.2.4", 1691 | "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", 1692 | "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", 1693 | "dev": true, 1694 | "requires": { 1695 | "glob": "^7.0.0", 1696 | "lodash": "^4.0.0", 1697 | "scss-tokenizer": "^0.2.3", 1698 | "yargs": "^7.0.0" 1699 | } 1700 | }, 1701 | "scss-tokenizer": { 1702 | "version": "0.2.3", 1703 | "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", 1704 | "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", 1705 | "dev": true, 1706 | "requires": { 1707 | "js-base64": "^2.1.8", 1708 | "source-map": "^0.4.2" 1709 | } 1710 | }, 1711 | "secure-compare": { 1712 | "version": "3.0.1", 1713 | "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", 1714 | "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", 1715 | "dev": true 1716 | }, 1717 | "semver": { 1718 | "version": "5.7.1", 1719 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1720 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 1721 | "dev": true 1722 | }, 1723 | "set-blocking": { 1724 | "version": "2.0.0", 1725 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 1726 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 1727 | "dev": true 1728 | }, 1729 | "shebang-command": { 1730 | "version": "1.2.0", 1731 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1732 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 1733 | "dev": true, 1734 | "requires": { 1735 | "shebang-regex": "^1.0.0" 1736 | } 1737 | }, 1738 | "shebang-regex": { 1739 | "version": "1.0.0", 1740 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1741 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 1742 | "dev": true 1743 | }, 1744 | "signal-exit": { 1745 | "version": "3.0.2", 1746 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 1747 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 1748 | "dev": true 1749 | }, 1750 | "source-map": { 1751 | "version": "0.4.4", 1752 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", 1753 | "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", 1754 | "dev": true, 1755 | "requires": { 1756 | "amdefine": ">=0.0.4" 1757 | } 1758 | }, 1759 | "spawn-command": { 1760 | "version": "0.0.2-1", 1761 | "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", 1762 | "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", 1763 | "dev": true 1764 | }, 1765 | "spdx-correct": { 1766 | "version": "3.1.0", 1767 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", 1768 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", 1769 | "dev": true, 1770 | "requires": { 1771 | "spdx-expression-parse": "^3.0.0", 1772 | "spdx-license-ids": "^3.0.0" 1773 | } 1774 | }, 1775 | "spdx-exceptions": { 1776 | "version": "2.2.0", 1777 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", 1778 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", 1779 | "dev": true 1780 | }, 1781 | "spdx-expression-parse": { 1782 | "version": "3.0.0", 1783 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 1784 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 1785 | "dev": true, 1786 | "requires": { 1787 | "spdx-exceptions": "^2.1.0", 1788 | "spdx-license-ids": "^3.0.0" 1789 | } 1790 | }, 1791 | "spdx-license-ids": { 1792 | "version": "3.0.5", 1793 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", 1794 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", 1795 | "dev": true 1796 | }, 1797 | "sshpk": { 1798 | "version": "1.16.1", 1799 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 1800 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 1801 | "dev": true, 1802 | "requires": { 1803 | "asn1": "~0.2.3", 1804 | "assert-plus": "^1.0.0", 1805 | "bcrypt-pbkdf": "^1.0.0", 1806 | "dashdash": "^1.12.0", 1807 | "ecc-jsbn": "~0.1.1", 1808 | "getpass": "^0.1.1", 1809 | "jsbn": "~0.1.0", 1810 | "safer-buffer": "^2.0.2", 1811 | "tweetnacl": "~0.14.0" 1812 | } 1813 | }, 1814 | "stdout-stream": { 1815 | "version": "1.4.1", 1816 | "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", 1817 | "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", 1818 | "dev": true, 1819 | "requires": { 1820 | "readable-stream": "^2.0.1" 1821 | } 1822 | }, 1823 | "string-width": { 1824 | "version": "1.0.2", 1825 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 1826 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 1827 | "dev": true, 1828 | "requires": { 1829 | "code-point-at": "^1.0.0", 1830 | "is-fullwidth-code-point": "^1.0.0", 1831 | "strip-ansi": "^3.0.0" 1832 | } 1833 | }, 1834 | "string_decoder": { 1835 | "version": "1.1.1", 1836 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1837 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1838 | "dev": true, 1839 | "requires": { 1840 | "safe-buffer": "~5.1.0" 1841 | } 1842 | }, 1843 | "strip-ansi": { 1844 | "version": "3.0.1", 1845 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1846 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1847 | "dev": true, 1848 | "requires": { 1849 | "ansi-regex": "^2.0.0" 1850 | } 1851 | }, 1852 | "strip-bom": { 1853 | "version": "2.0.0", 1854 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 1855 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 1856 | "dev": true, 1857 | "requires": { 1858 | "is-utf8": "^0.2.0" 1859 | } 1860 | }, 1861 | "strip-eof": { 1862 | "version": "1.0.0", 1863 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 1864 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 1865 | "dev": true 1866 | }, 1867 | "strip-indent": { 1868 | "version": "1.0.1", 1869 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 1870 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 1871 | "dev": true, 1872 | "requires": { 1873 | "get-stdin": "^4.0.1" 1874 | } 1875 | }, 1876 | "supports-color": { 1877 | "version": "2.0.0", 1878 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 1879 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 1880 | "dev": true 1881 | }, 1882 | "tar": { 1883 | "version": "2.2.2", 1884 | "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", 1885 | "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", 1886 | "dev": true, 1887 | "requires": { 1888 | "block-stream": "*", 1889 | "fstream": "^1.0.12", 1890 | "inherits": "2" 1891 | } 1892 | }, 1893 | "tough-cookie": { 1894 | "version": "2.4.3", 1895 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 1896 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 1897 | "dev": true, 1898 | "requires": { 1899 | "psl": "^1.1.24", 1900 | "punycode": "^1.4.1" 1901 | }, 1902 | "dependencies": { 1903 | "punycode": { 1904 | "version": "1.4.1", 1905 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1906 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 1907 | "dev": true 1908 | } 1909 | } 1910 | }, 1911 | "tree-kill": { 1912 | "version": "1.2.1", 1913 | "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", 1914 | "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", 1915 | "dev": true 1916 | }, 1917 | "trim-newlines": { 1918 | "version": "1.0.0", 1919 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 1920 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 1921 | "dev": true 1922 | }, 1923 | "true-case-path": { 1924 | "version": "1.0.3", 1925 | "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", 1926 | "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", 1927 | "dev": true, 1928 | "requires": { 1929 | "glob": "^7.1.2" 1930 | } 1931 | }, 1932 | "tslib": { 1933 | "version": "1.10.0", 1934 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", 1935 | "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", 1936 | "dev": true 1937 | }, 1938 | "tunnel-agent": { 1939 | "version": "0.6.0", 1940 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1941 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 1942 | "dev": true, 1943 | "requires": { 1944 | "safe-buffer": "^5.0.1" 1945 | } 1946 | }, 1947 | "tweetnacl": { 1948 | "version": "0.14.5", 1949 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 1950 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 1951 | "dev": true 1952 | }, 1953 | "union": { 1954 | "version": "0.5.0", 1955 | "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", 1956 | "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", 1957 | "dev": true, 1958 | "requires": { 1959 | "qs": "^6.4.0" 1960 | } 1961 | }, 1962 | "uri-js": { 1963 | "version": "4.2.2", 1964 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 1965 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 1966 | "dev": true, 1967 | "requires": { 1968 | "punycode": "^2.1.0" 1969 | } 1970 | }, 1971 | "url-join": { 1972 | "version": "2.0.5", 1973 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", 1974 | "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=", 1975 | "dev": true 1976 | }, 1977 | "util-deprecate": { 1978 | "version": "1.0.2", 1979 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1980 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 1981 | "dev": true 1982 | }, 1983 | "uuid": { 1984 | "version": "3.3.3", 1985 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", 1986 | "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", 1987 | "dev": true 1988 | }, 1989 | "validate-npm-package-license": { 1990 | "version": "3.0.4", 1991 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 1992 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 1993 | "dev": true, 1994 | "requires": { 1995 | "spdx-correct": "^3.0.0", 1996 | "spdx-expression-parse": "^3.0.0" 1997 | } 1998 | }, 1999 | "verror": { 2000 | "version": "1.10.0", 2001 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 2002 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2003 | "dev": true, 2004 | "requires": { 2005 | "assert-plus": "^1.0.0", 2006 | "core-util-is": "1.0.2", 2007 | "extsprintf": "^1.2.0" 2008 | } 2009 | }, 2010 | "which": { 2011 | "version": "1.3.1", 2012 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 2013 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 2014 | "dev": true, 2015 | "requires": { 2016 | "isexe": "^2.0.0" 2017 | } 2018 | }, 2019 | "which-module": { 2020 | "version": "1.0.0", 2021 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", 2022 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", 2023 | "dev": true 2024 | }, 2025 | "wide-align": { 2026 | "version": "1.1.3", 2027 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", 2028 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", 2029 | "dev": true, 2030 | "requires": { 2031 | "string-width": "^1.0.2 || 2" 2032 | } 2033 | }, 2034 | "wordwrap": { 2035 | "version": "0.0.3", 2036 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 2037 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", 2038 | "dev": true 2039 | }, 2040 | "wrap-ansi": { 2041 | "version": "2.1.0", 2042 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", 2043 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", 2044 | "dev": true, 2045 | "requires": { 2046 | "string-width": "^1.0.1", 2047 | "strip-ansi": "^3.0.1" 2048 | } 2049 | }, 2050 | "wrappy": { 2051 | "version": "1.0.2", 2052 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2053 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2054 | "dev": true 2055 | }, 2056 | "y18n": { 2057 | "version": "3.2.1", 2058 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", 2059 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", 2060 | "dev": true 2061 | }, 2062 | "yallist": { 2063 | "version": "2.1.2", 2064 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 2065 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 2066 | "dev": true 2067 | }, 2068 | "yargs": { 2069 | "version": "7.1.0", 2070 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", 2071 | "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", 2072 | "dev": true, 2073 | "requires": { 2074 | "camelcase": "^3.0.0", 2075 | "cliui": "^3.2.0", 2076 | "decamelize": "^1.1.1", 2077 | "get-caller-file": "^1.0.1", 2078 | "os-locale": "^1.4.0", 2079 | "read-pkg-up": "^1.0.1", 2080 | "require-directory": "^2.1.1", 2081 | "require-main-filename": "^1.0.1", 2082 | "set-blocking": "^2.0.0", 2083 | "string-width": "^1.0.2", 2084 | "which-module": "^1.0.0", 2085 | "y18n": "^3.2.1", 2086 | "yargs-parser": "^5.0.0" 2087 | }, 2088 | "dependencies": { 2089 | "camelcase": { 2090 | "version": "3.0.0", 2091 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", 2092 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", 2093 | "dev": true 2094 | } 2095 | } 2096 | }, 2097 | "yargs-parser": { 2098 | "version": "5.0.0", 2099 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", 2100 | "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", 2101 | "dev": true, 2102 | "requires": { 2103 | "camelcase": "^3.0.0" 2104 | }, 2105 | "dependencies": { 2106 | "camelcase": { 2107 | "version": "3.0.0", 2108 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", 2109 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", 2110 | "dev": true 2111 | } 2112 | } 2113 | } 2114 | } 2115 | } 2116 | -------------------------------------------------------------------------------- /gethalo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gethalo", 3 | "version": "1.0.0", 4 | "description": "This page was developed using a [Bulma framework](https://bulma.io/) and custom SASS elements. Fonts from Google Fonts: included on site are: - Open Sans - Fredoka One", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "css-build": "node-sass --omit-source-map-url sass/mystyles.scss css/mystyles.css", 9 | "css-watch": "npm run css-build -- --watch", 10 | "start": "concurrently \"npm run css-watch\" \"http-server\"" 11 | }, 12 | "author": "", 13 | "license": "ISC", 14 | "devDependencies": { 15 | "concurrently": "^5.0.0", 16 | "http-server": "^0.12.0", 17 | "node-sass": "^4.13.0" 18 | }, 19 | "dependencies": { 20 | "bootstrap": "^4.4.1" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /gethalo/sass/custom.scss: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css?family=Fredoka+One|Open+Sans:400,600&display=swap'); 2 | 3 | 4 | $blue: #9EE1FF; 5 | $coral: #FF8A7A; 6 | $coral-dark: #E86F60; 7 | $blue-dark: #162126; 8 | $blue-feature: #1C3540; 9 | $blue-lighter: #DDF5FF; 10 | $font-family-fredoka: "Fredoka One", cursive; 11 | 12 | $theme-colors: ( 13 | "primary": $coral, 14 | "blue": $blue, 15 | "blue-dark": $blue-dark, 16 | "blue-feature": $blue-feature, 17 | "blue-lighter": $blue-lighter, 18 | "coral": $coral, 19 | "coral-dark": $coral-dark, 20 | ); 21 | 22 | 23 | .font-fredoka { 24 | font-family: "Fredoka One", cursive 25 | } 26 | 27 | 28 | 29 | @import "../node_modules/bootstrap/scss/bootstrap"; 30 | -------------------------------------------------------------------------------- /gethalo/sass/mystyles.scss: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @import "custom.scss"; 3 | 4 | body { 5 | font-size: 1.25rem; 6 | } 7 | 8 | .header-container { 9 | min-height: 80vh; 10 | text-align: center; 11 | display: flex; 12 | flex-direction: column; 13 | justify-content: center; 14 | align-items: center; 15 | 16 | .download-btn { 17 | background: $coral; 18 | border-radius: 32px; 19 | color: #fff; 20 | padding: 4px 18px; 21 | &:hover { 22 | background: $coral-dark; 23 | } 24 | } 25 | .install-btn { 26 | font-family: $font-family-fredoka; 27 | color: #000; 28 | position: absolute; 29 | top: 32px; 30 | right: 32px; 31 | } 32 | } 33 | 34 | .install-container { 35 | .install-instructions { 36 | font-size: 1.25rem; 37 | line-height: 52px; 38 | } 39 | } 40 | 41 | .yt-container { 42 | margin-top: 112px; 43 | } 44 | .yt-iframe { 45 | width: 100%; 46 | } 47 | 48 | .notification { 49 | background: #fff; 50 | display: flex; 51 | align-items: center; 52 | padding: 12px 18px; 53 | border-radius: 12px; 54 | position: absolute; 55 | top: 20px; 56 | left: 20px; 57 | transition: all 0.4s; 58 | box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); 59 | 60 | img { 61 | margin-right: 22px; 62 | width: 58px; 63 | } 64 | 65 | p { 66 | text-align: left; 67 | margin: 0; 68 | font-size: 1rem; 69 | white-space: pre-line; 70 | } 71 | 72 | &.hide { 73 | opacity: 0; 74 | transform: translateX(-200px); 75 | } 76 | } 77 | 78 | @media only screen and (max-width: 600px) { 79 | .install-btn, 80 | .notification { 81 | display: none; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /gethalo/slider.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 3 | $(".box-outer").delay(3200).animate({ width: "toggle" }); 4 | 5 | setTimeout(function() { 6 | $(".box").animate({ width: "toggle" }); 7 | }, 9200); 8 | // <-- time in milliseconds 9 | }); 10 | -------------------------------------------------------------------------------- /gethalo/v1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | HALO 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 32 | 33 | 34 |
35 |
36 |

37 | A yellow face with smiling eyes, closed smile, and halo,
38 | Halo 39 |

40 |

41 | A little bot that looks our for you with kind reminders when you need them. 42 |

43 |
44 | Download for mac 45 |
46 |
47 |
48 |
49 | 50 | 51 |
53 |
54 | 55 |
56 |
57 | 58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 | A yellow face with smiling eyes, closed smile, and halo, 67 |
68 |
69 |
70 |
71 |

72 | 👪
73 | No matter what, you are needed. 74 |

75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | 84 | 139 | 140 |
141 |
142 | 143 |
144 |
145 |

How to Install

146 |
147 |
148 |
149 |
150 |
151 | 152 |
153 |
154 |
155 |
    156 |
  1. Download the latest version Halo 157 |
  2. 158 |
  3. 159 | Once downloaded move it into your Applications folder 160 |
  4. 161 |
  5. 162 | Launch it and have some fun ✌️ 163 |
  6. 164 |
165 |
166 |
167 |
168 |
169 |

170 | If you see a message like: “halo” can’t be opened because it is from an unidentified developer. You will have to allow your mac to open the app downloaded from other than app store. 171 | 172 | To allow mac to open the app go to System Preferences -> Security & Privacy -> then click Open on blocked app. 173 |

174 |
175 |
176 |
177 |
178 | 179 | 216 | 217 | 218 |
220 |
221 | 232 | 235 | 236 | 237 | 238 | -------------------------------------------------------------------------------- /halo.js: -------------------------------------------------------------------------------- 1 | const Notification = require("electron").Notification; 2 | const scraperjs = require("scraperjs"); 3 | const path = require("path"); 4 | const imagesPath = path.join(__dirname, "images"); 5 | 6 | const halo = { 7 | showMessage: async () => { 8 | const { emoji, text } = await getTweet(); 9 | const notify = new Notification({ 10 | title: emoji || "Halo", 11 | body: text, 12 | closeButtonText: "close", 13 | }); 14 | notify.show(); 15 | }, 16 | }; 17 | 18 | const getTweet = async () => { 19 | const tweets1 = await scrapeTweets("tinycarebot"); 20 | const tweets2 = await scrapeTweets("selfcare_bot"); 21 | const tweets = [...tweets1, ...tweets2]; 22 | const tweetNo = Math.floor(Math.random() * tweets.length); 23 | return tweets[tweetNo]; 24 | }; 25 | 26 | const scrapeTweets = (who) => { 27 | return new Promise((resolve, reject) => { 28 | const uri = "https://twitter.com/" + who; 29 | const scrapeFn = ($) => { 30 | const nodes = $(".js-tweet-text.tweet-text"); 31 | return nodes 32 | .map((x, y) => { 33 | const emoji = $(y).find("img").attr("alt"); 34 | let text = $(y).text(); 35 | text = text.replace(":", "").trim(); 36 | text = text.charAt(0).toUpperCase() + text.slice(1); 37 | return { emoji, text }; 38 | }) 39 | .get(); 40 | }; 41 | const tweets = scraperjs.StaticScraper.create(uri) 42 | .scrape(scrapeFn) 43 | .then((tweets) => { 44 | resolve(tweets); 45 | }) 46 | .catch((err) => { 47 | resolve(TWEETS); 48 | }); 49 | }); 50 | }; 51 | 52 | module.exports = halo; 53 | 54 | // If there is no internet, Will use hardcoded tweets 55 | const TWEETS = [ 56 | { emoji: "🌃", text: "Take a moment to rest your eyes please" }, 57 | { emoji: "💖", text: "Remember to text a friend please" }, 58 | { emoji: "💧", text: "Take a bit of time to go get a sip of water please" }, 59 | { emoji: "💙", text: "Please ask your friends for help if you need it" }, 60 | { emoji: "❤", text: "Please remember to say hi to your friends" }, 61 | { 62 | emoji: "🏔", 63 | text: "Dont forget to rest your eyes and look away from twitter please", 64 | }, 65 | { 66 | emoji: "💧", 67 | text: "Remember to take a little bit of time to stay hydrated please", 68 | }, 69 | { emoji: "🌿", text: "Please remember to breathe calmly" }, 70 | { emoji: "🙌", text: "Please remember to wiggle your toes" }, 71 | { emoji: "🍛", text: "Please remember to eat something healthy" }, 72 | { emoji: "🌃", text: "Please remember to give your eyes a break" }, 73 | { emoji: "🚰", text: "Please remember to have a sip of water" }, 74 | { emoji: "🙌🏽", text: "Remember to do a posture check please" }, 75 | { 76 | emoji: "💟", 77 | text: 78 | "Remember to take a quick second to send some messages to your friends please", 79 | }, 80 | { emoji: "🌿", text: "Get some fresh air please" }, 81 | { 82 | emoji: "🏔", 83 | text: 84 | "Please dont forget to take a quick second to spend some time outside if you can", 85 | }, 86 | { 87 | emoji: "🌿", 88 | text: "Dont forget to take a quick break to get some fresh air please", 89 | }, 90 | { emoji: "💟", text: "Please ask for help if you need it" }, 91 | { emoji: "🍃", text: "Please get some fresh air" }, 92 | { 93 | emoji: "🎧", 94 | text: 95 | "Remember to take a quick second to listen to some music that helps you feel safe please", 96 | }, 97 | { emoji: "💪", text: "Hey! Life is tough, but so are you!" }, 98 | { 99 | emoji: "📋", 100 | text: 101 | "If you have an action plan to manage any conditions you have, please remember to follow it.", 102 | }, 103 | { 104 | emoji: "🌄", 105 | text: 106 | "You cannot compare your successes to the apparent achievements of others.", 107 | }, 108 | { emoji: "💨", text: "Don't forget to breathe." }, 109 | { 110 | emoji: "💨", 111 | text: 112 | "Is your breathing steady? Maybe try breathing with this gif. http//gph.is/2bComij?tc=1", 113 | }, 114 | { 115 | emoji: "📋", 116 | text: 117 | "If work is feeling too overwhelming, break it down into little jobs.", 118 | }, 119 | { 120 | emoji: "👍", 121 | text: 122 | "Not sure how to meditate? Maybe download a mindfulness app for your phone!", 123 | }, 124 | { 125 | emoji: "⏰", 126 | text: 127 | "Have you been waking up early enough lately? Might be time to adjust your sleep schedule.", 128 | }, 129 | { 130 | emoji: "🏡", 131 | text: 132 | "Is it possible to open a window? A breeze might make you feel a little brighter.", 133 | }, 134 | { emoji: "💧", text: "Have at least a little sip of water, yeah?" }, 135 | { emoji: "👍", text: "Just keep going! You're doing really well." }, 136 | { emoji: "👍", text: "Just do your best—it's the best you can do!" }, 137 | { emoji: "💖", text: "Don't be too hard on yourself." }, 138 | { emoji: "🎨", text: "Don't forget to do something creative today." }, 139 | { 140 | emoji: "🍰", 141 | text: "It's okay to treat yourself with your favourite food sometimes.", 142 | }, 143 | { 144 | emoji: "💕", 145 | text: 146 | "Everybody needs something a little different. Just be in tune with yourself.", 147 | }, 148 | { 149 | emoji: "🌲", 150 | text: "Have you been outside recently? Go and take a nice, fresh breath.", 151 | }, 152 | { 153 | emoji: "💤", 154 | text: 155 | "How's your sleep schedule looking? Try to head to bed on time tonight, if you can.", 156 | }, 157 | { 158 | emoji: "🚶", 159 | text: 160 | "If you have a moment, maybe go for a nice walk (or head outside for some fresh air, however you can).", 161 | }, 162 | { 163 | emoji: "🍇", 164 | text: "It's really important that you feed yourself, even a little!", 165 | }, 166 | { emoji: "😀", text: "Make sure you brush your teeth!" }, 167 | ]; 168 | -------------------------------------------------------------------------------- /images/icon_20x20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gauravchl/halo/56c743f8e9c30ceed09495b3c0f5b9e6e5a02e17/images/icon_20x20.png -------------------------------------------------------------------------------- /images/icon_20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gauravchl/halo/56c743f8e9c30ceed09495b3c0f5b9e6e5a02e17/images/icon_20x20@2x.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Hello Human! 6 | 38 | 39 | 40 |
41 |
42 |

whop whop in every 30min

43 | 44 |
45 |
whop! whop! now!
46 |
Exit
47 |
About
48 |
49 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const ipc = require('electron').ipcRenderer; 2 | var shell = require('electron').shell 3 | const DEFAULT_INTERVAL = 30; 4 | const exitBtn = document.getElementById('exit-btn'); 5 | const stressBtn = document.getElementById('stress-btn'); 6 | const aboutBtn = document.getElementById('about-btn'); 7 | const intervalBtn = document.getElementById('interval-btn'); 8 | 9 | exitBtn.addEventListener('click', () => { 10 | ipc.send('closeApp'); 11 | }); 12 | 13 | stressBtn.addEventListener('click', () => { 14 | ipc.send('showMessage'); 15 | }); 16 | 17 | aboutBtn.addEventListener('click', () => { 18 | shell.openExternal("https://github.com/gauravchl/halo"); 19 | }); 20 | 21 | intervalBtn.addEventListener('input', (e) => { 22 | const min = e.target.value; 23 | ipc.send('updateInterval', parseInt(min)); 24 | updateIntervalText(min); 25 | }); 26 | 27 | 28 | const updateIntervalText = min => { 29 | const time = min >= 60 ? `${min/60} hour` : `${min}min`; 30 | const text = `whop whop in every ${time}` 31 | document.getElementById('interval-label').innerText = text; 32 | } 33 | 34 | 35 | // Set interval from storage 36 | const initialInterval = ipc.sendSync('getInterval') || DEFAULT_INTERVAL; 37 | updateIntervalText(initialInterval) 38 | intervalBtn.value = initialInterval; 39 | 40 | console.log("#GC - initialInterval", initialInterval) 41 | -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | const { menubar } = require("menubar"); 2 | const path = require("path"); 3 | const halo = require("./halo.js"); 4 | const ipc = require('electron').ipcMain; 5 | const storage = require('electron-json-storage'); 6 | 7 | const imagesPath = path.join(__dirname, "images"); 8 | const DEFAULT_INTERVAL = 30 //minutes 9 | 10 | const granularity = 30 // InSeconds 11 | 12 | setInterval(() => { 13 | storage.get('lastSent', (err, data) => { 14 | const lastSent = data.value; 15 | if(!lastSent) { 16 | halo.showMessage(); 17 | updateLastSent(); 18 | } else { 19 | storage.get('interval', (err, { value: interval}) => { 20 | const intervalInMS = (interval || DEFAULT_INTERVAL) * 60 * 1000 21 | const d1 = Number(new Date()); 22 | const d2 = Number(new Date(lastSent)); 23 | if((d1 - d2) > intervalInMS) { 24 | halo.showMessage(); 25 | updateLastSent(); 26 | } 27 | }) 28 | } 29 | }); 30 | 31 | }, granularity * 1000); 32 | 33 | 34 | const updateLastSent = () => { 35 | storage.set('lastSent', {value: new Date()}) 36 | } 37 | 38 | 39 | const mb = menubar({ 40 | browserWindow: { 41 | width: 200, 42 | height: 192, 43 | webPreferences: { 44 | nodeIntegration: true 45 | }, 46 | icon: __dirname + "/build/icon.icns" 47 | } 48 | }); 49 | 50 | mb.on("ready", function ready() { 51 | setIcon("icon_20x20@2x.png"); 52 | mb.tray.on("right-click", () => { 53 | setTimeout(_ => mb.app.quit(), 500); 54 | }); 55 | 56 | mb.tray.on("click", () => { 57 | }); 58 | }); 59 | 60 | const setIcon = img => { 61 | mb.tray.setImage(`${imagesPath}/${img}`); 62 | mb.tray.setHighlightMode("never"); 63 | }; 64 | 65 | ipc.on('closeApp', function(event, data){ 66 | mb.app.quit(); 67 | }); 68 | 69 | ipc.on('showMessage', function(event, data){ 70 | halo.showMessage(); 71 | mb.window.hide(); 72 | }); 73 | 74 | ipc.on('updateInterval', function(event, interval){ 75 | console.log(interval); 76 | storage.set('interval', {value: interval}) 77 | }); 78 | 79 | ipc.on('getInterval', function(event){ 80 | storage.get('interval', (err, data) => { 81 | event.returnValue = data.value; 82 | }); 83 | }); 84 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gauravchl/halo/56c743f8e9c30ceed09495b3c0f5b9e6e5a02e17/netlify.toml -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "halo", 3 | "version": "v1.0.0", 4 | "description": "", 5 | "main": "main.js", 6 | "scripts": { 7 | "start": "electron .", 8 | "build": "electron-builder", 9 | "release": "build" 10 | }, 11 | "keywords": [], 12 | "author": "Gaurav Chikhale ", 13 | "license": "MIT", 14 | "devDependencies": { 15 | "electron": "5.0.6", 16 | "electron-builder": "^20.44.4", 17 | "electron-packager": "14.0.1", 18 | "electron-reload": "1.4.0" 19 | }, 20 | "dependencies": { 21 | "electron-json-storage": "^4.1.6", 22 | "menubar": "6.0.6", 23 | "scraperjs": "1.2.0" 24 | }, 25 | "build": { 26 | "icon": "build/icon.icns", 27 | "appId": "com.halo.app", 28 | "files": [ 29 | "**/*", 30 | "build/icon.*" 31 | ], 32 | "mac": { 33 | "category": "public.app-category.productivity" 34 | } 35 | } 36 | } 37 | --------------------------------------------------------------------------------