├── .gitignore ├── src ├── index.ts ├── expressions │ ├── unescape.rexs │ └── tokenizer.rexs ├── builderHelpers.ts ├── lang │ ├── compiler.ts │ └── decompiler.ts └── builder.ts ├── .github ├── dependabot.yml └── workflows │ ├── pr.yml │ ├── ci.yml │ └── codeql-analysis.yml ├── .npmignore ├── webpack.config.js ├── tsconfig.json ├── tsconfig.browser.json ├── .nycrc ├── README.md ├── package.json ├── test ├── index.js └── expressions.txt ├── LICENSE └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | dist 3 | dist.browser 4 | node_modules 5 | coverage 6 | .nyc_output 7 | yarn-error.log -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./builder"; 2 | 3 | export {Compile} from "./lang/compiler"; 4 | export {Decompile} from "./lang/decompiler"; -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "npm" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | -------------------------------------------------------------------------------- /src/expressions/unescape.rexs: -------------------------------------------------------------------------------- 1 | flag(g); 2 | 3 | before(not) { 4 | match("\"); 5 | } 6 | 7 | repeat(0, inf) { 8 | match("\\"); 9 | } 10 | 11 | match("\"); 12 | 13 | group() { 14 | match(ANY); 15 | } -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules 3 | .gitignore 4 | .npmignore 5 | package-lock.json 6 | yarn.lock 7 | tsconfig.json 8 | tsconfig.browser.json 9 | webpack.config.js 10 | .nycrc 11 | coverage 12 | .github 13 | .nyc_output -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | 3 | module.exports = { 4 | entry: "./dist/esm/index.js", 5 | output: { 6 | path: path.resolve(__dirname, "dist"), 7 | filename: "rexs.min.js", 8 | library: "REXS" 9 | }, 10 | mode: "production" 11 | }; -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["es2017"], 4 | "module": "commonjs", 5 | "noImplicitReturns": true, 6 | "esModuleInterop": true, 7 | "outDir": "dist/cjs", 8 | "rootDir": "src", 9 | "sourceMap": true, 10 | "target": "es6", 11 | "declaration": true, 12 | "moduleResolution": "node" 13 | }, 14 | "compileOnSave": true, 15 | "include": ["src/**/*"], 16 | "exclude": ["node_modules", ".idea", ".env"] 17 | } -------------------------------------------------------------------------------- /tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["es2016", "dom", "es5"], 4 | "module": "es2015", 5 | "noImplicitReturns": true, 6 | "esModuleInterop": true, 7 | "outDir": "dist/esm", 8 | "rootDir": "src", 9 | "sourceMap": true, 10 | "target": "es5", 11 | "declaration": true, 12 | "moduleResolution": "node" 13 | }, 14 | "compileOnSave": true, 15 | "include": ["src/**/*"], 16 | "exclude": ["node_modules", ".idea", ".env"] 17 | } -------------------------------------------------------------------------------- /.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "cache": false, 3 | "check-coverage": false, 4 | "extension": [ 5 | ".ts" 6 | ], 7 | "include": [ 8 | "**/*.js", 9 | "**/*.ts" 10 | ], 11 | "exclude": [ 12 | "coverage/**", 13 | "node_modules/**", 14 | "**/*.d.ts", 15 | "**/*.test.ts", 16 | "dist/esm/**", 17 | "dist/decimalsystem.min.js", 18 | "webpack.config.js" 19 | ], 20 | "sourceMap": true, 21 | "reporter": [ 22 | "text" 23 | ], 24 | "all": true, 25 | "instrument": true 26 | } -------------------------------------------------------------------------------- /.github/workflows/pr.yml: -------------------------------------------------------------------------------- 1 | name: Build and Test 2 | on: 3 | pull_request: 4 | branches: [ master ] 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | strategy: 9 | matrix: 10 | node-version: [ 14.x ] 11 | steps: 12 | - uses: actions/checkout@v2 13 | - name: Use Node.js ${{ matrix.node-version }} 14 | uses: actions/setup-node@v1 15 | with: 16 | node-version: ${{ matrix.node-version }} 17 | - name: Build 18 | run: | 19 | yarn install --frozen-lockfile 20 | yarn build 21 | - name: Test 22 | run: yarn test 23 | - name: Upload 24 | uses: actions/upload-artifact@v2 25 | with: 26 | name: REXS 27 | path: dist/ 28 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: Build and Test 2 | on: 3 | push: 4 | branches: [ master ] 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | strategy: 9 | matrix: 10 | node-version: [ 14.x ] 11 | steps: 12 | - uses: actions/checkout@v2 13 | - name: Use Node.js ${{ matrix.node-version }} 14 | uses: actions/setup-node@v1 15 | with: 16 | node-version: ${{ matrix.node-version }} 17 | - name: Build 18 | run: | 19 | yarn install --frozen-lockfile 20 | yarn build 21 | - name: Test 22 | run: yarn test 23 | - name: Upload 24 | uses: actions/upload-artifact@v2 25 | with: 26 | name: REXS 27 | path: dist/ 28 | - name: Codecov 29 | run: yarn coverage 30 | env: 31 | CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 32 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | name: "CodeQL" 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | pull_request: 7 | branches: [ master ] 8 | schedule: 9 | - cron: '00 00 * * 1' 10 | 11 | jobs: 12 | analyze: 13 | name: Analyze 14 | runs-on: ubuntu-latest 15 | permissions: 16 | actions: read 17 | contents: read 18 | security-events: write 19 | strategy: 20 | fail-fast: false 21 | matrix: 22 | language: [ 'javascript' ] 23 | node-version: [ 14.x ] 24 | steps: 25 | - name: Checkout repository 26 | uses: actions/checkout@v2 27 | - name: Use Node.js ${{ matrix.node-version }} 28 | uses: actions/setup-node@v1 29 | with: 30 | node-version: ${{ matrix.node-version }} 31 | - name: Initialize CodeQL 32 | uses: github/codeql-action/init@v1 33 | with: 34 | languages: ${{ matrix.language }} 35 | - name: Build 36 | run: | 37 | yarn install --frozen-lockfile 38 | yarn build 39 | - name: Perform CodeQL Analysis 40 | uses: github/codeql-action/analyze@v1 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

REXS

2 |

3 | 4 | CodeFactor 5 | 6 | 7 | Codecov 8 | 9 | Build 10 | Downloads 11 |

12 | REXS is a language to create regular expressions. It can be used to create more readable and easy-to-modify expressions that compile to clean and readable regular expressions. 13 | 14 | For more information on REXS' syntax (or how to use it), take a look at https://esolangs.org/wiki/REXS. 15 | 16 | ## Example 17 | An example usage of REXS can be to match on any URL that starts with http:// or https://, then match any subdomains, followed by the domain and .com: 18 | ```rexs 19 | assert(START); 20 | 21 | match("http"); 22 | 23 | repeat(0, 1) { 24 | match("s"); 25 | } 26 | 27 | match("://"); 28 | 29 | repeat(0, inf, nongreedy) { 30 | repeat(1, inf, nongreedy) { 31 | match(ANY); 32 | } 33 | match("."); 34 | } 35 | 36 | group() { 37 | repeat(1, inf, nongreedy) { 38 | match(ANY); 39 | } 40 | 41 | match(".com"); 42 | } 43 | 44 | assert(END); 45 | ``` 46 | This example will be compiled to `/^https?:\/\/(?:.+?\.)*?(.+?\.com)$/`. 47 | -------------------------------------------------------------------------------- /src/builderHelpers.ts: -------------------------------------------------------------------------------- 1 | import {Assertion, Characters, LiteralCharacterInterface} from "./builder"; 2 | 3 | export const CharactersMap = { 4 | ANY: ".", 5 | DIGIT: "\\d", 6 | NON_DIGIT: "\\D", 7 | ALPHANUM: "\\w", 8 | NON_ALPHANUM: "\\W", 9 | SPACE: "\\s", 10 | NON_SPACE: "\\S", 11 | HTAB: "\\t", 12 | VTAB: "\\v", 13 | RETURN: "\\r", 14 | LINEFEED: "\\n", 15 | FORMFEED: "\\f", 16 | BACKSPACE: "[\\b]", 17 | NULL: "(?:\\0)", 18 | QUOTE: "\"" 19 | } 20 | 21 | export const ParseMatch = (character: Characters | LiteralCharacterInterface | string) : string => { 22 | if(typeof(character) === "number" && character in Characters){ 23 | return CharactersMap[Characters[character]]; 24 | } 25 | 26 | if(typeof(character) === "string"){ 27 | return EscapeCharacter(character); 28 | } 29 | 30 | if(typeof(character) === "object" && isLiteralCharacterInterface(character)){ 31 | return character.character; 32 | } 33 | 34 | throw new Error("Invalid input for match: " + character); 35 | } 36 | 37 | const isLiteralCharacterInterface = (object: any): object is LiteralCharacterInterface => { 38 | return "character" in object; 39 | } 40 | 41 | const EscapeCharacter = (character: string) : string => { 42 | return character.replace(/[-[\]{}()*+?.,\\\/^$|#]/g, '\\$&'); 43 | } 44 | 45 | export const ParseAssertion = (assertion: Assertion) : string => { 46 | if(typeof(assertion) === "number" && assertion in Assertion){ 47 | return AssertionMap[Assertion[assertion]]; 48 | } 49 | 50 | throw new Error("Invalid input for assertion: " + assertion); 51 | } 52 | 53 | export const AssertionMap = { 54 | START: "^", 55 | END: "$", 56 | WORD_BOUNDARY: "\\b", 57 | NOT_WORD_BOUNDARY: "\\B" 58 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rexs", 3 | "version": "1.0.3", 4 | "description": "REXS is a language for creating regular expressions. This library can compile REXS to a regular expression.", 5 | "main": "dist/cjs/index.js", 6 | "types": "dist/cjs/index.d.ts", 7 | "module": "dist/esm/index.js", 8 | "browser": "dist/rexs.min.js", 9 | "jsdeliver": "dist/rexs.min.js", 10 | "scripts": { 11 | "build": "tsc && tsc -p tsconfig.browser.json && npx webpack", 12 | "test": "nyc --reporter=lcov mocha --slow 0", 13 | "coverage": "codecov", 14 | "deploy": "npm publish" 15 | }, 16 | "repository": { 17 | "type": "git", 18 | "url": "git+https://github.com/uellenberg/REXS.git" 19 | }, 20 | "keywords": [ 21 | "rexs", 22 | "re", 23 | "reg", 24 | "regex", 25 | "regular", 26 | "expression", 27 | "expressions", 28 | "regular expression", 29 | "regular expressions", 30 | "language", 31 | "lang", 32 | "compiler", 33 | "compile", 34 | "builder", 35 | "creator", 36 | "create", 37 | "helper", 38 | "help", 39 | "maker", 40 | "make", 41 | "easy", 42 | "fast", 43 | "quick", 44 | "quickly" 45 | ], 46 | "author": "Jonah Uellenberg", 47 | "license": "Apache-2.0", 48 | "bugs": { 49 | "url": "https://github.com/uellenberg/REXS/issues" 50 | }, 51 | "homepage": "https://github.com/uellenberg/REXS", 52 | "devDependencies": { 53 | "@types/node": "^15.0.1", 54 | "chai": "^4.3.4", 55 | "codecov": "^3.8.1", 56 | "eslint": "^7.25.0", 57 | "mocha": "^8.3.2", 58 | "nyc": "^15.1.0", 59 | "typescript": "^4.2.4", 60 | "webpack": "^5.36.2", 61 | "webpack-cli": "^4.7.0" 62 | }, 63 | "dependencies": { 64 | "parselib": "^1.0.0" 65 | }, 66 | "engines": { 67 | "node": ">=0.14" 68 | }, 69 | "files": [ 70 | "dist", 71 | "README.md", 72 | "LICENSE" 73 | ] 74 | } 75 | -------------------------------------------------------------------------------- /src/expressions/tokenizer.rexs: -------------------------------------------------------------------------------- 1 | flag(g); 2 | 3 | before(not) { 4 | match("\"); 5 | } 6 | 7 | repeat(0, inf) { 8 | match("\\"); 9 | } 10 | 11 | group() { 12 | or() { 13 | orpart() { 14 | set() { 15 | match("*.^$|[]-()+?{},<=!:"); 16 | } 17 | } 18 | 19 | orpart() { 20 | match("\d"); 21 | } 22 | 23 | orpart() { 24 | match("\D"); 25 | } 26 | 27 | orpart() { 28 | match("\w"); 29 | } 30 | 31 | orpart() { 32 | match("\W"); 33 | } 34 | 35 | orpart() { 36 | match("\s"); 37 | } 38 | 39 | orpart() { 40 | match("\S"); 41 | } 42 | 43 | orpart() { 44 | match("\t"); 45 | } 46 | 47 | orpart() { 48 | match("\r"); 49 | } 50 | 51 | orpart() { 52 | match("\n"); 53 | } 54 | 55 | orpart() { 56 | match("\v"); 57 | } 58 | 59 | orpart() { 60 | match("\f"); 61 | } 62 | 63 | orpart() { 64 | match("[\b]"); 65 | } 66 | 67 | orpart() { 68 | match("\"); 69 | match(DIGIT); 70 | } 71 | 72 | orpart() { 73 | match("\c"); 74 | set() { 75 | match("A"); 76 | to(): 77 | match("Z"); 78 | } 79 | } 80 | 81 | orpart() { 82 | match("\x"); 83 | repeat(2) { 84 | set() { 85 | match("0"); 86 | to(); 87 | match("9"); 88 | match("a"); 89 | to(); 90 | match("f"); 91 | } 92 | } 93 | } 94 | 95 | orpart() { 96 | match("\u"); 97 | repeat(4) { 98 | set() { 99 | match("0"); 100 | to(); 101 | match("9"); 102 | match("a"); 103 | to(); 104 | match("f"); 105 | } 106 | } 107 | } 108 | 109 | orpart() { 110 | match("\b"); 111 | } 112 | 113 | orpart() { 114 | match("\B"); 115 | } 116 | } 117 | } -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | const {ExpressionBuilder, Assertion, RepeatOptions, Characters, Compile, Decompile} = require("../dist/cjs/index"); 2 | const {expect} = require("chai"); 3 | const fs = require("fs"); 4 | 5 | describe("Compiler", () => { 6 | context("with simple URL test", () => { 7 | it("should return the correct regular expression.", () => { 8 | const expression = Compile(` 9 | assert(START); 10 | 11 | match("http"); 12 | 13 | repeat(0, 1) { 14 | match("s"); 15 | } 16 | 17 | match("://"); 18 | 19 | repeat(0, inf, nongreedy) { 20 | repeat(1, inf, nongreedy) { 21 | match(ANY); 22 | } 23 | match("."); 24 | } 25 | 26 | group() { 27 | repeat(1, inf, nongreedy) { 28 | match(ANY); 29 | } 30 | 31 | match(".com"); 32 | } 33 | 34 | assert(END);`); 35 | 36 | expect(expression).to.eql("/^https?:\\/\\/(?:.+?\\.)*?(.+?\\.com)$/"); 37 | }); 38 | }); 39 | }); 40 | 41 | describe("Decompiler", () => { 42 | context("with a simple URL test", () => { 43 | it("should return the correct regular expression.", () => { 44 | expect(Compile(Decompile("/^https?:\\/\\/(?:.+?\\.)*?(.+?\\.com)$/g"))).to.eql("/^https?:\\/\\/(?:.+?\\.)*?(.+?\\.com)$/g"); 45 | }); 46 | }); 47 | 48 | //https://gist.github.com/jacksonfdam/3000275 49 | const lines = fs.readFileSync("test/expressions.txt", "utf-8").replace(/\r/g, "").split("\n"); 50 | 51 | for (let i = 0; i < lines.length; i+=3) { 52 | context("with expression #" + (Math.floor(i/3)+1) + " (line " + (i+1) + ")", () => { 53 | it("should return the correct regular expression.", () => { 54 | expect(Compile(Decompile(lines[i]))).to.eql(lines[i+1]); 55 | }); 56 | }); 57 | } 58 | }); 59 | 60 | describe("ExpressionBuilder", () => { 61 | context("with simple URL test", () => { 62 | it("should return the correct regular expression.", () => { 63 | const expression = ExpressionBuilder((functions) => { 64 | functions.Assert(Assertion.START); 65 | 66 | functions.Match("http"); 67 | 68 | functions.Repeat(() => { 69 | functions.Match("s"); 70 | }, RepeatOptions.ZeroOrOne()); 71 | 72 | functions.Match("://"); 73 | 74 | functions.Repeat(() => { 75 | functions.Repeat(() => { 76 | functions.Match(Characters.ANY); 77 | }, RepeatOptions.OneOrMore(false)); 78 | functions.Match("."); 79 | }, RepeatOptions.ZeroOrMore(false)); 80 | 81 | functions.Repeat(() => { 82 | functions.Match(Characters.ANY); 83 | }, RepeatOptions.OneOrMore(false)); 84 | 85 | functions.Match(".com"); 86 | 87 | functions.Assert(Assertion.END); 88 | }); 89 | 90 | expect(expression).to.eql("/^http(?:s?):\\/\\/(?:(?:.+?)\\.*?)(?:.+?)\\.com$/"); 91 | }); 92 | }); 93 | }); -------------------------------------------------------------------------------- /test/expressions.txt: -------------------------------------------------------------------------------- 1 | /^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$/ 2 | /^(?:[\w\-])+(?:(\.(?:[\w\-])+))*@((?:(?:[a-z0-9\-])+(?:(\.(?:[a-z0-9\-])+))*?\.(?:[a-z]){2,6}|(?:((?:\d){1,3}\.)){3}(?:\d){1,3}))(?:(:(?:\d){4}))?$/ 3 | 4 | /^([\w\.*\-*]+@([\w]\.*\-*)+[a-zA-Z]{2,9}(\s*;\s*[\w\.*\-*]+@([\w]\.*\-*)+[a-zA-Z]{2,9})*)$/ 5 | /^((?:[\w\.\*\-\*])+@(?:([\w](?:\.)*(?:\-)*))+(?:[a-zA-Z]){2,9}(?:((?:\s)*;(?:\s)*(?:[\w\.\*\-\*])+@(?:([\w](?:\.)*(?:\-)*))+(?:[a-zA-Z]){2,9}))*)$/ 6 | 7 | /^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$/ 8 | /^(?:((?:[a-zA-Z0-9._%\-])+@(?:[a-zA-Z0-9.\-])+\.(?:[a-zA-Z]){2,4}))*$/ 9 | 10 | /^((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))*$/ 11 | /^(?:((?:(?:25[0-5]|2[0-4][0-9]|(?:[01])?[0-9](?:[0-9])?)\.){3}(?:25[0-5]|2[0-4][0-9]|(?:[01])?[0-9](?:[0-9])?)))*$/ 12 | 13 | /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|622((12[6-9]|1[3-9][0-9])|([2-8][0-9][0-9])|(9(([0-1][0-9])|(2[0-5]))))[0-9]{10}|64[4-9][0-9]{13}|65[0-9]{14}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})*$/ 14 | /^(?:(?:4(?:[0-9]){12}(?:(?:[0-9]){3})?|5[1-5](?:[0-9]){14}|6011(?:[0-9]){12}|622((?:((?:12[6-9]|1[3-9][0-9]))|([2-8][0-9][0-9])|(9((?:([0-1][0-9])|(2[0-5]))))))(?:[0-9]){10}|64[4-9](?:[0-9]){13}|65(?:[0-9]){14}|3(?:0[0-5]|[68][0-9])(?:[0-9]){11}|3[47](?:[0-9]){13}))*$/ 15 | 16 | /[^@/]+@[^@/]+/ 17 | /(?:[^@\/])+@(?:[^@\/])+/ 18 | 19 | /\\s+/ 20 | /\\s+/ 21 | 22 | /[^a-zA-Z0-9]/ 23 | /[^a-zA-Z0-9]/ 24 | 25 | /^$/ 26 | /^$/ 27 | 28 | /^[1-9]+[0-9]*$/ 29 | /^(?:[1-9])+(?:[0-9])*$/ 30 | 31 | /(^\d*\.?\d*[0-9]+\d*$)|(^[0-9]+\d*\.\d*$)/ 32 | /(?:(^(?:\d)*(?:\.)?(?:\d)*(?:[0-9])+(?:\d)*$)|(^(?:[0-9])+(?:\d)*\.(?:\d)*$))/ 33 | 34 | /^-?[0-9]{0,2}(\.[0-9]{1,2})?$|^-?(100)(\.[0]{1,2})?$/ 35 | /(?:^(?:\-)?(?:[0-9]){0,2}(?:(\.(?:[0-9]){1,2}))?$|^(?:\-)?(100)(?:(\.(?:[0]){1,2}))?$)/ 36 | 37 | /[A-Z][A-Z]/ 38 | /[A-Z][A-Z]/ 39 | 40 | /(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)/ 41 | /((?:^\+(?:[0-9]){2}|^\+(?:[0-9]){2}\(0\)|^\(\+(?:[0-9]){2}\)\(0\)|^00(?:[0-9]){2}|^0))((?:(?:[0-9]){9}$|(?:[0-9\-\s]){10}$))/ 42 | 43 | /.*, [A-Z][A-Z]/ 44 | /.*\, [A-Z][A-Z]/ 45 | 46 | /[0-9]\{5\}(-[0-9]\{4\})?/ 47 | /[0-9]\{5\}(?:(\-[0-9]\{4\}))?/ 48 | 49 | /[0-9]\{3\}-[0-9]\{2\}-[0-9]\{4\}/ 50 | /[0-9]\{3\}\-[0-9]\{2\}\-[0-9]\{4\}/ 51 | 52 | /\$[0-9]*.[0-9][0-9]/ 53 | /\$(?:[0-9])*.[0-9][0-9]/ 54 | 55 | /[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/ 56 | /[0-9]\{4\}\-[0-9]\{2\}\-[0-9]\{2\}/ 57 | 58 | /[A-Z][a-z][a-z] [0-9][0-9]*, [0-9]\{4\}/ 59 | /[A-Z][a-z][a-z] [0-9](?:[0-9])*\, [0-9]\{4\}/ 60 | 61 | /^(\d{1,2})\/(\d{1,2})\/(\d{2}|(19|20)\d{2})$/ 62 | /^((?:\d){1,2})\/((?:\d){1,2})\/((?:(?:\d){2}|((?:19|20))(?:\d){2}))$/ 63 | 64 | /^http(s)?:\/\/((\d+\.\d+\.\d+\.\d+)|(([\w-]+\.)+([a-z,A-Z][\w-]*)))(:[1-9][0-9]*)?(\/([\w-.\/:%+@&=]+[\w- .\/?:%+@&=]*)?)?(#(.*))?$/i 65 | /^http(?:(s))?:\/\/((?:((?:\d)+\.(?:\d)+\.(?:\d)+\.(?:\d)+)|((?:((?:[\w\-])+\.))+([a-z\,A-Z](?:[\w\-])*))))(?:(:[1-9](?:[0-9])*))?(?:(\/(?:((?:[\w-.\/:%\+@&=])+(?:[\w- .\/\?:%\+@&=])*))?))?(?:(\#(.*)))?$/i 66 | -------------------------------------------------------------------------------- /src/lang/compiler.ts: -------------------------------------------------------------------------------- 1 | import {CustomTokenizer, RecursiveMap, RegexTokenizer, Token, TokenizerChain} from "parselib"; 2 | import {Assertion, Characters, ExpressionBuilder} from "../builder"; 3 | 4 | /** 5 | * Compiles REXS into a regular expression string. 6 | * @param input {string} - the REXS code as a string. 7 | */ 8 | export const Compile = (input: string) : string => { 9 | let before = ""; 10 | let beforeNot = ""; 11 | let after = ""; 12 | let afterNot = ""; 13 | 14 | let flags = {i: false, g: false, m: false, s: false, u: false, y: false}; 15 | 16 | const body = RecursiveMap(tokenizerChain.run(FixFormatting(input)), input => !input.isToken && input.value === "{", input => !input.isToken && input.value === "}", input => { 17 | switch (input.value) { 18 | case "repeat": 19 | return "repeat-" + ProcessRepeatParams(input.data.split(",").map(x => x.trim().toLowerCase())); 20 | case "group": 21 | return "group"; 22 | case "or": 23 | return "or"; 24 | case "orpart": 25 | return "orpart"; 26 | case "set": 27 | return "set-" + (input.data.split(",").map(x => x.trim().toLowerCase()).includes("not") ? "not" : ""); 28 | case "before": 29 | return "before-" + (input.data.split(",").map(x => x.trim().toLowerCase()).includes("not") ? "not" : ""); 30 | case "after": 31 | return "after-" + (input.data.split(",").map(x => x.trim().toLowerCase()).includes("not") ? "not" : ""); 32 | case "flag": 33 | if(!Object.keys(flags).includes(input.data)) throw new Error("A flag was given that does not exist: " + input.data); 34 | 35 | flags[input.data] = true; 36 | return ""; 37 | default: 38 | return HandleFunction(input); 39 | } 40 | }, (input, startToken, endToken) => { 41 | let split = input.shift().split("-"); 42 | 43 | const name = split.shift(); 44 | const data = split.join("-"); 45 | 46 | switch(name){ 47 | case "repeat": 48 | const join = input.join(""); 49 | if(join.length === 1) return join + data; 50 | 51 | return "(?:" + join + ")" + data; 52 | case "group": 53 | return "(" + input.join("") + ")"; 54 | case "or": 55 | return "(?:" + input.join("|") + ")"; 56 | case "orpart": 57 | return input.join(""); 58 | case "set": 59 | return "[" + (data === "not" ? "^" : "") + input.join("") + "]"; 60 | case "before": 61 | if(data === "not") beforeNot = "(? flags[key]).join(""); 74 | } 75 | 76 | const HandleFunction = (token: Token) : string => { 77 | const out = ExpressionBuilder(functions => { 78 | const functionsFormatted = Object.keys(functions).map(x => x.toLowerCase()); 79 | 80 | const value = token.value.trim(); 81 | 82 | const args = token.data ? token.data.trim() : null; 83 | 84 | if(!functionsFormatted.includes(value)) throw new Error("An invalid function was given: " + token.value); 85 | 86 | switch(value){ 87 | case "match": 88 | let funValue: Characters | string = null; 89 | 90 | if((args.startsWith("\"") && args.endsWith("\"")) || (args.startsWith("'") && args.endsWith("'"))){ 91 | funValue = args.substring(1, args.length-1); 92 | } else { 93 | const val = args.toUpperCase().split(",")[0]; 94 | 95 | if(!(val in Characters)) throw new Error("An invalid character was given: " + token.data); 96 | 97 | funValue = Characters[val]; 98 | } 99 | 100 | if(typeof(funValue) === "function") funValue = (funValue)(args.split(",")[1].trim()); 101 | 102 | functions.Match(funValue); 103 | break; 104 | case "assert": 105 | let funValue1: Assertion = null; 106 | 107 | const val = args.toUpperCase(); 108 | 109 | if(!(val in Assertion)) throw new Error("An invalid assertion was given: " + token.data); 110 | 111 | funValue1 = Assertion[val]; 112 | 113 | functions.Assert(funValue1); 114 | break; 115 | case "to": 116 | functions.To(); 117 | break; 118 | case "backref": 119 | functions.BackRef(args.trim()); 120 | break; 121 | } 122 | }); 123 | 124 | return out.substring(1, out.length-1); 125 | } 126 | 127 | const ProcessRepeatParams = (args: string[]) : string => { 128 | let body = ""; 129 | let greedy = ""; 130 | 131 | if(args.length < 1) throw new Error("The repeat function requires arguments."); 132 | 133 | const from = ParseRepeatInt(args[0]); 134 | 135 | if(args.length > 1 && args[1] !== "nongreedy") { 136 | const to = ParseRepeatInt(args[1]); 137 | 138 | if(from === Infinity) { 139 | throw new Error("The \"from\" argument in repeat must be less than Infinity."); 140 | } 141 | 142 | if(from >= to) { 143 | throw new Error("The \"from\" argument in repeat must be less than the \"to\" argument."); 144 | } 145 | 146 | if(from < 0 || to < 0){ 147 | throw new Error("The \"from\" and \"to\" arguments in repeat must be greator than or equal to zero."); 148 | } 149 | 150 | switch("" + from + to){ 151 | case "0Infinity": 152 | body = "*"; 153 | break; 154 | case "1Infinity": 155 | body = "+"; 156 | break; 157 | case "01": 158 | body = "?"; 159 | break; 160 | default: 161 | if(to === Infinity){ 162 | body = "{" + from + ",}"; 163 | } else { 164 | body = "{" + from + "," + to + "}"; 165 | } 166 | break; 167 | } 168 | } else { 169 | body = "{" + from + "}"; 170 | } 171 | 172 | if(args.includes("nongreedy")) greedy = "?"; 173 | 174 | return body + greedy; 175 | } 176 | 177 | const ParseRepeatInt = (int: string) : number => { 178 | const cleaned = int.trim().toLowerCase(); 179 | 180 | const parsed = parseInt(cleaned); 181 | if(!isNaN(parsed)) return parsed; 182 | 183 | switch(cleaned){ 184 | case "inf": 185 | case "infinity": 186 | case "forever": 187 | case "more": 188 | case "max": 189 | return Infinity; 190 | case "one": 191 | return 1; 192 | case "zero": 193 | case "none": 194 | return 0; 195 | } 196 | 197 | throw new Error("Unknown argument for repeat: " + int); 198 | } 199 | 200 | const FixFormatting = (input: string) : string => { 201 | return input.replace(/\)\s*?{/gm, ") {").split("\n").map(val => { 202 | const fixed = val.trim(); 203 | 204 | if(!fixed) return null; 205 | 206 | if([";", "{", "}"].includes(fixed.substring(fixed.length-1))) return fixed; 207 | 208 | return fixed + ";"; 209 | }).filter(val => val !== null).join(""); 210 | } 211 | 212 | const tokenizerChain = new TokenizerChain(new RegexTokenizer(/([a-zA-Z]*?)\s*?\((.*?)\)\s*?[;{]/g)).token(new CustomTokenizer(input => { 213 | let out = []; 214 | 215 | let split = input.trim().split("("); 216 | 217 | const name = split.shift(); 218 | 219 | let join = split.join("("); 220 | if(join.endsWith("{")) { 221 | join = join.substring(0, join.length-1); 222 | out.push({value: "{", isToken: false}); 223 | } 224 | 225 | const params = join.substring(0, join.length-2); 226 | 227 | out.push({value: name, data: params, isToken: true}); 228 | 229 | return out; 230 | })).text(new CustomTokenizer(input => { 231 | let out = []; 232 | 233 | while(input.startsWith("}") || input.startsWith("{")){ 234 | out.push({value: input.substring(input.length-1), isToken: false}); 235 | input = input.substring(0, input.length-1); 236 | } 237 | 238 | return out; 239 | })); -------------------------------------------------------------------------------- /src/builder.ts: -------------------------------------------------------------------------------- 1 | import {ParseAssertion, ParseMatch} from "./builderHelpers"; 2 | 3 | /** 4 | * Build a regular expression. 5 | * @param callback {ExpressionBuilderCallback} - is a callback where the expression is created in. 6 | * @param options {ExpressionBuilderOptions} - are the options for the expression builder. 7 | */ 8 | export const ExpressionBuilder = (callback: ExpressionBuilderCallback, options?: ExpressionBuilderOptions) => { 9 | let expression = ""; 10 | 11 | let start = ""; 12 | let end = ""; 13 | 14 | callback({ 15 | Match: (character) => { 16 | expression += ParseMatch(character); 17 | }, 18 | Assert: (assertion) => { 19 | expression += ParseAssertion(assertion); 20 | }, 21 | PositiveLookahead: (callback) => { 22 | const temp = expression; 23 | expression = ""; 24 | 25 | callback(); 26 | 27 | end += "(?=" + expression + ")"; 28 | 29 | expression = temp; 30 | }, 31 | NegativeLookahead: (callback) => { 32 | const temp = expression; 33 | expression = ""; 34 | 35 | callback(); 36 | 37 | end += "(?!" + expression + ")"; 38 | 39 | expression = temp; 40 | }, 41 | PositiveLookbehind: (callback) => { 42 | const temp = expression; 43 | expression = ""; 44 | 45 | callback(); 46 | 47 | start += "(?<=" + expression + ")"; 48 | 49 | expression = temp; 50 | }, 51 | NegativeLookbehind: (callback) => { 52 | const temp = expression; 53 | expression = ""; 54 | 55 | callback(); 56 | 57 | start += "(? { 62 | const temp = expression; 63 | expression = ""; 64 | 65 | let values: string[] = []; 66 | 67 | for (let callback of callbacks) { 68 | callback(); 69 | 70 | values.push("(?:" + expression + ")"); 71 | 72 | expression = ""; 73 | } 74 | 75 | expression = temp + "(?:" + values.join("|") + ")"; 76 | }, 77 | InSet: (callback) => { 78 | const temp = expression; 79 | expression = ""; 80 | 81 | callback(); 82 | 83 | expression = temp + "[" + expression + "]"; 84 | }, 85 | NotInSet: (callback) => { 86 | const temp = expression; 87 | expression = ""; 88 | 89 | callback(); 90 | 91 | expression = temp + "[^" + expression + "]"; 92 | }, 93 | To: () => { 94 | expression += "-"; 95 | }, 96 | Group: (callback) => { 97 | const temp = expression; 98 | expression = ""; 99 | 100 | callback(); 101 | 102 | expression = temp + "(" + expression + ")"; 103 | }, 104 | BackRef: (index) => { 105 | expression += "\\" + index; 106 | }, 107 | Repeat: (callback, options) => { 108 | const temp = expression; 109 | expression = ""; 110 | 111 | callback(); 112 | 113 | expression = temp + "(?:" + expression + options.repeatChars + ")"; 114 | } 115 | }); 116 | 117 | return "/" + start + expression + end + "/"; 118 | } 119 | 120 | /** 121 | * The functions used to build a regular expression. 122 | */ 123 | export interface ExpressionBuilderFunctions { 124 | /** 125 | * Match something. 126 | */ 127 | Match: Match; 128 | /** 129 | * Make an assertion. 130 | */ 131 | Assert: Assert; 132 | /** 133 | * Ensure that something appears after the expression. 134 | */ 135 | PositiveLookahead: EmptyCallback; 136 | /** 137 | * Ensure that something does not appear after the expression. 138 | */ 139 | NegativeLookahead: EmptyCallback; 140 | /** 141 | * Ensure that something appears before the expression. 142 | */ 143 | PositiveLookbehind: EmptyCallback; 144 | /** 145 | * Ensure that something does not appear before the expression. 146 | */ 147 | NegativeLookbehind: EmptyCallback; 148 | /** 149 | * Match one thing or another. 150 | */ 151 | OR: OR; 152 | /** 153 | * Match something in a set of matches. 154 | */ 155 | InSet: EmptyCallback; 156 | /** 157 | * Match something not in a set of matches. 158 | */ 159 | NotInSet: EmptyCallback; 160 | /** 161 | * Used in sets; match any character between the match before and the match after this one (inclusive). 162 | */ 163 | To: Function; 164 | /** 165 | * Creates a capturing group. 166 | */ 167 | Group: EmptyCallback; 168 | /** 169 | * Match the value of a previous capturing group, by its one-based ID. 170 | */ 171 | BackRef: BackRef; 172 | /** 173 | * Repeat a match. 174 | */ 175 | Repeat: Repeat; 176 | } 177 | 178 | export type ExpressionBuilderCallback = (functions: ExpressionBuilderFunctions) => void; 179 | 180 | /** 181 | * The options for the expression builder. 182 | */ 183 | export interface ExpressionBuilderOptions { 184 | 185 | } 186 | 187 | /** 188 | * Special characters that can be used in matches. 189 | */ 190 | export enum Characters { 191 | ANY, 192 | DIGIT, 193 | NON_DIGIT, 194 | ALPHANUM, 195 | NON_ALPHANUM, 196 | SPACE, 197 | NON_SPACE, 198 | HTAB, 199 | VTAB, 200 | RETURN, 201 | LINEFEED, 202 | FORMFEED, 203 | BACKSPACE, 204 | NULL 205 | } 206 | 207 | export namespace Characters { 208 | /** 209 | * Match a control character. 210 | * @param caret {string} - is a one-length character from A-Z indicating the control character. 211 | */ 212 | export const CONTROL = (caret: string) : LiteralCharacterInterface => { 213 | if(caret.length !== 1 || !/[A-Z]/.test(caret.toUpperCase())) throw new Error("The caret must be a character in A-Z."); 214 | 215 | return LiteralCharacter("\\c"+caret.toUpperCase()); 216 | } 217 | 218 | /** 219 | * Match a character by its character code 220 | * @param hex {string} - is a two-length or four-length string of hexadecimal digits indicating the character code. 221 | */ 222 | export const HEX = (hex: string) : LiteralCharacterInterface => { 223 | if(![2, 4].includes(hex.length) || !/^[0-9a-fA-F]{2}$/.test(hex)) throw new Error("The hex must be two or four characters in 0-9 or A-F"); 224 | 225 | return LiteralCharacter((hex.length === 2 ? "\\x" : "\\u")+hex.toLowerCase()); 226 | } 227 | } 228 | 229 | /** 230 | * Match a character literally, without escaping. 231 | * @param character {string} - the character being matched. 232 | */ 233 | export const LiteralCharacter = (character: string) : LiteralCharacterInterface => { 234 | return {character}; 235 | } 236 | 237 | export interface LiteralCharacterInterface { 238 | character: string; 239 | } 240 | 241 | /** 242 | * An assertion. 243 | */ 244 | export enum Assertion { 245 | START, 246 | END, 247 | WORD_BOUNDARY, 248 | NOT_WORD_BOUNDARY 249 | } 250 | 251 | /** 252 | * Options for a repeat. 253 | */ 254 | export namespace RepeatOptions { 255 | /** 256 | * Repeat zero or more times. 257 | * @param greedy {boolean} - if set to true, will match as many times as possible, otherwise as least times as possible. 258 | */ 259 | export const ZeroOrMore = (greedy: boolean = true) : RepeatOptionsInterface => { 260 | return {repeatChars: "*" + (greedy ? "" : "?")}; 261 | } 262 | 263 | /** 264 | * Repeat one or more times. 265 | * @param greedy {boolean} - if set to true, will match as many times as possible, otherwise as least times as possible. 266 | */ 267 | export const OneOrMore = (greedy: boolean = true) : RepeatOptionsInterface => { 268 | return {repeatChars: "+" + (greedy ? "" : "?")}; 269 | } 270 | 271 | /** 272 | * Repeat zero or one times. 273 | */ 274 | export const ZeroOrOne = () : RepeatOptionsInterface => { 275 | return {repeatChars: "?"}; 276 | } 277 | 278 | /** 279 | * Repeat exactly some amount of times. 280 | * @param count {number} - the amount of times to repeat. 281 | */ 282 | export const Exactly = (count: number) : RepeatOptionsInterface => { 283 | return {repeatChars: "{" + count + "}"}; 284 | } 285 | 286 | /** 287 | * Repeat at least some amount of times. 288 | * @param count {number} - the minimum amount of times to repeat. 289 | */ 290 | export const AtLeast = (count: number) : RepeatOptionsInterface => { 291 | return {repeatChars: "{" + count + ",}"}; 292 | } 293 | 294 | /** 295 | * Repeat between some amount of times and another amount of times (inclusive). 296 | * @param count1 {number} - the lower bounds for the amount of times to repeat. 297 | * @param count2 {number} - the upper bounds for the amount of times to repeat. 298 | */ 299 | export const Between = (count1: number, count2: number) : RepeatOptionsInterface => { 300 | return {repeatChars: "{" + count1 + "," + count2 + "}"}; 301 | } 302 | } 303 | 304 | export interface RepeatOptionsInterface { 305 | repeatChars: string; 306 | } 307 | 308 | export type Match = (character: Characters | LiteralCharacterInterface | string) => void; 309 | 310 | export type Assert = (assertion: Assertion) => void; 311 | 312 | export type EmptyCallback = (callback: Function) => void; 313 | 314 | export type OR = (...callbacks: Function[]) => void; 315 | 316 | export type BackRef = (index: number) => void; 317 | 318 | export type Repeat = (callback: Function, options: RepeatOptionsInterface) => void; -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright 2021 Jonah Uellenberg 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. -------------------------------------------------------------------------------- /src/lang/decompiler.ts: -------------------------------------------------------------------------------- 1 | import {CustomTokenizer, RegexTokenizer, Token, TokenizerChain} from "parselib"; 2 | import {AssertionMap, CharactersMap} from "../builderHelpers"; 3 | 4 | export const Decompile = (input: string | RegExp) : string => { 5 | if(input instanceof RegExp) input = input.toString(); 6 | 7 | let split = input.split("/"); 8 | split.shift(); 9 | 10 | let flags = split.pop().split("").map(flag => "flag(" + flag + ");").join("\n"); 11 | if(flags.length > 0) flags += "\n\n"; 12 | 13 | const tokens = groupTokenizerChain.run(split.join("/")); 14 | 15 | return flags + REXSDataToString(Recurse(tokens)); 16 | } 17 | 18 | const REXSDataToString = (data: REXSData[], indent: number = 0) : string => { 19 | const indentStr = " ".repeat(indent * 4); 20 | 21 | let lines: string[] = []; 22 | 23 | for (let tag of data) { 24 | if(tag.tag === "ugroup"){ 25 | lines.push(REXSDataToString(tag.body, indent)); 26 | continue; 27 | } 28 | 29 | lines.push(indentStr + tag.tag + "(" + (tag.params || "") + ")" + (tag.body ? " {" : ";")); 30 | 31 | if(tag.body){ 32 | lines.push(REXSDataToString(tag.body, indent+1)); 33 | 34 | lines.push(indentStr + "}"); 35 | } 36 | } 37 | 38 | return lines.join("\n"); 39 | } 40 | 41 | //I don't even want to think about this code ever again. 42 | const Recurse = (tokens: Token[], data?: RecurseData) : REXSData[] => { 43 | const stringSeq = tokens.map(token => token.value).join(""); 44 | 45 | let outerTag: REXSData = null; 46 | 47 | let isSet = false; 48 | 49 | if(data && data.startToken.value === "(") { 50 | if(stringSeq.startsWith("?:")){ 51 | outerTag = {tag: "ugroup"}; 52 | tokens = tokens.slice(2); 53 | } else if(stringSeq.startsWith("?=")) { 54 | outerTag = {tag: "ahead"}; 55 | tokens = tokens.slice(2); 56 | } else if(stringSeq.startsWith("?!")) { 57 | outerTag = {tag: "ahead", params: "not"}; 58 | tokens = tokens.slice(2); 59 | } else if(stringSeq.startsWith("?<=")) { 60 | outerTag = {tag: "before"}; 61 | tokens = tokens.slice(3); 62 | } else if(stringSeq.startsWith("? { 223 | const character = Object.keys(CharactersMap).filter(key => CharactersMap[key] === token.value); 224 | if(character.length > 0) return {tag: "match", params: character[0]}; 225 | 226 | const assertion = Object.keys(AssertionMap).filter(key => AssertionMap[key] === token.value); 227 | if(assertion.length > 0 && !isSet) return {tag: "assert", params: assertion[0]}; 228 | 229 | if(token.value.startsWith("\\c")){ 230 | return {tag: "match", params: "CONTROL, " + token.value.substring(2)}; 231 | } 232 | if(token.value.startsWith("\\x")){ 233 | return {tag: "match", params: "HEX, " + token.value.substring(2)}; 234 | } 235 | if(token.value.startsWith("\\u")){ 236 | return {tag: "match", params: "HEX, " + token.value.substring(2)}; 237 | } 238 | if(token.value.startsWith("\\")){ 239 | const parse = parseInt(token.value.substring(1)); 240 | 241 | if(!isNaN(parse)){ 242 | if(parse === 0){ 243 | return {tag: "match", params: "NULL"}; 244 | } else { 245 | return {tag: "backref", params: token.value.substring(1)}; 246 | } 247 | } 248 | } 249 | 250 | return {tag: "match", params: "\""+unEscape(token.value)+"\""}; 251 | } 252 | 253 | const pushMatch = (match: REXSData, out: REXSData[]) => { 254 | if(match.tag !== "match" || out.length < 1 || out[out.length-1].tag !== "match" || !out[out.length-1].params || !out[out.length-1].params.startsWith("\"") || !match.params || !match.params.startsWith("\"")) { 255 | out.push(match); 256 | return; 257 | } 258 | 259 | out[out.length-1].params = out[out.length-1].params.substring(0, out[out.length-1].params.length-1) + match.params.substring(1, match.params.length-1) + "\""; 260 | } 261 | 262 | const getRepeatParams = (params: string) : string => { 263 | let startVal: string = ""; 264 | let endVal: string = ""; 265 | let greedy: string = ""; 266 | 267 | if(params.startsWith("*")){ 268 | startVal = "0"; 269 | endVal = "inf"; 270 | } 271 | if(params.startsWith("+")){ 272 | startVal = "1"; 273 | endVal = "inf"; 274 | } 275 | if(params.startsWith("?")){ 276 | startVal = "0"; 277 | endVal = "1"; 278 | } 279 | 280 | if(params.startsWith("{")){ 281 | const split = params.substring(1, params.length-1).split(","); 282 | 283 | if(split.length === 1){ 284 | startVal = split[0]; 285 | } 286 | if(split.length === 2){ 287 | startVal = split[0]; 288 | if(split[1]){ 289 | endVal = split[1]; 290 | } else { 291 | endVal = "inf"; 292 | } 293 | } 294 | } 295 | 296 | if(params.length > 1 && params[params.length-1] === "?"){ 297 | greedy = "nongreedy"; 298 | } 299 | 300 | return [startVal, endVal, greedy].filter(Boolean).join(", "); 301 | } 302 | 303 | //expressions/unescape.rexs 304 | const unEscape = (val: string) : string => { 305 | return val.replace(/(? { 310 | let out = []; 311 | 312 | if(token.length > 2) { 313 | const value = token.replace(/\\\\/g, ""); 314 | token = token.substring(0, token.length - value.length); 315 | 316 | if (token) out.push({value: token, isToken: false}); 317 | out.push({value: value, isToken: true}); 318 | } else { 319 | out.push({value: token, isToken: true}); 320 | } 321 | 322 | return out; 323 | })); -------------------------------------------------------------------------------- /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.12.11": 6 | version "7.12.11" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" 8 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== 9 | dependencies: 10 | "@babel/highlight" "^7.10.4" 11 | 12 | "@babel/code-frame@^7.12.13": 13 | version "7.12.13" 14 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" 15 | integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== 16 | dependencies: 17 | "@babel/highlight" "^7.12.13" 18 | 19 | "@babel/compat-data@^7.13.15": 20 | version "7.14.0" 21 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" 22 | integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== 23 | 24 | "@babel/core@^7.7.5": 25 | version "7.14.3" 26 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38" 27 | integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg== 28 | dependencies: 29 | "@babel/code-frame" "^7.12.13" 30 | "@babel/generator" "^7.14.3" 31 | "@babel/helper-compilation-targets" "^7.13.16" 32 | "@babel/helper-module-transforms" "^7.14.2" 33 | "@babel/helpers" "^7.14.0" 34 | "@babel/parser" "^7.14.3" 35 | "@babel/template" "^7.12.13" 36 | "@babel/traverse" "^7.14.2" 37 | "@babel/types" "^7.14.2" 38 | convert-source-map "^1.7.0" 39 | debug "^4.1.0" 40 | gensync "^1.0.0-beta.2" 41 | json5 "^2.1.2" 42 | semver "^6.3.0" 43 | source-map "^0.5.0" 44 | 45 | "@babel/generator@^7.14.2", "@babel/generator@^7.14.3": 46 | version "7.14.3" 47 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" 48 | integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== 49 | dependencies: 50 | "@babel/types" "^7.14.2" 51 | jsesc "^2.5.1" 52 | source-map "^0.5.0" 53 | 54 | "@babel/helper-compilation-targets@^7.13.16": 55 | version "7.13.16" 56 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" 57 | integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== 58 | dependencies: 59 | "@babel/compat-data" "^7.13.15" 60 | "@babel/helper-validator-option" "^7.12.17" 61 | browserslist "^4.14.5" 62 | semver "^6.3.0" 63 | 64 | "@babel/helper-function-name@^7.14.2": 65 | version "7.14.2" 66 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" 67 | integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== 68 | dependencies: 69 | "@babel/helper-get-function-arity" "^7.12.13" 70 | "@babel/template" "^7.12.13" 71 | "@babel/types" "^7.14.2" 72 | 73 | "@babel/helper-get-function-arity@^7.12.13": 74 | version "7.12.13" 75 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" 76 | integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== 77 | dependencies: 78 | "@babel/types" "^7.12.13" 79 | 80 | "@babel/helper-member-expression-to-functions@^7.13.12": 81 | version "7.13.12" 82 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" 83 | integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== 84 | dependencies: 85 | "@babel/types" "^7.13.12" 86 | 87 | "@babel/helper-module-imports@^7.13.12": 88 | version "7.13.12" 89 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" 90 | integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== 91 | dependencies: 92 | "@babel/types" "^7.13.12" 93 | 94 | "@babel/helper-module-transforms@^7.14.2": 95 | version "7.14.2" 96 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5" 97 | integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA== 98 | dependencies: 99 | "@babel/helper-module-imports" "^7.13.12" 100 | "@babel/helper-replace-supers" "^7.13.12" 101 | "@babel/helper-simple-access" "^7.13.12" 102 | "@babel/helper-split-export-declaration" "^7.12.13" 103 | "@babel/helper-validator-identifier" "^7.14.0" 104 | "@babel/template" "^7.12.13" 105 | "@babel/traverse" "^7.14.2" 106 | "@babel/types" "^7.14.2" 107 | 108 | "@babel/helper-optimise-call-expression@^7.12.13": 109 | version "7.12.13" 110 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" 111 | integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== 112 | dependencies: 113 | "@babel/types" "^7.12.13" 114 | 115 | "@babel/helper-replace-supers@^7.13.12": 116 | version "7.14.3" 117 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz#ca17b318b859d107f0e9b722d58cf12d94436600" 118 | integrity sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA== 119 | dependencies: 120 | "@babel/helper-member-expression-to-functions" "^7.13.12" 121 | "@babel/helper-optimise-call-expression" "^7.12.13" 122 | "@babel/traverse" "^7.14.2" 123 | "@babel/types" "^7.14.2" 124 | 125 | "@babel/helper-simple-access@^7.13.12": 126 | version "7.13.12" 127 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" 128 | integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== 129 | dependencies: 130 | "@babel/types" "^7.13.12" 131 | 132 | "@babel/helper-split-export-declaration@^7.12.13": 133 | version "7.12.13" 134 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" 135 | integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== 136 | dependencies: 137 | "@babel/types" "^7.12.13" 138 | 139 | "@babel/helper-validator-identifier@^7.14.0": 140 | version "7.14.0" 141 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" 142 | integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== 143 | 144 | "@babel/helper-validator-option@^7.12.17": 145 | version "7.12.17" 146 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" 147 | integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== 148 | 149 | "@babel/helpers@^7.14.0": 150 | version "7.14.0" 151 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" 152 | integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== 153 | dependencies: 154 | "@babel/template" "^7.12.13" 155 | "@babel/traverse" "^7.14.0" 156 | "@babel/types" "^7.14.0" 157 | 158 | "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": 159 | version "7.14.0" 160 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" 161 | integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== 162 | dependencies: 163 | "@babel/helper-validator-identifier" "^7.14.0" 164 | chalk "^2.0.0" 165 | js-tokens "^4.0.0" 166 | 167 | "@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3": 168 | version "7.14.3" 169 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298" 170 | integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ== 171 | 172 | "@babel/template@^7.12.13": 173 | version "7.12.13" 174 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" 175 | integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== 176 | dependencies: 177 | "@babel/code-frame" "^7.12.13" 178 | "@babel/parser" "^7.12.13" 179 | "@babel/types" "^7.12.13" 180 | 181 | "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2": 182 | version "7.14.2" 183 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" 184 | integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== 185 | dependencies: 186 | "@babel/code-frame" "^7.12.13" 187 | "@babel/generator" "^7.14.2" 188 | "@babel/helper-function-name" "^7.14.2" 189 | "@babel/helper-split-export-declaration" "^7.12.13" 190 | "@babel/parser" "^7.14.2" 191 | "@babel/types" "^7.14.2" 192 | debug "^4.1.0" 193 | globals "^11.1.0" 194 | 195 | "@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.14.2": 196 | version "7.14.2" 197 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3" 198 | integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw== 199 | dependencies: 200 | "@babel/helper-validator-identifier" "^7.14.0" 201 | to-fast-properties "^2.0.0" 202 | 203 | "@discoveryjs/json-ext@^0.5.0": 204 | version "0.5.3" 205 | resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" 206 | integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== 207 | 208 | "@eslint/eslintrc@^0.4.1": 209 | version "0.4.1" 210 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14" 211 | integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ== 212 | dependencies: 213 | ajv "^6.12.4" 214 | debug "^4.1.1" 215 | espree "^7.3.0" 216 | globals "^12.1.0" 217 | ignore "^4.0.6" 218 | import-fresh "^3.2.1" 219 | js-yaml "^3.13.1" 220 | minimatch "^3.0.4" 221 | strip-json-comments "^3.1.1" 222 | 223 | "@istanbuljs/load-nyc-config@^1.0.0": 224 | version "1.1.0" 225 | resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" 226 | integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== 227 | dependencies: 228 | camelcase "^5.3.1" 229 | find-up "^4.1.0" 230 | get-package-type "^0.1.0" 231 | js-yaml "^3.13.1" 232 | resolve-from "^5.0.0" 233 | 234 | "@istanbuljs/schema@^0.1.2": 235 | version "0.1.3" 236 | resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" 237 | integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== 238 | 239 | "@tootallnate/once@1": 240 | version "1.1.2" 241 | resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" 242 | integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== 243 | 244 | "@types/eslint-scope@^3.7.0": 245 | version "3.7.0" 246 | resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" 247 | integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== 248 | dependencies: 249 | "@types/eslint" "*" 250 | "@types/estree" "*" 251 | 252 | "@types/eslint@*": 253 | version "7.2.11" 254 | resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.11.tgz#180b58f5bb7d7376e39d22496e2b08901aa52fd2" 255 | integrity sha512-WYhv//5K8kQtsSc9F1Kn2vHzhYor6KpwPbARH7hwYe3C3ETD0EVx/3P5qQybUoaBEuUa9f/02JjBiXFWalYUmw== 256 | dependencies: 257 | "@types/estree" "*" 258 | "@types/json-schema" "*" 259 | 260 | "@types/estree@*", "@types/estree@^0.0.47": 261 | version "0.0.47" 262 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4" 263 | integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== 264 | 265 | "@types/json-schema@*", "@types/json-schema@^7.0.6": 266 | version "7.0.7" 267 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" 268 | integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== 269 | 270 | "@types/node@*", "@types/node@^15.0.1": 271 | version "15.6.1" 272 | resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.1.tgz#32d43390d5c62c5b6ec486a9bc9c59544de39a08" 273 | integrity sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA== 274 | 275 | "@ungap/promise-all-settled@1.1.2": 276 | version "1.1.2" 277 | resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" 278 | integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== 279 | 280 | "@webassemblyjs/ast@1.11.0": 281 | version "1.11.0" 282 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" 283 | integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== 284 | dependencies: 285 | "@webassemblyjs/helper-numbers" "1.11.0" 286 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" 287 | 288 | "@webassemblyjs/floating-point-hex-parser@1.11.0": 289 | version "1.11.0" 290 | resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" 291 | integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== 292 | 293 | "@webassemblyjs/helper-api-error@1.11.0": 294 | version "1.11.0" 295 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" 296 | integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== 297 | 298 | "@webassemblyjs/helper-buffer@1.11.0": 299 | version "1.11.0" 300 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" 301 | integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== 302 | 303 | "@webassemblyjs/helper-numbers@1.11.0": 304 | version "1.11.0" 305 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" 306 | integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== 307 | dependencies: 308 | "@webassemblyjs/floating-point-hex-parser" "1.11.0" 309 | "@webassemblyjs/helper-api-error" "1.11.0" 310 | "@xtuc/long" "4.2.2" 311 | 312 | "@webassemblyjs/helper-wasm-bytecode@1.11.0": 313 | version "1.11.0" 314 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" 315 | integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== 316 | 317 | "@webassemblyjs/helper-wasm-section@1.11.0": 318 | version "1.11.0" 319 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" 320 | integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== 321 | dependencies: 322 | "@webassemblyjs/ast" "1.11.0" 323 | "@webassemblyjs/helper-buffer" "1.11.0" 324 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" 325 | "@webassemblyjs/wasm-gen" "1.11.0" 326 | 327 | "@webassemblyjs/ieee754@1.11.0": 328 | version "1.11.0" 329 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" 330 | integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== 331 | dependencies: 332 | "@xtuc/ieee754" "^1.2.0" 333 | 334 | "@webassemblyjs/leb128@1.11.0": 335 | version "1.11.0" 336 | resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" 337 | integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== 338 | dependencies: 339 | "@xtuc/long" "4.2.2" 340 | 341 | "@webassemblyjs/utf8@1.11.0": 342 | version "1.11.0" 343 | resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" 344 | integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== 345 | 346 | "@webassemblyjs/wasm-edit@1.11.0": 347 | version "1.11.0" 348 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" 349 | integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== 350 | dependencies: 351 | "@webassemblyjs/ast" "1.11.0" 352 | "@webassemblyjs/helper-buffer" "1.11.0" 353 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" 354 | "@webassemblyjs/helper-wasm-section" "1.11.0" 355 | "@webassemblyjs/wasm-gen" "1.11.0" 356 | "@webassemblyjs/wasm-opt" "1.11.0" 357 | "@webassemblyjs/wasm-parser" "1.11.0" 358 | "@webassemblyjs/wast-printer" "1.11.0" 359 | 360 | "@webassemblyjs/wasm-gen@1.11.0": 361 | version "1.11.0" 362 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" 363 | integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== 364 | dependencies: 365 | "@webassemblyjs/ast" "1.11.0" 366 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" 367 | "@webassemblyjs/ieee754" "1.11.0" 368 | "@webassemblyjs/leb128" "1.11.0" 369 | "@webassemblyjs/utf8" "1.11.0" 370 | 371 | "@webassemblyjs/wasm-opt@1.11.0": 372 | version "1.11.0" 373 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" 374 | integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== 375 | dependencies: 376 | "@webassemblyjs/ast" "1.11.0" 377 | "@webassemblyjs/helper-buffer" "1.11.0" 378 | "@webassemblyjs/wasm-gen" "1.11.0" 379 | "@webassemblyjs/wasm-parser" "1.11.0" 380 | 381 | "@webassemblyjs/wasm-parser@1.11.0": 382 | version "1.11.0" 383 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" 384 | integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== 385 | dependencies: 386 | "@webassemblyjs/ast" "1.11.0" 387 | "@webassemblyjs/helper-api-error" "1.11.0" 388 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" 389 | "@webassemblyjs/ieee754" "1.11.0" 390 | "@webassemblyjs/leb128" "1.11.0" 391 | "@webassemblyjs/utf8" "1.11.0" 392 | 393 | "@webassemblyjs/wast-printer@1.11.0": 394 | version "1.11.0" 395 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" 396 | integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== 397 | dependencies: 398 | "@webassemblyjs/ast" "1.11.0" 399 | "@xtuc/long" "4.2.2" 400 | 401 | "@webpack-cli/configtest@^1.0.3": 402 | version "1.0.3" 403 | resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.3.tgz#204bcff87cda3ea4810881f7ea96e5f5321b87b9" 404 | integrity sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw== 405 | 406 | "@webpack-cli/info@^1.2.4": 407 | version "1.2.4" 408 | resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.4.tgz#7381fd41c9577b2d8f6c2594fad397ef49ad5573" 409 | integrity sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g== 410 | dependencies: 411 | envinfo "^7.7.3" 412 | 413 | "@webpack-cli/serve@^1.4.0": 414 | version "1.4.0" 415 | resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.4.0.tgz#f84fd07bcacefe56ce762925798871092f0f228e" 416 | integrity sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg== 417 | 418 | "@xtuc/ieee754@^1.2.0": 419 | version "1.2.0" 420 | resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" 421 | integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== 422 | 423 | "@xtuc/long@4.2.2": 424 | version "4.2.2" 425 | resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" 426 | integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 427 | 428 | acorn-jsx@^5.3.1: 429 | version "5.3.1" 430 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" 431 | integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== 432 | 433 | acorn@^7.4.0: 434 | version "7.4.1" 435 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" 436 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== 437 | 438 | acorn@^8.2.1: 439 | version "8.2.4" 440 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0" 441 | integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg== 442 | 443 | agent-base@6: 444 | version "6.0.2" 445 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" 446 | integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== 447 | dependencies: 448 | debug "4" 449 | 450 | aggregate-error@^3.0.0: 451 | version "3.1.0" 452 | resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" 453 | integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== 454 | dependencies: 455 | clean-stack "^2.0.0" 456 | indent-string "^4.0.0" 457 | 458 | ajv-keywords@^3.5.2: 459 | version "3.5.2" 460 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" 461 | integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== 462 | 463 | ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: 464 | version "6.12.6" 465 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 466 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 467 | dependencies: 468 | fast-deep-equal "^3.1.1" 469 | fast-json-stable-stringify "^2.0.0" 470 | json-schema-traverse "^0.4.1" 471 | uri-js "^4.2.2" 472 | 473 | ajv@^8.0.1: 474 | version "8.5.0" 475 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz#695528274bcb5afc865446aa275484049a18ae4b" 476 | integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ== 477 | dependencies: 478 | fast-deep-equal "^3.1.1" 479 | json-schema-traverse "^1.0.0" 480 | require-from-string "^2.0.2" 481 | uri-js "^4.2.2" 482 | 483 | ansi-colors@4.1.1, ansi-colors@^4.1.1: 484 | version "4.1.1" 485 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 486 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 487 | 488 | ansi-regex@^3.0.0: 489 | version "3.0.0" 490 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 491 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 492 | 493 | ansi-regex@^5.0.0: 494 | version "5.0.0" 495 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 496 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 497 | 498 | ansi-styles@^3.2.1: 499 | version "3.2.1" 500 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 501 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 502 | dependencies: 503 | color-convert "^1.9.0" 504 | 505 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 506 | version "4.3.0" 507 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 508 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 509 | dependencies: 510 | color-convert "^2.0.1" 511 | 512 | anymatch@~3.1.1: 513 | version "3.1.2" 514 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 515 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 516 | dependencies: 517 | normalize-path "^3.0.0" 518 | picomatch "^2.0.4" 519 | 520 | append-transform@^2.0.0: 521 | version "2.0.0" 522 | resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12" 523 | integrity sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== 524 | dependencies: 525 | default-require-extensions "^3.0.0" 526 | 527 | archy@^1.0.0: 528 | version "1.0.0" 529 | resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" 530 | integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= 531 | 532 | argparse@^1.0.7: 533 | version "1.0.10" 534 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 535 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 536 | dependencies: 537 | sprintf-js "~1.0.2" 538 | 539 | argparse@^2.0.1: 540 | version "2.0.1" 541 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 542 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 543 | 544 | argv@0.0.2: 545 | version "0.0.2" 546 | resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" 547 | integrity sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas= 548 | 549 | assertion-error@^1.1.0: 550 | version "1.1.0" 551 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" 552 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== 553 | 554 | astral-regex@^2.0.0: 555 | version "2.0.0" 556 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" 557 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== 558 | 559 | balanced-match@^1.0.0: 560 | version "1.0.2" 561 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 562 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 563 | 564 | binary-extensions@^2.0.0: 565 | version "2.2.0" 566 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 567 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 568 | 569 | brace-expansion@^1.1.7: 570 | version "1.1.11" 571 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 572 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 573 | dependencies: 574 | balanced-match "^1.0.0" 575 | concat-map "0.0.1" 576 | 577 | braces@~3.0.2: 578 | version "3.0.2" 579 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 580 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 581 | dependencies: 582 | fill-range "^7.0.1" 583 | 584 | browser-stdout@1.3.1: 585 | version "1.3.1" 586 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 587 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== 588 | 589 | browserslist@^4.14.5: 590 | version "4.16.6" 591 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" 592 | integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== 593 | dependencies: 594 | caniuse-lite "^1.0.30001219" 595 | colorette "^1.2.2" 596 | electron-to-chromium "^1.3.723" 597 | escalade "^3.1.1" 598 | node-releases "^1.1.71" 599 | 600 | buffer-from@^1.0.0: 601 | version "1.1.1" 602 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 603 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 604 | 605 | caching-transform@^4.0.0: 606 | version "4.0.0" 607 | resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" 608 | integrity sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== 609 | dependencies: 610 | hasha "^5.0.0" 611 | make-dir "^3.0.0" 612 | package-hash "^4.0.0" 613 | write-file-atomic "^3.0.0" 614 | 615 | callsites@^3.0.0: 616 | version "3.1.0" 617 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 618 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 619 | 620 | camelcase@^5.0.0, camelcase@^5.3.1: 621 | version "5.3.1" 622 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 623 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 624 | 625 | camelcase@^6.0.0: 626 | version "6.2.0" 627 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" 628 | integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== 629 | 630 | caniuse-lite@^1.0.30001219: 631 | version "1.0.30001228" 632 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" 633 | integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A== 634 | 635 | chai@^4.3.4: 636 | version "4.3.4" 637 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" 638 | integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== 639 | dependencies: 640 | assertion-error "^1.1.0" 641 | check-error "^1.0.2" 642 | deep-eql "^3.0.1" 643 | get-func-name "^2.0.0" 644 | pathval "^1.1.1" 645 | type-detect "^4.0.5" 646 | 647 | chalk@^2.0.0: 648 | version "2.4.2" 649 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 650 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 651 | dependencies: 652 | ansi-styles "^3.2.1" 653 | escape-string-regexp "^1.0.5" 654 | supports-color "^5.3.0" 655 | 656 | chalk@^4.0.0: 657 | version "4.1.1" 658 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" 659 | integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== 660 | dependencies: 661 | ansi-styles "^4.1.0" 662 | supports-color "^7.1.0" 663 | 664 | check-error@^1.0.2: 665 | version "1.0.2" 666 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" 667 | integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= 668 | 669 | chokidar@3.5.1: 670 | version "3.5.1" 671 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" 672 | integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== 673 | dependencies: 674 | anymatch "~3.1.1" 675 | braces "~3.0.2" 676 | glob-parent "~5.1.0" 677 | is-binary-path "~2.1.0" 678 | is-glob "~4.0.1" 679 | normalize-path "~3.0.0" 680 | readdirp "~3.5.0" 681 | optionalDependencies: 682 | fsevents "~2.3.1" 683 | 684 | chrome-trace-event@^1.0.2: 685 | version "1.0.3" 686 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" 687 | integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== 688 | 689 | clean-stack@^2.0.0: 690 | version "2.2.0" 691 | resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" 692 | integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== 693 | 694 | cliui@^6.0.0: 695 | version "6.0.0" 696 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" 697 | integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== 698 | dependencies: 699 | string-width "^4.2.0" 700 | strip-ansi "^6.0.0" 701 | wrap-ansi "^6.2.0" 702 | 703 | cliui@^7.0.2: 704 | version "7.0.4" 705 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 706 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 707 | dependencies: 708 | string-width "^4.2.0" 709 | strip-ansi "^6.0.0" 710 | wrap-ansi "^7.0.0" 711 | 712 | clone-deep@^4.0.1: 713 | version "4.0.1" 714 | resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" 715 | integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== 716 | dependencies: 717 | is-plain-object "^2.0.4" 718 | kind-of "^6.0.2" 719 | shallow-clone "^3.0.0" 720 | 721 | codecov@^3.8.1: 722 | version "3.8.2" 723 | resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.8.2.tgz#ab24f18783998c39e809ea210af899f8dbcc790e" 724 | integrity sha512-6w/kt/xvmPsWMfDFPE/T054txA9RTgcJEw36PNa6MYX+YV29jCHCRFXwbQ3QZBTOgnex1J2WP8bo2AT8TWWz9g== 725 | dependencies: 726 | argv "0.0.2" 727 | ignore-walk "3.0.3" 728 | js-yaml "3.14.1" 729 | teeny-request "7.0.1" 730 | urlgrey "0.4.4" 731 | 732 | color-convert@^1.9.0: 733 | version "1.9.3" 734 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 735 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 736 | dependencies: 737 | color-name "1.1.3" 738 | 739 | color-convert@^2.0.1: 740 | version "2.0.1" 741 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 742 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 743 | dependencies: 744 | color-name "~1.1.4" 745 | 746 | color-name@1.1.3: 747 | version "1.1.3" 748 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 749 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 750 | 751 | color-name@~1.1.4: 752 | version "1.1.4" 753 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 754 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 755 | 756 | colorette@^1.2.1, colorette@^1.2.2: 757 | version "1.2.2" 758 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" 759 | integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== 760 | 761 | commander@^2.20.0: 762 | version "2.20.3" 763 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 764 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 765 | 766 | commander@^7.0.0: 767 | version "7.2.0" 768 | resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" 769 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== 770 | 771 | commondir@^1.0.1: 772 | version "1.0.1" 773 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 774 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= 775 | 776 | concat-map@0.0.1: 777 | version "0.0.1" 778 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 779 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 780 | 781 | convert-source-map@^1.7.0: 782 | version "1.7.0" 783 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" 784 | integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== 785 | dependencies: 786 | safe-buffer "~5.1.1" 787 | 788 | cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: 789 | version "7.0.3" 790 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 791 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 792 | dependencies: 793 | path-key "^3.1.0" 794 | shebang-command "^2.0.0" 795 | which "^2.0.1" 796 | 797 | debug@4, debug@4.3.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: 798 | version "4.3.1" 799 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 800 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 801 | dependencies: 802 | ms "2.1.2" 803 | 804 | decamelize@^1.2.0: 805 | version "1.2.0" 806 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 807 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 808 | 809 | decamelize@^4.0.0: 810 | version "4.0.0" 811 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" 812 | integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== 813 | 814 | deep-eql@^3.0.1: 815 | version "3.0.1" 816 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" 817 | integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== 818 | dependencies: 819 | type-detect "^4.0.0" 820 | 821 | deep-is@^0.1.3: 822 | version "0.1.3" 823 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 824 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 825 | 826 | default-require-extensions@^3.0.0: 827 | version "3.0.0" 828 | resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.0.tgz#e03f93aac9b2b6443fc52e5e4a37b3ad9ad8df96" 829 | integrity sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg== 830 | dependencies: 831 | strip-bom "^4.0.0" 832 | 833 | diff@5.0.0: 834 | version "5.0.0" 835 | resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" 836 | integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== 837 | 838 | doctrine@^3.0.0: 839 | version "3.0.0" 840 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 841 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 842 | dependencies: 843 | esutils "^2.0.2" 844 | 845 | electron-to-chromium@^1.3.723: 846 | version "1.3.735" 847 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.735.tgz#fa1a8660f2790662291cb2136f0e446a444cdfdc" 848 | integrity sha512-cp7MWzC3NseUJV2FJFgaiesdrS+A8ZUjX5fLAxdRlcaPDkaPGFplX930S5vf84yqDp4LjuLdKouWuVOTwUfqHQ== 849 | 850 | emoji-regex@^8.0.0: 851 | version "8.0.0" 852 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 853 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 854 | 855 | enhanced-resolve@^5.8.0: 856 | version "5.8.2" 857 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" 858 | integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== 859 | dependencies: 860 | graceful-fs "^4.2.4" 861 | tapable "^2.2.0" 862 | 863 | enquirer@^2.3.5: 864 | version "2.3.6" 865 | resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" 866 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== 867 | dependencies: 868 | ansi-colors "^4.1.1" 869 | 870 | envinfo@^7.7.3: 871 | version "7.8.1" 872 | resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" 873 | integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== 874 | 875 | es-module-lexer@^0.4.0: 876 | version "0.4.1" 877 | resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" 878 | integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA== 879 | 880 | es6-error@^4.0.1: 881 | version "4.1.1" 882 | resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" 883 | integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== 884 | 885 | escalade@^3.1.1: 886 | version "3.1.1" 887 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 888 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 889 | 890 | escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: 891 | version "4.0.0" 892 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 893 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 894 | 895 | escape-string-regexp@^1.0.5: 896 | version "1.0.5" 897 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 898 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 899 | 900 | eslint-scope@^5.1.1: 901 | version "5.1.1" 902 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 903 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 904 | dependencies: 905 | esrecurse "^4.3.0" 906 | estraverse "^4.1.1" 907 | 908 | eslint-utils@^2.1.0: 909 | version "2.1.0" 910 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" 911 | integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== 912 | dependencies: 913 | eslint-visitor-keys "^1.1.0" 914 | 915 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: 916 | version "1.3.0" 917 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" 918 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== 919 | 920 | eslint-visitor-keys@^2.0.0: 921 | version "2.1.0" 922 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" 923 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== 924 | 925 | eslint@^7.25.0: 926 | version "7.27.0" 927 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.27.0.tgz#665a1506d8f95655c9274d84bd78f7166b07e9c7" 928 | integrity sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA== 929 | dependencies: 930 | "@babel/code-frame" "7.12.11" 931 | "@eslint/eslintrc" "^0.4.1" 932 | ajv "^6.10.0" 933 | chalk "^4.0.0" 934 | cross-spawn "^7.0.2" 935 | debug "^4.0.1" 936 | doctrine "^3.0.0" 937 | enquirer "^2.3.5" 938 | escape-string-regexp "^4.0.0" 939 | eslint-scope "^5.1.1" 940 | eslint-utils "^2.1.0" 941 | eslint-visitor-keys "^2.0.0" 942 | espree "^7.3.1" 943 | esquery "^1.4.0" 944 | esutils "^2.0.2" 945 | fast-deep-equal "^3.1.3" 946 | file-entry-cache "^6.0.1" 947 | functional-red-black-tree "^1.0.1" 948 | glob-parent "^5.0.0" 949 | globals "^13.6.0" 950 | ignore "^4.0.6" 951 | import-fresh "^3.0.0" 952 | imurmurhash "^0.1.4" 953 | is-glob "^4.0.0" 954 | js-yaml "^3.13.1" 955 | json-stable-stringify-without-jsonify "^1.0.1" 956 | levn "^0.4.1" 957 | lodash.merge "^4.6.2" 958 | minimatch "^3.0.4" 959 | natural-compare "^1.4.0" 960 | optionator "^0.9.1" 961 | progress "^2.0.0" 962 | regexpp "^3.1.0" 963 | semver "^7.2.1" 964 | strip-ansi "^6.0.0" 965 | strip-json-comments "^3.1.0" 966 | table "^6.0.9" 967 | text-table "^0.2.0" 968 | v8-compile-cache "^2.0.3" 969 | 970 | espree@^7.3.0, espree@^7.3.1: 971 | version "7.3.1" 972 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" 973 | integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== 974 | dependencies: 975 | acorn "^7.4.0" 976 | acorn-jsx "^5.3.1" 977 | eslint-visitor-keys "^1.3.0" 978 | 979 | esprima@^4.0.0: 980 | version "4.0.1" 981 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 982 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 983 | 984 | esquery@^1.4.0: 985 | version "1.4.0" 986 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" 987 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== 988 | dependencies: 989 | estraverse "^5.1.0" 990 | 991 | esrecurse@^4.3.0: 992 | version "4.3.0" 993 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 994 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 995 | dependencies: 996 | estraverse "^5.2.0" 997 | 998 | estraverse@^4.1.1: 999 | version "4.3.0" 1000 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 1001 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 1002 | 1003 | estraverse@^5.1.0, estraverse@^5.2.0: 1004 | version "5.2.0" 1005 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" 1006 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== 1007 | 1008 | esutils@^2.0.2: 1009 | version "2.0.3" 1010 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 1011 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1012 | 1013 | events@^3.2.0: 1014 | version "3.3.0" 1015 | resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" 1016 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 1017 | 1018 | execa@^5.0.0: 1019 | version "5.0.0" 1020 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" 1021 | integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== 1022 | dependencies: 1023 | cross-spawn "^7.0.3" 1024 | get-stream "^6.0.0" 1025 | human-signals "^2.1.0" 1026 | is-stream "^2.0.0" 1027 | merge-stream "^2.0.0" 1028 | npm-run-path "^4.0.1" 1029 | onetime "^5.1.2" 1030 | signal-exit "^3.0.3" 1031 | strip-final-newline "^2.0.0" 1032 | 1033 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 1034 | version "3.1.3" 1035 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 1036 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 1037 | 1038 | fast-json-stable-stringify@^2.0.0: 1039 | version "2.1.0" 1040 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 1041 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 1042 | 1043 | fast-levenshtein@^2.0.6: 1044 | version "2.0.6" 1045 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1046 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 1047 | 1048 | fastest-levenshtein@^1.0.12: 1049 | version "1.0.12" 1050 | resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" 1051 | integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== 1052 | 1053 | file-entry-cache@^6.0.1: 1054 | version "6.0.1" 1055 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 1056 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 1057 | dependencies: 1058 | flat-cache "^3.0.4" 1059 | 1060 | fill-range@^7.0.1: 1061 | version "7.0.1" 1062 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 1063 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 1064 | dependencies: 1065 | to-regex-range "^5.0.1" 1066 | 1067 | find-cache-dir@^3.2.0: 1068 | version "3.3.1" 1069 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" 1070 | integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== 1071 | dependencies: 1072 | commondir "^1.0.1" 1073 | make-dir "^3.0.2" 1074 | pkg-dir "^4.1.0" 1075 | 1076 | find-up@5.0.0: 1077 | version "5.0.0" 1078 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 1079 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 1080 | dependencies: 1081 | locate-path "^6.0.0" 1082 | path-exists "^4.0.0" 1083 | 1084 | find-up@^4.0.0, find-up@^4.1.0: 1085 | version "4.1.0" 1086 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 1087 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 1088 | dependencies: 1089 | locate-path "^5.0.0" 1090 | path-exists "^4.0.0" 1091 | 1092 | flat-cache@^3.0.4: 1093 | version "3.0.4" 1094 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 1095 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 1096 | dependencies: 1097 | flatted "^3.1.0" 1098 | rimraf "^3.0.2" 1099 | 1100 | flat@^5.0.2: 1101 | version "5.0.2" 1102 | resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" 1103 | integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== 1104 | 1105 | flatted@^3.1.0: 1106 | version "3.1.1" 1107 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" 1108 | integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== 1109 | 1110 | foreground-child@^2.0.0: 1111 | version "2.0.0" 1112 | resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" 1113 | integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== 1114 | dependencies: 1115 | cross-spawn "^7.0.0" 1116 | signal-exit "^3.0.2" 1117 | 1118 | fromentries@^1.2.0: 1119 | version "1.3.2" 1120 | resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" 1121 | integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== 1122 | 1123 | fs.realpath@^1.0.0: 1124 | version "1.0.0" 1125 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1126 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1127 | 1128 | fsevents@~2.3.1: 1129 | version "2.3.2" 1130 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 1131 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 1132 | 1133 | function-bind@^1.1.1: 1134 | version "1.1.1" 1135 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1136 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1137 | 1138 | functional-red-black-tree@^1.0.1: 1139 | version "1.0.1" 1140 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 1141 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 1142 | 1143 | gensync@^1.0.0-beta.2: 1144 | version "1.0.0-beta.2" 1145 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 1146 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1147 | 1148 | get-caller-file@^2.0.1, get-caller-file@^2.0.5: 1149 | version "2.0.5" 1150 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 1151 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 1152 | 1153 | get-func-name@^2.0.0: 1154 | version "2.0.0" 1155 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" 1156 | integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= 1157 | 1158 | get-package-type@^0.1.0: 1159 | version "0.1.0" 1160 | resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" 1161 | integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== 1162 | 1163 | get-stream@^6.0.0: 1164 | version "6.0.1" 1165 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" 1166 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== 1167 | 1168 | glob-parent@^5.0.0, glob-parent@~5.1.0: 1169 | version "5.1.2" 1170 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 1171 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1172 | dependencies: 1173 | is-glob "^4.0.1" 1174 | 1175 | glob-to-regexp@^0.4.1: 1176 | version "0.4.1" 1177 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" 1178 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 1179 | 1180 | glob@7.1.6: 1181 | version "7.1.6" 1182 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 1183 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 1184 | dependencies: 1185 | fs.realpath "^1.0.0" 1186 | inflight "^1.0.4" 1187 | inherits "2" 1188 | minimatch "^3.0.4" 1189 | once "^1.3.0" 1190 | path-is-absolute "^1.0.0" 1191 | 1192 | glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: 1193 | version "7.1.7" 1194 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" 1195 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== 1196 | dependencies: 1197 | fs.realpath "^1.0.0" 1198 | inflight "^1.0.4" 1199 | inherits "2" 1200 | minimatch "^3.0.4" 1201 | once "^1.3.0" 1202 | path-is-absolute "^1.0.0" 1203 | 1204 | globals@^11.1.0: 1205 | version "11.12.0" 1206 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1207 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1208 | 1209 | globals@^12.1.0: 1210 | version "12.4.0" 1211 | resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" 1212 | integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== 1213 | dependencies: 1214 | type-fest "^0.8.1" 1215 | 1216 | globals@^13.6.0: 1217 | version "13.8.0" 1218 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" 1219 | integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q== 1220 | dependencies: 1221 | type-fest "^0.20.2" 1222 | 1223 | graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.4: 1224 | version "4.2.6" 1225 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" 1226 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 1227 | 1228 | growl@1.10.5: 1229 | version "1.10.5" 1230 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" 1231 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== 1232 | 1233 | has-flag@^3.0.0: 1234 | version "3.0.0" 1235 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1236 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1237 | 1238 | has-flag@^4.0.0: 1239 | version "4.0.0" 1240 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1241 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1242 | 1243 | has@^1.0.3: 1244 | version "1.0.3" 1245 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1246 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1247 | dependencies: 1248 | function-bind "^1.1.1" 1249 | 1250 | hasha@^5.0.0: 1251 | version "5.2.2" 1252 | resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" 1253 | integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== 1254 | dependencies: 1255 | is-stream "^2.0.0" 1256 | type-fest "^0.8.0" 1257 | 1258 | he@1.2.0: 1259 | version "1.2.0" 1260 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 1261 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 1262 | 1263 | html-escaper@^2.0.0: 1264 | version "2.0.2" 1265 | resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" 1266 | integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== 1267 | 1268 | http-proxy-agent@^4.0.0: 1269 | version "4.0.1" 1270 | resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" 1271 | integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== 1272 | dependencies: 1273 | "@tootallnate/once" "1" 1274 | agent-base "6" 1275 | debug "4" 1276 | 1277 | https-proxy-agent@^5.0.0: 1278 | version "5.0.0" 1279 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" 1280 | integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== 1281 | dependencies: 1282 | agent-base "6" 1283 | debug "4" 1284 | 1285 | human-signals@^2.1.0: 1286 | version "2.1.0" 1287 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" 1288 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== 1289 | 1290 | ignore-walk@3.0.3: 1291 | version "3.0.3" 1292 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" 1293 | integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== 1294 | dependencies: 1295 | minimatch "^3.0.4" 1296 | 1297 | ignore@^4.0.6: 1298 | version "4.0.6" 1299 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 1300 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 1301 | 1302 | import-fresh@^3.0.0, import-fresh@^3.2.1: 1303 | version "3.3.0" 1304 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 1305 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1306 | dependencies: 1307 | parent-module "^1.0.0" 1308 | resolve-from "^4.0.0" 1309 | 1310 | import-local@^3.0.2: 1311 | version "3.0.2" 1312 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" 1313 | integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== 1314 | dependencies: 1315 | pkg-dir "^4.2.0" 1316 | resolve-cwd "^3.0.0" 1317 | 1318 | imurmurhash@^0.1.4: 1319 | version "0.1.4" 1320 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1321 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1322 | 1323 | indent-string@^4.0.0: 1324 | version "4.0.0" 1325 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" 1326 | integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== 1327 | 1328 | inflight@^1.0.4: 1329 | version "1.0.6" 1330 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1331 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1332 | dependencies: 1333 | once "^1.3.0" 1334 | wrappy "1" 1335 | 1336 | inherits@2: 1337 | version "2.0.4" 1338 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1339 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1340 | 1341 | interpret@^2.2.0: 1342 | version "2.2.0" 1343 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" 1344 | integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== 1345 | 1346 | is-binary-path@~2.1.0: 1347 | version "2.1.0" 1348 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 1349 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 1350 | dependencies: 1351 | binary-extensions "^2.0.0" 1352 | 1353 | is-core-module@^2.2.0: 1354 | version "2.4.0" 1355 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" 1356 | integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== 1357 | dependencies: 1358 | has "^1.0.3" 1359 | 1360 | is-extglob@^2.1.1: 1361 | version "2.1.1" 1362 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1363 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1364 | 1365 | is-fullwidth-code-point@^2.0.0: 1366 | version "2.0.0" 1367 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1368 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 1369 | 1370 | is-fullwidth-code-point@^3.0.0: 1371 | version "3.0.0" 1372 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1373 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1374 | 1375 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: 1376 | version "4.0.1" 1377 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1378 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 1379 | dependencies: 1380 | is-extglob "^2.1.1" 1381 | 1382 | is-number@^7.0.0: 1383 | version "7.0.0" 1384 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1385 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1386 | 1387 | is-plain-obj@^2.1.0: 1388 | version "2.1.0" 1389 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" 1390 | integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== 1391 | 1392 | is-plain-object@^2.0.4: 1393 | version "2.0.4" 1394 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1395 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 1396 | dependencies: 1397 | isobject "^3.0.1" 1398 | 1399 | is-stream@^2.0.0: 1400 | version "2.0.0" 1401 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" 1402 | integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== 1403 | 1404 | is-typedarray@^1.0.0: 1405 | version "1.0.0" 1406 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1407 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 1408 | 1409 | is-windows@^1.0.2: 1410 | version "1.0.2" 1411 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 1412 | integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== 1413 | 1414 | isexe@^2.0.0: 1415 | version "2.0.0" 1416 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1417 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1418 | 1419 | isobject@^3.0.1: 1420 | version "3.0.1" 1421 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1422 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 1423 | 1424 | istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1: 1425 | version "3.0.0" 1426 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" 1427 | integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== 1428 | 1429 | istanbul-lib-hook@^3.0.0: 1430 | version "3.0.0" 1431 | resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz#8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6" 1432 | integrity sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== 1433 | dependencies: 1434 | append-transform "^2.0.0" 1435 | 1436 | istanbul-lib-instrument@^4.0.0: 1437 | version "4.0.3" 1438 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" 1439 | integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== 1440 | dependencies: 1441 | "@babel/core" "^7.7.5" 1442 | "@istanbuljs/schema" "^0.1.2" 1443 | istanbul-lib-coverage "^3.0.0" 1444 | semver "^6.3.0" 1445 | 1446 | istanbul-lib-processinfo@^2.0.2: 1447 | version "2.0.2" 1448 | resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz#e1426514662244b2f25df728e8fd1ba35fe53b9c" 1449 | integrity sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw== 1450 | dependencies: 1451 | archy "^1.0.0" 1452 | cross-spawn "^7.0.0" 1453 | istanbul-lib-coverage "^3.0.0-alpha.1" 1454 | make-dir "^3.0.0" 1455 | p-map "^3.0.0" 1456 | rimraf "^3.0.0" 1457 | uuid "^3.3.3" 1458 | 1459 | istanbul-lib-report@^3.0.0: 1460 | version "3.0.0" 1461 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" 1462 | integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== 1463 | dependencies: 1464 | istanbul-lib-coverage "^3.0.0" 1465 | make-dir "^3.0.0" 1466 | supports-color "^7.1.0" 1467 | 1468 | istanbul-lib-source-maps@^4.0.0: 1469 | version "4.0.0" 1470 | resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" 1471 | integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== 1472 | dependencies: 1473 | debug "^4.1.1" 1474 | istanbul-lib-coverage "^3.0.0" 1475 | source-map "^0.6.1" 1476 | 1477 | istanbul-reports@^3.0.2: 1478 | version "3.0.2" 1479 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" 1480 | integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== 1481 | dependencies: 1482 | html-escaper "^2.0.0" 1483 | istanbul-lib-report "^3.0.0" 1484 | 1485 | jest-worker@^26.6.2: 1486 | version "26.6.2" 1487 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" 1488 | integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== 1489 | dependencies: 1490 | "@types/node" "*" 1491 | merge-stream "^2.0.0" 1492 | supports-color "^7.0.0" 1493 | 1494 | js-tokens@^4.0.0: 1495 | version "4.0.0" 1496 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1497 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1498 | 1499 | js-yaml@3.14.1, js-yaml@^3.13.1: 1500 | version "3.14.1" 1501 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 1502 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 1503 | dependencies: 1504 | argparse "^1.0.7" 1505 | esprima "^4.0.0" 1506 | 1507 | js-yaml@4.0.0: 1508 | version "4.0.0" 1509 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" 1510 | integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== 1511 | dependencies: 1512 | argparse "^2.0.1" 1513 | 1514 | jsesc@^2.5.1: 1515 | version "2.5.2" 1516 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1517 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1518 | 1519 | json-parse-better-errors@^1.0.2: 1520 | version "1.0.2" 1521 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 1522 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 1523 | 1524 | json-schema-traverse@^0.4.1: 1525 | version "0.4.1" 1526 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1527 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1528 | 1529 | json-schema-traverse@^1.0.0: 1530 | version "1.0.0" 1531 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 1532 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 1533 | 1534 | json-stable-stringify-without-jsonify@^1.0.1: 1535 | version "1.0.1" 1536 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1537 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 1538 | 1539 | json5@^2.1.2: 1540 | version "2.2.0" 1541 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" 1542 | integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== 1543 | dependencies: 1544 | minimist "^1.2.5" 1545 | 1546 | kind-of@^6.0.2: 1547 | version "6.0.3" 1548 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" 1549 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 1550 | 1551 | levn@^0.4.1: 1552 | version "0.4.1" 1553 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 1554 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1555 | dependencies: 1556 | prelude-ls "^1.2.1" 1557 | type-check "~0.4.0" 1558 | 1559 | loader-runner@^4.2.0: 1560 | version "4.2.0" 1561 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" 1562 | integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== 1563 | 1564 | locate-path@^5.0.0: 1565 | version "5.0.0" 1566 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 1567 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 1568 | dependencies: 1569 | p-locate "^4.1.0" 1570 | 1571 | locate-path@^6.0.0: 1572 | version "6.0.0" 1573 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 1574 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 1575 | dependencies: 1576 | p-locate "^5.0.0" 1577 | 1578 | lodash.clonedeep@^4.5.0: 1579 | version "4.5.0" 1580 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" 1581 | integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= 1582 | 1583 | lodash.flattendeep@^4.4.0: 1584 | version "4.4.0" 1585 | resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" 1586 | integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= 1587 | 1588 | lodash.merge@^4.6.2: 1589 | version "4.6.2" 1590 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 1591 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 1592 | 1593 | lodash.truncate@^4.4.2: 1594 | version "4.4.2" 1595 | resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" 1596 | integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= 1597 | 1598 | log-symbols@4.0.0: 1599 | version "4.0.0" 1600 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" 1601 | integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== 1602 | dependencies: 1603 | chalk "^4.0.0" 1604 | 1605 | lru-cache@^6.0.0: 1606 | version "6.0.0" 1607 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1608 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1609 | dependencies: 1610 | yallist "^4.0.0" 1611 | 1612 | make-dir@^3.0.0, make-dir@^3.0.2: 1613 | version "3.1.0" 1614 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 1615 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 1616 | dependencies: 1617 | semver "^6.0.0" 1618 | 1619 | merge-stream@^2.0.0: 1620 | version "2.0.0" 1621 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 1622 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 1623 | 1624 | mime-db@1.47.0: 1625 | version "1.47.0" 1626 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" 1627 | integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== 1628 | 1629 | mime-types@^2.1.27: 1630 | version "2.1.30" 1631 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" 1632 | integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== 1633 | dependencies: 1634 | mime-db "1.47.0" 1635 | 1636 | mimic-fn@^2.1.0: 1637 | version "2.1.0" 1638 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1639 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 1640 | 1641 | minimatch@3.0.4, minimatch@^3.0.4: 1642 | version "3.0.4" 1643 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1644 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1645 | dependencies: 1646 | brace-expansion "^1.1.7" 1647 | 1648 | minimist@^1.2.5: 1649 | version "1.2.5" 1650 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1651 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1652 | 1653 | mocha@^8.3.2: 1654 | version "8.4.0" 1655 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" 1656 | integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ== 1657 | dependencies: 1658 | "@ungap/promise-all-settled" "1.1.2" 1659 | ansi-colors "4.1.1" 1660 | browser-stdout "1.3.1" 1661 | chokidar "3.5.1" 1662 | debug "4.3.1" 1663 | diff "5.0.0" 1664 | escape-string-regexp "4.0.0" 1665 | find-up "5.0.0" 1666 | glob "7.1.6" 1667 | growl "1.10.5" 1668 | he "1.2.0" 1669 | js-yaml "4.0.0" 1670 | log-symbols "4.0.0" 1671 | minimatch "3.0.4" 1672 | ms "2.1.3" 1673 | nanoid "3.1.20" 1674 | serialize-javascript "5.0.1" 1675 | strip-json-comments "3.1.1" 1676 | supports-color "8.1.1" 1677 | which "2.0.2" 1678 | wide-align "1.1.3" 1679 | workerpool "6.1.0" 1680 | yargs "16.2.0" 1681 | yargs-parser "20.2.4" 1682 | yargs-unparser "2.0.0" 1683 | 1684 | ms@2.1.2: 1685 | version "2.1.2" 1686 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1687 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1688 | 1689 | ms@2.1.3: 1690 | version "2.1.3" 1691 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1692 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1693 | 1694 | nanoid@3.1.20: 1695 | version "3.1.20" 1696 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" 1697 | integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== 1698 | 1699 | natural-compare@^1.4.0: 1700 | version "1.4.0" 1701 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1702 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1703 | 1704 | neo-async@^2.6.2: 1705 | version "2.6.2" 1706 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" 1707 | integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 1708 | 1709 | node-fetch@^2.6.1: 1710 | version "2.6.1" 1711 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" 1712 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 1713 | 1714 | node-preload@^0.2.1: 1715 | version "0.2.1" 1716 | resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" 1717 | integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== 1718 | dependencies: 1719 | process-on-spawn "^1.0.0" 1720 | 1721 | node-releases@^1.1.71: 1722 | version "1.1.72" 1723 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" 1724 | integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== 1725 | 1726 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1727 | version "3.0.0" 1728 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1729 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1730 | 1731 | npm-run-path@^4.0.1: 1732 | version "4.0.1" 1733 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" 1734 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 1735 | dependencies: 1736 | path-key "^3.0.0" 1737 | 1738 | nyc@^15.1.0: 1739 | version "15.1.0" 1740 | resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" 1741 | integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== 1742 | dependencies: 1743 | "@istanbuljs/load-nyc-config" "^1.0.0" 1744 | "@istanbuljs/schema" "^0.1.2" 1745 | caching-transform "^4.0.0" 1746 | convert-source-map "^1.7.0" 1747 | decamelize "^1.2.0" 1748 | find-cache-dir "^3.2.0" 1749 | find-up "^4.1.0" 1750 | foreground-child "^2.0.0" 1751 | get-package-type "^0.1.0" 1752 | glob "^7.1.6" 1753 | istanbul-lib-coverage "^3.0.0" 1754 | istanbul-lib-hook "^3.0.0" 1755 | istanbul-lib-instrument "^4.0.0" 1756 | istanbul-lib-processinfo "^2.0.2" 1757 | istanbul-lib-report "^3.0.0" 1758 | istanbul-lib-source-maps "^4.0.0" 1759 | istanbul-reports "^3.0.2" 1760 | make-dir "^3.0.0" 1761 | node-preload "^0.2.1" 1762 | p-map "^3.0.0" 1763 | process-on-spawn "^1.0.0" 1764 | resolve-from "^5.0.0" 1765 | rimraf "^3.0.0" 1766 | signal-exit "^3.0.2" 1767 | spawn-wrap "^2.0.0" 1768 | test-exclude "^6.0.0" 1769 | yargs "^15.0.2" 1770 | 1771 | once@^1.3.0: 1772 | version "1.4.0" 1773 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1774 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1775 | dependencies: 1776 | wrappy "1" 1777 | 1778 | onetime@^5.1.2: 1779 | version "5.1.2" 1780 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 1781 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 1782 | dependencies: 1783 | mimic-fn "^2.1.0" 1784 | 1785 | optionator@^0.9.1: 1786 | version "0.9.1" 1787 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 1788 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 1789 | dependencies: 1790 | deep-is "^0.1.3" 1791 | fast-levenshtein "^2.0.6" 1792 | levn "^0.4.1" 1793 | prelude-ls "^1.2.1" 1794 | type-check "^0.4.0" 1795 | word-wrap "^1.2.3" 1796 | 1797 | p-limit@^2.2.0: 1798 | version "2.3.0" 1799 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1800 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1801 | dependencies: 1802 | p-try "^2.0.0" 1803 | 1804 | p-limit@^3.0.2, p-limit@^3.1.0: 1805 | version "3.1.0" 1806 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 1807 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1808 | dependencies: 1809 | yocto-queue "^0.1.0" 1810 | 1811 | p-locate@^4.1.0: 1812 | version "4.1.0" 1813 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 1814 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 1815 | dependencies: 1816 | p-limit "^2.2.0" 1817 | 1818 | p-locate@^5.0.0: 1819 | version "5.0.0" 1820 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 1821 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 1822 | dependencies: 1823 | p-limit "^3.0.2" 1824 | 1825 | p-map@^3.0.0: 1826 | version "3.0.0" 1827 | resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" 1828 | integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== 1829 | dependencies: 1830 | aggregate-error "^3.0.0" 1831 | 1832 | p-try@^2.0.0: 1833 | version "2.2.0" 1834 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1835 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1836 | 1837 | package-hash@^4.0.0: 1838 | version "4.0.0" 1839 | resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" 1840 | integrity sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== 1841 | dependencies: 1842 | graceful-fs "^4.1.15" 1843 | hasha "^5.0.0" 1844 | lodash.flattendeep "^4.4.0" 1845 | release-zalgo "^1.0.0" 1846 | 1847 | parent-module@^1.0.0: 1848 | version "1.0.1" 1849 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1850 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1851 | dependencies: 1852 | callsites "^3.0.0" 1853 | 1854 | parselib@^1.0.0: 1855 | version "1.0.0" 1856 | resolved "https://registry.yarnpkg.com/parselib/-/parselib-1.0.0.tgz#681a25a4614c75a8bb211b1786a90e33d1e48c02" 1857 | integrity sha512-G+pcgRKqcJKODRBJdIKxJh2IQPUUB4/HCNG0uAcubPg1pD1eFEHu66mNnF95jRW/Kv17nnzpeEi69gcWSWteRA== 1858 | 1859 | path-exists@^4.0.0: 1860 | version "4.0.0" 1861 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1862 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1863 | 1864 | path-is-absolute@^1.0.0: 1865 | version "1.0.1" 1866 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1867 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1868 | 1869 | path-key@^3.0.0, path-key@^3.1.0: 1870 | version "3.1.1" 1871 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1872 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1873 | 1874 | path-parse@^1.0.6: 1875 | version "1.0.7" 1876 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1877 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1878 | 1879 | pathval@^1.1.1: 1880 | version "1.1.1" 1881 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" 1882 | integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== 1883 | 1884 | picomatch@^2.0.4, picomatch@^2.2.1: 1885 | version "2.3.0" 1886 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 1887 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 1888 | 1889 | pkg-dir@^4.1.0, pkg-dir@^4.2.0: 1890 | version "4.2.0" 1891 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 1892 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 1893 | dependencies: 1894 | find-up "^4.0.0" 1895 | 1896 | prelude-ls@^1.2.1: 1897 | version "1.2.1" 1898 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1899 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1900 | 1901 | process-on-spawn@^1.0.0: 1902 | version "1.0.0" 1903 | resolved "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.0.0.tgz#95b05a23073d30a17acfdc92a440efd2baefdc93" 1904 | integrity sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg== 1905 | dependencies: 1906 | fromentries "^1.2.0" 1907 | 1908 | progress@^2.0.0: 1909 | version "2.0.3" 1910 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 1911 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 1912 | 1913 | punycode@^2.1.0: 1914 | version "2.1.1" 1915 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1916 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1917 | 1918 | randombytes@^2.1.0: 1919 | version "2.1.0" 1920 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 1921 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 1922 | dependencies: 1923 | safe-buffer "^5.1.0" 1924 | 1925 | readdirp@~3.5.0: 1926 | version "3.5.0" 1927 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" 1928 | integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== 1929 | dependencies: 1930 | picomatch "^2.2.1" 1931 | 1932 | rechoir@^0.7.0: 1933 | version "0.7.0" 1934 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" 1935 | integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== 1936 | dependencies: 1937 | resolve "^1.9.0" 1938 | 1939 | regexpp@^3.1.0: 1940 | version "3.1.0" 1941 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" 1942 | integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== 1943 | 1944 | release-zalgo@^1.0.0: 1945 | version "1.0.0" 1946 | resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" 1947 | integrity sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA= 1948 | dependencies: 1949 | es6-error "^4.0.1" 1950 | 1951 | require-directory@^2.1.1: 1952 | version "2.1.1" 1953 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1954 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 1955 | 1956 | require-from-string@^2.0.2: 1957 | version "2.0.2" 1958 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 1959 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 1960 | 1961 | require-main-filename@^2.0.0: 1962 | version "2.0.0" 1963 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" 1964 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== 1965 | 1966 | resolve-cwd@^3.0.0: 1967 | version "3.0.0" 1968 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" 1969 | integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== 1970 | dependencies: 1971 | resolve-from "^5.0.0" 1972 | 1973 | resolve-from@^4.0.0: 1974 | version "4.0.0" 1975 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1976 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1977 | 1978 | resolve-from@^5.0.0: 1979 | version "5.0.0" 1980 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" 1981 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 1982 | 1983 | resolve@^1.9.0: 1984 | version "1.20.0" 1985 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 1986 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 1987 | dependencies: 1988 | is-core-module "^2.2.0" 1989 | path-parse "^1.0.6" 1990 | 1991 | rimraf@^3.0.0, rimraf@^3.0.2: 1992 | version "3.0.2" 1993 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1994 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1995 | dependencies: 1996 | glob "^7.1.3" 1997 | 1998 | safe-buffer@^5.1.0: 1999 | version "5.2.1" 2000 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 2001 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 2002 | 2003 | safe-buffer@~5.1.1: 2004 | version "5.1.2" 2005 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2006 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2007 | 2008 | schema-utils@^3.0.0: 2009 | version "3.0.0" 2010 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" 2011 | integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== 2012 | dependencies: 2013 | "@types/json-schema" "^7.0.6" 2014 | ajv "^6.12.5" 2015 | ajv-keywords "^3.5.2" 2016 | 2017 | semver@^6.0.0, semver@^6.3.0: 2018 | version "6.3.0" 2019 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 2020 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 2021 | 2022 | semver@^7.2.1: 2023 | version "7.3.5" 2024 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 2025 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 2026 | dependencies: 2027 | lru-cache "^6.0.0" 2028 | 2029 | serialize-javascript@5.0.1, serialize-javascript@^5.0.1: 2030 | version "5.0.1" 2031 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" 2032 | integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== 2033 | dependencies: 2034 | randombytes "^2.1.0" 2035 | 2036 | set-blocking@^2.0.0: 2037 | version "2.0.0" 2038 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2039 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 2040 | 2041 | shallow-clone@^3.0.0: 2042 | version "3.0.1" 2043 | resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" 2044 | integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== 2045 | dependencies: 2046 | kind-of "^6.0.2" 2047 | 2048 | shebang-command@^2.0.0: 2049 | version "2.0.0" 2050 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 2051 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 2052 | dependencies: 2053 | shebang-regex "^3.0.0" 2054 | 2055 | shebang-regex@^3.0.0: 2056 | version "3.0.0" 2057 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 2058 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 2059 | 2060 | signal-exit@^3.0.2, signal-exit@^3.0.3: 2061 | version "3.0.3" 2062 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 2063 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 2064 | 2065 | slice-ansi@^4.0.0: 2066 | version "4.0.0" 2067 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" 2068 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== 2069 | dependencies: 2070 | ansi-styles "^4.0.0" 2071 | astral-regex "^2.0.0" 2072 | is-fullwidth-code-point "^3.0.0" 2073 | 2074 | source-list-map@^2.0.1: 2075 | version "2.0.1" 2076 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" 2077 | integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== 2078 | 2079 | source-map-support@~0.5.19: 2080 | version "0.5.19" 2081 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 2082 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 2083 | dependencies: 2084 | buffer-from "^1.0.0" 2085 | source-map "^0.6.0" 2086 | 2087 | source-map@^0.5.0: 2088 | version "0.5.7" 2089 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 2090 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 2091 | 2092 | source-map@^0.6.0, source-map@^0.6.1: 2093 | version "0.6.1" 2094 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2095 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 2096 | 2097 | source-map@~0.7.2: 2098 | version "0.7.3" 2099 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" 2100 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 2101 | 2102 | spawn-wrap@^2.0.0: 2103 | version "2.0.0" 2104 | resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" 2105 | integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== 2106 | dependencies: 2107 | foreground-child "^2.0.0" 2108 | is-windows "^1.0.2" 2109 | make-dir "^3.0.0" 2110 | rimraf "^3.0.0" 2111 | signal-exit "^3.0.2" 2112 | which "^2.0.1" 2113 | 2114 | sprintf-js@~1.0.2: 2115 | version "1.0.3" 2116 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2117 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 2118 | 2119 | stream-events@^1.0.5: 2120 | version "1.0.5" 2121 | resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" 2122 | integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== 2123 | dependencies: 2124 | stubs "^3.0.0" 2125 | 2126 | "string-width@^1.0.2 || 2": 2127 | version "2.1.1" 2128 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 2129 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 2130 | dependencies: 2131 | is-fullwidth-code-point "^2.0.0" 2132 | strip-ansi "^4.0.0" 2133 | 2134 | string-width@^4.1.0, string-width@^4.2.0: 2135 | version "4.2.2" 2136 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" 2137 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== 2138 | dependencies: 2139 | emoji-regex "^8.0.0" 2140 | is-fullwidth-code-point "^3.0.0" 2141 | strip-ansi "^6.0.0" 2142 | 2143 | strip-ansi@^4.0.0: 2144 | version "4.0.0" 2145 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 2146 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 2147 | dependencies: 2148 | ansi-regex "^3.0.0" 2149 | 2150 | strip-ansi@^6.0.0: 2151 | version "6.0.0" 2152 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 2153 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 2154 | dependencies: 2155 | ansi-regex "^5.0.0" 2156 | 2157 | strip-bom@^4.0.0: 2158 | version "4.0.0" 2159 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" 2160 | integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== 2161 | 2162 | strip-final-newline@^2.0.0: 2163 | version "2.0.0" 2164 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" 2165 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 2166 | 2167 | strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 2168 | version "3.1.1" 2169 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 2170 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 2171 | 2172 | stubs@^3.0.0: 2173 | version "3.0.0" 2174 | resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" 2175 | integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= 2176 | 2177 | supports-color@8.1.1: 2178 | version "8.1.1" 2179 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 2180 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 2181 | dependencies: 2182 | has-flag "^4.0.0" 2183 | 2184 | supports-color@^5.3.0: 2185 | version "5.5.0" 2186 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 2187 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 2188 | dependencies: 2189 | has-flag "^3.0.0" 2190 | 2191 | supports-color@^7.0.0, supports-color@^7.1.0: 2192 | version "7.2.0" 2193 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 2194 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 2195 | dependencies: 2196 | has-flag "^4.0.0" 2197 | 2198 | table@^6.0.9: 2199 | version "6.7.1" 2200 | resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" 2201 | integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== 2202 | dependencies: 2203 | ajv "^8.0.1" 2204 | lodash.clonedeep "^4.5.0" 2205 | lodash.truncate "^4.4.2" 2206 | slice-ansi "^4.0.0" 2207 | string-width "^4.2.0" 2208 | strip-ansi "^6.0.0" 2209 | 2210 | tapable@^2.1.1, tapable@^2.2.0: 2211 | version "2.2.0" 2212 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" 2213 | integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== 2214 | 2215 | teeny-request@7.0.1: 2216 | version "7.0.1" 2217 | resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-7.0.1.tgz#bdd41fdffea5f8fbc0d29392cb47bec4f66b2b4c" 2218 | integrity sha512-sasJmQ37klOlplL4Ia/786M5YlOcoLGQyq2TE4WHSRupbAuDaQW0PfVxV4MtdBtRJ4ngzS+1qim8zP6Zp35qCw== 2219 | dependencies: 2220 | http-proxy-agent "^4.0.0" 2221 | https-proxy-agent "^5.0.0" 2222 | node-fetch "^2.6.1" 2223 | stream-events "^1.0.5" 2224 | uuid "^8.0.0" 2225 | 2226 | terser-webpack-plugin@^5.1.1: 2227 | version "5.1.2" 2228 | resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.2.tgz#51d295eb7cc56785a67a372575fdc46e42d5c20c" 2229 | integrity sha512-6QhDaAiVHIQr5Ab3XUWZyDmrIPCHMiqJVljMF91YKyqwKkL5QHnYMkrMBy96v9Z7ev1hGhSEw1HQZc2p/s5Z8Q== 2230 | dependencies: 2231 | jest-worker "^26.6.2" 2232 | p-limit "^3.1.0" 2233 | schema-utils "^3.0.0" 2234 | serialize-javascript "^5.0.1" 2235 | source-map "^0.6.1" 2236 | terser "^5.7.0" 2237 | 2238 | terser@^5.7.0: 2239 | version "5.7.0" 2240 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" 2241 | integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== 2242 | dependencies: 2243 | commander "^2.20.0" 2244 | source-map "~0.7.2" 2245 | source-map-support "~0.5.19" 2246 | 2247 | test-exclude@^6.0.0: 2248 | version "6.0.0" 2249 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" 2250 | integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== 2251 | dependencies: 2252 | "@istanbuljs/schema" "^0.1.2" 2253 | glob "^7.1.4" 2254 | minimatch "^3.0.4" 2255 | 2256 | text-table@^0.2.0: 2257 | version "0.2.0" 2258 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 2259 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 2260 | 2261 | to-fast-properties@^2.0.0: 2262 | version "2.0.0" 2263 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 2264 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 2265 | 2266 | to-regex-range@^5.0.1: 2267 | version "5.0.1" 2268 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2269 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 2270 | dependencies: 2271 | is-number "^7.0.0" 2272 | 2273 | type-check@^0.4.0, type-check@~0.4.0: 2274 | version "0.4.0" 2275 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 2276 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 2277 | dependencies: 2278 | prelude-ls "^1.2.1" 2279 | 2280 | type-detect@^4.0.0, type-detect@^4.0.5: 2281 | version "4.0.8" 2282 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" 2283 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 2284 | 2285 | type-fest@^0.20.2: 2286 | version "0.20.2" 2287 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 2288 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 2289 | 2290 | type-fest@^0.8.0, type-fest@^0.8.1: 2291 | version "0.8.1" 2292 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" 2293 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 2294 | 2295 | typedarray-to-buffer@^3.1.5: 2296 | version "3.1.5" 2297 | resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" 2298 | integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== 2299 | dependencies: 2300 | is-typedarray "^1.0.0" 2301 | 2302 | typescript@^4.2.4: 2303 | version "4.2.4" 2304 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961" 2305 | integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg== 2306 | 2307 | uri-js@^4.2.2: 2308 | version "4.4.1" 2309 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 2310 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 2311 | dependencies: 2312 | punycode "^2.1.0" 2313 | 2314 | urlgrey@0.4.4: 2315 | version "0.4.4" 2316 | resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" 2317 | integrity sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8= 2318 | 2319 | uuid@^3.3.3: 2320 | version "3.4.0" 2321 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" 2322 | integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 2323 | 2324 | uuid@^8.0.0: 2325 | version "8.3.2" 2326 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 2327 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 2328 | 2329 | v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: 2330 | version "2.3.0" 2331 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" 2332 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== 2333 | 2334 | watchpack@^2.0.0: 2335 | version "2.2.0" 2336 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" 2337 | integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== 2338 | dependencies: 2339 | glob-to-regexp "^0.4.1" 2340 | graceful-fs "^4.1.2" 2341 | 2342 | webpack-cli@^4.7.0: 2343 | version "4.7.0" 2344 | resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.7.0.tgz#3195a777f1f802ecda732f6c95d24c0004bc5a35" 2345 | integrity sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g== 2346 | dependencies: 2347 | "@discoveryjs/json-ext" "^0.5.0" 2348 | "@webpack-cli/configtest" "^1.0.3" 2349 | "@webpack-cli/info" "^1.2.4" 2350 | "@webpack-cli/serve" "^1.4.0" 2351 | colorette "^1.2.1" 2352 | commander "^7.0.0" 2353 | execa "^5.0.0" 2354 | fastest-levenshtein "^1.0.12" 2355 | import-local "^3.0.2" 2356 | interpret "^2.2.0" 2357 | rechoir "^0.7.0" 2358 | v8-compile-cache "^2.2.0" 2359 | webpack-merge "^5.7.3" 2360 | 2361 | webpack-merge@^5.7.3: 2362 | version "5.7.3" 2363 | resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213" 2364 | integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA== 2365 | dependencies: 2366 | clone-deep "^4.0.1" 2367 | wildcard "^2.0.0" 2368 | 2369 | webpack-sources@^2.1.1: 2370 | version "2.2.0" 2371 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" 2372 | integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== 2373 | dependencies: 2374 | source-list-map "^2.0.1" 2375 | source-map "^0.6.1" 2376 | 2377 | webpack@^5.36.2: 2378 | version "5.37.1" 2379 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.37.1.tgz#2deb5acd350583c1ab9338471f323381b0b0c14b" 2380 | integrity sha512-btZjGy/hSjCAAVHw+cKG+L0M+rstlyxbO2C+BOTaQ5/XAnxkDrP5sVbqWhXgo4pL3X2dcOib6rqCP20Zr9PLow== 2381 | dependencies: 2382 | "@types/eslint-scope" "^3.7.0" 2383 | "@types/estree" "^0.0.47" 2384 | "@webassemblyjs/ast" "1.11.0" 2385 | "@webassemblyjs/wasm-edit" "1.11.0" 2386 | "@webassemblyjs/wasm-parser" "1.11.0" 2387 | acorn "^8.2.1" 2388 | browserslist "^4.14.5" 2389 | chrome-trace-event "^1.0.2" 2390 | enhanced-resolve "^5.8.0" 2391 | es-module-lexer "^0.4.0" 2392 | eslint-scope "^5.1.1" 2393 | events "^3.2.0" 2394 | glob-to-regexp "^0.4.1" 2395 | graceful-fs "^4.2.4" 2396 | json-parse-better-errors "^1.0.2" 2397 | loader-runner "^4.2.0" 2398 | mime-types "^2.1.27" 2399 | neo-async "^2.6.2" 2400 | schema-utils "^3.0.0" 2401 | tapable "^2.1.1" 2402 | terser-webpack-plugin "^5.1.1" 2403 | watchpack "^2.0.0" 2404 | webpack-sources "^2.1.1" 2405 | 2406 | which-module@^2.0.0: 2407 | version "2.0.0" 2408 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 2409 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 2410 | 2411 | which@2.0.2, which@^2.0.1: 2412 | version "2.0.2" 2413 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2414 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2415 | dependencies: 2416 | isexe "^2.0.0" 2417 | 2418 | wide-align@1.1.3: 2419 | version "1.1.3" 2420 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 2421 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 2422 | dependencies: 2423 | string-width "^1.0.2 || 2" 2424 | 2425 | wildcard@^2.0.0: 2426 | version "2.0.0" 2427 | resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" 2428 | integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== 2429 | 2430 | word-wrap@^1.2.3: 2431 | version "1.2.3" 2432 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 2433 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 2434 | 2435 | workerpool@6.1.0: 2436 | version "6.1.0" 2437 | resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" 2438 | integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== 2439 | 2440 | wrap-ansi@^6.2.0: 2441 | version "6.2.0" 2442 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" 2443 | integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== 2444 | dependencies: 2445 | ansi-styles "^4.0.0" 2446 | string-width "^4.1.0" 2447 | strip-ansi "^6.0.0" 2448 | 2449 | wrap-ansi@^7.0.0: 2450 | version "7.0.0" 2451 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 2452 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 2453 | dependencies: 2454 | ansi-styles "^4.0.0" 2455 | string-width "^4.1.0" 2456 | strip-ansi "^6.0.0" 2457 | 2458 | wrappy@1: 2459 | version "1.0.2" 2460 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2461 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 2462 | 2463 | write-file-atomic@^3.0.0: 2464 | version "3.0.3" 2465 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" 2466 | integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== 2467 | dependencies: 2468 | imurmurhash "^0.1.4" 2469 | is-typedarray "^1.0.0" 2470 | signal-exit "^3.0.2" 2471 | typedarray-to-buffer "^3.1.5" 2472 | 2473 | y18n@^4.0.0: 2474 | version "4.0.3" 2475 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" 2476 | integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== 2477 | 2478 | y18n@^5.0.5: 2479 | version "5.0.8" 2480 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 2481 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 2482 | 2483 | yallist@^4.0.0: 2484 | version "4.0.0" 2485 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 2486 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 2487 | 2488 | yargs-parser@20.2.4: 2489 | version "20.2.4" 2490 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" 2491 | integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== 2492 | 2493 | yargs-parser@^18.1.2: 2494 | version "18.1.3" 2495 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" 2496 | integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== 2497 | dependencies: 2498 | camelcase "^5.0.0" 2499 | decamelize "^1.2.0" 2500 | 2501 | yargs-parser@^20.2.2: 2502 | version "20.2.7" 2503 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" 2504 | integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== 2505 | 2506 | yargs-unparser@2.0.0: 2507 | version "2.0.0" 2508 | resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" 2509 | integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== 2510 | dependencies: 2511 | camelcase "^6.0.0" 2512 | decamelize "^4.0.0" 2513 | flat "^5.0.2" 2514 | is-plain-obj "^2.1.0" 2515 | 2516 | yargs@16.2.0: 2517 | version "16.2.0" 2518 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 2519 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 2520 | dependencies: 2521 | cliui "^7.0.2" 2522 | escalade "^3.1.1" 2523 | get-caller-file "^2.0.5" 2524 | require-directory "^2.1.1" 2525 | string-width "^4.2.0" 2526 | y18n "^5.0.5" 2527 | yargs-parser "^20.2.2" 2528 | 2529 | yargs@^15.0.2: 2530 | version "15.4.1" 2531 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" 2532 | integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== 2533 | dependencies: 2534 | cliui "^6.0.0" 2535 | decamelize "^1.2.0" 2536 | find-up "^4.1.0" 2537 | get-caller-file "^2.0.1" 2538 | require-directory "^2.1.1" 2539 | require-main-filename "^2.0.0" 2540 | set-blocking "^2.0.0" 2541 | string-width "^4.2.0" 2542 | which-module "^2.0.0" 2543 | y18n "^4.0.0" 2544 | yargs-parser "^18.1.2" 2545 | 2546 | yocto-queue@^0.1.0: 2547 | version "0.1.0" 2548 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 2549 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 2550 | --------------------------------------------------------------------------------