├── .gitignore ├── README.md ├── api ├── fetch-users.ts ├── index.ts ├── svg-output.ts ├── types.ts └── utilities.ts ├── package.json ├── public ├── api-spec.yml ├── api.html ├── favicon.png ├── index.html ├── screenshot.png ├── script.js ├── styles.css └── test.html ├── tsconfig.json ├── vercel.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # dev 2 | .vercel/ 3 | .yarn/ 4 | !.yarn/releases 5 | .vscode/* 6 | !.vscode/launch.json 7 | !.vscode/*.code-snippets 8 | .idea/workspace.xml 9 | .idea/usage.statistics.xml 10 | .idea/shelf 11 | 12 | # deps 13 | node_modules/ 14 | 15 | # env 16 | .env 17 | .env.production 18 | 19 | # logs 20 | logs/ 21 | *.log 22 | npm-debug.log* 23 | yarn-debug.log* 24 | yarn-error.log* 25 | pnpm-debug.log* 26 | lerna-debug.log* 27 | 28 | # misc 29 | .DS_Store 30 | .vercel 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Readme Contribs

2 |

Simple embeddable contributor and sponsor widgets for your GitHub README

3 |

4 | 5 | 🌐 readme-contribs.as93.net

6 | 7 |
8 |

9 | 10 | 11 |
12 | Contents 13 | 14 | - [About](#about) 15 | * [Motivation](#motivation) 16 | - [Usage](#usage) 17 | * [Embedding](#embedding) 18 | * [Base Domain](#base-domain) 19 | * [Embed Contributors](#embed-contributors) 20 | * [Embed Sponsors](#embed-sponsors) 21 | * [Embed Stargazers](#embed-stargazers) 22 | * [Embed Forkers](#embed-forkers) 23 | * [Image Options](#image-options) 24 | - [Deploying your Own](#deploying-your-own) 25 | - [Developing](#developing) 26 | - [Examples](#examples) 27 | - [Web Interface](#web-interface) 28 | - [Attributions](#attributions) 29 | * [Contributors](#contributors) 30 | * [Sponsors](#sponsors) 31 | - [License](#license) 32 | 33 |
34 | 35 | --- 36 | 37 | ## About 38 | 39 | ### Motivation 40 | 41 | It's nice to give credit to contributors and supporters who've helped your project 💞 42 | 43 | But using GitHub Actions to generate these causes your commit history to become unnecessarily cluttered. And existing services to embed contributor widgets aren't very customizable and don't support sponsors or stargazers. 44 | 45 | My aim with this project, is to provide an easy way for you to embed your projects contributors, sponsors, stargazers, etc, and to let you configure the look and feel. You can also easily deploy this project to Vercel, so you'll never need to worry about the managed instance becoming unavailable. [↳ See Examples](#examples) 46 | 47 | --- 48 | 49 | ## Usage 50 | 51 | ### Embedding 52 | To embed the image in your markdown, simply use the endpoint as the image URL.
53 | For example: 54 | 55 | ``` 56 | ![Sponsors](https://readme-contribs.as93.net/sponsors/lissy93) 57 | ``` 58 | 59 | ### Base Domain 60 | The following API routes are to be made from the base domain.
61 | For the public instance, use `https://readme-contribs.as93.net`.
62 | If you're hosting your own instance, update this to your domain.
63 | 64 | ### Embed Contributors 65 | 66 | ``` 67 | /contributors/[user]/[repo] 68 | ``` 69 | 70 | 71 | ### Embed Sponsors 72 | 73 | ``` 74 | /sponsors/[user] 75 | ``` 76 | 77 | 78 | ### Embed Stargazers 79 | 80 | ``` 81 | /stargazers/[user]/[repo] 82 | ``` 83 | 84 | 85 | ### Embed Forkers 86 | 87 | ``` 88 | /sponsors/[user]/[repo] 89 | ``` 90 | 91 | ### Image Options 92 | 93 | You can customize the outputed image, it's appearence and functionality with the following options.
94 | Specify these as query string parameters, appended to the end of your GET request. All values are optional. 95 | 96 | | Parameter | Description | Type | Default Value | 97 | |--------------------|--------------------------------------------------|---------|-------------------------------------| 98 | | `title` | The title to be displayed above the widget | String | `''` (Empty string = no title) | 99 | | `avatarSize` | Minimum size of avatars | Integer | `50` | 100 | | `perRow` | Maximum number of avatars per row | Integer | `8` | 101 | | `shape` | Shape of the avatar images (square, circle, squircle) | Enum | `square` | 102 | | `hideLabel` | If set to true, name labels will not be displayed | Boolean | `false` | 103 | | `fontSize` | Font size for label text | Integer | `12` | 104 | | `fontFamily` | Font family for the text | String | `'Mona Sans', Verdana, sans-serif` | 105 | | `textColor` | Color of the text (as hex code excluding # or color name) | String | `333333` (exclude the `#`) | 106 | | `backgroundColor` | Background color of the widget | String | `transparent` | 107 | | `limit` | Maximum number of items to display | Integer | `100` | 108 | | `outerBorderWidth` | Width of the outer border | Integer | `0` | 109 | | `outerBorderColor` | Color of the outer border | String | `''` (Empty string = no border) | 110 | | `outerBorderRadius`| Radius of the outer border corners | Integer | `0` | 111 | | `margin` | Margin around each avatar | Integer | `20` | 112 | | `textOffset` | Offset for text alignment below avatars | Integer | `20` | 113 | | `svgWidth` | Width of the entire SVG widget | Integer | `500` | 114 | | `svgHeight` | Height of the entire SVG widget | Integer | `500` | 115 | | `dynamic` | If true, won't base64 encode images, faster (iframe usage only) | Boolean | `false` | 116 | | `isResponsive` | If true, makes the widget responsive | Boolean | `false` | 117 | 118 | View the [Swagger Docs](https://readme-contribs.as93.net/api-docs) for more details. 119 | 120 | --- 121 | 122 | ## Deploying your Own 123 | 124 | If you plan to use this at any kind of scale, it is highly reccomended to deploy your own instance. 125 | 126 | Don't worry, it's super quick, easy and free! 127 | 128 | 1. Fork this repository (by clicking [here](https://github.com/Lissy93/readme-contribs/fork)) 129 | 2. Login / Sign up to [Vercel](https://vercel.com/login) 130 | 3. Create a new app, and select your newly forked repo 131 | 4. Create a GitHub API token [here](https://github.com/settings/tokens?type=beta) 132 | 5. Add the `GITHUB_TOKEN` environmental variable into Vercel 133 | 6. Hit deploy! 134 | 135 | --- 136 | 137 | ## Developing 138 | 139 | You can run readme-contribs locally, to make and preview any changes 140 | 141 | 1. Get the code: `git clone git@github.com:Lissy93/readme-contribs.git` 142 | 2. Navigate into the directory: `cd readme-contribs` 143 | 3. Install dependencies: `yarn` (or `npn install`) 144 | 4. Start the development server: `yarn start` 145 | 5. Then open the running app at `localhost:3000` 146 | 147 | Don't forget to add your token in the `GITHUB_TOKEN` environmental variable (or put it in `.env`) 148 | 149 | --- 150 | 151 | ## Examples 152 | 153 |
Example 1 154 | 155 | ![Rust Lang Contributors](https://readme-contribs.as93.net/contributors/rust-lang/rust?hideLabel=true&margin=2&textOffset=0&perRow=10&title=Rust%20Lang%20Top%20Contributors&footerText=none) 156 |
157 | 158 |
Example 2 159 | 160 | ![Dashy Contributors](https://readme-contribs.as93.net/contributors/lissy93/dashy?shape=squircle&perRow=10&title=Lissy93%2FDashy%27s%20Top%20Contributors&textColor=black&backgroundColor=00d1b2&margin=6&hideLabel=true&textOffset=2&footerText=none) 161 |
162 | 163 |
Example 3 164 | 165 | ![AdGuardian Forkers](http://readme-contribs.as93.net/forkers/Lissy93/AdGuardian-Term?title=AdGuardian%20Forkers&textColor=bfbfbf&outerBorderWidth=2&outerBorderRadius=5&footerText=none) 166 |
167 | 168 |
Example 4 169 | 170 | ![Lissy93 Sponsors](https://readme-contribs.as93.net/sponsors/lissy93?shape=squircle&margin=16&textOffset=8&perRow=6&title=@Lissy93%27s%20Sponsors&textColor=white&&backgroundColor=black&fontFamily=Courier%20New&fontSize=8&footerText=none) 171 |
172 | 173 |
Example 5 174 | 175 | ![Web Check Stargazers](https://readme-contribs.as93.net/stargazers/lissy93/web-check?shape=square&margin=16&perRow=15&title=Web-Checks%20Stargazers&textColor=9fef00&backgroundColor=101215&fontFamily=cursive&fontSize=14&limit=90&footerText=none) 176 |
177 | 178 |
Example 6 179 | 180 | ![Hot Dog Stand lolz](https://readme-contribs.as93.net/stargazers/steverichey/hot-dog-stand?backgroundColor=red&textColor=yellow&outerBorderWidth=5&outerBorderRadius=8fontFamily=Comic%20Sans&fontSize=12&avatarSize=64&perRow=4&title=SteveRichey/Hot-Dog-Stand&footerText=none&shape=circle) 181 |
182 | 183 | --- 184 | 185 | ## Web Interface 186 | If you're finding constructing the URL, and previewing the different options tricky, you can use our web interface to build your embedable card. 187 | 188 | Visit [readme-contribs.as93.net](https://readme-contribs.as93.net/) to get started. 189 | 190 |

191 | 192 | --- 193 | 194 | ## Attributions 195 | 196 | ### Contributors 197 | 198 | ![Contributors](https://readme-contribs.as93.net/contributors/lissy93/readme-contribs) 199 | 200 | ### Sponsors 201 | 202 | ![Sponsors](https://readme-contribs.as93.net/sponsors/lissy93) 203 | 204 | --- 205 | 206 | ## License 207 | 208 | > _**[Lissy93/README-Contribs](https://github.com/Lissy93/readme-contribs)** is licensed under [MIT](https://github.com/Lissy93/readme-contribs/blob/HEAD/LICENSE) © [Alicia Sykes](https://aliciasykes.com) 2024._
209 | > For information, see TLDR Legal > MIT 210 | 211 |
212 | Expand License 213 | 214 | ``` 215 | The MIT License (MIT) 216 | Copyright (c) Alicia Sykes 217 | 218 | Permission is hereby granted, free of charge, to any person obtaining a copy 219 | of this software and associated documentation files (the "Software"), to deal 220 | in the Software without restriction, including without limitation the rights 221 | to use, copy, modify, merge, publish, distribute, sub-license, and/or sell 222 | copies of the Software, and to permit persons to whom the Software is furnished 223 | to do so, subject to the following conditions: 224 | 225 | The above copyright notice and this permission notice shall be included install 226 | copies or substantial portions of the Software. 227 | 228 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 229 | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANT ABILITY, FITNESS FOR A 230 | PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 231 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 232 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 233 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 234 | ``` 235 | 236 |
237 | 238 | 239 |

240 | © Alicia Sykes 2024
241 | Licensed under MIT
242 |
243 | Thanks for visiting :) 244 |

245 | 246 | 247 | 259 | 260 | -------------------------------------------------------------------------------- /api/fetch-users.ts: -------------------------------------------------------------------------------- 1 | import type { User } from './types' 2 | 3 | export const fetchContributors = async (owner: string, repo: string, limit: number = 100): Promise => { 4 | const headers: { Authorization?: string; } = {}; 5 | 6 | if (process.env.GITHUB_TOKEN) { 7 | headers['Authorization'] = `token ${process.env.GITHUB_TOKEN}`; 8 | } 9 | 10 | const apiBase = 'https://api.github.com'; 11 | const endpoint = `${apiBase}/repos/${owner}/${repo}/contributors?per_page=${limit}`; 12 | 13 | const response = await fetch(endpoint, { headers: headers }); 14 | 15 | if (!response.ok) { 16 | throw new Error(`GitHub API returned a ${response.status} ${response.statusText || 'Unknown Error'}`); 17 | } 18 | 19 | return (await response.json()).map((user: any) => ({ 20 | login: user.login, 21 | name: user.name, 22 | avatarUrl: user.avatar_url 23 | })); 24 | } 25 | 26 | export const fetchStargazers = async (owner: string, repo: string, limit: number = 100): Promise => { 27 | const headers: { Authorization?: string; } = {}; 28 | 29 | if (process.env.GITHUB_TOKEN) { 30 | headers['Authorization'] = `token ${process.env.GITHUB_TOKEN}`; 31 | } 32 | 33 | const apiBase = 'https://api.github.com'; 34 | const endpoint = `${apiBase}/repos/${owner}/${repo}/stargazers?per_page=${limit}`; 35 | 36 | try { 37 | const response = await fetch(endpoint, { headers }); 38 | if (!response.ok) { 39 | throw new Error(`GitHub API returned a ${response.status} ${response.statusText || 'Unknown Error'}`); 40 | } 41 | 42 | const stargazers = await response.json(); 43 | return stargazers.map((user: any) => ({ 44 | login: user.login, 45 | name: user.name || "", 46 | avatarUrl: user.avatar_url 47 | })); 48 | } catch (error) { 49 | console.error(`Error fetching stargazers: ${error}`); 50 | throw error; 51 | } 52 | } 53 | 54 | /** 55 | * Fetches forkers of a specific repository. 56 | * @param owner The username of the repository owner. 57 | * @param repo The repository name. 58 | * @param limit The maximum number of forkers to fetch (up to 100). 59 | * @returns An array of User objects representing the users who have forked the repository. 60 | */ 61 | export const fetchForkers = async (owner: string, repo: string, limit: number = 100): Promise => { 62 | const headers: { Authorization?: string; } = {}; 63 | 64 | // Use a GitHub token if available for higher rate limits and access to private repos 65 | if (process.env.GITHUB_TOKEN) { 66 | headers['Authorization'] = `token ${process.env.GITHUB_TOKEN}`; 67 | } 68 | 69 | const apiBase = 'https://api.github.com'; 70 | const endpoint = `${apiBase}/repos/${owner}/${repo}/forks?per_page=${limit}`; 71 | 72 | const response = await fetch(endpoint, { headers }); 73 | 74 | if (!response.ok) { 75 | throw new Error(`GitHub API returned a ${response.status} ${response.statusText || 'Unknown Error'}`); 76 | } 77 | 78 | const forks = await response.json(); 79 | return forks.map((fork: any) => ({ 80 | login: fork.owner.login, 81 | name: fork.owner.login, 82 | avatarUrl: fork.owner.avatar_url 83 | })); 84 | } 85 | 86 | 87 | 88 | const fallbackFetchSponsors = async (author: string): Promise => { 89 | const response = await fetch(`https://github-sponsors.as93.workers.dev/${author}`) 90 | if (!response.ok) { 91 | throw new Error(`GitHub API returned a ${response.status} ${response.statusText || 'Unknown Error'}`); 92 | } 93 | return await response.json() 94 | } 95 | 96 | export const fetchSponsors = async (username: string): Promise => { 97 | if (!process.env.GITHUB_TOKEN) { 98 | return fallbackFetchSponsors(username); 99 | } 100 | 101 | const query = ` 102 | query { 103 | user(login: "${username}") { 104 | sponsorshipsAsMaintainer(first: 100) { 105 | edges { 106 | node { 107 | sponsorEntity { 108 | ... on User { 109 | login 110 | name 111 | avatarUrl: avatarUrl(size: 100) 112 | } 113 | ... on Organization { 114 | login 115 | name 116 | avatarUrl: avatarUrl(size: 100) 117 | } 118 | } 119 | } 120 | } 121 | } 122 | } 123 | } 124 | `; 125 | 126 | const headers = { 127 | 'Authorization': `bearer ${process.env.GITHUB_TOKEN}`, 128 | 'Content-Type': 'application/json', 129 | 'User-Agent': 'GitHub GraphQL API' 130 | }; 131 | 132 | try { 133 | const response = await fetch('https://api.github.com/graphql', { 134 | method: 'POST', 135 | headers: headers, 136 | body: JSON.stringify({ query }) 137 | }); 138 | 139 | // If request failed, try using my REST API as a fallback 140 | if (!response.ok) { 141 | try { 142 | return fallbackFetchSponsors(username) 143 | } catch (fallbackError) { 144 | throw new Error( 145 | `Failed to fetch GitHub data with status ${response.status}; ` 146 | + `Fallback also failed with ${fallbackError}` 147 | ); 148 | } 149 | } 150 | 151 | const data = await response.json(); 152 | if (!data.data.user) { 153 | throw new Error(`User ${username} not found or has no sponsors`); 154 | } 155 | return data.data.user.sponsorshipsAsMaintainer.edges.map((edge: { node: { sponsorEntity: any; }; }) => { 156 | const entity = edge.node.sponsorEntity; 157 | return { 158 | login: entity.login || null, 159 | name: entity.name, 160 | avatarUrl: entity.avatarUrl 161 | }; 162 | }); 163 | } catch (error) { 164 | throw new Error(`Failed to fetch sponsors: ${error};`); 165 | } 166 | }; 167 | -------------------------------------------------------------------------------- /api/index.ts: -------------------------------------------------------------------------------- 1 | import { Hono } from 'hono' 2 | import { handle } from 'hono/vercel' 3 | 4 | import { fetchContributors, fetchSponsors, fetchStargazers, fetchForkers } from './fetch-users' 5 | import { createUserSVG, createErrorSVG } from './svg-output' 6 | import { parseUrlOptions, returnSvg } from './utilities' 7 | 8 | export const config = { 9 | runtime: 'edge' 10 | } 11 | 12 | const app = new Hono().basePath('/') 13 | 14 | app.get('/', (c) => { 15 | return c.text( 16 | 'Welcome to the readme-contribs API!\n\n' 17 | + 'This service will generate an SVG badge with the avatars of GitHub contributors or sponsors.\n' 18 | + 'Just make a request to `/contributors/:owner/:repo` or `/sponsors/:author`\n\n' 19 | + 'Example usage (paste this in your README.md)\n' 20 | + '\t![Sponsors](https://readme-contribs.as93.net/sponsors/lissy93)\n' 21 | + '\t![Contributors](https://readme-contribs.as93.net/contributors/lissy93/dashy)\n\n' 22 | + 'For full usage docs, deployment guide, contributing and bug reports, see: https://github.com/lissy93/readme-contribs' 23 | ) 24 | }) 25 | 26 | app.get('/sponsors/:author', async (c) => { 27 | const author = c.req.param('author') 28 | const options = parseUrlOptions(c.req.query()) 29 | 30 | return fetchSponsors(author).then(async (sponsors) => { 31 | const svg = await createUserSVG(sponsors, options) 32 | c.res.headers.set('Content-Type', 'image/svg+xml') 33 | return c.body(svg) 34 | }) 35 | .catch((error) => { 36 | console.log(error); 37 | return returnSvg(c, createErrorSVG(error, options), 500) 38 | }); 39 | }) 40 | 41 | app.get('/contributors/:owner/:repo', async (c) => { 42 | const owner = c.req.param('owner'); 43 | const repo = c.req.param('repo'); 44 | const options = parseUrlOptions(c.req.query()); 45 | 46 | return fetchContributors(owner, repo, options.limit).then(async (contributors) => { 47 | const svg = await createUserSVG(contributors, options); 48 | c.res.headers.set('Content-Type', 'image/svg+xml'); 49 | return c.body(svg); 50 | }).catch((error) => { 51 | console.log(error); 52 | return returnSvg(c, createErrorSVG(error, options), 500) 53 | }); 54 | }); 55 | 56 | app.get('/stargazers/:owner/:repo', async (c) => { 57 | const owner = c.req.param('owner'); 58 | const repo = c.req.param('repo'); 59 | const options = parseUrlOptions(c.req.query()); 60 | 61 | return fetchStargazers(owner, repo, options.limit).then(async (contributors) => { 62 | const svg = await createUserSVG(contributors, options); 63 | c.res.headers.set('Content-Type', 'image/svg+xml'); 64 | return c.body(svg); 65 | }).catch((error) => { 66 | console.log(error); 67 | return returnSvg(c, createErrorSVG(error, options), 500) 68 | }); 69 | }); 70 | 71 | app.get('/forkers/:owner/:repo', async (c) => { 72 | const owner = c.req.param('owner'); 73 | const repo = c.req.param('repo'); 74 | const options = parseUrlOptions(c.req.query()); 75 | 76 | return fetchForkers(owner, repo, options.limit).then(async (contributors) => { 77 | const svg = await createUserSVG(contributors, options); 78 | c.res.headers.set('Content-Type', 'image/svg+xml'); 79 | return c.body(svg); 80 | }).catch((error) => { 81 | console.log(error); 82 | return returnSvg(c, createErrorSVG(error, options), 500) 83 | }); 84 | }); 85 | 86 | export default handle(app) 87 | -------------------------------------------------------------------------------- /api/svg-output.ts: -------------------------------------------------------------------------------- 1 | import type { User, SvgOptions } from './types' 2 | 3 | 4 | /** 5 | * Returns an SVG to display an error message 6 | */ 7 | export const createErrorSVG = (message: string, options: SvgOptions) => { 8 | const { fontSize, backgroundColor, fontFamily } = options; 9 | return ` 10 | 11 | 12 | 21 | ${message} 22 | 23 | 24 | `; 25 | }; 26 | 27 | 28 | // Utility function to handle concurrency 29 | async function processWithConcurrency(items: T[], worker: (item: T) => Promise, concurrency: number): Promise { 30 | const results: U[] = new Array(items.length); 31 | const executing = new Set>(); 32 | 33 | const executeTask = async (item: T, index: number) => { 34 | try { 35 | results[index] = await worker(item); 36 | } catch (error) { 37 | console.error(`Error processing item at index ${index}: ${error}`); 38 | results[index] = null as any; 39 | } finally { 40 | executing.delete(executingPromises.get(item)!); 41 | } 42 | }; 43 | 44 | const executingPromises = new Map>(); 45 | for (let i = 0; i < items.length; i++) { 46 | const task = executeTask(items[i], i); 47 | executingPromises.set(items[i], task); 48 | executing.add(task); 49 | 50 | if (executing.size >= concurrency) { 51 | await Promise.race(executing); 52 | } 53 | } 54 | 55 | await Promise.all(executing); 56 | return results; 57 | } 58 | 59 | const escapeXml = (str: string): string => { 60 | if (!str) return 'Unknown'; 61 | return str.replace(/&/g, '&') 62 | .replace(//g, '>') 64 | .replace(/"/g, '"') 65 | .replace(/'/g, '''); 66 | }; 67 | 68 | const parseColor = (color: string, hasTransparency: boolean = false): string => { 69 | if (!color) return 'transparent'; 70 | const alpha = hasTransparency ? '80' : ''; 71 | return color.match(/^#?[0-9A-Fa-f]{6}$/) ? `#${color}${alpha}` : color; 72 | } 73 | 74 | async function fetchAndEncodeImage(url: string): Promise { 75 | const fetchUrl = `${url}&size=50`; 76 | try { 77 | const response = await fetch(fetchUrl); 78 | if (!response.ok) throw new Error(`Failed to fetch the image from ${url}: ${response.statusText}`); 79 | const arrayBuffer = await response.arrayBuffer(); 80 | const base64 = btoa(String.fromCharCode(...new Uint8Array(arrayBuffer))); 81 | const mimeType = response.headers.get('content-type') || 'image/png'; 82 | return `data:${mimeType};base64,${base64}`; 83 | } catch (error) { 84 | console.error(`Error fetching image: ${error}`); 85 | return ''; 86 | } 87 | } 88 | 89 | export const createUserSVG = async (users: User[], options: SvgOptions): Promise => { 90 | const { 91 | title, avatarSize, perRow, shape, hideLabel, fontSize, textColor, 92 | backgroundColor, fontFamily, margin, textOffset, limit, dynamic, isResponsive, 93 | outerBorderWidth, outerBorderColor, outerBorderRadius, footerText: customFooterText, 94 | svgWidth: customSvgWidth, svgHeight: customSvgHeight 95 | } = options; 96 | 97 | const maxTextWidth = avatarSize; 98 | const rowHeight = avatarSize + textOffset + margin; 99 | const pathRounding = shape === 'circle' ? '50%' : (shape === 'squircle' ? '25%' : '0%'); 100 | const titleFontSize = fontSize * 2; 101 | const titleHeight = title ? fontSize * 3 : 0; 102 | const numberToDisplay = Math.min(limit, users.length); 103 | const footerText = customFooterText || process.env.FOOTER_TEXT || ''; 104 | 105 | const totalRows = Math.ceil(numberToDisplay / perRow); 106 | const svgHeight = customSvgHeight || (totalRows * rowHeight + margin + titleHeight); 107 | const svgWidth = customSvgWidth || (perRow * (avatarSize + margin) + margin); 108 | const viewBox = `0 0 ${svgWidth} ${svgHeight}`; 109 | 110 | // Controlled concurrency for image fetching 111 | const encodedImages = dynamic ? [] : await processWithConcurrency( 112 | users.slice(0, numberToDisplay).map((user: User) => user.avatarUrl), 113 | fetchAndEncodeImage, 114 | 5 // concurrency level 115 | ); 116 | 117 | let svgContent = users.map((user, index) => { 118 | if (index >= numberToDisplay) return ""; 119 | const x = margin + (index % perRow) * (avatarSize + margin); 120 | const y = margin + Math.floor(index / perRow) * rowHeight + titleHeight; 121 | const profileUrl = `https://github.com/${user.login}`; 122 | const imageSrc = encodedImages[index]; 123 | let displayName = escapeXml(user.name || user.login || 'Unknown'); 124 | const escapedAvatarUrl = escapeXml(user.avatarUrl); 125 | 126 | const characterWidthEstimate = fontSize * 0.4; 127 | const maxCharacters = Math.floor(maxTextWidth / characterWidthEstimate); 128 | if (displayName.length > maxCharacters) { 129 | displayName = displayName.substring(0, maxCharacters - 2) + '…'; 130 | } 131 | 132 | const text = hideLabel ? '' : ` 133 | 140 | ${displayName} 141 | 142 | `; 143 | 144 | return ` 145 | 146 | 155 | ${text} 156 | 157 | `; 158 | }).join(''); 159 | 160 | const titleSvg = title ? ` 161 | 170 | ${escapeXml(title)} 171 | 172 | ` : ''; 173 | 174 | const footerTextSvg = (footerText && footerText !== 'none') ? ` 175 | 180 | ${escapeXml(footerText)} 181 | 182 | ` : ''; 183 | 184 | return ` 185 | 192 | 198 | ${title ? titleSvg : ''} 199 | ${svgContent} 200 | ${footerTextSvg} 201 | 202 | `; 203 | }; 204 | 205 | -------------------------------------------------------------------------------- /api/types.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface User { 3 | login: string 4 | name: string 5 | avatarUrl: string 6 | } 7 | 8 | export type Shape = 'square' | 'squircle' | 'circle'; 9 | 10 | export interface SvgOptions { 11 | title: string; 12 | avatarSize: number; 13 | perRow: number; 14 | shape: Shape; 15 | hideLabel: boolean; 16 | fontSize: number; 17 | fontFamily: string; 18 | textColor: string; 19 | backgroundColor: string; 20 | limit: number; 21 | outerBorderWidth: number; 22 | outerBorderColor: string; 23 | outerBorderRadius: number; 24 | margin: number; 25 | textOffset: number; 26 | svgWidth: number; 27 | svgHeight: number; 28 | footerText: string; 29 | dynamic?: boolean; 30 | isResponsive?: boolean; 31 | } 32 | -------------------------------------------------------------------------------- /api/utilities.ts: -------------------------------------------------------------------------------- 1 | import type { Context } from 'hono' 2 | import type { StatusCode } from 'hono/utils/http-status'; 3 | 4 | import type { Shape, SvgOptions } from './types' 5 | 6 | /** 7 | * Get options for the output SVG, from the user's query parameters, or use defaults. 8 | */ 9 | export const parseUrlOptions = (query: Record): SvgOptions => { 10 | return { 11 | title: query.title || '', 12 | avatarSize: Math.max(30, parseInt(query.avatarSize || '50')), 13 | perRow: Math.max(1, parseInt(query.perRow || '8')), 14 | shape: query.shape as Shape || 'square', 15 | hideLabel: query.hideLabel === 'true', 16 | fontSize: Math.max(10, parseInt(query.fontSize || '12')), 17 | fontFamily: query.fontFamily || '\'Mona Sans\', \'Open Sans\', Verdana, Arial, sans-serif', 18 | textColor: query.textColor || '333333', 19 | backgroundColor: query.backgroundColor || 'transparent', 20 | limit: parseInt(query.limit || '100'), 21 | outerBorderWidth: parseInt(query.outerBorderWidth || '0'), 22 | outerBorderColor: query.outerBorderColor || '', 23 | outerBorderRadius: parseInt(query.outerBorderRadius || '0'), 24 | margin: parseInt(query.margin || '20'), 25 | textOffset: parseInt(query.textOffset || '20'), 26 | svgWidth: parseInt(query.svgWidth || ''), 27 | svgHeight: parseInt(query.svgHeight || ''), 28 | footerText: query.footerText || '', 29 | dynamic: query.dynamic === 'true', 30 | isResponsive: query.isResponsive === 'true', 31 | }; 32 | }; 33 | 34 | 35 | /** 36 | * Sets headers and returns an SVG response 37 | */ 38 | export const returnSvg = (c: Context, svg: string, statusCode: StatusCode = 200) => { 39 | c.res.headers.set('Content-Type', 'image/svg+xml'); 40 | return c.body(svg, statusCode); 41 | }; 42 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "readme-contribs", 3 | "scripts": { 4 | "start": "vercel dev", 5 | "deploy": "vercel" 6 | }, 7 | "dependencies": { 8 | "hono": "^4.4.7" 9 | }, 10 | "devDependencies": { 11 | "vercel": "^32.4.1" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /public/api-spec.yml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.0 2 | info: 3 | title: Readme-Contribs API 4 | description: > 5 | Embeddable contributor, sponsor, stargazer, and forker widgets for GitHub READMEs. 6 |
7 |
8 | **Built By** 9 |
10 | ![Contributors](https://readme-contribs.as93.net/contributors/lissy93/readme-contribs) 11 |
12 | **Stargazers** 13 |
14 | ![Contributors](https://readme-contribs.as93.net/stargazers/lissy93/readme-contribs?hideLabel=true&margin=2&textOffset=0&avatarSize=20) 15 | version: "1.0.0" 16 | license: 17 | name: 'License: MIT' 18 | url: https://github.com/Lissy93/readme-contribs/blob/main/LICENSE 19 | externalDocs: 20 | description: 'Source: GitHub' 21 | url: https://github.com/Lissy93/readme-contribs 22 | 23 | 24 | servers: 25 | - url: https://readme-contribs.as93.net 26 | description: Public API Server 27 | paths: 28 | /contributors/{user}/{repo}: 29 | get: 30 | summary: Embed contributors widget 31 | description: Retrieves an SVG image displaying contributors of a specified repository. 32 | parameters: 33 | - in: path 34 | name: user 35 | required: true 36 | schema: 37 | type: string 38 | description: GitHub username of the repository owner. 39 | - in: path 40 | name: repo 41 | required: true 42 | schema: 43 | type: string 44 | description: GitHub repository name. 45 | - $ref: '#/components/parameters/ImageOptions' 46 | responses: 47 | 200: 48 | description: SVG image of contributors. 49 | content: 50 | image/svg+xml: 51 | schema: 52 | type: string 53 | format: binary 54 | 404: 55 | description: Resource not found. 56 | 57 | /sponsors/{user}: 58 | get: 59 | summary: Embed sponsors widget 60 | description: Retrieves an SVG image displaying sponsors of a specified user. 61 | parameters: 62 | - in: path 63 | name: user 64 | required: true 65 | schema: 66 | type: string 67 | description: GitHub username of the user. 68 | - $ref: '#/components/parameters/ImageOptions' 69 | responses: 70 | 200: 71 | description: SVG image of sponsors. 72 | content: 73 | image/svg+xml: 74 | schema: 75 | type: string 76 | format: binary 77 | 404: 78 | description: Resource not found. 79 | 80 | /stargazers/{user}/{repo}: 81 | get: 82 | summary: Embed stargazers widget 83 | description: Retrieves an SVG image displaying stargazers of a specified repository. 84 | parameters: 85 | - in: path 86 | name: user 87 | required: true 88 | schema: 89 | type: string 90 | description: GitHub username of the repository owner. 91 | - in: path 92 | name: repo 93 | required: true 94 | schema: 95 | type: string 96 | description: GitHub repository name. 97 | - $ref: '#/components/parameters/ImageOptions' 98 | responses: 99 | 200: 100 | description: SVG image of stargazers. 101 | content: 102 | image/svg+xml: 103 | schema: 104 | type: string 105 | format: binary 106 | 404: 107 | description: Resource not found. 108 | 109 | /forkers/{user}/{repo}: 110 | get: 111 | summary: Embed forkers widget 112 | description: Retrieves an SVG image displaying forkers of a specified repository. 113 | parameters: 114 | - in: path 115 | name: user 116 | required: true 117 | schema: 118 | type: string 119 | description: GitHub username of the repository owner. 120 | - in: path 121 | name: repo 122 | required: true 123 | schema: 124 | type: string 125 | description: GitHub repository name. 126 | - $ref: '#/components/parameters/ImageOptions' 127 | responses: 128 | 200: 129 | description: SVG image of forkers. 130 | content: 131 | image/svg+xml: 132 | schema: 133 | type: string 134 | format: binary 135 | 404: 136 | description: Resource not found. 137 | 138 | components: 139 | parameters: 140 | ImageOptions: 141 | name: options 142 | in: query 143 | required: false 144 | schema: 145 | type: object 146 | properties: 147 | title: 148 | type: string 149 | avatarSize: 150 | type: integer 151 | perRow: 152 | type: integer 153 | shape: 154 | type: string 155 | enum: [square, circle, squircle] 156 | hideLabel: 157 | type: boolean 158 | fontSize: 159 | type: integer 160 | fontFamily: 161 | type: string 162 | textColor: 163 | type: string 164 | backgroundColor: 165 | type: string 166 | limit: 167 | type: integer 168 | outerBorderWidth: 169 | type: integer 170 | outerBorderColor: 171 | type: string 172 | outerBorderRadius: 173 | type: integer 174 | margin: 175 | type: integer 176 | textOffset: 177 | type: integer 178 | svgWidth: 179 | type: integer 180 | svgHeight: 181 | type: integer 182 | dynamic: 183 | type: boolean 184 | isResponsive: 185 | type: boolean 186 | 187 | -------------------------------------------------------------------------------- /public/api.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | API Docs | Readme-Contrib 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lissy93/readme-contribs/82cab8a898f482b8b4e456992e55b0f5f11e469b/public/favicon.png -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Readme-Contrib 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 |
44 |
45 |

Readme Contribs

46 |

Give credit to your supporters

47 | Simple embeddable contributor and sponsor widgets for your GitHub README 48 |
49 | 50 | 54 | 55 |
56 | 59 |
60 |
61 | 62 |
63 |
64 | 86 |
87 | 88 |
89 |
90 | 91 |
92 | 93 |
94 |
95 | 96 |
97 | 98 |
99 | 100 |
101 |
102 | 103 |
104 | 112 |
113 | 114 |

Don't forget to complete the required fields!

115 | 116 |
117 |
118 | 122 |
123 |
124 | 128 |
129 |
130 |
131 |
132 | 133 |
134 |
135 | 136 |
137 |

138 |         
139 |           
140 |           Copy
141 |         
142 |       
143 | 144 | 145 |
146 | Format 147 | 167 |
168 |
169 |
170 | 171 |
172 |

Preview

173 |
174 |

Building your Badge

175 | 15% 176 |
177 |
178 | Static 179 | 183 | Dynamic 184 |
185 | 188 | 191 |
192 | 193 |
194 |

Examples

195 |

Want to get an idea of what readme-contribs can do? Generate some examples!

196 | 200 | 201 |
202 | 203 |
204 |
205 | 206 | 213 | 214 | 215 | 216 | 217 | 218 | -------------------------------------------------------------------------------- /public/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lissy93/readme-contribs/82cab8a898f482b8b4e456992e55b0f5f11e469b/public/screenshot.png -------------------------------------------------------------------------------- /public/script.js: -------------------------------------------------------------------------------- 1 | function apiForm() { 2 | return { 3 | currentForm: 'contributors', 4 | showAdvancedOptions: false, 5 | showResults: false, 6 | loading: false, 7 | imageUrl: '', 8 | format: 'Markdown', 9 | user: '', 10 | repo: '', 11 | outputMode: false, // false = static, true = dynamic 12 | showError: false, 13 | options: [ 14 | { name: 'title', value: '', label: 'Title', placeholder: 'Enter title' }, 15 | { name: 'avatarSize', value: '', label: 'Avatar Size', placeholder: '80' }, 16 | { name: 'perRow', value: '', label: 'Per Row', placeholder: 'Number per row' }, 17 | { name: 'shape', value: '', label: 'Shape', placeholder: 'e.g., circle, square' }, 18 | { name: 'fontSize', value: '', label: 'Font Size', placeholder: '16' }, 19 | { name: 'textColor', value: '', label: 'Text Color', placeholder: 'e.g., black, #333' }, 20 | { name: 'backgroundColor', value: '', label: 'Background Color', placeholder: 'e.g., white, #fff' }, 21 | { name: 'fontFamily', value: '', label: 'Font Family', placeholder: 'e.g., Arial' }, 22 | { name: 'margin', value: '', label: 'Margin', placeholder: '35' }, 23 | { name: 'textOffset', value: '', label: 'Text Offset', placeholder: 'Offset for text' }, 24 | { name: 'limit', value: '', label: 'Limit', placeholder: 'Limit number displayed' } 25 | ], 26 | exampleIndex: -1, 27 | examples: [ 28 | 'http://readme-contribs.as93.net/forkers/Lissy93/AdGuardian-Term?title=AdGuardian%20Forkers&textColo' 29 | + 'r=bfbfbf&isResponsive=true&dynamic=true&outerBorderWidth=2&outerBorderRadius=5&footerText=none', 30 | 'https://readme-contribs.as93.net/sponsors/lissy93?shape=squircle&dynamic=true&margin=16&textOffset=' 31 | + '8&perRow=6&title=@Lissy93%27s%20Sponsors&textColor=white&isResponsive=true&backgroundC' 32 | + 'olor=black&fontFamily=Courier%20New&fontSize=8&footerText=none', 33 | 'https://readme-contribs.as93.net/stargazers/lissy93/web-check?shape=square&margin=16&perRow=15&titl' 34 | + 'e=Web-Check\'s Stargazers&textColor=9fef00&isResponsive=true&backgroundColor=101215&fo' 35 | + 'ntFamily=cursive&fontSize=14&limit=90&footerText=none', 36 | 'https://readme-contribs.as93.net/contributors/lissy93/dashy?shape=squircle&perRow=10&title=Lissy93%' 37 | + '2FDashy%27s%20Top%20Contributors&textColor=black&isResponsive=true&backgroundColor=00d' 38 | + '1b2&margin=6&hideLabel=true&textOffset=2&footerText=none', 39 | 'https://readme-contribs.as93.net/stargazers/steverichey/hot-dog-stand?backgroundColor=red&textColor' 40 | + '=yellow&outerBorderWidth=5&outerBorderRadius=8fontFamily=Comic Sans&fontSize=12&avatarSize=64&per' 41 | + 'Row=4&title=SteveRichey/Hot-Dog-Stand&isResponsive=true&dynamic=true&footerText=none&shape=circle', 42 | 'https://readme-contribs.as93.net/contributors/rust-lang/rust?hideLabel=true&margin=2&textOffset=0&p' 43 | + 'erRow=10&title=Rust%20Lang%20Top%20Contributors&isResponsive=true&dynamic=true&footerText=none', 44 | ], 45 | showExample() { 46 | const frameLoader = document.getElementById('load-frame'); 47 | const iframe = document.querySelector('.example-grid iframe'); 48 | frameLoader.style.display = 'block'; 49 | iframe.style.display = 'none'; 50 | this.exampleIndex = (this.exampleIndex + 1) % this.examples.length; 51 | iframe.src = this.examples[this.exampleIndex]; 52 | iframe.className = `example-${this.exampleIndex + 1}`; 53 | iframe.onload = () => { 54 | frameLoader.style.display = 'none'; 55 | iframe.style.display = 'block'; 56 | }; 57 | }, 58 | toggleForm(formType) { 59 | this.currentForm = formType; 60 | this.showResults = false; 61 | this.loading = false; 62 | }, 63 | submitForm() { 64 | if (!this.user || (this.currentForm != 'sponsors') && !this.repo) { 65 | this.showError = true; 66 | return; 67 | } 68 | this.loading = true; 69 | this.imageUrl = this.generatedUrl; 70 | this.showResults = true; 71 | this.showError = false; 72 | }, 73 | copyToClipboard(text) { 74 | navigator.clipboard.writeText(text).then(() => { 75 | alert('Copied to clipboard!'); 76 | }).catch(err => { 77 | alert('Failed to copy!'); 78 | }); 79 | }, 80 | generateSnippet(format) { 81 | switch (format) { 82 | case 'Markdown': 83 | return `![${this.currentForm} badge](${this.generatedUrl})`; 84 | case 'HTML Image': 85 | return `Badge`; 86 | case 'HTML Embed': 87 | return ``; 88 | case 'BB Code': 89 | return `[img]${this.generatedUrl}[/img]`; 90 | case 'Direct Link': 91 | return this.generatedUrl; 92 | default: 93 | return ''; 94 | } 95 | }, 96 | get generatedUrl() { 97 | const host = window.location.host || 'readme-contribs.as93.net'; 98 | let baseUrl = `https://${host}/${this.currentForm}/${this.user || '[username]'}`; 99 | if (this.currentForm != 'sponsors') { 100 | baseUrl += `/${this.repo || '[repo]'}`; 101 | } 102 | const formatValue = (val) => (val || '').replaceAll('#', ''); 103 | const queryParams = this.options 104 | .filter(option => option.value) 105 | .map(option => `${option.name}=${encodeURIComponent(formatValue(option.value))}`) 106 | .join('&'); 107 | return queryParams ? `${baseUrl}?${queryParams}` : baseUrl; 108 | } 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /public/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | min-height: 100vh; 3 | display: flex; 4 | flex-direction: column; 5 | } 6 | 7 | .url-container { 8 | display: flex; 9 | gap: 2rem; 10 | align-items: center; 11 | @media (max-width: 768px) { 12 | flex-wrap: wrap; 13 | } 14 | .snippet { 15 | width: 80%; 16 | position: relative; 17 | pre { 18 | border-radius: 6px; 19 | font-size: 1.1rem; 20 | color: var(--bulma-primary-70) !important; 21 | background: #101215; 22 | } 23 | .copy-button { 24 | position: absolute; 25 | right: 0.25rem; 26 | top: 0.25rem; 27 | cursor: pointer; 28 | &:hover { 29 | color: var(--bulma-primary-70); 30 | } 31 | } 32 | } 33 | .format-chooser { 34 | width: 20%; 35 | .dropdown, .dropdown-trigger, dropdown-menu, button { 36 | width: 100% !important; 37 | } 38 | } 39 | } 40 | 41 | .output-image { 42 | border-radius: 6px; 43 | color: var(--bulma-primary-70) !important; 44 | background: #101215; 45 | padding: 1rem; 46 | p { 47 | font-size: 1.2rem; 48 | margin: 0.5rem auto 1rem auto; 49 | } 50 | } 51 | 52 | section { 53 | width: 80vw; 54 | max-width: 1000px; 55 | margin: 1rem auto; 56 | padding: 2rem; 57 | position: relative; 58 | &.input-section { 59 | flex-grow: 1; 60 | } 61 | } 62 | 63 | .fa-solid, .fas, .fa-brands { 64 | margin-right: 0.5rem; 65 | } 66 | 67 | .hero-body { 68 | text-align: center; 69 | .title { 70 | font-size: 4rem; 71 | margin-bottom: 0.5rem; 72 | } 73 | .subtitle { 74 | margin-bottom: 0 !important; 75 | } 76 | } 77 | 78 | .button.is-primary.is-outlined:hover { 79 | background: hsl(var(--bulma-button-h),var(--bulma-button-s),var(--bulma-button-l)); 80 | color: #101215; 81 | } 82 | 83 | .built-by-iframe { 84 | width: 690px; 85 | margin: 1rem auto 0 auto; 86 | } 87 | 88 | .switch-container { 89 | display: flex; 90 | align-items: center; 91 | gap: 0.5rem; 92 | color: white; 93 | position: absolute; 94 | top: 0.5rem; 95 | right: 0.5rem; 96 | .switch { 97 | position: relative; 98 | display: inline-block; 99 | width: 30px; 100 | height: 17px; 101 | input { 102 | opacity: 0; 103 | width: 0; 104 | height: 0; 105 | } 106 | } 107 | 108 | .slider { 109 | position: absolute; 110 | cursor: pointer; 111 | top: 0; 112 | left: 0; 113 | right: 0; 114 | bottom: 0; 115 | background-color: #ccc; 116 | -webkit-transition: .4s; 117 | transition: .4s; 118 | border-radius: 17px; 119 | &:before { 120 | position: absolute; 121 | content: ""; 122 | height: 13px; 123 | width: 13px; 124 | left: 4px; 125 | bottom: 4px; 126 | background-color: white; 127 | -webkit-transition: .4s; 128 | transition: .4s; 129 | border-radius: 50%; 130 | } 131 | } 132 | input:checked + .slider { 133 | background-color: #2196F3; 134 | } 135 | 136 | input:focus + .slider { 137 | box-shadow: 0 0 1px #2196F3; 138 | } 139 | 140 | input:checked + .slider:before { 141 | -webkit-transform: translateX(13px); 142 | -ms-transform: translateX(13px); 143 | transform: translateX(13px); 144 | } 145 | } 146 | 147 | .tabs ul { justify-content: center; } 148 | 149 | .load-iframe { 150 | margin: 2rem auto; 151 | width: 10rem; 152 | display: none; 153 | } 154 | .example-grid { 155 | display: flex; 156 | justify-content: center; 157 | flex-wrap: wrap; 158 | iframe, img { 159 | border-radius: 8px; 160 | margin-top: 1rem; 161 | width: 100%; 162 | height: 512px; 163 | } 164 | .example-4, .example-6 { 165 | height: 640px; 166 | } 167 | } 168 | 169 | #swagger-ui { 170 | max-width: 80vw; 171 | margin: 0 auto; 172 | } 173 | 174 | -------------------------------------------------------------------------------- /public/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Test Image 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "moduleResolution": "node", 6 | "esModuleInterop": true, 7 | "skipLibCheck": true, 8 | "strict": true, 9 | }, 10 | } -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "rewrites": [ 3 | { 4 | "source": "/api/sponsors/:user", 5 | "destination": "/sponsors/:user" 6 | }, 7 | { 8 | "source": "/api/contributors/:owner/:repo", 9 | "destination": "/contributors/:owner/:repo" 10 | }, 11 | { 12 | "source": "/api/(.*)", 13 | "destination": "/api/$1" 14 | }, 15 | { 16 | "source": "/(js|css|img|html)/(.*)", 17 | "destination": "/public/$1/$2" 18 | }, 19 | { 20 | "source": "/api-docs", 21 | "destination": "/api.html" 22 | }, 23 | { 24 | "source": "/(.*)", 25 | "destination": "/api" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@cspotcode/source-map-support@^0.8.0": 6 | version "0.8.1" 7 | resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" 8 | integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== 9 | dependencies: 10 | "@jridgewell/trace-mapping" "0.3.9" 11 | 12 | "@edge-runtime/cookies@3.4.1": 13 | version "3.4.1" 14 | resolved "https://registry.yarnpkg.com/@edge-runtime/cookies/-/cookies-3.4.1.tgz#c725e7ae92c89d11ee7c6a316d8d5b1445dfe33c" 15 | integrity sha512-z27BvgPxI73CgSlxU/NAUf1Q/shnqi6cobHEowf6VuLdSjGR3NjI2Y5dZUIBbK2zOJVZbXcHsVzJjz8LklteFQ== 16 | 17 | "@edge-runtime/format@2.2.0": 18 | version "2.2.0" 19 | resolved "https://registry.yarnpkg.com/@edge-runtime/format/-/format-2.2.0.tgz#00b54a2b659f9ec835e1f995d58bb3dcc0b5ccef" 20 | integrity sha512-gPrS6AVw/qJJL0vcxMXv4kFXCU3ZTCD1uuJpwX15YxHV8BgU9OG5v9LrkkXcr96PBT/9epypfNJMhlWADuEziw== 21 | 22 | "@edge-runtime/node-utils@2.2.1": 23 | version "2.2.1" 24 | resolved "https://registry.yarnpkg.com/@edge-runtime/node-utils/-/node-utils-2.2.1.tgz#c6e59d498c49be91d3baf05bab94cad5506547fe" 25 | integrity sha512-RUl/439BHKshkhSGFRlZ1kzy68wL4mn8VNKDSZr3p0tciyZ33Mjfpl+vofqnHqXRmDI6nLnZpfJvhY3D88o0pA== 26 | dependencies: 27 | "@edge-runtime/cookies" "3.4.1" 28 | 29 | "@edge-runtime/ponyfill@2.4.1": 30 | version "2.4.1" 31 | resolved "https://registry.yarnpkg.com/@edge-runtime/ponyfill/-/ponyfill-2.4.1.tgz#0fbe567c8dd40d63c2d716c04e6df77636f3feaf" 32 | integrity sha512-ZbR/EViY3gg2rmEAQTKPa6mXl4aR1/+cFcQe4r1segCjEbTAxT6PWu40odbu/KlZKSysEb2O/BWIC2lJgSJOMQ== 33 | 34 | "@edge-runtime/primitives@4.0.5": 35 | version "4.0.5" 36 | resolved "https://registry.yarnpkg.com/@edge-runtime/primitives/-/primitives-4.0.5.tgz#67b4f555816d7c8cb32a05da0b3c2cac32a70f1c" 37 | integrity sha512-t7QiN5d/KpXgCvIfSt6Nm9Hj3WVdNgc5CpOD73jasY+9EvTI7Ngdj5cXvjcHrPcmYWJZMySPgeEeoL/1N/Llag== 38 | 39 | "@edge-runtime/vm@3.1.7": 40 | version "3.1.7" 41 | resolved "https://registry.yarnpkg.com/@edge-runtime/vm/-/vm-3.1.7.tgz#74f3bc64220c07ca0c760e5686726651a3835dc4" 42 | integrity sha512-hUMFbDQ/nZN+1TLMi6iMO1QFz9RSV8yGG8S42WFPFma1d7VSNE0eMdJUmwjmtav22/iQkzHMmu6oTSfAvRGS8g== 43 | dependencies: 44 | "@edge-runtime/primitives" "4.0.5" 45 | 46 | "@fastify/busboy@^2.0.0": 47 | version "2.1.1" 48 | resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" 49 | integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== 50 | 51 | "@jridgewell/resolve-uri@^3.0.3": 52 | version "3.1.2" 53 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" 54 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 55 | 56 | "@jridgewell/sourcemap-codec@^1.4.10": 57 | version "1.4.15" 58 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" 59 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== 60 | 61 | "@jridgewell/trace-mapping@0.3.9": 62 | version "0.3.9" 63 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" 64 | integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== 65 | dependencies: 66 | "@jridgewell/resolve-uri" "^3.0.3" 67 | "@jridgewell/sourcemap-codec" "^1.4.10" 68 | 69 | "@mapbox/node-pre-gyp@^1.0.5": 70 | version "1.0.11" 71 | resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" 72 | integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== 73 | dependencies: 74 | detect-libc "^2.0.0" 75 | https-proxy-agent "^5.0.0" 76 | make-dir "^3.1.0" 77 | node-fetch "^2.6.7" 78 | nopt "^5.0.0" 79 | npmlog "^5.0.1" 80 | rimraf "^3.0.2" 81 | semver "^7.3.5" 82 | tar "^6.1.11" 83 | 84 | "@nodelib/fs.scandir@2.1.5": 85 | version "2.1.5" 86 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 87 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 88 | dependencies: 89 | "@nodelib/fs.stat" "2.0.5" 90 | run-parallel "^1.1.9" 91 | 92 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 93 | version "2.0.5" 94 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 95 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 96 | 97 | "@nodelib/fs.walk@^1.2.3": 98 | version "1.2.8" 99 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 100 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 101 | dependencies: 102 | "@nodelib/fs.scandir" "2.1.5" 103 | fastq "^1.6.0" 104 | 105 | "@rollup/pluginutils@^4.0.0": 106 | version "4.2.1" 107 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" 108 | integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== 109 | dependencies: 110 | estree-walker "^2.0.1" 111 | picomatch "^2.2.2" 112 | 113 | "@sinclair/typebox@0.25.24": 114 | version "0.25.24" 115 | resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" 116 | integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== 117 | 118 | "@tootallnate/once@2.0.0": 119 | version "2.0.0" 120 | resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" 121 | integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== 122 | 123 | "@ts-morph/common@~0.11.0": 124 | version "0.11.1" 125 | resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.11.1.tgz#281af2a0642b19354d8aa07a0d50dfdb4aa8164e" 126 | integrity sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g== 127 | dependencies: 128 | fast-glob "^3.2.7" 129 | minimatch "^3.0.4" 130 | mkdirp "^1.0.4" 131 | path-browserify "^1.0.1" 132 | 133 | "@tsconfig/node10@^1.0.7": 134 | version "1.0.11" 135 | resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" 136 | integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== 137 | 138 | "@tsconfig/node12@^1.0.7": 139 | version "1.0.11" 140 | resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" 141 | integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== 142 | 143 | "@tsconfig/node14@^1.0.0": 144 | version "1.0.3" 145 | resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" 146 | integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== 147 | 148 | "@tsconfig/node16@^1.0.2": 149 | version "1.0.4" 150 | resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" 151 | integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== 152 | 153 | "@types/json-schema@^7.0.6": 154 | version "7.0.15" 155 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" 156 | integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== 157 | 158 | "@types/node@14.18.33": 159 | version "14.18.33" 160 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.33.tgz#8c29a0036771569662e4635790ffa9e057db379b" 161 | integrity sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg== 162 | 163 | "@vercel/build-utils@7.3.0": 164 | version "7.3.0" 165 | resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-7.3.0.tgz#222fee367367bf773395985a509964adfb495f24" 166 | integrity sha512-RJwqrGYSk75auHZqWmlSL+a5JsWv+4SF1AxNQJ+KpF3XWZ/8yThkN/jHBfNxMmW6VvNczSVtMaXI0/2Sess6Eg== 167 | 168 | "@vercel/error-utils@2.0.2": 169 | version "2.0.2" 170 | resolved "https://registry.yarnpkg.com/@vercel/error-utils/-/error-utils-2.0.2.tgz#d75ccce100dbdfc9cb85700767b59d4257a91113" 171 | integrity sha512-Sj0LFafGpYr6pfCqrQ82X6ukRl5qpmVrHM/191kNYFqkkB9YkjlMAj6QcEsvCG259x4QZ7Tya++0AB85NDPbKQ== 172 | 173 | "@vercel/fun@1.1.0": 174 | version "1.1.0" 175 | resolved "https://registry.yarnpkg.com/@vercel/fun/-/fun-1.1.0.tgz#5bac83585a736b6bfe4616017fe5f0a46562c3ba" 176 | integrity sha512-SpuPAo+MlAYMtcMcC0plx7Tv4Mp7SQhJJj1iIENlOnABL24kxHpL09XLQMGzZIzIW7upR8c3edwgfpRtp+dhVw== 177 | dependencies: 178 | "@tootallnate/once" "2.0.0" 179 | async-listen "1.2.0" 180 | debug "4.1.1" 181 | execa "3.2.0" 182 | fs-extra "8.1.0" 183 | generic-pool "3.4.2" 184 | micro "9.3.5-canary.3" 185 | ms "2.1.1" 186 | node-fetch "2.6.7" 187 | path-match "1.2.4" 188 | promisepipe "3.0.0" 189 | semver "7.3.5" 190 | stat-mode "0.3.0" 191 | stream-to-promise "2.2.0" 192 | tar "4.4.18" 193 | tree-kill "1.2.2" 194 | uid-promise "1.0.0" 195 | uuid "3.3.2" 196 | xdg-app-paths "5.1.0" 197 | yauzl-promise "2.1.3" 198 | 199 | "@vercel/gatsby-plugin-vercel-analytics@1.0.11": 200 | version "1.0.11" 201 | resolved "https://registry.yarnpkg.com/@vercel/gatsby-plugin-vercel-analytics/-/gatsby-plugin-vercel-analytics-1.0.11.tgz#07e6a02665c340ad31ad9d9d3b0df00a30a32aed" 202 | integrity sha512-iTEA0vY6RBPuEzkwUTVzSHDATo1aF6bdLLspI68mQ/BTbi5UQEGjpjyzdKOVcSYApDtFU6M6vypZ1t4vIEnHvw== 203 | dependencies: 204 | web-vitals "0.2.4" 205 | 206 | "@vercel/gatsby-plugin-vercel-builder@2.0.12": 207 | version "2.0.12" 208 | resolved "https://registry.yarnpkg.com/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.12.tgz#26dc9f51f91ce0ea3f574664205aa008f7d91be3" 209 | integrity sha512-S1RkywrUItewqg06T3L4cgYfiwi2BFngHIIerhOYhVuD9A+yfMgxnH5dkbu6nujmV1SEws+Q92wSiPfLPmO0eA== 210 | dependencies: 211 | "@sinclair/typebox" "0.25.24" 212 | "@vercel/build-utils" "7.3.0" 213 | "@vercel/routing-utils" "3.1.0" 214 | esbuild "0.14.47" 215 | etag "1.8.1" 216 | fs-extra "11.1.0" 217 | 218 | "@vercel/go@3.0.4": 219 | version "3.0.4" 220 | resolved "https://registry.yarnpkg.com/@vercel/go/-/go-3.0.4.tgz#20a9fb182593d669bef6935562cf5291a31dc541" 221 | integrity sha512-hMIJm2xwU1HT56YRNF8HNOnIFNH7WnGl1l2D6lc6UJk7XdCCh1Dm0nsqLqki2SprTUh3I+53pTQaqgRsFGf06A== 222 | 223 | "@vercel/hydrogen@1.0.1": 224 | version "1.0.1" 225 | resolved "https://registry.yarnpkg.com/@vercel/hydrogen/-/hydrogen-1.0.1.tgz#e3edb8a6326e22020b8bfc76afae196e098df0cd" 226 | integrity sha512-4PYk4LeIWPTjGtgnxvB0Hdw7aqCau843/96K2xX3z9pa0Hn//pUnZBMz2jrs5MRseCm1Li1LdQAK3u8/vaUnVQ== 227 | dependencies: 228 | "@vercel/static-config" "3.0.0" 229 | ts-morph "12.0.0" 230 | 231 | "@vercel/next@4.0.15": 232 | version "4.0.15" 233 | resolved "https://registry.yarnpkg.com/@vercel/next/-/next-4.0.15.tgz#cf3e42d8920f01171bc82cf0e5537979eba1815f" 234 | integrity sha512-BxMxIJrya7MS6IWrQIaQaYHPmq7WoZFLX909RBpNoAG5wgzrTrW756d2EsibBwGo7sQYBv2atyI5GqBIHzYbWg== 235 | dependencies: 236 | "@vercel/nft" "0.24.2" 237 | 238 | "@vercel/nft@0.24.2": 239 | version "0.24.2" 240 | resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.24.2.tgz#9b910ce52692a9a621f52740d896d4a2440d5865" 241 | integrity sha512-KhY3Ky/lCqE+fHpOXiKOLnXYJ49PZh1dyDSfVtZhmYtmica0NQgyO6kPOAGDNWqD9IOBx8hb65upxxjfnfa1JA== 242 | dependencies: 243 | "@mapbox/node-pre-gyp" "^1.0.5" 244 | "@rollup/pluginutils" "^4.0.0" 245 | acorn "^8.6.0" 246 | async-sema "^3.1.1" 247 | bindings "^1.4.0" 248 | estree-walker "2.0.2" 249 | glob "^7.1.3" 250 | graceful-fs "^4.2.9" 251 | micromatch "^4.0.2" 252 | node-gyp-build "^4.2.2" 253 | resolve-from "^5.0.0" 254 | 255 | "@vercel/node@3.0.12": 256 | version "3.0.12" 257 | resolved "https://registry.yarnpkg.com/@vercel/node/-/node-3.0.12.tgz#398e3ab9ebe8d9f6a3920d8f2a94de59e23a61d0" 258 | integrity sha512-OiNHiUe1LX/CfDrQ07ntPsoYhJiC38mEeErYeqA6YNVAz3QGdX3pthiaIig2KPqeeYkEx5bSkVIqQtQOTJBuLQ== 259 | dependencies: 260 | "@edge-runtime/node-utils" "2.2.1" 261 | "@edge-runtime/primitives" "4.0.5" 262 | "@edge-runtime/vm" "3.1.7" 263 | "@types/node" "14.18.33" 264 | "@vercel/build-utils" "7.3.0" 265 | "@vercel/error-utils" "2.0.2" 266 | "@vercel/nft" "0.24.2" 267 | "@vercel/static-config" "3.0.0" 268 | async-listen "3.0.0" 269 | edge-runtime "2.5.7" 270 | esbuild "0.14.47" 271 | etag "1.8.1" 272 | exit-hook "2.2.1" 273 | node-fetch "2.6.9" 274 | path-to-regexp "6.2.1" 275 | ts-morph "12.0.0" 276 | ts-node "10.9.1" 277 | typescript "4.9.5" 278 | undici "5.26.5" 279 | 280 | "@vercel/python@4.1.0": 281 | version "4.1.0" 282 | resolved "https://registry.yarnpkg.com/@vercel/python/-/python-4.1.0.tgz#657c948bd32bb92aed5301f7b41da012a3d8cd10" 283 | integrity sha512-EIQXK5zL6fce0Barh74gc7xyLtRyvgmLZDIVQ8yJLtFxPlPCRY3GXkdJ7Jdcw8Pd0uuVF0vIHatv18xSLbcwtg== 284 | 285 | "@vercel/redwood@2.0.5": 286 | version "2.0.5" 287 | resolved "https://registry.yarnpkg.com/@vercel/redwood/-/redwood-2.0.5.tgz#ed55742a68c5a84ec65375169e2ad462f4d31b5a" 288 | integrity sha512-9iWTxfMkC7yNnwN2xxOdptiIDAgXe1V1fh3aw92MWt5PBRcFY9RqgIPF7Q3Qa7yzQFgpbHwCnSTqWO+HCEuFtw== 289 | dependencies: 290 | "@vercel/nft" "0.24.2" 291 | "@vercel/routing-utils" "3.1.0" 292 | semver "6.3.1" 293 | 294 | "@vercel/remix-builder@2.0.14": 295 | version "2.0.14" 296 | resolved "https://registry.yarnpkg.com/@vercel/remix-builder/-/remix-builder-2.0.14.tgz#a08d8c4c53d01e8ffcd9a126d293c6bd134608e7" 297 | integrity sha512-c+ILERSRq404sf6kt0qWhYhuxWkkoTEm2FdLoUnVs21K6kzGtJMJbUExEHoPZvN9a0tq86ZU86jVvRZV6WL0cQ== 298 | dependencies: 299 | "@vercel/nft" "0.24.2" 300 | "@vercel/static-config" "3.0.0" 301 | ts-morph "12.0.0" 302 | 303 | "@vercel/routing-utils@3.1.0": 304 | version "3.1.0" 305 | resolved "https://registry.yarnpkg.com/@vercel/routing-utils/-/routing-utils-3.1.0.tgz#6a71903f4106006b2cb52add9d3b708b59acaaaf" 306 | integrity sha512-Ci5xTjVTJY/JLZXpCXpLehMft97i9fH34nu9PGav6DtwkVUF6TOPX86U0W0niQjMZ5n6/ZP0BwcJK2LOozKaGw== 307 | dependencies: 308 | path-to-regexp "6.1.0" 309 | optionalDependencies: 310 | ajv "^6.0.0" 311 | 312 | "@vercel/ruby@2.0.4": 313 | version "2.0.4" 314 | resolved "https://registry.yarnpkg.com/@vercel/ruby/-/ruby-2.0.4.tgz#3eff11ddf4180033065fad9143366dec0173788a" 315 | integrity sha512-EpZyfF6wFGzFDmubFIh/EZtYpKindmXx/69xSfKEBTVU0afgljyOOICbyZePe5tvigfOEBLSLgrt/2nN+MlLtA== 316 | 317 | "@vercel/static-build@2.0.14": 318 | version "2.0.14" 319 | resolved "https://registry.yarnpkg.com/@vercel/static-build/-/static-build-2.0.14.tgz#9f8ac174d2169155975e91ba1a02d3a3eb32b4ec" 320 | integrity sha512-l5eQtJbk5Pc+P8XARDnpcbX4LnK3bGy7uf6S1aFOD4h6F8iBdg0agWTufZnq5BI91pcPVICPazM5BYhigIEznQ== 321 | dependencies: 322 | "@vercel/gatsby-plugin-vercel-analytics" "1.0.11" 323 | "@vercel/gatsby-plugin-vercel-builder" "2.0.12" 324 | "@vercel/static-config" "3.0.0" 325 | ts-morph "12.0.0" 326 | 327 | "@vercel/static-config@3.0.0": 328 | version "3.0.0" 329 | resolved "https://registry.yarnpkg.com/@vercel/static-config/-/static-config-3.0.0.tgz#2bd56aa08d1293f0982ca3a5923412550bf64bfe" 330 | integrity sha512-2qtvcBJ1bGY0dYGYh3iM7yGKkk971FujLEDXzuW5wcZsPr1GSEjO/w2iSr3qve6nDDtBImsGoDEnus5FI4+fIw== 331 | dependencies: 332 | ajv "8.6.3" 333 | json-schema-to-ts "1.6.4" 334 | ts-morph "12.0.0" 335 | 336 | abbrev@1: 337 | version "1.1.1" 338 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 339 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 340 | 341 | acorn-walk@^8.1.1: 342 | version "8.3.3" 343 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" 344 | integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== 345 | dependencies: 346 | acorn "^8.11.0" 347 | 348 | acorn@^8.11.0, acorn@^8.4.1, acorn@^8.6.0: 349 | version "8.12.0" 350 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.0.tgz#1627bfa2e058148036133b8d9b51a700663c294c" 351 | integrity sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw== 352 | 353 | agent-base@6: 354 | version "6.0.2" 355 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" 356 | integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== 357 | dependencies: 358 | debug "4" 359 | 360 | ajv@8.6.3: 361 | version "8.6.3" 362 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" 363 | integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== 364 | dependencies: 365 | fast-deep-equal "^3.1.1" 366 | json-schema-traverse "^1.0.0" 367 | require-from-string "^2.0.2" 368 | uri-js "^4.2.2" 369 | 370 | ajv@^6.0.0: 371 | version "6.12.6" 372 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 373 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 374 | dependencies: 375 | fast-deep-equal "^3.1.1" 376 | fast-json-stable-stringify "^2.0.0" 377 | json-schema-traverse "^0.4.1" 378 | uri-js "^4.2.2" 379 | 380 | ansi-regex@^5.0.1: 381 | version "5.0.1" 382 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 383 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 384 | 385 | any-promise@^1.1.0, any-promise@~1.3.0: 386 | version "1.3.0" 387 | resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 388 | integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== 389 | 390 | anymatch@~3.1.1: 391 | version "3.1.3" 392 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" 393 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 394 | dependencies: 395 | normalize-path "^3.0.0" 396 | picomatch "^2.0.4" 397 | 398 | "aproba@^1.0.3 || ^2.0.0": 399 | version "2.0.0" 400 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" 401 | integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== 402 | 403 | are-we-there-yet@^2.0.0: 404 | version "2.0.0" 405 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" 406 | integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== 407 | dependencies: 408 | delegates "^1.0.0" 409 | readable-stream "^3.6.0" 410 | 411 | arg@4.1.0: 412 | version "4.1.0" 413 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" 414 | integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg== 415 | 416 | arg@^4.1.0: 417 | version "4.1.3" 418 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 419 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 420 | 421 | async-listen@1.2.0: 422 | version "1.2.0" 423 | resolved "https://registry.yarnpkg.com/async-listen/-/async-listen-1.2.0.tgz#861ab6f92e1703ba54498b10ddb9b5da7b69f363" 424 | integrity sha512-CcEtRh/oc9Jc4uWeUwdpG/+Mb2YUHKmdaTf0gUr7Wa+bfp4xx70HOb3RuSTJMvqKNB1TkdTfjLdrcz2X4rkkZA== 425 | 426 | async-listen@3.0.0: 427 | version "3.0.0" 428 | resolved "https://registry.yarnpkg.com/async-listen/-/async-listen-3.0.0.tgz#2e5941390b7d8c753d4dbe94bc6aecbdde52ec5e" 429 | integrity sha512-V+SsTpDqkrWTimiotsyl33ePSjA5/KrithwupuvJ6ztsqPvGv6ge4OredFhPffVXiLN/QUWvE0XcqJaYgt6fOg== 430 | 431 | async-listen@3.0.1: 432 | version "3.0.1" 433 | resolved "https://registry.yarnpkg.com/async-listen/-/async-listen-3.0.1.tgz#cbe4edeace2b93ebf5cf8092899ee139457978b7" 434 | integrity sha512-cWMaNwUJnf37C/S5TfCkk/15MwbPRwVYALA2jtjkbHjCmAPiDXyNJy2q3p1KAZzDLHAWyarUWSujUoHR4pEgrA== 435 | 436 | async-sema@^3.1.1: 437 | version "3.1.1" 438 | resolved "https://registry.yarnpkg.com/async-sema/-/async-sema-3.1.1.tgz#e527c08758a0f8f6f9f15f799a173ff3c40ea808" 439 | integrity sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg== 440 | 441 | balanced-match@^1.0.0: 442 | version "1.0.2" 443 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 444 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 445 | 446 | binary-extensions@^2.0.0: 447 | version "2.3.0" 448 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" 449 | integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== 450 | 451 | bindings@^1.4.0: 452 | version "1.5.0" 453 | resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" 454 | integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== 455 | dependencies: 456 | file-uri-to-path "1.0.0" 457 | 458 | brace-expansion@^1.1.7: 459 | version "1.1.11" 460 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 461 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 462 | dependencies: 463 | balanced-match "^1.0.0" 464 | concat-map "0.0.1" 465 | 466 | braces@^3.0.3, braces@~3.0.2: 467 | version "3.0.3" 468 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" 469 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== 470 | dependencies: 471 | fill-range "^7.1.1" 472 | 473 | buffer-crc32@~0.2.3: 474 | version "0.2.13" 475 | resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" 476 | integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== 477 | 478 | bytes@3.1.0: 479 | version "3.1.0" 480 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 481 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 482 | 483 | chokidar@3.3.1: 484 | version "3.3.1" 485 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" 486 | integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== 487 | dependencies: 488 | anymatch "~3.1.1" 489 | braces "~3.0.2" 490 | glob-parent "~5.1.0" 491 | is-binary-path "~2.1.0" 492 | is-glob "~4.0.1" 493 | normalize-path "~3.0.0" 494 | readdirp "~3.3.0" 495 | optionalDependencies: 496 | fsevents "~2.1.2" 497 | 498 | chownr@^1.1.4: 499 | version "1.1.4" 500 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" 501 | integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 502 | 503 | chownr@^2.0.0: 504 | version "2.0.0" 505 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" 506 | integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== 507 | 508 | code-block-writer@^10.1.1: 509 | version "10.1.1" 510 | resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f" 511 | integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw== 512 | 513 | color-support@^1.1.2: 514 | version "1.1.3" 515 | resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" 516 | integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== 517 | 518 | concat-map@0.0.1: 519 | version "0.0.1" 520 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 521 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 522 | 523 | console-control-strings@^1.0.0, console-control-strings@^1.1.0: 524 | version "1.1.0" 525 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 526 | integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== 527 | 528 | content-type@1.0.4: 529 | version "1.0.4" 530 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 531 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 532 | 533 | convert-hrtime@^3.0.0: 534 | version "3.0.0" 535 | resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-3.0.0.tgz#62c7593f5809ca10be8da858a6d2f702bcda00aa" 536 | integrity sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA== 537 | 538 | create-require@^1.1.0: 539 | version "1.1.1" 540 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 541 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 542 | 543 | cross-spawn@^7.0.0: 544 | version "7.0.3" 545 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 546 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 547 | dependencies: 548 | path-key "^3.1.0" 549 | shebang-command "^2.0.0" 550 | which "^2.0.1" 551 | 552 | debug@4: 553 | version "4.3.5" 554 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" 555 | integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== 556 | dependencies: 557 | ms "2.1.2" 558 | 559 | debug@4.1.1: 560 | version "4.1.1" 561 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 562 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 563 | dependencies: 564 | ms "^2.1.1" 565 | 566 | delegates@^1.0.0: 567 | version "1.0.0" 568 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 569 | integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== 570 | 571 | depd@~1.1.2: 572 | version "1.1.2" 573 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 574 | integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== 575 | 576 | detect-libc@^2.0.0: 577 | version "2.0.3" 578 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" 579 | integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== 580 | 581 | diff@^4.0.1: 582 | version "4.0.2" 583 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 584 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 585 | 586 | edge-runtime@2.5.7: 587 | version "2.5.7" 588 | resolved "https://registry.yarnpkg.com/edge-runtime/-/edge-runtime-2.5.7.tgz#12638b86e00811cd1f2b4ca0d70330ca71281423" 589 | integrity sha512-gA4qSVP0sNwJlkdQ2nahDPASlSl8twUd17o+JolPa1EtXpLTGzIpOETvodgJwXIxa+zaD8bnAXCdsWrx2PhlVQ== 590 | dependencies: 591 | "@edge-runtime/format" "2.2.0" 592 | "@edge-runtime/ponyfill" "2.4.1" 593 | "@edge-runtime/vm" "3.1.7" 594 | async-listen "3.0.1" 595 | mri "1.2.0" 596 | picocolors "1.0.0" 597 | pretty-ms "7.0.1" 598 | signal-exit "4.0.2" 599 | time-span "4.0.0" 600 | 601 | emoji-regex@^8.0.0: 602 | version "8.0.0" 603 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 604 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 605 | 606 | end-of-stream@^1.1.0: 607 | version "1.4.4" 608 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 609 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 610 | dependencies: 611 | once "^1.4.0" 612 | 613 | end-of-stream@~1.1.0: 614 | version "1.1.0" 615 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07" 616 | integrity sha512-EoulkdKF/1xa92q25PbjuDcgJ9RDHYU2Rs3SCIvs2/dSQ3BpmxneNHmA/M7fe60M3PrV7nNGTTNbkK62l6vXiQ== 617 | dependencies: 618 | once "~1.3.0" 619 | 620 | esbuild-android-64@0.14.47: 621 | version "0.14.47" 622 | resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz#ef95b42c67bcf4268c869153fa3ad1466c4cea6b" 623 | integrity sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g== 624 | 625 | esbuild-android-arm64@0.14.47: 626 | version "0.14.47" 627 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz#4ebd7ce9fb250b4695faa3ee46fd3b0754ecd9e6" 628 | integrity sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ== 629 | 630 | esbuild-darwin-64@0.14.47: 631 | version "0.14.47" 632 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz#e0da6c244f497192f951807f003f6a423ed23188" 633 | integrity sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA== 634 | 635 | esbuild-darwin-arm64@0.14.47: 636 | version "0.14.47" 637 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz#cd40fd49a672fca581ed202834239dfe540a9028" 638 | integrity sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw== 639 | 640 | esbuild-freebsd-64@0.14.47: 641 | version "0.14.47" 642 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz#8da6a14c095b29c01fc8087a16cb7906debc2d67" 643 | integrity sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ== 644 | 645 | esbuild-freebsd-arm64@0.14.47: 646 | version "0.14.47" 647 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz#ad31f9c92817ff8f33fd253af7ab5122dc1b83f6" 648 | integrity sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ== 649 | 650 | esbuild-linux-32@0.14.47: 651 | version "0.14.47" 652 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz#de085e4db2e692ea30c71208ccc23fdcf5196c58" 653 | integrity sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw== 654 | 655 | esbuild-linux-64@0.14.47: 656 | version "0.14.47" 657 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz#2a9321bbccb01f01b04cebfcfccbabeba3658ba1" 658 | integrity sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw== 659 | 660 | esbuild-linux-arm64@0.14.47: 661 | version "0.14.47" 662 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz#b9da7b6fc4b0ca7a13363a0c5b7bb927e4bc535a" 663 | integrity sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw== 664 | 665 | esbuild-linux-arm@0.14.47: 666 | version "0.14.47" 667 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz#56fec2a09b9561c337059d4af53625142aded853" 668 | integrity sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA== 669 | 670 | esbuild-linux-mips64le@0.14.47: 671 | version "0.14.47" 672 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz#9db21561f8f22ed79ef2aedb7bbef082b46cf823" 673 | integrity sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg== 674 | 675 | esbuild-linux-ppc64le@0.14.47: 676 | version "0.14.47" 677 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz#dc3a3da321222b11e96e50efafec9d2de408198b" 678 | integrity sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w== 679 | 680 | esbuild-linux-riscv64@0.14.47: 681 | version "0.14.47" 682 | resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz#9bd6dcd3dca6c0357084ecd06e1d2d4bf105335f" 683 | integrity sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g== 684 | 685 | esbuild-linux-s390x@0.14.47: 686 | version "0.14.47" 687 | resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz#a458af939b52f2cd32fc561410d441a51f69d41f" 688 | integrity sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw== 689 | 690 | esbuild-netbsd-64@0.14.47: 691 | version "0.14.47" 692 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz#6388e785d7e7e4420cb01348d7483ab511b16aa8" 693 | integrity sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ== 694 | 695 | esbuild-openbsd-64@0.14.47: 696 | version "0.14.47" 697 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz#309af806db561aa886c445344d1aacab850dbdc5" 698 | integrity sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw== 699 | 700 | esbuild-sunos-64@0.14.47: 701 | version "0.14.47" 702 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz#3f19612dcdb89ba6c65283a7ff6e16f8afbf8aaa" 703 | integrity sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ== 704 | 705 | esbuild-windows-32@0.14.47: 706 | version "0.14.47" 707 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz#a92d279c8458d5dc319abcfeb30aa49e8f2e6f7f" 708 | integrity sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ== 709 | 710 | esbuild-windows-64@0.14.47: 711 | version "0.14.47" 712 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz#2564c3fcf0c23d701edb71af8c52d3be4cec5f8a" 713 | integrity sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ== 714 | 715 | esbuild-windows-arm64@0.14.47: 716 | version "0.14.47" 717 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz#86d9db1a22d83360f726ac5fba41c2f625db6878" 718 | integrity sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ== 719 | 720 | esbuild@0.14.47: 721 | version "0.14.47" 722 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.47.tgz#0d6415f6bd8eb9e73a58f7f9ae04c5276cda0e4d" 723 | integrity sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA== 724 | optionalDependencies: 725 | esbuild-android-64 "0.14.47" 726 | esbuild-android-arm64 "0.14.47" 727 | esbuild-darwin-64 "0.14.47" 728 | esbuild-darwin-arm64 "0.14.47" 729 | esbuild-freebsd-64 "0.14.47" 730 | esbuild-freebsd-arm64 "0.14.47" 731 | esbuild-linux-32 "0.14.47" 732 | esbuild-linux-64 "0.14.47" 733 | esbuild-linux-arm "0.14.47" 734 | esbuild-linux-arm64 "0.14.47" 735 | esbuild-linux-mips64le "0.14.47" 736 | esbuild-linux-ppc64le "0.14.47" 737 | esbuild-linux-riscv64 "0.14.47" 738 | esbuild-linux-s390x "0.14.47" 739 | esbuild-netbsd-64 "0.14.47" 740 | esbuild-openbsd-64 "0.14.47" 741 | esbuild-sunos-64 "0.14.47" 742 | esbuild-windows-32 "0.14.47" 743 | esbuild-windows-64 "0.14.47" 744 | esbuild-windows-arm64 "0.14.47" 745 | 746 | estree-walker@2.0.2, estree-walker@^2.0.1: 747 | version "2.0.2" 748 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 749 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 750 | 751 | etag@1.8.1: 752 | version "1.8.1" 753 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 754 | integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== 755 | 756 | events-intercept@^2.0.0: 757 | version "2.0.0" 758 | resolved "https://registry.yarnpkg.com/events-intercept/-/events-intercept-2.0.0.tgz#adbf38681c5a4b2011c41ee41f61a34cba448897" 759 | integrity sha512-blk1va0zol9QOrdZt0rFXo5KMkNPVSp92Eju/Qz8THwKWKRKeE0T8Br/1aW6+Edkyq9xHYgYxn2QtOnUKPUp+Q== 760 | 761 | execa@3.2.0: 762 | version "3.2.0" 763 | resolved "https://registry.yarnpkg.com/execa/-/execa-3.2.0.tgz#18326b79c7ab7fbd6610fd900c1b9e95fa48f90a" 764 | integrity sha512-kJJfVbI/lZE1PZYDI5VPxp8zXPO9rtxOkhpZ0jMKha56AI9y2gGVC6bkukStQf0ka5Rh15BA5m7cCCH4jmHqkw== 765 | dependencies: 766 | cross-spawn "^7.0.0" 767 | get-stream "^5.0.0" 768 | human-signals "^1.1.1" 769 | is-stream "^2.0.0" 770 | merge-stream "^2.0.0" 771 | npm-run-path "^4.0.0" 772 | onetime "^5.1.0" 773 | p-finally "^2.0.0" 774 | signal-exit "^3.0.2" 775 | strip-final-newline "^2.0.0" 776 | 777 | exit-hook@2.2.1: 778 | version "2.2.1" 779 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-2.2.1.tgz#007b2d92c6428eda2b76e7016a34351586934593" 780 | integrity sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw== 781 | 782 | fast-deep-equal@^3.1.1: 783 | version "3.1.3" 784 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 785 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 786 | 787 | fast-glob@^3.2.7: 788 | version "3.3.2" 789 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" 790 | integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== 791 | dependencies: 792 | "@nodelib/fs.stat" "^2.0.2" 793 | "@nodelib/fs.walk" "^1.2.3" 794 | glob-parent "^5.1.2" 795 | merge2 "^1.3.0" 796 | micromatch "^4.0.4" 797 | 798 | fast-json-stable-stringify@^2.0.0: 799 | version "2.1.0" 800 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 801 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 802 | 803 | fastq@^1.6.0: 804 | version "1.17.1" 805 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" 806 | integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== 807 | dependencies: 808 | reusify "^1.0.4" 809 | 810 | fd-slicer@~1.1.0: 811 | version "1.1.0" 812 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" 813 | integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== 814 | dependencies: 815 | pend "~1.2.0" 816 | 817 | file-uri-to-path@1.0.0: 818 | version "1.0.0" 819 | resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" 820 | integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== 821 | 822 | fill-range@^7.1.1: 823 | version "7.1.1" 824 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" 825 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== 826 | dependencies: 827 | to-regex-range "^5.0.1" 828 | 829 | fs-extra@11.1.0: 830 | version "11.1.0" 831 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.0.tgz#5784b102104433bb0e090f48bfc4a30742c357ed" 832 | integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw== 833 | dependencies: 834 | graceful-fs "^4.2.0" 835 | jsonfile "^6.0.1" 836 | universalify "^2.0.0" 837 | 838 | fs-extra@8.1.0: 839 | version "8.1.0" 840 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" 841 | integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== 842 | dependencies: 843 | graceful-fs "^4.2.0" 844 | jsonfile "^4.0.0" 845 | universalify "^0.1.0" 846 | 847 | fs-minipass@^1.2.7: 848 | version "1.2.7" 849 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" 850 | integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== 851 | dependencies: 852 | minipass "^2.6.0" 853 | 854 | fs-minipass@^2.0.0: 855 | version "2.1.0" 856 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" 857 | integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== 858 | dependencies: 859 | minipass "^3.0.0" 860 | 861 | fs.realpath@^1.0.0: 862 | version "1.0.0" 863 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 864 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 865 | 866 | fsevents@~2.1.2: 867 | version "2.1.3" 868 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" 869 | integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== 870 | 871 | gauge@^3.0.0: 872 | version "3.0.2" 873 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" 874 | integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== 875 | dependencies: 876 | aproba "^1.0.3 || ^2.0.0" 877 | color-support "^1.1.2" 878 | console-control-strings "^1.0.0" 879 | has-unicode "^2.0.1" 880 | object-assign "^4.1.1" 881 | signal-exit "^3.0.0" 882 | string-width "^4.2.3" 883 | strip-ansi "^6.0.1" 884 | wide-align "^1.1.2" 885 | 886 | generic-pool@3.4.2: 887 | version "3.4.2" 888 | resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.4.2.tgz#92ff7196520d670839a67308092a12aadf2f6a59" 889 | integrity sha512-H7cUpwCQSiJmAHM4c/aFu6fUfrhWXW1ncyh8ftxEPMu6AiYkHw9K8br720TGPZJbk5eOH2bynjZD1yPvdDAmag== 890 | 891 | get-stream@^5.0.0: 892 | version "5.2.0" 893 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" 894 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 895 | dependencies: 896 | pump "^3.0.0" 897 | 898 | glob-parent@^5.1.2, glob-parent@~5.1.0: 899 | version "5.1.2" 900 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 901 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 902 | dependencies: 903 | is-glob "^4.0.1" 904 | 905 | glob@^7.1.3: 906 | version "7.2.3" 907 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 908 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 909 | dependencies: 910 | fs.realpath "^1.0.0" 911 | inflight "^1.0.4" 912 | inherits "2" 913 | minimatch "^3.1.1" 914 | once "^1.3.0" 915 | path-is-absolute "^1.0.0" 916 | 917 | graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: 918 | version "4.2.11" 919 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" 920 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== 921 | 922 | has-unicode@^2.0.1: 923 | version "2.0.1" 924 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 925 | integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== 926 | 927 | hono@^4.4.7: 928 | version "4.4.7" 929 | resolved "https://registry.yarnpkg.com/hono/-/hono-4.4.7.tgz#c7b195bdeff0b46e829189c08049decc0c6510c0" 930 | integrity sha512-WoQWFQyVFEVRtIzP5sHPv7nvIw+RYL/HRnvnOCDxj6A+BtrwuC9S0vryZbV4IyFcNgOJ87r/phDiC1x2eEo4Gg== 931 | 932 | http-errors@1.7.3: 933 | version "1.7.3" 934 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 935 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 936 | dependencies: 937 | depd "~1.1.2" 938 | inherits "2.0.4" 939 | setprototypeof "1.1.1" 940 | statuses ">= 1.5.0 < 2" 941 | toidentifier "1.0.0" 942 | 943 | http-errors@~1.4.0: 944 | version "1.4.0" 945 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.4.0.tgz#6c0242dea6b3df7afda153c71089b31c6e82aabf" 946 | integrity sha512-oLjPqve1tuOl5aRhv8GK5eHpqP1C9fb+Ol+XTLjKfLltE44zdDbEdjPSbU7Ch5rSNsVFqZn97SrMmZLdu1/YMw== 947 | dependencies: 948 | inherits "2.0.1" 949 | statuses ">= 1.2.1 < 2" 950 | 951 | https-proxy-agent@^5.0.0: 952 | version "5.0.1" 953 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" 954 | integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== 955 | dependencies: 956 | agent-base "6" 957 | debug "4" 958 | 959 | human-signals@^1.1.1: 960 | version "1.1.1" 961 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" 962 | integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== 963 | 964 | iconv-lite@0.4.24: 965 | version "0.4.24" 966 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 967 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 968 | dependencies: 969 | safer-buffer ">= 2.1.2 < 3" 970 | 971 | inflight@^1.0.4: 972 | version "1.0.6" 973 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 974 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 975 | dependencies: 976 | once "^1.3.0" 977 | wrappy "1" 978 | 979 | inherits@2, inherits@2.0.4, inherits@^2.0.3: 980 | version "2.0.4" 981 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 982 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 983 | 984 | inherits@2.0.1: 985 | version "2.0.1" 986 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 987 | integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== 988 | 989 | is-binary-path@~2.1.0: 990 | version "2.1.0" 991 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 992 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 993 | dependencies: 994 | binary-extensions "^2.0.0" 995 | 996 | is-extglob@^2.1.1: 997 | version "2.1.1" 998 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 999 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 1000 | 1001 | is-fullwidth-code-point@^3.0.0: 1002 | version "3.0.0" 1003 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1004 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1005 | 1006 | is-glob@^4.0.1, is-glob@~4.0.1: 1007 | version "4.0.3" 1008 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1009 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1010 | dependencies: 1011 | is-extglob "^2.1.1" 1012 | 1013 | is-number@^7.0.0: 1014 | version "7.0.0" 1015 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1016 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1017 | 1018 | is-stream@^2.0.0: 1019 | version "2.0.1" 1020 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" 1021 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== 1022 | 1023 | isarray@0.0.1: 1024 | version "0.0.1" 1025 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 1026 | integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== 1027 | 1028 | isexe@^2.0.0: 1029 | version "2.0.0" 1030 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1031 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1032 | 1033 | json-schema-to-ts@1.6.4: 1034 | version "1.6.4" 1035 | resolved "https://registry.yarnpkg.com/json-schema-to-ts/-/json-schema-to-ts-1.6.4.tgz#63e4fe854dff093923be9e8b59b39ee9a7971ba4" 1036 | integrity sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA== 1037 | dependencies: 1038 | "@types/json-schema" "^7.0.6" 1039 | ts-toolbelt "^6.15.5" 1040 | 1041 | json-schema-traverse@^0.4.1: 1042 | version "0.4.1" 1043 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1044 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1045 | 1046 | json-schema-traverse@^1.0.0: 1047 | version "1.0.0" 1048 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 1049 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 1050 | 1051 | jsonfile@^4.0.0: 1052 | version "4.0.0" 1053 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 1054 | integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== 1055 | optionalDependencies: 1056 | graceful-fs "^4.1.6" 1057 | 1058 | jsonfile@^6.0.1: 1059 | version "6.1.0" 1060 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" 1061 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== 1062 | dependencies: 1063 | universalify "^2.0.0" 1064 | optionalDependencies: 1065 | graceful-fs "^4.1.6" 1066 | 1067 | lru-cache@^6.0.0: 1068 | version "6.0.0" 1069 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1070 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1071 | dependencies: 1072 | yallist "^4.0.0" 1073 | 1074 | make-dir@^3.1.0: 1075 | version "3.1.0" 1076 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 1077 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 1078 | dependencies: 1079 | semver "^6.0.0" 1080 | 1081 | make-error@^1.1.1: 1082 | version "1.3.6" 1083 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 1084 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 1085 | 1086 | merge-stream@^2.0.0: 1087 | version "2.0.0" 1088 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 1089 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 1090 | 1091 | merge2@^1.3.0: 1092 | version "1.4.1" 1093 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 1094 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1095 | 1096 | micro@9.3.5-canary.3: 1097 | version "9.3.5-canary.3" 1098 | resolved "https://registry.yarnpkg.com/micro/-/micro-9.3.5-canary.3.tgz#e957598abb9ab05aea8453e0150a521fe22135c3" 1099 | integrity sha512-viYIo9PefV+w9dvoIBh1gI44Mvx1BOk67B4BpC2QK77qdY0xZF0Q+vWLt/BII6cLkIc8rLmSIcJaB/OrXXKe1g== 1100 | dependencies: 1101 | arg "4.1.0" 1102 | content-type "1.0.4" 1103 | raw-body "2.4.1" 1104 | 1105 | micromatch@^4.0.2, micromatch@^4.0.4: 1106 | version "4.0.7" 1107 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" 1108 | integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== 1109 | dependencies: 1110 | braces "^3.0.3" 1111 | picomatch "^2.3.1" 1112 | 1113 | mimic-fn@^2.1.0: 1114 | version "2.1.0" 1115 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1116 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 1117 | 1118 | minimatch@^3.0.4, minimatch@^3.1.1: 1119 | version "3.1.2" 1120 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1121 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1122 | dependencies: 1123 | brace-expansion "^1.1.7" 1124 | 1125 | minimist@^1.2.6: 1126 | version "1.2.8" 1127 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" 1128 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 1129 | 1130 | minipass@^2.6.0, minipass@^2.9.0: 1131 | version "2.9.0" 1132 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" 1133 | integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== 1134 | dependencies: 1135 | safe-buffer "^5.1.2" 1136 | yallist "^3.0.0" 1137 | 1138 | minipass@^3.0.0: 1139 | version "3.3.6" 1140 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" 1141 | integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== 1142 | dependencies: 1143 | yallist "^4.0.0" 1144 | 1145 | minipass@^5.0.0: 1146 | version "5.0.0" 1147 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" 1148 | integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== 1149 | 1150 | minizlib@^1.3.3: 1151 | version "1.3.3" 1152 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" 1153 | integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== 1154 | dependencies: 1155 | minipass "^2.9.0" 1156 | 1157 | minizlib@^2.1.1: 1158 | version "2.1.2" 1159 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" 1160 | integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== 1161 | dependencies: 1162 | minipass "^3.0.0" 1163 | yallist "^4.0.0" 1164 | 1165 | mkdirp@^0.5.5: 1166 | version "0.5.6" 1167 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" 1168 | integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== 1169 | dependencies: 1170 | minimist "^1.2.6" 1171 | 1172 | mkdirp@^1.0.3, mkdirp@^1.0.4: 1173 | version "1.0.4" 1174 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" 1175 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 1176 | 1177 | mri@1.2.0: 1178 | version "1.2.0" 1179 | resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" 1180 | integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== 1181 | 1182 | ms@2.1.1: 1183 | version "2.1.1" 1184 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 1185 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 1186 | 1187 | ms@2.1.2: 1188 | version "2.1.2" 1189 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1190 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1191 | 1192 | ms@^2.1.1: 1193 | version "2.1.3" 1194 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1195 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1196 | 1197 | node-fetch@2.6.7: 1198 | version "2.6.7" 1199 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" 1200 | integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== 1201 | dependencies: 1202 | whatwg-url "^5.0.0" 1203 | 1204 | node-fetch@2.6.9: 1205 | version "2.6.9" 1206 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" 1207 | integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== 1208 | dependencies: 1209 | whatwg-url "^5.0.0" 1210 | 1211 | node-fetch@^2.6.7: 1212 | version "2.7.0" 1213 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" 1214 | integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== 1215 | dependencies: 1216 | whatwg-url "^5.0.0" 1217 | 1218 | node-gyp-build@^4.2.2: 1219 | version "4.8.1" 1220 | resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" 1221 | integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== 1222 | 1223 | nopt@^5.0.0: 1224 | version "5.0.0" 1225 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" 1226 | integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== 1227 | dependencies: 1228 | abbrev "1" 1229 | 1230 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1231 | version "3.0.0" 1232 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1233 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1234 | 1235 | npm-run-path@^4.0.0: 1236 | version "4.0.1" 1237 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" 1238 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 1239 | dependencies: 1240 | path-key "^3.0.0" 1241 | 1242 | npmlog@^5.0.1: 1243 | version "5.0.1" 1244 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" 1245 | integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== 1246 | dependencies: 1247 | are-we-there-yet "^2.0.0" 1248 | console-control-strings "^1.1.0" 1249 | gauge "^3.0.0" 1250 | set-blocking "^2.0.0" 1251 | 1252 | object-assign@^4.1.1: 1253 | version "4.1.1" 1254 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1255 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 1256 | 1257 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 1258 | version "1.4.0" 1259 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1260 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1261 | dependencies: 1262 | wrappy "1" 1263 | 1264 | once@~1.3.0: 1265 | version "1.3.3" 1266 | resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" 1267 | integrity sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w== 1268 | dependencies: 1269 | wrappy "1" 1270 | 1271 | onetime@^5.1.0: 1272 | version "5.1.2" 1273 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 1274 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 1275 | dependencies: 1276 | mimic-fn "^2.1.0" 1277 | 1278 | os-paths@^4.0.1: 1279 | version "4.4.0" 1280 | resolved "https://registry.yarnpkg.com/os-paths/-/os-paths-4.4.0.tgz#2908b5bcb60cbfe3afb869292281a2a6b2f77ebe" 1281 | integrity sha512-wrAwOeXp1RRMFfQY8Sy7VaGVmPocaLwSFOYCGKSyo8qmJ+/yaafCl5BCA1IQZWqFSRBrKDYFeR9d/VyQzfH/jg== 1282 | 1283 | p-finally@^2.0.0: 1284 | version "2.0.1" 1285 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" 1286 | integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== 1287 | 1288 | parse-ms@^2.1.0: 1289 | version "2.1.0" 1290 | resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" 1291 | integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== 1292 | 1293 | path-browserify@^1.0.1: 1294 | version "1.0.1" 1295 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" 1296 | integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== 1297 | 1298 | path-is-absolute@^1.0.0: 1299 | version "1.0.1" 1300 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1301 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1302 | 1303 | path-key@^3.0.0, path-key@^3.1.0: 1304 | version "3.1.1" 1305 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1306 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1307 | 1308 | path-match@1.2.4: 1309 | version "1.2.4" 1310 | resolved "https://registry.yarnpkg.com/path-match/-/path-match-1.2.4.tgz#a62747f3c7e0c2514762697f24443585b09100ea" 1311 | integrity sha512-UWlehEdqu36jmh4h5CWJ7tARp1OEVKGHKm6+dg9qMq5RKUTV5WJrGgaZ3dN2m7WFAXDbjlHzvJvL/IUpy84Ktw== 1312 | dependencies: 1313 | http-errors "~1.4.0" 1314 | path-to-regexp "^1.0.0" 1315 | 1316 | path-to-regexp@6.1.0: 1317 | version "6.1.0" 1318 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.1.0.tgz#0b18f88b7a0ce0bfae6a25990c909ab86f512427" 1319 | integrity sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw== 1320 | 1321 | path-to-regexp@6.2.1: 1322 | version "6.2.1" 1323 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" 1324 | integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== 1325 | 1326 | path-to-regexp@^1.0.0: 1327 | version "1.8.0" 1328 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" 1329 | integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== 1330 | dependencies: 1331 | isarray "0.0.1" 1332 | 1333 | pend@~1.2.0: 1334 | version "1.2.0" 1335 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" 1336 | integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== 1337 | 1338 | picocolors@1.0.0: 1339 | version "1.0.0" 1340 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1341 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1342 | 1343 | picomatch@^2.0.4, picomatch@^2.0.7, picomatch@^2.2.2, picomatch@^2.3.1: 1344 | version "2.3.1" 1345 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1346 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1347 | 1348 | pretty-ms@7.0.1: 1349 | version "7.0.1" 1350 | resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" 1351 | integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== 1352 | dependencies: 1353 | parse-ms "^2.1.0" 1354 | 1355 | promisepipe@3.0.0: 1356 | version "3.0.0" 1357 | resolved "https://registry.yarnpkg.com/promisepipe/-/promisepipe-3.0.0.tgz#c9b6e5aa861ef5fcce6134f6f75e14f8f30bd3b2" 1358 | integrity sha512-V6TbZDJ/ZswevgkDNpGt/YqNCiZP9ASfgU+p83uJE6NrGtvSGoOcHLiDCqkMs2+yg7F5qHdLV8d0aS8O26G/KA== 1359 | 1360 | pump@^3.0.0: 1361 | version "3.0.0" 1362 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1363 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1364 | dependencies: 1365 | end-of-stream "^1.1.0" 1366 | once "^1.3.1" 1367 | 1368 | punycode@^2.1.0: 1369 | version "2.3.1" 1370 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" 1371 | integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== 1372 | 1373 | queue-microtask@^1.2.2: 1374 | version "1.2.3" 1375 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1376 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1377 | 1378 | raw-body@2.4.1: 1379 | version "2.4.1" 1380 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" 1381 | integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== 1382 | dependencies: 1383 | bytes "3.1.0" 1384 | http-errors "1.7.3" 1385 | iconv-lite "0.4.24" 1386 | unpipe "1.0.0" 1387 | 1388 | readable-stream@^3.6.0: 1389 | version "3.6.2" 1390 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" 1391 | integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== 1392 | dependencies: 1393 | inherits "^2.0.3" 1394 | string_decoder "^1.1.1" 1395 | util-deprecate "^1.0.1" 1396 | 1397 | readdirp@~3.3.0: 1398 | version "3.3.0" 1399 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17" 1400 | integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ== 1401 | dependencies: 1402 | picomatch "^2.0.7" 1403 | 1404 | require-from-string@^2.0.2: 1405 | version "2.0.2" 1406 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 1407 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 1408 | 1409 | resolve-from@^5.0.0: 1410 | version "5.0.0" 1411 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" 1412 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 1413 | 1414 | reusify@^1.0.4: 1415 | version "1.0.4" 1416 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1417 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1418 | 1419 | rimraf@^3.0.2: 1420 | version "3.0.2" 1421 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1422 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1423 | dependencies: 1424 | glob "^7.1.3" 1425 | 1426 | run-parallel@^1.1.9: 1427 | version "1.2.0" 1428 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1429 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1430 | dependencies: 1431 | queue-microtask "^1.2.2" 1432 | 1433 | safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: 1434 | version "5.2.1" 1435 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1436 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1437 | 1438 | "safer-buffer@>= 2.1.2 < 3": 1439 | version "2.1.2" 1440 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1441 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1442 | 1443 | semver@6.3.1, semver@^6.0.0: 1444 | version "6.3.1" 1445 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" 1446 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== 1447 | 1448 | semver@7.3.5: 1449 | version "7.3.5" 1450 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 1451 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 1452 | dependencies: 1453 | lru-cache "^6.0.0" 1454 | 1455 | semver@^7.3.5: 1456 | version "7.6.2" 1457 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" 1458 | integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== 1459 | 1460 | set-blocking@^2.0.0: 1461 | version "2.0.0" 1462 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1463 | integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== 1464 | 1465 | setprototypeof@1.1.1: 1466 | version "1.1.1" 1467 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 1468 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 1469 | 1470 | shebang-command@^2.0.0: 1471 | version "2.0.0" 1472 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1473 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1474 | dependencies: 1475 | shebang-regex "^3.0.0" 1476 | 1477 | shebang-regex@^3.0.0: 1478 | version "3.0.0" 1479 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1480 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1481 | 1482 | signal-exit@4.0.2: 1483 | version "4.0.2" 1484 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" 1485 | integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== 1486 | 1487 | signal-exit@^3.0.0, signal-exit@^3.0.2: 1488 | version "3.0.7" 1489 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" 1490 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== 1491 | 1492 | stat-mode@0.3.0: 1493 | version "0.3.0" 1494 | resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.3.0.tgz#69283b081f851582b328d2a4ace5f591ce52f54b" 1495 | integrity sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng== 1496 | 1497 | "statuses@>= 1.2.1 < 2", "statuses@>= 1.5.0 < 2": 1498 | version "1.5.0" 1499 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 1500 | integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== 1501 | 1502 | stream-to-array@~2.3.0: 1503 | version "2.3.0" 1504 | resolved "https://registry.yarnpkg.com/stream-to-array/-/stream-to-array-2.3.0.tgz#bbf6b39f5f43ec30bc71babcb37557acecf34353" 1505 | integrity sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA== 1506 | dependencies: 1507 | any-promise "^1.1.0" 1508 | 1509 | stream-to-promise@2.2.0: 1510 | version "2.2.0" 1511 | resolved "https://registry.yarnpkg.com/stream-to-promise/-/stream-to-promise-2.2.0.tgz#b1edb2e1c8cb11289d1b503c08d3f2aef51e650f" 1512 | integrity sha512-HAGUASw8NT0k8JvIVutB2Y/9iBk7gpgEyAudXwNJmZERdMITGdajOa4VJfD/kNiA3TppQpTP4J+CtcHwdzKBAw== 1513 | dependencies: 1514 | any-promise "~1.3.0" 1515 | end-of-stream "~1.1.0" 1516 | stream-to-array "~2.3.0" 1517 | 1518 | "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: 1519 | version "4.2.3" 1520 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1521 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1522 | dependencies: 1523 | emoji-regex "^8.0.0" 1524 | is-fullwidth-code-point "^3.0.0" 1525 | strip-ansi "^6.0.1" 1526 | 1527 | string_decoder@^1.1.1: 1528 | version "1.3.0" 1529 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 1530 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 1531 | dependencies: 1532 | safe-buffer "~5.2.0" 1533 | 1534 | strip-ansi@^6.0.1: 1535 | version "6.0.1" 1536 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1537 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1538 | dependencies: 1539 | ansi-regex "^5.0.1" 1540 | 1541 | strip-final-newline@^2.0.0: 1542 | version "2.0.0" 1543 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" 1544 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 1545 | 1546 | tar@4.4.18: 1547 | version "4.4.18" 1548 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.18.tgz#a565090fdcf786ee08ed14b1739179451b3cc476" 1549 | integrity sha512-ZuOtqqmkV9RE1+4odd+MhBpibmCxNP6PJhH/h2OqNuotTX7/XHPZQJv2pKvWMplFH9SIZZhitehh6vBH6LO8Pg== 1550 | dependencies: 1551 | chownr "^1.1.4" 1552 | fs-minipass "^1.2.7" 1553 | minipass "^2.9.0" 1554 | minizlib "^1.3.3" 1555 | mkdirp "^0.5.5" 1556 | safe-buffer "^5.2.1" 1557 | yallist "^3.1.1" 1558 | 1559 | tar@^6.1.11: 1560 | version "6.2.1" 1561 | resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" 1562 | integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== 1563 | dependencies: 1564 | chownr "^2.0.0" 1565 | fs-minipass "^2.0.0" 1566 | minipass "^5.0.0" 1567 | minizlib "^2.1.1" 1568 | mkdirp "^1.0.3" 1569 | yallist "^4.0.0" 1570 | 1571 | time-span@4.0.0: 1572 | version "4.0.0" 1573 | resolved "https://registry.yarnpkg.com/time-span/-/time-span-4.0.0.tgz#fe74cd50a54e7998712f90ddfe47109040c985c4" 1574 | integrity sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g== 1575 | dependencies: 1576 | convert-hrtime "^3.0.0" 1577 | 1578 | to-regex-range@^5.0.1: 1579 | version "5.0.1" 1580 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1581 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1582 | dependencies: 1583 | is-number "^7.0.0" 1584 | 1585 | toidentifier@1.0.0: 1586 | version "1.0.0" 1587 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 1588 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 1589 | 1590 | tr46@~0.0.3: 1591 | version "0.0.3" 1592 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" 1593 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== 1594 | 1595 | tree-kill@1.2.2: 1596 | version "1.2.2" 1597 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" 1598 | integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== 1599 | 1600 | ts-morph@12.0.0: 1601 | version "12.0.0" 1602 | resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-12.0.0.tgz#a601c3538703755cbfa2d42b62c52df73e9dbbd7" 1603 | integrity sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA== 1604 | dependencies: 1605 | "@ts-morph/common" "~0.11.0" 1606 | code-block-writer "^10.1.1" 1607 | 1608 | ts-node@10.9.1: 1609 | version "10.9.1" 1610 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" 1611 | integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== 1612 | dependencies: 1613 | "@cspotcode/source-map-support" "^0.8.0" 1614 | "@tsconfig/node10" "^1.0.7" 1615 | "@tsconfig/node12" "^1.0.7" 1616 | "@tsconfig/node14" "^1.0.0" 1617 | "@tsconfig/node16" "^1.0.2" 1618 | acorn "^8.4.1" 1619 | acorn-walk "^8.1.1" 1620 | arg "^4.1.0" 1621 | create-require "^1.1.0" 1622 | diff "^4.0.1" 1623 | make-error "^1.1.1" 1624 | v8-compile-cache-lib "^3.0.1" 1625 | yn "3.1.1" 1626 | 1627 | ts-toolbelt@^6.15.5: 1628 | version "6.15.5" 1629 | resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz#cb3b43ed725cb63644782c64fbcad7d8f28c0a83" 1630 | integrity sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A== 1631 | 1632 | typescript@4.9.5: 1633 | version "4.9.5" 1634 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" 1635 | integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== 1636 | 1637 | uid-promise@1.0.0: 1638 | version "1.0.0" 1639 | resolved "https://registry.yarnpkg.com/uid-promise/-/uid-promise-1.0.0.tgz#68ef7c70a19dea4d637c7e3df2e0e548106f1a37" 1640 | integrity sha512-R8375j0qwXyIu/7R0tjdF06/sElHqbmdmWC9M2qQHpEVbvE4I5+38KJI7LUUmQMp7NVq4tKHiBMkT0NFM453Ig== 1641 | 1642 | undici@5.26.5: 1643 | version "5.26.5" 1644 | resolved "https://registry.yarnpkg.com/undici/-/undici-5.26.5.tgz#f6dc8c565e3cad8c4475b187f51a13e505092838" 1645 | integrity sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw== 1646 | dependencies: 1647 | "@fastify/busboy" "^2.0.0" 1648 | 1649 | universalify@^0.1.0: 1650 | version "0.1.2" 1651 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 1652 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 1653 | 1654 | universalify@^2.0.0: 1655 | version "2.0.1" 1656 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" 1657 | integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== 1658 | 1659 | unpipe@1.0.0: 1660 | version "1.0.0" 1661 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1662 | integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== 1663 | 1664 | uri-js@^4.2.2: 1665 | version "4.4.1" 1666 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1667 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1668 | dependencies: 1669 | punycode "^2.1.0" 1670 | 1671 | util-deprecate@^1.0.1: 1672 | version "1.0.2" 1673 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1674 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 1675 | 1676 | uuid@3.3.2: 1677 | version "3.3.2" 1678 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" 1679 | integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== 1680 | 1681 | v8-compile-cache-lib@^3.0.1: 1682 | version "3.0.1" 1683 | resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" 1684 | integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== 1685 | 1686 | vercel@^32.4.1: 1687 | version "32.7.2" 1688 | resolved "https://registry.yarnpkg.com/vercel/-/vercel-32.7.2.tgz#c48a1a2a932a654aa23122c820e2b3e0d60171c5" 1689 | integrity sha512-esyeo67OZ/f7usKFCrx6NSjsvpo/BP/C8Mfron2uiCb4vXVcjkwOM7TwliHx6b0DbXjpzomdGVUHKRs34VNn2Q== 1690 | dependencies: 1691 | "@vercel/build-utils" "7.3.0" 1692 | "@vercel/fun" "1.1.0" 1693 | "@vercel/go" "3.0.4" 1694 | "@vercel/hydrogen" "1.0.1" 1695 | "@vercel/next" "4.0.15" 1696 | "@vercel/node" "3.0.12" 1697 | "@vercel/python" "4.1.0" 1698 | "@vercel/redwood" "2.0.5" 1699 | "@vercel/remix-builder" "2.0.14" 1700 | "@vercel/ruby" "2.0.4" 1701 | "@vercel/static-build" "2.0.14" 1702 | chokidar "3.3.1" 1703 | 1704 | web-vitals@0.2.4: 1705 | version "0.2.4" 1706 | resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-0.2.4.tgz#ec3df43c834a207fd7cdefd732b2987896e08511" 1707 | integrity sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg== 1708 | 1709 | webidl-conversions@^3.0.0: 1710 | version "3.0.1" 1711 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" 1712 | integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== 1713 | 1714 | whatwg-url@^5.0.0: 1715 | version "5.0.0" 1716 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" 1717 | integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== 1718 | dependencies: 1719 | tr46 "~0.0.3" 1720 | webidl-conversions "^3.0.0" 1721 | 1722 | which@^2.0.1: 1723 | version "2.0.2" 1724 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1725 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1726 | dependencies: 1727 | isexe "^2.0.0" 1728 | 1729 | wide-align@^1.1.2: 1730 | version "1.1.5" 1731 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" 1732 | integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== 1733 | dependencies: 1734 | string-width "^1.0.2 || 2 || 3 || 4" 1735 | 1736 | wrappy@1: 1737 | version "1.0.2" 1738 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1739 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 1740 | 1741 | xdg-app-paths@5.1.0: 1742 | version "5.1.0" 1743 | resolved "https://registry.yarnpkg.com/xdg-app-paths/-/xdg-app-paths-5.1.0.tgz#f52f724f91e88244148c085c09bcd396443d8cae" 1744 | integrity sha512-RAQ3WkPf4KTU1A8RtFx3gWywzVKe00tfOPFfl2NDGqbIFENQO4kqAJp7mhQjNj/33W5x5hiWWUdyfPq/5SU3QA== 1745 | dependencies: 1746 | xdg-portable "^7.0.0" 1747 | 1748 | xdg-portable@^7.0.0: 1749 | version "7.3.0" 1750 | resolved "https://registry.yarnpkg.com/xdg-portable/-/xdg-portable-7.3.0.tgz#c6b1610de806a2ca1fe65727d5f8402c295d2e96" 1751 | integrity sha512-sqMMuL1rc0FmMBOzCpd0yuy9trqF2yTTVe+E9ogwCSWQCdDEtQUwrZPT6AxqtsFGRNxycgncbP/xmOOSPw5ZUw== 1752 | dependencies: 1753 | os-paths "^4.0.1" 1754 | 1755 | yallist@^3.0.0, yallist@^3.1.1: 1756 | version "3.1.1" 1757 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 1758 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 1759 | 1760 | yallist@^4.0.0: 1761 | version "4.0.0" 1762 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1763 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1764 | 1765 | yauzl-clone@^1.0.4: 1766 | version "1.0.4" 1767 | resolved "https://registry.yarnpkg.com/yauzl-clone/-/yauzl-clone-1.0.4.tgz#8bc6d293b17cc98802bbbed2e289d18e7697c96c" 1768 | integrity sha512-igM2RRCf3k8TvZoxR2oguuw4z1xasOnA31joCqHIyLkeWrvAc2Jgay5ISQ2ZplinkoGaJ6orCz56Ey456c5ESA== 1769 | dependencies: 1770 | events-intercept "^2.0.0" 1771 | 1772 | yauzl-promise@2.1.3: 1773 | version "2.1.3" 1774 | resolved "https://registry.yarnpkg.com/yauzl-promise/-/yauzl-promise-2.1.3.tgz#17467845db89fc6592ca987ca2ecfee8c381ae3d" 1775 | integrity sha512-A1pf6fzh6eYkK0L4Qp7g9jzJSDrM6nN0bOn5T0IbY4Yo3w+YkWlHFkJP7mzknMXjqusHFHlKsK2N+4OLsK2MRA== 1776 | dependencies: 1777 | yauzl "^2.9.1" 1778 | yauzl-clone "^1.0.4" 1779 | 1780 | yauzl@^2.9.1: 1781 | version "2.10.0" 1782 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" 1783 | integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== 1784 | dependencies: 1785 | buffer-crc32 "~0.2.3" 1786 | fd-slicer "~1.1.0" 1787 | 1788 | yn@3.1.1: 1789 | version "3.1.1" 1790 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 1791 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 1792 | --------------------------------------------------------------------------------