aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-02-22 15:34:32 +0100
committerChocobozzz <me@florianbigard.com>2021-02-22 15:54:15 +0100
commit4abbeff5758daad6d0639cc61a0ae27f9bb758da (patch)
treeb09b40ac1bd4230fc7ecf37dba07af96098b825a
parentc15d61f5fee4e7a1b5de4c6359ecbf28598a55ef (diff)
downloadPeerTube-4abbeff5758daad6d0639cc61a0ae27f9bb758da.tar.gz
PeerTube-4abbeff5758daad6d0639cc61a0ae27f9bb758da.tar.zst
PeerTube-4abbeff5758daad6d0639cc61a0ae27f9bb758da.zip
Add benchmark script
-rw-r--r--package.json1
-rw-r--r--scripts/benchmark.ts234
-rw-r--r--yarn.lock180
3 files changed, 408 insertions, 7 deletions
diff --git a/package.json b/package.json
index da45829c9..c37d9169f 100644
--- a/package.json
+++ b/package.json
@@ -199,6 +199,7 @@
199 "@types/webtorrent": "^0.109.0", 199 "@types/webtorrent": "^0.109.0",
200 "@types/ws": "^7.2.1", 200 "@types/ws": "^7.2.1",
201 "@typescript-eslint/eslint-plugin": "^4.8.1", 201 "@typescript-eslint/eslint-plugin": "^4.8.1",
202 "autocannon": "^7.0.4",
202 "chai": "^4.1.1", 203 "chai": "^4.1.1",
203 "chai-json-schema": "^1.5.0", 204 "chai-json-schema": "^1.5.0",
204 "chai-xml": "^0.4.0", 205 "chai-xml": "^0.4.0",
diff --git a/scripts/benchmark.ts b/scripts/benchmark.ts
new file mode 100644
index 000000000..69d902b5c
--- /dev/null
+++ b/scripts/benchmark.ts
@@ -0,0 +1,234 @@
1import { registerTSPaths } from '../server/helpers/register-ts-paths'
2registerTSPaths()
3
4import * as autocannon from 'autocannon'
5import {
6 addVideoCommentReply,
7 addVideoCommentThread,
8 createVideoCaption,
9 flushAndRunServer,
10 getVideosList,
11 killallServers,
12 ServerInfo,
13 setAccessTokensToServers,
14 uploadVideo
15} from '@shared/extra-utils'
16import { Video, VideoPrivacy } from '@shared/models'
17import { writeJson } from 'fs-extra'
18
19let server: ServerInfo
20let video: Video
21let threadId: number
22
23const outfile = process.argv[2]
24
25run()
26 .catch(err => console.error(err))
27 .finally(() => {
28 if (server) killallServers([ server ])
29 })
30
31function buildAuthorizationHeader () {
32 return {
33 Authorization: 'Bearer ' + server.accessToken
34 }
35}
36
37async function run () {
38 console.log('Preparing server...')
39
40 await prepare()
41
42 const tests = [
43 {
44 title: 'API - unread notifications',
45 path: '/api/v1/users/me/notifications?start=0&count=0&unread=true',
46 headers: buildAuthorizationHeader(),
47 expecter: (_client, statusCode) => {
48 return statusCode === 200
49 }
50 },
51 {
52 title: 'API - me',
53 path: '/api/v1/users/me',
54 headers: buildAuthorizationHeader(),
55 expecter: (client, statusCode) => {
56 const body = client.resData[0].body
57
58 return statusCode === 200 && body.startsWith('{"id":')
59 }
60 },
61 {
62 title: 'API - videos list',
63 path: '/api/v1/videos',
64 expecter: (client, statusCode) => {
65 const body = client.resData[0].body
66
67 return statusCode === 200 && body.startsWith('{"total":10')
68 }
69 },
70 {
71 title: 'API - video get',
72 path: '/api/v1/videos/' + video.uuid,
73 expecter: (client, statusCode) => {
74 const body = client.resData[0].body
75
76 return statusCode === 200 && body.startsWith('{"id":')
77 }
78 },
79 {
80 title: 'API - video captions',
81 path: '/api/v1/videos/' + video.uuid + '/captions',
82 expecter: (client, statusCode) => {
83 const body = client.resData[0].body
84
85 return statusCode === 200 && body.startsWith('{"total":4')
86 }
87 },
88 {
89 title: 'API - video threads',
90 path: '/api/v1/videos/' + video.uuid + '/comment-threads',
91 expecter: (client, statusCode) => {
92 const body = client.resData[0].body
93
94 return statusCode === 200 && body.startsWith('{"total":10')
95 }
96 },
97 {
98 title: 'API - video replies',
99 path: '/api/v1/videos/' + video.uuid + '/comment-threads/' + threadId,
100 expecter: (client, statusCode) => {
101 const body = client.resData[0].body
102
103 return statusCode === 200 && body.startsWith('{"comment":{')
104 }
105 },
106 {
107 title: 'HTML - video watch',
108 path: '/videos/watch/' + video.uuid,
109 expecter: (client, statusCode) => {
110 const body = client.resData[0].body
111
112 return statusCode === 200 && body.includes('<title>my super')
113 }
114 },
115 {
116 title: 'HTML - homepage',
117 path: '/',
118 expecter: (_client, statusCode) => {
119 return statusCode === 200
120 }
121 },
122 {
123 title: 'API - config',
124 path: '/api/v1/config',
125 expecter: (client, statusCode) => {
126 const body = client.resData[0].body
127
128 return statusCode === 200 && body.startsWith('{"instance":')
129 }
130 }
131 ]
132
133 const finalResult: any[] = []
134
135 for (const test of tests) {
136 console.log('Running against %s.', test.path)
137 const testResult = await runBenchmark(test)
138
139 Object.assign(testResult, { title: test.title, path: test.path })
140 finalResult.push(testResult)
141
142 console.log(autocannon.printResult(testResult))
143 }
144
145 if (outfile) await writeJson(outfile, finalResult)
146}
147
148function runBenchmark (options: {
149 path: string
150 headers?: { [ id: string ]: string }
151 expecter: Function
152}) {
153 const { path, expecter, headers } = options
154
155 return new Promise((res, rej) => {
156 const instance = autocannon({
157 url: server.url + path,
158 connections: 20,
159 headers,
160 pipelining: 1,
161 duration: 10
162 }, (err, result) => {
163 if (err) return rej(err)
164
165 return res(result)
166 })
167
168 instance.on('response', (client, statusCode) => {
169 if (expecter(client, statusCode) !== true) {
170 console.error('Expected result failed.', { data: client.resData })
171 process.exit(-1)
172 }
173 })
174 })
175}
176
177async function prepare () {
178 server = await flushAndRunServer(1, {
179 rates_limit: {
180 api: {
181 max: 5_000_000
182 }
183 }
184 })
185 await setAccessTokensToServers([ server ])
186
187 const videoAttributes = {
188 name: 'my super video',
189 category: 2,
190 nsfw: true,
191 licence: 6,
192 language: 'fr',
193 privacy: VideoPrivacy.PUBLIC,
194 support: 'please give me a coffee',
195 description: 'my super description'.repeat(10),
196 tags: [ 'tag1', 'tag2', 'tag3' ]
197 }
198
199 for (let i = 0; i < 10; i++) {
200 Object.assign(videoAttributes, { name: 'my super video ' + i })
201 await uploadVideo(server.url, server.accessToken, videoAttributes)
202 }
203
204 const resVideos = await getVideosList(server.url)
205 video = resVideos.body.data.find(v => v.name === 'my super video 1')
206
207 for (let i = 0; i < 10; i++) {
208 const text = 'my super first comment'
209 const res = await addVideoCommentThread(server.url, server.accessToken, video.id, text)
210 threadId = res.body.comment.id
211
212 const text1 = 'my super answer to thread 1'
213 const childCommentRes = await addVideoCommentReply(server.url, server.accessToken, video.id, threadId, text1)
214 const childCommentId = childCommentRes.body.comment.id
215
216 const text2 = 'my super answer to answer of thread 1'
217 await addVideoCommentReply(server.url, server.accessToken, video.id, childCommentId, text2)
218
219 const text3 = 'my second answer to thread 1'
220 await addVideoCommentReply(server.url, server.accessToken, video.id, threadId, text3)
221 }
222
223 for (const caption of [ 'ar', 'fr', 'en', 'zh' ]) {
224 await createVideoCaption({
225 url: server.url,
226 accessToken: server.accessToken,
227 language: caption,
228 videoId: video.id,
229 fixture: 'subtitle-good2.vtt'
230 })
231 }
232
233 return { server, video, threadId }
234}
diff --git a/yarn.lock b/yarn.lock
index 6fefe5403..e583a6b32 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -43,6 +43,11 @@
43 call-me-maybe "^1.0.1" 43 call-me-maybe "^1.0.1"
44 z-schema "^4.2.3" 44 z-schema "^4.2.3"
45 45
46"@assemblyscript/loader@^0.10.1":
47 version "0.10.1"
48 resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.10.1.tgz#70e45678f06c72fa2e350e8553ec4a4d72b92e06"
49 integrity sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==
50
46"@babel/code-frame@^7.0.0": 51"@babel/code-frame@^7.0.0":
47 version "7.12.11" 52 version "7.12.11"
48 resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" 53 resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
@@ -1284,6 +1289,33 @@ at-least-node@^1.0.0:
1284 resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" 1289 resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
1285 integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== 1290 integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
1286 1291
1292autocannon@^7.0.4:
1293 version "7.0.4"
1294 resolved "https://registry.yarnpkg.com/autocannon/-/autocannon-7.0.4.tgz#c812c11af283254bff4bd75cce8383e79550c882"
1295 integrity sha512-+A+kSsVrx9F9fFbPAD7YytGQfCKgkaCIut4KrnYBbY2hmboAT065ClxqBsVqstokvFfdBAfSMPh0VSc6ktiimg==
1296 dependencies:
1297 chalk "^4.1.0"
1298 cli-table3 "^0.6.0"
1299 clone "^2.1.2"
1300 color-support "^1.1.1"
1301 cross-argv "^1.0.0"
1302 form-data "^4.0.0"
1303 has-async-hooks "^1.0.0"
1304 hdr-histogram-js "^2.0.1"
1305 hdr-histogram-percentiles-obj "^3.0.0"
1306 http-parser-js "^0.5.2"
1307 hyperid "^2.0.3"
1308 manage-path "^2.0.0"
1309 minimist "^1.2.0"
1310 on-net-listen "^1.1.1"
1311 ora "^5.1.0"
1312 pretty-bytes "^5.4.1"
1313 progress "^2.0.3"
1314 reinterval "^1.1.0"
1315 retimer "^2.0.0"
1316 semver "^7.3.2"
1317 timestring "^6.0.0"
1318
1287aws-sign2@~0.7.0: 1319aws-sign2@~0.7.0:
1288 version "0.7.0" 1320 version "0.7.0"
1289 resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 1321 resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@@ -1333,7 +1365,7 @@ base64-arraybuffer@0.1.5:
1333 resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" 1365 resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
1334 integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= 1366 integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg=
1335 1367
1336base64-js@^1.3.1: 1368base64-js@^1.2.0, base64-js@^1.3.1:
1337 version "1.5.1" 1369 version "1.5.1"
1338 resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 1370 resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
1339 integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 1371 integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@@ -1484,6 +1516,15 @@ bittorrent-tracker@^9.0.0:
1484 bufferutil "^4.0.1" 1516 bufferutil "^4.0.1"
1485 utf-8-validate "^5.0.2" 1517 utf-8-validate "^5.0.2"
1486 1518
1519bl@^4.0.3:
1520 version "4.1.0"
1521 resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
1522 integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
1523 dependencies:
1524 buffer "^5.5.0"
1525 inherits "^2.0.4"
1526 readable-stream "^3.4.0"
1527
1487blob-to-buffer@^1.2.9: 1528blob-to-buffer@^1.2.9:
1488 version "1.2.9" 1529 version "1.2.9"
1489 resolved "https://registry.yarnpkg.com/blob-to-buffer/-/blob-to-buffer-1.2.9.tgz#a17fd6c1c564011408f8971e451544245daaa84a" 1530 resolved "https://registry.yarnpkg.com/blob-to-buffer/-/blob-to-buffer-1.2.9.tgz#a17fd6c1c564011408f8971e451544245daaa84a"
@@ -1619,7 +1660,7 @@ buffer-writer@2.0.0:
1619 resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" 1660 resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04"
1620 integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== 1661 integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==
1621 1662
1622buffer@^5.2.0: 1663buffer@^5.2.0, buffer@^5.5.0:
1623 version "5.7.1" 1664 version "5.7.1"
1624 resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" 1665 resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
1625 integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 1666 integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
@@ -1919,6 +1960,21 @@ cli-cursor@^3.1.0:
1919 dependencies: 1960 dependencies:
1920 restore-cursor "^3.1.0" 1961 restore-cursor "^3.1.0"
1921 1962
1963cli-spinners@^2.5.0:
1964 version "2.5.0"
1965 resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047"
1966 integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==
1967
1968cli-table3@^0.6.0:
1969 version "0.6.0"
1970 resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee"
1971 integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==
1972 dependencies:
1973 object-assign "^4.1.0"
1974 string-width "^4.2.0"
1975 optionalDependencies:
1976 colors "^1.1.2"
1977
1922cli-width@^3.0.0: 1978cli-width@^3.0.0:
1923 version "3.0.0" 1979 version "3.0.0"
1924 resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" 1980 resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
@@ -1954,6 +2010,11 @@ clone@^1.0.2:
1954 resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" 2010 resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
1955 integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= 2011 integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
1956 2012
2013clone@^2.1.2:
2014 version "2.1.2"
2015 resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
2016 integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
2017
1957cluster-key-slot@^1.1.0: 2018cluster-key-slot@^1.1.0:
1958 version "1.1.0" 2019 version "1.1.0"
1959 resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" 2020 resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d"
@@ -2009,6 +2070,11 @@ color-string@^1.5.2:
2009 color-name "^1.0.0" 2070 color-name "^1.0.0"
2010 simple-swizzle "^0.2.2" 2071 simple-swizzle "^0.2.2"
2011 2072
2073color-support@^1.1.1:
2074 version "1.1.3"
2075 resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
2076 integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
2077
2012color@3.0.x: 2078color@3.0.x:
2013 version "3.0.0" 2079 version "3.0.0"
2014 resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" 2080 resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"
@@ -2282,6 +2348,11 @@ cron-parser@^2.13.0:
2282 is-nan "^1.3.0" 2348 is-nan "^1.3.0"
2283 moment-timezone "^0.5.31" 2349 moment-timezone "^0.5.31"
2284 2350
2351cross-argv@^1.0.0:
2352 version "1.0.0"
2353 resolved "https://registry.yarnpkg.com/cross-argv/-/cross-argv-1.0.0.tgz#e7221e9ff73092a80496c699c8c45efb20f6486c"
2354 integrity sha512-uAVe/bgNHlPdP1VE4Sk08u9pAJ7o1x/tVQtX77T5zlhYhuwOWtVkPBEtHdvF5cq48VzeCG5i1zN4dQc8pwLYrw==
2355
2285cross-spawn@^7.0.2, cross-spawn@^7.0.3: 2356cross-spawn@^7.0.2, cross-spawn@^7.0.3:
2286 version "7.0.3" 2357 version "7.0.3"
2287 resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 2358 resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
@@ -3412,6 +3483,15 @@ form-data@^3.0.0:
3412 combined-stream "^1.0.8" 3483 combined-stream "^1.0.8"
3413 mime-types "^2.1.12" 3484 mime-types "^2.1.12"
3414 3485
3486form-data@^4.0.0:
3487 version "4.0.0"
3488 resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
3489 integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
3490 dependencies:
3491 asynckit "^0.4.0"
3492 combined-stream "^1.0.8"
3493 mime-types "^2.1.12"
3494
3415form-data@~2.3.2: 3495form-data@~2.3.2:
3416 version "2.3.3" 3496 version "2.3.3"
3417 resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" 3497 resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
@@ -3688,6 +3768,11 @@ har-validator@~5.1.3:
3688 ajv "^6.12.3" 3768 ajv "^6.12.3"
3689 har-schema "^2.0.0" 3769 har-schema "^2.0.0"
3690 3770
3771has-async-hooks@^1.0.0:
3772 version "1.0.0"
3773 resolved "https://registry.yarnpkg.com/has-async-hooks/-/has-async-hooks-1.0.0.tgz#3df965ade8cd2d9dbfdacfbca3e0a5152baaf204"
3774 integrity sha512-YF0VPGjkxr7AyyQQNykX8zK4PvtEDsUJAPqwu06UFz1lb6EvI53sPh5H1kWxg8NXI5LsfRCZ8uX9NkYDZBb/mw==
3775
3691has-binary2@~1.0.2: 3776has-binary2@~1.0.2:
3692 version "1.0.3" 3777 version "1.0.3"
3693 resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" 3778 resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d"
@@ -3739,6 +3824,20 @@ hashish@~0.0.4:
3739 dependencies: 3824 dependencies:
3740 traverse ">=0.2.4" 3825 traverse ">=0.2.4"
3741 3826
3827hdr-histogram-js@^2.0.1:
3828 version "2.0.1"
3829 resolved "https://registry.yarnpkg.com/hdr-histogram-js/-/hdr-histogram-js-2.0.1.tgz#ecb1ff2bcb6181c3e93ff4af9472c28c7e97284e"
3830 integrity sha512-uPZxl1dAFnjUFHWLZmt93vUUvtHeaBay9nVNHu38SdOjMSF/4KqJUqa1Seuj08ptU1rEb6AHvB41X8n/zFZ74Q==
3831 dependencies:
3832 "@assemblyscript/loader" "^0.10.1"
3833 base64-js "^1.2.0"
3834 pako "^1.0.3"
3835
3836hdr-histogram-percentiles-obj@^3.0.0:
3837 version "3.0.0"
3838 resolved "https://registry.yarnpkg.com/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz#9409f4de0c2dda78e61de2d9d78b1e9f3cba283c"
3839 integrity sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==
3840
3742he@1.2.0, he@^1.2.0: 3841he@1.2.0, he@^1.2.0:
3743 version "1.2.0" 3842 version "1.2.0"
3744 resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 3843 resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
@@ -3832,6 +3931,11 @@ http-parser-js@^0.4.3:
3832 resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137" 3931 resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137"
3833 integrity sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc= 3932 integrity sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=
3834 3933
3934http-parser-js@^0.5.2:
3935 version "0.5.3"
3936 resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9"
3937 integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==
3938
3835http-signature@1.3.5, http-signature@~1.2.0: 3939http-signature@1.3.5, http-signature@~1.2.0:
3836 version "1.3.5" 3940 version "1.3.5"
3837 resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.5.tgz#9f19496ffbf3227298d7b5f156e0e1a948678683" 3941 resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.5.tgz#9f19496ffbf3227298d7b5f156e0e1a948678683"
@@ -3846,6 +3950,14 @@ human-signals@^2.1.0:
3846 resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" 3950 resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
3847 integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== 3951 integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
3848 3952
3953hyperid@^2.0.3:
3954 version "2.1.0"
3955 resolved "https://registry.yarnpkg.com/hyperid/-/hyperid-2.1.0.tgz#2f5ed7537e87e8fddd344710a610be501b3d2da6"
3956 integrity sha512-cSakhxbUsaIuqjfvvcUuvl/Fl342J65xgLLYrYxSSr9qmJ/EJK+S8crS6mIlQd/a7i+Pe4D0MgSrtZPLze+aCw==
3957 dependencies:
3958 uuid "^3.4.0"
3959 uuid-parse "^1.1.0"
3960
3849i18n-locales@^0.0.4: 3961i18n-locales@^0.0.4:
3850 version "0.0.4" 3962 version "0.0.4"
3851 resolved "https://registry.yarnpkg.com/i18n-locales/-/i18n-locales-0.0.4.tgz#95d6505f6563f870f68860c23d35f82bd805cbf5" 3963 resolved "https://registry.yarnpkg.com/i18n-locales/-/i18n-locales-0.0.4.tgz#95d6505f6563f870f68860c23d35f82bd805cbf5"
@@ -4180,6 +4292,11 @@ is-installed-globally@^0.3.1:
4180 global-dirs "^2.0.1" 4292 global-dirs "^2.0.1"
4181 is-path-inside "^3.0.1" 4293 is-path-inside "^3.0.1"
4182 4294
4295is-interactive@^1.0.0:
4296 version "1.0.0"
4297 resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
4298 integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
4299
4183is-nan@^1.3.0: 4300is-nan@^1.3.0:
4184 version "1.3.2" 4301 version "1.3.2"
4185 resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" 4302 resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d"
@@ -4673,7 +4790,7 @@ lodash@4.17.20, lodash@>=4.17.13, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17
4673 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" 4790 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
4674 integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== 4791 integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
4675 4792
4676log-symbols@4.0.0: 4793log-symbols@4.0.0, log-symbols@^4.0.0:
4677 version "4.0.0" 4794 version "4.0.0"
4678 resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" 4795 resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
4679 integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== 4796 integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
@@ -4820,6 +4937,11 @@ make-plural@^6.2.2:
4820 resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-6.2.2.tgz#beb5fd751355e72660eeb2218bb98eec92853c6c" 4937 resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-6.2.2.tgz#beb5fd751355e72660eeb2218bb98eec92853c6c"
4821 integrity sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA== 4938 integrity sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==
4822 4939
4940manage-path@^2.0.0:
4941 version "2.0.0"
4942 resolved "https://registry.yarnpkg.com/manage-path/-/manage-path-2.0.0.tgz#f4cf8457b926eeee2a83b173501414bc76eb9597"
4943 integrity sha1-9M+EV7km7u4qg7FzUBQUvHbrlZc=
4944
4823markdown-it-emoji@^2.0.0: 4945markdown-it-emoji@^2.0.0:
4824 version "2.0.0" 4946 version "2.0.0"
4825 resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-2.0.0.tgz#3164ad4c009efd946e98274f7562ad611089a231" 4947 resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-2.0.0.tgz#3164ad4c009efd946e98274f7562ad611089a231"
@@ -5518,6 +5640,11 @@ on-headers@~1.0.2:
5518 resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" 5640 resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
5519 integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== 5641 integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
5520 5642
5643on-net-listen@^1.1.1:
5644 version "1.1.2"
5645 resolved "https://registry.yarnpkg.com/on-net-listen/-/on-net-listen-1.1.2.tgz#671e55a81c910fa7e5b1e4d506545e9ea0f2e11c"
5646 integrity sha512-y1HRYy8s/RlcBvDUwKXSmkODMdx4KSuIvloCnQYJ2LdBBC1asY4HtfhXwe3UWknLakATZDnbzht2Ijw3M1EqFg==
5647
5521once@^1.3.0, once@^1.3.1, once@^1.4.0: 5648once@^1.3.0, once@^1.3.1, once@^1.4.0:
5522 version "1.4.0" 5649 version "1.4.0"
5523 resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 5650 resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -5566,6 +5693,20 @@ optionator@^0.9.1:
5566 type-check "^0.4.0" 5693 type-check "^0.4.0"
5567 word-wrap "^1.2.3" 5694 word-wrap "^1.2.3"
5568 5695
5696ora@^5.1.0:
5697 version "5.3.0"
5698 resolved "https://registry.yarnpkg.com/ora/-/ora-5.3.0.tgz#fb832899d3a1372fe71c8b2c534bbfe74961bb6f"
5699 integrity sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==
5700 dependencies:
5701 bl "^4.0.3"
5702 chalk "^4.1.0"
5703 cli-cursor "^3.1.0"
5704 cli-spinners "^2.5.0"
5705 is-interactive "^1.0.0"
5706 log-symbols "^4.0.0"
5707 strip-ansi "^6.0.0"
5708 wcwidth "^1.0.1"
5709
5569os-homedir@^1.0.0: 5710os-homedir@^1.0.0:
5570 version "1.0.2" 5711 version "1.0.2"
5571 resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 5712 resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
@@ -5682,7 +5823,7 @@ packet-reader@1.0.0:
5682 resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" 5823 resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74"
5683 integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== 5824 integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==
5684 5825
5685pako@^1.0.5: 5826pako@^1.0.3, pako@^1.0.5:
5686 version "1.0.11" 5827 version "1.0.11"
5687 resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" 5828 resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
5688 integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== 5829 integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
@@ -6020,6 +6161,11 @@ prepend-http@^2.0.0:
6020 resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" 6161 resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
6021 integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= 6162 integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
6022 6163
6164pretty-bytes@^5.4.1:
6165 version "5.5.0"
6166 resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.5.0.tgz#0cecda50a74a941589498011cf23275aa82b339e"
6167 integrity sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==
6168
6023preview-email@^3.0.3: 6169preview-email@^3.0.3:
6024 version "3.0.3" 6170 version "3.0.3"
6025 resolved "https://registry.yarnpkg.com/preview-email/-/preview-email-3.0.3.tgz#1dd9b26c9be313ce59aca17db1de33c54b3676cf" 6171 resolved "https://registry.yarnpkg.com/preview-email/-/preview-email-3.0.3.tgz#1dd9b26c9be313ce59aca17db1de33c54b3676cf"
@@ -6043,7 +6189,7 @@ process@^0.11.10:
6043 resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 6189 resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
6044 integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= 6190 integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
6045 6191
6046progress@^2.0.0: 6192progress@^2.0.0, progress@^2.0.3:
6047 version "2.0.3" 6193 version "2.0.3"
6048 resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 6194 resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
6049 integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 6195 integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
@@ -6484,6 +6630,11 @@ registry-url@^5.0.0:
6484 dependencies: 6630 dependencies:
6485 rc "^1.2.8" 6631 rc "^1.2.8"
6486 6632
6633reinterval@^1.1.0:
6634 version "1.1.0"
6635 resolved "https://registry.yarnpkg.com/reinterval/-/reinterval-1.1.0.tgz#3361ecfa3ca6c18283380dd0bb9546f390f5ece7"
6636 integrity sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc=
6637
6487render-media@^4.1.0: 6638render-media@^4.1.0:
6488 version "4.1.0" 6639 version "4.1.0"
6489 resolved "https://registry.yarnpkg.com/render-media/-/render-media-4.1.0.tgz#9188376822653d7e56c2d789d157c81e74fee0cb" 6640 resolved "https://registry.yarnpkg.com/render-media/-/render-media-4.1.0.tgz#9188376822653d7e56c2d789d157c81e74fee0cb"
@@ -6576,6 +6727,11 @@ restore-cursor@^3.1.0:
6576 onetime "^5.1.0" 6727 onetime "^5.1.0"
6577 signal-exit "^3.0.2" 6728 signal-exit "^3.0.2"
6578 6729
6730retimer@^2.0.0:
6731 version "2.0.0"
6732 resolved "https://registry.yarnpkg.com/retimer/-/retimer-2.0.0.tgz#e8bd68c5e5a8ec2f49ccb5c636db84c04063bbca"
6733 integrity sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==
6734
6579retry-as-promised@^3.2.0: 6735retry-as-promised@^3.2.0:
6580 version "3.2.0" 6736 version "3.2.0"
6581 resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-3.2.0.tgz#769f63d536bec4783549db0777cb56dadd9d8543" 6737 resolved "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-3.2.0.tgz#769f63d536bec4783549db0777cb56dadd9d8543"
@@ -7437,6 +7593,11 @@ timers-ext@^0.1.7:
7437 es5-ext "~0.10.46" 7593 es5-ext "~0.10.46"
7438 next-tick "1" 7594 next-tick "1"
7439 7595
7596timestring@^6.0.0:
7597 version "6.0.0"
7598 resolved "https://registry.yarnpkg.com/timestring/-/timestring-6.0.0.tgz#b0c7c331981ecf2066ce88bcfb8ee3ae32e7a0f6"
7599 integrity sha512-wMctrWD2HZZLuIlchlkE2dfXJh7J2KDI9Dwl+2abPYg0mswQHfOAyQW3jJg1pY5VfttSINZuKcXoB3FGypVklA==
7600
7440timm@^1.6.1: 7601timm@^1.6.1:
7441 version "1.7.1" 7602 version "1.7.1"
7442 resolved "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f" 7603 resolved "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f"
@@ -7868,12 +8029,17 @@ uue@^3.1.0:
7868 escape-string-regexp "~1.0.5" 8029 escape-string-regexp "~1.0.5"
7869 extend "~3.0.0" 8030 extend "~3.0.0"
7870 8031
8032uuid-parse@^1.1.0:
8033 version "1.1.0"
8034 resolved "https://registry.yarnpkg.com/uuid-parse/-/uuid-parse-1.1.0.tgz#7061c5a1384ae0e1f943c538094597e1b5f3a65b"
8035 integrity sha512-OdmXxA8rDsQ7YpNVbKSJkNzTw2I+S5WsbMDnCtIWSQaosNAcWtFuI/YK1TjzUI6nbkgiqEyh8gWngfcv8Asd9A==
8036
7871uuid@8.3.2, uuid@^8.1.0, uuid@^8.3.0, uuid@^8.3.1: 8037uuid@8.3.2, uuid@^8.1.0, uuid@^8.3.0, uuid@^8.3.1:
7872 version "8.3.2" 8038 version "8.3.2"
7873 resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 8039 resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
7874 integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 8040 integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
7875 8041
7876uuid@^3.3.2: 8042uuid@^3.3.2, uuid@^3.4.0:
7877 version "3.4.0" 8043 version "3.4.0"
7878 resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" 8044 resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
7879 integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 8045 integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
@@ -7942,7 +8108,7 @@ void-elements@^3.1.0:
7942 resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" 8108 resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09"
7943 integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= 8109 integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=
7944 8110
7945wcwidth@>=1.0.1: 8111wcwidth@>=1.0.1, wcwidth@^1.0.1:
7946 version "1.0.1" 8112 version "1.0.1"
7947 resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" 8113 resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
7948 integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= 8114 integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=