├── .editorconfig ├── .eslintrc.js ├── .github └── workflows │ └── test.yml ├── .gitignore ├── LICENSE ├── README.md ├── package.json ├── src └── index.ts ├── test └── test.js ├── tsconfig.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = tab 5 | indent_size = 4 6 | tab_width = 4 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [{*.json,*.json.example,*.gyp,*.yml,*.yaml,*.workflow}] 13 | indent_style = space 14 | indent_size = 2 15 | 16 | [{*.py,*.asm}] 17 | indent_style = space 18 | 19 | [*.py] 20 | indent_size = 4 21 | 22 | [*.asm] 23 | indent_size = 8 24 | 25 | [*.md] 26 | trim_trailing_whitespace = false 27 | 28 | # Ideal settings - some plugins might support these. 29 | [*.js] 30 | quote_type = single 31 | 32 | [{*.c,*.cc,*.h,*.hh,*.cpp,*.hpp,*.m,*.mm,*.mpp,*.js,*.java,*.go,*.rs,*.php,*.ng,*.jsx,*.ts,*.d,*.cs,*.swift}] 33 | curly_bracket_next_line = false 34 | spaces_around_operators = true 35 | spaces_around_brackets = outside 36 | # close enough to 1TB 37 | indent_brace_style = K&R 38 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'extends': [ 3 | 'airbnb', 4 | 'prettier' 5 | ], 6 | 'parser': '@typescript-eslint/parser', 7 | 'parserOptions': { 8 | 'ecmaVersion': 2018, 9 | 'sourceType': 'module', 10 | 'modules': true 11 | }, 12 | 'plugins': [ 13 | '@typescript-eslint' 14 | ], 15 | 'settings': { 16 | 'import/resolver': { 17 | 'typescript': { 18 | } 19 | } 20 | }, 21 | 'rules': { 22 | 'quotes': [ 23 | 2, 24 | 'single', 25 | { 26 | 'allowTemplateLiterals': true 27 | } 28 | ], 29 | 'class-methods-use-this': 0, 30 | 'consistent-return': 0, 31 | 'func-names': 0, 32 | 'global-require': 0, 33 | 'guard-for-in': 0, 34 | 'import/no-duplicates': 0, 35 | 'import/no-dynamic-require': 0, 36 | 'import/no-extraneous-dependencies': 0, 37 | 'import/prefer-default-export': 0, 38 | 'lines-between-class-members': 0, 39 | 'no-await-in-loop': 0, 40 | 'no-bitwise': 0, 41 | 'no-console': 0, 42 | 'no-continue': 0, 43 | 'no-control-regex': 0, 44 | 'no-empty': 0, 45 | 'no-loop-func': 0, 46 | 'no-nested-ternary': 0, 47 | 'no-param-reassign': 0, 48 | 'no-plusplus': 0, 49 | 'no-restricted-globals': 0, 50 | 'no-restricted-syntax': 0, 51 | 'no-shadow': 0, 52 | 'no-underscore-dangle': 0, 53 | 'no-use-before-define': 0, 54 | 'prefer-const': 0, 55 | 'prefer-destructuring': 0, 56 | 'camelcase': 0, 57 | 'no-unused-vars': 0, // in favor of '@typescript-eslint/no-unused-vars' 58 | // 'indent': 0 // in favor of '@typescript-eslint/indent' 59 | '@typescript-eslint/no-unused-vars': 'warn', 60 | // '@typescript-eslint/indent': ['error', 2] // this might conflict with a lot ongoing changes 61 | '@typescript-eslint/no-array-constructor': 'error', 62 | '@typescript-eslint/adjacent-overload-signatures': 'error', 63 | '@typescript-eslint/class-name-casing': 'error', 64 | '@typescript-eslint/interface-name-prefix': 'error', 65 | '@typescript-eslint/no-empty-interface': 'error', 66 | '@typescript-eslint/no-inferrable-types': 'error', 67 | '@typescript-eslint/no-misused-new': 'error', 68 | // '@typescript-eslint/no-namespace': 'error', 69 | '@typescript-eslint/no-non-null-assertion': 'error', 70 | '@typescript-eslint/no-parameter-properties': 'error', 71 | '@typescript-eslint/no-triple-slash-reference': 'error', 72 | '@typescript-eslint/prefer-namespace-keyword': 'error', 73 | '@typescript-eslint/type-annotation-spacing': 'error', 74 | // '@typescript-eslint/array-type': 'error', 75 | // '@typescript-eslint/ban-types': 'error', 76 | // '@typescript-eslint/explicit-function-return-type': 'warn', 77 | // '@typescript-eslint/explicit-member-accessibility': 'error', 78 | // '@typescript-eslint/member-delimiter-style': 'error', 79 | // '@typescript-eslint/no-angle-bracket-type-assertion': 'error', 80 | // '@typescript-eslint/no-explicit-any': 'warn', 81 | // '@typescript-eslint/no-object-literal-type-assertion': 'error', 82 | // '@typescript-eslint/no-use-before-define': 'error', 83 | // '@typescript-eslint/no-var-requires': 'error', 84 | // '@typescript-eslint/prefer-interface': 'error' 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Node CI 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | name: Test Node.js ${{ matrix.node-version }} on ${{ matrix.os }} 8 | 9 | strategy: 10 | matrix: 11 | os: [ubuntu-latest, macos-latest, windows-latest] 12 | node-version: [6.x, 8.x, 10.x, 12.x] 13 | 14 | runs-on: ${{ matrix.os }} 15 | 16 | steps: 17 | - uses: actions/checkout@v1 18 | 19 | - name: Use Node.js ${{ matrix.node-version }} 20 | uses: actions/setup-node@v1 21 | with: 22 | node-version: ${{ matrix.node-version }} 23 | 24 | - name: Print Node.js Version 25 | run: node --version 26 | 27 | - name: Install Dependencies 28 | run: npm install 29 | env: 30 | CI: true 31 | 32 | - name: Run "build" step 33 | run: npm run build --if-present 34 | env: 35 | CI: true 36 | 37 | - name: Run tests 38 | run: npm test 39 | env: 40 | CI: true 41 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /dist 2 | /node_modules 3 | 4 | # local dev files 5 | /?.js 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Nathan Rajlich <nathan@tootallnate.net> 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | 'Software'), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 18 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 19 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 20 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | pcre-to-regexp 2 | ============== 3 | ### Converts PCRE regexp strings to JavaScript RegExp instances 4 | [![Build Status](https://github.com/TooTallNate/pcre-to-regexp/workflows/Node%20CI/badge.svg)](https://github.com/TooTallNate/pcre-to-regexp/actions?workflow=Node+CI) 5 | 6 | Creates a JavaScript `RegExp` instance from a PCRE regexp string. 7 | Not currently feature-complete, but works enough for my needs. Send 8 | pull requests for additional functionality! 9 | 10 | Works with Node.js and in the browser via a CommonJS bundler like browserify. 11 | 12 | 13 | Installation 14 | ------------ 15 | 16 | ``` bash 17 | $ npm install pcre-to-regexp 18 | ``` 19 | 20 | Example 21 | ------- 22 | 23 | A basic example of a Twitter URL parsing PCRE regexp: 24 | 25 | ``` js 26 | var url = "%^https?:\/\/twitter\\.com(\/\\#\\!)?\/(?P[a-zA-Z0-9_]{1,20})\\\/status(es)?\/(?P\\d+)\/?$%ig"; 27 | 28 | // parse the PCRE regexp into a JS RegExp 29 | var keys = []; 30 | var re = PCRE(url, keys); 31 | 32 | console.log(keys); 33 | // [ , 'username', , 'id' ] 34 | 35 | console.log(re); 36 | // /^https?://twitter\.com(/\#\!)?/([a-zA-Z0-9_]{1,20})\/status(es)?/(\d+)/?$/gi 37 | 38 | var match = re.exec('https://twitter.com/tootallnate/status/481604870626349056'); 39 | console.log(match); 40 | // [ 'https://twitter.com/tootallnate/status/481604870626349056', 41 | // undefined, 42 | // 'tootallnate', 43 | // undefined, 44 | // '481604870626349056', 45 | // index: 0, 46 | // input: 'https://twitter.com/tootallnate/status/481604870626349056' ] 47 | ``` 48 | 49 | Use code like this if you would like to transfer the "named captures" to the 50 | `match` object: 51 | 52 | ``` js 53 | // example of copying the named captures as keys on the `match` object 54 | for (var i = 0; i < keys.length; i++) { 55 | if ('string' === typeof keys[i]) { 56 | match[keys[i]] = match[i + 1]; 57 | } 58 | } 59 | 60 | console.log(match.username); 61 | // 'tootallnate' 62 | 63 | console.log(match.id); 64 | // '481604870626349056' 65 | ``` 66 | 67 | API 68 | --- 69 | 70 | ### PCRE(String pattern[, Array keys]) → RegExp 71 | 72 | Returns a JavaScript RegExp instance from the given PCRE-compatible string. 73 | Flags may be passed in after the final delimiter in the `format` string. 74 | 75 | An empty array may be passsed in as the second argument, which will be 76 | populated with the "named capture group" names as Strings in the Array, 77 | once the RegExp has been returned. 78 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pcre-to-regexp", 3 | "version": "1.1.0", 4 | "description": "Converts PCRE regexp strings to JavaScript RegExp instances", 5 | "main": "dist/index", 6 | "typings": "dist/index", 7 | "files": [ 8 | "dist" 9 | ], 10 | "scripts": { 11 | "build": "tsc", 12 | "test": "mocha --reporter spec", 13 | "test-lint": "eslint src --ext .js,.ts", 14 | "prepublishOnly": "npm run build" 15 | }, 16 | "repository": { 17 | "type": "git", 18 | "url": "git://github.com/TooTallNate/pcre-to-regexp.git" 19 | }, 20 | "keywords": [ 21 | "pcre", 22 | "regexp", 23 | "convert", 24 | "js", 25 | "php", 26 | "preg", 27 | "preg_replace", 28 | "preg_match" 29 | ], 30 | "author": "Nathan Rajlich ", 31 | "license": "MIT", 32 | "bugs": { 33 | "url": "https://github.com/TooTallNate/pcre-to-regexp/issues" 34 | }, 35 | "homepage": "https://github.com/TooTallNate/pcre-to-regexp", 36 | "devDependencies": { 37 | "@typescript-eslint/eslint-plugin": "1.6.0", 38 | "@typescript-eslint/parser": "1.1.0", 39 | "eslint": "5.16.0", 40 | "eslint-config-airbnb": "17.1.0", 41 | "eslint-config-prettier": "4.1.0", 42 | "eslint-import-resolver-typescript": "1.1.1", 43 | "eslint-plugin-import": "2.16.0", 44 | "eslint-plugin-jsx-a11y": "6.2.1", 45 | "eslint-plugin-react": "7.12.4", 46 | "mocha": "^6.2.0", 47 | "typescript": "^3.5.3" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns a JavaScript RegExp instance from the given PCRE-compatible string. 3 | * Flags may be passed in after the final delimiter in the `format` string. 4 | * 5 | * An empty array may be passsed in as the second argument, which will be 6 | * populated with the "named capture group" names as Strings in the Array, 7 | * once the RegExp has been returned. 8 | * 9 | * @param {String} pattern - PCRE regexp string to compile to a JS RegExp 10 | * @param {Array} [namedCaptures] - optional empty array, which will be populated with the named captures extracted from the PCRE regexp 11 | * @return {RegExp} returns a JavaScript RegExp instance from the given `pattern` and optionally `flags` 12 | * @public 13 | */ 14 | function createPCRE( 15 | pattern: string, 16 | namedCaptures: string[] = [] 17 | ): createPCRE.PCRE { 18 | pattern = String(pattern || '').trim(); 19 | let originalPattern = pattern; 20 | let delim; 21 | let flags = ''; 22 | 23 | // A delimiter can be any non-alphanumeric, non-backslash, 24 | // non-whitespace character. 25 | let hasDelim = /^[^a-zA-Z\\\s]/.test(pattern); 26 | if (hasDelim) { 27 | delim = pattern[0]; 28 | let lastDelimIndex = pattern.lastIndexOf(delim); 29 | 30 | // pull out the flags in the pattern 31 | flags += pattern.substring(lastDelimIndex + 1); 32 | 33 | // strip the delims from the pattern 34 | pattern = pattern.substring(1, lastDelimIndex); 35 | } 36 | 37 | // populate namedCaptures array and removed named captures from the `pattern` 38 | let numGroups = 0; 39 | pattern = replaceCaptureGroups(pattern, (group: string) => { 40 | if (/^\(\?[P<']/.test(group)) { 41 | // PCRE-style "named capture" 42 | // It is possible to name a subpattern using the syntax (?Ppattern). 43 | // This subpattern will then be indexed in the matches array by its normal 44 | // numeric position and also by name. PHP 5.2.2 introduced two alternative 45 | // syntaxes (?pattern) and (?'name'pattern). 46 | let match = /^\(\?P?[<']([^>']+)[>']/.exec(group); 47 | if (!match) { 48 | throw new Error( 49 | `Failed to extract named captures from ${JSON.stringify( 50 | group 51 | )}` 52 | ); 53 | } 54 | let capture = group.substring(match[0].length, group.length - 1); 55 | if (namedCaptures) { 56 | namedCaptures[numGroups] = match[1]; 57 | } 58 | numGroups++; 59 | return `(${capture})`; 60 | } 61 | 62 | if (group.substring(0, 3) === '(?:') { 63 | // non-capture group, leave untouched 64 | return group; 65 | } 66 | 67 | // regular capture, leave untouched 68 | numGroups++; 69 | return group; 70 | }); 71 | 72 | // replace "character classes" with their raw RegExp equivalent 73 | pattern = pattern.replace( 74 | /\[:([^:]+):\]/g, 75 | (characterClass: string, name: string) => { 76 | return createPCRE.characterClasses[name] || characterClass; 77 | } 78 | ); 79 | 80 | // TODO: convert PCRE-only flags to JS 81 | // TODO: handle lots more stuff.... 82 | // http://www.php.net/manual/en/reference.pcre.pattern.syntax.php 83 | 84 | return new createPCRE.PCRE( 85 | pattern, 86 | flags, 87 | namedCaptures, 88 | originalPattern, 89 | flags, 90 | delim 91 | ); 92 | } 93 | 94 | /** 95 | * Invokes `fn` for each "capture group" encountered in the PCRE `pattern`, 96 | * and inserts the returned value into the pattern instead of the capture 97 | * group itself. 98 | * 99 | * @private 100 | */ 101 | function replaceCaptureGroups( 102 | pattern: string, 103 | fn: (group: string) => string 104 | ): string { 105 | let start = 0; 106 | let depth = 0; 107 | let escaped = false; 108 | 109 | for (let i = 0; i < pattern.length; i++) { 110 | let cur = pattern[i]; 111 | if (escaped) { 112 | // skip this letter, it's been escaped 113 | escaped = false; 114 | continue; 115 | } 116 | switch (cur) { 117 | case '(': 118 | // we're only interested in groups when the depth reaches 0 119 | if (depth === 0) { 120 | start = i; 121 | } 122 | depth++; 123 | break; 124 | case ')': 125 | if (depth > 0) { 126 | depth--; 127 | 128 | // we're only interested in groups when the depth reaches 0 129 | if (depth === 0) { 130 | let end = i + 1; 131 | let l = start === 0 ? '' : pattern.substring(0, start); 132 | let r = pattern.substring(end); 133 | let v = String(fn(pattern.substring(start, end))); 134 | pattern = l + v + r; 135 | i = start; 136 | } 137 | } 138 | break; 139 | case '\\': 140 | escaped = true; 141 | break; 142 | default: 143 | // skip 144 | break; 145 | } 146 | } 147 | return pattern; 148 | } 149 | 150 | // eslint-disable-next-line no-redeclare 151 | namespace createPCRE { 152 | export interface CharacterClasses { 153 | [name: string]: string; 154 | } 155 | 156 | export class PCRE extends RegExp { 157 | namedCaptures: string[]; 158 | pcrePattern: string; 159 | pcreFlags: string; 160 | delimiter?: string; 161 | 162 | constructor( 163 | pattern: string, 164 | flags: string, 165 | namedCaptures: string[], 166 | pcrePattern: string, 167 | pcreFlags: string, 168 | delimiter?: string 169 | ) { 170 | super(pattern, flags); 171 | this.namedCaptures = namedCaptures; 172 | this.pcrePattern = pcrePattern; 173 | this.pcreFlags = pcreFlags; 174 | this.delimiter = delimiter; 175 | } 176 | } 177 | 178 | /** 179 | * Mapping of "character class" names to their JS RegExp equivalent. 180 | * So that /[:digit:]/ gets converted into /\d/, etc. 181 | * 182 | * See: http://en.wikipedia.org/wiki/Regular_expression#Character_classes 183 | */ 184 | export const characterClasses: CharacterClasses = { 185 | alnum: '[A-Za-z0-9]', 186 | word: '[A-Za-z0-9_]', 187 | alpha: '[A-Za-z]', 188 | blank: '[ \\t]', 189 | cntrl: '[\\x00-\\x1F\\x7F]', 190 | digit: '\\d', 191 | graph: '[\\x21-\\x7E]', 192 | lower: '[a-z]', 193 | print: '[\\x20-\\x7E]', 194 | punct: '[\\]\\[!"#$%&\'()*+,./:;<=>?@\\\\^_`{|}~-]', 195 | space: '\\s', 196 | upper: '[A-Z]', 197 | xdigit: '[A-Fa-f0-9]' 198 | }; 199 | 200 | createPCRE.prototype = createPCRE.PCRE.prototype; 201 | } 202 | 203 | export = createPCRE; 204 | -------------------------------------------------------------------------------- /test/test.js: -------------------------------------------------------------------------------- 1 | var PCRE = require('../'); 2 | var assert = require('assert'); 3 | 4 | describe('PCRE(pattern[, flags])', function() { 5 | it('should export a Function', function() { 6 | assert.strictEqual(typeof PCRE, 'function'); 7 | }); 8 | 9 | it('should return a RegExp instance', function() { 10 | var r = PCRE(); 11 | assert(isRegExp(r)); 12 | }); 13 | 14 | it('should work with `instanceof`', function() { 15 | var r = PCRE(); 16 | assert(r instanceof PCRE); 17 | }); 18 | 19 | describe('given "#https?://speakerdeck.com/.*#i"', function() { 20 | it('should match "https://speakerdeck.com/tootallnate/node-gyp-baynode-meetup-september-6-2012"', function() { 21 | var url = 22 | 'https://speakerdeck.com/tootallnate/node-gyp-baynode-meetup-september-6-2012'; 23 | var re = PCRE('#https?://speakerdeck.com/.*#i'); 24 | assert(re.test(url)); 25 | }); 26 | }); 27 | 28 | describe('given "%^https?://twitter\\.com(/\\#\\!)?/(?P[a-zA-Z0-9_]{1,20})\\/status(es)?/(?P\\d+)/?$%i"', function() { 29 | it('should have [ , "username", , "id" ] for keys', function() { 30 | var keys = []; 31 | var re = PCRE( 32 | '%^https?://twitter\\.com(/\\#\\!)?/(?P[a-zA-Z0-9_]{1,20})\\/status(es)?/(?P\\d+)/?$%i', 33 | keys 34 | ); 35 | var expectedKeys = new Array(4); 36 | expectedKeys[1] = 'username'; 37 | expectedKeys[3] = 'id'; 38 | assert.deepEqual(keys, expectedKeys); 39 | }); 40 | 41 | it('should match "https://twitter.com/tootallnate/status/481604870626349056"', function() { 42 | var re = PCRE( 43 | '%^https?://twitter\\.com(/\\#\\!)?/(?P[a-zA-Z0-9_]{1,20})\\/status(es)?/(?P\\d+)/?$%i' 44 | ); 45 | var match = re.exec( 46 | 'https://twitter.com/tootallnate/status/481604870626349056' 47 | ); 48 | assert(match); 49 | assert.strictEqual(match[2], 'tootallnate'); 50 | assert.strictEqual(match[4], '481604870626349056'); 51 | }); 52 | }); 53 | 54 | // "Character classes" 55 | describe('given "/[:alnum:]/"', function() { 56 | it('should match "1"', function() { 57 | var re = PCRE('/[:alnum:]/'); 58 | assert(re.test('1')); 59 | }); 60 | 61 | it('should match "0"', function() { 62 | var re = PCRE('/[:alnum:]/'); 63 | assert(re.test('0')); 64 | }); 65 | 66 | it('should match "a"', function() { 67 | var re = PCRE('/[:alnum:]/'); 68 | assert(re.test('a')); 69 | }); 70 | 71 | it('should match "Z"', function() { 72 | var re = PCRE('/[:alnum:]/'); 73 | assert(re.test('Z')); 74 | }); 75 | }); 76 | 77 | describe('given "/[:lower:]/"', function() { 78 | it('should match "a"', function() { 79 | var re = PCRE('/[:lower:]/'); 80 | assert(re.test('a')); 81 | }); 82 | 83 | it('should not match "A"', function() { 84 | var re = PCRE('/[:lower:]/'); 85 | assert(!re.test('A')); 86 | }); 87 | 88 | it('should not match "0"', function() { 89 | var re = PCRE('/[:lower:]/'); 90 | assert(!re.test('0')); 91 | }); 92 | }); 93 | 94 | describe('given "/[:digit:]/"', function() { 95 | it('should match "3"', function() { 96 | var re = PCRE('/[:digit:]/'); 97 | assert(re.test('3')); 98 | }); 99 | 100 | it('should not match "G"', function() { 101 | var re = PCRE('/[:digit:]/'); 102 | assert(!re.test('G')); 103 | }); 104 | }); 105 | 106 | describe('given "/[:punct:]/"', function() { 107 | it('should match "]"', function() { 108 | var re = PCRE('/[:punct:]/'); 109 | assert(re.test(']')); 110 | }); 111 | 112 | it('should match "!"', function() { 113 | var re = PCRE('/[:punct:]/'); 114 | assert(re.test('!')); 115 | }); 116 | 117 | it('should match "/"', function() { 118 | var re = PCRE('/[:punct:]/'); 119 | assert(re.test('/')); 120 | }); 121 | 122 | it('should match "\\"', function() { 123 | var re = PCRE('/[:punct:]/'); 124 | assert(re.test('\\')); 125 | }); 126 | 127 | it('should match "^"', function() { 128 | var re = PCRE('/[:punct:]/'); 129 | assert(re.test('^')); 130 | }); 131 | 132 | it('should match "|"', function() { 133 | var re = PCRE('/[:punct:]/'); 134 | assert(re.test('|')); 135 | }); 136 | 137 | it('should match "~"', function() { 138 | var re = PCRE('/[:punct:]/'); 139 | assert(re.test('~')); 140 | }); 141 | 142 | it('should not match " "', function() { 143 | var re = PCRE('/[:punct:]/'); 144 | assert(!re.test(' ')); 145 | }); 146 | 147 | it('should not match "f"', function() { 148 | var re = PCRE('/[:punct:]/'); 149 | assert(!re.test('f')); 150 | }); 151 | }); 152 | 153 | // PHP 5.2.2-style "alternative" named capture stynax using single quotes 154 | describe('given "#(?\'name\'foo)bar#"', function() { 155 | it('should have [ "name" ] for keys', function() { 156 | var keys = []; 157 | var re = PCRE("#(?'name'foo)bar#", keys); 158 | assert.deepEqual(keys, ['name']); 159 | }); 160 | 161 | it('should match "foobar"', function() { 162 | var re = PCRE("#(?'name'foo)bar#"); 163 | var match = re.exec('foobar'); 164 | assert(match); 165 | assert.strictEqual(match[1], 'foo'); 166 | }); 167 | }); 168 | 169 | // PHP 5.2.2-style "alternative" named capture stynax using angle brackets 170 | describe('given "#(?foo)bar#"', function() { 171 | it('should have [ "name" ] for keys', function() { 172 | var keys = []; 173 | var re = PCRE("#(?'name'foo)bar#", keys); 174 | assert.deepEqual(keys, ['name']); 175 | }); 176 | 177 | it('should match "foobar"', function() { 178 | var re = PCRE('#(?foo)bar#'); 179 | var match = re.exec('foobar'); 180 | assert(match); 181 | assert.strictEqual(match[1], 'foo'); 182 | }); 183 | }); 184 | 185 | describe('given "%^/blog/(?[^/]+)$%"', function() { 186 | const input = '%^/blog/(?[^/]+)$%'; 187 | 188 | it('should have [ "uid" ] for keys', function() { 189 | var keys = []; 190 | var re = PCRE(input, keys); 191 | assert.deepEqual(keys, ['uid']); 192 | }); 193 | 194 | it('should match "hiking-woods"', function() { 195 | var re = PCRE(input); 196 | var match = re.exec('/blog/hiking-woods'); 197 | assert(match); 198 | assert.strictEqual(match[1], 'hiking-woods'); 199 | }); 200 | }); 201 | 202 | describe('given "%^/deployments/(?([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9]+)/(?
source|logs)$%"', function() { 203 | const input = 204 | '%^/deployments/(?([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9]+)/(?
source|logs)$%'; 205 | 206 | it('should have [ "host", ,"section" ] for keys', function() { 207 | var keys = []; 208 | var re = PCRE(input, keys); 209 | assert.deepEqual(keys, ['host', , 'section']); 210 | }); 211 | 212 | it('should match "/deployments/sf.n8.io/logs"', function() { 213 | var re = PCRE(input); 214 | var match = re.exec('/deployments/sf.n8.io/logs'); 215 | assert(match); 216 | assert.strictEqual(match[1], 'sf.n8.io'); 217 | assert.strictEqual(match[3], 'logs'); 218 | }); 219 | }); 220 | }); 221 | 222 | function isRegExp(re) { 223 | return ( 224 | typeof re === 'object' && 225 | re !== null && 226 | Object.prototype.toString.call(re) === '[object RegExp]' 227 | ); 228 | } 229 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "module": "CommonJS", 5 | "target": "es2015", 6 | "esModuleInterop": true, 7 | "lib": ["esnext"], 8 | "outDir": "dist", 9 | "sourceMap": true, 10 | "declaration": true 11 | }, 12 | "include": [ 13 | "src/**/*", 14 | "test/**/*" 15 | ], 16 | "exclude": [ 17 | "node_modules" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.10.1" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.1.tgz#d5481c5095daa1c57e16e54c6f9198443afb49ff" 8 | integrity sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw== 9 | dependencies: 10 | "@babel/highlight" "^7.10.1" 11 | 12 | "@babel/helper-validator-identifier@^7.10.1": 13 | version "7.10.1" 14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz#5770b0c1a826c4f53f5ede5e153163e0318e94b5" 15 | integrity sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw== 16 | 17 | "@babel/highlight@^7.10.1": 18 | version "7.10.1" 19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.1.tgz#841d098ba613ba1a427a2b383d79e35552c38ae0" 20 | integrity sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg== 21 | dependencies: 22 | "@babel/helper-validator-identifier" "^7.10.1" 23 | chalk "^2.0.0" 24 | js-tokens "^4.0.0" 25 | 26 | "@types/json5@^0.0.29": 27 | version "0.0.29" 28 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" 29 | integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= 30 | 31 | "@typescript-eslint/eslint-plugin@1.6.0": 32 | version "1.6.0" 33 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.6.0.tgz#a5ff3128c692393fb16efa403ec7c8a5593dab0f" 34 | integrity sha512-U224c29E2lo861TQZs6GSmyC0OYeRNg6bE9UVIiFBxN2MlA0nq2dCrgIVyyRbC05UOcrgf2Wk/CF2gGOPQKUSQ== 35 | dependencies: 36 | "@typescript-eslint/parser" "1.6.0" 37 | "@typescript-eslint/typescript-estree" "1.6.0" 38 | requireindex "^1.2.0" 39 | tsutils "^3.7.0" 40 | 41 | "@typescript-eslint/parser@1.1.0": 42 | version "1.1.0" 43 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.1.0.tgz#cce0e0951e6543d6ab7ef87a3e020335bf8c5999" 44 | integrity sha512-Cs8ZPIcJBFmwSTXS+Qk7wiOC2i2jmj8Nuutk3/l7kqzYeQwDKYo4n0XHpodvUOqFnEcQt+SVfdUg90BfjuQdbg== 45 | dependencies: 46 | "@typescript-eslint/typescript-estree" "1.1.0" 47 | eslint-scope "^4.0.0" 48 | eslint-visitor-keys "^1.0.0" 49 | 50 | "@typescript-eslint/parser@1.6.0": 51 | version "1.6.0" 52 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.6.0.tgz#f01189c8b90848e3b8e45a6cdad27870529d1804" 53 | integrity sha512-VB9xmSbfafI+/kI4gUK3PfrkGmrJQfh0N4EScT1gZXSZyUxpsBirPL99EWZg9MmPG0pzq/gMtgkk7/rAHj4aQw== 54 | dependencies: 55 | "@typescript-eslint/typescript-estree" "1.6.0" 56 | eslint-scope "^4.0.0" 57 | eslint-visitor-keys "^1.0.0" 58 | 59 | "@typescript-eslint/typescript-estree@1.1.0": 60 | version "1.1.0" 61 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.1.0.tgz#31f19e7197814cb3e609f2822ad6003b6e326470" 62 | integrity sha512-eABnKqJVv0Mm5uYon8Xw61SXldvOhWKDQdoZqsJ/YqEa9XvWV1URXdRvTOW8GLsKo4X3Un7pHKqKZhfbbUEGww== 63 | dependencies: 64 | lodash.unescape "4.0.1" 65 | semver "5.5.0" 66 | 67 | "@typescript-eslint/typescript-estree@1.6.0": 68 | version "1.6.0" 69 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.6.0.tgz#6cf43a07fee08b8eb52e4513b428c8cdc9751ef0" 70 | integrity sha512-A4CanUwfaG4oXobD5y7EXbsOHjCwn8tj1RDd820etpPAjH+Icjc2K9e/DQM1Hac5zH2BSy+u6bjvvF2wwREvYA== 71 | dependencies: 72 | lodash.unescape "4.0.1" 73 | semver "5.5.0" 74 | 75 | acorn-jsx@^5.0.0: 76 | version "5.2.0" 77 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" 78 | integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== 79 | 80 | acorn@^6.0.7: 81 | version "6.4.1" 82 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" 83 | integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== 84 | 85 | ajv@^6.10.2, ajv@^6.9.1: 86 | version "6.12.2" 87 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" 88 | integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== 89 | dependencies: 90 | fast-deep-equal "^3.1.1" 91 | fast-json-stable-stringify "^2.0.0" 92 | json-schema-traverse "^0.4.1" 93 | uri-js "^4.2.2" 94 | 95 | ansi-colors@3.2.3: 96 | version "3.2.3" 97 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" 98 | integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== 99 | 100 | ansi-escapes@^3.2.0: 101 | version "3.2.0" 102 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" 103 | integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== 104 | 105 | ansi-regex@^3.0.0: 106 | version "3.0.0" 107 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 108 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 109 | 110 | ansi-regex@^4.1.0: 111 | version "4.1.0" 112 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 113 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 114 | 115 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 116 | version "3.2.1" 117 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 118 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 119 | dependencies: 120 | color-convert "^1.9.0" 121 | 122 | argparse@^1.0.7: 123 | version "1.0.10" 124 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 125 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 126 | dependencies: 127 | sprintf-js "~1.0.2" 128 | 129 | aria-query@^3.0.0: 130 | version "3.0.0" 131 | resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" 132 | integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= 133 | dependencies: 134 | ast-types-flow "0.0.7" 135 | commander "^2.11.0" 136 | 137 | array-includes@^3.0.3, array-includes@^3.1.1: 138 | version "3.1.1" 139 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" 140 | integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== 141 | dependencies: 142 | define-properties "^1.1.3" 143 | es-abstract "^1.17.0" 144 | is-string "^1.0.5" 145 | 146 | ast-types-flow@0.0.7, ast-types-flow@^0.0.7: 147 | version "0.0.7" 148 | resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" 149 | integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= 150 | 151 | astral-regex@^1.0.0: 152 | version "1.0.0" 153 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 154 | integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== 155 | 156 | axobject-query@^2.0.2: 157 | version "2.1.2" 158 | resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799" 159 | integrity sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ== 160 | 161 | balanced-match@^1.0.0: 162 | version "1.0.0" 163 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 164 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 165 | 166 | brace-expansion@^1.1.7: 167 | version "1.1.11" 168 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 169 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 170 | dependencies: 171 | balanced-match "^1.0.0" 172 | concat-map "0.0.1" 173 | 174 | browser-stdout@1.3.1: 175 | version "1.3.1" 176 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 177 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== 178 | 179 | callsites@^3.0.0: 180 | version "3.1.0" 181 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 182 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 183 | 184 | camelcase@^5.0.0: 185 | version "5.3.1" 186 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 187 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 188 | 189 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.2: 190 | version "2.4.2" 191 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 192 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 193 | dependencies: 194 | ansi-styles "^3.2.1" 195 | escape-string-regexp "^1.0.5" 196 | supports-color "^5.3.0" 197 | 198 | chardet@^0.7.0: 199 | version "0.7.0" 200 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 201 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 202 | 203 | cli-cursor@^2.1.0: 204 | version "2.1.0" 205 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 206 | integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= 207 | dependencies: 208 | restore-cursor "^2.0.0" 209 | 210 | cli-width@^2.0.0: 211 | version "2.2.1" 212 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" 213 | integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== 214 | 215 | cliui@^5.0.0: 216 | version "5.0.0" 217 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" 218 | integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== 219 | dependencies: 220 | string-width "^3.1.0" 221 | strip-ansi "^5.2.0" 222 | wrap-ansi "^5.1.0" 223 | 224 | color-convert@^1.9.0: 225 | version "1.9.3" 226 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 227 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 228 | dependencies: 229 | color-name "1.1.3" 230 | 231 | color-name@1.1.3: 232 | version "1.1.3" 233 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 234 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 235 | 236 | commander@^2.11.0: 237 | version "2.20.3" 238 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 239 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 240 | 241 | concat-map@0.0.1: 242 | version "0.0.1" 243 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 244 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 245 | 246 | confusing-browser-globals@^1.0.5: 247 | version "1.0.9" 248 | resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd" 249 | integrity sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw== 250 | 251 | contains-path@^0.1.0: 252 | version "0.1.0" 253 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 254 | integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= 255 | 256 | cross-spawn@^6.0.5: 257 | version "6.0.5" 258 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 259 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 260 | dependencies: 261 | nice-try "^1.0.4" 262 | path-key "^2.0.1" 263 | semver "^5.5.0" 264 | shebang-command "^1.2.0" 265 | which "^1.2.9" 266 | 267 | damerau-levenshtein@^1.0.4: 268 | version "1.0.6" 269 | resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" 270 | integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== 271 | 272 | debug@3.2.6: 273 | version "3.2.6" 274 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 275 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 276 | dependencies: 277 | ms "^2.1.1" 278 | 279 | debug@^2.6.9: 280 | version "2.6.9" 281 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 282 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 283 | dependencies: 284 | ms "2.0.0" 285 | 286 | debug@^4.0.1: 287 | version "4.1.1" 288 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 289 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 290 | dependencies: 291 | ms "^2.1.1" 292 | 293 | decamelize@^1.2.0: 294 | version "1.2.0" 295 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 296 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 297 | 298 | deep-is@~0.1.3: 299 | version "0.1.3" 300 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 301 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 302 | 303 | define-properties@^1.1.2, define-properties@^1.1.3: 304 | version "1.1.3" 305 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 306 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 307 | dependencies: 308 | object-keys "^1.0.12" 309 | 310 | diff@3.5.0: 311 | version "3.5.0" 312 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 313 | integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== 314 | 315 | doctrine@1.5.0: 316 | version "1.5.0" 317 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 318 | integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= 319 | dependencies: 320 | esutils "^2.0.2" 321 | isarray "^1.0.0" 322 | 323 | doctrine@^2.1.0: 324 | version "2.1.0" 325 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 326 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 327 | dependencies: 328 | esutils "^2.0.2" 329 | 330 | doctrine@^3.0.0: 331 | version "3.0.0" 332 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 333 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 334 | dependencies: 335 | esutils "^2.0.2" 336 | 337 | emoji-regex@^7.0.1, emoji-regex@^7.0.2: 338 | version "7.0.3" 339 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 340 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 341 | 342 | error-ex@^1.2.0: 343 | version "1.3.2" 344 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 345 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 346 | dependencies: 347 | is-arrayish "^0.2.1" 348 | 349 | es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: 350 | version "1.17.5" 351 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" 352 | integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== 353 | dependencies: 354 | es-to-primitive "^1.2.1" 355 | function-bind "^1.1.1" 356 | has "^1.0.3" 357 | has-symbols "^1.0.1" 358 | is-callable "^1.1.5" 359 | is-regex "^1.0.5" 360 | object-inspect "^1.7.0" 361 | object-keys "^1.1.1" 362 | object.assign "^4.1.0" 363 | string.prototype.trimleft "^2.1.1" 364 | string.prototype.trimright "^2.1.1" 365 | 366 | es-to-primitive@^1.2.1: 367 | version "1.2.1" 368 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 369 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 370 | dependencies: 371 | is-callable "^1.1.4" 372 | is-date-object "^1.0.1" 373 | is-symbol "^1.0.2" 374 | 375 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: 376 | version "1.0.5" 377 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 378 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 379 | 380 | eslint-config-airbnb-base@^13.1.0: 381 | version "13.2.0" 382 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz#f6ea81459ff4dec2dda200c35f1d8f7419d57943" 383 | integrity sha512-1mg/7eoB4AUeB0X1c/ho4vb2gYkNH8Trr/EgCT/aGmKhhG+F6vF5s8+iRBlWAzFIAphxIdp3YfEKgEl0f9Xg+w== 384 | dependencies: 385 | confusing-browser-globals "^1.0.5" 386 | object.assign "^4.1.0" 387 | object.entries "^1.1.0" 388 | 389 | eslint-config-airbnb@17.1.0: 390 | version "17.1.0" 391 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz#3964ed4bc198240315ff52030bf8636f42bc4732" 392 | integrity sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw== 393 | dependencies: 394 | eslint-config-airbnb-base "^13.1.0" 395 | object.assign "^4.1.0" 396 | object.entries "^1.0.4" 397 | 398 | eslint-config-prettier@4.1.0: 399 | version "4.1.0" 400 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.1.0.tgz#181364895899fff9fd3605fecb5c4f20e7d5f395" 401 | integrity sha512-zILwX9/Ocz4SV2vX7ox85AsrAgXV3f2o2gpIicdMIOra48WYqgUnWNH/cR/iHtmD2Vb3dLSC3LiEJnS05Gkw7w== 402 | dependencies: 403 | get-stdin "^6.0.0" 404 | 405 | eslint-import-resolver-node@^0.3.2: 406 | version "0.3.3" 407 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" 408 | integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== 409 | dependencies: 410 | debug "^2.6.9" 411 | resolve "^1.13.1" 412 | 413 | eslint-import-resolver-typescript@1.1.1: 414 | version "1.1.1" 415 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-1.1.1.tgz#e6d42172b95144ef16610fe104ef38340edea591" 416 | integrity sha512-jqSfumQ+H5y3FUJ6NjRkbOQSUOlbBucGTN3ELymOtcDBbPjVdm/luvJuCfCaIXGh8sEF26ma1qVdtDgl9ndhUg== 417 | dependencies: 418 | debug "^4.0.1" 419 | resolve "^1.4.0" 420 | tsconfig-paths "^3.6.0" 421 | 422 | eslint-module-utils@^2.3.0: 423 | version "2.6.0" 424 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" 425 | integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== 426 | dependencies: 427 | debug "^2.6.9" 428 | pkg-dir "^2.0.0" 429 | 430 | eslint-plugin-import@2.16.0: 431 | version "2.16.0" 432 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz#97ac3e75d0791c4fac0e15ef388510217be7f66f" 433 | integrity sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A== 434 | dependencies: 435 | contains-path "^0.1.0" 436 | debug "^2.6.9" 437 | doctrine "1.5.0" 438 | eslint-import-resolver-node "^0.3.2" 439 | eslint-module-utils "^2.3.0" 440 | has "^1.0.3" 441 | lodash "^4.17.11" 442 | minimatch "^3.0.4" 443 | read-pkg-up "^2.0.0" 444 | resolve "^1.9.0" 445 | 446 | eslint-plugin-jsx-a11y@6.2.1: 447 | version "6.2.1" 448 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.1.tgz#4ebba9f339b600ff415ae4166e3e2e008831cf0c" 449 | integrity sha512-cjN2ObWrRz0TTw7vEcGQrx+YltMvZoOEx4hWU8eEERDnBIU00OTq7Vr+jA7DFKxiwLNv4tTh5Pq2GUNEa8b6+w== 450 | dependencies: 451 | aria-query "^3.0.0" 452 | array-includes "^3.0.3" 453 | ast-types-flow "^0.0.7" 454 | axobject-query "^2.0.2" 455 | damerau-levenshtein "^1.0.4" 456 | emoji-regex "^7.0.2" 457 | has "^1.0.3" 458 | jsx-ast-utils "^2.0.1" 459 | 460 | eslint-plugin-react@7.12.4: 461 | version "7.12.4" 462 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.4.tgz#b1ecf26479d61aee650da612e425c53a99f48c8c" 463 | integrity sha512-1puHJkXJY+oS1t467MjbqjvX53uQ05HXwjqDgdbGBqf5j9eeydI54G3KwiJmWciQ0HTBacIKw2jgwSBSH3yfgQ== 464 | dependencies: 465 | array-includes "^3.0.3" 466 | doctrine "^2.1.0" 467 | has "^1.0.3" 468 | jsx-ast-utils "^2.0.1" 469 | object.fromentries "^2.0.0" 470 | prop-types "^15.6.2" 471 | resolve "^1.9.0" 472 | 473 | eslint-scope@^4.0.0, eslint-scope@^4.0.3: 474 | version "4.0.3" 475 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" 476 | integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== 477 | dependencies: 478 | esrecurse "^4.1.0" 479 | estraverse "^4.1.1" 480 | 481 | eslint-utils@^1.3.1: 482 | version "1.4.3" 483 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" 484 | integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== 485 | dependencies: 486 | eslint-visitor-keys "^1.1.0" 487 | 488 | eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: 489 | version "1.2.0" 490 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz#74415ac884874495f78ec2a97349525344c981fa" 491 | integrity sha512-WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ== 492 | 493 | eslint@5.16.0: 494 | version "5.16.0" 495 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" 496 | integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== 497 | dependencies: 498 | "@babel/code-frame" "^7.0.0" 499 | ajv "^6.9.1" 500 | chalk "^2.1.0" 501 | cross-spawn "^6.0.5" 502 | debug "^4.0.1" 503 | doctrine "^3.0.0" 504 | eslint-scope "^4.0.3" 505 | eslint-utils "^1.3.1" 506 | eslint-visitor-keys "^1.0.0" 507 | espree "^5.0.1" 508 | esquery "^1.0.1" 509 | esutils "^2.0.2" 510 | file-entry-cache "^5.0.1" 511 | functional-red-black-tree "^1.0.1" 512 | glob "^7.1.2" 513 | globals "^11.7.0" 514 | ignore "^4.0.6" 515 | import-fresh "^3.0.0" 516 | imurmurhash "^0.1.4" 517 | inquirer "^6.2.2" 518 | js-yaml "^3.13.0" 519 | json-stable-stringify-without-jsonify "^1.0.1" 520 | levn "^0.3.0" 521 | lodash "^4.17.11" 522 | minimatch "^3.0.4" 523 | mkdirp "^0.5.1" 524 | natural-compare "^1.4.0" 525 | optionator "^0.8.2" 526 | path-is-inside "^1.0.2" 527 | progress "^2.0.0" 528 | regexpp "^2.0.1" 529 | semver "^5.5.1" 530 | strip-ansi "^4.0.0" 531 | strip-json-comments "^2.0.1" 532 | table "^5.2.3" 533 | text-table "^0.2.0" 534 | 535 | espree@^5.0.1: 536 | version "5.0.1" 537 | resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" 538 | integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== 539 | dependencies: 540 | acorn "^6.0.7" 541 | acorn-jsx "^5.0.0" 542 | eslint-visitor-keys "^1.0.0" 543 | 544 | esprima@^4.0.0: 545 | version "4.0.1" 546 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 547 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 548 | 549 | esquery@^1.0.1: 550 | version "1.3.1" 551 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" 552 | integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== 553 | dependencies: 554 | estraverse "^5.1.0" 555 | 556 | esrecurse@^4.1.0: 557 | version "4.2.1" 558 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 559 | integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== 560 | dependencies: 561 | estraverse "^4.1.0" 562 | 563 | estraverse@^4.1.0, estraverse@^4.1.1: 564 | version "4.3.0" 565 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 566 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 567 | 568 | estraverse@^5.1.0: 569 | version "5.1.0" 570 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" 571 | integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== 572 | 573 | esutils@^2.0.2: 574 | version "2.0.3" 575 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 576 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 577 | 578 | external-editor@^3.0.3: 579 | version "3.1.0" 580 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" 581 | integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== 582 | dependencies: 583 | chardet "^0.7.0" 584 | iconv-lite "^0.4.24" 585 | tmp "^0.0.33" 586 | 587 | fast-deep-equal@^3.1.1: 588 | version "3.1.1" 589 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" 590 | integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== 591 | 592 | fast-json-stable-stringify@^2.0.0: 593 | version "2.1.0" 594 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 595 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 596 | 597 | fast-levenshtein@~2.0.6: 598 | version "2.0.6" 599 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 600 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 601 | 602 | figures@^2.0.0: 603 | version "2.0.0" 604 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 605 | integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= 606 | dependencies: 607 | escape-string-regexp "^1.0.5" 608 | 609 | file-entry-cache@^5.0.1: 610 | version "5.0.1" 611 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" 612 | integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== 613 | dependencies: 614 | flat-cache "^2.0.1" 615 | 616 | find-up@3.0.0, find-up@^3.0.0: 617 | version "3.0.0" 618 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 619 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 620 | dependencies: 621 | locate-path "^3.0.0" 622 | 623 | find-up@^2.0.0, find-up@^2.1.0: 624 | version "2.1.0" 625 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 626 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 627 | dependencies: 628 | locate-path "^2.0.0" 629 | 630 | flat-cache@^2.0.1: 631 | version "2.0.1" 632 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" 633 | integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== 634 | dependencies: 635 | flatted "^2.0.0" 636 | rimraf "2.6.3" 637 | write "1.0.3" 638 | 639 | flat@^4.1.0: 640 | version "4.1.0" 641 | resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" 642 | integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== 643 | dependencies: 644 | is-buffer "~2.0.3" 645 | 646 | flatted@^2.0.0: 647 | version "2.0.2" 648 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" 649 | integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== 650 | 651 | fs.realpath@^1.0.0: 652 | version "1.0.0" 653 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 654 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 655 | 656 | function-bind@^1.1.1: 657 | version "1.1.1" 658 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 659 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 660 | 661 | functional-red-black-tree@^1.0.1: 662 | version "1.0.1" 663 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 664 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 665 | 666 | get-caller-file@^2.0.1: 667 | version "2.0.5" 668 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 669 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 670 | 671 | get-stdin@^6.0.0: 672 | version "6.0.0" 673 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" 674 | integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== 675 | 676 | glob@7.1.3: 677 | version "7.1.3" 678 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 679 | integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== 680 | dependencies: 681 | fs.realpath "^1.0.0" 682 | inflight "^1.0.4" 683 | inherits "2" 684 | minimatch "^3.0.4" 685 | once "^1.3.0" 686 | path-is-absolute "^1.0.0" 687 | 688 | glob@^7.1.2, glob@^7.1.3: 689 | version "7.1.6" 690 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 691 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 692 | dependencies: 693 | fs.realpath "^1.0.0" 694 | inflight "^1.0.4" 695 | inherits "2" 696 | minimatch "^3.0.4" 697 | once "^1.3.0" 698 | path-is-absolute "^1.0.0" 699 | 700 | globals@^11.7.0: 701 | version "11.12.0" 702 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 703 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 704 | 705 | graceful-fs@^4.1.2: 706 | version "4.2.4" 707 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" 708 | integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== 709 | 710 | growl@1.10.5: 711 | version "1.10.5" 712 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" 713 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== 714 | 715 | has-flag@^3.0.0: 716 | version "3.0.0" 717 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 718 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 719 | 720 | has-symbols@^1.0.0, has-symbols@^1.0.1: 721 | version "1.0.1" 722 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" 723 | integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== 724 | 725 | has@^1.0.3: 726 | version "1.0.3" 727 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 728 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 729 | dependencies: 730 | function-bind "^1.1.1" 731 | 732 | he@1.2.0: 733 | version "1.2.0" 734 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 735 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 736 | 737 | hosted-git-info@^2.1.4: 738 | version "2.8.8" 739 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" 740 | integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== 741 | 742 | iconv-lite@^0.4.24: 743 | version "0.4.24" 744 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 745 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 746 | dependencies: 747 | safer-buffer ">= 2.1.2 < 3" 748 | 749 | ignore@^4.0.6: 750 | version "4.0.6" 751 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 752 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 753 | 754 | import-fresh@^3.0.0: 755 | version "3.2.1" 756 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" 757 | integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== 758 | dependencies: 759 | parent-module "^1.0.0" 760 | resolve-from "^4.0.0" 761 | 762 | imurmurhash@^0.1.4: 763 | version "0.1.4" 764 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 765 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 766 | 767 | inflight@^1.0.4: 768 | version "1.0.6" 769 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 770 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 771 | dependencies: 772 | once "^1.3.0" 773 | wrappy "1" 774 | 775 | inherits@2: 776 | version "2.0.4" 777 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 778 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 779 | 780 | inquirer@^6.2.2: 781 | version "6.5.2" 782 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" 783 | integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== 784 | dependencies: 785 | ansi-escapes "^3.2.0" 786 | chalk "^2.4.2" 787 | cli-cursor "^2.1.0" 788 | cli-width "^2.0.0" 789 | external-editor "^3.0.3" 790 | figures "^2.0.0" 791 | lodash "^4.17.12" 792 | mute-stream "0.0.7" 793 | run-async "^2.2.0" 794 | rxjs "^6.4.0" 795 | string-width "^2.1.0" 796 | strip-ansi "^5.1.0" 797 | through "^2.3.6" 798 | 799 | is-arrayish@^0.2.1: 800 | version "0.2.1" 801 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 802 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 803 | 804 | is-buffer@~2.0.3: 805 | version "2.0.4" 806 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" 807 | integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== 808 | 809 | is-callable@^1.1.4, is-callable@^1.1.5: 810 | version "1.2.0" 811 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" 812 | integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== 813 | 814 | is-date-object@^1.0.1: 815 | version "1.0.2" 816 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" 817 | integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== 818 | 819 | is-fullwidth-code-point@^2.0.0: 820 | version "2.0.0" 821 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 822 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 823 | 824 | is-regex@^1.0.5: 825 | version "1.1.0" 826 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" 827 | integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== 828 | dependencies: 829 | has-symbols "^1.0.1" 830 | 831 | is-string@^1.0.5: 832 | version "1.0.5" 833 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" 834 | integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== 835 | 836 | is-symbol@^1.0.2: 837 | version "1.0.3" 838 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" 839 | integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== 840 | dependencies: 841 | has-symbols "^1.0.1" 842 | 843 | isarray@^1.0.0: 844 | version "1.0.0" 845 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 846 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 847 | 848 | isexe@^2.0.0: 849 | version "2.0.0" 850 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 851 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 852 | 853 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 854 | version "4.0.0" 855 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 856 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 857 | 858 | js-yaml@3.13.1: 859 | version "3.13.1" 860 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 861 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== 862 | dependencies: 863 | argparse "^1.0.7" 864 | esprima "^4.0.0" 865 | 866 | js-yaml@^3.13.0: 867 | version "3.14.0" 868 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" 869 | integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== 870 | dependencies: 871 | argparse "^1.0.7" 872 | esprima "^4.0.0" 873 | 874 | json-schema-traverse@^0.4.1: 875 | version "0.4.1" 876 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 877 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 878 | 879 | json-stable-stringify-without-jsonify@^1.0.1: 880 | version "1.0.1" 881 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 882 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 883 | 884 | json5@^1.0.1: 885 | version "1.0.1" 886 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" 887 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 888 | dependencies: 889 | minimist "^1.2.0" 890 | 891 | jsx-ast-utils@^2.0.1: 892 | version "2.3.0" 893 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.3.0.tgz#edd727794ea284d7fda575015ed1b0cde0289ab6" 894 | integrity sha512-3HNoc7nZ1hpZIKB3hJ7BlFRkzCx2BynRtfSwbkqZdpRdvAPsGMnzclPwrvDBS7/lalHTj21NwIeaEpysHBOudg== 895 | dependencies: 896 | array-includes "^3.1.1" 897 | object.assign "^4.1.0" 898 | 899 | levn@^0.3.0, levn@~0.3.0: 900 | version "0.3.0" 901 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 902 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 903 | dependencies: 904 | prelude-ls "~1.1.2" 905 | type-check "~0.3.2" 906 | 907 | load-json-file@^2.0.0: 908 | version "2.0.0" 909 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 910 | integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= 911 | dependencies: 912 | graceful-fs "^4.1.2" 913 | parse-json "^2.2.0" 914 | pify "^2.0.0" 915 | strip-bom "^3.0.0" 916 | 917 | locate-path@^2.0.0: 918 | version "2.0.0" 919 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 920 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 921 | dependencies: 922 | p-locate "^2.0.0" 923 | path-exists "^3.0.0" 924 | 925 | locate-path@^3.0.0: 926 | version "3.0.0" 927 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 928 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 929 | dependencies: 930 | p-locate "^3.0.0" 931 | path-exists "^3.0.0" 932 | 933 | lodash.unescape@4.0.1: 934 | version "4.0.1" 935 | resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" 936 | integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw= 937 | 938 | lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15: 939 | version "4.17.19" 940 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" 941 | integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== 942 | 943 | log-symbols@2.2.0: 944 | version "2.2.0" 945 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" 946 | integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== 947 | dependencies: 948 | chalk "^2.0.1" 949 | 950 | loose-envify@^1.4.0: 951 | version "1.4.0" 952 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 953 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 954 | dependencies: 955 | js-tokens "^3.0.0 || ^4.0.0" 956 | 957 | mimic-fn@^1.0.0: 958 | version "1.2.0" 959 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 960 | integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== 961 | 962 | minimatch@3.0.4, minimatch@^3.0.4: 963 | version "3.0.4" 964 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 965 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 966 | dependencies: 967 | brace-expansion "^1.1.7" 968 | 969 | minimist@^1.2.0, minimist@^1.2.5: 970 | version "1.2.5" 971 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 972 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 973 | 974 | mkdirp@0.5.4: 975 | version "0.5.4" 976 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" 977 | integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== 978 | dependencies: 979 | minimist "^1.2.5" 980 | 981 | mkdirp@^0.5.1: 982 | version "0.5.5" 983 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 984 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 985 | dependencies: 986 | minimist "^1.2.5" 987 | 988 | mocha@^6.2.0: 989 | version "6.2.3" 990 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.3.tgz#e648432181d8b99393410212664450a4c1e31912" 991 | integrity sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg== 992 | dependencies: 993 | ansi-colors "3.2.3" 994 | browser-stdout "1.3.1" 995 | debug "3.2.6" 996 | diff "3.5.0" 997 | escape-string-regexp "1.0.5" 998 | find-up "3.0.0" 999 | glob "7.1.3" 1000 | growl "1.10.5" 1001 | he "1.2.0" 1002 | js-yaml "3.13.1" 1003 | log-symbols "2.2.0" 1004 | minimatch "3.0.4" 1005 | mkdirp "0.5.4" 1006 | ms "2.1.1" 1007 | node-environment-flags "1.0.5" 1008 | object.assign "4.1.0" 1009 | strip-json-comments "2.0.1" 1010 | supports-color "6.0.0" 1011 | which "1.3.1" 1012 | wide-align "1.1.3" 1013 | yargs "13.3.2" 1014 | yargs-parser "13.1.2" 1015 | yargs-unparser "1.6.0" 1016 | 1017 | ms@2.0.0: 1018 | version "2.0.0" 1019 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1020 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1021 | 1022 | ms@2.1.1: 1023 | version "2.1.1" 1024 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 1025 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 1026 | 1027 | ms@^2.1.1: 1028 | version "2.1.2" 1029 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1030 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1031 | 1032 | mute-stream@0.0.7: 1033 | version "0.0.7" 1034 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 1035 | integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= 1036 | 1037 | natural-compare@^1.4.0: 1038 | version "1.4.0" 1039 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1040 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1041 | 1042 | nice-try@^1.0.4: 1043 | version "1.0.5" 1044 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 1045 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 1046 | 1047 | node-environment-flags@1.0.5: 1048 | version "1.0.5" 1049 | resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" 1050 | integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== 1051 | dependencies: 1052 | object.getownpropertydescriptors "^2.0.3" 1053 | semver "^5.7.0" 1054 | 1055 | normalize-package-data@^2.3.2: 1056 | version "2.5.0" 1057 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 1058 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 1059 | dependencies: 1060 | hosted-git-info "^2.1.4" 1061 | resolve "^1.10.0" 1062 | semver "2 || 3 || 4 || 5" 1063 | validate-npm-package-license "^3.0.1" 1064 | 1065 | object-assign@^4.1.1: 1066 | version "4.1.1" 1067 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1068 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1069 | 1070 | object-inspect@^1.7.0: 1071 | version "1.7.0" 1072 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" 1073 | integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== 1074 | 1075 | object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: 1076 | version "1.1.1" 1077 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1078 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1079 | 1080 | object.assign@4.1.0, object.assign@^4.1.0: 1081 | version "4.1.0" 1082 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" 1083 | integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== 1084 | dependencies: 1085 | define-properties "^1.1.2" 1086 | function-bind "^1.1.1" 1087 | has-symbols "^1.0.0" 1088 | object-keys "^1.0.11" 1089 | 1090 | object.entries@^1.0.4, object.entries@^1.1.0: 1091 | version "1.1.2" 1092 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" 1093 | integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== 1094 | dependencies: 1095 | define-properties "^1.1.3" 1096 | es-abstract "^1.17.5" 1097 | has "^1.0.3" 1098 | 1099 | object.fromentries@^2.0.0: 1100 | version "2.0.2" 1101 | resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" 1102 | integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== 1103 | dependencies: 1104 | define-properties "^1.1.3" 1105 | es-abstract "^1.17.0-next.1" 1106 | function-bind "^1.1.1" 1107 | has "^1.0.3" 1108 | 1109 | object.getownpropertydescriptors@^2.0.3: 1110 | version "2.1.0" 1111 | resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" 1112 | integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== 1113 | dependencies: 1114 | define-properties "^1.1.3" 1115 | es-abstract "^1.17.0-next.1" 1116 | 1117 | once@^1.3.0: 1118 | version "1.4.0" 1119 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1120 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1121 | dependencies: 1122 | wrappy "1" 1123 | 1124 | onetime@^2.0.0: 1125 | version "2.0.1" 1126 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 1127 | integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= 1128 | dependencies: 1129 | mimic-fn "^1.0.0" 1130 | 1131 | optionator@^0.8.2: 1132 | version "0.8.3" 1133 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" 1134 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== 1135 | dependencies: 1136 | deep-is "~0.1.3" 1137 | fast-levenshtein "~2.0.6" 1138 | levn "~0.3.0" 1139 | prelude-ls "~1.1.2" 1140 | type-check "~0.3.2" 1141 | word-wrap "~1.2.3" 1142 | 1143 | os-tmpdir@~1.0.2: 1144 | version "1.0.2" 1145 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1146 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 1147 | 1148 | p-limit@^1.1.0: 1149 | version "1.3.0" 1150 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 1151 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 1152 | dependencies: 1153 | p-try "^1.0.0" 1154 | 1155 | p-limit@^2.0.0: 1156 | version "2.3.0" 1157 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1158 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1159 | dependencies: 1160 | p-try "^2.0.0" 1161 | 1162 | p-locate@^2.0.0: 1163 | version "2.0.0" 1164 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1165 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 1166 | dependencies: 1167 | p-limit "^1.1.0" 1168 | 1169 | p-locate@^3.0.0: 1170 | version "3.0.0" 1171 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 1172 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 1173 | dependencies: 1174 | p-limit "^2.0.0" 1175 | 1176 | p-try@^1.0.0: 1177 | version "1.0.0" 1178 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1179 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 1180 | 1181 | p-try@^2.0.0: 1182 | version "2.2.0" 1183 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1184 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1185 | 1186 | parent-module@^1.0.0: 1187 | version "1.0.1" 1188 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1189 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1190 | dependencies: 1191 | callsites "^3.0.0" 1192 | 1193 | parse-json@^2.2.0: 1194 | version "2.2.0" 1195 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 1196 | integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= 1197 | dependencies: 1198 | error-ex "^1.2.0" 1199 | 1200 | path-exists@^3.0.0: 1201 | version "3.0.0" 1202 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1203 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1204 | 1205 | path-is-absolute@^1.0.0: 1206 | version "1.0.1" 1207 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1208 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1209 | 1210 | path-is-inside@^1.0.2: 1211 | version "1.0.2" 1212 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1213 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= 1214 | 1215 | path-key@^2.0.1: 1216 | version "2.0.1" 1217 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1218 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 1219 | 1220 | path-parse@^1.0.6: 1221 | version "1.0.6" 1222 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 1223 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 1224 | 1225 | path-type@^2.0.0: 1226 | version "2.0.0" 1227 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 1228 | integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= 1229 | dependencies: 1230 | pify "^2.0.0" 1231 | 1232 | pify@^2.0.0: 1233 | version "2.3.0" 1234 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1235 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 1236 | 1237 | pkg-dir@^2.0.0: 1238 | version "2.0.0" 1239 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 1240 | integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= 1241 | dependencies: 1242 | find-up "^2.1.0" 1243 | 1244 | prelude-ls@~1.1.2: 1245 | version "1.1.2" 1246 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1247 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 1248 | 1249 | progress@^2.0.0: 1250 | version "2.0.3" 1251 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 1252 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 1253 | 1254 | prop-types@^15.6.2: 1255 | version "15.7.2" 1256 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" 1257 | integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== 1258 | dependencies: 1259 | loose-envify "^1.4.0" 1260 | object-assign "^4.1.1" 1261 | react-is "^16.8.1" 1262 | 1263 | punycode@^2.1.0: 1264 | version "2.1.1" 1265 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1266 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1267 | 1268 | react-is@^16.8.1: 1269 | version "16.13.1" 1270 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 1271 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 1272 | 1273 | read-pkg-up@^2.0.0: 1274 | version "2.0.0" 1275 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 1276 | integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= 1277 | dependencies: 1278 | find-up "^2.0.0" 1279 | read-pkg "^2.0.0" 1280 | 1281 | read-pkg@^2.0.0: 1282 | version "2.0.0" 1283 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 1284 | integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= 1285 | dependencies: 1286 | load-json-file "^2.0.0" 1287 | normalize-package-data "^2.3.2" 1288 | path-type "^2.0.0" 1289 | 1290 | regexpp@^2.0.1: 1291 | version "2.0.1" 1292 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" 1293 | integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== 1294 | 1295 | require-directory@^2.1.1: 1296 | version "2.1.1" 1297 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1298 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 1299 | 1300 | require-main-filename@^2.0.0: 1301 | version "2.0.0" 1302 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" 1303 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== 1304 | 1305 | requireindex@^1.2.0: 1306 | version "1.2.0" 1307 | resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" 1308 | integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== 1309 | 1310 | resolve-from@^4.0.0: 1311 | version "4.0.0" 1312 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1313 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1314 | 1315 | resolve@^1.10.0, resolve@^1.13.1, resolve@^1.4.0, resolve@^1.9.0: 1316 | version "1.17.0" 1317 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" 1318 | integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== 1319 | dependencies: 1320 | path-parse "^1.0.6" 1321 | 1322 | restore-cursor@^2.0.0: 1323 | version "2.0.0" 1324 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 1325 | integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= 1326 | dependencies: 1327 | onetime "^2.0.0" 1328 | signal-exit "^3.0.2" 1329 | 1330 | rimraf@2.6.3: 1331 | version "2.6.3" 1332 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 1333 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 1334 | dependencies: 1335 | glob "^7.1.3" 1336 | 1337 | run-async@^2.2.0: 1338 | version "2.4.1" 1339 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" 1340 | integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== 1341 | 1342 | rxjs@^6.4.0: 1343 | version "6.5.5" 1344 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" 1345 | integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== 1346 | dependencies: 1347 | tslib "^1.9.0" 1348 | 1349 | "safer-buffer@>= 2.1.2 < 3": 1350 | version "2.1.2" 1351 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1352 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1353 | 1354 | "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.5.1, semver@^5.7.0: 1355 | version "5.7.1" 1356 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1357 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1358 | 1359 | semver@5.5.0: 1360 | version "5.5.0" 1361 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 1362 | integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== 1363 | 1364 | set-blocking@^2.0.0: 1365 | version "2.0.0" 1366 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1367 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 1368 | 1369 | shebang-command@^1.2.0: 1370 | version "1.2.0" 1371 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1372 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 1373 | dependencies: 1374 | shebang-regex "^1.0.0" 1375 | 1376 | shebang-regex@^1.0.0: 1377 | version "1.0.0" 1378 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1379 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 1380 | 1381 | signal-exit@^3.0.2: 1382 | version "3.0.3" 1383 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 1384 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 1385 | 1386 | slice-ansi@^2.1.0: 1387 | version "2.1.0" 1388 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" 1389 | integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== 1390 | dependencies: 1391 | ansi-styles "^3.2.0" 1392 | astral-regex "^1.0.0" 1393 | is-fullwidth-code-point "^2.0.0" 1394 | 1395 | spdx-correct@^3.0.0: 1396 | version "3.1.1" 1397 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 1398 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 1399 | dependencies: 1400 | spdx-expression-parse "^3.0.0" 1401 | spdx-license-ids "^3.0.0" 1402 | 1403 | spdx-exceptions@^2.1.0: 1404 | version "2.3.0" 1405 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 1406 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 1407 | 1408 | spdx-expression-parse@^3.0.0: 1409 | version "3.0.1" 1410 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 1411 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 1412 | dependencies: 1413 | spdx-exceptions "^2.1.0" 1414 | spdx-license-ids "^3.0.0" 1415 | 1416 | spdx-license-ids@^3.0.0: 1417 | version "3.0.5" 1418 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" 1419 | integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== 1420 | 1421 | sprintf-js@~1.0.2: 1422 | version "1.0.3" 1423 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1424 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1425 | 1426 | "string-width@^1.0.2 || 2", string-width@^2.1.0: 1427 | version "2.1.1" 1428 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1429 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 1430 | dependencies: 1431 | is-fullwidth-code-point "^2.0.0" 1432 | strip-ansi "^4.0.0" 1433 | 1434 | string-width@^3.0.0, string-width@^3.1.0: 1435 | version "3.1.0" 1436 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 1437 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 1438 | dependencies: 1439 | emoji-regex "^7.0.1" 1440 | is-fullwidth-code-point "^2.0.0" 1441 | strip-ansi "^5.1.0" 1442 | 1443 | string.prototype.trimend@^1.0.0: 1444 | version "1.0.1" 1445 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" 1446 | integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== 1447 | dependencies: 1448 | define-properties "^1.1.3" 1449 | es-abstract "^1.17.5" 1450 | 1451 | string.prototype.trimleft@^2.1.1: 1452 | version "2.1.2" 1453 | resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" 1454 | integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== 1455 | dependencies: 1456 | define-properties "^1.1.3" 1457 | es-abstract "^1.17.5" 1458 | string.prototype.trimstart "^1.0.0" 1459 | 1460 | string.prototype.trimright@^2.1.1: 1461 | version "2.1.2" 1462 | resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" 1463 | integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== 1464 | dependencies: 1465 | define-properties "^1.1.3" 1466 | es-abstract "^1.17.5" 1467 | string.prototype.trimend "^1.0.0" 1468 | 1469 | string.prototype.trimstart@^1.0.0: 1470 | version "1.0.1" 1471 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" 1472 | integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== 1473 | dependencies: 1474 | define-properties "^1.1.3" 1475 | es-abstract "^1.17.5" 1476 | 1477 | strip-ansi@^4.0.0: 1478 | version "4.0.0" 1479 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1480 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 1481 | dependencies: 1482 | ansi-regex "^3.0.0" 1483 | 1484 | strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: 1485 | version "5.2.0" 1486 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 1487 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 1488 | dependencies: 1489 | ansi-regex "^4.1.0" 1490 | 1491 | strip-bom@^3.0.0: 1492 | version "3.0.0" 1493 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1494 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1495 | 1496 | strip-json-comments@2.0.1, strip-json-comments@^2.0.1: 1497 | version "2.0.1" 1498 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1499 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1500 | 1501 | supports-color@6.0.0: 1502 | version "6.0.0" 1503 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" 1504 | integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== 1505 | dependencies: 1506 | has-flag "^3.0.0" 1507 | 1508 | supports-color@^5.3.0: 1509 | version "5.5.0" 1510 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1511 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1512 | dependencies: 1513 | has-flag "^3.0.0" 1514 | 1515 | table@^5.2.3: 1516 | version "5.4.6" 1517 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" 1518 | integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== 1519 | dependencies: 1520 | ajv "^6.10.2" 1521 | lodash "^4.17.14" 1522 | slice-ansi "^2.1.0" 1523 | string-width "^3.0.0" 1524 | 1525 | text-table@^0.2.0: 1526 | version "0.2.0" 1527 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1528 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1529 | 1530 | through@^2.3.6: 1531 | version "2.3.8" 1532 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1533 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 1534 | 1535 | tmp@^0.0.33: 1536 | version "0.0.33" 1537 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1538 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== 1539 | dependencies: 1540 | os-tmpdir "~1.0.2" 1541 | 1542 | tsconfig-paths@^3.6.0: 1543 | version "3.9.0" 1544 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" 1545 | integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== 1546 | dependencies: 1547 | "@types/json5" "^0.0.29" 1548 | json5 "^1.0.1" 1549 | minimist "^1.2.0" 1550 | strip-bom "^3.0.0" 1551 | 1552 | tslib@^1.8.1, tslib@^1.9.0: 1553 | version "1.13.0" 1554 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" 1555 | integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== 1556 | 1557 | tsutils@^3.7.0: 1558 | version "3.17.1" 1559 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" 1560 | integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== 1561 | dependencies: 1562 | tslib "^1.8.1" 1563 | 1564 | type-check@~0.3.2: 1565 | version "0.3.2" 1566 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1567 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 1568 | dependencies: 1569 | prelude-ls "~1.1.2" 1570 | 1571 | typescript@^3.5.3: 1572 | version "3.9.5" 1573 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36" 1574 | integrity sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ== 1575 | 1576 | uri-js@^4.2.2: 1577 | version "4.2.2" 1578 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 1579 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== 1580 | dependencies: 1581 | punycode "^2.1.0" 1582 | 1583 | validate-npm-package-license@^3.0.1: 1584 | version "3.0.4" 1585 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1586 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 1587 | dependencies: 1588 | spdx-correct "^3.0.0" 1589 | spdx-expression-parse "^3.0.0" 1590 | 1591 | which-module@^2.0.0: 1592 | version "2.0.0" 1593 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 1594 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 1595 | 1596 | which@1.3.1, which@^1.2.9: 1597 | version "1.3.1" 1598 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1599 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1600 | dependencies: 1601 | isexe "^2.0.0" 1602 | 1603 | wide-align@1.1.3: 1604 | version "1.1.3" 1605 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 1606 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 1607 | dependencies: 1608 | string-width "^1.0.2 || 2" 1609 | 1610 | word-wrap@~1.2.3: 1611 | version "1.2.3" 1612 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 1613 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 1614 | 1615 | wrap-ansi@^5.1.0: 1616 | version "5.1.0" 1617 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" 1618 | integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== 1619 | dependencies: 1620 | ansi-styles "^3.2.0" 1621 | string-width "^3.0.0" 1622 | strip-ansi "^5.0.0" 1623 | 1624 | wrappy@1: 1625 | version "1.0.2" 1626 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1627 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1628 | 1629 | write@1.0.3: 1630 | version "1.0.3" 1631 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" 1632 | integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== 1633 | dependencies: 1634 | mkdirp "^0.5.1" 1635 | 1636 | y18n@^4.0.0: 1637 | version "4.0.0" 1638 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" 1639 | integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== 1640 | 1641 | yargs-parser@13.1.2, yargs-parser@^13.1.2: 1642 | version "13.1.2" 1643 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" 1644 | integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== 1645 | dependencies: 1646 | camelcase "^5.0.0" 1647 | decamelize "^1.2.0" 1648 | 1649 | yargs-unparser@1.6.0: 1650 | version "1.6.0" 1651 | resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" 1652 | integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== 1653 | dependencies: 1654 | flat "^4.1.0" 1655 | lodash "^4.17.15" 1656 | yargs "^13.3.0" 1657 | 1658 | yargs@13.3.2, yargs@^13.3.0: 1659 | version "13.3.2" 1660 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" 1661 | integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== 1662 | dependencies: 1663 | cliui "^5.0.0" 1664 | find-up "^3.0.0" 1665 | get-caller-file "^2.0.1" 1666 | require-directory "^2.1.1" 1667 | require-main-filename "^2.0.0" 1668 | set-blocking "^2.0.0" 1669 | string-width "^3.0.0" 1670 | which-module "^2.0.0" 1671 | y18n "^4.0.0" 1672 | yargs-parser "^13.1.2" 1673 | --------------------------------------------------------------------------------