| Hash | Commit message | Author | Date | Files | + | - |
1 | commit 7db2a2bad9b712860239aec509caf4424ae48a58 |
2 | Author: Connor Etherington <[email protected]> |
3 | Date: Sat Jan 27 23:51:10 2024 +0200 |
4 | |
5 | Auto-Commit Update 27.01.2024 - 23:51:10 |
6 | --- |
7 | .gitignore | 6 ++ |
8 | dict.js | 85 +++++++++++++++++++++ |
9 | package.json | 22 ++++++ |
10 | yarn.lock | 237 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
11 | 4 files changed, 350 insertions(+) |
12 | |
13 | diff --git a/.gitignore b/.gitignore |
14 | new file mode 100644 |
15 | index 0000000..163aac5 |
16 | --- /dev/null |
17 | +++ b/.gitignore |
18 | @@ -0,0 +1,6 @@ |
19 | +node_modules |
20 | +server/node_modules |
21 | +client/node_modules |
22 | +frontend/node_modules |
23 | +backend/node_modules |
24 | + |
25 | diff --git a/dict.js b/dict.js |
26 | new file mode 100755 |
27 | index 0000000..0940008 |
28 | --- /dev/null |
29 | +++ b/dict.js |
30 | @@ -0,0 +1,85 @@ |
31 | +#!/usr/bin/env node |
32 | + |
33 | +const axios = require('axios'); |
34 | +const endpoint = 'https://en.wikipedia.org/w/rest.php/v1/search/page'; |
35 | +const spinner = require('ora')('Searching...').start(); |
36 | +const chalk = require('chalk'); |
37 | +const process = require('process'); |
38 | + |
39 | +const printBoxedText = (text) => { |
40 | + const terminalWidth = process.stdout.columns; |
41 | + const maxWidth = Math.floor(terminalWidth * 0.55) - 4; |
42 | + const lines = text.split('_-__-_').flatMap(segment => { |
43 | + const segmentLines = []; |
44 | + let currentLine = ''; |
45 | + |
46 | + segment.split(' ').forEach(word => { |
47 | + if ((currentLine + ' ' + word).trim().length > maxWidth) { |
48 | + if (['.', ','].includes(word[0])) { |
49 | + currentLine += word[0]; |
50 | + word = word.substring(1); |
51 | + } |
52 | + segmentLines.push(currentLine.trim()); |
53 | + currentLine = word; |
54 | + } else { |
55 | + currentLine += ' ' + word; |
56 | + } |
57 | + }); |
58 | + |
59 | + if (currentLine.trim()) { |
60 | + segmentLines.push(currentLine.trim()); |
61 | + } |
62 | + |
63 | + return [...segmentLines, '', '']; |
64 | + }).slice(0, -2); |
65 | + |
66 | + const maxLength = Math.max(...lines.map(line => line.length)); |
67 | + const topBorder = chalk.bgBlack.white('┌' + '─'.repeat(maxLength + 2) + '┐'); |
68 | + const bottomBorder = chalk.bgBlack.white('└' + '─'.repeat(maxLength + 2) + '┘'); |
69 | + const blankLine = chalk.bgBlack.white('│' + ' '.repeat(maxLength + 2) + '│'); |
70 | + |
71 | + console.log(`\n${topBorder}`); |
72 | + console.log(blankLine); |
73 | + lines.forEach(line => { |
74 | + const padding = ' '.repeat(maxLength - line.length); |
75 | + console.log(line ? (chalk.bgBlack.white('│') + chalk.bgBlack.yellow(' ' + line + padding + ' ') + chalk.bgBlack.white('│')) : blankLine); |
76 | + }); |
77 | + console.log(blankLine); |
78 | + console.log(`${bottomBorder}\n`); |
79 | +} |
80 | + |
81 | +const search = async (query, limit) => { |
82 | + let success = false, res = {}; |
83 | + |
84 | + while (!success) { |
85 | + res = await axios.get(endpoint, { |
86 | + params: { |
87 | + q: query, |
88 | + limit: limit || 1 |
89 | + } |
90 | + }); |
91 | + if (res.status === 200) success = true; |
92 | + } |
93 | + |
94 | + let pages = res.data.pages, final, segments = []; |
95 | + |
96 | + if (pages.length >= 1) { |
97 | + pages.forEach(page => { |
98 | + segments.push(page?.excerpt?.split('<span class="searchmatch">').join('').split('</span>').join('')); |
99 | + }); |
100 | + final = segments.join('_-__-_'); |
101 | + } else { |
102 | + final = 'No results found'; |
103 | + } |
104 | + |
105 | + spinner.stop(); |
106 | + return final; |
107 | +} |
108 | + |
109 | +if (require.main === module) { |
110 | + search(process.argv[2], process.argv[3] || 1).then(res => { |
111 | + printBoxedText(res); |
112 | + }); |
113 | +} |
114 | + |
115 | +module.exports = search; |
116 | diff --git a/package.json b/package.json |
117 | new file mode 100644 |
118 | index 0000000..29163b4 |
119 | --- /dev/null |
120 | +++ b/package.json |
121 | @@ -0,0 +1,22 @@ |
122 | +{ |
123 | + "name": "dict", |
124 | + "version": "0.1.0", |
125 | + "main": "dict.js", |
126 | + "scripts": { |
127 | + "start": "node ${npm_package_main}", |
128 | + "dev": "nodemon ${npm_package_main}" |
129 | + }, |
130 | + "bin": { |
131 | + "dict": "dict.js" |
132 | + }, |
133 | + "author": "Connor Etherington <[email protected]>", |
134 | + "license": "MIT", |
135 | + "dependencies": { |
136 | + "axios": "^1.6.7", |
137 | + "chalk": "^4.0.0", |
138 | + "ora": "^4.0.0" |
139 | + }, |
140 | + "devDependencies": {}, |
141 | + "keywords": [], |
142 | + "description": "" |
143 | +} |
144 | diff --git a/yarn.lock b/yarn.lock |
145 | new file mode 100644 |
146 | index 0000000..f2e1797 |
147 | --- /dev/null |
148 | +++ b/yarn.lock |
149 | @@ -0,0 +1,237 @@ |
150 | +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. |
151 | +# yarn lockfile v1 |
152 | + |
153 | + |
154 | +ansi-regex@^4.1.0: |
155 | + version "4.1.1" |
156 | + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" |
157 | + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== |
158 | + |
159 | +ansi-styles@^3.2.1: |
160 | + version "3.2.1" |
161 | + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" |
162 | + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== |
163 | + dependencies: |
164 | + color-convert "^1.9.0" |
165 | + |
166 | +ansi-styles@^4.1.0: |
167 | + version "4.3.0" |
168 | + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" |
169 | + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== |
170 | + dependencies: |
171 | + color-convert "^2.0.1" |
172 | + |
173 | +asynckit@^0.4.0: |
174 | + version "0.4.0" |
175 | + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" |
176 | + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== |
177 | + |
178 | +axios@^1.6.7: |
179 | + version "1.6.7" |
180 | + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" |
181 | + integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== |
182 | + dependencies: |
183 | + follow-redirects "^1.15.4" |
184 | + form-data "^4.0.0" |
185 | + proxy-from-env "^1.1.0" |
186 | + |
187 | +chalk@^2.4.2: |
188 | + version "2.4.2" |
189 | + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" |
190 | + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== |
191 | + dependencies: |
192 | + ansi-styles "^3.2.1" |
193 | + escape-string-regexp "^1.0.5" |
194 | + supports-color "^5.3.0" |
195 | + |
196 | +chalk@^4.0.0: |
197 | + version "4.0.0" |
198 | + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" |
199 | + integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== |
200 | + dependencies: |
201 | + ansi-styles "^4.1.0" |
202 | + supports-color "^7.1.0" |
203 | + |
204 | +cli-cursor@^3.1.0: |
205 | + version "3.1.0" |
206 | + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" |
207 | + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== |
208 | + dependencies: |
209 | + restore-cursor "^3.1.0" |
210 | + |
211 | +cli-spinners@^2.2.0: |
212 | + version "2.9.2" |
213 | + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" |
214 | + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== |
215 | + |
216 | +clone@^1.0.2: |
217 | + version "1.0.4" |
218 | + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" |
219 | + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== |
220 | + |
221 | +color-convert@^1.9.0: |
222 | + version "1.9.3" |
223 | + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" |
224 | + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== |
225 | + dependencies: |
226 | + color-name "1.1.3" |
227 | + |
228 | +color-convert@^2.0.1: |
229 | + version "2.0.1" |
230 | + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" |
231 | + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== |
232 | + dependencies: |
233 | + color-name "~1.1.4" |
234 | + |
235 | +[email protected]: |
236 | + version "1.1.3" |
237 | + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" |
238 | + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== |
239 | + |
240 | +color-name@~1.1.4: |
241 | + version "1.1.4" |
242 | + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" |
243 | + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== |
244 | + |
245 | +combined-stream@^1.0.8: |
246 | + version "1.0.8" |
247 | + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" |
248 | + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== |
249 | + dependencies: |
250 | + delayed-stream "~1.0.0" |
251 | + |
252 | +defaults@^1.0.3: |
253 | + version "1.0.4" |
254 | + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" |
255 | + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== |
256 | + dependencies: |
257 | + clone "^1.0.2" |
258 | + |
259 | +delayed-stream@~1.0.0: |
260 | + version "1.0.0" |
261 | + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" |
262 | + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== |
263 | + |
264 | +escape-string-regexp@^1.0.5: |
265 | + version "1.0.5" |
266 | + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" |
267 | + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== |
268 | + |
269 | +follow-redirects@^1.15.4: |
270 | + version "1.15.5" |
271 | + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" |
272 | + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== |
273 | + |
274 | +form-data@^4.0.0: |
275 | + version "4.0.0" |
276 | + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" |
277 | + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== |
278 | + dependencies: |
279 | + asynckit "^0.4.0" |
280 | + combined-stream "^1.0.8" |
281 | + mime-types "^2.1.12" |
282 | + |
283 | +has-flag@^3.0.0: |
284 | + version "3.0.0" |
285 | + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" |
286 | + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== |
287 | + |
288 | +has-flag@^4.0.0: |
289 | + version "4.0.0" |
290 | + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" |
291 | + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== |
292 | + |
293 | +is-interactive@^1.0.0: |
294 | + version "1.0.0" |
295 | + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" |
296 | + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== |
297 | + |
298 | +log-symbols@^3.0.0: |
299 | + version "3.0.0" |
300 | + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" |
301 | + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== |
302 | + dependencies: |
303 | + chalk "^2.4.2" |
304 | + |
305 | +[email protected]: |
306 | + version "1.52.0" |
307 | + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" |
308 | + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== |
309 | + |
310 | +mime-types@^2.1.12: |
311 | + version "2.1.35" |
312 | + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" |
313 | + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== |
314 | + dependencies: |
315 | + mime-db "1.52.0" |
316 | + |
317 | +mimic-fn@^2.1.0: |
318 | + version "2.1.0" |
319 | + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" |
320 | + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== |
321 | + |
322 | +onetime@^5.1.0: |
323 | + version "5.1.2" |
324 | + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" |
325 | + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== |
326 | + dependencies: |
327 | + mimic-fn "^2.1.0" |
328 | + |
329 | +ora@^4.0.0: |
330 | + version "4.0.0" |
331 | + resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.0.tgz#374c4ee8c5fb91b5dbcd82de199f188d3e8fd5ec" |
332 | + integrity sha512-2RaV0LWJgpWEjvpsW57H8pnzdVQJrtAr4VGk9cIqn58ePx5k1b0H3h9DS2Qj4cL1Cm012JSeg+7AcVNsis6AVQ== |
333 | + dependencies: |
334 | + chalk "^2.4.2" |
335 | + cli-cursor "^3.1.0" |
336 | + cli-spinners "^2.2.0" |
337 | + is-interactive "^1.0.0" |
338 | + log-symbols "^3.0.0" |
339 | + strip-ansi "^5.2.0" |
340 | + wcwidth "^1.0.1" |
341 | + |
342 | +proxy-from-env@^1.1.0: |
343 | + version "1.1.0" |
344 | + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" |
345 | + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== |
346 | + |
347 | +restore-cursor@^3.1.0: |
348 | + version "3.1.0" |
349 | + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" |
350 | + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== |
351 | + dependencies: |
352 | + onetime "^5.1.0" |
353 | + signal-exit "^3.0.2" |
354 | + |
355 | +signal-exit@^3.0.2: |
356 | + version "3.0.7" |
357 | + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" |
358 | + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== |
359 | + |
360 | +strip-ansi@^5.2.0: |
361 | + version "5.2.0" |
362 | + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" |
363 | + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== |
364 | + dependencies: |
365 | + ansi-regex "^4.1.0" |
366 | + |
367 | +supports-color@^5.3.0: |
368 | + version "5.5.0" |
369 | + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" |
370 | + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== |
371 | + dependencies: |
372 | + has-flag "^3.0.0" |
373 | + |
374 | +supports-color@^7.1.0: |
375 | + version "7.2.0" |
376 | + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" |
377 | + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== |
378 | + dependencies: |
379 | + has-flag "^4.0.0" |
380 | + |
381 | +wcwidth@^1.0.1: |
382 | + version "1.0.1" |
383 | + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" |
384 | + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== |
385 | + dependencies: |
386 | + defaults "^1.0.3" |