├── .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 |
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 |
54 |
55 |
91 |
92 |
93 |
98 |
99 |
100 |
101 |
102 |
103 |
How to Install
104 |
105 |
106 |
107 | VIDEO
116 |
117 |
118 |
119 |
120 | Download the latest version Halo
121 |
122 | Once downloaded move it into your Applications folder
123 |
124 |
125 | Launch it and have some fun ✌️
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
138 |
139 |
140 |
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 |
21 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | Halo
39 |
40 |
41 | A little bot that looks our for you with kind reminders when you need them.
42 |
43 |
47 |
48 |
49 |
50 |
51 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
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 | Download the latest version Halo
157 |
158 |
159 | Once downloaded move it into your Applications folder
160 |
161 |
162 | Launch it and have some fun ✌️
163 |
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 |
--------------------------------------------------------------------------------