From 56a29318cf9249827eb65b38c9b825075dfe506f Mon Sep 17 00:00:00 2001 From: tomekkleszcz Date: Sat, 26 Dec 2020 14:45:39 +0100 Subject: [PATCH] Initial commit --- .eslintrc.js | 23 + .github/workflows/publish.yml | 23 + .github/workflows/tests.yml | 16 + .gitignore | 4 + .npmignore | 5 + .prettierrc.js | 9 + README.md | 41 +- demo/demo.png | Bin 0 -> 23939 bytes package.json | 37 ++ src/TwemojiText/index.styles.ts | 11 + src/TwemojiText/index.tsx | 44 ++ src/index.ts | 3 + src/util.ts | 11 + tsconfig.json | 22 + yarn.lock | 964 ++++++++++++++++++++++++++++++++ 15 files changed, 1212 insertions(+), 1 deletion(-) create mode 100644 .eslintrc.js create mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/tests.yml create mode 100644 .gitignore create mode 100644 .npmignore create mode 100644 .prettierrc.js create mode 100644 demo/demo.png create mode 100644 package.json create mode 100644 src/TwemojiText/index.styles.ts create mode 100644 src/TwemojiText/index.tsx create mode 100644 src/index.ts create mode 100644 src/util.ts create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..5d00855 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,23 @@ +module.exports = { + root: true, + extends: [ + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended' + ], + parser: '@typescript-eslint/parser', + parserOptions: { + project: './tsconfig.json' + }, + plugins: ['@typescript-eslint'], + rules: { + 'comma-dangle': 'off', + 'no-spaced-func': 'off', + 'newline-per-chained-call': ['error'], + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-namespace': 'off', + '@typescript-eslint/no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars-experimental': 'error', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off' + } +}; \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..8b1482f --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,23 @@ +name: Publish + +on: + workflow_run: + workflows: + - Tests + branches: + - main + types: + - completed + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12 + - run: yarn install + - uses: JS-DevTools/npm-publish@v1 + with: + token: ${{ secrets.NPM_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..17e55ed --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,16 @@ +name: Tests + +on: push + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: 12 + - name: Install dependencies + run: yarn install + - name: ESLint checks + run: yarn lint \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..79ef51d --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +dist/ +node_modules/ +.idea +.vscode \ No newline at end of file diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..d7c045f --- /dev/null +++ b/.npmignore @@ -0,0 +1,5 @@ +node_modules/ +.idea +.vscode +yarn.lock +.github \ No newline at end of file diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..9da1760 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,9 @@ +module.exports = { + printWidth: 96, + bracketSpacing: false, + jsxBracketSameLine: false, + singleQuote: true, + trailingComma: "none", + tabWidth: 4, + arrowParens: "avoid", +}; diff --git a/README.md b/README.md index 9694bb4..e2282f3 100644 --- a/README.md +++ b/README.md @@ -1 +1,40 @@ -# 😁 react-native-twemojis 📦 \ No newline at end of file +# 😁 react-native-twemojis 📦 + +[![npm](https://img.shields.io/npm/v/react-native-twemojis)](https://www.npmjs.com/package/twemojis) +![npm](https://img.shields.io/npm/dm/react-native-twemojis) +![GitHub Workflow Status](https://img.shields.io/github/workflow/status/tomekkleszcz/react-native-twemojis/Publish) +![GitHub Workflow Status](https://img.shields.io/github/workflow/status/tomekkleszcz/react-native-twemojis/Tests?label=tests) + +Replace emojis with Twemojis in your next React Native app. + +## 📥 Installation + +`npm install react-native-twemojis` + +or + +`yarn add react-native-twemojis` + +## 👀 Demo + +At the top there is `Text` component rendered on iOS device, and at the bottom there is rendered `TwemojiText` component. + +![React Native Swipe Slider demo](demo/demo.png) + +## 🧰 Usage + +The `TwemojiText` component behaves just like `Text` component, but replaces all the emojis with their Twemoji equivalent. + +``` +import TwemojiText from 'react-native-twemojis'; + +const Component = () => { + return ( + + Hello world! 🌎 + + ); +} +``` + +The `TwemojiText` component accepts all `Text` props by default. If you want to customize the styling of the Twemojis there is a `twemojiStyle` prop which accepts `Image` styling. \ No newline at end of file diff --git a/demo/demo.png b/demo/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..fb0801f5e54b926b8250ee6b7092a2c4814c4208 GIT binary patch literal 23939 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 X!}`O}1@N>Z5s}7YU6o3hRq+1-*tBGp literal 0 HcmV?d00001 diff --git a/package.json b/package.json new file mode 100644 index 0000000..44c8dd3 --- /dev/null +++ b/package.json @@ -0,0 +1,37 @@ +{ + "name": "react-native-twemojis", + "version": "1.0.0", + "description": "Replace emojis with Twemojis in your next React Native app.", + "main": "src/index.ts", + "repository": "git@github.com:tomekkleszcz/react-native-twemojis.git", + "author": "tomekkleszcz ", + "license": "MIT", + "private": false, + "keywords": [ + "react", + "native", + "twemoji", + "twemojis", + "emoji", + "emojis", + "replace" + ], + "scripts": { + "lint": "./node_modules/.bin/eslint ./src/ --ext .js,.jsx,.ts,.tsx", + "prepublish": "tsc" + }, + "devDependencies": { + "@types/react-native": "^0.63.42", + "@typescript-eslint/eslint-plugin": "^4.11.0", + "@typescript-eslint/parser": "^4.11.0", + "eslint": "^7.16.0", + "typescript": "^4.1.3" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-native": ">= 0.59.0" + }, + "dependencies": { + "react-string-replace": "^0.4.4" + } +} diff --git a/src/TwemojiText/index.styles.ts b/src/TwemojiText/index.styles.ts new file mode 100644 index 0000000..cec923c --- /dev/null +++ b/src/TwemojiText/index.styles.ts @@ -0,0 +1,11 @@ +//Stylesheet +import {StyleSheet} from 'react-native'; + +const Styles = StyleSheet.create({ + emoji: { + width: 24, + height: 24 + } +}); + +export default Styles; \ No newline at end of file diff --git a/src/TwemojiText/index.tsx b/src/TwemojiText/index.tsx new file mode 100644 index 0000000..de698be --- /dev/null +++ b/src/TwemojiText/index.tsx @@ -0,0 +1,44 @@ +import * as React from "react"; + +//Components +import {Image, Text} from "react-native"; + +//Utils +import reactStringReplace from "react-string-replace"; +import {emojiUnicode} from "../util"; + +//Styles +import Styles from "./index.styles"; + +//Types +import {TextProps, ImageStyle} from "react-native"; + +type TwemojiTextProps = { + twemojiStyle?: ImageStyle; + children: string; +}; + +const EMOJI_REGEX = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/g; + +const TwemojiText: React.VFC = ({ + twemojiStyle, + children, + ...props +}) => { + const parts = reactStringReplace(children, EMOJI_REGEX, (emoji, i) => ( + + )); + + return {parts}; +}; + +export default TwemojiText; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..0a19ae1 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,3 @@ +import TwemojiText from './TwemojiText'; + +export default TwemojiText; \ No newline at end of file diff --git a/src/util.ts b/src/util.ts new file mode 100644 index 0000000..31f6b08 --- /dev/null +++ b/src/util.ts @@ -0,0 +1,11 @@ +export const emojiUnicode = (emoji: string): string => { + let comp; + if (emoji.length === 1) { + comp = emoji.charCodeAt(0); + } + comp = (emoji.charCodeAt(0) - 0xd800) * 0x400 + (emoji.charCodeAt(1) - 0xdc00) + 0x10000; + if (comp < 0) { + comp = emoji.charCodeAt(0); + } + return comp.toString(16); +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..ffdaf76 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "commonjs", + "lib": ["es6"], + "jsx": "react-native", + "moduleResolution": "node", + "esModuleInterop": true, + "declaration": true, + "noLib": false, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "sourceMap": true, + "noImplicitAny": true, + "outDir": "dist/", + "listFiles": false, + "noEmitHelpers": false + }, + "include": ["src/**/*"], + "exclude": ["node_modules"], + "compileOnSave": false +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..8ca1ba0 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,964 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@eslint/eslintrc@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76" + integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + +"@types/json-schema@^7.0.3": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + +"@types/prop-types@*": + version "15.7.3" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" + integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + +"@types/react-native@^0.63.42": + version "0.63.42" + resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.63.42.tgz#d0baf405edc646d15d5a7f8e67983b8701c1ea2a" + integrity sha512-zb7m2Uwfz6MQh/Nq1DDAmzTRO+EQWV7ZyRl9ZZ2QLd1480xjRjPDQqRkp4vuk3gyRlQtwi0v9I3tOh2IxHFujw== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "17.0.0" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8" + integrity sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@typescript-eslint/eslint-plugin@^4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.11.0.tgz#bc6c1e4175c0cf42083da4314f7931ad12f731cc" + integrity sha512-x4arJMXBxyD6aBXLm3W7mSDZRiABzy+2PCLJbL7OPqlp53VXhaA1HKK7R2rTee5OlRhnUgnp8lZyVIqjnyPT6g== + dependencies: + "@typescript-eslint/experimental-utils" "4.11.0" + "@typescript-eslint/scope-manager" "4.11.0" + debug "^4.1.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.11.0.tgz#d1a47cc6cfe1c080ce4ead79267574b9881a1565" + integrity sha512-1VC6mSbYwl1FguKt8OgPs8xxaJgtqFpjY/UzUYDBKq4pfQ5lBvN2WVeqYkzf7evW42axUHYl2jm9tNyFsb8oLg== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.11.0" + "@typescript-eslint/types" "4.11.0" + "@typescript-eslint/typescript-estree" "4.11.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.11.0.tgz#1dd3d7e42708c10ce9f3aa64c63c0ab99868b4e2" + integrity sha512-NBTtKCC7ZtuxEV5CrHUO4Pg2s784pvavc3cnz6V+oJvVbK4tH9135f/RBP6eUA2KHiFKAollSrgSctQGmHbqJQ== + dependencies: + "@typescript-eslint/scope-manager" "4.11.0" + "@typescript-eslint/types" "4.11.0" + "@typescript-eslint/typescript-estree" "4.11.0" + debug "^4.1.1" + +"@typescript-eslint/scope-manager@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.11.0.tgz#2d906537db8a3a946721699e4fc0833810490254" + integrity sha512-6VSTm/4vC2dHM3ySDW9Kl48en+yLNfVV6LECU8jodBHQOhO8adAVizaZ1fV0QGZnLQjQ/y0aBj5/KXPp2hBTjA== + dependencies: + "@typescript-eslint/types" "4.11.0" + "@typescript-eslint/visitor-keys" "4.11.0" + +"@typescript-eslint/types@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.11.0.tgz#86cf95e7eac4ccfd183f9fcf1480cece7caf4ca4" + integrity sha512-XXOdt/NPX++txOQHM1kUMgJUS43KSlXGdR/aDyEwuAEETwuPt02Nc7v+s57PzuSqMbNLclblQdv3YcWOdXhQ7g== + +"@typescript-eslint/typescript-estree@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.11.0.tgz#1144d145841e5987d61c4c845442a24b24165a4b" + integrity sha512-eA6sT5dE5RHAFhtcC+b5WDlUIGwnO9b0yrfGa1mIOIAjqwSQCpXbLiFmKTdRbQN/xH2EZkGqqLDrKUuYOZ0+Hg== + dependencies: + "@typescript-eslint/types" "4.11.0" + "@typescript-eslint/visitor-keys" "4.11.0" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/visitor-keys@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.11.0.tgz#906669a50f06aa744378bb84c7d5c4fdbc5b7d51" + integrity sha512-tRYKyY0i7cMk6v4UIOCjl1LhuepC/pc6adQqJk4Is3YcC6k46HvsV9Wl7vQoLbm9qADgeujiT7KdLrylvFIQ+A== + dependencies: + "@typescript-eslint/types" "4.11.0" + eslint-visitor-keys "^2.0.0" + +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +csstype@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8" + integrity sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ== + +debug@^4.0.1, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint@^7.16.0: + version "7.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.16.0.tgz#a761605bf9a7b32d24bb7cde59aeb0fd76f06092" + integrity sha512-iVWPS785RuDA4dWuhhgXTNrGxHHK3a8HLSMBgbbU59ruJDubUraXN8N5rn7kb8tG6sjg74eE0RA3YWT51eusEw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.2.2" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^6.0.0" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.4" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.1.1: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastq@^1.6.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb" + integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a" + integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" + integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +glob-parent@^5.0.0, glob-parent@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.0.5, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +react-string-replace@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/react-string-replace/-/react-string-replace-0.4.4.tgz#24006fbe0db573d5be583133df38b1a735cb4225" + integrity sha512-FAMkhxmDpCsGTwTZg7p/2v+/GTmxAp73so3fbSvlAcBBX36ujiGRNEaM/1u+jiYQrArhns+7eE92g2pi5E5FUA== + dependencies: + lodash "^4.17.4" + +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== + +semver@^7.2.1, semver@^7.3.2: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +table@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/table/-/table-6.0.4.tgz#c523dd182177e926c723eb20e1b341238188aa0d" + integrity sha512-sBT4xRLdALd+NFBvwOz8bw4b15htyythha+q+DVZqy2RS08PPC8O2sZFgJYEY7bJvbCFKccs+WIZ/cd+xxTWCw== + dependencies: + ajv "^6.12.4" + lodash "^4.17.20" + slice-ansi "^4.0.0" + string-width "^4.2.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +typescript@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" + integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== + +uri-js@^4.2.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== + dependencies: + punycode "^2.1.0" + +v8-compile-cache@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==