├── .DS_Store ├── .gitignore ├── README.md ├── api └── index.ts ├── index.html ├── package.json ├── static ├── favicon.svg ├── gh.png ├── logo-dark.svg ├── logo.png └── logo.svg ├── tsconfig.json ├── vercel.json └── yarn.lock /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pveyes/oge/21811d85eda8cbb83ed0f51e18530b76205ae215/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .now 2 | node_modules/ 3 | 4 | .vercel 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # oge 2 | 3 |
4 | 5 |

Page metadata as a service

6 |
7 | 8 | `oge` is a page metadata as a service. It parses and normalizes [Document metadata](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta), [Open Graph](https://ogp.me/), [Twitter Card](https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/markup), and [Linked Data](https://json-ld.org/) from any pages and return easily consumable JSON. 9 | 10 | ## Usage 11 | 12 | ```bash 13 | curl https://oge.vercel.app/api?url=$URL 14 | ``` 15 | 16 | Replace `$URL` with any valid URL. 17 | 18 | ## License 19 | 20 | MIT 21 | -------------------------------------------------------------------------------- /api/index.ts: -------------------------------------------------------------------------------- 1 | import type { VercelRequest, VercelResponse } from '@vercel/node'; 2 | 3 | import got from 'got'; 4 | import cheerio from 'cheerio'; 5 | 6 | type OgeResponse = { 7 | title: string; 8 | description?: string; 9 | keywords?: string[]; 10 | language: string; 11 | image?: string; 12 | createdDate: Date | null; 13 | publishedDate: Date | null; 14 | modifiedDate: Date | null; 15 | author: { 16 | name: string; 17 | url?: string; 18 | } | null; 19 | publication: { 20 | name: string; 21 | url?: string; 22 | } | null; 23 | // raw data 24 | og: Partial<{ 25 | title: string; 26 | description: string; 27 | image: string; 28 | type: string; 29 | url: string; 30 | }>, 31 | twitter: Partial<{ 32 | title: string; 33 | description: string; 34 | card: string; 35 | image: string; 36 | imageAlt: string; 37 | label1: string; 38 | data1: string; 39 | label2: string; 40 | data2: string; 41 | }>, 42 | linkedData: LinkedData | null, 43 | } 44 | 45 | type OrganizationDataGraph = { 46 | '@type': 'Organization'; 47 | name: string; 48 | url: string; 49 | } 50 | 51 | type WebsiteDataGraph = { 52 | '@type': 'WebSite'; 53 | name: string; 54 | url: string; 55 | } 56 | 57 | type ArticleDataGraph = { 58 | '@type': 'Article'; 59 | keywords: string; 60 | } 61 | 62 | type PersonDataGraph = { 63 | '@type': ['Person'] | 'Person'; 64 | name: string; 65 | } 66 | 67 | type LinkedDataGraph = OrganizationDataGraph | WebsiteDataGraph | ArticleDataGraph | PersonDataGraph; 68 | 69 | type LinkedData = Partial<{ 70 | '@context': string; 71 | '@type': string; 72 | image: Array 73 | author: { 74 | '@type': string; 75 | name: string; 76 | url: string; 77 | }; 78 | '@graph': Array 79 | creator: Array; 80 | dateCreated: string; 81 | dateModified: string; 82 | datePublished: string; 83 | description: string; 84 | headline: string; 85 | identifier: string; 86 | keywords: Array; 87 | mainEntityOfPage: string; 88 | name: string; 89 | publisher: { 90 | '@type': string; 91 | name: string; 92 | url: string; 93 | logo: { 94 | '@type': string; 95 | width: number; 96 | height: number; 97 | url: string; 98 | } 99 | } 100 | url: string; 101 | 102 | }> 103 | 104 | export default async function handler(req: VercelRequest, res: VercelResponse) { 105 | const url = req.query.url as string; 106 | 107 | try { 108 | require('url').parse(url); 109 | } catch (err) { 110 | res.status(400); 111 | res.json({ error: 'Invalid URL' }); 112 | return; 113 | } 114 | 115 | let data; 116 | 117 | try { 118 | data = await got(url, { 119 | headers: { 120 | Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 121 | Pragma: 'no-cache', 122 | Referer: 'https://oge.vercel.app/', 123 | 'Cache-Control': 'no-cache', 124 | 'Accept-Language': 'en-US,en;q=0.9', 125 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36 Edg/103.0.1264.37', 126 | }, 127 | followRedirect: true 128 | }); 129 | } catch (err: any) { 130 | const errorMessage = `Cannot fetch ${url}`; 131 | res.status(500); 132 | res.json({ error: errorMessage, originResponse: err }); 133 | return; 134 | } 135 | 136 | const $ = cheerio.load(data.body); 137 | 138 | function getMetaByName(value: string) { 139 | return $(`meta[name="${value}"]`).attr('content'); 140 | } 141 | function getMetaByProperty(value: string) { 142 | return $(`meta[property="${value}"]`).attr('content'); 143 | } 144 | 145 | function getLinkedData(): LinkedData | null { 146 | try { 147 | const jsonString = $('script[type="application/ld+json"]').html()!; 148 | return JSON.parse(jsonString) as LinkedData; 149 | } catch (err) { 150 | return null; 151 | } 152 | } 153 | 154 | const ogTitle = getMetaByProperty('og:title'); 155 | const title = ogTitle ?? $('head title').text(); 156 | const description = getMetaByName('description'); 157 | const language = $('html').attr('lang') ?? 'en'; 158 | const metaKeywords = getMetaByName('keywords'); 159 | 160 | // https://ogp.me/#type_article 161 | const ogPublishedTime = getMetaByProperty('article:published_time'); 162 | const ogModifiedTime = getMetaByProperty('article:modified_time'); 163 | 164 | // https://json-ld.org/ 165 | const linkedData = getLinkedData() 166 | 167 | const ogImage = getMetaByProperty('og:image'); 168 | const twitterImage = getMetaByName('twitter:image'); 169 | const image = ogImage ?? twitterImage ?? linkedData?.image?.[0] ?? $('img').attr('src'); 170 | 171 | function getKeywords(): Array { 172 | if (metaKeywords) { 173 | return metaKeywords 174 | .split(',') 175 | .map(key => key.trim()) 176 | } 177 | 178 | // Medium 179 | if (linkedData?.keywords) { 180 | // cleanup 181 | if (url.includes('medium')) { 182 | return linkedData.keywords 183 | .filter(key => key.includes('Tag:')) 184 | .map(key => key.replace('Tag:', '')) 185 | } 186 | 187 | return linkedData.keywords 188 | } 189 | 190 | // CSS tricks 191 | const Article = linkedData?.["@graph"]?.find(graph => { 192 | return graph['@type'] === 'Article'; 193 | }) as ArticleDataGraph | undefined; 194 | 195 | if (Article?.keywords) { 196 | return Article.keywords.split(',').map(key => key.trim()); 197 | } 198 | 199 | return []; 200 | } 201 | 202 | function getAuthor(): OgeResponse['author'] | null { 203 | // Medium 204 | if (linkedData?.author) { 205 | return { 206 | name: linkedData.author.name, 207 | url: linkedData.author.url, 208 | } 209 | } 210 | 211 | // CSS tricks 212 | const Person = linkedData?.["@graph"]?.find(graph => { 213 | if (Array.isArray(graph['@type'])) { 214 | return graph['@type'][0] === 'Person'; 215 | } 216 | return graph['@type'] === 'Person'; 217 | }) as PersonDataGraph | undefined; 218 | 219 | if (Person?.name) { 220 | return { 221 | name: Person.name, 222 | } 223 | } 224 | 225 | 226 | const twitterCreator = getMetaByName('twitter:creator'); 227 | if (twitterCreator) { 228 | return { 229 | name: twitterCreator, 230 | url: `https://twitter.com/${twitterCreator.slice(1)}`, 231 | } 232 | } 233 | 234 | return null; 235 | } 236 | 237 | function getPublication(): OgeResponse['publication'] | null { 238 | if (linkedData?.publisher) { 239 | return { 240 | name: linkedData.publisher.name, 241 | url: linkedData.publisher.url, 242 | } 243 | } 244 | 245 | // CSS Tricks 246 | const Website = linkedData?.["@graph"]?.find(graph => { 247 | return (graph['@type'] as string)?.toLowerCase() === 'website'; 248 | }) as WebsiteDataGraph | undefined; 249 | 250 | if (Website?.name) { 251 | return { 252 | name: Website.name, 253 | url: Website.url 254 | } 255 | } 256 | 257 | return null; 258 | } 259 | 260 | function getPublishedDate() { 261 | if (ogPublishedTime) { 262 | return new Date(ogPublishedTime); 263 | } 264 | 265 | if (linkedData?.datePublished) { 266 | return new Date(linkedData.datePublished); 267 | } 268 | 269 | return null; 270 | } 271 | 272 | function getModifiedDate() { 273 | if (ogModifiedTime) { 274 | return new Date(ogModifiedTime) 275 | } 276 | 277 | if (linkedData?.dateModified) { 278 | return new Date(linkedData.dateModified) 279 | } 280 | 281 | return null; 282 | } 283 | 284 | function getCreatedDate() { 285 | if (linkedData?.dateCreated) { 286 | return new Date(linkedData.dateCreated); 287 | } 288 | 289 | return null; 290 | } 291 | 292 | const response: OgeResponse = { 293 | title, 294 | description, 295 | keywords: getKeywords(), 296 | language, 297 | createdDate: getCreatedDate(), 298 | publishedDate: getPublishedDate(), 299 | modifiedDate: getModifiedDate(), 300 | image, 301 | author: getAuthor(), 302 | publication: getPublication(), 303 | // raw data 304 | og: { 305 | title: ogTitle, 306 | description: getMetaByProperty('og:description'), 307 | type: getMetaByProperty('og:type'), 308 | url: getMetaByProperty('og:url'), 309 | image: ogImage, 310 | }, 311 | twitter: { 312 | title: getMetaByName('twitter:title'), 313 | description: getMetaByName('twitter:description'), 314 | card: getMetaByName('twitter:card'), 315 | image: twitterImage, 316 | imageAlt: getMetaByName('twitter:image:alt'), 317 | label1: getMetaByName('twitter:label1'), 318 | data1: getMetaByName('twitter:data1'), 319 | label2: getMetaByName('twitter:label2'), 320 | data2: getMetaByName('twitter:data2'), 321 | }, 322 | linkedData, 323 | } 324 | 325 | res.json(response); 326 | } 327 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | oge: Page metadata as a service 8 | 10 | 11 | 12 | 14 | 16 | 17 | 18 | 19 | 20 | 22 | 24 | 25 | 193 | 194 | 195 | 196 |
197 | 198 | 199 | 200 | 201 | 202 |

oge is a page metadata as a service. It parses and normalizes Document metadata, Open Graph, Twitter Card, 206 | and Linked Data from any pages and return easily consumable JSON. You can try 207 | it below:

208 |
209 | 210 |
211 | 212 |
213 | 214 | 215 |
216 |
217 |
218 |
219 |

You can also use your favorite HTTP client:

220 |
curl https://oge.vercel.app/api?url=$URL
221 |
222 |
223 | 293 | 294 | 295 | 296 | 297 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@pveyes/oge", 3 | "private": true, 4 | "version": "1.0.0", 5 | "main": "index.js", 6 | "repository": "git@github.com:pveyes/oge.git", 7 | "author": "Fatih Kalifa ", 8 | "license": "MIT", 9 | "devDependencies": { 10 | "@vercel/node": "^2.4.2", 11 | "@types/cheerio": "^0.22.18", 12 | "typescript": "^4.7.4" 13 | }, 14 | "dependencies": { 15 | "cheerio": "^1.0.0-rc.12", 16 | "got": "^11.0.2" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /static/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /static/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pveyes/oge/21811d85eda8cbb83ed0f51e18530b76205ae215/static/gh.png -------------------------------------------------------------------------------- /static/logo-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Artboard 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pveyes/oge/21811d85eda8cbb83ed0f51e18530b76205ae215/static/logo.png -------------------------------------------------------------------------------- /static/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Artboard 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES5", 4 | "module": "CommonJS", 5 | "strict": true, 6 | "esModuleInterop": true 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "headers": [ 3 | { 4 | "source": "/(.*)", 5 | "headers": [ 6 | { 7 | "key": "Cache-Control", 8 | "value": "public, s-maxage=86400, max-age=60, stale-while-revalidate" 9 | }, 10 | { 11 | "key": "Access-Control-Allow-Origin", 12 | "value": "*" 13 | } 14 | ] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@edge-runtime/format@^1.0.0": 6 | version "1.0.0" 7 | resolved "https://registry.yarnpkg.com/@edge-runtime/format/-/format-1.0.0.tgz#c97183d1c85de3dc384f524f90f8d9ff5b13fdcb" 8 | integrity sha512-mxi0n00nJwnjaXUQIfTS7l64yvwGXs435gEjuDhzTHZyrmnCYdELXdJr3Q+6v4DO1mmmtNTYFHUvIlpCmMUC6g== 9 | 10 | "@edge-runtime/primitives@^1.0.1": 11 | version "1.0.1" 12 | resolved "https://registry.yarnpkg.com/@edge-runtime/primitives/-/primitives-1.0.1.tgz#2bcdb6e37997b17e9f0be473f0644c84ade9b9d2" 13 | integrity sha512-a5rouOhbkLHJZeXQZs5QppI8DwFsAyK7gzCIg6sWVTZnF5WxN0oQ85iEgSIjvQaHPbAAHDJ2WwKwP07CWv8SUA== 14 | 15 | "@edge-runtime/vm@^1.0.1": 16 | version "1.0.1" 17 | resolved "https://registry.yarnpkg.com/@edge-runtime/vm/-/vm-1.0.1.tgz#0285efd9ccc12efbbbd725c70721b39b9812c300" 18 | integrity sha512-kkPeYBCGgeoyBxKdHwRy8zKtpGFS3aviPnDaRKNx/NaWFr/EwG8TTdv9T+VP3JzuFC48me0VF4fnnIEARrI/7Q== 19 | dependencies: 20 | "@edge-runtime/primitives" "^1.0.1" 21 | 22 | "@nodelib/fs.scandir@2.1.5": 23 | version "2.1.5" 24 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 25 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 26 | dependencies: 27 | "@nodelib/fs.stat" "2.0.5" 28 | run-parallel "^1.1.9" 29 | 30 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 31 | version "2.0.5" 32 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 33 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 34 | 35 | "@nodelib/fs.walk@^1.2.3": 36 | version "1.2.8" 37 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 38 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 39 | dependencies: 40 | "@nodelib/fs.scandir" "2.1.5" 41 | fastq "^1.6.0" 42 | 43 | "@sindresorhus/is@^4.0.0": 44 | version "4.6.0" 45 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" 46 | integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== 47 | 48 | "@szmarczak/http-timer@^4.0.5": 49 | version "4.0.6" 50 | resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" 51 | integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== 52 | dependencies: 53 | defer-to-connect "^2.0.0" 54 | 55 | "@ts-morph/common@~0.11.0": 56 | version "0.11.1" 57 | resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.11.1.tgz#281af2a0642b19354d8aa07a0d50dfdb4aa8164e" 58 | integrity sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g== 59 | dependencies: 60 | fast-glob "^3.2.7" 61 | minimatch "^3.0.4" 62 | mkdirp "^1.0.4" 63 | path-browserify "^1.0.1" 64 | 65 | "@types/cacheable-request@^6.0.1": 66 | version "6.0.2" 67 | resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" 68 | integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== 69 | dependencies: 70 | "@types/http-cache-semantics" "*" 71 | "@types/keyv" "*" 72 | "@types/node" "*" 73 | "@types/responselike" "*" 74 | 75 | "@types/cheerio@^0.22.18": 76 | version "0.22.18" 77 | resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.18.tgz#19018dceae691509901e339d63edf1e935978fe6" 78 | integrity sha512-Fq7R3fINAPSdUEhOyjG4iVxgHrOnqDJbY0/BUuiN0pvD/rfmZWekVZnv+vcs8TtpA2XF50uv50LaE4EnpEL/Hw== 79 | dependencies: 80 | "@types/node" "*" 81 | 82 | "@types/http-cache-semantics@*": 83 | version "4.0.0" 84 | resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" 85 | integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== 86 | 87 | "@types/json-schema@^7.0.6": 88 | version "7.0.11" 89 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" 90 | integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== 91 | 92 | "@types/keyv@*": 93 | version "3.1.1" 94 | resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" 95 | integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== 96 | dependencies: 97 | "@types/node" "*" 98 | 99 | "@types/node@*": 100 | version "13.13.2" 101 | resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.2.tgz#160d82623610db590a64e8ca81784e11117e5a54" 102 | integrity sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A== 103 | 104 | "@types/responselike@*", "@types/responselike@^1.0.0": 105 | version "1.0.0" 106 | resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" 107 | integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== 108 | dependencies: 109 | "@types/node" "*" 110 | 111 | "@vercel/build-utils@5.0.1": 112 | version "5.0.1" 113 | resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-5.0.1.tgz#d5e7fe5e11f0320c5aca4d99c23b3c10465e3cdb" 114 | integrity sha512-+fZl9xZiI+7tGTdE7vblizpNfuNMHBzKJBOvNaC9uVqajQosD0KEWLf1hFRVnzHfKYLkbwmW94g4bBZHgkYAeQ== 115 | 116 | "@vercel/node-bridge@3.0.0": 117 | version "3.0.0" 118 | resolved "https://registry.yarnpkg.com/@vercel/node-bridge/-/node-bridge-3.0.0.tgz#443655b74713ec65531726fb5a30c5c528c804bf" 119 | integrity sha512-TNQK6cufwrhd8ASDk5YHHenH8Xhp9sY8xUjOTKnQQI37KLk+Sw2HlHhT5rzUFN23ahosUlkY8InwtYUmSNb9kw== 120 | 121 | "@vercel/node@^2.4.2": 122 | version "2.4.2" 123 | resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.4.2.tgz#5a2b112851db0003e4b0973b33240746077146b0" 124 | integrity sha512-4U1W3TH94KbrA6Wg0ixH7XNk787GuqzhnK1UBLQb/YwcGE0R3TemrndYnZgWsin5Ie1Qt1bjRw2TpLftQhg7pQ== 125 | dependencies: 126 | "@types/node" "*" 127 | "@vercel/build-utils" "5.0.1" 128 | "@vercel/node-bridge" "3.0.0" 129 | "@vercel/static-config" "2.0.1" 130 | edge-runtime "1.0.1" 131 | esbuild "0.14.47" 132 | exit-hook "2.2.1" 133 | node-fetch "2.6.1" 134 | ts-node "8.9.1" 135 | typescript "4.3.4" 136 | 137 | "@vercel/static-config@2.0.1": 138 | version "2.0.1" 139 | resolved "https://registry.yarnpkg.com/@vercel/static-config/-/static-config-2.0.1.tgz#40a04f89669d58ea5d1dd67eb729b5f9e39a2782" 140 | integrity sha512-J3l3H0iE6FC0KHIlkY1Em291uwWmW22QIN8Cb8nLo9P5BW6a3r0kypmk86UGEWhfWxzt4Hnmb+6JEwkVNnv8/Q== 141 | dependencies: 142 | ajv "8.6.3" 143 | json-schema-to-ts "1.6.4" 144 | ts-morph "12.0.0" 145 | 146 | ajv@8.6.3: 147 | version "8.6.3" 148 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" 149 | integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== 150 | dependencies: 151 | fast-deep-equal "^3.1.1" 152 | json-schema-traverse "^1.0.0" 153 | require-from-string "^2.0.2" 154 | uri-js "^4.2.2" 155 | 156 | arg@^4.1.0: 157 | version "4.1.3" 158 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 159 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 160 | 161 | balanced-match@^1.0.0: 162 | version "1.0.2" 163 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 164 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 165 | 166 | boolbase@^1.0.0: 167 | version "1.0.0" 168 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 169 | integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== 170 | 171 | brace-expansion@^1.1.7: 172 | version "1.1.11" 173 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 174 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 175 | dependencies: 176 | balanced-match "^1.0.0" 177 | concat-map "0.0.1" 178 | 179 | braces@^3.0.2: 180 | version "3.0.2" 181 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 182 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 183 | dependencies: 184 | fill-range "^7.0.1" 185 | 186 | buffer-from@^1.0.0: 187 | version "1.1.2" 188 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 189 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 190 | 191 | cacheable-lookup@^5.0.3: 192 | version "5.0.4" 193 | resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" 194 | integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== 195 | 196 | cacheable-request@^7.0.2: 197 | version "7.0.2" 198 | resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" 199 | integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== 200 | dependencies: 201 | clone-response "^1.0.2" 202 | get-stream "^5.1.0" 203 | http-cache-semantics "^4.0.0" 204 | keyv "^4.0.0" 205 | lowercase-keys "^2.0.0" 206 | normalize-url "^6.0.1" 207 | responselike "^2.0.0" 208 | 209 | cheerio-select@^2.1.0: 210 | version "2.1.0" 211 | resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" 212 | integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== 213 | dependencies: 214 | boolbase "^1.0.0" 215 | css-select "^5.1.0" 216 | css-what "^6.1.0" 217 | domelementtype "^2.3.0" 218 | domhandler "^5.0.3" 219 | domutils "^3.0.1" 220 | 221 | cheerio@^1.0.0-rc.12: 222 | version "1.0.0-rc.12" 223 | resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" 224 | integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== 225 | dependencies: 226 | cheerio-select "^2.1.0" 227 | dom-serializer "^2.0.0" 228 | domhandler "^5.0.3" 229 | domutils "^3.0.1" 230 | htmlparser2 "^8.0.1" 231 | parse5 "^7.0.0" 232 | parse5-htmlparser2-tree-adapter "^7.0.0" 233 | 234 | clone-response@^1.0.2: 235 | version "1.0.2" 236 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" 237 | integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= 238 | dependencies: 239 | mimic-response "^1.0.0" 240 | 241 | code-block-writer@^10.1.1: 242 | version "10.1.1" 243 | resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f" 244 | integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw== 245 | 246 | concat-map@0.0.1: 247 | version "0.0.1" 248 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 249 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 250 | 251 | convert-hrtime@^3.0.0: 252 | version "3.0.0" 253 | resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-3.0.0.tgz#62c7593f5809ca10be8da858a6d2f702bcda00aa" 254 | integrity sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA== 255 | 256 | css-select@^5.1.0: 257 | version "5.1.0" 258 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" 259 | integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== 260 | dependencies: 261 | boolbase "^1.0.0" 262 | css-what "^6.1.0" 263 | domhandler "^5.0.2" 264 | domutils "^3.0.1" 265 | nth-check "^2.0.1" 266 | 267 | css-what@^6.1.0: 268 | version "6.1.0" 269 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" 270 | integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== 271 | 272 | decompress-response@^6.0.0: 273 | version "6.0.0" 274 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" 275 | integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== 276 | dependencies: 277 | mimic-response "^3.1.0" 278 | 279 | defer-to-connect@^2.0.0: 280 | version "2.0.1" 281 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" 282 | integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== 283 | 284 | diff@^4.0.1: 285 | version "4.0.2" 286 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 287 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 288 | 289 | dom-serializer@^2.0.0: 290 | version "2.0.0" 291 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" 292 | integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== 293 | dependencies: 294 | domelementtype "^2.3.0" 295 | domhandler "^5.0.2" 296 | entities "^4.2.0" 297 | 298 | domelementtype@^2.3.0: 299 | version "2.3.0" 300 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" 301 | integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== 302 | 303 | domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: 304 | version "5.0.3" 305 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" 306 | integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== 307 | dependencies: 308 | domelementtype "^2.3.0" 309 | 310 | domutils@^3.0.1: 311 | version "3.0.1" 312 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" 313 | integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== 314 | dependencies: 315 | dom-serializer "^2.0.0" 316 | domelementtype "^2.3.0" 317 | domhandler "^5.0.1" 318 | 319 | edge-runtime@1.0.1: 320 | version "1.0.1" 321 | resolved "https://registry.yarnpkg.com/edge-runtime/-/edge-runtime-1.0.1.tgz#d6d7f17a7c575c857dddb262e640a6996e08ef02" 322 | integrity sha512-1/7ZlGy7LUWufVoWPdphYvyOiNFiN1u/hIyWDBeJjoFAKQGjl70A0SdG2cwVd1UhcPlA95ieYly1B4h0/8MPog== 323 | dependencies: 324 | "@edge-runtime/format" "^1.0.0" 325 | "@edge-runtime/vm" "^1.0.1" 326 | exit-hook "2.2.1" 327 | http-status "~1.5.0" 328 | mri "1.2.0" 329 | picocolors "1.0.0" 330 | pretty-bytes "5.6.0" 331 | pretty-ms "7.0.1" 332 | time-span "4.0.0" 333 | 334 | end-of-stream@^1.1.0: 335 | version "1.4.4" 336 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 337 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 338 | dependencies: 339 | once "^1.4.0" 340 | 341 | entities@^4.2.0, entities@^4.3.0: 342 | version "4.3.1" 343 | resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.1.tgz#c34062a94c865c322f9d67b4384e4169bcede6a4" 344 | integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== 345 | 346 | esbuild-android-64@0.14.47: 347 | version "0.14.47" 348 | resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz#ef95b42c67bcf4268c869153fa3ad1466c4cea6b" 349 | integrity sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g== 350 | 351 | esbuild-android-arm64@0.14.47: 352 | version "0.14.47" 353 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz#4ebd7ce9fb250b4695faa3ee46fd3b0754ecd9e6" 354 | integrity sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ== 355 | 356 | esbuild-darwin-64@0.14.47: 357 | version "0.14.47" 358 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz#e0da6c244f497192f951807f003f6a423ed23188" 359 | integrity sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA== 360 | 361 | esbuild-darwin-arm64@0.14.47: 362 | version "0.14.47" 363 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz#cd40fd49a672fca581ed202834239dfe540a9028" 364 | integrity sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw== 365 | 366 | esbuild-freebsd-64@0.14.47: 367 | version "0.14.47" 368 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz#8da6a14c095b29c01fc8087a16cb7906debc2d67" 369 | integrity sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ== 370 | 371 | esbuild-freebsd-arm64@0.14.47: 372 | version "0.14.47" 373 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz#ad31f9c92817ff8f33fd253af7ab5122dc1b83f6" 374 | integrity sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ== 375 | 376 | esbuild-linux-32@0.14.47: 377 | version "0.14.47" 378 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz#de085e4db2e692ea30c71208ccc23fdcf5196c58" 379 | integrity sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw== 380 | 381 | esbuild-linux-64@0.14.47: 382 | version "0.14.47" 383 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz#2a9321bbccb01f01b04cebfcfccbabeba3658ba1" 384 | integrity sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw== 385 | 386 | esbuild-linux-arm64@0.14.47: 387 | version "0.14.47" 388 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz#b9da7b6fc4b0ca7a13363a0c5b7bb927e4bc535a" 389 | integrity sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw== 390 | 391 | esbuild-linux-arm@0.14.47: 392 | version "0.14.47" 393 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz#56fec2a09b9561c337059d4af53625142aded853" 394 | integrity sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA== 395 | 396 | esbuild-linux-mips64le@0.14.47: 397 | version "0.14.47" 398 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz#9db21561f8f22ed79ef2aedb7bbef082b46cf823" 399 | integrity sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg== 400 | 401 | esbuild-linux-ppc64le@0.14.47: 402 | version "0.14.47" 403 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz#dc3a3da321222b11e96e50efafec9d2de408198b" 404 | integrity sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w== 405 | 406 | esbuild-linux-riscv64@0.14.47: 407 | version "0.14.47" 408 | resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz#9bd6dcd3dca6c0357084ecd06e1d2d4bf105335f" 409 | integrity sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g== 410 | 411 | esbuild-linux-s390x@0.14.47: 412 | version "0.14.47" 413 | resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz#a458af939b52f2cd32fc561410d441a51f69d41f" 414 | integrity sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw== 415 | 416 | esbuild-netbsd-64@0.14.47: 417 | version "0.14.47" 418 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz#6388e785d7e7e4420cb01348d7483ab511b16aa8" 419 | integrity sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ== 420 | 421 | esbuild-openbsd-64@0.14.47: 422 | version "0.14.47" 423 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz#309af806db561aa886c445344d1aacab850dbdc5" 424 | integrity sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw== 425 | 426 | esbuild-sunos-64@0.14.47: 427 | version "0.14.47" 428 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz#3f19612dcdb89ba6c65283a7ff6e16f8afbf8aaa" 429 | integrity sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ== 430 | 431 | esbuild-windows-32@0.14.47: 432 | version "0.14.47" 433 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz#a92d279c8458d5dc319abcfeb30aa49e8f2e6f7f" 434 | integrity sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ== 435 | 436 | esbuild-windows-64@0.14.47: 437 | version "0.14.47" 438 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz#2564c3fcf0c23d701edb71af8c52d3be4cec5f8a" 439 | integrity sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ== 440 | 441 | esbuild-windows-arm64@0.14.47: 442 | version "0.14.47" 443 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz#86d9db1a22d83360f726ac5fba41c2f625db6878" 444 | integrity sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ== 445 | 446 | esbuild@0.14.47: 447 | version "0.14.47" 448 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.47.tgz#0d6415f6bd8eb9e73a58f7f9ae04c5276cda0e4d" 449 | integrity sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA== 450 | optionalDependencies: 451 | esbuild-android-64 "0.14.47" 452 | esbuild-android-arm64 "0.14.47" 453 | esbuild-darwin-64 "0.14.47" 454 | esbuild-darwin-arm64 "0.14.47" 455 | esbuild-freebsd-64 "0.14.47" 456 | esbuild-freebsd-arm64 "0.14.47" 457 | esbuild-linux-32 "0.14.47" 458 | esbuild-linux-64 "0.14.47" 459 | esbuild-linux-arm "0.14.47" 460 | esbuild-linux-arm64 "0.14.47" 461 | esbuild-linux-mips64le "0.14.47" 462 | esbuild-linux-ppc64le "0.14.47" 463 | esbuild-linux-riscv64 "0.14.47" 464 | esbuild-linux-s390x "0.14.47" 465 | esbuild-netbsd-64 "0.14.47" 466 | esbuild-openbsd-64 "0.14.47" 467 | esbuild-sunos-64 "0.14.47" 468 | esbuild-windows-32 "0.14.47" 469 | esbuild-windows-64 "0.14.47" 470 | esbuild-windows-arm64 "0.14.47" 471 | 472 | exit-hook@2.2.1: 473 | version "2.2.1" 474 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-2.2.1.tgz#007b2d92c6428eda2b76e7016a34351586934593" 475 | integrity sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw== 476 | 477 | fast-deep-equal@^3.1.1: 478 | version "3.1.3" 479 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 480 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 481 | 482 | fast-glob@^3.2.7: 483 | version "3.2.11" 484 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" 485 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== 486 | dependencies: 487 | "@nodelib/fs.stat" "^2.0.2" 488 | "@nodelib/fs.walk" "^1.2.3" 489 | glob-parent "^5.1.2" 490 | merge2 "^1.3.0" 491 | micromatch "^4.0.4" 492 | 493 | fastq@^1.6.0: 494 | version "1.13.0" 495 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" 496 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 497 | dependencies: 498 | reusify "^1.0.4" 499 | 500 | fill-range@^7.0.1: 501 | version "7.0.1" 502 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 503 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 504 | dependencies: 505 | to-regex-range "^5.0.1" 506 | 507 | get-stream@^5.1.0: 508 | version "5.1.0" 509 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" 510 | integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== 511 | dependencies: 512 | pump "^3.0.0" 513 | 514 | glob-parent@^5.1.2: 515 | version "5.1.2" 516 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 517 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 518 | dependencies: 519 | is-glob "^4.0.1" 520 | 521 | got@^11.0.2: 522 | version "11.8.5" 523 | resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" 524 | integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== 525 | dependencies: 526 | "@sindresorhus/is" "^4.0.0" 527 | "@szmarczak/http-timer" "^4.0.5" 528 | "@types/cacheable-request" "^6.0.1" 529 | "@types/responselike" "^1.0.0" 530 | cacheable-lookup "^5.0.3" 531 | cacheable-request "^7.0.2" 532 | decompress-response "^6.0.0" 533 | http2-wrapper "^1.0.0-beta.5.2" 534 | lowercase-keys "^2.0.0" 535 | p-cancelable "^2.0.0" 536 | responselike "^2.0.0" 537 | 538 | htmlparser2@^8.0.1: 539 | version "8.0.1" 540 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010" 541 | integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA== 542 | dependencies: 543 | domelementtype "^2.3.0" 544 | domhandler "^5.0.2" 545 | domutils "^3.0.1" 546 | entities "^4.3.0" 547 | 548 | http-cache-semantics@^4.0.0: 549 | version "4.1.0" 550 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 551 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 552 | 553 | http-status@~1.5.0: 554 | version "1.5.2" 555 | resolved "https://registry.yarnpkg.com/http-status/-/http-status-1.5.2.tgz#22e6ea67b4b5e2a366f49cb1759dc5479cad2fd6" 556 | integrity sha512-HzxX+/hV/8US1Gq4V6R6PgUmJ5Pt/DGATs4QhdEOpG8LrdS9/3UG2nnOvkqUpRks04yjVtV5p/NODjO+wvf6vg== 557 | 558 | http2-wrapper@^1.0.0-beta.5.2: 559 | version "1.0.3" 560 | resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" 561 | integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== 562 | dependencies: 563 | quick-lru "^5.1.1" 564 | resolve-alpn "^1.0.0" 565 | 566 | is-extglob@^2.1.1: 567 | version "2.1.1" 568 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 569 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 570 | 571 | is-glob@^4.0.1: 572 | version "4.0.3" 573 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 574 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 575 | dependencies: 576 | is-extglob "^2.1.1" 577 | 578 | is-number@^7.0.0: 579 | version "7.0.0" 580 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 581 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 582 | 583 | json-buffer@3.0.1: 584 | version "3.0.1" 585 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" 586 | integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== 587 | 588 | json-schema-to-ts@1.6.4: 589 | version "1.6.4" 590 | resolved "https://registry.yarnpkg.com/json-schema-to-ts/-/json-schema-to-ts-1.6.4.tgz#63e4fe854dff093923be9e8b59b39ee9a7971ba4" 591 | integrity sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA== 592 | dependencies: 593 | "@types/json-schema" "^7.0.6" 594 | ts-toolbelt "^6.15.5" 595 | 596 | json-schema-traverse@^1.0.0: 597 | version "1.0.0" 598 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 599 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 600 | 601 | keyv@^4.0.0: 602 | version "4.0.0" 603 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.0.tgz#2d1dab694926b2d427e4c74804a10850be44c12f" 604 | integrity sha512-U7ioE8AimvRVLfw4LffyOIRhL2xVgmE8T22L6i0BucSnBUyv4w+I7VN/zVZwRKHOI6ZRUcdMdWHQ8KSUvGpEog== 605 | dependencies: 606 | json-buffer "3.0.1" 607 | 608 | lowercase-keys@^2.0.0: 609 | version "2.0.0" 610 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" 611 | integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== 612 | 613 | make-error@^1.1.1: 614 | version "1.3.6" 615 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 616 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 617 | 618 | merge2@^1.3.0: 619 | version "1.4.1" 620 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 621 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 622 | 623 | micromatch@^4.0.4: 624 | version "4.0.5" 625 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 626 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 627 | dependencies: 628 | braces "^3.0.2" 629 | picomatch "^2.3.1" 630 | 631 | mimic-response@^1.0.0: 632 | version "1.0.1" 633 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" 634 | integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== 635 | 636 | mimic-response@^3.1.0: 637 | version "3.1.0" 638 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" 639 | integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== 640 | 641 | minimatch@^3.0.4: 642 | version "3.1.2" 643 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 644 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 645 | dependencies: 646 | brace-expansion "^1.1.7" 647 | 648 | mkdirp@^1.0.4: 649 | version "1.0.4" 650 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" 651 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 652 | 653 | mri@1.2.0: 654 | version "1.2.0" 655 | resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" 656 | integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== 657 | 658 | node-fetch@2.6.1: 659 | version "2.6.1" 660 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" 661 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 662 | 663 | normalize-url@^6.0.1: 664 | version "6.1.0" 665 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" 666 | integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== 667 | 668 | nth-check@^2.0.1: 669 | version "2.1.1" 670 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" 671 | integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== 672 | dependencies: 673 | boolbase "^1.0.0" 674 | 675 | once@^1.3.1, once@^1.4.0: 676 | version "1.4.0" 677 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 678 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 679 | dependencies: 680 | wrappy "1" 681 | 682 | p-cancelable@^2.0.0: 683 | version "2.1.1" 684 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" 685 | integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== 686 | 687 | parse-ms@^2.1.0: 688 | version "2.1.0" 689 | resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" 690 | integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== 691 | 692 | parse5-htmlparser2-tree-adapter@^7.0.0: 693 | version "7.0.0" 694 | resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" 695 | integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== 696 | dependencies: 697 | domhandler "^5.0.2" 698 | parse5 "^7.0.0" 699 | 700 | parse5@^7.0.0: 701 | version "7.0.0" 702 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.0.0.tgz#51f74a5257f5fcc536389e8c2d0b3802e1bfa91a" 703 | integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== 704 | dependencies: 705 | entities "^4.3.0" 706 | 707 | path-browserify@^1.0.1: 708 | version "1.0.1" 709 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" 710 | integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== 711 | 712 | picocolors@1.0.0: 713 | version "1.0.0" 714 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 715 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 716 | 717 | picomatch@^2.3.1: 718 | version "2.3.1" 719 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 720 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 721 | 722 | pretty-bytes@5.6.0: 723 | version "5.6.0" 724 | resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" 725 | integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== 726 | 727 | pretty-ms@7.0.1: 728 | version "7.0.1" 729 | resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" 730 | integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== 731 | dependencies: 732 | parse-ms "^2.1.0" 733 | 734 | pump@^3.0.0: 735 | version "3.0.0" 736 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 737 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 738 | dependencies: 739 | end-of-stream "^1.1.0" 740 | once "^1.3.1" 741 | 742 | punycode@^2.1.0: 743 | version "2.1.1" 744 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 745 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 746 | 747 | queue-microtask@^1.2.2: 748 | version "1.2.3" 749 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 750 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 751 | 752 | quick-lru@^5.1.1: 753 | version "5.1.1" 754 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" 755 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== 756 | 757 | require-from-string@^2.0.2: 758 | version "2.0.2" 759 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 760 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 761 | 762 | resolve-alpn@^1.0.0: 763 | version "1.2.1" 764 | resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" 765 | integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== 766 | 767 | responselike@^2.0.0: 768 | version "2.0.0" 769 | resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" 770 | integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== 771 | dependencies: 772 | lowercase-keys "^2.0.0" 773 | 774 | reusify@^1.0.4: 775 | version "1.0.4" 776 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 777 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 778 | 779 | run-parallel@^1.1.9: 780 | version "1.2.0" 781 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 782 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 783 | dependencies: 784 | queue-microtask "^1.2.2" 785 | 786 | source-map-support@^0.5.17: 787 | version "0.5.21" 788 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 789 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 790 | dependencies: 791 | buffer-from "^1.0.0" 792 | source-map "^0.6.0" 793 | 794 | source-map@^0.6.0: 795 | version "0.6.1" 796 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 797 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 798 | 799 | time-span@4.0.0: 800 | version "4.0.0" 801 | resolved "https://registry.yarnpkg.com/time-span/-/time-span-4.0.0.tgz#fe74cd50a54e7998712f90ddfe47109040c985c4" 802 | integrity sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g== 803 | dependencies: 804 | convert-hrtime "^3.0.0" 805 | 806 | to-regex-range@^5.0.1: 807 | version "5.0.1" 808 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 809 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 810 | dependencies: 811 | is-number "^7.0.0" 812 | 813 | ts-morph@12.0.0: 814 | version "12.0.0" 815 | resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-12.0.0.tgz#a601c3538703755cbfa2d42b62c52df73e9dbbd7" 816 | integrity sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA== 817 | dependencies: 818 | "@ts-morph/common" "~0.11.0" 819 | code-block-writer "^10.1.1" 820 | 821 | ts-node@8.9.1: 822 | version "8.9.1" 823 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.9.1.tgz#2f857f46c47e91dcd28a14e052482eb14cfd65a5" 824 | integrity sha512-yrq6ODsxEFTLz0R3BX2myf0WBCSQh9A+py8PBo1dCzWIOcvisbyH6akNKqDHMgXePF2kir5mm5JXJTH3OUJYOQ== 825 | dependencies: 826 | arg "^4.1.0" 827 | diff "^4.0.1" 828 | make-error "^1.1.1" 829 | source-map-support "^0.5.17" 830 | yn "3.1.1" 831 | 832 | ts-toolbelt@^6.15.5: 833 | version "6.15.5" 834 | resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz#cb3b43ed725cb63644782c64fbcad7d8f28c0a83" 835 | integrity sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A== 836 | 837 | typescript@4.3.4: 838 | version "4.3.4" 839 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc" 840 | integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew== 841 | 842 | typescript@^4.7.4: 843 | version "4.7.4" 844 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" 845 | integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== 846 | 847 | uri-js@^4.2.2: 848 | version "4.4.1" 849 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 850 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 851 | dependencies: 852 | punycode "^2.1.0" 853 | 854 | wrappy@1: 855 | version "1.0.2" 856 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 857 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 858 | 859 | yn@3.1.1: 860 | version "3.1.1" 861 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 862 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 863 | --------------------------------------------------------------------------------