├── .eslintrc.js ├── .gitignore ├── .prettierrc.js ├── README.md ├── api ├── _lib │ ├── constants.ts │ ├── index.ts │ ├── screenshot.ts │ └── url.ts └── carbonara.ts ├── package.json ├── tsconfig.json └── yarn.lock /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | parser: "@typescript-eslint/parser", // Specifies the ESLint parser 3 | parserOptions: { 4 | ecmaVersion: 2020, // Allows for the parsing of modern ECMAScript features 5 | sourceType: "module", // Allows for the use of imports 6 | }, 7 | extends: [ 8 | "plugin:@typescript-eslint/recommended", // Uses the recommended rules from the @typescript-eslint/eslint-plugin 9 | "prettier/@typescript-eslint", // Uses eslint-config-prettier to disable ESLint rules from @typescript-eslint/eslint-plugin that would conflict with prettier 10 | "plugin:prettier/recommended", // Enables eslint-plugin-prettier and eslint-config-prettier. This will display prettier errors as ESLint errors. Make sure this is always the last configuration in the extends array. 11 | ], 12 | rules: { 13 | "no-console": "error", 14 | }, 15 | }; 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .vercel 3 | .DS_Store -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | semi: true, 3 | trailingComma: "all", 4 | singleQuote: false, 5 | printWidth: 80, 6 | tabWidth: 2, 7 | }; 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # carbonara 2 | 3 | A serverless function to take carbon screenshots (https://carbon.now.sh) of any code snippet. 4 | 5 | [![Deploy to Vercel](https://vercel.com/button)](https://vercel.com/import/project?template=https://github.com/MaximeHeckel/carbonara) 6 | 7 | # Blog post 8 | 9 | This project is a dependency of some other projects I'm working on and is meant to serve as the example for the blog post [Creating beautiful screenshots of your code with a serverless function](https://blog.maximeheckel.com/posts/creating-beautiful-screenshots-source-code-with-serverless-function/) on my personal blog [blog.maximeheckel.com](https://blog.maximeheckel.com). 10 | 11 | # Usage 12 | 13 | - Deploy to [Vercel](https://vercel.com) by clicking on the button above or by cloning this repository and running `vercel --prod` or `yarn deploy` on your local machine (you can use any other serverless provider as well but every script here has been optimized for Vercel) 14 | - Once the function is deployed you can test it with 15 | 16 | - a curl command: 17 | 18 | ```bash 19 | curl -d "data=Y29uc29sZS5sb2coImhlbGxvIHdvcmxkIik=" -X POST https://yourendpoint.com/api/carbonara 20 | ``` 21 | 22 | - a NodeJS script: 23 | 24 | ```js 25 | import fs from "fs"; 26 | import { post } from "request"; 27 | import { promisify } from "util"; 28 | import qs from "qs"; 29 | 30 | const postAsync = promisify(post); 31 | const readFileAsync = promisify(fs.readFile); 32 | 33 | const getScreenshot = async () => { 34 | const code = await readFileAsync("./sample.tsx"); 35 | const language = "tsx"; 36 | 37 | const params = { 38 | backgroundColor: "#E6EDF8", 39 | dropShadow: true, 40 | dropShadowBlurRadius: "68px", 41 | dropShadowOffsetY: "20px", 42 | fontFamily: "Fira Code", 43 | fontSize: "14px", 44 | lineHeight: "133%", 45 | lineNumbers: false, 46 | paddingHorizontal: "35px", 47 | paddingVertical: "49px", 48 | squaredImage: false, 49 | theme: "nord", 50 | widthAdjustment: true, 51 | language, 52 | }; 53 | 54 | try { 55 | const { body } = await postAsync({ 56 | url: `https://yourendpoint.com/api/carbonara?${qs.stringify(params)}`, 57 | formData: { 58 | data: code.toString("base64"), 59 | }, 60 | }); 61 | 62 | console.log(body); 63 | } catch (e) { 64 | console.error(e); 65 | } 66 | }; 67 | 68 | getScreenshot(); 69 | ``` 70 | 71 | # Contribute 72 | 73 | To contribute to this function, run the following commands: 74 | 75 | - `yarn` to install the dependencies 76 | - `yarn start` to start the function locally. The function will be listening on `http://localhost:3000/api/carbonara` 77 | - `yarn lint` to lint the project 78 | - `yarn format` to run prettier 79 | -------------------------------------------------------------------------------- /api/_lib/constants.ts: -------------------------------------------------------------------------------- 1 | export const BASE_URL = "https://carbon.now.sh"; 2 | 3 | export const defaultQueryParams = { 4 | bg: "#FFFFFF", 5 | ds: false, 6 | dsblur: "50px", 7 | dsyoff: "20px", 8 | es: "2x", 9 | fm: "Fira Code", 10 | fs: "18px", 11 | l: "auto", 12 | lh: "110%", 13 | ln: false, 14 | pv: "0", 15 | ph: "0", 16 | t: "material", 17 | si: false, 18 | wa: true, 19 | wc: true, 20 | wt: "none", 21 | wm: false, 22 | }; 23 | -------------------------------------------------------------------------------- /api/_lib/index.ts: -------------------------------------------------------------------------------- 1 | export { getScreenshot } from "./screenshot"; 2 | export { getCarbonURL } from "./url"; 3 | -------------------------------------------------------------------------------- /api/_lib/screenshot.ts: -------------------------------------------------------------------------------- 1 | import chrome from "chrome-aws-lambda"; 2 | import puppeteer from "puppeteer-core"; 3 | 4 | const isDev = process.env.NODE_ENV === "development"; 5 | 6 | /** 7 | * In order to have the function working in both windows and macOS 8 | * we need to specify the respecive path of the chrome executable for 9 | * both cases. 10 | */ 11 | const exePath = 12 | process.platform === "win32" 13 | ? "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" 14 | : "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"; 15 | 16 | interface PuppeteerOptions { 17 | args: string[]; 18 | executablePath: string; 19 | headless: boolean; 20 | } 21 | 22 | export const getOptions = async (isDev: boolean): Promise => { 23 | /** 24 | * If used in a dev environment, i.e. locally, use one of the local 25 | * executable path 26 | */ 27 | if (isDev) { 28 | return { 29 | args: [], 30 | executablePath: exePath, 31 | headless: true, 32 | }; 33 | } 34 | /** 35 | * Else, use the path of chrome-aws-lambda and its args 36 | */ 37 | return { 38 | args: chrome.args, 39 | executablePath: await chrome.executablePath, 40 | headless: chrome.headless, 41 | }; 42 | }; 43 | 44 | type ScreenshotOptions = { 45 | url: string; 46 | }; 47 | 48 | export const getScreenshot = async ({ 49 | url, 50 | }: ScreenshotOptions): Promise => { 51 | const options = await getOptions(isDev); 52 | const browser = await puppeteer.launch(options); 53 | const page = await browser.newPage(); 54 | 55 | /** 56 | * Here we set the viewport manually to a big resolution 57 | * to ensure the target,i.e. our code snippet image is visible 58 | */ 59 | await page.setViewport({ 60 | width: 2560, 61 | height: 1080, 62 | deviceScaleFactor: 2, 63 | }); 64 | 65 | /** 66 | * Navigate to the url generated by getCarbonUrl 67 | */ 68 | await page.goto(url, { waitUntil: "load" }); 69 | 70 | const exportContainer = await page.waitForSelector("#export-container"); 71 | const elementBounds = await exportContainer.boundingBox(); 72 | 73 | if (!elementBounds) 74 | throw new Error("Cannot get export container bounding box"); 75 | 76 | const buffer = await exportContainer.screenshot({ 77 | encoding: "binary", 78 | clip: { 79 | ...elementBounds, 80 | /** 81 | * Little hack to avoid black borders: 82 | * https://github.com/mixn/carbon-now-cli/issues/9#issuecomment-414334708 83 | */ 84 | x: Math.round(elementBounds.x), 85 | height: Math.round(elementBounds.height) - 1, 86 | }, 87 | }); 88 | 89 | /** 90 | * Return the buffer representing the screenshot 91 | */ 92 | return buffer; 93 | }; 94 | -------------------------------------------------------------------------------- /api/_lib/url.ts: -------------------------------------------------------------------------------- 1 | import qs from "querystring"; 2 | import { BASE_URL, defaultQueryParams } from "./constants"; 3 | 4 | type CarbonQueryParams = typeof defaultQueryParams; 5 | 6 | export type Options = { 7 | backgroundColor: string; 8 | dropShadow: string; 9 | dropShadowBlur: string; 10 | dropShadowOffsetY: string; 11 | exportSize: string; 12 | fontFamily: string; 13 | fontSize: string; 14 | language: string; 15 | lineHeight: string; 16 | lineNumber: string; 17 | paddingHorizontal: string; 18 | paddingVertical: string; 19 | theme: string; 20 | squaredImage: string; 21 | widthAdjustment: string; 22 | windowControl: string; 23 | watermark: string; 24 | windowTheme: string; 25 | }; 26 | 27 | const mapOptionstoCarbonQueryParams: Record< 28 | keyof Options, 29 | keyof CarbonQueryParams 30 | > = { 31 | backgroundColor: "bg", 32 | dropShadow: "ds", 33 | dropShadowBlur: "dsblur", 34 | dropShadowOffsetY: "dsyoff", 35 | exportSize: "es", 36 | fontFamily: "fm", 37 | fontSize: "fs", 38 | language: "l", 39 | lineHeight: "lh", 40 | lineNumber: "ln", 41 | paddingHorizontal: "ph", 42 | paddingVertical: "pv", 43 | theme: "t", 44 | squaredImage: "si", 45 | widthAdjustment: "wa", 46 | windowControl: "wc", 47 | watermark: "wm", 48 | windowTheme: "wt", 49 | }; 50 | 51 | const toCarbonQueryParam = ( 52 | options: Partial, 53 | ): Partial => { 54 | const newObj = Object.keys(options).reduce((acc, curr) => { 55 | /** 56 | * Go through the options and map them with their corresponding 57 | * carbon query param key. 58 | */ 59 | const carbonConfigKey = 60 | mapOptionstoCarbonQueryParams[curr as keyof Options]; 61 | if (!carbonConfigKey) { 62 | return acc; 63 | } 64 | 65 | /** 66 | * Assign the value of the option to the corresponding 67 | * carbon query param key 68 | */ 69 | return { 70 | ...acc, 71 | [carbonConfigKey]: options[curr as keyof Options], 72 | }; 73 | }, {}); 74 | 75 | return newObj; 76 | }; 77 | 78 | export const getCarbonURL = ( 79 | source: string, 80 | options: Partial, 81 | ): string => { 82 | /** 83 | * Merge the default query params with the ones that we got 84 | * from the options object. 85 | */ 86 | const carbonQueryParams = { 87 | ...defaultQueryParams, 88 | ...toCarbonQueryParam(options), 89 | } as CarbonQueryParams; 90 | 91 | /** 92 | * Make the code string url safe 93 | */ 94 | const code = encodeURIComponent(source); 95 | 96 | /** 97 | * Stringify the code string and the carbon query params object to get the proper 98 | * query string to pass 99 | */ 100 | const queryString = qs.stringify({ code, ...carbonQueryParams }); 101 | 102 | /** 103 | * Return the concatenation of the base url and the query string. 104 | */ 105 | return `${BASE_URL}?${queryString}`; 106 | }; 107 | -------------------------------------------------------------------------------- /api/carbonara.ts: -------------------------------------------------------------------------------- 1 | import { NowRequest, NowResponse, NowRequestQuery } from "@now/node"; 2 | import formidable from "formidable"; 3 | import fs from "fs"; 4 | import { getCarbonURL, getScreenshot } from "./_lib"; 5 | import { Options } from "./_lib/url"; 6 | 7 | const handler = async ( 8 | data: string, 9 | query?: NowRequestQuery, 10 | ): Promise => { 11 | const url = getCarbonURL(data, query as Partial); 12 | if (!url) { 13 | return; 14 | } 15 | 16 | const imageBuffer = await getScreenshot({ url }); 17 | return imageBuffer; 18 | }; 19 | 20 | export default async (req: NowRequest, res: NowResponse): Promise => { 21 | const form = new formidable.IncomingForm(); 22 | 23 | /** 24 | * Core of the function 25 | */ 26 | form.parse(req, async function (err, fields, files) { 27 | if (err) { 28 | // eslint-disable-next-line no-console 29 | console.error(err.message); 30 | return res.status(500).send(err.message); 31 | } 32 | 33 | res.setHeader("Access-Control-Allow-Origin", "*"); 34 | res.setHeader( 35 | "Access-Control-Allow-Headers", 36 | "Origin, X-Requested-With, Content-Type, Accept", 37 | ); 38 | 39 | if (fields.data) { 40 | const buff = Buffer.from(fields.data.toString(), "base64"); 41 | const data = buff.toString(); 42 | 43 | const imageBuffer = await handler(data, req.query); 44 | 45 | if (!imageBuffer) { 46 | return null; 47 | } 48 | 49 | res.json(imageBuffer.toString("base64")); 50 | } else if (files.data) { 51 | fs.readFile(files.data.path, async (err, data) => { 52 | if (err) { 53 | // eslint-disable-next-line no-console 54 | console.error(err.message); 55 | return res.status(500).send(err.message); 56 | } 57 | 58 | const imageBuffer = await handler(data.toString(), req.query); 59 | 60 | if (!imageBuffer) { 61 | return res.status(200).send("No screenshot generated"); 62 | } 63 | 64 | return res.json(imageBuffer.toString("base64")); 65 | }); 66 | } 67 | }); 68 | }; 69 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "carboncloud", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "deploy": "vercel --prod", 8 | "format": "prettier --write \"./api/**/*.ts\"", 9 | "lint": "eslint --ext=ts api", 10 | "start": "vercel dev" 11 | }, 12 | "devDependencies": { 13 | "@types/formidable": "^1.0.31", 14 | "@types/node": "^13.13.5", 15 | "@types/puppeteer": "^2.1.0", 16 | "@types/puppeteer-core": "^2.0.0", 17 | "@typescript-eslint/eslint-plugin": "^3.0.2", 18 | "@typescript-eslint/parser": "^3.0.2", 19 | "eslint": "^7.1.0", 20 | "eslint-config-prettier": "^6.11.0", 21 | "eslint-plugin-prettier": "^3.1.3", 22 | "prettier": "^2.0.5", 23 | "typescript": "^3.9.3", 24 | "vercel": "^19.0.1" 25 | }, 26 | "dependencies": { 27 | "@now/node": "^1.6.1", 28 | "chrome-aws-lambda": "^3.0.4", 29 | "formidable": "^1.2.2", 30 | "puppeteer-core": "^3.0.4", 31 | "querystring": "^0.2.0" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "commonjs", 5 | "lib": ["es6"], 6 | "allowJs": true, 7 | "outDir": "build", 8 | "rootDir": "api", 9 | "strict": true, 10 | "noImplicitAny": true, 11 | "esModuleInterop": true, 12 | "resolveJsonModule": true 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.10.1" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.1.tgz#d5481c5095daa1c57e16e54c6f9198443afb49ff" 8 | integrity sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw== 9 | dependencies: 10 | "@babel/highlight" "^7.10.1" 11 | 12 | "@babel/helper-validator-identifier@^7.10.1": 13 | version "7.10.1" 14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz#5770b0c1a826c4f53f5ede5e153163e0318e94b5" 15 | integrity sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw== 16 | 17 | "@babel/highlight@^7.10.1": 18 | version "7.10.1" 19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.1.tgz#841d098ba613ba1a427a2b383d79e35552c38ae0" 20 | integrity sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg== 21 | dependencies: 22 | "@babel/helper-validator-identifier" "^7.10.1" 23 | chalk "^2.0.0" 24 | js-tokens "^4.0.0" 25 | 26 | "@now/node@^1.6.1": 27 | version "1.6.1" 28 | resolved "https://registry.yarnpkg.com/@now/node/-/node-1.6.1.tgz#d478bfbc98af05d3eae7b5b01b26d1a1c638819b" 29 | integrity sha512-EdSdOS4HSJRexibxIbrKCLZZ1sc0+oaD0P7kvhf26CbXSNlrZP0Iycpb+fbO4Qc2EcmGR2am90DhoX548B5a7g== 30 | dependencies: 31 | "@types/node" "*" 32 | 33 | "@types/color-name@^1.1.1": 34 | version "1.1.1" 35 | resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" 36 | integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== 37 | 38 | "@types/eslint-visitor-keys@^1.0.0": 39 | version "1.0.0" 40 | resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" 41 | integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== 42 | 43 | "@types/events@*": 44 | version "3.0.0" 45 | resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" 46 | integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== 47 | 48 | "@types/formidable@^1.0.31": 49 | version "1.0.31" 50 | resolved "https://registry.yarnpkg.com/@types/formidable/-/formidable-1.0.31.tgz#274f9dc2d0a1a9ce1feef48c24ca0859e7ec947b" 51 | integrity sha512-dIhM5t8lRP0oWe2HF8MuPvdd1TpPTjhDMAqemcq6oIZQCBQTovhBAdTQ5L5veJB4pdQChadmHuxtB0YzqvfU3Q== 52 | dependencies: 53 | "@types/events" "*" 54 | "@types/node" "*" 55 | 56 | "@types/json-schema@^7.0.3": 57 | version "7.0.4" 58 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" 59 | integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== 60 | 61 | "@types/node@*", "@types/node@^13.13.5": 62 | version "13.13.5" 63 | resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.5.tgz#96ec3b0afafd64a4ccea9107b75bf8489f0e5765" 64 | integrity sha512-3ySmiBYJPqgjiHA7oEaIo2Rzz0HrOZ7yrNO5HWyaE5q0lQ3BppDZ3N53Miz8bw2I7gh1/zir2MGVZBvpb1zq9g== 65 | 66 | "@types/puppeteer-core@^2.0.0": 67 | version "2.0.0" 68 | resolved "https://registry.yarnpkg.com/@types/puppeteer-core/-/puppeteer-core-2.0.0.tgz#3b7fbbac53d56b566f5ef096116e1d60d504aa45" 69 | integrity sha512-JvoEb7KgEkUet009ZDrtpUER3hheXoHgQByuYpJZ5WWT7LWwMH+0NTqGQXGgoOKzs+G5NA1T4DZwXK79Bhnejw== 70 | dependencies: 71 | "@types/puppeteer" "*" 72 | 73 | "@types/puppeteer@*", "@types/puppeteer@^2.1.0": 74 | version "2.1.0" 75 | resolved "https://registry.yarnpkg.com/@types/puppeteer/-/puppeteer-2.1.0.tgz#31367580654632f87f86df565f1bde0533577401" 76 | integrity sha512-QIRQXl0VaSgnwOZ1LwxD321Tfb1jLOzCWuF2BrwjEkWq2IhxSicPOddUywLV7dRSO6mcU4sWKRdoGdci6gk0Aw== 77 | dependencies: 78 | "@types/node" "*" 79 | 80 | "@types/yauzl@^2.9.1": 81 | version "2.9.1" 82 | resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" 83 | integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== 84 | dependencies: 85 | "@types/node" "*" 86 | 87 | "@typescript-eslint/eslint-plugin@^3.0.2": 88 | version "3.0.2" 89 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.0.2.tgz#4a114a066e2f9659b25682ee59d4866e15a17ec3" 90 | integrity sha512-ER3bSS/A/pKQT/hjMGCK8UQzlL0yLjuCZ/G8CDFJFVTfl3X65fvq2lNYqOG8JPTfrPa2RULCdwfOyFjZEMNExQ== 91 | dependencies: 92 | "@typescript-eslint/experimental-utils" "3.0.2" 93 | functional-red-black-tree "^1.0.1" 94 | regexpp "^3.0.0" 95 | semver "^7.3.2" 96 | tsutils "^3.17.1" 97 | 98 | "@typescript-eslint/experimental-utils@3.0.2": 99 | version "3.0.2" 100 | resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.0.2.tgz#bb2131baede8df28ec5eacfa540308ca895e5fee" 101 | integrity sha512-4Wc4EczvoY183SSEnKgqAfkj1eLtRgBQ04AAeG+m4RhTVyaazxc1uI8IHf0qLmu7xXe9j1nn+UoDJjbmGmuqXQ== 102 | dependencies: 103 | "@types/json-schema" "^7.0.3" 104 | "@typescript-eslint/typescript-estree" "3.0.2" 105 | eslint-scope "^5.0.0" 106 | eslint-utils "^2.0.0" 107 | 108 | "@typescript-eslint/parser@^3.0.2": 109 | version "3.0.2" 110 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.0.2.tgz#a92ef339added9bf7fb92605ac99c93ef243e834" 111 | integrity sha512-80Z7s83e8QXHNUspqVlWwb4t5gdz/1bBBmafElbK1wwAwiD/yvJsFyHRxlEpNrt4rdK6eB3p+2WEFkEDHAKk9w== 112 | dependencies: 113 | "@types/eslint-visitor-keys" "^1.0.0" 114 | "@typescript-eslint/experimental-utils" "3.0.2" 115 | "@typescript-eslint/typescript-estree" "3.0.2" 116 | eslint-visitor-keys "^1.1.0" 117 | 118 | "@typescript-eslint/typescript-estree@3.0.2": 119 | version "3.0.2" 120 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.0.2.tgz#67a1ce4307ebaea43443fbf3f3be7e2627157293" 121 | integrity sha512-cs84mxgC9zQ6viV8MEcigfIKQmKtBkZNDYf8Gru2M+MhnA6z9q0NFMZm2IEzKqAwN8lY5mFVd1Z8DiHj6zQ3Tw== 122 | dependencies: 123 | debug "^4.1.1" 124 | eslint-visitor-keys "^1.1.0" 125 | glob "^7.1.6" 126 | is-glob "^4.0.1" 127 | lodash "^4.17.15" 128 | semver "^7.3.2" 129 | tsutils "^3.17.1" 130 | 131 | acorn-jsx@^5.2.0: 132 | version "5.2.0" 133 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" 134 | integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== 135 | 136 | acorn@^7.1.1: 137 | version "7.2.0" 138 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" 139 | integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ== 140 | 141 | agent-base@5: 142 | version "5.1.1" 143 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" 144 | integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== 145 | 146 | ajv@^6.10.0, ajv@^6.10.2: 147 | version "6.12.2" 148 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" 149 | integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== 150 | dependencies: 151 | fast-deep-equal "^3.1.1" 152 | fast-json-stable-stringify "^2.0.0" 153 | json-schema-traverse "^0.4.1" 154 | uri-js "^4.2.2" 155 | 156 | ansi-escapes@^4.2.1: 157 | version "4.3.1" 158 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" 159 | integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== 160 | dependencies: 161 | type-fest "^0.11.0" 162 | 163 | ansi-regex@^4.1.0: 164 | version "4.1.0" 165 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 166 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 167 | 168 | ansi-regex@^5.0.0: 169 | version "5.0.0" 170 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 171 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 172 | 173 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 174 | version "3.2.1" 175 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 176 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 177 | dependencies: 178 | color-convert "^1.9.0" 179 | 180 | ansi-styles@^4.1.0: 181 | version "4.2.1" 182 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" 183 | integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== 184 | dependencies: 185 | "@types/color-name" "^1.1.1" 186 | color-convert "^2.0.1" 187 | 188 | argparse@^1.0.7: 189 | version "1.0.10" 190 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 191 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 192 | dependencies: 193 | sprintf-js "~1.0.2" 194 | 195 | astral-regex@^1.0.0: 196 | version "1.0.0" 197 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 198 | integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== 199 | 200 | balanced-match@^1.0.0: 201 | version "1.0.0" 202 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 203 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 204 | 205 | base64-js@^1.0.2: 206 | version "1.3.1" 207 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" 208 | integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== 209 | 210 | bl@^4.0.1: 211 | version "4.0.3" 212 | resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" 213 | integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== 214 | dependencies: 215 | buffer "^5.5.0" 216 | inherits "^2.0.4" 217 | readable-stream "^3.4.0" 218 | 219 | brace-expansion@^1.1.7: 220 | version "1.1.11" 221 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 222 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 223 | dependencies: 224 | balanced-match "^1.0.0" 225 | concat-map "0.0.1" 226 | 227 | buffer-crc32@~0.2.3: 228 | version "0.2.13" 229 | resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" 230 | integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= 231 | 232 | buffer@^5.2.1, buffer@^5.5.0: 233 | version "5.6.0" 234 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" 235 | integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== 236 | dependencies: 237 | base64-js "^1.0.2" 238 | ieee754 "^1.1.4" 239 | 240 | callsites@^3.0.0: 241 | version "3.1.0" 242 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 243 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 244 | 245 | chalk@^2.0.0: 246 | version "2.4.2" 247 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 248 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 249 | dependencies: 250 | ansi-styles "^3.2.1" 251 | escape-string-regexp "^1.0.5" 252 | supports-color "^5.3.0" 253 | 254 | chalk@^3.0.0: 255 | version "3.0.0" 256 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" 257 | integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== 258 | dependencies: 259 | ansi-styles "^4.1.0" 260 | supports-color "^7.1.0" 261 | 262 | chalk@^4.0.0: 263 | version "4.0.0" 264 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" 265 | integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== 266 | dependencies: 267 | ansi-styles "^4.1.0" 268 | supports-color "^7.1.0" 269 | 270 | chardet@^0.7.0: 271 | version "0.7.0" 272 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 273 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 274 | 275 | chownr@^1.1.1: 276 | version "1.1.4" 277 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" 278 | integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 279 | 280 | chrome-aws-lambda@^3.0.4: 281 | version "3.0.4" 282 | resolved "https://registry.yarnpkg.com/chrome-aws-lambda/-/chrome-aws-lambda-3.0.4.tgz#dd6f43a644d07ba759616a391fafe34eb680b940" 283 | integrity sha512-iePniobrFONg8oFyq8YuZKW2wkRYi0LSVZ9kf8zNJ35LXxXKJK/eb+aas/Rz0Doyac0zAIQbiqMGABkPXc88jQ== 284 | dependencies: 285 | lambdafs "^1.3.0" 286 | 287 | cli-cursor@^3.1.0: 288 | version "3.1.0" 289 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" 290 | integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== 291 | dependencies: 292 | restore-cursor "^3.1.0" 293 | 294 | cli-width@^2.0.0: 295 | version "2.2.1" 296 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" 297 | integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== 298 | 299 | color-convert@^1.9.0: 300 | version "1.9.3" 301 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 302 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 303 | dependencies: 304 | color-name "1.1.3" 305 | 306 | color-convert@^2.0.1: 307 | version "2.0.1" 308 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 309 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 310 | dependencies: 311 | color-name "~1.1.4" 312 | 313 | color-name@1.1.3: 314 | version "1.1.3" 315 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 316 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 317 | 318 | color-name@~1.1.4: 319 | version "1.1.4" 320 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 321 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 322 | 323 | concat-map@0.0.1: 324 | version "0.0.1" 325 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 326 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 327 | 328 | cross-spawn@^7.0.2: 329 | version "7.0.3" 330 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 331 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 332 | dependencies: 333 | path-key "^3.1.0" 334 | shebang-command "^2.0.0" 335 | which "^2.0.1" 336 | 337 | debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: 338 | version "4.1.1" 339 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 340 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 341 | dependencies: 342 | ms "^2.1.1" 343 | 344 | deep-is@^0.1.3: 345 | version "0.1.3" 346 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 347 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 348 | 349 | doctrine@^3.0.0: 350 | version "3.0.0" 351 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 352 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 353 | dependencies: 354 | esutils "^2.0.2" 355 | 356 | emoji-regex@^7.0.1: 357 | version "7.0.3" 358 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 359 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 360 | 361 | emoji-regex@^8.0.0: 362 | version "8.0.0" 363 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 364 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 365 | 366 | end-of-stream@^1.1.0, end-of-stream@^1.4.1: 367 | version "1.4.4" 368 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 369 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 370 | dependencies: 371 | once "^1.4.0" 372 | 373 | escape-string-regexp@^1.0.5: 374 | version "1.0.5" 375 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 376 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 377 | 378 | eslint-config-prettier@^6.11.0: 379 | version "6.11.0" 380 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1" 381 | integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA== 382 | dependencies: 383 | get-stdin "^6.0.0" 384 | 385 | eslint-plugin-prettier@^3.1.3: 386 | version "3.1.3" 387 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz#ae116a0fc0e598fdae48743a4430903de5b4e6ca" 388 | integrity sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ== 389 | dependencies: 390 | prettier-linter-helpers "^1.0.0" 391 | 392 | eslint-scope@^5.0.0: 393 | version "5.0.0" 394 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" 395 | integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== 396 | dependencies: 397 | esrecurse "^4.1.0" 398 | estraverse "^4.1.1" 399 | 400 | eslint-utils@^2.0.0: 401 | version "2.0.0" 402 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" 403 | integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== 404 | dependencies: 405 | eslint-visitor-keys "^1.1.0" 406 | 407 | eslint-visitor-keys@^1.1.0: 408 | version "1.1.0" 409 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" 410 | integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== 411 | 412 | eslint@^7.1.0: 413 | version "7.1.0" 414 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.1.0.tgz#d9a1df25e5b7859b0a3d86bb05f0940ab676a851" 415 | integrity sha512-DfS3b8iHMK5z/YLSme8K5cge168I8j8o1uiVmFCgnnjxZQbCGyraF8bMl7Ju4yfBmCuxD7shOF7eqGkcuIHfsA== 416 | dependencies: 417 | "@babel/code-frame" "^7.0.0" 418 | ajv "^6.10.0" 419 | chalk "^4.0.0" 420 | cross-spawn "^7.0.2" 421 | debug "^4.0.1" 422 | doctrine "^3.0.0" 423 | eslint-scope "^5.0.0" 424 | eslint-utils "^2.0.0" 425 | eslint-visitor-keys "^1.1.0" 426 | espree "^7.0.0" 427 | esquery "^1.2.0" 428 | esutils "^2.0.2" 429 | file-entry-cache "^5.0.1" 430 | functional-red-black-tree "^1.0.1" 431 | glob-parent "^5.0.0" 432 | globals "^12.1.0" 433 | ignore "^4.0.6" 434 | import-fresh "^3.0.0" 435 | imurmurhash "^0.1.4" 436 | inquirer "^7.0.0" 437 | is-glob "^4.0.0" 438 | js-yaml "^3.13.1" 439 | json-stable-stringify-without-jsonify "^1.0.1" 440 | levn "^0.4.1" 441 | lodash "^4.17.14" 442 | minimatch "^3.0.4" 443 | natural-compare "^1.4.0" 444 | optionator "^0.9.1" 445 | progress "^2.0.0" 446 | regexpp "^3.1.0" 447 | semver "^7.2.1" 448 | strip-ansi "^6.0.0" 449 | strip-json-comments "^3.1.0" 450 | table "^5.2.3" 451 | text-table "^0.2.0" 452 | v8-compile-cache "^2.0.3" 453 | 454 | espree@^7.0.0: 455 | version "7.0.0" 456 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.0.0.tgz#8a7a60f218e69f120a842dc24c5a88aa7748a74e" 457 | integrity sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw== 458 | dependencies: 459 | acorn "^7.1.1" 460 | acorn-jsx "^5.2.0" 461 | eslint-visitor-keys "^1.1.0" 462 | 463 | esprima@^4.0.0: 464 | version "4.0.1" 465 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 466 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 467 | 468 | esquery@^1.2.0: 469 | version "1.3.1" 470 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" 471 | integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== 472 | dependencies: 473 | estraverse "^5.1.0" 474 | 475 | esrecurse@^4.1.0: 476 | version "4.2.1" 477 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 478 | integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== 479 | dependencies: 480 | estraverse "^4.1.0" 481 | 482 | estraverse@^4.1.0, estraverse@^4.1.1: 483 | version "4.3.0" 484 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 485 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 486 | 487 | estraverse@^5.1.0: 488 | version "5.1.0" 489 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" 490 | integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== 491 | 492 | esutils@^2.0.2: 493 | version "2.0.3" 494 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 495 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 496 | 497 | external-editor@^3.0.3: 498 | version "3.1.0" 499 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" 500 | integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== 501 | dependencies: 502 | chardet "^0.7.0" 503 | iconv-lite "^0.4.24" 504 | tmp "^0.0.33" 505 | 506 | extract-zip@^2.0.0: 507 | version "2.0.0" 508 | resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.0.tgz#f53b71d44f4ff5a4527a2259ade000fb8b303492" 509 | integrity sha512-i42GQ498yibjdvIhivUsRslx608whtGoFIhF26Z7O4MYncBxp8CwalOs1lnHy21A9sIohWO2+uiE4SRtC9JXDg== 510 | dependencies: 511 | debug "^4.1.1" 512 | get-stream "^5.1.0" 513 | yauzl "^2.10.0" 514 | optionalDependencies: 515 | "@types/yauzl" "^2.9.1" 516 | 517 | fast-deep-equal@^3.1.1: 518 | version "3.1.1" 519 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" 520 | integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== 521 | 522 | fast-diff@^1.1.2: 523 | version "1.2.0" 524 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" 525 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== 526 | 527 | fast-json-stable-stringify@^2.0.0: 528 | version "2.1.0" 529 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 530 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 531 | 532 | fast-levenshtein@^2.0.6: 533 | version "2.0.6" 534 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 535 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 536 | 537 | fd-slicer@~1.1.0: 538 | version "1.1.0" 539 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" 540 | integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= 541 | dependencies: 542 | pend "~1.2.0" 543 | 544 | figures@^3.0.0: 545 | version "3.2.0" 546 | resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" 547 | integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== 548 | dependencies: 549 | escape-string-regexp "^1.0.5" 550 | 551 | file-entry-cache@^5.0.1: 552 | version "5.0.1" 553 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" 554 | integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== 555 | dependencies: 556 | flat-cache "^2.0.1" 557 | 558 | flat-cache@^2.0.1: 559 | version "2.0.1" 560 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" 561 | integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== 562 | dependencies: 563 | flatted "^2.0.0" 564 | rimraf "2.6.3" 565 | write "1.0.3" 566 | 567 | flatted@^2.0.0: 568 | version "2.0.2" 569 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" 570 | integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== 571 | 572 | formidable@^1.2.2: 573 | version "1.2.2" 574 | resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9" 575 | integrity sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q== 576 | 577 | fs-constants@^1.0.0: 578 | version "1.0.0" 579 | resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" 580 | integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== 581 | 582 | fs.realpath@^1.0.0: 583 | version "1.0.0" 584 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 585 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 586 | 587 | functional-red-black-tree@^1.0.1: 588 | version "1.0.1" 589 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 590 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 591 | 592 | get-stdin@^6.0.0: 593 | version "6.0.0" 594 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" 595 | integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== 596 | 597 | get-stream@^5.1.0: 598 | version "5.1.0" 599 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" 600 | integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== 601 | dependencies: 602 | pump "^3.0.0" 603 | 604 | glob-parent@^5.0.0: 605 | version "5.1.1" 606 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" 607 | integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== 608 | dependencies: 609 | is-glob "^4.0.1" 610 | 611 | glob@^7.1.3, glob@^7.1.6: 612 | version "7.1.6" 613 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 614 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 615 | dependencies: 616 | fs.realpath "^1.0.0" 617 | inflight "^1.0.4" 618 | inherits "2" 619 | minimatch "^3.0.4" 620 | once "^1.3.0" 621 | path-is-absolute "^1.0.0" 622 | 623 | globals@^12.1.0: 624 | version "12.4.0" 625 | resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" 626 | integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== 627 | dependencies: 628 | type-fest "^0.8.1" 629 | 630 | has-flag@^3.0.0: 631 | version "3.0.0" 632 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 633 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 634 | 635 | has-flag@^4.0.0: 636 | version "4.0.0" 637 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 638 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 639 | 640 | https-proxy-agent@^4.0.0: 641 | version "4.0.0" 642 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" 643 | integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== 644 | dependencies: 645 | agent-base "5" 646 | debug "4" 647 | 648 | iconv-lite@^0.4.24: 649 | version "0.4.24" 650 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 651 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 652 | dependencies: 653 | safer-buffer ">= 2.1.2 < 3" 654 | 655 | ieee754@^1.1.4: 656 | version "1.1.13" 657 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" 658 | integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== 659 | 660 | ignore@^4.0.6: 661 | version "4.0.6" 662 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 663 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 664 | 665 | import-fresh@^3.0.0: 666 | version "3.2.1" 667 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" 668 | integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== 669 | dependencies: 670 | parent-module "^1.0.0" 671 | resolve-from "^4.0.0" 672 | 673 | imurmurhash@^0.1.4: 674 | version "0.1.4" 675 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 676 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 677 | 678 | inflight@^1.0.4: 679 | version "1.0.6" 680 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 681 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 682 | dependencies: 683 | once "^1.3.0" 684 | wrappy "1" 685 | 686 | inherits@2, inherits@^2.0.3, inherits@^2.0.4: 687 | version "2.0.4" 688 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 689 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 690 | 691 | inquirer@^7.0.0: 692 | version "7.1.0" 693 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" 694 | integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== 695 | dependencies: 696 | ansi-escapes "^4.2.1" 697 | chalk "^3.0.0" 698 | cli-cursor "^3.1.0" 699 | cli-width "^2.0.0" 700 | external-editor "^3.0.3" 701 | figures "^3.0.0" 702 | lodash "^4.17.15" 703 | mute-stream "0.0.8" 704 | run-async "^2.4.0" 705 | rxjs "^6.5.3" 706 | string-width "^4.1.0" 707 | strip-ansi "^6.0.0" 708 | through "^2.3.6" 709 | 710 | is-extglob@^2.1.1: 711 | version "2.1.1" 712 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 713 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 714 | 715 | is-fullwidth-code-point@^2.0.0: 716 | version "2.0.0" 717 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 718 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 719 | 720 | is-fullwidth-code-point@^3.0.0: 721 | version "3.0.0" 722 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 723 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 724 | 725 | is-glob@^4.0.0, is-glob@^4.0.1: 726 | version "4.0.1" 727 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 728 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 729 | dependencies: 730 | is-extglob "^2.1.1" 731 | 732 | isexe@^2.0.0: 733 | version "2.0.0" 734 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 735 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 736 | 737 | js-tokens@^4.0.0: 738 | version "4.0.0" 739 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 740 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 741 | 742 | js-yaml@^3.13.1: 743 | version "3.14.0" 744 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" 745 | integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== 746 | dependencies: 747 | argparse "^1.0.7" 748 | esprima "^4.0.0" 749 | 750 | json-schema-traverse@^0.4.1: 751 | version "0.4.1" 752 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 753 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 754 | 755 | json-stable-stringify-without-jsonify@^1.0.1: 756 | version "1.0.1" 757 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 758 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 759 | 760 | lambdafs@^1.3.0: 761 | version "1.3.0" 762 | resolved "https://registry.yarnpkg.com/lambdafs/-/lambdafs-1.3.0.tgz#7e369cedc9a09623bb365fa99a1113c2ab2fc7ae" 763 | integrity sha512-HqRPmEgtkTW4sCYDUjTEuTGkjCHuLvtZU8iM8GkhD7SpjW4AJJbBk86YU4K43sWGuW5Vmzp1lVCx4ab/kJsuBw== 764 | dependencies: 765 | tar-fs "^2.0.0" 766 | 767 | levn@^0.4.1: 768 | version "0.4.1" 769 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 770 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 771 | dependencies: 772 | prelude-ls "^1.2.1" 773 | type-check "~0.4.0" 774 | 775 | lodash@^4.17.14, lodash@^4.17.15: 776 | version "4.17.15" 777 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" 778 | integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== 779 | 780 | mime@^2.0.3: 781 | version "2.4.5" 782 | resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.5.tgz#d8de2ecb92982dedbb6541c9b6841d7f218ea009" 783 | integrity sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w== 784 | 785 | mimic-fn@^2.1.0: 786 | version "2.1.0" 787 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 788 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 789 | 790 | minimatch@^3.0.4: 791 | version "3.0.4" 792 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 793 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 794 | dependencies: 795 | brace-expansion "^1.1.7" 796 | 797 | minimist@^1.2.5: 798 | version "1.2.5" 799 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 800 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 801 | 802 | mkdirp-classic@^0.5.2: 803 | version "0.5.3" 804 | resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" 805 | integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== 806 | 807 | mkdirp@^0.5.1: 808 | version "0.5.5" 809 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 810 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 811 | dependencies: 812 | minimist "^1.2.5" 813 | 814 | ms@^2.1.1: 815 | version "2.1.2" 816 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 817 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 818 | 819 | mute-stream@0.0.8: 820 | version "0.0.8" 821 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" 822 | integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== 823 | 824 | natural-compare@^1.4.0: 825 | version "1.4.0" 826 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 827 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 828 | 829 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 830 | version "1.4.0" 831 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 832 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 833 | dependencies: 834 | wrappy "1" 835 | 836 | onetime@^5.1.0: 837 | version "5.1.0" 838 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" 839 | integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== 840 | dependencies: 841 | mimic-fn "^2.1.0" 842 | 843 | optionator@^0.9.1: 844 | version "0.9.1" 845 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 846 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 847 | dependencies: 848 | deep-is "^0.1.3" 849 | fast-levenshtein "^2.0.6" 850 | levn "^0.4.1" 851 | prelude-ls "^1.2.1" 852 | type-check "^0.4.0" 853 | word-wrap "^1.2.3" 854 | 855 | os-tmpdir@~1.0.2: 856 | version "1.0.2" 857 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 858 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 859 | 860 | parent-module@^1.0.0: 861 | version "1.0.1" 862 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 863 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 864 | dependencies: 865 | callsites "^3.0.0" 866 | 867 | path-is-absolute@^1.0.0: 868 | version "1.0.1" 869 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 870 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 871 | 872 | path-key@^3.1.0: 873 | version "3.1.1" 874 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 875 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 876 | 877 | pend@~1.2.0: 878 | version "1.2.0" 879 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" 880 | integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= 881 | 882 | prelude-ls@^1.2.1: 883 | version "1.2.1" 884 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 885 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 886 | 887 | prettier-linter-helpers@^1.0.0: 888 | version "1.0.0" 889 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" 890 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== 891 | dependencies: 892 | fast-diff "^1.1.2" 893 | 894 | prettier@^2.0.5: 895 | version "2.0.5" 896 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" 897 | integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== 898 | 899 | progress@^2.0.0, progress@^2.0.1: 900 | version "2.0.3" 901 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 902 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 903 | 904 | proxy-from-env@^1.0.0: 905 | version "1.1.0" 906 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" 907 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 908 | 909 | pump@^3.0.0: 910 | version "3.0.0" 911 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 912 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 913 | dependencies: 914 | end-of-stream "^1.1.0" 915 | once "^1.3.1" 916 | 917 | punycode@^2.1.0: 918 | version "2.1.1" 919 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 920 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 921 | 922 | puppeteer-core@^3.0.4: 923 | version "3.0.4" 924 | resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-3.0.4.tgz#2948b31c83a46500bdf4b6f1024180039e65fd09" 925 | integrity sha512-DhsR97T84FguRBuWJbNXMIOzrO64a80CMFOoLyiQWX7MGu+ZlhcqAagZyvRDRYfSoyqYUiIqH0vgtfQkfRgQFg== 926 | dependencies: 927 | debug "^4.1.0" 928 | extract-zip "^2.0.0" 929 | https-proxy-agent "^4.0.0" 930 | mime "^2.0.3" 931 | progress "^2.0.1" 932 | proxy-from-env "^1.0.0" 933 | rimraf "^3.0.2" 934 | tar-fs "^2.0.0" 935 | unbzip2-stream "^1.3.3" 936 | ws "^7.2.3" 937 | 938 | querystring@^0.2.0: 939 | version "0.2.0" 940 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 941 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= 942 | 943 | readable-stream@^3.1.1, readable-stream@^3.4.0: 944 | version "3.6.0" 945 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 946 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 947 | dependencies: 948 | inherits "^2.0.3" 949 | string_decoder "^1.1.1" 950 | util-deprecate "^1.0.1" 951 | 952 | regexpp@^3.0.0, regexpp@^3.1.0: 953 | version "3.1.0" 954 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" 955 | integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== 956 | 957 | resolve-from@^4.0.0: 958 | version "4.0.0" 959 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 960 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 961 | 962 | restore-cursor@^3.1.0: 963 | version "3.1.0" 964 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" 965 | integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== 966 | dependencies: 967 | onetime "^5.1.0" 968 | signal-exit "^3.0.2" 969 | 970 | rimraf@2.6.3: 971 | version "2.6.3" 972 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 973 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 974 | dependencies: 975 | glob "^7.1.3" 976 | 977 | rimraf@^3.0.2: 978 | version "3.0.2" 979 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 980 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 981 | dependencies: 982 | glob "^7.1.3" 983 | 984 | run-async@^2.4.0: 985 | version "2.4.1" 986 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" 987 | integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== 988 | 989 | rxjs@^6.5.3: 990 | version "6.5.5" 991 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" 992 | integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== 993 | dependencies: 994 | tslib "^1.9.0" 995 | 996 | safe-buffer@~5.2.0: 997 | version "5.2.1" 998 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 999 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1000 | 1001 | "safer-buffer@>= 2.1.2 < 3": 1002 | version "2.1.2" 1003 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1004 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1005 | 1006 | semver@^7.2.1, semver@^7.3.2: 1007 | version "7.3.2" 1008 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" 1009 | integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== 1010 | 1011 | shebang-command@^2.0.0: 1012 | version "2.0.0" 1013 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1014 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1015 | dependencies: 1016 | shebang-regex "^3.0.0" 1017 | 1018 | shebang-regex@^3.0.0: 1019 | version "3.0.0" 1020 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1021 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1022 | 1023 | signal-exit@^3.0.2: 1024 | version "3.0.3" 1025 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 1026 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 1027 | 1028 | slice-ansi@^2.1.0: 1029 | version "2.1.0" 1030 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" 1031 | integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== 1032 | dependencies: 1033 | ansi-styles "^3.2.0" 1034 | astral-regex "^1.0.0" 1035 | is-fullwidth-code-point "^2.0.0" 1036 | 1037 | sprintf-js@~1.0.2: 1038 | version "1.0.3" 1039 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1040 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1041 | 1042 | string-width@^3.0.0: 1043 | version "3.1.0" 1044 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 1045 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 1046 | dependencies: 1047 | emoji-regex "^7.0.1" 1048 | is-fullwidth-code-point "^2.0.0" 1049 | strip-ansi "^5.1.0" 1050 | 1051 | string-width@^4.1.0: 1052 | version "4.2.0" 1053 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" 1054 | integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== 1055 | dependencies: 1056 | emoji-regex "^8.0.0" 1057 | is-fullwidth-code-point "^3.0.0" 1058 | strip-ansi "^6.0.0" 1059 | 1060 | string_decoder@^1.1.1: 1061 | version "1.3.0" 1062 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 1063 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 1064 | dependencies: 1065 | safe-buffer "~5.2.0" 1066 | 1067 | strip-ansi@^5.1.0: 1068 | version "5.2.0" 1069 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 1070 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 1071 | dependencies: 1072 | ansi-regex "^4.1.0" 1073 | 1074 | strip-ansi@^6.0.0: 1075 | version "6.0.0" 1076 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 1077 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1078 | dependencies: 1079 | ansi-regex "^5.0.0" 1080 | 1081 | strip-json-comments@^3.1.0: 1082 | version "3.1.0" 1083 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" 1084 | integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== 1085 | 1086 | supports-color@^5.3.0: 1087 | version "5.5.0" 1088 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1089 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1090 | dependencies: 1091 | has-flag "^3.0.0" 1092 | 1093 | supports-color@^7.1.0: 1094 | version "7.1.0" 1095 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" 1096 | integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== 1097 | dependencies: 1098 | has-flag "^4.0.0" 1099 | 1100 | table@^5.2.3: 1101 | version "5.4.6" 1102 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" 1103 | integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== 1104 | dependencies: 1105 | ajv "^6.10.2" 1106 | lodash "^4.17.14" 1107 | slice-ansi "^2.1.0" 1108 | string-width "^3.0.0" 1109 | 1110 | tar-fs@^2.0.0: 1111 | version "2.1.0" 1112 | resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz#d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5" 1113 | integrity sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg== 1114 | dependencies: 1115 | chownr "^1.1.1" 1116 | mkdirp-classic "^0.5.2" 1117 | pump "^3.0.0" 1118 | tar-stream "^2.0.0" 1119 | 1120 | tar-stream@^2.0.0: 1121 | version "2.1.2" 1122 | resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325" 1123 | integrity sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q== 1124 | dependencies: 1125 | bl "^4.0.1" 1126 | end-of-stream "^1.4.1" 1127 | fs-constants "^1.0.0" 1128 | inherits "^2.0.3" 1129 | readable-stream "^3.1.1" 1130 | 1131 | text-table@^0.2.0: 1132 | version "0.2.0" 1133 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1134 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1135 | 1136 | through@^2.3.6, through@^2.3.8: 1137 | version "2.3.8" 1138 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1139 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 1140 | 1141 | tmp@^0.0.33: 1142 | version "0.0.33" 1143 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1144 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== 1145 | dependencies: 1146 | os-tmpdir "~1.0.2" 1147 | 1148 | tslib@^1.8.1, tslib@^1.9.0: 1149 | version "1.13.0" 1150 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" 1151 | integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== 1152 | 1153 | tsutils@^3.17.1: 1154 | version "3.17.1" 1155 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" 1156 | integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== 1157 | dependencies: 1158 | tslib "^1.8.1" 1159 | 1160 | type-check@^0.4.0, type-check@~0.4.0: 1161 | version "0.4.0" 1162 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 1163 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 1164 | dependencies: 1165 | prelude-ls "^1.2.1" 1166 | 1167 | type-fest@^0.11.0: 1168 | version "0.11.0" 1169 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" 1170 | integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== 1171 | 1172 | type-fest@^0.8.1: 1173 | version "0.8.1" 1174 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" 1175 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 1176 | 1177 | typescript@^3.9.3: 1178 | version "3.9.3" 1179 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.3.tgz#d3ac8883a97c26139e42df5e93eeece33d610b8a" 1180 | integrity sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ== 1181 | 1182 | unbzip2-stream@^1.3.3: 1183 | version "1.4.2" 1184 | resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.2.tgz#84eb9e783b186d8fb397515fbb656f312f1a7dbf" 1185 | integrity sha512-pZMVAofMrrHX6Ik39hCk470kulCbmZ2SWfQLPmTWqfJV/oUm0gn1CblvHdUu4+54Je6Jq34x8kY6XjTy6dMkOg== 1186 | dependencies: 1187 | buffer "^5.2.1" 1188 | through "^2.3.8" 1189 | 1190 | uri-js@^4.2.2: 1191 | version "4.2.2" 1192 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 1193 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== 1194 | dependencies: 1195 | punycode "^2.1.0" 1196 | 1197 | util-deprecate@^1.0.1: 1198 | version "1.0.2" 1199 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1200 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1201 | 1202 | v8-compile-cache@^2.0.3: 1203 | version "2.1.0" 1204 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" 1205 | integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== 1206 | 1207 | vercel@^19.0.1: 1208 | version "19.0.1" 1209 | resolved "https://registry.yarnpkg.com/vercel/-/vercel-19.0.1.tgz#a0c3ca40f19cb12f0dd07e3249e175c3c513f461" 1210 | integrity sha512-T8Qm9+3h/R89i6gUY1swGdfTMEV1I6KREEti3753i1x3ITYTh8NRpOP04ixP3/klELH1LXnfm44D/0sd9z/WXg== 1211 | 1212 | which@^2.0.1: 1213 | version "2.0.2" 1214 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1215 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1216 | dependencies: 1217 | isexe "^2.0.0" 1218 | 1219 | word-wrap@^1.2.3: 1220 | version "1.2.3" 1221 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 1222 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 1223 | 1224 | wrappy@1: 1225 | version "1.0.2" 1226 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1227 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1228 | 1229 | write@1.0.3: 1230 | version "1.0.3" 1231 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" 1232 | integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== 1233 | dependencies: 1234 | mkdirp "^0.5.1" 1235 | 1236 | ws@^7.2.3: 1237 | version "7.3.0" 1238 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" 1239 | integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== 1240 | 1241 | yauzl@^2.10.0: 1242 | version "2.10.0" 1243 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" 1244 | integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= 1245 | dependencies: 1246 | buffer-crc32 "~0.2.3" 1247 | fd-slicer "~1.1.0" 1248 | --------------------------------------------------------------------------------