├── .gitignore ├── src ├── models │ ├── attribute.ts │ ├── block_md_with_type.ts │ ├── token.ts │ └── merged_token.ts ├── index.ts ├── lexer.ts ├── generator.ts └── parser.ts ├── .prettierrc ├── tsconfig.json ├── README.md ├── package.json ├── LICENSE ├── jest.config.ts ├── __test__ └── minute.test.ts └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | -------------------------------------------------------------------------------- /src/models/attribute.ts: -------------------------------------------------------------------------------- 1 | export type Attribute = { 2 | attrName: string; 3 | attrValue: string; 4 | }; 5 | -------------------------------------------------------------------------------- /src/models/block_md_with_type.ts: -------------------------------------------------------------------------------- 1 | export type BlockMdWithType = { 2 | mdType: string; 3 | content: string; 4 | }; 5 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "trailingComma": "es5", 4 | "tabWidth": 2, 5 | "semi": true, 6 | "singleQuote": true, 7 | "endOfLine": "lf" 8 | } 9 | -------------------------------------------------------------------------------- /src/models/token.ts: -------------------------------------------------------------------------------- 1 | import { Attribute } from './attribute'; 2 | 3 | export type Token = { 4 | id: number; 5 | parent: Token; 6 | elmType: string; 7 | content: string; 8 | attributes?: Attribute[]; 9 | }; 10 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "commonjs", 5 | "moduleResolution": "node", 6 | "strict": true, 7 | "skipLibCheck": true, 8 | "declaration": true, 9 | "pretty": true, 10 | "outDir": "dist" 11 | } 12 | } -------------------------------------------------------------------------------- /src/models/merged_token.ts: -------------------------------------------------------------------------------- 1 | import { Token } from './token'; 2 | import { Attribute } from './attribute'; 3 | 4 | export type MergedToken = { 5 | id: number; 6 | elmType: 'merged'; 7 | content: string; 8 | parent: Token | MergedToken; 9 | attributes?: Attribute[]; 10 | }; 11 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { parse } from './parser'; 2 | import { generate } from './generator'; 3 | import { analize } from './lexer'; 4 | 5 | export const convertToHTMLString = (markdown: string) => { 6 | const mdArray = analize(markdown); 7 | const asts = mdArray.map((md) => parse(md)); 8 | const htmlString = generate(asts); 9 | return htmlString; 10 | }; 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # minute 2 | minute is a tiny markdown parser. 3 | 4 | ## Installation 5 | ``` 6 | npm install minutemd 7 | or 8 | yarn add minutemd 9 | ``` 10 | 11 | ## Usage 12 | ```typescript 13 | import { convertToHTMLString } from 'minutemd' 14 | 15 | const md = '# heading1'; 16 | convertToHTMLString(md) 17 | // This outputs '

heading1

' 18 | ``` 19 | 20 | ## Playground 21 | [Playground](https://asmsuechan.github.io/minute-playground/) is available for minute. Try this out! 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "minutemd", 3 | "version": "1.1.6", 4 | "main": "dist/src/index.js", 5 | "license": "MIT", 6 | "files": [ 7 | "dist" 8 | ], 9 | "scripts": { 10 | "build": "tsc", 11 | "exec": "ts-node src/index.ts", 12 | "test": "jest", 13 | "lint": "prettier --write src/**/*.ts" 14 | }, 15 | "devDependencies": { 16 | "@types/jest": "^27.0.1", 17 | "jest": "^27.0.6", 18 | "prettier": "^2.3.2", 19 | "ts-jest": "^27.0.5", 20 | "ts-node": "^10.1.0", 21 | "typescript": "^4.3.5" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 asmsuechan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/lexer.ts: -------------------------------------------------------------------------------- 1 | import { Token } from './models/token'; 2 | import { BlockMdWithType } from './models/block_md_with_type'; 3 | 4 | const TEXT = 'text'; 5 | const STRONG = 'strong'; 6 | 7 | const LIST_REGEXP = /^( *)([-|\*|\+] (.+))$/m; 8 | const OL_REGEXP = /^( *)((\d+)\. (.+))$/m; 9 | export const PRE_REGEXP = /^```[^`]*$/; 10 | export const TABLE_HEAD_BODY_REGEXP = /(?=\|(.+?)\|)/g; 11 | export const TABLE_ALIGN_REGEXP = /(?=\|([-|:]+?)\|)/g; 12 | export const BLOCKQUOTE_REGEXP = /^([>| ]+)(.+)/; 13 | 14 | const genTextElement = (id: number, text: string, parent: Token): Token => { 15 | return { 16 | id, 17 | elmType: TEXT, 18 | content: text, 19 | parent, 20 | }; 21 | }; 22 | 23 | const genStrongElement = (id: number, text: string, parent: Token): Token => { 24 | return { 25 | id, 26 | elmType: STRONG, 27 | content: '', 28 | parent, 29 | }; 30 | }; 31 | 32 | const analize = (markdown: string) => { 33 | const NEUTRAL_STATE = 'neutral_state'; 34 | const LIST_STATE = 'list_state'; 35 | const PRE_STATE = 'pre_state'; 36 | const TABLE_HEAD_STATE = 'table_head_state'; 37 | const TABLE_ALIGN_STATE = 'table_align_state'; 38 | const TABLE_BODY_STATE = 'table_body_state'; 39 | const BLOCKQUOTE_STATE = 'blockquote_state'; 40 | 41 | let state = NEUTRAL_STATE; 42 | 43 | let lists = ''; 44 | let pre = ''; 45 | let table = ''; 46 | let blockquote = ''; 47 | 48 | // const rawMdArray = markdown.replace(/[\r\n|\r|\n/]$/, '').split(/\r\n|\r|\n/); 49 | const rawMdArray = markdown.split(/\r\n|\r|\n/); 50 | let mdArray: Array = []; 51 | 52 | rawMdArray.forEach((md, index) => { 53 | const listMatch = md.match(LIST_REGEXP) || md.match(OL_REGEXP); 54 | if (state === NEUTRAL_STATE && listMatch) { 55 | state = LIST_STATE; 56 | lists += `${md}\n`; 57 | } else if (state === LIST_STATE && listMatch) { 58 | lists += `${md}\n`; 59 | } else if (state === LIST_STATE && !listMatch) { 60 | state = NEUTRAL_STATE; 61 | mdArray.push({ mdType: 'list', content: lists }); 62 | lists = ''; 63 | } 64 | if (lists.length > 0 && (state === NEUTRAL_STATE || index === rawMdArray.length - 1)) { 65 | mdArray.push({ mdType: 'list', content: lists }); 66 | } 67 | 68 | const preMatch = md.match(PRE_REGEXP); 69 | if (state === NEUTRAL_STATE && preMatch) { 70 | state = PRE_STATE; 71 | } else if (state === PRE_STATE && preMatch) { 72 | state = NEUTRAL_STATE; 73 | mdArray.push({ mdType: 'pre', content: pre }); 74 | pre = ''; 75 | return; 76 | } else if (state === PRE_STATE && !preMatch) { 77 | pre += md.replace(/&/g, '&').replace(/>/g, '>').replace(/ 0 && (state === NEUTRAL_STATE || index === rawMdArray.length - 1)) { 81 | mdArray.push({ mdType: 'pre', content: pre }); 82 | } 83 | 84 | const tableHeadBodyMatch = md.match(TABLE_HEAD_BODY_REGEXP); 85 | const tableAlignMatch = md.match(TABLE_ALIGN_REGEXP); 86 | if (state === NEUTRAL_STATE && tableHeadBodyMatch) { 87 | state = TABLE_HEAD_STATE; 88 | table += `${md}\n`; 89 | } else if (state === TABLE_HEAD_STATE && tableAlignMatch) { 90 | state = TABLE_ALIGN_STATE; 91 | table += `${md}\n`; 92 | } else if (state === TABLE_HEAD_STATE && !tableAlignMatch) { 93 | state = NEUTRAL_STATE; 94 | } else if (state === TABLE_ALIGN_STATE && tableHeadBodyMatch) { 95 | state = TABLE_BODY_STATE; 96 | table += `${md}\n`; 97 | } else if (state === TABLE_BODY_STATE && !tableHeadBodyMatch) { 98 | state = NEUTRAL_STATE; 99 | } else if (state === TABLE_ALIGN_STATE && !tableHeadBodyMatch) { 100 | state = NEUTRAL_STATE; 101 | } 102 | if (table.length > 0 && (state === NEUTRAL_STATE || index === rawMdArray.length - 1)) { 103 | mdArray.push({ mdType: 'table', content: table.replace(/\n$/, '') }); 104 | table = ''; 105 | } 106 | 107 | const blockquoteMatch = md.match(BLOCKQUOTE_REGEXP); 108 | if (state === NEUTRAL_STATE && blockquoteMatch) { 109 | state = BLOCKQUOTE_STATE; 110 | blockquote += `${md}\n`; 111 | } else if (state === BLOCKQUOTE_STATE && md.length > 0) { 112 | blockquote += `${md}\n`; 113 | } else if (state === BLOCKQUOTE_STATE && md === '') { 114 | state = NEUTRAL_STATE; 115 | } 116 | if (blockquote.length > 0 && (state === NEUTRAL_STATE || index === rawMdArray.length - 1)) { 117 | mdArray.push({ 118 | mdType: 'blockquote', 119 | content: blockquote.replace(/\n$/, ''), 120 | }); 121 | blockquote = ''; 122 | } 123 | 124 | if ( 125 | lists.length === 0 && 126 | state !== LIST_STATE && 127 | pre.length === 0 && 128 | state !== PRE_STATE && 129 | table.length === 0 && 130 | state !== TABLE_ALIGN_STATE && 131 | state !== TABLE_BODY_STATE && 132 | state !== TABLE_HEAD_STATE && 133 | blockquote.length === 0 && 134 | state !== BLOCKQUOTE_STATE && 135 | md.length !== 0 136 | ) 137 | mdArray.push({ mdType: 'text', content: md }); 138 | 139 | // if (md.length === 0 && state !== PRE_STATE) { 140 | // mdArray.push({ mdType: 'break', content: '' }); 141 | // return; 142 | // } 143 | }); 144 | 145 | return mdArray; 146 | }; 147 | 148 | export { genTextElement, genStrongElement, analize }; 149 | -------------------------------------------------------------------------------- /src/generator.ts: -------------------------------------------------------------------------------- 1 | import { Token } from './models/token'; 2 | import { MergedToken } from './models/merged_token'; 3 | 4 | const _generateHtmlString = (tokens: Array) => { 5 | return tokens 6 | .map((t) => { 7 | if (t.elmType === 'break') { 8 | return '
'; 9 | } else if (tokens.length === 1 && tokens[0].elmType === 'text') { 10 | // MUST FIX: Move this section to parser if possible 11 | return `

${t.content}

`; 12 | } else { 13 | return t.content; 14 | } 15 | }) 16 | .reverse() 17 | .join(''); 18 | }; 19 | 20 | const isAllElmParentRoot = (tokens: Array) => { 21 | return tokens.map((t) => t.parent?.elmType).every((val) => val === 'root'); 22 | }; 23 | 24 | const _getInsertPosition = (content: string) => { 25 | let state = 0; 26 | const closeTagParentheses = ['<', '>']; 27 | let position = 0; 28 | content.split('').some((c, i) => { 29 | if (state === 1 && c === closeTagParentheses[state]) { 30 | position = i; 31 | return true; 32 | } else if (state === 0 && c === closeTagParentheses[state]) { 33 | state++; 34 | } 35 | }); 36 | return position + 1; 37 | }; 38 | 39 | const _createMergedContent = (currentToken: Token | MergedToken, parentToken: Token | MergedToken) => { 40 | let content = ''; 41 | switch (parentToken.elmType) { 42 | case 'paragraph': 43 | content = `

${currentToken.content}

`; 44 | break; 45 | case 'li': 46 | content = `
  • ${currentToken.content}
  • `; 47 | break; 48 | case 'ul': 49 | content = `
      ${currentToken.content}
    `; 50 | break; 51 | case 'ol': 52 | content = `
      ${currentToken.content}
    `; 53 | break; 54 | case 'strong': 55 | content = `${currentToken.content}`; 56 | break; 57 | case 'link': 58 | const href = parentToken.attributes ? parentToken.attributes[0].attrValue : ''; 59 | content = `${currentToken.content}`; 60 | break; 61 | case 'img': 62 | const src = parentToken.attributes ? parentToken.attributes[0].attrValue : ''; 63 | content = `${currentToken.content}`; 64 | break; 65 | case 'italic': 66 | content = `${currentToken.content}`; 67 | break; 68 | case 'si': 69 | content = `${currentToken.content}`; 70 | break; 71 | case 'h1': 72 | content = `

    ${currentToken.content}

    `; 73 | break; 74 | case 'h2': 75 | content = `

    ${currentToken.content}

    `; 76 | break; 77 | case 'h3': 78 | content = `

    ${currentToken.content}

    `; 79 | break; 80 | case 'h4': 81 | content = `

    ${currentToken.content}

    `; 82 | break; 83 | case 'code': 84 | content = `${currentToken.content}`; 85 | break; 86 | case 'pre': 87 | content = `
    ${currentToken.content}
    `; 88 | break; 89 | case 'table': 90 | content = `${currentToken.content}
    `; 91 | break; 92 | case 'tbody': 93 | content = `${currentToken.content}`; 94 | break; 95 | case 'thead': 96 | content = `${currentToken.content}`; 97 | break; 98 | case 'tr': 99 | content = `${currentToken.content}`; 100 | break; 101 | case 'th': 102 | const thAttributes = parentToken.attributes 103 | ?.filter(Boolean) 104 | .map((attr) => ` ${attr.attrName}="${attr.attrValue}"`) 105 | .join(''); 106 | content = `${currentToken.content}`; 107 | break; 108 | case 'td': 109 | const tdAttributes = parentToken.attributes 110 | ?.filter(Boolean) 111 | .map((attr) => ` ${attr.attrName}="${attr.attrValue}"`) 112 | .join(''); 113 | content = `${currentToken.content}`; 114 | break; 115 | case 'blockquote': 116 | content = `
    ${currentToken.content}
    `; 117 | break; 118 | case 'merged': 119 | const position = _getInsertPosition(parentToken.content); 120 | 121 | content = `${parentToken.content.slice(0, position)}${currentToken.content}${parentToken.content.slice( 122 | position 123 | )}`; 124 | } 125 | return content; 126 | }; 127 | 128 | const generate = (asts: Token[][]) => { 129 | const htmlStrings = asts.map((lineTokens) => { 130 | let rearrangedAst: Array = lineTokens.reverse(); 131 | 132 | while (!isAllElmParentRoot(rearrangedAst)) { 133 | let index = 0; 134 | while (index < rearrangedAst.length) { 135 | if (rearrangedAst[index].parent?.elmType === 'root') { 136 | index++; 137 | } else { 138 | const currentToken = rearrangedAst[index]; 139 | rearrangedAst = rearrangedAst.filter((_, t) => t !== index); // Remove current token 140 | const parentIndex = rearrangedAst.findIndex((t) => t.id === currentToken.parent.id); 141 | const parentToken = rearrangedAst[parentIndex]; 142 | const mergedToken: MergedToken = { 143 | id: parentToken.id, 144 | elmType: 'merged', 145 | content: _createMergedContent(currentToken, parentToken), 146 | parent: parentToken.parent, 147 | }; 148 | rearrangedAst.splice(parentIndex, 1, mergedToken); 149 | } 150 | } 151 | } 152 | return _generateHtmlString(rearrangedAst); 153 | }); 154 | return htmlStrings.join(''); 155 | }; 156 | 157 | export { generate }; 158 | -------------------------------------------------------------------------------- /jest.config.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * For a detailed explanation regarding each configuration property and type check, visit: 3 | * https://jestjs.io/docs/configuration 4 | */ 5 | 6 | export default { 7 | // All imported modules in your tests should be mocked automatically 8 | // automock: false, 9 | 10 | // Stop running tests after `n` failures 11 | // bail: 0, 12 | 13 | // The directory where Jest should store its cached dependency information 14 | // cacheDirectory: "/tmp/jest_rs", 15 | 16 | // Automatically clear mock calls and instances between every test 17 | // clearMocks: false, 18 | 19 | // Indicates whether the coverage information should be collected while executing the test 20 | // collectCoverage: false, 21 | 22 | // An array of glob patterns indicating a set of files for which coverage information should be collected 23 | // collectCoverageFrom: undefined, 24 | 25 | // The directory where Jest should output its coverage files 26 | // coverageDirectory: undefined, 27 | 28 | // An array of regexp pattern strings used to skip coverage collection 29 | // coveragePathIgnorePatterns: [ 30 | // "/node_modules/" 31 | // ], 32 | 33 | // Indicates which provider should be used to instrument code for coverage 34 | coverageProvider: 'v8', 35 | 36 | // A list of reporter names that Jest uses when writing coverage reports 37 | // coverageReporters: [ 38 | // "json", 39 | // "text", 40 | // "lcov", 41 | // "clover" 42 | // ], 43 | 44 | // An object that configures minimum threshold enforcement for coverage results 45 | // coverageThreshold: undefined, 46 | 47 | // A path to a custom dependency extractor 48 | // dependencyExtractor: undefined, 49 | 50 | // Make calling deprecated APIs throw helpful error messages 51 | // errorOnDeprecated: false, 52 | 53 | // Force coverage collection from ignored files using an array of glob patterns 54 | // forceCoverageMatch: [], 55 | 56 | // A path to a module which exports an async function that is triggered once before all test suites 57 | // globalSetup: undefined, 58 | 59 | // A path to a module which exports an async function that is triggered once after all test suites 60 | // globalTeardown: undefined, 61 | 62 | // A set of global variables that need to be available in all test environments 63 | // globals: {}, 64 | 65 | // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. 66 | // maxWorkers: "50%", 67 | 68 | // An array of directory names to be searched recursively up from the requiring module's location 69 | // moduleDirectories: [ 70 | // "node_modules" 71 | // ], 72 | 73 | // An array of file extensions your modules use 74 | // moduleFileExtensions: [ 75 | // "js", 76 | // "jsx", 77 | // "ts", 78 | // "tsx", 79 | // "json", 80 | // "node" 81 | // ], 82 | 83 | // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module 84 | // moduleNameMapper: {}, 85 | 86 | // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader 87 | // modulePathIgnorePatterns: [], 88 | 89 | // Activates notifications for test results 90 | // notify: false, 91 | 92 | // An enum that specifies notification mode. Requires { notify: true } 93 | // notifyMode: "failure-change", 94 | 95 | // A preset that is used as a base for Jest's configuration 96 | // preset: undefined, 97 | 98 | // Run tests from one or more projects 99 | // projects: undefined, 100 | 101 | // Use this configuration option to add custom reporters to Jest 102 | // reporters: undefined, 103 | 104 | // Automatically reset mock state between every test 105 | // resetMocks: false, 106 | 107 | // Reset the module registry before running each individual test 108 | // resetModules: false, 109 | 110 | // A path to a custom resolver 111 | // resolver: undefined, 112 | 113 | // Automatically restore mock state between every test 114 | // restoreMocks: false, 115 | 116 | // The root directory that Jest should scan for tests and modules within 117 | // rootDir: undefined, 118 | 119 | // A list of paths to directories that Jest should use to search for files in 120 | // roots: [ 121 | // "/src" 122 | // ], 123 | 124 | // Allows you to use a custom runner instead of Jest's default test runner 125 | // runner: "jest-runner", 126 | 127 | // The paths to modules that run some code to configure or set up the testing environment before each test 128 | // setupFiles: [], 129 | 130 | // A list of paths to modules that run some code to configure or set up the testing framework before each test 131 | // setupFilesAfterEnv: [], 132 | 133 | // The number of seconds after which a test is considered as slow and reported as such in the results. 134 | // slowTestThreshold: 5, 135 | 136 | // A list of paths to snapshot serializer modules Jest should use for snapshot testing 137 | // snapshotSerializers: [], 138 | 139 | // The test environment that will be used for testing 140 | // testEnvironment: "jest-environment-node", 141 | 142 | // Options that will be passed to the testEnvironment 143 | // testEnvironmentOptions: {}, 144 | 145 | // Adds a location field to test results 146 | // testLocationInResults: false, 147 | 148 | // The glob patterns Jest uses to detect test files 149 | // testMatch: [ 150 | // "**/__tests__/**/*.[jt]s?(x)", 151 | // "**/?(*.)+(spec|test).[tj]s?(x)" 152 | // ], 153 | 154 | // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped 155 | // testPathIgnorePatterns: [ 156 | // "/node_modules/" 157 | // ], 158 | 159 | // The regexp pattern or array of patterns that Jest uses to detect test files 160 | // testRegex: [], 161 | 162 | // This option allows the use of a custom results processor 163 | // testResultsProcessor: undefined, 164 | 165 | // This option allows use of a custom test runner 166 | // testRunner: "jest-circus/runner", 167 | 168 | // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href 169 | // testURL: "http://localhost", 170 | 171 | // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout" 172 | // timers: "real", 173 | 174 | // A map from regular expressions to paths to transformers 175 | transform: { 176 | '^.+\\.(ts|tsx)$': 'ts-jest', 177 | }, 178 | 179 | // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation 180 | // transformIgnorePatterns: [ 181 | // "/node_modules/", 182 | // "\\.pnp\\.[^\\/]+$" 183 | // ], 184 | 185 | // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them 186 | // unmockedModulePathPatterns: undefined, 187 | 188 | // Indicates whether each individual test should be reported during the run 189 | // verbose: undefined, 190 | 191 | // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode 192 | // watchPathIgnorePatterns: [], 193 | 194 | // Whether to use watchman for file crawling 195 | // watchman: true, 196 | }; 197 | -------------------------------------------------------------------------------- /__test__/minute.test.ts: -------------------------------------------------------------------------------- 1 | import { convertToHTMLString } from '../src/index'; 2 | 3 | test('Heading', () => { 4 | const testCases = [ 5 | ['# h1 test', '

    h1 test

    '], 6 | ['## h2 test', '

    h2 test

    '], 7 | ['### h3 test', '

    h3 test

    '], 8 | ['#### h4 test', '

    h4 test

    '], 9 | ['# h1 with **bold**', '

    h1 with bold

    '], 10 | ['## h2 with **bold**', '

    h2 with bold

    '], 11 | ['### h3 with **bold**', '

    h3 with bold

    '], 12 | ['#### h4 with **bold**', '

    h4 with bold

    '], 13 | ]; 14 | 15 | testCases.forEach((testCase) => { 16 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 17 | }); 18 | }); 19 | 20 | test('Link', () => { 21 | const testCases = [ 22 | ['[example](https://example.com)', '

    example

    '], 23 | ['[](https://example.com)', '

    '], 24 | ['[no-link]()', '

    no-link

    '], 25 | [ 26 | '[link with **bold**](https://example.com)', 27 | '

    link with bold

    ', 28 | ], 29 | ]; 30 | 31 | testCases.forEach((testCase) => { 32 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 33 | }); 34 | }); 35 | 36 | test('Img', () => { 37 | const testCases = [ 38 | ['![example](https://example.com/img.jpg)', '

    example

    '], 39 | // MUST FIX: ['![](https://example.com/img.jpg)', ''], 40 | ]; 41 | 42 | testCases.forEach((testCase) => { 43 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 44 | }); 45 | }); 46 | 47 | test('Bold', () => { 48 | const testCases = [ 49 | ['**bold**', '

    bold

    '], 50 | ['normal**bold**normal', '

    normalboldnormal

    '], 51 | ]; 52 | 53 | testCases.forEach((testCase) => { 54 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 55 | }); 56 | }); 57 | 58 | test('Italic', () => { 59 | const testCases = [ 60 | ['__italic__', '

    italic

    '], 61 | ['normal__italic__normal', '

    normalitalicnormal

    '], 62 | ]; 63 | 64 | testCases.forEach((testCase) => { 65 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 66 | }); 67 | }); 68 | 69 | test('Si', () => { 70 | const testCases = [ 71 | ['~~si~~', '

    si

    '], 72 | ['normal~~si~~normal', '

    normalsinormal

    '], 73 | ]; 74 | 75 | testCases.forEach((testCase) => { 76 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 77 | }); 78 | }); 79 | 80 | test('Code', () => { 81 | const testCases = [ 82 | ['`code`', '

    code

    '], 83 | ['`code**test**`', '

    code**test**

    '], 84 | ['`code**test**`test', '

    code**test**test

    '], 85 | ]; 86 | 87 | testCases.forEach((testCase) => { 88 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 89 | }); 90 | }); 91 | 92 | test('List', () => { 93 | const testCases = [ 94 | ['* a', '
    • a
    '], 95 | ['* a\n* b', '
    • a
    • b
    '], 96 | ['* a\n * nested', '
    • a
      • nested
    '], 97 | 98 | ['- a', '
    • a
    '], 99 | ['- a\n- b', '
    • a
    • b
    '], 100 | ['- a\n - nested', '
    • a
      • nested
    '], 101 | 102 | ['+ a', '
    • a
    '], 103 | ['+ a\n+ b', '
    • a
    • b
    '], 104 | ['+ a\n + nested', '
    • a
      • nested
    '], 105 | 106 | ['* **bold**\n * __nested__', '
    • bold
      • nested
    '], 107 | [ 108 | '* **bold**\n * __nested__\n * ~~nested~~\n* indent', 109 | '
    • bold
      • nested
      • nested
    • indent
    ', 110 | ], 111 | ['* a\n* b\n * c\n* d', '
    • a
    • b
      • c
    • d
    '], 112 | ]; 113 | 114 | testCases.forEach((testCase) => { 115 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 116 | }); 117 | }); 118 | 119 | test('Ol', () => { 120 | const testCases = [ 121 | ['1. a', '
    1. a
    '], 122 | ['11. a', '
    1. a
    '], 123 | ['1. a\n2. b', '
    1. a
    2. b
    '], 124 | ['1. a\n 1. b', '
    1. a
      1. b
    '], 125 | ['1. a\n 1. b**bold**', '
    1. a
      1. bbold
    '], 126 | ]; 127 | 128 | testCases.forEach((testCase) => { 129 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 130 | }); 131 | }); 132 | 133 | test('Table', () => { 134 | const testCases = [ 135 | [ 136 | '|left|center|right|\n|:-|:-:|-:|\n|left|center|right|', 137 | '
    leftcenterright
    leftcenterright
    ', 138 | ], 139 | [ 140 | '|left|center|right|\n|:-|:-:|-:|\n|left|center|right|\n', 141 | '
    leftcenterright
    leftcenterright
    ', 142 | ], 143 | [ 144 | '|left|center|right|\n|:-|:-:|-:|\n|left|center|right|\n\n', 145 | '
    leftcenterright
    leftcenterright
    ', 146 | ], 147 | [ 148 | '|left|center|right|\n|:-|:-:|-:|\n|**left**|[center](https://example.com)|right|', 149 | '
    leftcenterright

    left

    center

    right
    ', 150 | ], 151 | ]; 152 | 153 | testCases.forEach((testCase) => { 154 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 155 | }); 156 | }); 157 | 158 | test('Pre', () => { 159 | const testCases = [ 160 | ['```\ncodeblock\n```', '
    codeblock\n
    '], 161 | ['```\ncodeblock**bold**\n```', '
    codeblock**bold**\n
    '], 162 | ['```\ncodeblock**bold**\n\na\n```', '
    codeblock**bold**\n\na\n
    '], 163 | ['```\ncodeblock**bold**\n```\n\n', '
    codeblock**bold**\n
    '], 164 | ]; 165 | 166 | testCases.forEach((testCase) => { 167 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 168 | }); 169 | }); 170 | 171 | test('Blockquote', () => { 172 | const testCases = [ 173 | ['> quote', '
    quote
    '], 174 | ['> quote\n', '
    quote
    '], 175 | ['> quote\n\n', '
    quote
    '], 176 | ['> quote\n>> quote', '
    quote
    quote
    '], 177 | ]; 178 | 179 | testCases.forEach((testCase) => { 180 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 181 | }); 182 | }); 183 | 184 | test('Text', () => { 185 | const testCases = [['text', '

    text

    ']]; 186 | 187 | testCases.forEach((testCase) => { 188 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 189 | }); 190 | }); 191 | 192 | test('with HTML elements', () => { 193 | const testCases = [['bold**bold**', '

    boldbold

    ']]; 194 | 195 | testCases.forEach((testCase) => { 196 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 197 | }); 198 | }); 199 | 200 | test('with an irregular elements', () => { 201 | const testCases = [['__a**b__c**d__e**', '

    ab__cd

    e**

    ']]; 202 | 203 | testCases.forEach((testCase) => { 204 | expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 205 | }); 206 | }); 207 | 208 | // test('Break', () => { 209 | // const testCases = [ 210 | // ['\n', ''], 211 | // ['a\nb\n', 'ab'], 212 | // ['\n\n', '

    '], 213 | // ['\n\na', '

    a'], 214 | // ['a\n\nb', 'a
    b'], 215 | // ]; 216 | // 217 | // testCases.forEach((testCase) => { 218 | // expect(convertToHTMLString(testCase[0])).toBe(testCase[1]); 219 | // }); 220 | // }); 221 | -------------------------------------------------------------------------------- /src/parser.ts: -------------------------------------------------------------------------------- 1 | import { Token } from './models/token'; 2 | import { BlockMdWithType } from './models/block_md_with_type'; 3 | import { Attribute } from './models/attribute'; 4 | import { genTextElement } from './lexer'; 5 | 6 | export const parse = (markdownRow: BlockMdWithType) => { 7 | if (markdownRow.mdType === 'list') { 8 | return _tokenizeList(markdownRow.content); 9 | } else if (markdownRow.mdType === 'pre') { 10 | return _tokenizePre(markdownRow.content); 11 | } else if (markdownRow.mdType === 'table') { 12 | return _tokenizeTable(markdownRow.content); 13 | } else if (markdownRow.mdType === 'blockquote') { 14 | return _tokenizeBlockquote(markdownRow.content); 15 | } 16 | return _tokenizeText(markdownRow.content); 17 | }; 18 | 19 | const rootToken: Token = { 20 | id: 0, 21 | elmType: 'root', 22 | content: '', 23 | parent: {} as Token, 24 | }; 25 | 26 | const LIST_REGEXP = /^( *)([-\*\+] (.+))$/m; 27 | const OL_REGEXP = /^( *)((\d+)\. (.+))$/m; 28 | const UL = 'ul'; 29 | const LIST = 'li'; 30 | const OL = 'ol'; 31 | 32 | const BLOCKQUOTE_REGEXP = /^([>| ]+)(.+)/; 33 | 34 | const textElmRegexps = [ 35 | { elmType: 'h1', regexp: /^# (.+)$/ }, 36 | { elmType: 'h2', regexp: /^## (.+)$/ }, 37 | { elmType: 'h3', regexp: /^### (.+)$/ }, 38 | { elmType: 'h4', regexp: /^#### (.+)$/ }, 39 | { elmType: 'code', regexp: /`(.+?)`/ }, 40 | { elmType: 'img', regexp: /\!\[(.*)\]\((.+)\)/ }, 41 | { 42 | elmType: 'link', 43 | regexp: /\[(.*)\]\((.*)\)/, 44 | }, 45 | { elmType: 'strong', regexp: /\*\*(.*)\*\*/ }, 46 | { elmType: 'italic', regexp: /__(.*)__/ }, 47 | { elmType: 'si', regexp: /~~(.*)~~/ }, 48 | { 49 | elmType: 'list', 50 | regexp: LIST_REGEXP, // * list or - list 51 | }, 52 | { elmType: 'ol', regexp: OL_REGEXP }, 53 | { elmType: 'blockquote', regexp: BLOCKQUOTE_REGEXP }, 54 | ]; 55 | 56 | const _tokenizeText = (textElement: string, initialId: number = 0, initialRoot: Token = rootToken) => { 57 | let elements: Token[] = []; 58 | let parent: Token = initialRoot; 59 | 60 | let id = initialId; 61 | 62 | const _tokenize = (originalText: string, p: Token) => { 63 | let processingText = originalText; 64 | parent = p; 65 | let pToken = p; 66 | while (processingText.length !== 0) { 67 | const matchArray = textElmRegexps 68 | .map((regexp) => { 69 | return { 70 | elmType: regexp.elmType, 71 | matchArray: processingText.match(regexp.regexp) as RegExpMatchArray, 72 | }; 73 | }) 74 | .filter((m) => m.matchArray); 75 | 76 | if (matchArray.length === 0) { 77 | id += 1; 78 | const onlyText = genTextElement(id, processingText, pToken); 79 | processingText = ''; 80 | elements.push(onlyText); 81 | } else { 82 | const outerMostElement = matchArray.reduce((prev, curr) => 83 | Number(prev.matchArray.index) < Number(curr.matchArray.index) ? prev : curr 84 | ); 85 | if ( 86 | outerMostElement.elmType !== 'h1' && 87 | outerMostElement.elmType !== 'h2' && 88 | outerMostElement.elmType !== 'h3' && 89 | outerMostElement.elmType !== 'h4' && 90 | parent.elmType !== 'h1' && 91 | parent.elmType !== 'h2' && 92 | parent.elmType !== 'h3' && 93 | parent.elmType !== 'h4' && 94 | parent.elmType !== 'ul' && 95 | parent.elmType !== 'li' && 96 | parent.elmType !== 'ol' && 97 | parent.elmType !== 'link' && 98 | parent.elmType !== 'code' 99 | ) { 100 | id += 1; 101 | pToken = { 102 | id, 103 | elmType: 'paragraph', 104 | content: '', 105 | parent, 106 | } as Token; 107 | parent = pToken; 108 | elements.push(parent); 109 | } 110 | if (Number(outerMostElement.matchArray.index) > 0) { 111 | // "aaa**bb**cc" -> TEXT Token + "**bb**cc" にする 112 | const text = processingText.substring(0, Number(outerMostElement.matchArray.index)); 113 | id += 1; 114 | const textElm = genTextElement(id, text, parent); 115 | elements.push(textElm); 116 | processingText = processingText.replace(text, ''); 117 | } 118 | 119 | if (parent.elmType === 'code') { 120 | id += 1; 121 | const codeContent = genTextElement(id, outerMostElement.matchArray[0], parent); 122 | elements.push(codeContent); 123 | processingText = processingText.replace(outerMostElement.matchArray[0], ''); 124 | } else { 125 | id += 1; 126 | let attributes: Attribute[] = []; 127 | if (outerMostElement.elmType === 'img') { 128 | attributes.push({ attrName: 'src', attrValue: outerMostElement.matchArray[2] }); 129 | } else if (outerMostElement.elmType === 'link') { 130 | attributes.push({ attrName: 'href', attrValue: outerMostElement.matchArray[2] }); 131 | } 132 | const elmType = outerMostElement.elmType; 133 | const content = outerMostElement.matchArray[1]; 134 | const elm: Token = { 135 | id, 136 | elmType, 137 | content, 138 | parent, 139 | attributes, 140 | }; 141 | 142 | // Set the outer element to parent 143 | parent = elm; 144 | elements.push(elm); 145 | 146 | processingText = processingText.replace(outerMostElement.matchArray[0], ''); 147 | 148 | _tokenize(outerMostElement.matchArray[1], parent); 149 | } 150 | parent = p; 151 | } 152 | } 153 | }; 154 | 155 | _tokenize(textElement, parent); 156 | return elements; 157 | }; 158 | 159 | const _tokenizeList = (listString: string) => { 160 | const listMatch = listString.match(LIST_REGEXP); 161 | const olMatch = listString.match(OL_REGEXP); 162 | // check if the root type of a list 163 | const rootType = 164 | (listMatch && UL) || 165 | (olMatch && OL) || 166 | (listMatch && olMatch && Number(listMatch.index) < Number(olMatch.index) ? OL : UL); 167 | 168 | let id = 1; 169 | const rootUlToken: Token = { 170 | id, 171 | elmType: rootType, 172 | content: '', 173 | parent: rootToken, 174 | }; 175 | let parents = [rootUlToken]; 176 | let parent = rootUlToken; 177 | let prevIndentLevel = 0; 178 | let tokens: Token[] = [rootUlToken]; 179 | listString 180 | .split(/\r\n|\r|\n/) 181 | .filter(Boolean) 182 | .forEach((l) => { 183 | const listType = l.match(LIST_REGEXP) ? UL : OL; 184 | 185 | const match = 186 | listType === UL ? (l.match(LIST_REGEXP) as RegExpMatchArray) : (l.match(OL_REGEXP) as RegExpMatchArray); 187 | 188 | const currentIndentLevel = match[1].length; 189 | const currentIndent = match[1]; 190 | if (currentIndentLevel < prevIndentLevel) { 191 | // Change the parent 192 | for (let i = 0; i < parents.length - 1; i++) { 193 | if ( 194 | parents[i].content.length <= currentIndent.length && 195 | currentIndent.length < parents[i + 1].content.length 196 | ) { 197 | parent = parents[i]; 198 | } 199 | } 200 | } else if (currentIndentLevel > prevIndentLevel) { 201 | // Create a parent 202 | id += 1; 203 | const lastToken = tokens[tokens.length - 1]; 204 | const parentToken = 205 | match && ['code', 'italic', 'si', 'strong'].includes(lastToken.parent.elmType) ? lastToken.parent : lastToken; 206 | const newParent: Token = { 207 | id, 208 | elmType: listType, 209 | content: currentIndent, 210 | parent: parentToken.parent, 211 | }; 212 | parents.push(newParent); 213 | tokens.push(newParent); 214 | parent = newParent; 215 | } 216 | prevIndentLevel = currentIndentLevel; 217 | 218 | id += 1; 219 | const listToken: Token = { 220 | id, 221 | elmType: LIST, 222 | content: currentIndent, // Indent level 223 | parent, 224 | }; 225 | parents.push(listToken); 226 | tokens.push(listToken); 227 | const listContent = listMatch ? match[3] : match[4]; 228 | const listText = _tokenizeText(listContent, id, listToken); 229 | id += listText.length; 230 | tokens.push(...listText); 231 | }); 232 | return tokens.sort((a, b) => { 233 | if (a.id < b.id) return -1; 234 | if (a.id > b.id) return 1; 235 | return 0; 236 | }); 237 | }; 238 | 239 | const _tokenizePre = (preString: string) => { 240 | const preToken: Token = { 241 | id: 0, 242 | elmType: 'pre', 243 | content: '', 244 | parent: rootToken, 245 | }; 246 | const textToken: Token = { 247 | id: 1, 248 | elmType: 'text', 249 | content: preString, 250 | parent: preToken, 251 | }; 252 | return [preToken, textToken]; 253 | }; 254 | 255 | export const _tokenizeTable = (tableString: string) => { 256 | let id = 0; 257 | const tableToken: Token = { 258 | id, 259 | elmType: 'table', 260 | content: '', 261 | parent: rootToken, 262 | }; 263 | let tokens: Token[] = [tableToken]; 264 | const tableLines = tableString.split('\n'); 265 | tableLines.forEach((t, i) => { 266 | let attributes: Attribute[] = []; 267 | if (tableLines.length >= 2) { 268 | tableLines[1] 269 | .split('|') 270 | .filter(Boolean) 271 | .forEach((tableAlign) => { 272 | if (tableAlign.match(/^:([-]+)$/)) { 273 | attributes.push({ attrName: 'align', attrValue: 'left' }); 274 | } else if (tableAlign.match(/^([-]+):$/)) { 275 | attributes.push({ attrName: 'align', attrValue: 'right' }); 276 | } else if (tableAlign.match(/^:([-]+):$/)) { 277 | attributes.push({ attrName: 'align', attrValue: 'center' }); 278 | } 279 | }); 280 | } 281 | 282 | if (i === 0) { 283 | // Table Head 284 | id++; 285 | const theadToken: Token = { 286 | id, 287 | elmType: 'thead', 288 | content: '', 289 | parent: tableToken, 290 | }; 291 | id++; 292 | const tableRow: Token = { 293 | id, 294 | elmType: 'tr', 295 | content: '', 296 | parent: theadToken, 297 | }; 298 | tokens.push(theadToken, tableRow); 299 | t.split('|') 300 | .filter(Boolean) 301 | .map((headItem, i) => { 302 | const alignAttributes = attributes.length > 0 ? [attributes[i]] : []; 303 | id++; 304 | const tableHead: Token = { 305 | id, 306 | elmType: 'th', 307 | content: '', 308 | parent: tableRow, 309 | attributes: alignAttributes, 310 | }; 311 | const textTokens = _tokenizeText(headItem, id, tableHead); 312 | id += textTokens.length; 313 | tokens.push(tableHead, ...textTokens); 314 | }); 315 | } else if (i > 1) { 316 | // Skip Alignment 317 | // Table Body 318 | id++; 319 | const tbodyToken: Token = { 320 | id, 321 | elmType: 'tbody', 322 | content: '', 323 | parent: tableToken, 324 | }; 325 | id++; 326 | const tableRow: Token = { 327 | id, 328 | elmType: 'tr', 329 | content: '', 330 | parent: tbodyToken, 331 | }; 332 | tokens.push(tbodyToken, tableRow); 333 | t.split('|') 334 | .filter(Boolean) 335 | .map((bodyItem, i) => { 336 | id++; 337 | const tableData: Token = { 338 | id, 339 | elmType: 'td', 340 | content: bodyItem, 341 | parent: tbodyToken, 342 | attributes: [attributes[i]], 343 | }; 344 | 345 | const textTokens = _tokenizeText(bodyItem, id, tableData); 346 | id += textTokens.length; 347 | tokens.push(tableData, ...textTokens); 348 | }); 349 | } 350 | }); 351 | return tokens; 352 | }; 353 | 354 | // > abc¥n>> bbb multiline 355 | const _tokenizeBlockquote = (blockquote: string) => { 356 | let id = 1; 357 | let parent: Token = { 358 | id, 359 | elmType: 'blockquote', 360 | content: '', 361 | parent: rootToken, 362 | }; 363 | let tokens: Token[] = [parent]; 364 | let parents = [{ level: 1, token: parent }]; 365 | let prevNestLevel = 0; 366 | blockquote.split('\n').forEach((quote) => { 367 | const match = quote.match(BLOCKQUOTE_REGEXP); 368 | if (match) { 369 | const nestLevel = match[1].split('>').length - 2; 370 | if (prevNestLevel < nestLevel) { 371 | const times = [...Array(nestLevel - prevNestLevel)]; 372 | times.forEach(() => { 373 | id++; 374 | const newBlockquote: Token = { 375 | id, 376 | elmType: 'blockquote', 377 | content: '', 378 | parent: parent, 379 | }; 380 | parents.push({ level: nestLevel, token: newBlockquote }); 381 | const textTokens = _tokenizeText(match[2], id, newBlockquote); 382 | id += textTokens.length; 383 | tokens.push(newBlockquote, ...textTokens); 384 | parent = newBlockquote; 385 | }); 386 | prevNestLevel = nestLevel; 387 | } else { 388 | const textTokens = _tokenizeText(match[2], id, parent); 389 | id += textTokens.length; 390 | tokens.push(...textTokens); 391 | } 392 | } else { 393 | const textTokens = _tokenizeText(quote, id, parent); 394 | id += textTokens.length; 395 | tokens.push(...textTokens); 396 | } 397 | }); 398 | return tokens; 399 | }; 400 | 401 | const _createBreakToken = () => { 402 | return [ 403 | { 404 | id: 1, 405 | elmType: 'break', 406 | content: '', 407 | parent: rootToken, 408 | }, 409 | ] as Token[]; 410 | }; 411 | -------------------------------------------------------------------------------- /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.13", "@babel/code-frame@^7.14.5": 6 | version "7.14.5" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" 8 | integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== 9 | dependencies: 10 | "@babel/highlight" "^7.14.5" 11 | 12 | "@babel/compat-data@^7.15.0": 13 | version "7.15.0" 14 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" 15 | integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== 16 | 17 | "@babel/core@^7.1.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5": 18 | version "7.15.0" 19 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" 20 | integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== 21 | dependencies: 22 | "@babel/code-frame" "^7.14.5" 23 | "@babel/generator" "^7.15.0" 24 | "@babel/helper-compilation-targets" "^7.15.0" 25 | "@babel/helper-module-transforms" "^7.15.0" 26 | "@babel/helpers" "^7.14.8" 27 | "@babel/parser" "^7.15.0" 28 | "@babel/template" "^7.14.5" 29 | "@babel/traverse" "^7.15.0" 30 | "@babel/types" "^7.15.0" 31 | convert-source-map "^1.7.0" 32 | debug "^4.1.0" 33 | gensync "^1.0.0-beta.2" 34 | json5 "^2.1.2" 35 | semver "^6.3.0" 36 | source-map "^0.5.0" 37 | 38 | "@babel/generator@^7.15.0", "@babel/generator@^7.7.2": 39 | version "7.15.0" 40 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" 41 | integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== 42 | dependencies: 43 | "@babel/types" "^7.15.0" 44 | jsesc "^2.5.1" 45 | source-map "^0.5.0" 46 | 47 | "@babel/helper-compilation-targets@^7.15.0": 48 | version "7.15.0" 49 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" 50 | integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== 51 | dependencies: 52 | "@babel/compat-data" "^7.15.0" 53 | "@babel/helper-validator-option" "^7.14.5" 54 | browserslist "^4.16.6" 55 | semver "^6.3.0" 56 | 57 | "@babel/helper-function-name@^7.14.5": 58 | version "7.14.5" 59 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" 60 | integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== 61 | dependencies: 62 | "@babel/helper-get-function-arity" "^7.14.5" 63 | "@babel/template" "^7.14.5" 64 | "@babel/types" "^7.14.5" 65 | 66 | "@babel/helper-get-function-arity@^7.14.5": 67 | version "7.14.5" 68 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" 69 | integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== 70 | dependencies: 71 | "@babel/types" "^7.14.5" 72 | 73 | "@babel/helper-hoist-variables@^7.14.5": 74 | version "7.14.5" 75 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" 76 | integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== 77 | dependencies: 78 | "@babel/types" "^7.14.5" 79 | 80 | "@babel/helper-member-expression-to-functions@^7.15.0": 81 | version "7.15.0" 82 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" 83 | integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== 84 | dependencies: 85 | "@babel/types" "^7.15.0" 86 | 87 | "@babel/helper-module-imports@^7.14.5": 88 | version "7.14.5" 89 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" 90 | integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== 91 | dependencies: 92 | "@babel/types" "^7.14.5" 93 | 94 | "@babel/helper-module-transforms@^7.15.0": 95 | version "7.15.0" 96 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" 97 | integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== 98 | dependencies: 99 | "@babel/helper-module-imports" "^7.14.5" 100 | "@babel/helper-replace-supers" "^7.15.0" 101 | "@babel/helper-simple-access" "^7.14.8" 102 | "@babel/helper-split-export-declaration" "^7.14.5" 103 | "@babel/helper-validator-identifier" "^7.14.9" 104 | "@babel/template" "^7.14.5" 105 | "@babel/traverse" "^7.15.0" 106 | "@babel/types" "^7.15.0" 107 | 108 | "@babel/helper-optimise-call-expression@^7.14.5": 109 | version "7.14.5" 110 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" 111 | integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== 112 | dependencies: 113 | "@babel/types" "^7.14.5" 114 | 115 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0": 116 | version "7.14.5" 117 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" 118 | integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== 119 | 120 | "@babel/helper-replace-supers@^7.15.0": 121 | version "7.15.0" 122 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" 123 | integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== 124 | dependencies: 125 | "@babel/helper-member-expression-to-functions" "^7.15.0" 126 | "@babel/helper-optimise-call-expression" "^7.14.5" 127 | "@babel/traverse" "^7.15.0" 128 | "@babel/types" "^7.15.0" 129 | 130 | "@babel/helper-simple-access@^7.14.8": 131 | version "7.14.8" 132 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" 133 | integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== 134 | dependencies: 135 | "@babel/types" "^7.14.8" 136 | 137 | "@babel/helper-split-export-declaration@^7.14.5": 138 | version "7.14.5" 139 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" 140 | integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== 141 | dependencies: 142 | "@babel/types" "^7.14.5" 143 | 144 | "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": 145 | version "7.14.9" 146 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" 147 | integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== 148 | 149 | "@babel/helper-validator-option@^7.14.5": 150 | version "7.14.5" 151 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" 152 | integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== 153 | 154 | "@babel/helpers@^7.14.8": 155 | version "7.15.3" 156 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" 157 | integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== 158 | dependencies: 159 | "@babel/template" "^7.14.5" 160 | "@babel/traverse" "^7.15.0" 161 | "@babel/types" "^7.15.0" 162 | 163 | "@babel/highlight@^7.14.5": 164 | version "7.14.5" 165 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" 166 | integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== 167 | dependencies: 168 | "@babel/helper-validator-identifier" "^7.14.5" 169 | chalk "^2.0.0" 170 | js-tokens "^4.0.0" 171 | 172 | "@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.7.2": 173 | version "7.15.3" 174 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" 175 | integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== 176 | 177 | "@babel/plugin-syntax-async-generators@^7.8.4": 178 | version "7.8.4" 179 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" 180 | integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== 181 | dependencies: 182 | "@babel/helper-plugin-utils" "^7.8.0" 183 | 184 | "@babel/plugin-syntax-bigint@^7.8.3": 185 | version "7.8.3" 186 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" 187 | integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== 188 | dependencies: 189 | "@babel/helper-plugin-utils" "^7.8.0" 190 | 191 | "@babel/plugin-syntax-class-properties@^7.8.3": 192 | version "7.12.13" 193 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" 194 | integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== 195 | dependencies: 196 | "@babel/helper-plugin-utils" "^7.12.13" 197 | 198 | "@babel/plugin-syntax-import-meta@^7.8.3": 199 | version "7.10.4" 200 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" 201 | integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== 202 | dependencies: 203 | "@babel/helper-plugin-utils" "^7.10.4" 204 | 205 | "@babel/plugin-syntax-json-strings@^7.8.3": 206 | version "7.8.3" 207 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" 208 | integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== 209 | dependencies: 210 | "@babel/helper-plugin-utils" "^7.8.0" 211 | 212 | "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": 213 | version "7.10.4" 214 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" 215 | integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== 216 | dependencies: 217 | "@babel/helper-plugin-utils" "^7.10.4" 218 | 219 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": 220 | version "7.8.3" 221 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" 222 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== 223 | dependencies: 224 | "@babel/helper-plugin-utils" "^7.8.0" 225 | 226 | "@babel/plugin-syntax-numeric-separator@^7.8.3": 227 | version "7.10.4" 228 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" 229 | integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== 230 | dependencies: 231 | "@babel/helper-plugin-utils" "^7.10.4" 232 | 233 | "@babel/plugin-syntax-object-rest-spread@^7.8.3": 234 | version "7.8.3" 235 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" 236 | integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== 237 | dependencies: 238 | "@babel/helper-plugin-utils" "^7.8.0" 239 | 240 | "@babel/plugin-syntax-optional-catch-binding@^7.8.3": 241 | version "7.8.3" 242 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" 243 | integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== 244 | dependencies: 245 | "@babel/helper-plugin-utils" "^7.8.0" 246 | 247 | "@babel/plugin-syntax-optional-chaining@^7.8.3": 248 | version "7.8.3" 249 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" 250 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== 251 | dependencies: 252 | "@babel/helper-plugin-utils" "^7.8.0" 253 | 254 | "@babel/plugin-syntax-top-level-await@^7.8.3": 255 | version "7.14.5" 256 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" 257 | integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== 258 | dependencies: 259 | "@babel/helper-plugin-utils" "^7.14.5" 260 | 261 | "@babel/plugin-syntax-typescript@^7.7.2": 262 | version "7.14.5" 263 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" 264 | integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== 265 | dependencies: 266 | "@babel/helper-plugin-utils" "^7.14.5" 267 | 268 | "@babel/template@^7.14.5", "@babel/template@^7.3.3": 269 | version "7.14.5" 270 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" 271 | integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== 272 | dependencies: 273 | "@babel/code-frame" "^7.14.5" 274 | "@babel/parser" "^7.14.5" 275 | "@babel/types" "^7.14.5" 276 | 277 | "@babel/traverse@^7.1.0", "@babel/traverse@^7.15.0", "@babel/traverse@^7.7.2": 278 | version "7.15.0" 279 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" 280 | integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== 281 | dependencies: 282 | "@babel/code-frame" "^7.14.5" 283 | "@babel/generator" "^7.15.0" 284 | "@babel/helper-function-name" "^7.14.5" 285 | "@babel/helper-hoist-variables" "^7.14.5" 286 | "@babel/helper-split-export-declaration" "^7.14.5" 287 | "@babel/parser" "^7.15.0" 288 | "@babel/types" "^7.15.0" 289 | debug "^4.1.0" 290 | globals "^11.1.0" 291 | 292 | "@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": 293 | version "7.15.0" 294 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" 295 | integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== 296 | dependencies: 297 | "@babel/helper-validator-identifier" "^7.14.9" 298 | to-fast-properties "^2.0.0" 299 | 300 | "@bcoe/v8-coverage@^0.2.3": 301 | version "0.2.3" 302 | resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" 303 | integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== 304 | 305 | "@istanbuljs/load-nyc-config@^1.0.0": 306 | version "1.1.0" 307 | resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" 308 | integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== 309 | dependencies: 310 | camelcase "^5.3.1" 311 | find-up "^4.1.0" 312 | get-package-type "^0.1.0" 313 | js-yaml "^3.13.1" 314 | resolve-from "^5.0.0" 315 | 316 | "@istanbuljs/schema@^0.1.2": 317 | version "0.1.3" 318 | resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" 319 | integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== 320 | 321 | "@jest/console@^27.0.6": 322 | version "27.0.6" 323 | resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.0.6.tgz#3eb72ea80897495c3d73dd97aab7f26770e2260f" 324 | integrity sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg== 325 | dependencies: 326 | "@jest/types" "^27.0.6" 327 | "@types/node" "*" 328 | chalk "^4.0.0" 329 | jest-message-util "^27.0.6" 330 | jest-util "^27.0.6" 331 | slash "^3.0.0" 332 | 333 | "@jest/core@^27.0.6": 334 | version "27.0.6" 335 | resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.0.6.tgz#c5f642727a0b3bf0f37c4b46c675372d0978d4a1" 336 | integrity sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow== 337 | dependencies: 338 | "@jest/console" "^27.0.6" 339 | "@jest/reporters" "^27.0.6" 340 | "@jest/test-result" "^27.0.6" 341 | "@jest/transform" "^27.0.6" 342 | "@jest/types" "^27.0.6" 343 | "@types/node" "*" 344 | ansi-escapes "^4.2.1" 345 | chalk "^4.0.0" 346 | emittery "^0.8.1" 347 | exit "^0.1.2" 348 | graceful-fs "^4.2.4" 349 | jest-changed-files "^27.0.6" 350 | jest-config "^27.0.6" 351 | jest-haste-map "^27.0.6" 352 | jest-message-util "^27.0.6" 353 | jest-regex-util "^27.0.6" 354 | jest-resolve "^27.0.6" 355 | jest-resolve-dependencies "^27.0.6" 356 | jest-runner "^27.0.6" 357 | jest-runtime "^27.0.6" 358 | jest-snapshot "^27.0.6" 359 | jest-util "^27.0.6" 360 | jest-validate "^27.0.6" 361 | jest-watcher "^27.0.6" 362 | micromatch "^4.0.4" 363 | p-each-series "^2.1.0" 364 | rimraf "^3.0.0" 365 | slash "^3.0.0" 366 | strip-ansi "^6.0.0" 367 | 368 | "@jest/environment@^27.0.6": 369 | version "27.0.6" 370 | resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.0.6.tgz#ee293fe996db01d7d663b8108fa0e1ff436219d2" 371 | integrity sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg== 372 | dependencies: 373 | "@jest/fake-timers" "^27.0.6" 374 | "@jest/types" "^27.0.6" 375 | "@types/node" "*" 376 | jest-mock "^27.0.6" 377 | 378 | "@jest/fake-timers@^27.0.6": 379 | version "27.0.6" 380 | resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.0.6.tgz#cbad52f3fe6abe30e7acb8cd5fa3466b9588e3df" 381 | integrity sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ== 382 | dependencies: 383 | "@jest/types" "^27.0.6" 384 | "@sinonjs/fake-timers" "^7.0.2" 385 | "@types/node" "*" 386 | jest-message-util "^27.0.6" 387 | jest-mock "^27.0.6" 388 | jest-util "^27.0.6" 389 | 390 | "@jest/globals@^27.0.6": 391 | version "27.0.6" 392 | resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.0.6.tgz#48e3903f99a4650673d8657334d13c9caf0e8f82" 393 | integrity sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw== 394 | dependencies: 395 | "@jest/environment" "^27.0.6" 396 | "@jest/types" "^27.0.6" 397 | expect "^27.0.6" 398 | 399 | "@jest/reporters@^27.0.6": 400 | version "27.0.6" 401 | resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.0.6.tgz#91e7f2d98c002ad5df94d5b5167c1eb0b9fd5b00" 402 | integrity sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA== 403 | dependencies: 404 | "@bcoe/v8-coverage" "^0.2.3" 405 | "@jest/console" "^27.0.6" 406 | "@jest/test-result" "^27.0.6" 407 | "@jest/transform" "^27.0.6" 408 | "@jest/types" "^27.0.6" 409 | chalk "^4.0.0" 410 | collect-v8-coverage "^1.0.0" 411 | exit "^0.1.2" 412 | glob "^7.1.2" 413 | graceful-fs "^4.2.4" 414 | istanbul-lib-coverage "^3.0.0" 415 | istanbul-lib-instrument "^4.0.3" 416 | istanbul-lib-report "^3.0.0" 417 | istanbul-lib-source-maps "^4.0.0" 418 | istanbul-reports "^3.0.2" 419 | jest-haste-map "^27.0.6" 420 | jest-resolve "^27.0.6" 421 | jest-util "^27.0.6" 422 | jest-worker "^27.0.6" 423 | slash "^3.0.0" 424 | source-map "^0.6.0" 425 | string-length "^4.0.1" 426 | terminal-link "^2.0.0" 427 | v8-to-istanbul "^8.0.0" 428 | 429 | "@jest/source-map@^27.0.6": 430 | version "27.0.6" 431 | resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" 432 | integrity sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g== 433 | dependencies: 434 | callsites "^3.0.0" 435 | graceful-fs "^4.2.4" 436 | source-map "^0.6.0" 437 | 438 | "@jest/test-result@^27.0.6": 439 | version "27.0.6" 440 | resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.0.6.tgz#3fa42015a14e4fdede6acd042ce98c7f36627051" 441 | integrity sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w== 442 | dependencies: 443 | "@jest/console" "^27.0.6" 444 | "@jest/types" "^27.0.6" 445 | "@types/istanbul-lib-coverage" "^2.0.0" 446 | collect-v8-coverage "^1.0.0" 447 | 448 | "@jest/test-sequencer@^27.0.6": 449 | version "27.0.6" 450 | resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz#80a913ed7a1130545b1cd777ff2735dd3af5d34b" 451 | integrity sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA== 452 | dependencies: 453 | "@jest/test-result" "^27.0.6" 454 | graceful-fs "^4.2.4" 455 | jest-haste-map "^27.0.6" 456 | jest-runtime "^27.0.6" 457 | 458 | "@jest/transform@^27.0.6": 459 | version "27.0.6" 460 | resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.0.6.tgz#189ad7107413208f7600f4719f81dd2f7278cc95" 461 | integrity sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA== 462 | dependencies: 463 | "@babel/core" "^7.1.0" 464 | "@jest/types" "^27.0.6" 465 | babel-plugin-istanbul "^6.0.0" 466 | chalk "^4.0.0" 467 | convert-source-map "^1.4.0" 468 | fast-json-stable-stringify "^2.0.0" 469 | graceful-fs "^4.2.4" 470 | jest-haste-map "^27.0.6" 471 | jest-regex-util "^27.0.6" 472 | jest-util "^27.0.6" 473 | micromatch "^4.0.4" 474 | pirates "^4.0.1" 475 | slash "^3.0.0" 476 | source-map "^0.6.1" 477 | write-file-atomic "^3.0.0" 478 | 479 | "@jest/types@^27.0.6": 480 | version "27.0.6" 481 | resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.0.6.tgz#9a992bc517e0c49f035938b8549719c2de40706b" 482 | integrity sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g== 483 | dependencies: 484 | "@types/istanbul-lib-coverage" "^2.0.0" 485 | "@types/istanbul-reports" "^3.0.0" 486 | "@types/node" "*" 487 | "@types/yargs" "^16.0.0" 488 | chalk "^4.0.0" 489 | 490 | "@sinonjs/commons@^1.7.0": 491 | version "1.8.3" 492 | resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" 493 | integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== 494 | dependencies: 495 | type-detect "4.0.8" 496 | 497 | "@sinonjs/fake-timers@^7.0.2": 498 | version "7.1.2" 499 | resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" 500 | integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== 501 | dependencies: 502 | "@sinonjs/commons" "^1.7.0" 503 | 504 | "@tootallnate/once@1": 505 | version "1.1.2" 506 | resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" 507 | integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== 508 | 509 | "@tsconfig/node10@^1.0.7": 510 | version "1.0.8" 511 | resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" 512 | integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== 513 | 514 | "@tsconfig/node12@^1.0.7": 515 | version "1.0.9" 516 | resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" 517 | integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== 518 | 519 | "@tsconfig/node14@^1.0.0": 520 | version "1.0.1" 521 | resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" 522 | integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== 523 | 524 | "@tsconfig/node16@^1.0.1": 525 | version "1.0.2" 526 | resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" 527 | integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== 528 | 529 | "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": 530 | version "7.1.15" 531 | resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" 532 | integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== 533 | dependencies: 534 | "@babel/parser" "^7.1.0" 535 | "@babel/types" "^7.0.0" 536 | "@types/babel__generator" "*" 537 | "@types/babel__template" "*" 538 | "@types/babel__traverse" "*" 539 | 540 | "@types/babel__generator@*": 541 | version "7.6.3" 542 | resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" 543 | integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== 544 | dependencies: 545 | "@babel/types" "^7.0.0" 546 | 547 | "@types/babel__template@*": 548 | version "7.4.1" 549 | resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" 550 | integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== 551 | dependencies: 552 | "@babel/parser" "^7.1.0" 553 | "@babel/types" "^7.0.0" 554 | 555 | "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": 556 | version "7.14.2" 557 | resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" 558 | integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== 559 | dependencies: 560 | "@babel/types" "^7.3.0" 561 | 562 | "@types/graceful-fs@^4.1.2": 563 | version "4.1.5" 564 | resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" 565 | integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== 566 | dependencies: 567 | "@types/node" "*" 568 | 569 | "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": 570 | version "2.0.3" 571 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" 572 | integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== 573 | 574 | "@types/istanbul-lib-report@*": 575 | version "3.0.0" 576 | resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" 577 | integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== 578 | dependencies: 579 | "@types/istanbul-lib-coverage" "*" 580 | 581 | "@types/istanbul-reports@^3.0.0": 582 | version "3.0.1" 583 | resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" 584 | integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== 585 | dependencies: 586 | "@types/istanbul-lib-report" "*" 587 | 588 | "@types/jest@^27.0.1": 589 | version "27.0.1" 590 | resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.0.1.tgz#fafcc997da0135865311bb1215ba16dba6bdf4ca" 591 | integrity sha512-HTLpVXHrY69556ozYkcq47TtQJXpcWAWfkoqz+ZGz2JnmZhzlRjprCIyFnetSy8gpDWwTTGBcRVv1J1I1vBrHw== 592 | dependencies: 593 | jest-diff "^27.0.0" 594 | pretty-format "^27.0.0" 595 | 596 | "@types/node@*": 597 | version "16.6.1" 598 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.6.1.tgz#aee62c7b966f55fc66c7b6dfa1d58db2a616da61" 599 | integrity sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw== 600 | 601 | "@types/prettier@^2.1.5": 602 | version "2.3.2" 603 | resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" 604 | integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== 605 | 606 | "@types/stack-utils@^2.0.0": 607 | version "2.0.1" 608 | resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" 609 | integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== 610 | 611 | "@types/yargs-parser@*": 612 | version "20.2.1" 613 | resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" 614 | integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== 615 | 616 | "@types/yargs@^16.0.0": 617 | version "16.0.4" 618 | resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" 619 | integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== 620 | dependencies: 621 | "@types/yargs-parser" "*" 622 | 623 | abab@^2.0.3, abab@^2.0.5: 624 | version "2.0.5" 625 | resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" 626 | integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== 627 | 628 | acorn-globals@^6.0.0: 629 | version "6.0.0" 630 | resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" 631 | integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== 632 | dependencies: 633 | acorn "^7.1.1" 634 | acorn-walk "^7.1.1" 635 | 636 | acorn-walk@^7.1.1: 637 | version "7.2.0" 638 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" 639 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== 640 | 641 | acorn@^7.1.1: 642 | version "7.4.1" 643 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" 644 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== 645 | 646 | acorn@^8.2.4: 647 | version "8.4.1" 648 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" 649 | integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== 650 | 651 | agent-base@6: 652 | version "6.0.2" 653 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" 654 | integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== 655 | dependencies: 656 | debug "4" 657 | 658 | ansi-escapes@^4.2.1: 659 | version "4.3.2" 660 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" 661 | integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== 662 | dependencies: 663 | type-fest "^0.21.3" 664 | 665 | ansi-regex@^5.0.0: 666 | version "5.0.0" 667 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 668 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 669 | 670 | ansi-styles@^3.2.1: 671 | version "3.2.1" 672 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 673 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 674 | dependencies: 675 | color-convert "^1.9.0" 676 | 677 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 678 | version "4.3.0" 679 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 680 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 681 | dependencies: 682 | color-convert "^2.0.1" 683 | 684 | ansi-styles@^5.0.0: 685 | version "5.2.0" 686 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" 687 | integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== 688 | 689 | anymatch@^3.0.3: 690 | version "3.1.2" 691 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 692 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 693 | dependencies: 694 | normalize-path "^3.0.0" 695 | picomatch "^2.0.4" 696 | 697 | arg@^4.1.0: 698 | version "4.1.3" 699 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 700 | integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== 701 | 702 | argparse@^1.0.7: 703 | version "1.0.10" 704 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 705 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 706 | dependencies: 707 | sprintf-js "~1.0.2" 708 | 709 | asynckit@^0.4.0: 710 | version "0.4.0" 711 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 712 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 713 | 714 | babel-jest@^27.0.6: 715 | version "27.0.6" 716 | resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.0.6.tgz#e99c6e0577da2655118e3608b68761a5a69bd0d8" 717 | integrity sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA== 718 | dependencies: 719 | "@jest/transform" "^27.0.6" 720 | "@jest/types" "^27.0.6" 721 | "@types/babel__core" "^7.1.14" 722 | babel-plugin-istanbul "^6.0.0" 723 | babel-preset-jest "^27.0.6" 724 | chalk "^4.0.0" 725 | graceful-fs "^4.2.4" 726 | slash "^3.0.0" 727 | 728 | babel-plugin-istanbul@^6.0.0: 729 | version "6.0.0" 730 | resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" 731 | integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== 732 | dependencies: 733 | "@babel/helper-plugin-utils" "^7.0.0" 734 | "@istanbuljs/load-nyc-config" "^1.0.0" 735 | "@istanbuljs/schema" "^0.1.2" 736 | istanbul-lib-instrument "^4.0.0" 737 | test-exclude "^6.0.0" 738 | 739 | babel-plugin-jest-hoist@^27.0.6: 740 | version "27.0.6" 741 | resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz#f7c6b3d764af21cb4a2a1ab6870117dbde15b456" 742 | integrity sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw== 743 | dependencies: 744 | "@babel/template" "^7.3.3" 745 | "@babel/types" "^7.3.3" 746 | "@types/babel__core" "^7.0.0" 747 | "@types/babel__traverse" "^7.0.6" 748 | 749 | babel-preset-current-node-syntax@^1.0.0: 750 | version "1.0.1" 751 | resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" 752 | integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== 753 | dependencies: 754 | "@babel/plugin-syntax-async-generators" "^7.8.4" 755 | "@babel/plugin-syntax-bigint" "^7.8.3" 756 | "@babel/plugin-syntax-class-properties" "^7.8.3" 757 | "@babel/plugin-syntax-import-meta" "^7.8.3" 758 | "@babel/plugin-syntax-json-strings" "^7.8.3" 759 | "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" 760 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 761 | "@babel/plugin-syntax-numeric-separator" "^7.8.3" 762 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 763 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 764 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 765 | "@babel/plugin-syntax-top-level-await" "^7.8.3" 766 | 767 | babel-preset-jest@^27.0.6: 768 | version "27.0.6" 769 | resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz#909ef08e9f24a4679768be2f60a3df0856843f9d" 770 | integrity sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw== 771 | dependencies: 772 | babel-plugin-jest-hoist "^27.0.6" 773 | babel-preset-current-node-syntax "^1.0.0" 774 | 775 | balanced-match@^1.0.0: 776 | version "1.0.2" 777 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 778 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 779 | 780 | brace-expansion@^1.1.7: 781 | version "1.1.11" 782 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 783 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 784 | dependencies: 785 | balanced-match "^1.0.0" 786 | concat-map "0.0.1" 787 | 788 | braces@^3.0.1: 789 | version "3.0.2" 790 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 791 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 792 | dependencies: 793 | fill-range "^7.0.1" 794 | 795 | browser-process-hrtime@^1.0.0: 796 | version "1.0.0" 797 | resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" 798 | integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== 799 | 800 | browserslist@^4.16.6: 801 | version "4.16.7" 802 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.7.tgz#108b0d1ef33c4af1b587c54f390e7041178e4335" 803 | integrity sha512-7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA== 804 | dependencies: 805 | caniuse-lite "^1.0.30001248" 806 | colorette "^1.2.2" 807 | electron-to-chromium "^1.3.793" 808 | escalade "^3.1.1" 809 | node-releases "^1.1.73" 810 | 811 | bs-logger@0.x: 812 | version "0.2.6" 813 | resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" 814 | integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== 815 | dependencies: 816 | fast-json-stable-stringify "2.x" 817 | 818 | bser@2.1.1: 819 | version "2.1.1" 820 | resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" 821 | integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== 822 | dependencies: 823 | node-int64 "^0.4.0" 824 | 825 | buffer-from@^1.0.0: 826 | version "1.1.2" 827 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 828 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 829 | 830 | callsites@^3.0.0: 831 | version "3.1.0" 832 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 833 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 834 | 835 | camelcase@^5.3.1: 836 | version "5.3.1" 837 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 838 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 839 | 840 | camelcase@^6.2.0: 841 | version "6.2.0" 842 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" 843 | integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== 844 | 845 | caniuse-lite@^1.0.30001248: 846 | version "1.0.30001251" 847 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85" 848 | integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A== 849 | 850 | chalk@^2.0.0: 851 | version "2.4.2" 852 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 853 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 854 | dependencies: 855 | ansi-styles "^3.2.1" 856 | escape-string-regexp "^1.0.5" 857 | supports-color "^5.3.0" 858 | 859 | chalk@^4.0.0: 860 | version "4.1.2" 861 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 862 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 863 | dependencies: 864 | ansi-styles "^4.1.0" 865 | supports-color "^7.1.0" 866 | 867 | char-regex@^1.0.2: 868 | version "1.0.2" 869 | resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" 870 | integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== 871 | 872 | ci-info@^3.1.1: 873 | version "3.2.0" 874 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" 875 | integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== 876 | 877 | cjs-module-lexer@^1.0.0: 878 | version "1.2.2" 879 | resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" 880 | integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== 881 | 882 | cliui@^7.0.2: 883 | version "7.0.4" 884 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 885 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 886 | dependencies: 887 | string-width "^4.2.0" 888 | strip-ansi "^6.0.0" 889 | wrap-ansi "^7.0.0" 890 | 891 | co@^4.6.0: 892 | version "4.6.0" 893 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 894 | integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 895 | 896 | collect-v8-coverage@^1.0.0: 897 | version "1.0.1" 898 | resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" 899 | integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== 900 | 901 | color-convert@^1.9.0: 902 | version "1.9.3" 903 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 904 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 905 | dependencies: 906 | color-name "1.1.3" 907 | 908 | color-convert@^2.0.1: 909 | version "2.0.1" 910 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 911 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 912 | dependencies: 913 | color-name "~1.1.4" 914 | 915 | color-name@1.1.3: 916 | version "1.1.3" 917 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 918 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 919 | 920 | color-name@~1.1.4: 921 | version "1.1.4" 922 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 923 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 924 | 925 | colorette@^1.2.2: 926 | version "1.3.0" 927 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" 928 | integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== 929 | 930 | combined-stream@^1.0.8: 931 | version "1.0.8" 932 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 933 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 934 | dependencies: 935 | delayed-stream "~1.0.0" 936 | 937 | concat-map@0.0.1: 938 | version "0.0.1" 939 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 940 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 941 | 942 | convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: 943 | version "1.8.0" 944 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" 945 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== 946 | dependencies: 947 | safe-buffer "~5.1.1" 948 | 949 | create-require@^1.1.0: 950 | version "1.1.1" 951 | resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 952 | integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== 953 | 954 | cross-spawn@^7.0.3: 955 | version "7.0.3" 956 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 957 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 958 | dependencies: 959 | path-key "^3.1.0" 960 | shebang-command "^2.0.0" 961 | which "^2.0.1" 962 | 963 | cssom@^0.4.4: 964 | version "0.4.4" 965 | resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" 966 | integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== 967 | 968 | cssom@~0.3.6: 969 | version "0.3.8" 970 | resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" 971 | integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== 972 | 973 | cssstyle@^2.3.0: 974 | version "2.3.0" 975 | resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" 976 | integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== 977 | dependencies: 978 | cssom "~0.3.6" 979 | 980 | data-urls@^2.0.0: 981 | version "2.0.0" 982 | resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" 983 | integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== 984 | dependencies: 985 | abab "^2.0.3" 986 | whatwg-mimetype "^2.3.0" 987 | whatwg-url "^8.0.0" 988 | 989 | debug@4, debug@^4.1.0, debug@^4.1.1: 990 | version "4.3.2" 991 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" 992 | integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== 993 | dependencies: 994 | ms "2.1.2" 995 | 996 | decimal.js@^10.2.1: 997 | version "10.3.1" 998 | resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" 999 | integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== 1000 | 1001 | dedent@^0.7.0: 1002 | version "0.7.0" 1003 | resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" 1004 | integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= 1005 | 1006 | deep-is@~0.1.3: 1007 | version "0.1.3" 1008 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 1009 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 1010 | 1011 | deepmerge@^4.2.2: 1012 | version "4.2.2" 1013 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" 1014 | integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== 1015 | 1016 | delayed-stream@~1.0.0: 1017 | version "1.0.0" 1018 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 1019 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 1020 | 1021 | detect-newline@^3.0.0: 1022 | version "3.1.0" 1023 | resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" 1024 | integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== 1025 | 1026 | diff-sequences@^27.0.6: 1027 | version "27.0.6" 1028 | resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" 1029 | integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== 1030 | 1031 | diff@^4.0.1: 1032 | version "4.0.2" 1033 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 1034 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== 1035 | 1036 | domexception@^2.0.1: 1037 | version "2.0.1" 1038 | resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" 1039 | integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== 1040 | dependencies: 1041 | webidl-conversions "^5.0.0" 1042 | 1043 | electron-to-chromium@^1.3.793: 1044 | version "1.3.809" 1045 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.809.tgz#86db795c41c97f252ee1c849a2f70d0739710776" 1046 | integrity sha512-bZoXTEhEe8o10dHX2gNY9KkCSwz1AFk4c0GbmzlTD5WAkUpDb/zY7JjvLvJ/y1wUsURiVmlGdnIeU+gFyTeaXA== 1047 | 1048 | emittery@^0.8.1: 1049 | version "0.8.1" 1050 | resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" 1051 | integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== 1052 | 1053 | emoji-regex@^8.0.0: 1054 | version "8.0.0" 1055 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 1056 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 1057 | 1058 | escalade@^3.1.1: 1059 | version "3.1.1" 1060 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 1061 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 1062 | 1063 | escape-string-regexp@^1.0.5: 1064 | version "1.0.5" 1065 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1066 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 1067 | 1068 | escape-string-regexp@^2.0.0: 1069 | version "2.0.0" 1070 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" 1071 | integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== 1072 | 1073 | escodegen@^2.0.0: 1074 | version "2.0.0" 1075 | resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" 1076 | integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== 1077 | dependencies: 1078 | esprima "^4.0.1" 1079 | estraverse "^5.2.0" 1080 | esutils "^2.0.2" 1081 | optionator "^0.8.1" 1082 | optionalDependencies: 1083 | source-map "~0.6.1" 1084 | 1085 | esprima@^4.0.0, esprima@^4.0.1: 1086 | version "4.0.1" 1087 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 1088 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 1089 | 1090 | estraverse@^5.2.0: 1091 | version "5.2.0" 1092 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" 1093 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== 1094 | 1095 | esutils@^2.0.2: 1096 | version "2.0.3" 1097 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 1098 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1099 | 1100 | execa@^5.0.0: 1101 | version "5.1.1" 1102 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" 1103 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== 1104 | dependencies: 1105 | cross-spawn "^7.0.3" 1106 | get-stream "^6.0.0" 1107 | human-signals "^2.1.0" 1108 | is-stream "^2.0.0" 1109 | merge-stream "^2.0.0" 1110 | npm-run-path "^4.0.1" 1111 | onetime "^5.1.2" 1112 | signal-exit "^3.0.3" 1113 | strip-final-newline "^2.0.0" 1114 | 1115 | exit@^0.1.2: 1116 | version "0.1.2" 1117 | resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" 1118 | integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= 1119 | 1120 | expect@^27.0.6: 1121 | version "27.0.6" 1122 | resolved "https://registry.yarnpkg.com/expect/-/expect-27.0.6.tgz#a4d74fbe27222c718fff68ef49d78e26a8fd4c05" 1123 | integrity sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw== 1124 | dependencies: 1125 | "@jest/types" "^27.0.6" 1126 | ansi-styles "^5.0.0" 1127 | jest-get-type "^27.0.6" 1128 | jest-matcher-utils "^27.0.6" 1129 | jest-message-util "^27.0.6" 1130 | jest-regex-util "^27.0.6" 1131 | 1132 | fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: 1133 | version "2.1.0" 1134 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 1135 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 1136 | 1137 | fast-levenshtein@~2.0.6: 1138 | version "2.0.6" 1139 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1140 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 1141 | 1142 | fb-watchman@^2.0.0: 1143 | version "2.0.1" 1144 | resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" 1145 | integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== 1146 | dependencies: 1147 | bser "2.1.1" 1148 | 1149 | fill-range@^7.0.1: 1150 | version "7.0.1" 1151 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 1152 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 1153 | dependencies: 1154 | to-regex-range "^5.0.1" 1155 | 1156 | find-up@^4.0.0, find-up@^4.1.0: 1157 | version "4.1.0" 1158 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 1159 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 1160 | dependencies: 1161 | locate-path "^5.0.0" 1162 | path-exists "^4.0.0" 1163 | 1164 | form-data@^3.0.0: 1165 | version "3.0.1" 1166 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" 1167 | integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== 1168 | dependencies: 1169 | asynckit "^0.4.0" 1170 | combined-stream "^1.0.8" 1171 | mime-types "^2.1.12" 1172 | 1173 | fs.realpath@^1.0.0: 1174 | version "1.0.0" 1175 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1176 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1177 | 1178 | fsevents@^2.3.2: 1179 | version "2.3.2" 1180 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 1181 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 1182 | 1183 | function-bind@^1.1.1: 1184 | version "1.1.1" 1185 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1186 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1187 | 1188 | gensync@^1.0.0-beta.2: 1189 | version "1.0.0-beta.2" 1190 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 1191 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1192 | 1193 | get-caller-file@^2.0.5: 1194 | version "2.0.5" 1195 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 1196 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 1197 | 1198 | get-package-type@^0.1.0: 1199 | version "0.1.0" 1200 | resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" 1201 | integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== 1202 | 1203 | get-stream@^6.0.0: 1204 | version "6.0.1" 1205 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" 1206 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== 1207 | 1208 | glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: 1209 | version "7.1.7" 1210 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" 1211 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== 1212 | dependencies: 1213 | fs.realpath "^1.0.0" 1214 | inflight "^1.0.4" 1215 | inherits "2" 1216 | minimatch "^3.0.4" 1217 | once "^1.3.0" 1218 | path-is-absolute "^1.0.0" 1219 | 1220 | globals@^11.1.0: 1221 | version "11.12.0" 1222 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1223 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1224 | 1225 | graceful-fs@^4.2.4: 1226 | version "4.2.8" 1227 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" 1228 | integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== 1229 | 1230 | has-flag@^3.0.0: 1231 | version "3.0.0" 1232 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1233 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1234 | 1235 | has-flag@^4.0.0: 1236 | version "4.0.0" 1237 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1238 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1239 | 1240 | has@^1.0.3: 1241 | version "1.0.3" 1242 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1243 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1244 | dependencies: 1245 | function-bind "^1.1.1" 1246 | 1247 | html-encoding-sniffer@^2.0.1: 1248 | version "2.0.1" 1249 | resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" 1250 | integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== 1251 | dependencies: 1252 | whatwg-encoding "^1.0.5" 1253 | 1254 | html-escaper@^2.0.0: 1255 | version "2.0.2" 1256 | resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" 1257 | integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== 1258 | 1259 | http-proxy-agent@^4.0.1: 1260 | version "4.0.1" 1261 | resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" 1262 | integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== 1263 | dependencies: 1264 | "@tootallnate/once" "1" 1265 | agent-base "6" 1266 | debug "4" 1267 | 1268 | https-proxy-agent@^5.0.0: 1269 | version "5.0.0" 1270 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" 1271 | integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== 1272 | dependencies: 1273 | agent-base "6" 1274 | debug "4" 1275 | 1276 | human-signals@^2.1.0: 1277 | version "2.1.0" 1278 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" 1279 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== 1280 | 1281 | iconv-lite@0.4.24: 1282 | version "0.4.24" 1283 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1284 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1285 | dependencies: 1286 | safer-buffer ">= 2.1.2 < 3" 1287 | 1288 | import-local@^3.0.2: 1289 | version "3.0.2" 1290 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" 1291 | integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== 1292 | dependencies: 1293 | pkg-dir "^4.2.0" 1294 | resolve-cwd "^3.0.0" 1295 | 1296 | imurmurhash@^0.1.4: 1297 | version "0.1.4" 1298 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1299 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1300 | 1301 | inflight@^1.0.4: 1302 | version "1.0.6" 1303 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1304 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1305 | dependencies: 1306 | once "^1.3.0" 1307 | wrappy "1" 1308 | 1309 | inherits@2: 1310 | version "2.0.4" 1311 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1312 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1313 | 1314 | is-ci@^3.0.0: 1315 | version "3.0.0" 1316 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" 1317 | integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== 1318 | dependencies: 1319 | ci-info "^3.1.1" 1320 | 1321 | is-core-module@^2.2.0: 1322 | version "2.6.0" 1323 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" 1324 | integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== 1325 | dependencies: 1326 | has "^1.0.3" 1327 | 1328 | is-fullwidth-code-point@^3.0.0: 1329 | version "3.0.0" 1330 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1331 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1332 | 1333 | is-generator-fn@^2.0.0: 1334 | version "2.1.0" 1335 | resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" 1336 | integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== 1337 | 1338 | is-number@^7.0.0: 1339 | version "7.0.0" 1340 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1341 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1342 | 1343 | is-potential-custom-element-name@^1.0.1: 1344 | version "1.0.1" 1345 | resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" 1346 | integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== 1347 | 1348 | is-stream@^2.0.0: 1349 | version "2.0.1" 1350 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" 1351 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== 1352 | 1353 | is-typedarray@^1.0.0: 1354 | version "1.0.0" 1355 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1356 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 1357 | 1358 | isexe@^2.0.0: 1359 | version "2.0.0" 1360 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1361 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1362 | 1363 | istanbul-lib-coverage@^3.0.0: 1364 | version "3.0.0" 1365 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" 1366 | integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== 1367 | 1368 | istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: 1369 | version "4.0.3" 1370 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" 1371 | integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== 1372 | dependencies: 1373 | "@babel/core" "^7.7.5" 1374 | "@istanbuljs/schema" "^0.1.2" 1375 | istanbul-lib-coverage "^3.0.0" 1376 | semver "^6.3.0" 1377 | 1378 | istanbul-lib-report@^3.0.0: 1379 | version "3.0.0" 1380 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" 1381 | integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== 1382 | dependencies: 1383 | istanbul-lib-coverage "^3.0.0" 1384 | make-dir "^3.0.0" 1385 | supports-color "^7.1.0" 1386 | 1387 | istanbul-lib-source-maps@^4.0.0: 1388 | version "4.0.0" 1389 | resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" 1390 | integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== 1391 | dependencies: 1392 | debug "^4.1.1" 1393 | istanbul-lib-coverage "^3.0.0" 1394 | source-map "^0.6.1" 1395 | 1396 | istanbul-reports@^3.0.2: 1397 | version "3.0.2" 1398 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" 1399 | integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== 1400 | dependencies: 1401 | html-escaper "^2.0.0" 1402 | istanbul-lib-report "^3.0.0" 1403 | 1404 | jest-changed-files@^27.0.6: 1405 | version "27.0.6" 1406 | resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.0.6.tgz#bed6183fcdea8a285482e3b50a9a7712d49a7a8b" 1407 | integrity sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA== 1408 | dependencies: 1409 | "@jest/types" "^27.0.6" 1410 | execa "^5.0.0" 1411 | throat "^6.0.1" 1412 | 1413 | jest-circus@^27.0.6: 1414 | version "27.0.6" 1415 | resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.0.6.tgz#dd4df17c4697db6a2c232aaad4e9cec666926668" 1416 | integrity sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q== 1417 | dependencies: 1418 | "@jest/environment" "^27.0.6" 1419 | "@jest/test-result" "^27.0.6" 1420 | "@jest/types" "^27.0.6" 1421 | "@types/node" "*" 1422 | chalk "^4.0.0" 1423 | co "^4.6.0" 1424 | dedent "^0.7.0" 1425 | expect "^27.0.6" 1426 | is-generator-fn "^2.0.0" 1427 | jest-each "^27.0.6" 1428 | jest-matcher-utils "^27.0.6" 1429 | jest-message-util "^27.0.6" 1430 | jest-runtime "^27.0.6" 1431 | jest-snapshot "^27.0.6" 1432 | jest-util "^27.0.6" 1433 | pretty-format "^27.0.6" 1434 | slash "^3.0.0" 1435 | stack-utils "^2.0.3" 1436 | throat "^6.0.1" 1437 | 1438 | jest-cli@^27.0.6: 1439 | version "27.0.6" 1440 | resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.0.6.tgz#d021e5f4d86d6a212450d4c7b86cb219f1e6864f" 1441 | integrity sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg== 1442 | dependencies: 1443 | "@jest/core" "^27.0.6" 1444 | "@jest/test-result" "^27.0.6" 1445 | "@jest/types" "^27.0.6" 1446 | chalk "^4.0.0" 1447 | exit "^0.1.2" 1448 | graceful-fs "^4.2.4" 1449 | import-local "^3.0.2" 1450 | jest-config "^27.0.6" 1451 | jest-util "^27.0.6" 1452 | jest-validate "^27.0.6" 1453 | prompts "^2.0.1" 1454 | yargs "^16.0.3" 1455 | 1456 | jest-config@^27.0.6: 1457 | version "27.0.6" 1458 | resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.0.6.tgz#119fb10f149ba63d9c50621baa4f1f179500277f" 1459 | integrity sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w== 1460 | dependencies: 1461 | "@babel/core" "^7.1.0" 1462 | "@jest/test-sequencer" "^27.0.6" 1463 | "@jest/types" "^27.0.6" 1464 | babel-jest "^27.0.6" 1465 | chalk "^4.0.0" 1466 | deepmerge "^4.2.2" 1467 | glob "^7.1.1" 1468 | graceful-fs "^4.2.4" 1469 | is-ci "^3.0.0" 1470 | jest-circus "^27.0.6" 1471 | jest-environment-jsdom "^27.0.6" 1472 | jest-environment-node "^27.0.6" 1473 | jest-get-type "^27.0.6" 1474 | jest-jasmine2 "^27.0.6" 1475 | jest-regex-util "^27.0.6" 1476 | jest-resolve "^27.0.6" 1477 | jest-runner "^27.0.6" 1478 | jest-util "^27.0.6" 1479 | jest-validate "^27.0.6" 1480 | micromatch "^4.0.4" 1481 | pretty-format "^27.0.6" 1482 | 1483 | jest-diff@^27.0.0, jest-diff@^27.0.6: 1484 | version "27.0.6" 1485 | resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.0.6.tgz#4a7a19ee6f04ad70e0e3388f35829394a44c7b5e" 1486 | integrity sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg== 1487 | dependencies: 1488 | chalk "^4.0.0" 1489 | diff-sequences "^27.0.6" 1490 | jest-get-type "^27.0.6" 1491 | pretty-format "^27.0.6" 1492 | 1493 | jest-docblock@^27.0.6: 1494 | version "27.0.6" 1495 | resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" 1496 | integrity sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA== 1497 | dependencies: 1498 | detect-newline "^3.0.0" 1499 | 1500 | jest-each@^27.0.6: 1501 | version "27.0.6" 1502 | resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.0.6.tgz#cee117071b04060158dc8d9a66dc50ad40ef453b" 1503 | integrity sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA== 1504 | dependencies: 1505 | "@jest/types" "^27.0.6" 1506 | chalk "^4.0.0" 1507 | jest-get-type "^27.0.6" 1508 | jest-util "^27.0.6" 1509 | pretty-format "^27.0.6" 1510 | 1511 | jest-environment-jsdom@^27.0.6: 1512 | version "27.0.6" 1513 | resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz#f66426c4c9950807d0a9f209c590ce544f73291f" 1514 | integrity sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw== 1515 | dependencies: 1516 | "@jest/environment" "^27.0.6" 1517 | "@jest/fake-timers" "^27.0.6" 1518 | "@jest/types" "^27.0.6" 1519 | "@types/node" "*" 1520 | jest-mock "^27.0.6" 1521 | jest-util "^27.0.6" 1522 | jsdom "^16.6.0" 1523 | 1524 | jest-environment-node@^27.0.6: 1525 | version "27.0.6" 1526 | resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.0.6.tgz#a6699b7ceb52e8d68138b9808b0c404e505f3e07" 1527 | integrity sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w== 1528 | dependencies: 1529 | "@jest/environment" "^27.0.6" 1530 | "@jest/fake-timers" "^27.0.6" 1531 | "@jest/types" "^27.0.6" 1532 | "@types/node" "*" 1533 | jest-mock "^27.0.6" 1534 | jest-util "^27.0.6" 1535 | 1536 | jest-get-type@^27.0.6: 1537 | version "27.0.6" 1538 | resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" 1539 | integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== 1540 | 1541 | jest-haste-map@^27.0.6: 1542 | version "27.0.6" 1543 | resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.0.6.tgz#4683a4e68f6ecaa74231679dca237279562c8dc7" 1544 | integrity sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w== 1545 | dependencies: 1546 | "@jest/types" "^27.0.6" 1547 | "@types/graceful-fs" "^4.1.2" 1548 | "@types/node" "*" 1549 | anymatch "^3.0.3" 1550 | fb-watchman "^2.0.0" 1551 | graceful-fs "^4.2.4" 1552 | jest-regex-util "^27.0.6" 1553 | jest-serializer "^27.0.6" 1554 | jest-util "^27.0.6" 1555 | jest-worker "^27.0.6" 1556 | micromatch "^4.0.4" 1557 | walker "^1.0.7" 1558 | optionalDependencies: 1559 | fsevents "^2.3.2" 1560 | 1561 | jest-jasmine2@^27.0.6: 1562 | version "27.0.6" 1563 | resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz#fd509a9ed3d92bd6edb68a779f4738b100655b37" 1564 | integrity sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA== 1565 | dependencies: 1566 | "@babel/traverse" "^7.1.0" 1567 | "@jest/environment" "^27.0.6" 1568 | "@jest/source-map" "^27.0.6" 1569 | "@jest/test-result" "^27.0.6" 1570 | "@jest/types" "^27.0.6" 1571 | "@types/node" "*" 1572 | chalk "^4.0.0" 1573 | co "^4.6.0" 1574 | expect "^27.0.6" 1575 | is-generator-fn "^2.0.0" 1576 | jest-each "^27.0.6" 1577 | jest-matcher-utils "^27.0.6" 1578 | jest-message-util "^27.0.6" 1579 | jest-runtime "^27.0.6" 1580 | jest-snapshot "^27.0.6" 1581 | jest-util "^27.0.6" 1582 | pretty-format "^27.0.6" 1583 | throat "^6.0.1" 1584 | 1585 | jest-leak-detector@^27.0.6: 1586 | version "27.0.6" 1587 | resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz#545854275f85450d4ef4b8fe305ca2a26450450f" 1588 | integrity sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ== 1589 | dependencies: 1590 | jest-get-type "^27.0.6" 1591 | pretty-format "^27.0.6" 1592 | 1593 | jest-matcher-utils@^27.0.6: 1594 | version "27.0.6" 1595 | resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz#2a8da1e86c620b39459f4352eaa255f0d43e39a9" 1596 | integrity sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA== 1597 | dependencies: 1598 | chalk "^4.0.0" 1599 | jest-diff "^27.0.6" 1600 | jest-get-type "^27.0.6" 1601 | pretty-format "^27.0.6" 1602 | 1603 | jest-message-util@^27.0.6: 1604 | version "27.0.6" 1605 | resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.0.6.tgz#158bcdf4785706492d164a39abca6a14da5ab8b5" 1606 | integrity sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw== 1607 | dependencies: 1608 | "@babel/code-frame" "^7.12.13" 1609 | "@jest/types" "^27.0.6" 1610 | "@types/stack-utils" "^2.0.0" 1611 | chalk "^4.0.0" 1612 | graceful-fs "^4.2.4" 1613 | micromatch "^4.0.4" 1614 | pretty-format "^27.0.6" 1615 | slash "^3.0.0" 1616 | stack-utils "^2.0.3" 1617 | 1618 | jest-mock@^27.0.6: 1619 | version "27.0.6" 1620 | resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.0.6.tgz#0efdd40851398307ba16778728f6d34d583e3467" 1621 | integrity sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw== 1622 | dependencies: 1623 | "@jest/types" "^27.0.6" 1624 | "@types/node" "*" 1625 | 1626 | jest-pnp-resolver@^1.2.2: 1627 | version "1.2.2" 1628 | resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" 1629 | integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== 1630 | 1631 | jest-regex-util@^27.0.6: 1632 | version "27.0.6" 1633 | resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" 1634 | integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== 1635 | 1636 | jest-resolve-dependencies@^27.0.6: 1637 | version "27.0.6" 1638 | resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz#3e619e0ef391c3ecfcf6ef4056207a3d2be3269f" 1639 | integrity sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA== 1640 | dependencies: 1641 | "@jest/types" "^27.0.6" 1642 | jest-regex-util "^27.0.6" 1643 | jest-snapshot "^27.0.6" 1644 | 1645 | jest-resolve@^27.0.6: 1646 | version "27.0.6" 1647 | resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.0.6.tgz#e90f436dd4f8fbf53f58a91c42344864f8e55bff" 1648 | integrity sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA== 1649 | dependencies: 1650 | "@jest/types" "^27.0.6" 1651 | chalk "^4.0.0" 1652 | escalade "^3.1.1" 1653 | graceful-fs "^4.2.4" 1654 | jest-pnp-resolver "^1.2.2" 1655 | jest-util "^27.0.6" 1656 | jest-validate "^27.0.6" 1657 | resolve "^1.20.0" 1658 | slash "^3.0.0" 1659 | 1660 | jest-runner@^27.0.6: 1661 | version "27.0.6" 1662 | resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.0.6.tgz#1325f45055539222bbc7256a6976e993ad2f9520" 1663 | integrity sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ== 1664 | dependencies: 1665 | "@jest/console" "^27.0.6" 1666 | "@jest/environment" "^27.0.6" 1667 | "@jest/test-result" "^27.0.6" 1668 | "@jest/transform" "^27.0.6" 1669 | "@jest/types" "^27.0.6" 1670 | "@types/node" "*" 1671 | chalk "^4.0.0" 1672 | emittery "^0.8.1" 1673 | exit "^0.1.2" 1674 | graceful-fs "^4.2.4" 1675 | jest-docblock "^27.0.6" 1676 | jest-environment-jsdom "^27.0.6" 1677 | jest-environment-node "^27.0.6" 1678 | jest-haste-map "^27.0.6" 1679 | jest-leak-detector "^27.0.6" 1680 | jest-message-util "^27.0.6" 1681 | jest-resolve "^27.0.6" 1682 | jest-runtime "^27.0.6" 1683 | jest-util "^27.0.6" 1684 | jest-worker "^27.0.6" 1685 | source-map-support "^0.5.6" 1686 | throat "^6.0.1" 1687 | 1688 | jest-runtime@^27.0.6: 1689 | version "27.0.6" 1690 | resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.0.6.tgz#45877cfcd386afdd4f317def551fc369794c27c9" 1691 | integrity sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q== 1692 | dependencies: 1693 | "@jest/console" "^27.0.6" 1694 | "@jest/environment" "^27.0.6" 1695 | "@jest/fake-timers" "^27.0.6" 1696 | "@jest/globals" "^27.0.6" 1697 | "@jest/source-map" "^27.0.6" 1698 | "@jest/test-result" "^27.0.6" 1699 | "@jest/transform" "^27.0.6" 1700 | "@jest/types" "^27.0.6" 1701 | "@types/yargs" "^16.0.0" 1702 | chalk "^4.0.0" 1703 | cjs-module-lexer "^1.0.0" 1704 | collect-v8-coverage "^1.0.0" 1705 | exit "^0.1.2" 1706 | glob "^7.1.3" 1707 | graceful-fs "^4.2.4" 1708 | jest-haste-map "^27.0.6" 1709 | jest-message-util "^27.0.6" 1710 | jest-mock "^27.0.6" 1711 | jest-regex-util "^27.0.6" 1712 | jest-resolve "^27.0.6" 1713 | jest-snapshot "^27.0.6" 1714 | jest-util "^27.0.6" 1715 | jest-validate "^27.0.6" 1716 | slash "^3.0.0" 1717 | strip-bom "^4.0.0" 1718 | yargs "^16.0.3" 1719 | 1720 | jest-serializer@^27.0.6: 1721 | version "27.0.6" 1722 | resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1" 1723 | integrity sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA== 1724 | dependencies: 1725 | "@types/node" "*" 1726 | graceful-fs "^4.2.4" 1727 | 1728 | jest-snapshot@^27.0.6: 1729 | version "27.0.6" 1730 | resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.0.6.tgz#f4e6b208bd2e92e888344d78f0f650bcff05a4bf" 1731 | integrity sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A== 1732 | dependencies: 1733 | "@babel/core" "^7.7.2" 1734 | "@babel/generator" "^7.7.2" 1735 | "@babel/parser" "^7.7.2" 1736 | "@babel/plugin-syntax-typescript" "^7.7.2" 1737 | "@babel/traverse" "^7.7.2" 1738 | "@babel/types" "^7.0.0" 1739 | "@jest/transform" "^27.0.6" 1740 | "@jest/types" "^27.0.6" 1741 | "@types/babel__traverse" "^7.0.4" 1742 | "@types/prettier" "^2.1.5" 1743 | babel-preset-current-node-syntax "^1.0.0" 1744 | chalk "^4.0.0" 1745 | expect "^27.0.6" 1746 | graceful-fs "^4.2.4" 1747 | jest-diff "^27.0.6" 1748 | jest-get-type "^27.0.6" 1749 | jest-haste-map "^27.0.6" 1750 | jest-matcher-utils "^27.0.6" 1751 | jest-message-util "^27.0.6" 1752 | jest-resolve "^27.0.6" 1753 | jest-util "^27.0.6" 1754 | natural-compare "^1.4.0" 1755 | pretty-format "^27.0.6" 1756 | semver "^7.3.2" 1757 | 1758 | jest-util@^27.0.0, jest-util@^27.0.6: 1759 | version "27.0.6" 1760 | resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.0.6.tgz#e8e04eec159de2f4d5f57f795df9cdc091e50297" 1761 | integrity sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ== 1762 | dependencies: 1763 | "@jest/types" "^27.0.6" 1764 | "@types/node" "*" 1765 | chalk "^4.0.0" 1766 | graceful-fs "^4.2.4" 1767 | is-ci "^3.0.0" 1768 | picomatch "^2.2.3" 1769 | 1770 | jest-validate@^27.0.6: 1771 | version "27.0.6" 1772 | resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.0.6.tgz#930a527c7a951927df269f43b2dc23262457e2a6" 1773 | integrity sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA== 1774 | dependencies: 1775 | "@jest/types" "^27.0.6" 1776 | camelcase "^6.2.0" 1777 | chalk "^4.0.0" 1778 | jest-get-type "^27.0.6" 1779 | leven "^3.1.0" 1780 | pretty-format "^27.0.6" 1781 | 1782 | jest-watcher@^27.0.6: 1783 | version "27.0.6" 1784 | resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.0.6.tgz#89526f7f9edf1eac4e4be989bcb6dec6b8878d9c" 1785 | integrity sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ== 1786 | dependencies: 1787 | "@jest/test-result" "^27.0.6" 1788 | "@jest/types" "^27.0.6" 1789 | "@types/node" "*" 1790 | ansi-escapes "^4.2.1" 1791 | chalk "^4.0.0" 1792 | jest-util "^27.0.6" 1793 | string-length "^4.0.1" 1794 | 1795 | jest-worker@^27.0.6: 1796 | version "27.0.6" 1797 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" 1798 | integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== 1799 | dependencies: 1800 | "@types/node" "*" 1801 | merge-stream "^2.0.0" 1802 | supports-color "^8.0.0" 1803 | 1804 | jest@^27.0.6: 1805 | version "27.0.6" 1806 | resolved "https://registry.yarnpkg.com/jest/-/jest-27.0.6.tgz#10517b2a628f0409087fbf473db44777d7a04505" 1807 | integrity sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA== 1808 | dependencies: 1809 | "@jest/core" "^27.0.6" 1810 | import-local "^3.0.2" 1811 | jest-cli "^27.0.6" 1812 | 1813 | js-tokens@^4.0.0: 1814 | version "4.0.0" 1815 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1816 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1817 | 1818 | js-yaml@^3.13.1: 1819 | version "3.14.1" 1820 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 1821 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 1822 | dependencies: 1823 | argparse "^1.0.7" 1824 | esprima "^4.0.0" 1825 | 1826 | jsdom@^16.6.0: 1827 | version "16.7.0" 1828 | resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" 1829 | integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== 1830 | dependencies: 1831 | abab "^2.0.5" 1832 | acorn "^8.2.4" 1833 | acorn-globals "^6.0.0" 1834 | cssom "^0.4.4" 1835 | cssstyle "^2.3.0" 1836 | data-urls "^2.0.0" 1837 | decimal.js "^10.2.1" 1838 | domexception "^2.0.1" 1839 | escodegen "^2.0.0" 1840 | form-data "^3.0.0" 1841 | html-encoding-sniffer "^2.0.1" 1842 | http-proxy-agent "^4.0.1" 1843 | https-proxy-agent "^5.0.0" 1844 | is-potential-custom-element-name "^1.0.1" 1845 | nwsapi "^2.2.0" 1846 | parse5 "6.0.1" 1847 | saxes "^5.0.1" 1848 | symbol-tree "^3.2.4" 1849 | tough-cookie "^4.0.0" 1850 | w3c-hr-time "^1.0.2" 1851 | w3c-xmlserializer "^2.0.0" 1852 | webidl-conversions "^6.1.0" 1853 | whatwg-encoding "^1.0.5" 1854 | whatwg-mimetype "^2.3.0" 1855 | whatwg-url "^8.5.0" 1856 | ws "^7.4.6" 1857 | xml-name-validator "^3.0.0" 1858 | 1859 | jsesc@^2.5.1: 1860 | version "2.5.2" 1861 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1862 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1863 | 1864 | json5@2.x, json5@^2.1.2: 1865 | version "2.2.0" 1866 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" 1867 | integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== 1868 | dependencies: 1869 | minimist "^1.2.5" 1870 | 1871 | kleur@^3.0.3: 1872 | version "3.0.3" 1873 | resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" 1874 | integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== 1875 | 1876 | leven@^3.1.0: 1877 | version "3.1.0" 1878 | resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" 1879 | integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== 1880 | 1881 | levn@~0.3.0: 1882 | version "0.3.0" 1883 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1884 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 1885 | dependencies: 1886 | prelude-ls "~1.1.2" 1887 | type-check "~0.3.2" 1888 | 1889 | locate-path@^5.0.0: 1890 | version "5.0.0" 1891 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 1892 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 1893 | dependencies: 1894 | p-locate "^4.1.0" 1895 | 1896 | lodash@4.x, lodash@^4.7.0: 1897 | version "4.17.21" 1898 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1899 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1900 | 1901 | lru-cache@^6.0.0: 1902 | version "6.0.0" 1903 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1904 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1905 | dependencies: 1906 | yallist "^4.0.0" 1907 | 1908 | make-dir@^3.0.0: 1909 | version "3.1.0" 1910 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 1911 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 1912 | dependencies: 1913 | semver "^6.0.0" 1914 | 1915 | make-error@1.x, make-error@^1.1.1: 1916 | version "1.3.6" 1917 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 1918 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== 1919 | 1920 | makeerror@1.0.x: 1921 | version "1.0.11" 1922 | resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" 1923 | integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= 1924 | dependencies: 1925 | tmpl "1.0.x" 1926 | 1927 | merge-stream@^2.0.0: 1928 | version "2.0.0" 1929 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 1930 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 1931 | 1932 | micromatch@^4.0.4: 1933 | version "4.0.4" 1934 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 1935 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== 1936 | dependencies: 1937 | braces "^3.0.1" 1938 | picomatch "^2.2.3" 1939 | 1940 | mime-db@1.49.0: 1941 | version "1.49.0" 1942 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" 1943 | integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== 1944 | 1945 | mime-types@^2.1.12: 1946 | version "2.1.32" 1947 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" 1948 | integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== 1949 | dependencies: 1950 | mime-db "1.49.0" 1951 | 1952 | mimic-fn@^2.1.0: 1953 | version "2.1.0" 1954 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1955 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 1956 | 1957 | minimatch@^3.0.4: 1958 | version "3.0.4" 1959 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1960 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1961 | dependencies: 1962 | brace-expansion "^1.1.7" 1963 | 1964 | minimist@^1.2.5: 1965 | version "1.2.5" 1966 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1967 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1968 | 1969 | ms@2.1.2: 1970 | version "2.1.2" 1971 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1972 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1973 | 1974 | natural-compare@^1.4.0: 1975 | version "1.4.0" 1976 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1977 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1978 | 1979 | node-int64@^0.4.0: 1980 | version "0.4.0" 1981 | resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" 1982 | integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= 1983 | 1984 | node-modules-regexp@^1.0.0: 1985 | version "1.0.0" 1986 | resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" 1987 | integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= 1988 | 1989 | node-releases@^1.1.73: 1990 | version "1.1.74" 1991 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.74.tgz#e5866488080ebaa70a93b91144ccde06f3c3463e" 1992 | integrity sha512-caJBVempXZPepZoZAPCWRTNxYQ+xtG/KAi4ozTA5A+nJ7IU+kLQCbqaUjb5Rwy14M9upBWiQ4NutcmW04LJSRw== 1993 | 1994 | normalize-path@^3.0.0: 1995 | version "3.0.0" 1996 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1997 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1998 | 1999 | npm-run-path@^4.0.1: 2000 | version "4.0.1" 2001 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" 2002 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 2003 | dependencies: 2004 | path-key "^3.0.0" 2005 | 2006 | nwsapi@^2.2.0: 2007 | version "2.2.0" 2008 | resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" 2009 | integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== 2010 | 2011 | once@^1.3.0: 2012 | version "1.4.0" 2013 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2014 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 2015 | dependencies: 2016 | wrappy "1" 2017 | 2018 | onetime@^5.1.2: 2019 | version "5.1.2" 2020 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 2021 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 2022 | dependencies: 2023 | mimic-fn "^2.1.0" 2024 | 2025 | optionator@^0.8.1: 2026 | version "0.8.3" 2027 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" 2028 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== 2029 | dependencies: 2030 | deep-is "~0.1.3" 2031 | fast-levenshtein "~2.0.6" 2032 | levn "~0.3.0" 2033 | prelude-ls "~1.1.2" 2034 | type-check "~0.3.2" 2035 | word-wrap "~1.2.3" 2036 | 2037 | p-each-series@^2.1.0: 2038 | version "2.2.0" 2039 | resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" 2040 | integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== 2041 | 2042 | p-limit@^2.2.0: 2043 | version "2.3.0" 2044 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 2045 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 2046 | dependencies: 2047 | p-try "^2.0.0" 2048 | 2049 | p-locate@^4.1.0: 2050 | version "4.1.0" 2051 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 2052 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 2053 | dependencies: 2054 | p-limit "^2.2.0" 2055 | 2056 | p-try@^2.0.0: 2057 | version "2.2.0" 2058 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 2059 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 2060 | 2061 | parse5@6.0.1: 2062 | version "6.0.1" 2063 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" 2064 | integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== 2065 | 2066 | path-exists@^4.0.0: 2067 | version "4.0.0" 2068 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 2069 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 2070 | 2071 | path-is-absolute@^1.0.0: 2072 | version "1.0.1" 2073 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2074 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 2075 | 2076 | path-key@^3.0.0, path-key@^3.1.0: 2077 | version "3.1.1" 2078 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 2079 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 2080 | 2081 | path-parse@^1.0.6: 2082 | version "1.0.7" 2083 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 2084 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 2085 | 2086 | picomatch@^2.0.4, picomatch@^2.2.3: 2087 | version "2.3.0" 2088 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 2089 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 2090 | 2091 | pirates@^4.0.1: 2092 | version "4.0.1" 2093 | resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" 2094 | integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== 2095 | dependencies: 2096 | node-modules-regexp "^1.0.0" 2097 | 2098 | pkg-dir@^4.2.0: 2099 | version "4.2.0" 2100 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 2101 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 2102 | dependencies: 2103 | find-up "^4.0.0" 2104 | 2105 | prelude-ls@~1.1.2: 2106 | version "1.1.2" 2107 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 2108 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 2109 | 2110 | prettier@^2.3.2: 2111 | version "2.3.2" 2112 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" 2113 | integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== 2114 | 2115 | pretty-format@^27.0.0, pretty-format@^27.0.6: 2116 | version "27.0.6" 2117 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.0.6.tgz#ab770c47b2c6f893a21aefc57b75da63ef49a11f" 2118 | integrity sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ== 2119 | dependencies: 2120 | "@jest/types" "^27.0.6" 2121 | ansi-regex "^5.0.0" 2122 | ansi-styles "^5.0.0" 2123 | react-is "^17.0.1" 2124 | 2125 | prompts@^2.0.1: 2126 | version "2.4.1" 2127 | resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" 2128 | integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== 2129 | dependencies: 2130 | kleur "^3.0.3" 2131 | sisteransi "^1.0.5" 2132 | 2133 | psl@^1.1.33: 2134 | version "1.8.0" 2135 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" 2136 | integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== 2137 | 2138 | punycode@^2.1.1: 2139 | version "2.1.1" 2140 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 2141 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 2142 | 2143 | react-is@^17.0.1: 2144 | version "17.0.2" 2145 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" 2146 | integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== 2147 | 2148 | require-directory@^2.1.1: 2149 | version "2.1.1" 2150 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2151 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 2152 | 2153 | resolve-cwd@^3.0.0: 2154 | version "3.0.0" 2155 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" 2156 | integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== 2157 | dependencies: 2158 | resolve-from "^5.0.0" 2159 | 2160 | resolve-from@^5.0.0: 2161 | version "5.0.0" 2162 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" 2163 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 2164 | 2165 | resolve@^1.20.0: 2166 | version "1.20.0" 2167 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 2168 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 2169 | dependencies: 2170 | is-core-module "^2.2.0" 2171 | path-parse "^1.0.6" 2172 | 2173 | rimraf@^3.0.0: 2174 | version "3.0.2" 2175 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 2176 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 2177 | dependencies: 2178 | glob "^7.1.3" 2179 | 2180 | safe-buffer@~5.1.1: 2181 | version "5.1.2" 2182 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2183 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2184 | 2185 | "safer-buffer@>= 2.1.2 < 3": 2186 | version "2.1.2" 2187 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2188 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 2189 | 2190 | saxes@^5.0.1: 2191 | version "5.0.1" 2192 | resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" 2193 | integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== 2194 | dependencies: 2195 | xmlchars "^2.2.0" 2196 | 2197 | semver@7.x, semver@^7.3.2: 2198 | version "7.3.5" 2199 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 2200 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 2201 | dependencies: 2202 | lru-cache "^6.0.0" 2203 | 2204 | semver@^6.0.0, semver@^6.3.0: 2205 | version "6.3.0" 2206 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 2207 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 2208 | 2209 | shebang-command@^2.0.0: 2210 | version "2.0.0" 2211 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 2212 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 2213 | dependencies: 2214 | shebang-regex "^3.0.0" 2215 | 2216 | shebang-regex@^3.0.0: 2217 | version "3.0.0" 2218 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 2219 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 2220 | 2221 | signal-exit@^3.0.2, signal-exit@^3.0.3: 2222 | version "3.0.3" 2223 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 2224 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 2225 | 2226 | sisteransi@^1.0.5: 2227 | version "1.0.5" 2228 | resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" 2229 | integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== 2230 | 2231 | slash@^3.0.0: 2232 | version "3.0.0" 2233 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 2234 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 2235 | 2236 | source-map-support@^0.5.17, source-map-support@^0.5.6: 2237 | version "0.5.19" 2238 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 2239 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 2240 | dependencies: 2241 | buffer-from "^1.0.0" 2242 | source-map "^0.6.0" 2243 | 2244 | source-map@^0.5.0: 2245 | version "0.5.7" 2246 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 2247 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 2248 | 2249 | source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: 2250 | version "0.6.1" 2251 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2252 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 2253 | 2254 | source-map@^0.7.3: 2255 | version "0.7.3" 2256 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" 2257 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 2258 | 2259 | sprintf-js@~1.0.2: 2260 | version "1.0.3" 2261 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2262 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 2263 | 2264 | stack-utils@^2.0.3: 2265 | version "2.0.3" 2266 | resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" 2267 | integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== 2268 | dependencies: 2269 | escape-string-regexp "^2.0.0" 2270 | 2271 | string-length@^4.0.1: 2272 | version "4.0.2" 2273 | resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" 2274 | integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== 2275 | dependencies: 2276 | char-regex "^1.0.2" 2277 | strip-ansi "^6.0.0" 2278 | 2279 | string-width@^4.1.0, string-width@^4.2.0: 2280 | version "4.2.2" 2281 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" 2282 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== 2283 | dependencies: 2284 | emoji-regex "^8.0.0" 2285 | is-fullwidth-code-point "^3.0.0" 2286 | strip-ansi "^6.0.0" 2287 | 2288 | strip-ansi@^6.0.0: 2289 | version "6.0.0" 2290 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 2291 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 2292 | dependencies: 2293 | ansi-regex "^5.0.0" 2294 | 2295 | strip-bom@^4.0.0: 2296 | version "4.0.0" 2297 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" 2298 | integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== 2299 | 2300 | strip-final-newline@^2.0.0: 2301 | version "2.0.0" 2302 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" 2303 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 2304 | 2305 | supports-color@^5.3.0: 2306 | version "5.5.0" 2307 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 2308 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 2309 | dependencies: 2310 | has-flag "^3.0.0" 2311 | 2312 | supports-color@^7.0.0, supports-color@^7.1.0: 2313 | version "7.2.0" 2314 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 2315 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 2316 | dependencies: 2317 | has-flag "^4.0.0" 2318 | 2319 | supports-color@^8.0.0: 2320 | version "8.1.1" 2321 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 2322 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 2323 | dependencies: 2324 | has-flag "^4.0.0" 2325 | 2326 | supports-hyperlinks@^2.0.0: 2327 | version "2.2.0" 2328 | resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" 2329 | integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== 2330 | dependencies: 2331 | has-flag "^4.0.0" 2332 | supports-color "^7.0.0" 2333 | 2334 | symbol-tree@^3.2.4: 2335 | version "3.2.4" 2336 | resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" 2337 | integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== 2338 | 2339 | terminal-link@^2.0.0: 2340 | version "2.1.1" 2341 | resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" 2342 | integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== 2343 | dependencies: 2344 | ansi-escapes "^4.2.1" 2345 | supports-hyperlinks "^2.0.0" 2346 | 2347 | test-exclude@^6.0.0: 2348 | version "6.0.0" 2349 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" 2350 | integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== 2351 | dependencies: 2352 | "@istanbuljs/schema" "^0.1.2" 2353 | glob "^7.1.4" 2354 | minimatch "^3.0.4" 2355 | 2356 | throat@^6.0.1: 2357 | version "6.0.1" 2358 | resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" 2359 | integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== 2360 | 2361 | tmpl@1.0.x: 2362 | version "1.0.4" 2363 | resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" 2364 | integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= 2365 | 2366 | to-fast-properties@^2.0.0: 2367 | version "2.0.0" 2368 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 2369 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 2370 | 2371 | to-regex-range@^5.0.1: 2372 | version "5.0.1" 2373 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2374 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 2375 | dependencies: 2376 | is-number "^7.0.0" 2377 | 2378 | tough-cookie@^4.0.0: 2379 | version "4.0.0" 2380 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" 2381 | integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== 2382 | dependencies: 2383 | psl "^1.1.33" 2384 | punycode "^2.1.1" 2385 | universalify "^0.1.2" 2386 | 2387 | tr46@^2.1.0: 2388 | version "2.1.0" 2389 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" 2390 | integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== 2391 | dependencies: 2392 | punycode "^2.1.1" 2393 | 2394 | ts-jest@^27.0.5: 2395 | version "27.0.5" 2396 | resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.5.tgz#0b0604e2271167ec43c12a69770f0bb65ad1b750" 2397 | integrity sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w== 2398 | dependencies: 2399 | bs-logger "0.x" 2400 | fast-json-stable-stringify "2.x" 2401 | jest-util "^27.0.0" 2402 | json5 "2.x" 2403 | lodash "4.x" 2404 | make-error "1.x" 2405 | semver "7.x" 2406 | yargs-parser "20.x" 2407 | 2408 | ts-node@^10.1.0: 2409 | version "10.1.0" 2410 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.1.0.tgz#e656d8ad3b61106938a867f69c39a8ba6efc966e" 2411 | integrity sha512-6szn3+J9WyG2hE+5W8e0ruZrzyk1uFLYye6IGMBadnOzDh8aP7t8CbFpsfCiEx2+wMixAhjFt7lOZC4+l+WbEA== 2412 | dependencies: 2413 | "@tsconfig/node10" "^1.0.7" 2414 | "@tsconfig/node12" "^1.0.7" 2415 | "@tsconfig/node14" "^1.0.0" 2416 | "@tsconfig/node16" "^1.0.1" 2417 | arg "^4.1.0" 2418 | create-require "^1.1.0" 2419 | diff "^4.0.1" 2420 | make-error "^1.1.1" 2421 | source-map-support "^0.5.17" 2422 | yn "3.1.1" 2423 | 2424 | type-check@~0.3.2: 2425 | version "0.3.2" 2426 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 2427 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 2428 | dependencies: 2429 | prelude-ls "~1.1.2" 2430 | 2431 | type-detect@4.0.8: 2432 | version "4.0.8" 2433 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" 2434 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 2435 | 2436 | type-fest@^0.21.3: 2437 | version "0.21.3" 2438 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" 2439 | integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== 2440 | 2441 | typedarray-to-buffer@^3.1.5: 2442 | version "3.1.5" 2443 | resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" 2444 | integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== 2445 | dependencies: 2446 | is-typedarray "^1.0.0" 2447 | 2448 | typescript@^4.3.5: 2449 | version "4.3.5" 2450 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" 2451 | integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== 2452 | 2453 | universalify@^0.1.2: 2454 | version "0.1.2" 2455 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 2456 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 2457 | 2458 | v8-to-istanbul@^8.0.0: 2459 | version "8.0.0" 2460 | resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" 2461 | integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== 2462 | dependencies: 2463 | "@types/istanbul-lib-coverage" "^2.0.1" 2464 | convert-source-map "^1.6.0" 2465 | source-map "^0.7.3" 2466 | 2467 | w3c-hr-time@^1.0.2: 2468 | version "1.0.2" 2469 | resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" 2470 | integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== 2471 | dependencies: 2472 | browser-process-hrtime "^1.0.0" 2473 | 2474 | w3c-xmlserializer@^2.0.0: 2475 | version "2.0.0" 2476 | resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" 2477 | integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== 2478 | dependencies: 2479 | xml-name-validator "^3.0.0" 2480 | 2481 | walker@^1.0.7: 2482 | version "1.0.7" 2483 | resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" 2484 | integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= 2485 | dependencies: 2486 | makeerror "1.0.x" 2487 | 2488 | webidl-conversions@^5.0.0: 2489 | version "5.0.0" 2490 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" 2491 | integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== 2492 | 2493 | webidl-conversions@^6.1.0: 2494 | version "6.1.0" 2495 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" 2496 | integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== 2497 | 2498 | whatwg-encoding@^1.0.5: 2499 | version "1.0.5" 2500 | resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" 2501 | integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== 2502 | dependencies: 2503 | iconv-lite "0.4.24" 2504 | 2505 | whatwg-mimetype@^2.3.0: 2506 | version "2.3.0" 2507 | resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" 2508 | integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== 2509 | 2510 | whatwg-url@^8.0.0, whatwg-url@^8.5.0: 2511 | version "8.7.0" 2512 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" 2513 | integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== 2514 | dependencies: 2515 | lodash "^4.7.0" 2516 | tr46 "^2.1.0" 2517 | webidl-conversions "^6.1.0" 2518 | 2519 | which@^2.0.1: 2520 | version "2.0.2" 2521 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2522 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2523 | dependencies: 2524 | isexe "^2.0.0" 2525 | 2526 | word-wrap@~1.2.3: 2527 | version "1.2.3" 2528 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 2529 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 2530 | 2531 | wrap-ansi@^7.0.0: 2532 | version "7.0.0" 2533 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 2534 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 2535 | dependencies: 2536 | ansi-styles "^4.0.0" 2537 | string-width "^4.1.0" 2538 | strip-ansi "^6.0.0" 2539 | 2540 | wrappy@1: 2541 | version "1.0.2" 2542 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2543 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 2544 | 2545 | write-file-atomic@^3.0.0: 2546 | version "3.0.3" 2547 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" 2548 | integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== 2549 | dependencies: 2550 | imurmurhash "^0.1.4" 2551 | is-typedarray "^1.0.0" 2552 | signal-exit "^3.0.2" 2553 | typedarray-to-buffer "^3.1.5" 2554 | 2555 | ws@^7.4.6: 2556 | version "7.5.3" 2557 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" 2558 | integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== 2559 | 2560 | xml-name-validator@^3.0.0: 2561 | version "3.0.0" 2562 | resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" 2563 | integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== 2564 | 2565 | xmlchars@^2.2.0: 2566 | version "2.2.0" 2567 | resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" 2568 | integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== 2569 | 2570 | y18n@^5.0.5: 2571 | version "5.0.8" 2572 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" 2573 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 2574 | 2575 | yallist@^4.0.0: 2576 | version "4.0.0" 2577 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 2578 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 2579 | 2580 | yargs-parser@20.x, yargs-parser@^20.2.2: 2581 | version "20.2.9" 2582 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" 2583 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 2584 | 2585 | yargs@^16.0.3: 2586 | version "16.2.0" 2587 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 2588 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 2589 | dependencies: 2590 | cliui "^7.0.2" 2591 | escalade "^3.1.1" 2592 | get-caller-file "^2.0.5" 2593 | require-directory "^2.1.1" 2594 | string-width "^4.2.0" 2595 | y18n "^5.0.5" 2596 | yargs-parser "^20.2.2" 2597 | 2598 | yn@3.1.1: 2599 | version "3.1.1" 2600 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 2601 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== 2602 | --------------------------------------------------------------------------------