├── .gitignore ├── .ignore ├── .npmignore ├── Readme.md ├── package.json ├── src ├── abbreviationActions.ts ├── bufferStream.ts ├── defaultCompletionProvider.ts ├── index.ts ├── typings.ts │ └── EmmetNode.d.ts └── util.ts ├── tsconfig.json ├── tslint.json ├── webpack.config.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | lib 2 | server 3 | node_modules 4 | -------------------------------------------------------------------------------- /.ignore: -------------------------------------------------------------------------------- 1 | server 2 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | src 2 | tsconfig.json 3 | tslint.json 4 | *.map 5 | yarn.lock 6 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # coc-emmet 2 | 3 | Emmet completion support for [coc.nvim](https://github.com/neoclide/coc.nvim) 4 | 5 | Fork of emmet extension from [VSCode](https://github.com/Microsoft/vscode) with 6 | only completion support. 7 | 8 | **Note**: this. extension does completion support for emmet only, you should use 9 | https://github.com/mattn/emmet-vim 10 | 11 | ## Install 12 | 13 | In your vim/neovim, run command: 14 | 15 | ```vim 16 | :CocInstall coc-emmet 17 | ``` 18 | 19 | ## Usage 20 | 21 | - `` and `` to choose a completion option 22 | - `` to paste a picked completion 23 | 24 | ## Options 25 | 26 | You can set these properties on your `coc-settings.json` file to customize behavior. 27 | 28 | | Property | Description | Default value | 29 | | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | 30 | | `emmet.showExpandedAbbreviation` | Shows expanded Emmet abbreviations as suggestions. | `"always"` | 31 | | `emmet.showAbbreviationSuggestions` | Shows possible Emmet abbreviations as suggestions. Not applicable in stylesheets or when `emmet.showExpandedAbbreviation` is `"never"`. | `true` | 32 | | `emmet.includeLanguages` | Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and Emmet supported language. E.g.: `{"vue-html": "html", "javascript": "javascriptreact"}` | `{}` | 33 | | `emmet.variables` | Variables to be used in Emmet snippets | `{}` | 34 | | `emmet.syntaxProfiles` | Define profile for specified syntax or use your own profile with specific rules. | `{}` | 35 | | `emmet.excludeLanguages` | An array of languages where Emmet abbreviations should not be expanded. | `["markdown"]` | 36 | | `emmet.extensionsPath` | Path to a folder containing Emmet profiles and snippets. | `null` | 37 | | `emmet.showSuggestionsAsSnippets` | Show Emmet completion items as snippet kind. | `true` | 38 | | `emmet.optimizeStylesheetParsing` | When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in CSS/SCSS/Less files is parsed. | `true` | 39 | | `emmet.priority` | Priority of Emmet completion source, change to `100` for higher priority than languageserver. | `3` | 40 | | `emmet.preferences` | Preferences used to modify behavior of some actions and resolvers of Emmet. | `{}` | 41 | 42 | ## LICENSE 43 | 44 | MIT 45 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coc-emmet", 3 | "version": "1.1.6", 4 | "description": "emmet extension for coc", 5 | "main": "lib/index.js", 6 | "publisher": "chemzqm", 7 | "keywords": [ 8 | "coc.nvim", 9 | "emmet", 10 | "html", 11 | "css" 12 | ], 13 | "engines": { 14 | "coc": "^0.0.79" 15 | }, 16 | "scripts": { 17 | "clean": "rimraf lib", 18 | "build": "webpack", 19 | "prepare": "webpack" 20 | }, 21 | "activationEvents": [ 22 | "*" 23 | ], 24 | "contributes": { 25 | "configuration": { 26 | "type": "object", 27 | "title": "Emmet", 28 | "properties": { 29 | "emmet.showExpandedAbbreviation": { 30 | "type": [ 31 | "string" 32 | ], 33 | "enum": [ 34 | "never", 35 | "always", 36 | "inMarkupAndStylesheetFilesOnly" 37 | ], 38 | "default": "always", 39 | "markdownDescription": "Shows expanded Emmet abbreviations as suggestions." 40 | }, 41 | "emmet.showAbbreviationSuggestions": { 42 | "type": "boolean", 43 | "default": true, 44 | "markdownDescription": "Shows possible Emmet abbreviations as suggestions. Not applicable in stylesheets or when emmet.showExpandedAbbreviation is 'never'." 45 | }, 46 | "emmet.includeLanguages": { 47 | "type": "object", 48 | "default": {}, 49 | "markdownDescription": "Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and emmet supported language. E.g.: `{\"vue-html\": \"html\", \"javascript\": \"javascriptreact\"}`" 50 | }, 51 | "emmet.variables": { 52 | "type": "object", 53 | "properties": { 54 | "lang": { 55 | "type": "string", 56 | "default": "en" 57 | }, 58 | "charset": { 59 | "type": "string", 60 | "default": "UTF-8" 61 | } 62 | }, 63 | "default": {}, 64 | "description": "Variables to be used in Emmet snippets" 65 | }, 66 | "emmet.syntaxProfiles": { 67 | "type": "object", 68 | "default": {}, 69 | "description": "Define profile for specified syntax or use your own profile with specific rules." 70 | }, 71 | "emmet.excludeLanguages": { 72 | "type": "array", 73 | "default": [ 74 | "markdown" 75 | ], 76 | "description": "An array of languages where Emmet abbreviations should not be expanded." 77 | }, 78 | "emmet.extensionsPath": { 79 | "type": "string", 80 | "default": null, 81 | "description": "Path to a folder containing Emmet profiles and snippets." 82 | }, 83 | "emmet.showSuggestionsAsSnippets": { 84 | "type": "boolean", 85 | "default": true, 86 | "markdownDescription": "Show emmet completion items as snippet kind." 87 | }, 88 | "emmet.preferences": { 89 | "type": "object", 90 | "default": {}, 91 | "description": "Preferences used to modify behavior of some actions and resolvers of Emmet.", 92 | "properties": { 93 | "css.intUnit": { 94 | "type": "string", 95 | "default": "px" 96 | }, 97 | "css.floatUnit": { 98 | "type": "string", 99 | "default": "em" 100 | }, 101 | "css.propertyEnd": { 102 | "type": "string", 103 | "default": ";" 104 | }, 105 | "sass.propertyEnd": { 106 | "type": "string", 107 | "default": "" 108 | }, 109 | "stylus.propertyEnd": { 110 | "type": "string", 111 | "default": "" 112 | }, 113 | "css.valueSeparator": { 114 | "type": "string", 115 | "default": ": " 116 | }, 117 | "sass.valueSeparator": { 118 | "type": "string", 119 | "default": ": " 120 | }, 121 | "stylus.valueSeparator": { 122 | "type": "string", 123 | "default": " " 124 | }, 125 | "bem.elementSeparator": { 126 | "type": "string", 127 | "default": "__" 128 | }, 129 | "bem.modifierSeparator": { 130 | "type": "string", 131 | "default": "_" 132 | }, 133 | "filter.commentBefore": { 134 | "type": "string", 135 | "default": "" 136 | }, 137 | "filter.commentAfter": { 138 | "type": "string", 139 | "default": "\n" 140 | }, 141 | "filter.commentTrigger": { 142 | "type": "array", 143 | "default": [ 144 | "id", 145 | "class" 146 | ] 147 | }, 148 | "format.noIndentTags": { 149 | "type": "array", 150 | "default": [ 151 | "html" 152 | ] 153 | }, 154 | "format.forceIndentationForTags": { 155 | "type": "array", 156 | "default": [ 157 | "body" 158 | ] 159 | }, 160 | "profile.allowCompactBoolean": { 161 | "type": "boolean", 162 | "default": false 163 | }, 164 | "css.fuzzySearchMinScore": { 165 | "type": "number", 166 | "default": 0.3 167 | } 168 | } 169 | }, 170 | "emmet.optimizeStylesheetParsing": { 171 | "type": "boolean", 172 | "default": true, 173 | "markdownDescription": "When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in css/scss/less files is parsed." 174 | }, 175 | "emmet.priority": { 176 | "type": "integer", 177 | "default": 3, 178 | "description": "Priority of emmet completion source, change to 100 for higher priority than languageserver." 179 | } 180 | } 181 | } 182 | }, 183 | "author": "chemzqm@gmail.com", 184 | "license": "MIT", 185 | "devDependencies": { 186 | "@chemzqm/tsconfig": "^0.0.3", 187 | "@chemzqm/tslint-config": "^1.0.18", 188 | "@types/node": "^10.14.7", 189 | "coc.nvim": "^0.0.80", 190 | "rimraf": "^2.6.3", 191 | "ts-loader": "^6.0.3", 192 | "tslint": "^5.16.0", 193 | "typescript": "^3.4.4", 194 | "webpack": "^4.34.0", 195 | "webpack-cli": "^3.3.4", 196 | "@emmetio/css-parser": "ramya-rao-a/css-parser#vscode", 197 | "@emmetio/html-matcher": "^0.3.3", 198 | "@emmetio/math-expression": "^0.1.1", 199 | "vscode-languageserver-protocol": "^3.15.0-next.5", 200 | "vscode-uri": "^1.0.6" 201 | }, 202 | "dependencies": { 203 | "vscode-emmet-helper": "^1.2.15" 204 | } 205 | } 206 | -------------------------------------------------------------------------------- /src/abbreviationActions.ts: -------------------------------------------------------------------------------- 1 | import { workspace } from 'coc.nvim' 2 | import { HtmlNode, Node, Property, Rule, Stylesheet } from 'EmmetNode' 3 | import { Position, Range, TextDocument } from 'vscode-languageserver-protocol' 4 | import { comparePosition, positionInRange, getMappingForIncludedLanguages, getEmmetMode, allowedMimeTypesInScriptTag, getInnerRange, isStyleSheet } from './util' 5 | 6 | const hexColorRegex = /^#[\d,a-f,A-F]{0,6}$/ 7 | 8 | /** 9 | * Checks if given position is a valid location to expand emmet abbreviation. 10 | * Works only on html and css/less/scss syntax 11 | * @param document current Text Document 12 | * @param rootNode parsed document 13 | * @param currentNode current node in the parsed document 14 | * @param syntax syntax of the abbreviation 15 | * @param position position to validate 16 | * @param abbreviationRange The range of the abbreviation for which given position is being validated 17 | */ 18 | export function isValidLocationForEmmetAbbreviation(document: TextDocument, rootNode: Node | undefined, currentNode: Node | null, syntax: string, position: Position, abbreviationRange: Range): boolean { 19 | if (isStyleSheet(syntax)) { 20 | const stylesheet = rootNode 21 | if (stylesheet && 22 | (stylesheet.comments || []).some(x => comparePosition(position, x.start) >= 0 && comparePosition(position, x.end) <= 0)) { 23 | return false 24 | } 25 | // Continue validation only if the file was parse-able and the currentNode has been found 26 | if (!currentNode) { 27 | return true 28 | } 29 | 30 | // Fix for https://github.com/Microsoft/issues/34162 31 | // Other than sass, stylus, we can make use of the terminator tokens to validate position 32 | if (syntax !== 'sass' && syntax !== 'stylus' && currentNode.type === 'property') { 33 | 34 | // Fix for upstream issue https://github.com/emmetio/css-parser/issues/3 35 | if (currentNode.parent 36 | && currentNode.parent.type !== 'rule' 37 | && currentNode.parent.type !== 'at-rule') { 38 | return false 39 | } 40 | 41 | const abbreviation = document.getText(Range.create(abbreviationRange.start.line, abbreviationRange.start.character, abbreviationRange.end.line, abbreviationRange.end.character)) 42 | const propertyNode = currentNode 43 | if (propertyNode.terminatorToken 44 | && propertyNode.separator 45 | && comparePosition(position, propertyNode.separatorToken.end) >= 0 46 | && comparePosition(position, propertyNode.terminatorToken.start) <= 0 47 | && abbreviation.indexOf(':') === -1) { 48 | return hexColorRegex.test(abbreviation) || abbreviation === '!' 49 | } 50 | if (!propertyNode.terminatorToken 51 | && propertyNode.separator 52 | && comparePosition(position, propertyNode.separatorToken.end) >= 0 53 | && abbreviation.indexOf(':') === -1) { 54 | return hexColorRegex.test(abbreviation) || abbreviation === '!' 55 | } 56 | if (hexColorRegex.test(abbreviation) || abbreviation === '!') { 57 | return false 58 | } 59 | } 60 | 61 | // If current node is a rule or at-rule, then perform additional checks to ensure 62 | // emmet suggestions are not provided in the rule selector 63 | if (currentNode.type !== 'rule' && currentNode.type !== 'at-rule') { 64 | return true 65 | } 66 | 67 | const currentCssNode = currentNode 68 | 69 | // Position is valid if it occurs after the `{` that marks beginning of rule contents 70 | if (comparePosition(position, currentCssNode.contentStartToken.end) > 0) { 71 | return true 72 | } 73 | 74 | // Workaround for https://github.com/Microsoft/30188 75 | // The line above the rule selector is considered as part of the selector by the css-parser 76 | // But we should assume it is a valid location for css properties under the parent rule 77 | if (currentCssNode.parent 78 | && (currentCssNode.parent.type === 'rule' || currentCssNode.parent.type === 'at-rule') 79 | && currentCssNode.selectorToken 80 | && position.line !== currentCssNode.selectorToken.end.line 81 | && currentCssNode.selectorToken.start.character === abbreviationRange.start.character 82 | && currentCssNode.selectorToken.start.line === abbreviationRange.start.line 83 | ) { 84 | return true 85 | } 86 | 87 | return false 88 | } 89 | 90 | const startAngle = '<' 91 | const endAngle = '>' 92 | const escape = '\\' 93 | const question = '?' 94 | const currentHtmlNode = currentNode 95 | let start = Position.create(0, 0) 96 | 97 | if (currentHtmlNode) { 98 | if (currentHtmlNode.name === 'script') { 99 | const typeAttribute = (currentHtmlNode.attributes || []).filter(x => x.name.toString() === 'type')[0] 100 | const typeValue = typeAttribute ? typeAttribute.value.toString() : '' 101 | 102 | if (allowedMimeTypesInScriptTag.indexOf(typeValue) > -1) { 103 | return true 104 | } 105 | 106 | const isScriptJavascriptType = !typeValue || typeValue === 'application/javascript' || typeValue === 'text/javascript' 107 | if (isScriptJavascriptType) { 108 | return !!getSyntaxFromArgs({ language: 'javascript' }) 109 | } 110 | return false 111 | } 112 | 113 | const innerRange = getInnerRange(currentHtmlNode) 114 | 115 | // Fix for https://github.com/Microsoft/issues/28829 116 | if (!innerRange || !positionInRange(position, innerRange)) { 117 | return false 118 | } 119 | 120 | // Fix for https://github.com/Microsoft/issues/35128 121 | // Find the position up till where we will backtrack looking for unescaped < or > 122 | // to decide if current position is valid for emmet expansion 123 | start = innerRange.start 124 | let lastChildBeforePosition = currentHtmlNode.firstChild 125 | while (lastChildBeforePosition) { 126 | if (comparePosition(lastChildBeforePosition.end, position) > 0) { 127 | break 128 | } 129 | start = lastChildBeforePosition.end 130 | lastChildBeforePosition = lastChildBeforePosition.nextSibling 131 | } 132 | } 133 | let textToBackTrack = document.getText(Range.create(start.line, start.character, abbreviationRange.start.line, abbreviationRange.start.character)) 134 | 135 | // Worse case scenario is when cursor is inside a big chunk of text which needs to backtracked 136 | // Backtrack only 500 offsets to ensure we dont waste time doing this 137 | if (textToBackTrack.length > 500) { 138 | textToBackTrack = textToBackTrack.substr(textToBackTrack.length - 500) 139 | } 140 | 141 | if (!textToBackTrack.trim()) { 142 | return true 143 | } 144 | 145 | let valid = true 146 | let foundSpace = false; // If < is found before finding whitespace, then its valid abbreviation. Eg: = 0) { 153 | const char = textToBackTrack[i] 154 | i-- 155 | if (!foundSpace && /\s/.test(char)) { 156 | foundSpace = true 157 | continue 158 | } 159 | if (char === question && textToBackTrack[i] === startAngle) { 160 | i-- 161 | continue 162 | } 163 | // Fix for https://github.com/Microsoft/issues/55411 164 | // A space is not a valid character right after < in a tag name. 165 | if (/\s/.test(char) && textToBackTrack[i] === startAngle) { 166 | i-- 167 | continue 168 | } 169 | if (char !== startAngle && char !== endAngle) { 170 | continue 171 | } 172 | if (i >= 0 && textToBackTrack[i] === escape) { 173 | i-- 174 | continue 175 | } 176 | if (char === endAngle) { 177 | if (i >= 0 && textToBackTrack[i] === '=') { 178 | continue; // False alarm of cases like => 179 | } else { 180 | break 181 | } 182 | } 183 | if (char === startAngle) { 184 | valid = !foundSpace 185 | break 186 | } 187 | } 188 | return valid 189 | } 190 | 191 | function getSyntaxFromArgs(args: { [x: string]: string }): string | undefined { 192 | const mappedModes = getMappingForIncludedLanguages() 193 | const language: string = args['language'] 194 | const parentMode: string = args['parentMode'] 195 | const excludedLanguages = workspace.getConfiguration('emmet')['excludeLanguages'] ? workspace.getConfiguration('emmet')['excludeLanguages'] : [] 196 | if (excludedLanguages.indexOf(language) > -1) { 197 | return 198 | } 199 | 200 | let syntax = getEmmetMode((mappedModes[language] ? mappedModes[language] : language), excludedLanguages) 201 | if (!syntax) { 202 | syntax = getEmmetMode((mappedModes[parentMode] ? mappedModes[parentMode] : parentMode), excludedLanguages) 203 | } 204 | 205 | return syntax 206 | } 207 | -------------------------------------------------------------------------------- /src/bufferStream.ts: -------------------------------------------------------------------------------- 1 | /*--------------------------------------------------------------------------------------------- 2 | * Copyright (c) Microsoft Corporation. All rights reserved. 3 | * Licensed under the MIT License. See License.txt in the project root for license information. 4 | *--------------------------------------------------------------------------------------------*/ 5 | 6 | /* Based on @sergeche's work in his emmet plugin */ 7 | 8 | import { TextDocument, Position, Range } from 'vscode-languageserver-protocol' 9 | 10 | export function comparePosition(position: Position, other: Position): number { 11 | if (position.line > other.line) return 1 12 | if (other.line == position.line && position.character > other.character) return 1 13 | if (other.line == position.line && position.character == other.character) return 0 14 | return -1 15 | } 16 | 17 | /** 18 | * A stream reader for VSCode's `TextDocument` 19 | * Based on @emmetio/stream-reader and @emmetio/atom-plugin 20 | */ 21 | export class DocumentStreamReader { 22 | private document: TextDocument 23 | private start: Position 24 | private _eof: Position 25 | private _sof: Position 26 | public pos: Position 27 | private _eol: string 28 | 29 | constructor(document: TextDocument, pos?: Position, limit?: Range) { 30 | 31 | this.document = document 32 | this.start = this.pos = pos ? pos : Position.create(0, 0) 33 | this._sof = limit ? limit.start : Position.create(0, 0) 34 | this._eof = limit ? limit.end : Position.create(document.lineCount - 1, this._lineLength(this.document.lineCount - 1)) 35 | this._eol = `\n` 36 | } 37 | 38 | /** 39 | * Returns true only if the stream is at the start of the file. 40 | */ 41 | sof(): boolean { 42 | return comparePosition(this.pos, this._sof) <= 0 43 | } 44 | 45 | /** 46 | * Returns true only if the stream is at the end of the file. 47 | */ 48 | eof(): boolean { 49 | return comparePosition(this.pos, this._eof) >= 0 50 | } 51 | 52 | /** 53 | * Creates a new stream instance which is limited to given range for given document 54 | */ 55 | limit(start: Position, end: Position): DocumentStreamReader { 56 | return new DocumentStreamReader(this.document, start, Range.create(start, end)) 57 | } 58 | 59 | /** 60 | * Returns the next character code in the stream without advancing it. 61 | * Will return NaN at the end of the file. 62 | */ 63 | peek(): number { 64 | if (this.eof()) { 65 | return NaN 66 | } 67 | const line = this.getline(this.pos.line) 68 | return this.pos.character < line.length ? line.charCodeAt(this.pos.character) : this._eol.charCodeAt(0) 69 | } 70 | 71 | getline(line: number): string { 72 | let content = this.document.getText() 73 | let lines = content.split('\n') 74 | return lines[line] || '' 75 | } 76 | 77 | /** 78 | * Returns the next character in the stream and advances it. 79 | * Also returns NaN when no more characters are available. 80 | */ 81 | next(): number { 82 | if (this.eof()) { 83 | return NaN 84 | } 85 | const line = this.getline(this.pos.line) 86 | let code: number 87 | if (this.pos.character < line.length) { 88 | code = line.charCodeAt(this.pos.character) 89 | this.pos = Position.create(this.pos.line, this.pos.character + 1) 90 | } else { 91 | code = this._eol.charCodeAt(this.pos.character - line.length) 92 | this.pos = Position.create(this.pos.line + 1, this.pos.character) 93 | } 94 | 95 | if (this.eof()) { 96 | // restrict pos to eof, if in case it got moved beyond eof 97 | this.pos = Position.create(this._eof.line, this._eof.character) 98 | } 99 | 100 | return code 101 | } 102 | 103 | /** 104 | * Backs up the stream n characters. Backing it up further than the 105 | * start of the current token will cause things to break, so be careful. 106 | */ 107 | backUp(n: number) { 108 | let row = this.pos.line 109 | let column = this.pos.character 110 | column -= (n || 1) 111 | 112 | while (row >= 0 && column < 0) { 113 | row-- 114 | column += this._lineLength(row) 115 | } 116 | 117 | this.pos = row < 0 || column < 0 118 | ? Position.create(0, 0) 119 | : Position.create(row, column) 120 | 121 | return this.peek() 122 | } 123 | 124 | /** 125 | * Get the string between the start of the current token and the 126 | * current stream position. 127 | */ 128 | current(): string { 129 | return this.substring(this.start, this.pos) 130 | } 131 | 132 | /** 133 | * Returns contents for given range 134 | */ 135 | substring(from: Position, to: Position): string { 136 | return this.document.getText(Range.create(from, to)) 137 | } 138 | 139 | /** 140 | * Creates error object with current stream state 141 | */ 142 | error(message: string): Error { 143 | const err = new Error(`${message} at row ${this.pos.line}, column ${this.pos.character}`) 144 | 145 | return err 146 | } 147 | 148 | /** 149 | * Returns line length of given row, including line ending 150 | */ 151 | _lineLength(row: number): number { 152 | const line = this.getline(row) 153 | return line.length 154 | } 155 | 156 | /** 157 | * `match` can be a character code or a function that takes a character code 158 | * and returns a boolean. If the next character in the stream 'matches' 159 | * the given argument, it is consumed and returned. 160 | * Otherwise, `false` is returned. 161 | */ 162 | eat(match: number | Function): boolean { 163 | const ch = this.peek() 164 | const ok = typeof match === 'function' ? match(ch) : ch === match 165 | 166 | if (ok) { 167 | this.next() 168 | } 169 | 170 | return ok 171 | } 172 | 173 | /** 174 | * Repeatedly calls eat with the given argument, until it 175 | * fails. Returns true if any characters were eaten. 176 | */ 177 | eatWhile(match: number | Function): boolean { 178 | const start = this.pos 179 | while (!this.eof() && this.eat(match)) { } 180 | return comparePosition(this.pos, start) != 0 181 | } 182 | } 183 | -------------------------------------------------------------------------------- /src/defaultCompletionProvider.ts: -------------------------------------------------------------------------------- 1 | /*--------------------------------------------------------------------------------------------- 2 | * Copyright (c) Microsoft Corporation. All rights reserved. 3 | * Licensed under the MIT License. See License.txt in the project root for license information. 4 | *--------------------------------------------------------------------------------------------*/ 5 | import {CompletionItemProvider, workspace} from 'coc.nvim' 6 | import {Node, Stylesheet} from 'EmmetNode' 7 | import {CancellationToken, CompletionContext, CompletionItem, CompletionList, CompletionTriggerKind, InsertTextFormat, Position, Range, TextDocument, CompletionItemKind} from 'vscode-languageserver-protocol' 8 | import {isValidLocationForEmmetAbbreviation} from './abbreviationActions' 9 | import {getEmbeddedCssNodeIfAny, getEmmetConfiguration, getEmmetHelper, getEmmetMode, getMappingForIncludedLanguages, getNode, isStyleAttribute, isStyleSheet, parseDocument, parsePartialStylesheet} from './util' 10 | 11 | export class DefaultCompletionItemProvider implements CompletionItemProvider { 12 | 13 | private lastCompletionType: string | undefined 14 | 15 | public resolveCompletionItem(item: CompletionItem): CompletionItem { 16 | if (item.data) { 17 | const {textEdit} = item.data 18 | item.textEdit = textEdit 19 | delete item.data.textEdit 20 | } 21 | return item 22 | } 23 | 24 | public provideCompletionItems(document: TextDocument, position: Position, _: CancellationToken, context: CompletionContext): Thenable | undefined { 25 | const completionResult = this.provideCompletionItemsInternal(document, position, context) 26 | if (!completionResult) { 27 | this.lastCompletionType = undefined 28 | return 29 | } 30 | 31 | return completionResult.then(completionList => { 32 | if (!completionList || !completionList.items.length) { 33 | this.lastCompletionType = undefined 34 | return null 35 | } 36 | const item = completionList.items[0] 37 | const expandedText = item.documentation ? item.documentation.toString() : '' 38 | 39 | if (expandedText.startsWith('<')) { 40 | this.lastCompletionType = 'html' 41 | } else if (expandedText.indexOf(':') > 0 && expandedText.endsWith(';')) { 42 | this.lastCompletionType = 'css' 43 | } else { 44 | this.lastCompletionType = undefined 45 | } 46 | return completionList 47 | }) 48 | } 49 | 50 | private provideCompletionItemsInternal(document: TextDocument, position: Position, context: CompletionContext): Thenable | undefined { 51 | const emmetConfig = workspace.getConfiguration('emmet') 52 | const excludedLanguages = emmetConfig['excludeLanguages'] ? emmetConfig['excludeLanguages'] : [] 53 | if (excludedLanguages.indexOf(document.languageId) > -1) { 54 | return 55 | } 56 | 57 | const mappedLanguages = getMappingForIncludedLanguages() 58 | const isSyntaxMapped = mappedLanguages[document.languageId] ? true : false 59 | let syntax = getEmmetMode((isSyntaxMapped ? mappedLanguages[document.languageId] : document.languageId), excludedLanguages) 60 | 61 | if (!syntax || emmetConfig['showExpandedAbbreviation'] === 'never') { 62 | return 63 | } 64 | 65 | const helper = getEmmetHelper() 66 | let validateLocation = syntax === 'html' || syntax === 'jsx' || syntax === 'xml' 67 | let rootNode: Node 68 | let currentNode: Node | null = null 69 | 70 | if (document.languageId === 'html') { 71 | if (context.triggerKind === CompletionTriggerKind.TriggerForIncompleteCompletions) { 72 | switch (this.lastCompletionType) { 73 | case 'html': 74 | validateLocation = false 75 | break 76 | case 'css': 77 | validateLocation = false 78 | syntax = 'css' 79 | break 80 | default: 81 | break 82 | } 83 | 84 | } 85 | if (validateLocation) { 86 | rootNode = parseDocument(document, false) 87 | currentNode = getNode(rootNode, position, true) 88 | if (isStyleAttribute(currentNode, position)) { 89 | syntax = 'css' 90 | validateLocation = false 91 | } else { 92 | const embeddedCssNode = getEmbeddedCssNodeIfAny(document, currentNode, position) 93 | if (embeddedCssNode) { 94 | currentNode = getNode(embeddedCssNode, position, true) 95 | syntax = 'css' 96 | } 97 | } 98 | } 99 | 100 | } 101 | 102 | const extractAbbreviationResults = helper.extractAbbreviation(document, position, !isStyleSheet(syntax)) 103 | if (!extractAbbreviationResults || !helper.isAbbreviationValid(syntax, extractAbbreviationResults.abbreviation)) { 104 | return 105 | } 106 | 107 | if (isStyleSheet(document.languageId) && context.triggerKind !== CompletionTriggerKind.TriggerForIncompleteCompletions) { 108 | validateLocation = true 109 | let usePartialParsing = workspace.getConfiguration('emmet')['optimizeStylesheetParsing'] === true 110 | rootNode = usePartialParsing && document.lineCount > 1000 ? parsePartialStylesheet(document, position) : parseDocument(document, false) as Stylesheet 111 | if (!rootNode) { 112 | return 113 | } 114 | currentNode = getNode(rootNode, position, true) 115 | } 116 | 117 | if (validateLocation && !isValidLocationForEmmetAbbreviation(document, rootNode, currentNode, syntax, position, extractAbbreviationResults.abbreviationRange)) { 118 | return 119 | } 120 | 121 | let noiseCheckPromise: Thenable = Promise.resolve() 122 | 123 | // Fix for https://github.com/Microsoft/issues/32647 124 | // Check for document symbols in js/ts/jsx/tsx and avoid triggering emmet for abbreviations of the form symbolName.sometext 125 | // Presence of > or * or + in the abbreviation denotes valid abbreviation that should trigger emmet 126 | if (!isStyleSheet(syntax) && (document.languageId === 'javascript' || document.languageId === 'javascriptreact' || document.languageId === 'typescript' || document.languageId === 'typescriptreact')) { 127 | let abbreviation: string = extractAbbreviationResults.abbreviation 128 | if (abbreviation.startsWith('this.')) { 129 | noiseCheckPromise = Promise.resolve(true) 130 | } 131 | } 132 | 133 | return noiseCheckPromise.then((noise): CompletionList | undefined => { 134 | if (noise) { 135 | return 136 | } 137 | 138 | let result = helper.doComplete(document, position, syntax, getEmmetConfiguration(syntax!)) 139 | let newItems: CompletionItem[] = [] 140 | let {option} = context as any 141 | if (result && result.items) { 142 | result.items.forEach((item: any) => { 143 | let newItem: CompletionItem = {label: item.label} 144 | newItem.documentation = item.documentation 145 | newItem.detail = item.detail 146 | newItem.insertTextFormat = InsertTextFormat.Snippet 147 | let oldrange = item.textEdit.range 148 | const textEdit = { 149 | range: Range.create(oldrange.start.line, oldrange.start.character, oldrange.end.line, oldrange.end.character), 150 | newText: item.textEdit.newText 151 | } 152 | if (emmetConfig['showSuggestionsAsSnippets'] === true) { 153 | newItem.kind = CompletionItemKind.Snippet 154 | } 155 | newItem.filterText = option ? option.input : item.word 156 | newItem.data = { 157 | word: newItem.filterText, 158 | textEdit 159 | } 160 | newItem.sortText = item.sortText 161 | newItems.push(newItem) 162 | }) 163 | } 164 | return { 165 | items: newItems, 166 | engross: false, 167 | isIncomplete: true 168 | } as any 169 | }) 170 | } 171 | } 172 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { languages, workspace, ExtensionContext } from 'coc.nvim' 2 | import { DefaultCompletionItemProvider } from './defaultCompletionProvider' 3 | import { LANGUAGE_MODES, getMappingForIncludedLanguages } from './util' 4 | 5 | export function activate(context: ExtensionContext): void { 6 | registerCompletionProviders(context) 7 | 8 | context.subscriptions.push(workspace.onDidChangeConfiguration(e => { 9 | if (e.affectsConfiguration('emmet.includeLanguages')) { 10 | registerCompletionProviders(context) 11 | } 12 | })) 13 | 14 | workspace.onDidOpenTextDocument(() => { 15 | registerCompletionProviders(context) 16 | }, null, context.subscriptions) 17 | } 18 | 19 | /** 20 | * Holds any registered completion providers by their language strings 21 | */ 22 | const registeredModes: Set = new Set() 23 | function registerCompletionProviders(context: ExtensionContext): void { 24 | let includedLanguages = getMappingForIncludedLanguages() 25 | 26 | let current_languages = workspace.filetypes 27 | const emmetConfig = workspace.getConfiguration('emmet') 28 | for (let language of current_languages) { 29 | let emmetMode = Object.keys(LANGUAGE_MODES).find(s => s == language) || includedLanguages[language] 30 | if (!emmetMode || registeredModes.has(emmetMode)) continue 31 | registeredModes.add(emmetMode) 32 | let filetypes = [emmetMode] 33 | if (emmetMode != language) { 34 | filetypes.push(language) 35 | } 36 | for (let key of Object.keys(includedLanguages)) { 37 | let val = includedLanguages[key] 38 | if (val == emmetMode && filetypes.indexOf(val) == -1) { 39 | filetypes.push(val) 40 | } 41 | } 42 | let completionProvider = new DefaultCompletionItemProvider() 43 | const provider = languages.registerCompletionItemProvider(`emmet-${emmetMode}`, 'EM', filetypes, completionProvider, LANGUAGE_MODES[emmetMode], emmetConfig.get('priority', 3)) 44 | context.subscriptions.push(provider) 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/typings.ts/EmmetNode.d.ts: -------------------------------------------------------------------------------- 1 | /*--------------------------------------------------------------------------------------------- 2 | * Copyright (c) Microsoft Corporation. All rights reserved. 3 | * Licensed under the MIT License. See License.txt in the project root for license information. 4 | *--------------------------------------------------------------------------------------------*/ 5 | 6 | declare module 'EmmetNode' { 7 | import { Position } from 'vscode-languageserver-protocol' 8 | 9 | export interface Node { 10 | start: Position 11 | end: Position 12 | type: string 13 | parent: Node 14 | firstChild: Node 15 | nextSibling: Node 16 | previousSibling: Node 17 | children: Node[] 18 | } 19 | 20 | export interface Token { 21 | start: Position 22 | end: Position 23 | stream: BufferStream 24 | toString(): string 25 | } 26 | 27 | export interface CssToken extends Token { 28 | size: number 29 | item(number: number): any 30 | type: string 31 | } 32 | 33 | export interface HtmlToken extends Token { 34 | value: string 35 | } 36 | 37 | export interface Attribute extends Token { 38 | name: Token 39 | value: Token 40 | } 41 | 42 | export interface HtmlNode extends Node { 43 | name: string 44 | open: Token 45 | close: Token 46 | parent: HtmlNode 47 | firstChild: HtmlNode 48 | nextSibling: HtmlNode 49 | previousSibling: HtmlNode 50 | children: HtmlNode[] 51 | attributes: Attribute[] 52 | } 53 | 54 | export interface CssNode extends Node { 55 | name: string 56 | parent: CssNode 57 | firstChild: CssNode 58 | nextSibling: CssNode 59 | previousSibling: CssNode 60 | children: CssNode[] 61 | } 62 | 63 | export interface Rule extends CssNode { 64 | selectorToken: Token 65 | contentStartToken: Token 66 | contentEndToken: Token 67 | } 68 | 69 | export interface Property extends CssNode { 70 | valueToken: Token 71 | separator: string 72 | parent: Rule 73 | terminatorToken: Token 74 | separatorToken: Token 75 | value: string 76 | } 77 | 78 | export interface Stylesheet extends Node { 79 | comments: Token[] 80 | } 81 | 82 | export interface BufferStream { 83 | peek(): number 84 | next(): number 85 | backUp(n: number): number 86 | current(): string 87 | substring(from: Position, to: Position): string 88 | eat(match: any): boolean 89 | eatWhile(match: any): boolean 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /src/util.ts: -------------------------------------------------------------------------------- 1 | /*--------------------------------------------------------------------------------------------- 2 | * Copyright (c) Microsoft Corporation. All rights reserved. 3 | * Licensed under the MIT License. See License.txt in the project root for license information. 4 | *--------------------------------------------------------------------------------------------*/ 5 | import { workspace, window } from 'coc.nvim' 6 | import { TextDocument, Range, Position } from 'vscode-languageserver-protocol' 7 | import parse from '@emmetio/html-matcher' 8 | import parseStylesheet from '@emmetio/css-parser' 9 | import { Node, HtmlNode, CssToken, Property, Rule, Stylesheet } from 'EmmetNode' 10 | import { DocumentStreamReader, comparePosition } from './bufferStream' 11 | 12 | let _emmetHelper: any 13 | let _currentExtensionsPath: string | undefined 14 | 15 | export { comparePosition } 16 | 17 | export function positionInRange(position: Position, range: Range): number { 18 | let { start, end } = range 19 | if (comparePosition(position, start) < 0) return -1 20 | if (comparePosition(position, end) > 0) return 1 21 | return 0 22 | } 23 | 24 | export function getEmmetHelper(): any { 25 | // Lazy load emmet-helper instead of importing it 26 | // directly to reduce the start-up time of the extension 27 | if (!_emmetHelper) { 28 | _emmetHelper = require('vscode-emmet-helper') 29 | } 30 | updateEmmetExtensionsPath() 31 | return _emmetHelper 32 | } 33 | 34 | /** 35 | * Update Emmet Helper to use user snippets from the extensionsPath setting 36 | */ 37 | export function updateEmmetExtensionsPath(): void { 38 | if (!_emmetHelper) { 39 | return 40 | } 41 | let extensionsPath = workspace.getConfiguration('emmet')['extensionsPath'] 42 | if (_currentExtensionsPath !== extensionsPath) { 43 | _currentExtensionsPath = extensionsPath 44 | _emmetHelper.updateExtensionsPath(extensionsPath, workspace.rootPath).then(null, (err: string) => window.showMessage(err, 'error')) 45 | } 46 | } 47 | 48 | /** 49 | * Mapping between languages that support Emmet and completion trigger characters 50 | */ 51 | export const LANGUAGE_MODES: { [id: string]: string[] } = { 52 | 'html': ['!', '.', '}', ':', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 53 | 'jade': ['!', '.', '}', ':', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 54 | 'slim': ['!', '.', '}', ':', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 55 | 'haml': ['!', '.', '}', ':', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 56 | 'xml': ['.', '}', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 57 | 'xsl': ['!', '.', '}', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 58 | 'css': [':', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 59 | 'scss': [':', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 60 | 'sass': [':', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 61 | 'less': [':', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 62 | 'stylus': [':', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 63 | 'javascriptreact': ['!', '.', '}', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 64 | 'typescriptreact': ['!', '.', '}', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] 65 | } 66 | 67 | export function isStyleSheet(syntax: string): boolean { 68 | let stylesheetSyntaxes = ['css', 'scss', 'sass', 'less', 'stylus', 'wxss'] 69 | return (stylesheetSyntaxes.indexOf(syntax) > -1) 70 | } 71 | 72 | export function getMappingForIncludedLanguages(): { [index: string]: string } { 73 | // Explicitly map languages that have built-in grammar in VS Code to their parent language 74 | // to get emmet completion support 75 | // For other languages, users will have to use `emmet.includeLanguages` or 76 | // language specific extensions can provide emmet completion support 77 | const MAPPED_MODES: Object = { 78 | 'handlebars': 'html', 79 | 'php': 'html' 80 | } 81 | 82 | const finalMappedModes = Object.create(null) 83 | let includeLanguagesConfig = workspace.getConfiguration('emmet')['includeLanguages'] 84 | let includeLanguages = Object.assign({}, MAPPED_MODES, includeLanguagesConfig ? includeLanguagesConfig : {}) 85 | Object.keys(includeLanguages).forEach(syntax => { 86 | if (typeof includeLanguages[syntax] === 'string' && LANGUAGE_MODES[includeLanguages[syntax]]) { 87 | finalMappedModes[syntax] = includeLanguages[syntax] 88 | } 89 | }) 90 | return finalMappedModes 91 | } 92 | 93 | /** 94 | * Get the corresponding emmet mode for given language mode 95 | * Eg: jsx for typescriptreact/javascriptreact or pug for jade 96 | * If the language is not supported by emmet or has been exlcuded via `exlcudeLanguages` setting, 97 | * then nothing is returned 98 | * 99 | * @param language 100 | * @param exlcudedLanguages Array of language ids that user has chosen to exlcude for emmet 101 | */ 102 | export function getEmmetMode(language: string, excludedLanguages: string[]): string | undefined { 103 | if (!language || excludedLanguages.indexOf(language) > -1) { 104 | return 105 | } 106 | if (/\b(typescriptreact|javascriptreact|jsx-tags)\b/.test(language)) { // treat tsx like jsx 107 | return 'jsx' 108 | } 109 | if (language === 'sass-indented') { // map sass-indented to sass 110 | return 'sass' 111 | } 112 | if (language === 'jade') { 113 | return 'pug' 114 | } 115 | const emmetModes = ['html', 'pug', 'slim', 'haml', 'xml', 'xsl', 'jsx', 'css', 'scss', 'sass', 'less', 'stylus'] 116 | if (emmetModes.indexOf(language) > -1) { 117 | return language 118 | } 119 | return 120 | } 121 | 122 | /** 123 | * Parses the given document using emmet parsing modules 124 | */ 125 | export function parseDocument(document: TextDocument, showError: boolean = true): Node | undefined { 126 | let parseContent = isStyleSheet(document.languageId) ? parseStylesheet : parse 127 | try { 128 | return parseContent(new DocumentStreamReader(document)) 129 | } catch (e) { 130 | if (showError) { 131 | console.error('Emmet: Failed to parse the file') 132 | } 133 | } 134 | return undefined 135 | } 136 | 137 | const closeBrace = 125 138 | const openBrace = 123 139 | const slash = 47 140 | const star = 42 141 | 142 | /** 143 | * Traverse the given document backward & forward from given position 144 | * to find a complete ruleset, then parse just that to return a Stylesheet 145 | * @param document TextDocument 146 | * @param position Position 147 | */ 148 | export function parsePartialStylesheet(document: TextDocument, position: Position): Stylesheet | undefined { 149 | const isCSS = document.languageId === 'css' 150 | let startPosition = Position.create(0, 0) 151 | let lastLine = document.getText(Range.create(document.lineCount - 1, 0, document.lineCount, 0)).replace(/\n$/, '') 152 | let endPosition = Position.create(document.lineCount - 1, lastLine.length) 153 | const limitCharacter = document.offsetAt(position) - 5000 154 | const limitPosition = limitCharacter > 0 ? document.positionAt(limitCharacter) : startPosition 155 | const stream = new DocumentStreamReader(document, position) 156 | 157 | function findOpeningCommentBeforePosition(pos: Position): Position | undefined { 158 | let text = document.getText(Range.create(0, 0, pos.line, pos.character)) 159 | let offset = text.lastIndexOf('/*') 160 | if (offset === -1) { 161 | return 162 | } 163 | return document.positionAt(offset) 164 | } 165 | 166 | function findClosingCommentAfterPosition(pos: Position): Position | undefined { 167 | let text = document.getText(Range.create(pos.line, pos.character, document.lineCount - 1, lastLine.length)) 168 | let offset = text.indexOf('*/') 169 | if (offset === -1) { 170 | return 171 | } 172 | offset += 2 + document.offsetAt(pos) 173 | return document.positionAt(offset) 174 | } 175 | 176 | function consumeLineCommentBackwards() { 177 | if (!isCSS && currentLine !== stream.pos.line) { 178 | currentLine = stream.pos.line 179 | let line = document.getText(Range.create(currentLine, 0, currentLine + 1, 0)) 180 | let startLineComment = line.indexOf('//') 181 | if (startLineComment > -1) { 182 | stream.pos = Position.create(currentLine, startLineComment) 183 | } 184 | } 185 | } 186 | 187 | function consumeBlockCommentBackwards() { 188 | if (stream.peek() === slash) { 189 | if (stream.backUp(1) === star) { 190 | stream.pos = findOpeningCommentBeforePosition(stream.pos) || startPosition 191 | } else { 192 | stream.next() 193 | } 194 | } 195 | } 196 | 197 | function consumeCommentForwards() { 198 | if (stream.eat(slash)) { 199 | if (stream.eat(slash) && !isCSS) { 200 | stream.pos = Position.create(stream.pos.line + 1, 0) 201 | } else if (stream.eat(star)) { 202 | stream.pos = findClosingCommentAfterPosition(stream.pos) || endPosition 203 | } 204 | } 205 | } 206 | 207 | // Go forward until we find a closing brace. 208 | while (!stream.eof() && !stream.eat(closeBrace)) { 209 | if (stream.peek() === slash) { 210 | consumeCommentForwards() 211 | } else { 212 | stream.next() 213 | } 214 | } 215 | 216 | if (!stream.eof()) { 217 | endPosition = stream.pos 218 | } 219 | 220 | stream.pos = position 221 | let openBracesToFind = 1 222 | let currentLine = position.line 223 | let exit = false 224 | 225 | // Go back until we found an opening brace. If we find a closing one, consume its pair and continue. 226 | while (!exit && openBracesToFind > 0 && !stream.sof()) { 227 | consumeLineCommentBackwards() 228 | 229 | switch (stream.backUp(1)) { 230 | case openBrace: 231 | openBracesToFind-- 232 | break 233 | case closeBrace: 234 | if (isCSS) { 235 | stream.next() 236 | startPosition = stream.pos 237 | exit = true 238 | } else { 239 | openBracesToFind++ 240 | } 241 | break 242 | case slash: 243 | consumeBlockCommentBackwards() 244 | break 245 | default: 246 | break 247 | } 248 | 249 | if (position.line - stream.pos.line > 100 || comparePosition(stream.pos, limitPosition) <= 0) { 250 | exit = true 251 | } 252 | } 253 | 254 | // We are at an opening brace. We need to include its selector. 255 | currentLine = stream.pos.line 256 | openBracesToFind = 0 257 | let foundSelector = false 258 | while (!exit && !stream.sof() && !foundSelector && openBracesToFind >= 0) { 259 | 260 | consumeLineCommentBackwards() 261 | 262 | const ch = stream.backUp(1) 263 | if (/\s/.test(String.fromCharCode(ch))) { 264 | continue 265 | } 266 | 267 | switch (ch) { 268 | case slash: 269 | consumeBlockCommentBackwards() 270 | break 271 | case closeBrace: 272 | openBracesToFind++ 273 | break 274 | case openBrace: 275 | openBracesToFind-- 276 | break 277 | default: 278 | if (!openBracesToFind) { 279 | foundSelector = true 280 | } 281 | break 282 | } 283 | 284 | if (!stream.sof() && foundSelector) { 285 | startPosition = stream.pos 286 | } 287 | } 288 | 289 | try { 290 | return parseStylesheet(new DocumentStreamReader(document, startPosition, Range.create(startPosition, endPosition))) 291 | } catch (e) { 292 | return 293 | } 294 | } 295 | 296 | /** 297 | * Returns node corresponding to given position in the given root node 298 | */ 299 | export function getNode(root: Node | undefined, position: Position, includeNodeBoundary: boolean) { 300 | if (!root) { 301 | return null 302 | } 303 | 304 | let currentNode = root.firstChild 305 | let foundNode: Node | null = null 306 | 307 | while (currentNode) { 308 | const nodeStart: Position = currentNode.start 309 | const nodeEnd: Position = currentNode.end 310 | if ((comparePosition(nodeStart, position) < 0 && comparePosition(nodeEnd, position) > 0) 311 | || (includeNodeBoundary && (comparePosition(nodeStart, position) <= 0 && comparePosition(nodeEnd, position) >= 0))) { 312 | 313 | foundNode = currentNode 314 | // Dig deeper 315 | currentNode = currentNode.firstChild 316 | } else { 317 | currentNode = currentNode.nextSibling 318 | } 319 | } 320 | 321 | return foundNode 322 | } 323 | 324 | export const allowedMimeTypesInScriptTag = ['text/html', 'text/plain', 'text/x-template', 'text/template', 'text/ng-template'] 325 | 326 | /** 327 | * Returns inner range of an html node. 328 | * @param currentNode 329 | */ 330 | export function getInnerRange(currentNode: HtmlNode): Range | undefined { 331 | if (!currentNode.close) { 332 | return undefined 333 | } 334 | return Range.create(currentNode.open.end, currentNode.close.start) 335 | } 336 | 337 | /** 338 | * Returns the deepest non comment node under given node 339 | * @param node 340 | */ 341 | export function getDeepestNode(node: Node | undefined): Node | undefined { 342 | if (!node || !node.children || node.children.length === 0 || !node.children.find(x => x.type !== 'comment')) { 343 | return node 344 | } 345 | for (let i = node.children.length - 1; i >= 0; i--) { 346 | if (node.children[i].type !== 'comment') { 347 | return getDeepestNode(node.children[i]) 348 | } 349 | } 350 | return undefined 351 | } 352 | 353 | export function findNextWord(propertyValue: string, pos: number): [number | undefined, number | undefined] { 354 | 355 | let foundSpace = pos === -1 356 | let foundStart = false 357 | let foundEnd = false 358 | 359 | let newSelectionStart 360 | let newSelectionEnd 361 | while (pos < propertyValue.length - 1) { 362 | pos++ 363 | if (!foundSpace) { 364 | if (propertyValue[pos] === ' ') { 365 | foundSpace = true 366 | } 367 | continue 368 | } 369 | if (foundSpace && !foundStart && propertyValue[pos] === ' ') { 370 | continue 371 | } 372 | if (!foundStart) { 373 | newSelectionStart = pos 374 | foundStart = true 375 | continue 376 | } 377 | if (propertyValue[pos] === ' ') { 378 | newSelectionEnd = pos 379 | foundEnd = true 380 | break 381 | } 382 | } 383 | 384 | if (foundStart && !foundEnd) { 385 | newSelectionEnd = propertyValue.length 386 | } 387 | 388 | return [newSelectionStart, newSelectionEnd] 389 | } 390 | 391 | export function findPrevWord(propertyValue: string, pos: number): [number | undefined, number | undefined] { 392 | 393 | let foundSpace = pos === propertyValue.length 394 | let foundStart = false 395 | let foundEnd = false 396 | 397 | let newSelectionStart 398 | let newSelectionEnd 399 | while (pos > -1) { 400 | pos-- 401 | if (!foundSpace) { 402 | if (propertyValue[pos] === ' ') { 403 | foundSpace = true 404 | } 405 | continue 406 | } 407 | if (foundSpace && !foundEnd && propertyValue[pos] === ' ') { 408 | continue 409 | } 410 | if (!foundEnd) { 411 | newSelectionEnd = pos + 1 412 | foundEnd = true 413 | continue 414 | } 415 | if (propertyValue[pos] === ' ') { 416 | newSelectionStart = pos + 1 417 | foundStart = true 418 | break 419 | } 420 | } 421 | 422 | if (foundEnd && !foundStart) { 423 | newSelectionStart = 0 424 | } 425 | 426 | return [newSelectionStart, newSelectionEnd] 427 | } 428 | 429 | export function getEmmetConfiguration(syntax: string) { 430 | const emmetConfig = workspace.getConfiguration('emmet') 431 | const syntaxProfiles = Object.assign({}, emmetConfig['syntaxProfiles'] || {}) 432 | const preferences = Object.assign({}, emmetConfig['preferences'] || {}) 433 | // jsx, xml and xsl syntaxes need to have self closing tags unless otherwise configured by user 434 | if (syntax === 'jsx' || syntax === 'xml' || syntax === 'xsl') { 435 | syntaxProfiles[syntax] = syntaxProfiles[syntax] || {} 436 | if (typeof syntaxProfiles[syntax] === 'object' 437 | && !syntaxProfiles[syntax].hasOwnProperty('self_closing_tag') // Old Emmet format 438 | && !syntaxProfiles[syntax].hasOwnProperty('selfClosingStyle') // Emmet 2.0 format 439 | ) { 440 | syntaxProfiles[syntax] = { 441 | ...syntaxProfiles[syntax], 442 | selfClosingStyle: 'xml' 443 | } 444 | } 445 | } 446 | 447 | return { 448 | preferences, 449 | showExpandedAbbreviation: emmetConfig['showExpandedAbbreviation'], 450 | showAbbreviationSuggestions: emmetConfig['showAbbreviationSuggestions'], 451 | syntaxProfiles, 452 | variables: emmetConfig['variables'], 453 | excludeLanguages: emmetConfig['excludeLanguages'], 454 | showSuggestionsAsSnippets: emmetConfig['showSuggestionsAsSnippets'] 455 | } 456 | } 457 | 458 | /** 459 | * Itereates by each child, as well as nested child's children, in their order 460 | * and invokes `fn` for each. If `fn` function returns `false`, iteration stops 461 | */ 462 | export function iterateCSSToken(token: CssToken, fn: (x: any) => any): boolean { 463 | for (let i = 0, il = token.size; i < il; i++) { 464 | if (fn(token.item(i)) === false || iterateCSSToken(token.item(i), fn) === false) { 465 | return false 466 | } 467 | } 468 | return true 469 | } 470 | 471 | /** 472 | * Returns `name` CSS property from given `rule` 473 | */ 474 | export function getCssPropertyFromRule(rule: Rule, name: string): Property | undefined { 475 | return rule.children.find(node => node.type === 'property' && node.name === name) as Property 476 | } 477 | 478 | export function getEmbeddedCssNodeIfAny(document: TextDocument, currentNode: Node | null, position: Position): Node | undefined { 479 | if (!currentNode) { 480 | return 481 | } 482 | const currentHtmlNode = currentNode 483 | if (currentHtmlNode && currentHtmlNode.close) { 484 | const innerRange = getInnerRange(currentHtmlNode) 485 | if (innerRange && positionInRange(position, innerRange)) { 486 | if (currentHtmlNode.name === 'style' 487 | && comparePosition(currentHtmlNode.open.end, position) < 0 488 | && comparePosition(currentHtmlNode.close.start, position) > 0 489 | ) { 490 | let buffer = new DocumentStreamReader(document, currentHtmlNode.open.end, Range.create(currentHtmlNode.open.end, currentHtmlNode.close.start)) 491 | return parseStylesheet(buffer) 492 | } 493 | } 494 | } 495 | return 496 | } 497 | 498 | export function isStyleAttribute(currentNode: Node | null, position: Position): boolean { 499 | if (!currentNode) { 500 | return false 501 | } 502 | const currentHtmlNode = currentNode 503 | const index = (currentHtmlNode.attributes || []).findIndex(x => x.name.toString() === 'style') 504 | if (index === -1) { 505 | return false 506 | } 507 | const styleAttribute = currentHtmlNode.attributes[index] 508 | return comparePosition(position, styleAttribute.value.start) >= 0 && comparePosition(position, styleAttribute.value.end) <= 0 509 | } 510 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./node_modules/@chemzqm/tsconfig/tsconfig.json", 3 | "compilerOptions": { 4 | "declaration": false, 5 | "outDir": "lib", 6 | "target": "es2015", 7 | "module": "commonjs", 8 | "moduleResolution": "node", 9 | "noImplicitThis": true, 10 | "lib": ["es2018"], 11 | "plugins": [] 12 | }, 13 | "include": ["src"], 14 | "exclude": [] 15 | } 16 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./node_modules/@chemzqm/tslint-config/tslint.json", 3 | "rules": { 4 | }, 5 | "linterOptions": { 6 | "exclude": [ 7 | ] 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | 3 | module.exports = { 4 | entry: './src/index.ts', 5 | target: 'node', 6 | mode: 'none', 7 | resolve: { 8 | mainFields: ['module', 'main'], 9 | extensions: ['.js', '.ts'] 10 | }, 11 | externals: { 12 | 'coc.nvim': 'commonjs coc.nvim', 13 | 'vscode-emmet-helper': 'commonjs vscode-emmet-helper', 14 | }, 15 | module: { 16 | rules: [{ 17 | test: /\.ts$/, 18 | exclude: /node_modules/, 19 | use: [{ 20 | loader: 'ts-loader', 21 | options: { 22 | compilerOptions: { 23 | "sourceMap": true, 24 | } 25 | } 26 | }] 27 | }] 28 | }, 29 | output: { 30 | path: path.join(__dirname, 'lib'), 31 | filename: 'index.js', 32 | libraryTarget: "commonjs", 33 | }, 34 | plugins: [ 35 | ], 36 | node: { 37 | __dirname: false, 38 | __filename: false 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /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.0.0" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" 8 | integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== 9 | dependencies: 10 | "@babel/highlight" "^7.0.0" 11 | 12 | "@babel/highlight@^7.0.0": 13 | version "7.0.0" 14 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" 15 | integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== 16 | dependencies: 17 | chalk "^2.0.0" 18 | esutils "^2.0.2" 19 | js-tokens "^4.0.0" 20 | 21 | "@chemzqm/tsconfig@^0.0.3": 22 | version "0.0.3" 23 | resolved "https://registry.yarnpkg.com/@chemzqm/tsconfig/-/tsconfig-0.0.3.tgz#ce3480d15d8cec46a315488caa07c9fca819aecc" 24 | integrity sha512-MjF25vbqLYR+S+JJLgBi0vn4gZqv/C87H+yPSlVKEqlIJAJOGJOgFPUFvRS7pdRHqkv2flX/oRxzxhlu2V0X1w== 25 | 26 | "@chemzqm/tslint-config@^1.0.18": 27 | version "1.0.18" 28 | resolved "https://registry.yarnpkg.com/@chemzqm/tslint-config/-/tslint-config-1.0.18.tgz#b1ddf060591870fa69e15d2114437461b06e1250" 29 | integrity sha512-5yx/q1lBDPQE3ShrDlJs5biSwMgPotxPAoufMvWFRFKcVqIlRfEOdUjU5eh9gwdhICqLT1ydgPk5J4bEZQdUUQ== 30 | dependencies: 31 | tslint-config-prettier "^1.6.0" 32 | tslint-react "^3.2.0" 33 | 34 | "@emmetio/css-parser@ramya-rao-a/css-parser#vscode": 35 | version "0.4.0" 36 | resolved "https://codeload.github.com/ramya-rao-a/css-parser/tar.gz/370c480ac103bd17c7bcfb34bf5d577dc40d3660" 37 | dependencies: 38 | "@emmetio/stream-reader" "^2.2.0" 39 | "@emmetio/stream-reader-utils" "^0.1.0" 40 | 41 | "@emmetio/extract-abbreviation@0.1.6": 42 | version "0.1.6" 43 | resolved "https://registry.yarnpkg.com/@emmetio/extract-abbreviation/-/extract-abbreviation-0.1.6.tgz#e4a9856c1057f0aff7d443b8536477c243abe28c" 44 | integrity sha512-Ce3xE2JvTSEbASFbRbA1gAIcMcZWdS2yUYRaQbeM0nbOzaZrUYfa3ePtcriYRZOZmr+CkKA+zbjhvTpIOAYVcw== 45 | 46 | "@emmetio/html-matcher@^0.3.3": 47 | version "0.3.3" 48 | resolved "https://registry.yarnpkg.com/@emmetio/html-matcher/-/html-matcher-0.3.3.tgz#0bbdadc0882e185950f03737dc6dbf8f7bd90728" 49 | integrity sha1-C72twIguGFlQ8Dc33G2/j3vZByg= 50 | dependencies: 51 | "@emmetio/stream-reader" "^2.0.0" 52 | "@emmetio/stream-reader-utils" "^0.1.0" 53 | 54 | "@emmetio/math-expression@^0.1.1": 55 | version "0.1.1" 56 | resolved "https://registry.yarnpkg.com/@emmetio/math-expression/-/math-expression-0.1.1.tgz#1ff2c7f05800f64c57ca89038ee18bce9f5776dc" 57 | integrity sha1-H/LH8FgA9kxXyokDjuGLzp9Xdtw= 58 | dependencies: 59 | "@emmetio/stream-reader" "^2.0.1" 60 | "@emmetio/stream-reader-utils" "^0.1.0" 61 | 62 | "@emmetio/stream-reader-utils@^0.1.0": 63 | version "0.1.0" 64 | resolved "https://registry.yarnpkg.com/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz#244cb02c77ec2e74f78a9bd318218abc9c500a61" 65 | integrity sha1-JEywLHfsLnT3ipvTGCGKvJxQCmE= 66 | 67 | "@emmetio/stream-reader@^2.0.0", "@emmetio/stream-reader@^2.0.1", "@emmetio/stream-reader@^2.2.0": 68 | version "2.2.0" 69 | resolved "https://registry.yarnpkg.com/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz#46cffea119a0a003312a21c2d9b5628cb5fcd442" 70 | integrity sha1-Rs/+oRmgoAMxKiHC2bVijLX81EI= 71 | 72 | "@types/node@^10.14.7": 73 | version "10.14.7" 74 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.7.tgz#1854f0a9aa8d2cd6818d607b3d091346c6730362" 75 | integrity sha512-on4MmIDgHXiuJDELPk1NFaKVUxxCFr37tm8E9yN6rAiF5Pzp/9bBfBHkoexqRiY+hk/Z04EJU9kKEb59YqJ82A== 76 | 77 | "@webassemblyjs/ast@1.8.5": 78 | version "1.8.5" 79 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" 80 | integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== 81 | dependencies: 82 | "@webassemblyjs/helper-module-context" "1.8.5" 83 | "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 84 | "@webassemblyjs/wast-parser" "1.8.5" 85 | 86 | "@webassemblyjs/floating-point-hex-parser@1.8.5": 87 | version "1.8.5" 88 | resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" 89 | integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== 90 | 91 | "@webassemblyjs/helper-api-error@1.8.5": 92 | version "1.8.5" 93 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" 94 | integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== 95 | 96 | "@webassemblyjs/helper-buffer@1.8.5": 97 | version "1.8.5" 98 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" 99 | integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== 100 | 101 | "@webassemblyjs/helper-code-frame@1.8.5": 102 | version "1.8.5" 103 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" 104 | integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== 105 | dependencies: 106 | "@webassemblyjs/wast-printer" "1.8.5" 107 | 108 | "@webassemblyjs/helper-fsm@1.8.5": 109 | version "1.8.5" 110 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" 111 | integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== 112 | 113 | "@webassemblyjs/helper-module-context@1.8.5": 114 | version "1.8.5" 115 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" 116 | integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== 117 | dependencies: 118 | "@webassemblyjs/ast" "1.8.5" 119 | mamacro "^0.0.3" 120 | 121 | "@webassemblyjs/helper-wasm-bytecode@1.8.5": 122 | version "1.8.5" 123 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" 124 | integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== 125 | 126 | "@webassemblyjs/helper-wasm-section@1.8.5": 127 | version "1.8.5" 128 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" 129 | integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== 130 | dependencies: 131 | "@webassemblyjs/ast" "1.8.5" 132 | "@webassemblyjs/helper-buffer" "1.8.5" 133 | "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 134 | "@webassemblyjs/wasm-gen" "1.8.5" 135 | 136 | "@webassemblyjs/ieee754@1.8.5": 137 | version "1.8.5" 138 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" 139 | integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== 140 | dependencies: 141 | "@xtuc/ieee754" "^1.2.0" 142 | 143 | "@webassemblyjs/leb128@1.8.5": 144 | version "1.8.5" 145 | resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" 146 | integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== 147 | dependencies: 148 | "@xtuc/long" "4.2.2" 149 | 150 | "@webassemblyjs/utf8@1.8.5": 151 | version "1.8.5" 152 | resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" 153 | integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== 154 | 155 | "@webassemblyjs/wasm-edit@1.8.5": 156 | version "1.8.5" 157 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" 158 | integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== 159 | dependencies: 160 | "@webassemblyjs/ast" "1.8.5" 161 | "@webassemblyjs/helper-buffer" "1.8.5" 162 | "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 163 | "@webassemblyjs/helper-wasm-section" "1.8.5" 164 | "@webassemblyjs/wasm-gen" "1.8.5" 165 | "@webassemblyjs/wasm-opt" "1.8.5" 166 | "@webassemblyjs/wasm-parser" "1.8.5" 167 | "@webassemblyjs/wast-printer" "1.8.5" 168 | 169 | "@webassemblyjs/wasm-gen@1.8.5": 170 | version "1.8.5" 171 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" 172 | integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== 173 | dependencies: 174 | "@webassemblyjs/ast" "1.8.5" 175 | "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 176 | "@webassemblyjs/ieee754" "1.8.5" 177 | "@webassemblyjs/leb128" "1.8.5" 178 | "@webassemblyjs/utf8" "1.8.5" 179 | 180 | "@webassemblyjs/wasm-opt@1.8.5": 181 | version "1.8.5" 182 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" 183 | integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== 184 | dependencies: 185 | "@webassemblyjs/ast" "1.8.5" 186 | "@webassemblyjs/helper-buffer" "1.8.5" 187 | "@webassemblyjs/wasm-gen" "1.8.5" 188 | "@webassemblyjs/wasm-parser" "1.8.5" 189 | 190 | "@webassemblyjs/wasm-parser@1.8.5": 191 | version "1.8.5" 192 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" 193 | integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== 194 | dependencies: 195 | "@webassemblyjs/ast" "1.8.5" 196 | "@webassemblyjs/helper-api-error" "1.8.5" 197 | "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 198 | "@webassemblyjs/ieee754" "1.8.5" 199 | "@webassemblyjs/leb128" "1.8.5" 200 | "@webassemblyjs/utf8" "1.8.5" 201 | 202 | "@webassemblyjs/wast-parser@1.8.5": 203 | version "1.8.5" 204 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" 205 | integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== 206 | dependencies: 207 | "@webassemblyjs/ast" "1.8.5" 208 | "@webassemblyjs/floating-point-hex-parser" "1.8.5" 209 | "@webassemblyjs/helper-api-error" "1.8.5" 210 | "@webassemblyjs/helper-code-frame" "1.8.5" 211 | "@webassemblyjs/helper-fsm" "1.8.5" 212 | "@xtuc/long" "4.2.2" 213 | 214 | "@webassemblyjs/wast-printer@1.8.5": 215 | version "1.8.5" 216 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" 217 | integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== 218 | dependencies: 219 | "@webassemblyjs/ast" "1.8.5" 220 | "@webassemblyjs/wast-parser" "1.8.5" 221 | "@xtuc/long" "4.2.2" 222 | 223 | "@xtuc/ieee754@^1.2.0": 224 | version "1.2.0" 225 | resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" 226 | integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== 227 | 228 | "@xtuc/long@4.2.2": 229 | version "4.2.2" 230 | resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" 231 | integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 232 | 233 | abbrev@1: 234 | version "1.1.1" 235 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 236 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 237 | 238 | acorn-dynamic-import@^4.0.0: 239 | version "4.0.0" 240 | resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" 241 | integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== 242 | 243 | acorn@^6.0.5: 244 | version "6.1.1" 245 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" 246 | integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== 247 | 248 | ajv-errors@^1.0.0: 249 | version "1.0.1" 250 | resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" 251 | integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== 252 | 253 | ajv-keywords@^3.1.0: 254 | version "3.4.0" 255 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" 256 | integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw== 257 | 258 | ajv@^6.1.0: 259 | version "6.12.6" 260 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 261 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 262 | dependencies: 263 | fast-deep-equal "^3.1.1" 264 | fast-json-stable-stringify "^2.0.0" 265 | json-schema-traverse "^0.4.1" 266 | uri-js "^4.2.2" 267 | 268 | ansi-regex@^2.0.0: 269 | version "2.1.1" 270 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 271 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 272 | 273 | ansi-regex@^3.0.0: 274 | version "3.0.0" 275 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 276 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 277 | 278 | ansi-styles@^3.2.1: 279 | version "3.2.1" 280 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 281 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 282 | dependencies: 283 | color-convert "^1.9.0" 284 | 285 | anymatch@^2.0.0: 286 | version "2.0.0" 287 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" 288 | integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== 289 | dependencies: 290 | micromatch "^3.1.4" 291 | normalize-path "^2.1.1" 292 | 293 | aproba@^1.0.3, aproba@^1.1.1: 294 | version "1.2.0" 295 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 296 | integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== 297 | 298 | are-we-there-yet@~1.1.2: 299 | version "1.1.5" 300 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 301 | integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== 302 | dependencies: 303 | delegates "^1.0.0" 304 | readable-stream "^2.0.6" 305 | 306 | argparse@^1.0.7: 307 | version "1.0.10" 308 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 309 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 310 | dependencies: 311 | sprintf-js "~1.0.2" 312 | 313 | arr-diff@^4.0.0: 314 | version "4.0.0" 315 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 316 | integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= 317 | 318 | arr-flatten@^1.1.0: 319 | version "1.1.0" 320 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 321 | integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== 322 | 323 | arr-union@^3.1.0: 324 | version "3.1.0" 325 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 326 | integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= 327 | 328 | array-unique@^0.3.2: 329 | version "0.3.2" 330 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 331 | integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= 332 | 333 | asn1.js@^4.0.0: 334 | version "4.10.1" 335 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" 336 | integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== 337 | dependencies: 338 | bn.js "^4.0.0" 339 | inherits "^2.0.1" 340 | minimalistic-assert "^1.0.0" 341 | 342 | assert@^1.1.1: 343 | version "1.5.0" 344 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" 345 | integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== 346 | dependencies: 347 | object-assign "^4.1.1" 348 | util "0.10.3" 349 | 350 | assign-symbols@^1.0.0: 351 | version "1.0.0" 352 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 353 | integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= 354 | 355 | async-each@^1.0.1: 356 | version "1.0.3" 357 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" 358 | integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== 359 | 360 | atob@^2.1.1: 361 | version "2.1.2" 362 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" 363 | integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== 364 | 365 | balanced-match@^1.0.0: 366 | version "1.0.0" 367 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 368 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 369 | 370 | base64-js@^1.0.2: 371 | version "1.3.0" 372 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" 373 | integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== 374 | 375 | base@^0.11.1: 376 | version "0.11.2" 377 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 378 | integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== 379 | dependencies: 380 | cache-base "^1.0.1" 381 | class-utils "^0.3.5" 382 | component-emitter "^1.2.1" 383 | define-property "^1.0.0" 384 | isobject "^3.0.1" 385 | mixin-deep "^1.2.0" 386 | pascalcase "^0.1.1" 387 | 388 | big.js@^5.2.2: 389 | version "5.2.2" 390 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" 391 | integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== 392 | 393 | binary-extensions@^1.0.0: 394 | version "1.13.1" 395 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" 396 | integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== 397 | 398 | bluebird@^3.5.5: 399 | version "3.5.5" 400 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" 401 | integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== 402 | 403 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: 404 | version "4.11.8" 405 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" 406 | integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== 407 | 408 | brace-expansion@^1.1.7: 409 | version "1.1.11" 410 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 411 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 412 | dependencies: 413 | balanced-match "^1.0.0" 414 | concat-map "0.0.1" 415 | 416 | braces@^2.3.1, braces@^2.3.2: 417 | version "2.3.2" 418 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 419 | integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== 420 | dependencies: 421 | arr-flatten "^1.1.0" 422 | array-unique "^0.3.2" 423 | extend-shallow "^2.0.1" 424 | fill-range "^4.0.0" 425 | isobject "^3.0.1" 426 | repeat-element "^1.1.2" 427 | snapdragon "^0.8.1" 428 | snapdragon-node "^2.0.1" 429 | split-string "^3.0.2" 430 | to-regex "^3.0.1" 431 | 432 | braces@^3.0.1: 433 | version "3.0.2" 434 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 435 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 436 | dependencies: 437 | fill-range "^7.0.1" 438 | 439 | brorand@^1.0.1: 440 | version "1.1.0" 441 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 442 | integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= 443 | 444 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: 445 | version "1.2.0" 446 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" 447 | integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== 448 | dependencies: 449 | buffer-xor "^1.0.3" 450 | cipher-base "^1.0.0" 451 | create-hash "^1.1.0" 452 | evp_bytestokey "^1.0.3" 453 | inherits "^2.0.1" 454 | safe-buffer "^5.0.1" 455 | 456 | browserify-cipher@^1.0.0: 457 | version "1.0.1" 458 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" 459 | integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== 460 | dependencies: 461 | browserify-aes "^1.0.4" 462 | browserify-des "^1.0.0" 463 | evp_bytestokey "^1.0.0" 464 | 465 | browserify-des@^1.0.0: 466 | version "1.0.2" 467 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" 468 | integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== 469 | dependencies: 470 | cipher-base "^1.0.1" 471 | des.js "^1.0.0" 472 | inherits "^2.0.1" 473 | safe-buffer "^5.1.2" 474 | 475 | browserify-rsa@^4.0.0: 476 | version "4.0.1" 477 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" 478 | integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= 479 | dependencies: 480 | bn.js "^4.1.0" 481 | randombytes "^2.0.1" 482 | 483 | browserify-sign@^4.0.0: 484 | version "4.0.4" 485 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" 486 | integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= 487 | dependencies: 488 | bn.js "^4.1.1" 489 | browserify-rsa "^4.0.0" 490 | create-hash "^1.1.0" 491 | create-hmac "^1.1.2" 492 | elliptic "^6.0.0" 493 | inherits "^2.0.1" 494 | parse-asn1 "^5.0.0" 495 | 496 | browserify-zlib@^0.2.0: 497 | version "0.2.0" 498 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" 499 | integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== 500 | dependencies: 501 | pako "~1.0.5" 502 | 503 | buffer-from@^1.0.0: 504 | version "1.1.2" 505 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 506 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 507 | 508 | buffer-xor@^1.0.3: 509 | version "1.0.3" 510 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" 511 | integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= 512 | 513 | buffer@^4.3.0: 514 | version "4.9.1" 515 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" 516 | integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= 517 | dependencies: 518 | base64-js "^1.0.2" 519 | ieee754 "^1.1.4" 520 | isarray "^1.0.0" 521 | 522 | builtin-modules@^1.1.1: 523 | version "1.1.1" 524 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 525 | integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= 526 | 527 | builtin-status-codes@^3.0.0: 528 | version "3.0.0" 529 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" 530 | integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= 531 | 532 | cacache@^11.3.2: 533 | version "11.3.3" 534 | resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" 535 | integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA== 536 | dependencies: 537 | bluebird "^3.5.5" 538 | chownr "^1.1.1" 539 | figgy-pudding "^3.5.1" 540 | glob "^7.1.4" 541 | graceful-fs "^4.1.15" 542 | lru-cache "^5.1.1" 543 | mississippi "^3.0.0" 544 | mkdirp "^0.5.1" 545 | move-concurrently "^1.0.1" 546 | promise-inflight "^1.0.1" 547 | rimraf "^2.6.3" 548 | ssri "^6.0.1" 549 | unique-filename "^1.1.1" 550 | y18n "^4.0.0" 551 | 552 | cache-base@^1.0.1: 553 | version "1.0.1" 554 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 555 | integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== 556 | dependencies: 557 | collection-visit "^1.0.0" 558 | component-emitter "^1.2.1" 559 | get-value "^2.0.6" 560 | has-value "^1.0.0" 561 | isobject "^3.0.1" 562 | set-value "^2.0.0" 563 | to-object-path "^0.3.0" 564 | union-value "^1.0.0" 565 | unset-value "^1.0.0" 566 | 567 | camelcase@^5.0.0: 568 | version "5.3.1" 569 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 570 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 571 | 572 | chalk@^2.0.0, chalk@^2.3.0: 573 | version "2.4.1" 574 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 575 | integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== 576 | dependencies: 577 | ansi-styles "^3.2.1" 578 | escape-string-regexp "^1.0.5" 579 | supports-color "^5.3.0" 580 | 581 | chalk@^2.4.1: 582 | version "2.4.2" 583 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 584 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 585 | dependencies: 586 | ansi-styles "^3.2.1" 587 | escape-string-regexp "^1.0.5" 588 | supports-color "^5.3.0" 589 | 590 | chokidar@^2.0.2: 591 | version "2.1.6" 592 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" 593 | integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== 594 | dependencies: 595 | anymatch "^2.0.0" 596 | async-each "^1.0.1" 597 | braces "^2.3.2" 598 | glob-parent "^3.1.0" 599 | inherits "^2.0.3" 600 | is-binary-path "^1.0.0" 601 | is-glob "^4.0.0" 602 | normalize-path "^3.0.0" 603 | path-is-absolute "^1.0.0" 604 | readdirp "^2.2.1" 605 | upath "^1.1.1" 606 | optionalDependencies: 607 | fsevents "^1.2.7" 608 | 609 | chownr@^1.1.1: 610 | version "1.1.1" 611 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" 612 | integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== 613 | 614 | chrome-trace-event@^1.0.0: 615 | version "1.0.2" 616 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" 617 | integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== 618 | dependencies: 619 | tslib "^1.9.0" 620 | 621 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: 622 | version "1.0.4" 623 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" 624 | integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== 625 | dependencies: 626 | inherits "^2.0.1" 627 | safe-buffer "^5.0.1" 628 | 629 | class-utils@^0.3.5: 630 | version "0.3.6" 631 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 632 | integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== 633 | dependencies: 634 | arr-union "^3.1.0" 635 | define-property "^0.2.5" 636 | isobject "^3.0.0" 637 | static-extend "^0.1.1" 638 | 639 | cliui@^4.0.0: 640 | version "4.1.0" 641 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" 642 | integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== 643 | dependencies: 644 | string-width "^2.1.1" 645 | strip-ansi "^4.0.0" 646 | wrap-ansi "^2.0.0" 647 | 648 | coc.nvim@^0.0.80: 649 | version "0.0.80" 650 | resolved "https://registry.yarnpkg.com/coc.nvim/-/coc.nvim-0.0.80.tgz#785145c382660db03f517f9b497900d95cbd0e4f" 651 | integrity sha512-/3vTcnofoAYMrdENrlQmADTzfXX4+PZ0fiM10a39UA37dTR2dpIGi9O469kcIksuunLjToqWG8S45AGx/9wV7g== 652 | 653 | code-point-at@^1.0.0: 654 | version "1.1.0" 655 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 656 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 657 | 658 | collection-visit@^1.0.0: 659 | version "1.0.0" 660 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 661 | integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= 662 | dependencies: 663 | map-visit "^1.0.0" 664 | object-visit "^1.0.0" 665 | 666 | color-convert@^1.9.0: 667 | version "1.9.3" 668 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 669 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 670 | dependencies: 671 | color-name "1.1.3" 672 | 673 | color-name@1.1.3: 674 | version "1.1.3" 675 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 676 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 677 | 678 | commander@^2.12.1, commander@^2.20.0: 679 | version "2.20.3" 680 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 681 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 682 | 683 | commondir@^1.0.1: 684 | version "1.0.1" 685 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 686 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= 687 | 688 | component-emitter@^1.2.1: 689 | version "1.3.0" 690 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" 691 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== 692 | 693 | concat-map@0.0.1: 694 | version "0.0.1" 695 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 696 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 697 | 698 | concat-stream@^1.5.0: 699 | version "1.6.2" 700 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 701 | integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== 702 | dependencies: 703 | buffer-from "^1.0.0" 704 | inherits "^2.0.3" 705 | readable-stream "^2.2.2" 706 | typedarray "^0.0.6" 707 | 708 | console-browserify@^1.1.0: 709 | version "1.1.0" 710 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" 711 | integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= 712 | dependencies: 713 | date-now "^0.1.4" 714 | 715 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 716 | version "1.1.0" 717 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 718 | integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= 719 | 720 | constants-browserify@^1.0.0: 721 | version "1.0.0" 722 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" 723 | integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= 724 | 725 | copy-concurrently@^1.0.0: 726 | version "1.0.5" 727 | resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" 728 | integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== 729 | dependencies: 730 | aproba "^1.1.1" 731 | fs-write-stream-atomic "^1.0.8" 732 | iferr "^0.1.5" 733 | mkdirp "^0.5.1" 734 | rimraf "^2.5.4" 735 | run-queue "^1.0.0" 736 | 737 | copy-descriptor@^0.1.0: 738 | version "0.1.1" 739 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 740 | integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= 741 | 742 | core-util-is@~1.0.0: 743 | version "1.0.2" 744 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 745 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 746 | 747 | create-ecdh@^4.0.0: 748 | version "4.0.3" 749 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" 750 | integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== 751 | dependencies: 752 | bn.js "^4.1.0" 753 | elliptic "^6.0.0" 754 | 755 | create-hash@^1.1.0, create-hash@^1.1.2: 756 | version "1.2.0" 757 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" 758 | integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== 759 | dependencies: 760 | cipher-base "^1.0.1" 761 | inherits "^2.0.1" 762 | md5.js "^1.3.4" 763 | ripemd160 "^2.0.1" 764 | sha.js "^2.4.0" 765 | 766 | create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: 767 | version "1.1.7" 768 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" 769 | integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== 770 | dependencies: 771 | cipher-base "^1.0.3" 772 | create-hash "^1.1.0" 773 | inherits "^2.0.1" 774 | ripemd160 "^2.0.0" 775 | safe-buffer "^5.0.1" 776 | sha.js "^2.4.8" 777 | 778 | cross-spawn@^6.0.0, cross-spawn@^6.0.5: 779 | version "6.0.5" 780 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 781 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 782 | dependencies: 783 | nice-try "^1.0.4" 784 | path-key "^2.0.1" 785 | semver "^5.5.0" 786 | shebang-command "^1.2.0" 787 | which "^1.2.9" 788 | 789 | crypto-browserify@^3.11.0: 790 | version "3.12.0" 791 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" 792 | integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== 793 | dependencies: 794 | browserify-cipher "^1.0.0" 795 | browserify-sign "^4.0.0" 796 | create-ecdh "^4.0.0" 797 | create-hash "^1.1.0" 798 | create-hmac "^1.1.0" 799 | diffie-hellman "^5.0.0" 800 | inherits "^2.0.1" 801 | pbkdf2 "^3.0.3" 802 | public-encrypt "^4.0.0" 803 | randombytes "^2.0.0" 804 | randomfill "^1.0.3" 805 | 806 | cyclist@~0.2.2: 807 | version "0.2.2" 808 | resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" 809 | integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= 810 | 811 | date-now@^0.1.4: 812 | version "0.1.4" 813 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" 814 | integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= 815 | 816 | debug@^2.2.0, debug@^2.3.3: 817 | version "2.6.9" 818 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 819 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 820 | dependencies: 821 | ms "2.0.0" 822 | 823 | debug@^3.2.6: 824 | version "3.2.6" 825 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 826 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 827 | dependencies: 828 | ms "^2.1.1" 829 | 830 | decamelize@^1.2.0: 831 | version "1.2.0" 832 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 833 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 834 | 835 | decode-uri-component@^0.2.0: 836 | version "0.2.0" 837 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 838 | integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= 839 | 840 | deep-extend@^0.6.0: 841 | version "0.6.0" 842 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 843 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 844 | 845 | define-property@^0.2.5: 846 | version "0.2.5" 847 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 848 | integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= 849 | dependencies: 850 | is-descriptor "^0.1.0" 851 | 852 | define-property@^1.0.0: 853 | version "1.0.0" 854 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 855 | integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= 856 | dependencies: 857 | is-descriptor "^1.0.0" 858 | 859 | define-property@^2.0.2: 860 | version "2.0.2" 861 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 862 | integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== 863 | dependencies: 864 | is-descriptor "^1.0.2" 865 | isobject "^3.0.1" 866 | 867 | delegates@^1.0.0: 868 | version "1.0.0" 869 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 870 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 871 | 872 | des.js@^1.0.0: 873 | version "1.0.0" 874 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" 875 | integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= 876 | dependencies: 877 | inherits "^2.0.1" 878 | minimalistic-assert "^1.0.0" 879 | 880 | detect-file@^1.0.0: 881 | version "1.0.0" 882 | resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" 883 | integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= 884 | 885 | detect-libc@^1.0.2: 886 | version "1.0.3" 887 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 888 | integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= 889 | 890 | diff@^3.2.0: 891 | version "3.5.0" 892 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 893 | integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== 894 | 895 | diffie-hellman@^5.0.0: 896 | version "5.0.3" 897 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" 898 | integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== 899 | dependencies: 900 | bn.js "^4.1.0" 901 | miller-rabin "^4.0.0" 902 | randombytes "^2.0.0" 903 | 904 | domain-browser@^1.1.1: 905 | version "1.2.0" 906 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" 907 | integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== 908 | 909 | duplexify@^3.4.2, duplexify@^3.6.0: 910 | version "3.7.1" 911 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" 912 | integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== 913 | dependencies: 914 | end-of-stream "^1.0.0" 915 | inherits "^2.0.1" 916 | readable-stream "^2.0.0" 917 | stream-shift "^1.0.0" 918 | 919 | elliptic@^6.0.0: 920 | version "6.4.1" 921 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" 922 | integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== 923 | dependencies: 924 | bn.js "^4.4.0" 925 | brorand "^1.0.1" 926 | hash.js "^1.0.0" 927 | hmac-drbg "^1.0.0" 928 | inherits "^2.0.1" 929 | minimalistic-assert "^1.0.0" 930 | minimalistic-crypto-utils "^1.0.0" 931 | 932 | emojis-list@^2.0.0: 933 | version "2.1.0" 934 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" 935 | integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= 936 | 937 | end-of-stream@^1.0.0, end-of-stream@^1.1.0: 938 | version "1.4.1" 939 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" 940 | integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== 941 | dependencies: 942 | once "^1.4.0" 943 | 944 | enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: 945 | version "4.1.0" 946 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" 947 | integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== 948 | dependencies: 949 | graceful-fs "^4.1.2" 950 | memory-fs "^0.4.0" 951 | tapable "^1.0.0" 952 | 953 | errno@^0.1.3, errno@~0.1.7: 954 | version "0.1.7" 955 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" 956 | integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== 957 | dependencies: 958 | prr "~1.0.1" 959 | 960 | escape-string-regexp@^1.0.5: 961 | version "1.0.5" 962 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 963 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 964 | 965 | eslint-scope@^4.0.0: 966 | version "4.0.3" 967 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" 968 | integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== 969 | dependencies: 970 | esrecurse "^4.1.0" 971 | estraverse "^4.1.1" 972 | 973 | esprima@^4.0.0: 974 | version "4.0.1" 975 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 976 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 977 | 978 | esrecurse@^4.1.0: 979 | version "4.2.1" 980 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 981 | integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== 982 | dependencies: 983 | estraverse "^4.1.0" 984 | 985 | estraverse@^4.1.0, estraverse@^4.1.1: 986 | version "4.2.0" 987 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 988 | integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= 989 | 990 | esutils@^2.0.2: 991 | version "2.0.2" 992 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 993 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= 994 | 995 | events@^3.0.0: 996 | version "3.0.0" 997 | resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" 998 | integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== 999 | 1000 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: 1001 | version "1.0.3" 1002 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" 1003 | integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== 1004 | dependencies: 1005 | md5.js "^1.3.4" 1006 | safe-buffer "^5.1.1" 1007 | 1008 | execa@^1.0.0: 1009 | version "1.0.0" 1010 | resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" 1011 | integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== 1012 | dependencies: 1013 | cross-spawn "^6.0.0" 1014 | get-stream "^4.0.0" 1015 | is-stream "^1.1.0" 1016 | npm-run-path "^2.0.0" 1017 | p-finally "^1.0.0" 1018 | signal-exit "^3.0.0" 1019 | strip-eof "^1.0.0" 1020 | 1021 | expand-brackets@^2.1.4: 1022 | version "2.1.4" 1023 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 1024 | integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= 1025 | dependencies: 1026 | debug "^2.3.3" 1027 | define-property "^0.2.5" 1028 | extend-shallow "^2.0.1" 1029 | posix-character-classes "^0.1.0" 1030 | regex-not "^1.0.0" 1031 | snapdragon "^0.8.1" 1032 | to-regex "^3.0.1" 1033 | 1034 | expand-tilde@^2.0.0, expand-tilde@^2.0.2: 1035 | version "2.0.2" 1036 | resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" 1037 | integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= 1038 | dependencies: 1039 | homedir-polyfill "^1.0.1" 1040 | 1041 | extend-shallow@^2.0.1: 1042 | version "2.0.1" 1043 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 1044 | integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= 1045 | dependencies: 1046 | is-extendable "^0.1.0" 1047 | 1048 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 1049 | version "3.0.2" 1050 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 1051 | integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= 1052 | dependencies: 1053 | assign-symbols "^1.0.0" 1054 | is-extendable "^1.0.1" 1055 | 1056 | extglob@^2.0.4: 1057 | version "2.0.4" 1058 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 1059 | integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== 1060 | dependencies: 1061 | array-unique "^0.3.2" 1062 | define-property "^1.0.0" 1063 | expand-brackets "^2.1.4" 1064 | extend-shallow "^2.0.1" 1065 | fragment-cache "^0.2.1" 1066 | regex-not "^1.0.0" 1067 | snapdragon "^0.8.1" 1068 | to-regex "^3.0.1" 1069 | 1070 | fast-deep-equal@^3.1.1: 1071 | version "3.1.3" 1072 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 1073 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 1074 | 1075 | fast-json-stable-stringify@^2.0.0: 1076 | version "2.1.0" 1077 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 1078 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 1079 | 1080 | figgy-pudding@^3.5.1: 1081 | version "3.5.2" 1082 | resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" 1083 | integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== 1084 | 1085 | fill-range@^4.0.0: 1086 | version "4.0.0" 1087 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 1088 | integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= 1089 | dependencies: 1090 | extend-shallow "^2.0.1" 1091 | is-number "^3.0.0" 1092 | repeat-string "^1.6.1" 1093 | to-regex-range "^2.1.0" 1094 | 1095 | fill-range@^7.0.1: 1096 | version "7.0.1" 1097 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 1098 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 1099 | dependencies: 1100 | to-regex-range "^5.0.1" 1101 | 1102 | find-cache-dir@^2.0.0: 1103 | version "2.1.0" 1104 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" 1105 | integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== 1106 | dependencies: 1107 | commondir "^1.0.1" 1108 | make-dir "^2.0.0" 1109 | pkg-dir "^3.0.0" 1110 | 1111 | find-up@^3.0.0: 1112 | version "3.0.0" 1113 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 1114 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 1115 | dependencies: 1116 | locate-path "^3.0.0" 1117 | 1118 | findup-sync@^2.0.0: 1119 | version "2.0.0" 1120 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" 1121 | integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= 1122 | dependencies: 1123 | detect-file "^1.0.0" 1124 | is-glob "^3.1.0" 1125 | micromatch "^3.0.4" 1126 | resolve-dir "^1.0.1" 1127 | 1128 | flush-write-stream@^1.0.0: 1129 | version "1.1.1" 1130 | resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" 1131 | integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== 1132 | dependencies: 1133 | inherits "^2.0.3" 1134 | readable-stream "^2.3.6" 1135 | 1136 | for-in@^1.0.2: 1137 | version "1.0.2" 1138 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1139 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= 1140 | 1141 | fragment-cache@^0.2.1: 1142 | version "0.2.1" 1143 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 1144 | integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= 1145 | dependencies: 1146 | map-cache "^0.2.2" 1147 | 1148 | from2@^2.1.0: 1149 | version "2.3.0" 1150 | resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" 1151 | integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= 1152 | dependencies: 1153 | inherits "^2.0.1" 1154 | readable-stream "^2.0.0" 1155 | 1156 | fs-minipass@^1.2.5: 1157 | version "1.2.6" 1158 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" 1159 | integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== 1160 | dependencies: 1161 | minipass "^2.2.1" 1162 | 1163 | fs-write-stream-atomic@^1.0.8: 1164 | version "1.0.10" 1165 | resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" 1166 | integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= 1167 | dependencies: 1168 | graceful-fs "^4.1.2" 1169 | iferr "^0.1.5" 1170 | imurmurhash "^0.1.4" 1171 | readable-stream "1 || 2" 1172 | 1173 | fs.realpath@^1.0.0: 1174 | version "1.0.0" 1175 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1176 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1177 | 1178 | fsevents@^1.2.7: 1179 | version "1.2.9" 1180 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" 1181 | integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== 1182 | dependencies: 1183 | nan "^2.12.1" 1184 | node-pre-gyp "^0.12.0" 1185 | 1186 | gauge@~2.7.3: 1187 | version "2.7.4" 1188 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1189 | integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= 1190 | dependencies: 1191 | aproba "^1.0.3" 1192 | console-control-strings "^1.0.0" 1193 | has-unicode "^2.0.0" 1194 | object-assign "^4.1.0" 1195 | signal-exit "^3.0.0" 1196 | string-width "^1.0.1" 1197 | strip-ansi "^3.0.1" 1198 | wide-align "^1.1.0" 1199 | 1200 | get-caller-file@^1.0.1: 1201 | version "1.0.3" 1202 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" 1203 | integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== 1204 | 1205 | get-stream@^4.0.0: 1206 | version "4.1.0" 1207 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 1208 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 1209 | dependencies: 1210 | pump "^3.0.0" 1211 | 1212 | get-value@^2.0.3, get-value@^2.0.6: 1213 | version "2.0.6" 1214 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 1215 | integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= 1216 | 1217 | glob-parent@^3.1.0: 1218 | version "3.1.0" 1219 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 1220 | integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= 1221 | dependencies: 1222 | is-glob "^3.1.0" 1223 | path-dirname "^1.0.0" 1224 | 1225 | glob@^7.1.1, glob@^7.1.3: 1226 | version "7.1.3" 1227 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 1228 | integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== 1229 | dependencies: 1230 | fs.realpath "^1.0.0" 1231 | inflight "^1.0.4" 1232 | inherits "2" 1233 | minimatch "^3.0.4" 1234 | once "^1.3.0" 1235 | path-is-absolute "^1.0.0" 1236 | 1237 | glob@^7.1.4: 1238 | version "7.1.4" 1239 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" 1240 | integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== 1241 | dependencies: 1242 | fs.realpath "^1.0.0" 1243 | inflight "^1.0.4" 1244 | inherits "2" 1245 | minimatch "^3.0.4" 1246 | once "^1.3.0" 1247 | path-is-absolute "^1.0.0" 1248 | 1249 | global-modules@^1.0.0: 1250 | version "1.0.0" 1251 | resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" 1252 | integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== 1253 | dependencies: 1254 | global-prefix "^1.0.1" 1255 | is-windows "^1.0.1" 1256 | resolve-dir "^1.0.0" 1257 | 1258 | global-prefix@^1.0.1: 1259 | version "1.0.2" 1260 | resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" 1261 | integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= 1262 | dependencies: 1263 | expand-tilde "^2.0.2" 1264 | homedir-polyfill "^1.0.1" 1265 | ini "^1.3.4" 1266 | is-windows "^1.0.1" 1267 | which "^1.2.14" 1268 | 1269 | graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: 1270 | version "4.1.15" 1271 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" 1272 | integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== 1273 | 1274 | has-flag@^3.0.0: 1275 | version "3.0.0" 1276 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1277 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1278 | 1279 | has-unicode@^2.0.0: 1280 | version "2.0.1" 1281 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1282 | integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= 1283 | 1284 | has-value@^0.3.1: 1285 | version "0.3.1" 1286 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 1287 | integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= 1288 | dependencies: 1289 | get-value "^2.0.3" 1290 | has-values "^0.1.4" 1291 | isobject "^2.0.0" 1292 | 1293 | has-value@^1.0.0: 1294 | version "1.0.0" 1295 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 1296 | integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= 1297 | dependencies: 1298 | get-value "^2.0.6" 1299 | has-values "^1.0.0" 1300 | isobject "^3.0.0" 1301 | 1302 | has-values@^0.1.4: 1303 | version "0.1.4" 1304 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 1305 | integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= 1306 | 1307 | has-values@^1.0.0: 1308 | version "1.0.0" 1309 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 1310 | integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= 1311 | dependencies: 1312 | is-number "^3.0.0" 1313 | kind-of "^4.0.0" 1314 | 1315 | hash-base@^3.0.0: 1316 | version "3.0.4" 1317 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" 1318 | integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= 1319 | dependencies: 1320 | inherits "^2.0.1" 1321 | safe-buffer "^5.0.1" 1322 | 1323 | hash.js@^1.0.0, hash.js@^1.0.3: 1324 | version "1.1.7" 1325 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" 1326 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== 1327 | dependencies: 1328 | inherits "^2.0.3" 1329 | minimalistic-assert "^1.0.1" 1330 | 1331 | hmac-drbg@^1.0.0: 1332 | version "1.0.1" 1333 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 1334 | integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= 1335 | dependencies: 1336 | hash.js "^1.0.3" 1337 | minimalistic-assert "^1.0.0" 1338 | minimalistic-crypto-utils "^1.0.1" 1339 | 1340 | homedir-polyfill@^1.0.1: 1341 | version "1.0.3" 1342 | resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" 1343 | integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== 1344 | dependencies: 1345 | parse-passwd "^1.0.0" 1346 | 1347 | https-browserify@^1.0.0: 1348 | version "1.0.0" 1349 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" 1350 | integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= 1351 | 1352 | iconv-lite@^0.4.4: 1353 | version "0.4.24" 1354 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1355 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1356 | dependencies: 1357 | safer-buffer ">= 2.1.2 < 3" 1358 | 1359 | ieee754@^1.1.4: 1360 | version "1.1.13" 1361 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" 1362 | integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== 1363 | 1364 | iferr@^0.1.5: 1365 | version "0.1.5" 1366 | resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" 1367 | integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= 1368 | 1369 | ignore-walk@^3.0.1: 1370 | version "3.0.1" 1371 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" 1372 | integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== 1373 | dependencies: 1374 | minimatch "^3.0.4" 1375 | 1376 | import-local@^2.0.0: 1377 | version "2.0.0" 1378 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" 1379 | integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== 1380 | dependencies: 1381 | pkg-dir "^3.0.0" 1382 | resolve-cwd "^2.0.0" 1383 | 1384 | imurmurhash@^0.1.4: 1385 | version "0.1.4" 1386 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1387 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1388 | 1389 | inflight@^1.0.4: 1390 | version "1.0.6" 1391 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1392 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1393 | dependencies: 1394 | once "^1.3.0" 1395 | wrappy "1" 1396 | 1397 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: 1398 | version "2.0.3" 1399 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1400 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 1401 | 1402 | inherits@2.0.1: 1403 | version "2.0.1" 1404 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 1405 | integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= 1406 | 1407 | ini@^1.3.4, ini@~1.3.0: 1408 | version "1.3.7" 1409 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" 1410 | integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== 1411 | 1412 | interpret@^1.1.0: 1413 | version "1.2.0" 1414 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" 1415 | integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== 1416 | 1417 | invert-kv@^2.0.0: 1418 | version "2.0.0" 1419 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" 1420 | integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== 1421 | 1422 | is-accessor-descriptor@^0.1.6: 1423 | version "0.1.6" 1424 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 1425 | integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= 1426 | dependencies: 1427 | kind-of "^3.0.2" 1428 | 1429 | is-accessor-descriptor@^1.0.0: 1430 | version "1.0.0" 1431 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 1432 | integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== 1433 | dependencies: 1434 | kind-of "^6.0.0" 1435 | 1436 | is-binary-path@^1.0.0: 1437 | version "1.0.1" 1438 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1439 | integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= 1440 | dependencies: 1441 | binary-extensions "^1.0.0" 1442 | 1443 | is-buffer@^1.1.5: 1444 | version "1.1.6" 1445 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1446 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 1447 | 1448 | is-data-descriptor@^0.1.4: 1449 | version "0.1.4" 1450 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 1451 | integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= 1452 | dependencies: 1453 | kind-of "^3.0.2" 1454 | 1455 | is-data-descriptor@^1.0.0: 1456 | version "1.0.0" 1457 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 1458 | integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== 1459 | dependencies: 1460 | kind-of "^6.0.0" 1461 | 1462 | is-descriptor@^0.1.0: 1463 | version "0.1.6" 1464 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 1465 | integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== 1466 | dependencies: 1467 | is-accessor-descriptor "^0.1.6" 1468 | is-data-descriptor "^0.1.4" 1469 | kind-of "^5.0.0" 1470 | 1471 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 1472 | version "1.0.2" 1473 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 1474 | integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== 1475 | dependencies: 1476 | is-accessor-descriptor "^1.0.0" 1477 | is-data-descriptor "^1.0.0" 1478 | kind-of "^6.0.2" 1479 | 1480 | is-extendable@^0.1.0, is-extendable@^0.1.1: 1481 | version "0.1.1" 1482 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1483 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= 1484 | 1485 | is-extendable@^1.0.1: 1486 | version "1.0.1" 1487 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 1488 | integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== 1489 | dependencies: 1490 | is-plain-object "^2.0.4" 1491 | 1492 | is-extglob@^2.1.0, is-extglob@^2.1.1: 1493 | version "2.1.1" 1494 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1495 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1496 | 1497 | is-fullwidth-code-point@^1.0.0: 1498 | version "1.0.0" 1499 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1500 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 1501 | dependencies: 1502 | number-is-nan "^1.0.0" 1503 | 1504 | is-fullwidth-code-point@^2.0.0: 1505 | version "2.0.0" 1506 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1507 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 1508 | 1509 | is-glob@^3.1.0: 1510 | version "3.1.0" 1511 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 1512 | integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= 1513 | dependencies: 1514 | is-extglob "^2.1.0" 1515 | 1516 | is-glob@^4.0.0: 1517 | version "4.0.1" 1518 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1519 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 1520 | dependencies: 1521 | is-extglob "^2.1.1" 1522 | 1523 | is-number@^3.0.0: 1524 | version "3.0.0" 1525 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1526 | integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= 1527 | dependencies: 1528 | kind-of "^3.0.2" 1529 | 1530 | is-number@^7.0.0: 1531 | version "7.0.0" 1532 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1533 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1534 | 1535 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: 1536 | version "2.0.4" 1537 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1538 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 1539 | dependencies: 1540 | isobject "^3.0.1" 1541 | 1542 | is-stream@^1.1.0: 1543 | version "1.1.0" 1544 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1545 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 1546 | 1547 | is-windows@^1.0.1, is-windows@^1.0.2: 1548 | version "1.0.2" 1549 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 1550 | integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== 1551 | 1552 | is-wsl@^1.1.0: 1553 | version "1.1.0" 1554 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" 1555 | integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= 1556 | 1557 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 1558 | version "1.0.0" 1559 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1560 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 1561 | 1562 | isexe@^2.0.0: 1563 | version "2.0.0" 1564 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1565 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1566 | 1567 | isobject@^2.0.0: 1568 | version "2.1.0" 1569 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1570 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= 1571 | dependencies: 1572 | isarray "1.0.0" 1573 | 1574 | isobject@^3.0.0, isobject@^3.0.1: 1575 | version "3.0.1" 1576 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1577 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 1578 | 1579 | js-tokens@^4.0.0: 1580 | version "4.0.0" 1581 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1582 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1583 | 1584 | js-yaml@^3.13.0: 1585 | version "3.13.1" 1586 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 1587 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== 1588 | dependencies: 1589 | argparse "^1.0.7" 1590 | esprima "^4.0.0" 1591 | 1592 | json-parse-better-errors@^1.0.2: 1593 | version "1.0.2" 1594 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 1595 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 1596 | 1597 | json-schema-traverse@^0.4.1: 1598 | version "0.4.1" 1599 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1600 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1601 | 1602 | json5@^1.0.1: 1603 | version "1.0.1" 1604 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" 1605 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 1606 | dependencies: 1607 | minimist "^1.2.0" 1608 | 1609 | jsonc-parser@^1.0.0: 1610 | version "1.0.3" 1611 | resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.3.tgz#1d53d7160e401a783dbceabaad82473f80e6ad7e" 1612 | integrity sha512-hk/69oAeaIzchq/v3lS50PXuzn5O2ynldopMC+SWBql7J2WtdptfB9dy8Y7+Og5rPkTCpn83zTiO8FMcqlXJ/g== 1613 | 1614 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 1615 | version "3.2.2" 1616 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1617 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= 1618 | dependencies: 1619 | is-buffer "^1.1.5" 1620 | 1621 | kind-of@^4.0.0: 1622 | version "4.0.0" 1623 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1624 | integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= 1625 | dependencies: 1626 | is-buffer "^1.1.5" 1627 | 1628 | kind-of@^5.0.0: 1629 | version "5.1.0" 1630 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 1631 | integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== 1632 | 1633 | kind-of@^6.0.0, kind-of@^6.0.2: 1634 | version "6.0.2" 1635 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 1636 | integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== 1637 | 1638 | lcid@^2.0.0: 1639 | version "2.0.0" 1640 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" 1641 | integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== 1642 | dependencies: 1643 | invert-kv "^2.0.0" 1644 | 1645 | loader-runner@^2.3.0: 1646 | version "2.4.0" 1647 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" 1648 | integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== 1649 | 1650 | loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: 1651 | version "1.2.3" 1652 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" 1653 | integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== 1654 | dependencies: 1655 | big.js "^5.2.2" 1656 | emojis-list "^2.0.0" 1657 | json5 "^1.0.1" 1658 | 1659 | locate-path@^3.0.0: 1660 | version "3.0.0" 1661 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 1662 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 1663 | dependencies: 1664 | p-locate "^3.0.0" 1665 | path-exists "^3.0.0" 1666 | 1667 | lru-cache@^5.1.1: 1668 | version "5.1.1" 1669 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 1670 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 1671 | dependencies: 1672 | yallist "^3.0.2" 1673 | 1674 | make-dir@^2.0.0: 1675 | version "2.1.0" 1676 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" 1677 | integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== 1678 | dependencies: 1679 | pify "^4.0.1" 1680 | semver "^5.6.0" 1681 | 1682 | mamacro@^0.0.3: 1683 | version "0.0.3" 1684 | resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" 1685 | integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== 1686 | 1687 | map-age-cleaner@^0.1.1: 1688 | version "0.1.3" 1689 | resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" 1690 | integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== 1691 | dependencies: 1692 | p-defer "^1.0.0" 1693 | 1694 | map-cache@^0.2.2: 1695 | version "0.2.2" 1696 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 1697 | integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= 1698 | 1699 | map-visit@^1.0.0: 1700 | version "1.0.0" 1701 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 1702 | integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= 1703 | dependencies: 1704 | object-visit "^1.0.0" 1705 | 1706 | md5.js@^1.3.4: 1707 | version "1.3.5" 1708 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" 1709 | integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== 1710 | dependencies: 1711 | hash-base "^3.0.0" 1712 | inherits "^2.0.1" 1713 | safe-buffer "^5.1.2" 1714 | 1715 | mem@^4.0.0: 1716 | version "4.3.0" 1717 | resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" 1718 | integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== 1719 | dependencies: 1720 | map-age-cleaner "^0.1.1" 1721 | mimic-fn "^2.0.0" 1722 | p-is-promise "^2.0.0" 1723 | 1724 | memory-fs@^0.4.0, memory-fs@~0.4.1: 1725 | version "0.4.1" 1726 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" 1727 | integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= 1728 | dependencies: 1729 | errno "^0.1.3" 1730 | readable-stream "^2.0.1" 1731 | 1732 | micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: 1733 | version "3.1.10" 1734 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 1735 | integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== 1736 | dependencies: 1737 | arr-diff "^4.0.0" 1738 | array-unique "^0.3.2" 1739 | braces "^2.3.1" 1740 | define-property "^2.0.2" 1741 | extend-shallow "^3.0.2" 1742 | extglob "^2.0.4" 1743 | fragment-cache "^0.2.1" 1744 | kind-of "^6.0.2" 1745 | nanomatch "^1.2.9" 1746 | object.pick "^1.3.0" 1747 | regex-not "^1.0.0" 1748 | snapdragon "^0.8.1" 1749 | to-regex "^3.0.2" 1750 | 1751 | micromatch@^4.0.0: 1752 | version "4.0.2" 1753 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" 1754 | integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== 1755 | dependencies: 1756 | braces "^3.0.1" 1757 | picomatch "^2.0.5" 1758 | 1759 | miller-rabin@^4.0.0: 1760 | version "4.0.1" 1761 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" 1762 | integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== 1763 | dependencies: 1764 | bn.js "^4.0.0" 1765 | brorand "^1.0.1" 1766 | 1767 | mimic-fn@^2.0.0: 1768 | version "2.1.0" 1769 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 1770 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 1771 | 1772 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: 1773 | version "1.0.1" 1774 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 1775 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== 1776 | 1777 | minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: 1778 | version "1.0.1" 1779 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 1780 | integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= 1781 | 1782 | minimatch@^3.0.4: 1783 | version "3.0.4" 1784 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1785 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1786 | dependencies: 1787 | brace-expansion "^1.1.7" 1788 | 1789 | minimist@0.0.8: 1790 | version "0.0.8" 1791 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1792 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 1793 | 1794 | minimist@^1.2.0: 1795 | version "1.2.0" 1796 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1797 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= 1798 | 1799 | minipass@^2.2.1, minipass@^2.3.5: 1800 | version "2.3.5" 1801 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" 1802 | integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== 1803 | dependencies: 1804 | safe-buffer "^5.1.2" 1805 | yallist "^3.0.0" 1806 | 1807 | minizlib@^1.2.1: 1808 | version "1.2.1" 1809 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" 1810 | integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== 1811 | dependencies: 1812 | minipass "^2.2.1" 1813 | 1814 | mississippi@^3.0.0: 1815 | version "3.0.0" 1816 | resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" 1817 | integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== 1818 | dependencies: 1819 | concat-stream "^1.5.0" 1820 | duplexify "^3.4.2" 1821 | end-of-stream "^1.1.0" 1822 | flush-write-stream "^1.0.0" 1823 | from2 "^2.1.0" 1824 | parallel-transform "^1.1.0" 1825 | pump "^3.0.0" 1826 | pumpify "^1.3.3" 1827 | stream-each "^1.1.0" 1828 | through2 "^2.0.0" 1829 | 1830 | mixin-deep@^1.2.0: 1831 | version "1.3.1" 1832 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" 1833 | integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== 1834 | dependencies: 1835 | for-in "^1.0.2" 1836 | is-extendable "^1.0.1" 1837 | 1838 | mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: 1839 | version "0.5.1" 1840 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1841 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 1842 | dependencies: 1843 | minimist "0.0.8" 1844 | 1845 | move-concurrently@^1.0.1: 1846 | version "1.0.1" 1847 | resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" 1848 | integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= 1849 | dependencies: 1850 | aproba "^1.1.1" 1851 | copy-concurrently "^1.0.0" 1852 | fs-write-stream-atomic "^1.0.8" 1853 | mkdirp "^0.5.1" 1854 | rimraf "^2.5.4" 1855 | run-queue "^1.0.3" 1856 | 1857 | ms@2.0.0: 1858 | version "2.0.0" 1859 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1860 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1861 | 1862 | ms@^2.1.1: 1863 | version "2.1.1" 1864 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 1865 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 1866 | 1867 | nan@^2.12.1: 1868 | version "2.14.0" 1869 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" 1870 | integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== 1871 | 1872 | nanomatch@^1.2.9: 1873 | version "1.2.13" 1874 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" 1875 | integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== 1876 | dependencies: 1877 | arr-diff "^4.0.0" 1878 | array-unique "^0.3.2" 1879 | define-property "^2.0.2" 1880 | extend-shallow "^3.0.2" 1881 | fragment-cache "^0.2.1" 1882 | is-windows "^1.0.2" 1883 | kind-of "^6.0.2" 1884 | object.pick "^1.3.0" 1885 | regex-not "^1.0.0" 1886 | snapdragon "^0.8.1" 1887 | to-regex "^3.0.1" 1888 | 1889 | needle@^2.2.1: 1890 | version "2.4.0" 1891 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" 1892 | integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== 1893 | dependencies: 1894 | debug "^3.2.6" 1895 | iconv-lite "^0.4.4" 1896 | sax "^1.2.4" 1897 | 1898 | neo-async@^2.5.0: 1899 | version "2.6.1" 1900 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" 1901 | integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== 1902 | 1903 | nice-try@^1.0.4: 1904 | version "1.0.5" 1905 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 1906 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 1907 | 1908 | node-libs-browser@^2.0.0: 1909 | version "2.2.1" 1910 | resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" 1911 | integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== 1912 | dependencies: 1913 | assert "^1.1.1" 1914 | browserify-zlib "^0.2.0" 1915 | buffer "^4.3.0" 1916 | console-browserify "^1.1.0" 1917 | constants-browserify "^1.0.0" 1918 | crypto-browserify "^3.11.0" 1919 | domain-browser "^1.1.1" 1920 | events "^3.0.0" 1921 | https-browserify "^1.0.0" 1922 | os-browserify "^0.3.0" 1923 | path-browserify "0.0.1" 1924 | process "^0.11.10" 1925 | punycode "^1.2.4" 1926 | querystring-es3 "^0.2.0" 1927 | readable-stream "^2.3.3" 1928 | stream-browserify "^2.0.1" 1929 | stream-http "^2.7.2" 1930 | string_decoder "^1.0.0" 1931 | timers-browserify "^2.0.4" 1932 | tty-browserify "0.0.0" 1933 | url "^0.11.0" 1934 | util "^0.11.0" 1935 | vm-browserify "^1.0.1" 1936 | 1937 | node-pre-gyp@^0.12.0: 1938 | version "0.12.0" 1939 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" 1940 | integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== 1941 | dependencies: 1942 | detect-libc "^1.0.2" 1943 | mkdirp "^0.5.1" 1944 | needle "^2.2.1" 1945 | nopt "^4.0.1" 1946 | npm-packlist "^1.1.6" 1947 | npmlog "^4.0.2" 1948 | rc "^1.2.7" 1949 | rimraf "^2.6.1" 1950 | semver "^5.3.0" 1951 | tar "^4" 1952 | 1953 | nopt@^4.0.1: 1954 | version "4.0.1" 1955 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 1956 | integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= 1957 | dependencies: 1958 | abbrev "1" 1959 | osenv "^0.1.4" 1960 | 1961 | normalize-path@^2.1.1: 1962 | version "2.1.1" 1963 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1964 | integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= 1965 | dependencies: 1966 | remove-trailing-separator "^1.0.1" 1967 | 1968 | normalize-path@^3.0.0: 1969 | version "3.0.0" 1970 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1971 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1972 | 1973 | npm-bundled@^1.0.1: 1974 | version "1.0.6" 1975 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" 1976 | integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== 1977 | 1978 | npm-packlist@^1.1.6: 1979 | version "1.4.1" 1980 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" 1981 | integrity sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw== 1982 | dependencies: 1983 | ignore-walk "^3.0.1" 1984 | npm-bundled "^1.0.1" 1985 | 1986 | npm-run-path@^2.0.0: 1987 | version "2.0.2" 1988 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1989 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 1990 | dependencies: 1991 | path-key "^2.0.0" 1992 | 1993 | npmlog@^4.0.2: 1994 | version "4.1.2" 1995 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 1996 | integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== 1997 | dependencies: 1998 | are-we-there-yet "~1.1.2" 1999 | console-control-strings "~1.1.0" 2000 | gauge "~2.7.3" 2001 | set-blocking "~2.0.0" 2002 | 2003 | number-is-nan@^1.0.0: 2004 | version "1.0.1" 2005 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2006 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 2007 | 2008 | object-assign@^4.1.0, object-assign@^4.1.1: 2009 | version "4.1.1" 2010 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2011 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 2012 | 2013 | object-copy@^0.1.0: 2014 | version "0.1.0" 2015 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 2016 | integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= 2017 | dependencies: 2018 | copy-descriptor "^0.1.0" 2019 | define-property "^0.2.5" 2020 | kind-of "^3.0.3" 2021 | 2022 | object-visit@^1.0.0: 2023 | version "1.0.1" 2024 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 2025 | integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= 2026 | dependencies: 2027 | isobject "^3.0.0" 2028 | 2029 | object.pick@^1.3.0: 2030 | version "1.3.0" 2031 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 2032 | integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= 2033 | dependencies: 2034 | isobject "^3.0.1" 2035 | 2036 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 2037 | version "1.4.0" 2038 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2039 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 2040 | dependencies: 2041 | wrappy "1" 2042 | 2043 | os-browserify@^0.3.0: 2044 | version "0.3.0" 2045 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" 2046 | integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= 2047 | 2048 | os-homedir@^1.0.0: 2049 | version "1.0.2" 2050 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2051 | integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= 2052 | 2053 | os-locale@^3.0.0: 2054 | version "3.1.0" 2055 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" 2056 | integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== 2057 | dependencies: 2058 | execa "^1.0.0" 2059 | lcid "^2.0.0" 2060 | mem "^4.0.0" 2061 | 2062 | os-tmpdir@^1.0.0: 2063 | version "1.0.2" 2064 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2065 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 2066 | 2067 | osenv@^0.1.4: 2068 | version "0.1.5" 2069 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 2070 | integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== 2071 | dependencies: 2072 | os-homedir "^1.0.0" 2073 | os-tmpdir "^1.0.0" 2074 | 2075 | p-defer@^1.0.0: 2076 | version "1.0.0" 2077 | resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" 2078 | integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= 2079 | 2080 | p-finally@^1.0.0: 2081 | version "1.0.0" 2082 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 2083 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 2084 | 2085 | p-is-promise@^2.0.0: 2086 | version "2.1.0" 2087 | resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" 2088 | integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== 2089 | 2090 | p-limit@^2.0.0: 2091 | version "2.2.0" 2092 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" 2093 | integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== 2094 | dependencies: 2095 | p-try "^2.0.0" 2096 | 2097 | p-locate@^3.0.0: 2098 | version "3.0.0" 2099 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 2100 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 2101 | dependencies: 2102 | p-limit "^2.0.0" 2103 | 2104 | p-try@^2.0.0: 2105 | version "2.2.0" 2106 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 2107 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 2108 | 2109 | pako@~1.0.5: 2110 | version "1.0.10" 2111 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" 2112 | integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== 2113 | 2114 | parallel-transform@^1.1.0: 2115 | version "1.1.0" 2116 | resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" 2117 | integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= 2118 | dependencies: 2119 | cyclist "~0.2.2" 2120 | inherits "^2.0.3" 2121 | readable-stream "^2.1.5" 2122 | 2123 | parse-asn1@^5.0.0: 2124 | version "5.1.4" 2125 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" 2126 | integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== 2127 | dependencies: 2128 | asn1.js "^4.0.0" 2129 | browserify-aes "^1.0.0" 2130 | create-hash "^1.1.0" 2131 | evp_bytestokey "^1.0.0" 2132 | pbkdf2 "^3.0.3" 2133 | safe-buffer "^5.1.1" 2134 | 2135 | parse-passwd@^1.0.0: 2136 | version "1.0.0" 2137 | resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" 2138 | integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= 2139 | 2140 | pascalcase@^0.1.1: 2141 | version "0.1.1" 2142 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 2143 | integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= 2144 | 2145 | path-browserify@0.0.1: 2146 | version "0.0.1" 2147 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" 2148 | integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== 2149 | 2150 | path-dirname@^1.0.0: 2151 | version "1.0.2" 2152 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 2153 | integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= 2154 | 2155 | path-exists@^3.0.0: 2156 | version "3.0.0" 2157 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2158 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 2159 | 2160 | path-is-absolute@^1.0.0: 2161 | version "1.0.1" 2162 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2163 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 2164 | 2165 | path-key@^2.0.0, path-key@^2.0.1: 2166 | version "2.0.1" 2167 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 2168 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 2169 | 2170 | path-parse@^1.0.5: 2171 | version "1.0.6" 2172 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 2173 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 2174 | 2175 | pbkdf2@^3.0.3: 2176 | version "3.0.17" 2177 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" 2178 | integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== 2179 | dependencies: 2180 | create-hash "^1.1.2" 2181 | create-hmac "^1.1.4" 2182 | ripemd160 "^2.0.1" 2183 | safe-buffer "^5.0.1" 2184 | sha.js "^2.4.8" 2185 | 2186 | picomatch@^2.0.5: 2187 | version "2.0.7" 2188 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" 2189 | integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== 2190 | 2191 | pify@^4.0.1: 2192 | version "4.0.1" 2193 | resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" 2194 | integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== 2195 | 2196 | pkg-dir@^3.0.0: 2197 | version "3.0.0" 2198 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" 2199 | integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== 2200 | dependencies: 2201 | find-up "^3.0.0" 2202 | 2203 | posix-character-classes@^0.1.0: 2204 | version "0.1.1" 2205 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 2206 | integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= 2207 | 2208 | prettier@^1.17.0: 2209 | version "1.18.2" 2210 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" 2211 | integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== 2212 | 2213 | process-nextick-args@~2.0.0: 2214 | version "2.0.0" 2215 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 2216 | integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== 2217 | 2218 | process@^0.11.10: 2219 | version "0.11.10" 2220 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 2221 | integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= 2222 | 2223 | promise-inflight@^1.0.1: 2224 | version "1.0.1" 2225 | resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" 2226 | integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= 2227 | 2228 | prr@~1.0.1: 2229 | version "1.0.1" 2230 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" 2231 | integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= 2232 | 2233 | public-encrypt@^4.0.0: 2234 | version "4.0.3" 2235 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" 2236 | integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== 2237 | dependencies: 2238 | bn.js "^4.1.0" 2239 | browserify-rsa "^4.0.0" 2240 | create-hash "^1.1.0" 2241 | parse-asn1 "^5.0.0" 2242 | randombytes "^2.0.1" 2243 | safe-buffer "^5.1.2" 2244 | 2245 | pump@^2.0.0: 2246 | version "2.0.1" 2247 | resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" 2248 | integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== 2249 | dependencies: 2250 | end-of-stream "^1.1.0" 2251 | once "^1.3.1" 2252 | 2253 | pump@^3.0.0: 2254 | version "3.0.0" 2255 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 2256 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 2257 | dependencies: 2258 | end-of-stream "^1.1.0" 2259 | once "^1.3.1" 2260 | 2261 | pumpify@^1.3.3: 2262 | version "1.5.1" 2263 | resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" 2264 | integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== 2265 | dependencies: 2266 | duplexify "^3.6.0" 2267 | inherits "^2.0.3" 2268 | pump "^2.0.0" 2269 | 2270 | punycode@1.3.2: 2271 | version "1.3.2" 2272 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 2273 | integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= 2274 | 2275 | punycode@^1.2.4: 2276 | version "1.4.1" 2277 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 2278 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= 2279 | 2280 | punycode@^2.1.0: 2281 | version "2.1.1" 2282 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 2283 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 2284 | 2285 | querystring-es3@^0.2.0: 2286 | version "0.2.1" 2287 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" 2288 | integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= 2289 | 2290 | querystring@0.2.0: 2291 | version "0.2.0" 2292 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 2293 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= 2294 | 2295 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: 2296 | version "2.1.0" 2297 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 2298 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 2299 | dependencies: 2300 | safe-buffer "^5.1.0" 2301 | 2302 | randomfill@^1.0.3: 2303 | version "1.0.4" 2304 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" 2305 | integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== 2306 | dependencies: 2307 | randombytes "^2.0.5" 2308 | safe-buffer "^5.1.0" 2309 | 2310 | rc@^1.2.7: 2311 | version "1.2.8" 2312 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 2313 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 2314 | dependencies: 2315 | deep-extend "^0.6.0" 2316 | ini "~1.3.0" 2317 | minimist "^1.2.0" 2318 | strip-json-comments "~2.0.1" 2319 | 2320 | "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: 2321 | version "2.3.6" 2322 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 2323 | integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== 2324 | dependencies: 2325 | core-util-is "~1.0.0" 2326 | inherits "~2.0.3" 2327 | isarray "~1.0.0" 2328 | process-nextick-args "~2.0.0" 2329 | safe-buffer "~5.1.1" 2330 | string_decoder "~1.1.1" 2331 | util-deprecate "~1.0.1" 2332 | 2333 | readdirp@^2.2.1: 2334 | version "2.2.1" 2335 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" 2336 | integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== 2337 | dependencies: 2338 | graceful-fs "^4.1.11" 2339 | micromatch "^3.1.10" 2340 | readable-stream "^2.0.2" 2341 | 2342 | regex-not@^1.0.0, regex-not@^1.0.2: 2343 | version "1.0.2" 2344 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 2345 | integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== 2346 | dependencies: 2347 | extend-shallow "^3.0.2" 2348 | safe-regex "^1.1.0" 2349 | 2350 | remove-trailing-separator@^1.0.1: 2351 | version "1.1.0" 2352 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 2353 | integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= 2354 | 2355 | repeat-element@^1.1.2: 2356 | version "1.1.3" 2357 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" 2358 | integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== 2359 | 2360 | repeat-string@^1.6.1: 2361 | version "1.6.1" 2362 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2363 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= 2364 | 2365 | require-directory@^2.1.1: 2366 | version "2.1.1" 2367 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2368 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 2369 | 2370 | require-main-filename@^1.0.1: 2371 | version "1.0.1" 2372 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 2373 | integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= 2374 | 2375 | resolve-cwd@^2.0.0: 2376 | version "2.0.0" 2377 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" 2378 | integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= 2379 | dependencies: 2380 | resolve-from "^3.0.0" 2381 | 2382 | resolve-dir@^1.0.0, resolve-dir@^1.0.1: 2383 | version "1.0.1" 2384 | resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" 2385 | integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= 2386 | dependencies: 2387 | expand-tilde "^2.0.0" 2388 | global-modules "^1.0.0" 2389 | 2390 | resolve-from@^3.0.0: 2391 | version "3.0.0" 2392 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" 2393 | integrity sha1-six699nWiBvItuZTM17rywoYh0g= 2394 | 2395 | resolve-url@^0.2.1: 2396 | version "0.2.1" 2397 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 2398 | integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= 2399 | 2400 | resolve@^1.3.2: 2401 | version "1.8.1" 2402 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 2403 | integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== 2404 | dependencies: 2405 | path-parse "^1.0.5" 2406 | 2407 | ret@~0.1.10: 2408 | version "0.1.15" 2409 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 2410 | integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== 2411 | 2412 | rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: 2413 | version "2.6.3" 2414 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 2415 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 2416 | dependencies: 2417 | glob "^7.1.3" 2418 | 2419 | ripemd160@^2.0.0, ripemd160@^2.0.1: 2420 | version "2.0.2" 2421 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" 2422 | integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== 2423 | dependencies: 2424 | hash-base "^3.0.0" 2425 | inherits "^2.0.1" 2426 | 2427 | run-queue@^1.0.0, run-queue@^1.0.3: 2428 | version "1.0.3" 2429 | resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" 2430 | integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= 2431 | dependencies: 2432 | aproba "^1.1.1" 2433 | 2434 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2435 | version "5.1.2" 2436 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2437 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2438 | 2439 | safe-regex@^1.1.0: 2440 | version "1.1.0" 2441 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 2442 | integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= 2443 | dependencies: 2444 | ret "~0.1.10" 2445 | 2446 | "safer-buffer@>= 2.1.2 < 3": 2447 | version "2.1.2" 2448 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2449 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 2450 | 2451 | sax@^1.2.4: 2452 | version "1.2.4" 2453 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 2454 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== 2455 | 2456 | schema-utils@^1.0.0: 2457 | version "1.0.0" 2458 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" 2459 | integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== 2460 | dependencies: 2461 | ajv "^6.1.0" 2462 | ajv-errors "^1.0.0" 2463 | ajv-keywords "^3.1.0" 2464 | 2465 | semver@^5.3.0: 2466 | version "5.6.0" 2467 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" 2468 | integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== 2469 | 2470 | semver@^5.5.0, semver@^5.6.0: 2471 | version "5.7.0" 2472 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" 2473 | integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== 2474 | 2475 | semver@^6.0.0: 2476 | version "6.0.0" 2477 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" 2478 | integrity sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ== 2479 | 2480 | serialize-javascript@^1.7.0: 2481 | version "1.7.0" 2482 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" 2483 | integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== 2484 | 2485 | set-blocking@^2.0.0, set-blocking@~2.0.0: 2486 | version "2.0.0" 2487 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2488 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 2489 | 2490 | set-value@^0.4.3: 2491 | version "0.4.3" 2492 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" 2493 | integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= 2494 | dependencies: 2495 | extend-shallow "^2.0.1" 2496 | is-extendable "^0.1.1" 2497 | is-plain-object "^2.0.1" 2498 | to-object-path "^0.3.0" 2499 | 2500 | set-value@^2.0.0: 2501 | version "2.0.0" 2502 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" 2503 | integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== 2504 | dependencies: 2505 | extend-shallow "^2.0.1" 2506 | is-extendable "^0.1.1" 2507 | is-plain-object "^2.0.3" 2508 | split-string "^3.0.1" 2509 | 2510 | setimmediate@^1.0.4: 2511 | version "1.0.5" 2512 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 2513 | integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= 2514 | 2515 | sha.js@^2.4.0, sha.js@^2.4.8: 2516 | version "2.4.11" 2517 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 2518 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== 2519 | dependencies: 2520 | inherits "^2.0.1" 2521 | safe-buffer "^5.0.1" 2522 | 2523 | shebang-command@^1.2.0: 2524 | version "1.2.0" 2525 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 2526 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 2527 | dependencies: 2528 | shebang-regex "^1.0.0" 2529 | 2530 | shebang-regex@^1.0.0: 2531 | version "1.0.0" 2532 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 2533 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 2534 | 2535 | signal-exit@^3.0.0: 2536 | version "3.0.2" 2537 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2538 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 2539 | 2540 | snapdragon-node@^2.0.1: 2541 | version "2.1.1" 2542 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 2543 | integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== 2544 | dependencies: 2545 | define-property "^1.0.0" 2546 | isobject "^3.0.0" 2547 | snapdragon-util "^3.0.1" 2548 | 2549 | snapdragon-util@^3.0.1: 2550 | version "3.0.1" 2551 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 2552 | integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== 2553 | dependencies: 2554 | kind-of "^3.2.0" 2555 | 2556 | snapdragon@^0.8.1: 2557 | version "0.8.2" 2558 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 2559 | integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== 2560 | dependencies: 2561 | base "^0.11.1" 2562 | debug "^2.2.0" 2563 | define-property "^0.2.5" 2564 | extend-shallow "^2.0.1" 2565 | map-cache "^0.2.2" 2566 | source-map "^0.5.6" 2567 | source-map-resolve "^0.5.0" 2568 | use "^3.1.0" 2569 | 2570 | source-list-map@^2.0.0: 2571 | version "2.0.1" 2572 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" 2573 | integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== 2574 | 2575 | source-map-resolve@^0.5.0: 2576 | version "0.5.2" 2577 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" 2578 | integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== 2579 | dependencies: 2580 | atob "^2.1.1" 2581 | decode-uri-component "^0.2.0" 2582 | resolve-url "^0.2.1" 2583 | source-map-url "^0.4.0" 2584 | urix "^0.1.0" 2585 | 2586 | source-map-support@~0.5.12: 2587 | version "0.5.21" 2588 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 2589 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 2590 | dependencies: 2591 | buffer-from "^1.0.0" 2592 | source-map "^0.6.0" 2593 | 2594 | source-map-url@^0.4.0: 2595 | version "0.4.0" 2596 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 2597 | integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= 2598 | 2599 | source-map@^0.5.6: 2600 | version "0.5.7" 2601 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 2602 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 2603 | 2604 | source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: 2605 | version "0.6.1" 2606 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2607 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 2608 | 2609 | split-string@^3.0.1, split-string@^3.0.2: 2610 | version "3.1.0" 2611 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 2612 | integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== 2613 | dependencies: 2614 | extend-shallow "^3.0.0" 2615 | 2616 | sprintf-js@~1.0.2: 2617 | version "1.0.3" 2618 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2619 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 2620 | 2621 | ssri@^6.0.1: 2622 | version "6.0.2" 2623 | resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" 2624 | integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== 2625 | dependencies: 2626 | figgy-pudding "^3.5.1" 2627 | 2628 | static-extend@^0.1.1: 2629 | version "0.1.2" 2630 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 2631 | integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= 2632 | dependencies: 2633 | define-property "^0.2.5" 2634 | object-copy "^0.1.0" 2635 | 2636 | stream-browserify@^2.0.1: 2637 | version "2.0.2" 2638 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" 2639 | integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== 2640 | dependencies: 2641 | inherits "~2.0.1" 2642 | readable-stream "^2.0.2" 2643 | 2644 | stream-each@^1.1.0: 2645 | version "1.2.3" 2646 | resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" 2647 | integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== 2648 | dependencies: 2649 | end-of-stream "^1.1.0" 2650 | stream-shift "^1.0.0" 2651 | 2652 | stream-http@^2.7.2: 2653 | version "2.8.3" 2654 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" 2655 | integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== 2656 | dependencies: 2657 | builtin-status-codes "^3.0.0" 2658 | inherits "^2.0.1" 2659 | readable-stream "^2.3.6" 2660 | to-arraybuffer "^1.0.0" 2661 | xtend "^4.0.0" 2662 | 2663 | stream-shift@^1.0.0: 2664 | version "1.0.0" 2665 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" 2666 | integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= 2667 | 2668 | string-width@^1.0.1: 2669 | version "1.0.2" 2670 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 2671 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 2672 | dependencies: 2673 | code-point-at "^1.0.0" 2674 | is-fullwidth-code-point "^1.0.0" 2675 | strip-ansi "^3.0.0" 2676 | 2677 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: 2678 | version "2.1.1" 2679 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 2680 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 2681 | dependencies: 2682 | is-fullwidth-code-point "^2.0.0" 2683 | strip-ansi "^4.0.0" 2684 | 2685 | string_decoder@^1.0.0: 2686 | version "1.2.0" 2687 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" 2688 | integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== 2689 | dependencies: 2690 | safe-buffer "~5.1.0" 2691 | 2692 | string_decoder@~1.1.1: 2693 | version "1.1.1" 2694 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 2695 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 2696 | dependencies: 2697 | safe-buffer "~5.1.0" 2698 | 2699 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 2700 | version "3.0.1" 2701 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 2702 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 2703 | dependencies: 2704 | ansi-regex "^2.0.0" 2705 | 2706 | strip-ansi@^4.0.0: 2707 | version "4.0.0" 2708 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 2709 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 2710 | dependencies: 2711 | ansi-regex "^3.0.0" 2712 | 2713 | strip-eof@^1.0.0: 2714 | version "1.0.0" 2715 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 2716 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 2717 | 2718 | strip-json-comments@~2.0.1: 2719 | version "2.0.1" 2720 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 2721 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 2722 | 2723 | supports-color@^5.3.0, supports-color@^5.5.0: 2724 | version "5.5.0" 2725 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 2726 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 2727 | dependencies: 2728 | has-flag "^3.0.0" 2729 | 2730 | tapable@^1.0.0, tapable@^1.1.0: 2731 | version "1.1.3" 2732 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" 2733 | integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== 2734 | 2735 | tar@^4: 2736 | version "4.4.10" 2737 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" 2738 | integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== 2739 | dependencies: 2740 | chownr "^1.1.1" 2741 | fs-minipass "^1.2.5" 2742 | minipass "^2.3.5" 2743 | minizlib "^1.2.1" 2744 | mkdirp "^0.5.0" 2745 | safe-buffer "^5.1.2" 2746 | yallist "^3.0.3" 2747 | 2748 | terser-webpack-plugin@^1.1.0: 2749 | version "1.3.0" 2750 | resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.3.0.tgz#69aa22426299f4b5b3775cbed8cb2c5d419aa1d4" 2751 | integrity sha512-W2YWmxPjjkUcOWa4pBEv4OP4er1aeQJlSo2UhtCFQCuRXEHjOFscO8VyWHj9JLlA0RzQb8Y2/Ta78XZvT54uGg== 2752 | dependencies: 2753 | cacache "^11.3.2" 2754 | find-cache-dir "^2.0.0" 2755 | is-wsl "^1.1.0" 2756 | loader-utils "^1.2.3" 2757 | schema-utils "^1.0.0" 2758 | serialize-javascript "^1.7.0" 2759 | source-map "^0.6.1" 2760 | terser "^4.0.0" 2761 | webpack-sources "^1.3.0" 2762 | worker-farm "^1.7.0" 2763 | 2764 | terser@^4.0.0: 2765 | version "4.8.1" 2766 | resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" 2767 | integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== 2768 | dependencies: 2769 | commander "^2.20.0" 2770 | source-map "~0.6.1" 2771 | source-map-support "~0.5.12" 2772 | 2773 | through2@^2.0.0: 2774 | version "2.0.5" 2775 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" 2776 | integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== 2777 | dependencies: 2778 | readable-stream "~2.3.6" 2779 | xtend "~4.0.1" 2780 | 2781 | timers-browserify@^2.0.4: 2782 | version "2.0.10" 2783 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" 2784 | integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== 2785 | dependencies: 2786 | setimmediate "^1.0.4" 2787 | 2788 | to-arraybuffer@^1.0.0: 2789 | version "1.0.1" 2790 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" 2791 | integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= 2792 | 2793 | to-object-path@^0.3.0: 2794 | version "0.3.0" 2795 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 2796 | integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= 2797 | dependencies: 2798 | kind-of "^3.0.2" 2799 | 2800 | to-regex-range@^2.1.0: 2801 | version "2.1.1" 2802 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 2803 | integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= 2804 | dependencies: 2805 | is-number "^3.0.0" 2806 | repeat-string "^1.6.1" 2807 | 2808 | to-regex-range@^5.0.1: 2809 | version "5.0.1" 2810 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2811 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 2812 | dependencies: 2813 | is-number "^7.0.0" 2814 | 2815 | to-regex@^3.0.1, to-regex@^3.0.2: 2816 | version "3.0.2" 2817 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 2818 | integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== 2819 | dependencies: 2820 | define-property "^2.0.2" 2821 | extend-shallow "^3.0.2" 2822 | regex-not "^1.0.2" 2823 | safe-regex "^1.1.0" 2824 | 2825 | ts-loader@^6.0.3: 2826 | version "6.0.3" 2827 | resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-6.0.3.tgz#6ef6f086d7080b9cf02ed1945377aeb5ed1b5cf6" 2828 | integrity sha512-iICBD4PryhnGNdtaDva49UGODHFVcuK7p4+G8CP1TVcUhTC4hkcy4MC2dzWwALSnpOzfUfA/4u8B2F64wsMgjQ== 2829 | dependencies: 2830 | chalk "^2.3.0" 2831 | enhanced-resolve "^4.0.0" 2832 | loader-utils "^1.0.2" 2833 | micromatch "^4.0.0" 2834 | semver "^6.0.0" 2835 | 2836 | tslib@^1.8.0, tslib@^1.8.1: 2837 | version "1.9.3" 2838 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" 2839 | integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== 2840 | 2841 | tslib@^1.9.0: 2842 | version "1.10.0" 2843 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" 2844 | integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== 2845 | 2846 | tslint-config-prettier@^1.6.0: 2847 | version "1.15.0" 2848 | resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.15.0.tgz#76b9714399004ab6831fdcf76d89b73691c812cf" 2849 | integrity sha512-06CgrHJxJmNYVgsmeMoa1KXzQRoOdvfkqnJth6XUkNeOz707qxN0WfxfhYwhL5kXHHbYJRby2bqAPKwThlZPhw== 2850 | 2851 | tslint-react@^3.2.0: 2852 | version "3.6.0" 2853 | resolved "https://registry.yarnpkg.com/tslint-react/-/tslint-react-3.6.0.tgz#7f462c95c4a0afaae82507f06517ff02942196a1" 2854 | integrity sha512-AIv1QcsSnj7e9pFir6cJ6vIncTqxfqeFF3Lzh8SuuBljueYzEAtByuB6zMaD27BL0xhMEqsZ9s5eHuCONydjBw== 2855 | dependencies: 2856 | tsutils "^2.13.1" 2857 | 2858 | tslint@^5.16.0: 2859 | version "5.16.0" 2860 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.16.0.tgz#ae61f9c5a98d295b9a4f4553b1b1e831c1984d67" 2861 | integrity sha512-UxG2yNxJ5pgGwmMzPMYh/CCnCnh0HfPgtlVRDs1ykZklufFBL1ZoTlWFRz2NQjcoEiDoRp+JyT0lhBbbH/obyA== 2862 | dependencies: 2863 | "@babel/code-frame" "^7.0.0" 2864 | builtin-modules "^1.1.1" 2865 | chalk "^2.3.0" 2866 | commander "^2.12.1" 2867 | diff "^3.2.0" 2868 | glob "^7.1.1" 2869 | js-yaml "^3.13.0" 2870 | minimatch "^3.0.4" 2871 | mkdirp "^0.5.1" 2872 | resolve "^1.3.2" 2873 | semver "^5.3.0" 2874 | tslib "^1.8.0" 2875 | tsutils "^2.29.0" 2876 | 2877 | tsutils@^2.13.1, tsutils@^2.29.0: 2878 | version "2.29.0" 2879 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" 2880 | integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== 2881 | dependencies: 2882 | tslib "^1.8.1" 2883 | 2884 | tty-browserify@0.0.0: 2885 | version "0.0.0" 2886 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" 2887 | integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= 2888 | 2889 | typedarray@^0.0.6: 2890 | version "0.0.6" 2891 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 2892 | integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= 2893 | 2894 | typescript@^3.4.4: 2895 | version "3.4.5" 2896 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" 2897 | integrity sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw== 2898 | 2899 | union-value@^1.0.0: 2900 | version "1.0.0" 2901 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" 2902 | integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= 2903 | dependencies: 2904 | arr-union "^3.1.0" 2905 | get-value "^2.0.6" 2906 | is-extendable "^0.1.1" 2907 | set-value "^0.4.3" 2908 | 2909 | unique-filename@^1.1.1: 2910 | version "1.1.1" 2911 | resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" 2912 | integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== 2913 | dependencies: 2914 | unique-slug "^2.0.0" 2915 | 2916 | unique-slug@^2.0.0: 2917 | version "2.0.2" 2918 | resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" 2919 | integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== 2920 | dependencies: 2921 | imurmurhash "^0.1.4" 2922 | 2923 | unset-value@^1.0.0: 2924 | version "1.0.0" 2925 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 2926 | integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= 2927 | dependencies: 2928 | has-value "^0.3.1" 2929 | isobject "^3.0.0" 2930 | 2931 | upath@^1.1.1: 2932 | version "1.1.2" 2933 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" 2934 | integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== 2935 | 2936 | uri-js@^4.2.2: 2937 | version "4.4.1" 2938 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 2939 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 2940 | dependencies: 2941 | punycode "^2.1.0" 2942 | 2943 | urix@^0.1.0: 2944 | version "0.1.0" 2945 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 2946 | integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= 2947 | 2948 | url@^0.11.0: 2949 | version "0.11.0" 2950 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" 2951 | integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= 2952 | dependencies: 2953 | punycode "1.3.2" 2954 | querystring "0.2.0" 2955 | 2956 | use@^3.1.0: 2957 | version "3.1.1" 2958 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" 2959 | integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== 2960 | 2961 | util-deprecate@~1.0.1: 2962 | version "1.0.2" 2963 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2964 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 2965 | 2966 | util@0.10.3: 2967 | version "0.10.3" 2968 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" 2969 | integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= 2970 | dependencies: 2971 | inherits "2.0.1" 2972 | 2973 | util@^0.11.0: 2974 | version "0.11.1" 2975 | resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" 2976 | integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== 2977 | dependencies: 2978 | inherits "2.0.3" 2979 | 2980 | v8-compile-cache@^2.0.2: 2981 | version "2.0.3" 2982 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" 2983 | integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== 2984 | 2985 | vm-browserify@^1.0.1: 2986 | version "1.1.0" 2987 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" 2988 | integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== 2989 | 2990 | vscode-emmet-helper@^1.2.15: 2991 | version "1.2.15" 2992 | resolved "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-1.2.15.tgz#62dbfbf49bb9ebe329cb7bffdda5aaac725eea7a" 2993 | integrity sha512-JplvmMMWSvm/6/dZezix2ADPM49u6YahPYjs/QToohUpomW/2Eb27ecCrkCyOGBPfKLKGiOPHCssss8TSDA9ag== 2994 | dependencies: 2995 | "@emmetio/extract-abbreviation" "0.1.6" 2996 | jsonc-parser "^1.0.0" 2997 | vscode-languageserver-types "^3.6.0-next.1" 2998 | 2999 | vscode-jsonrpc@^4.1.0-next.2: 3000 | version "4.1.0-next.2" 3001 | resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.1.0-next.2.tgz#3bd318910a48e631742b290975386e3dae685be3" 3002 | integrity sha512-GsBLjP9DxQ42yl1mW9GEIlnSc0+R8mfzhaebwmmTPEJjezD5SPoAo3DFrIAFZha9yvQ1nzZfZlhtVpGQmgxtXg== 3003 | 3004 | vscode-languageserver-protocol@^3.15.0-next.5: 3005 | version "3.15.0-next.5" 3006 | resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.0-next.5.tgz#23afad3d28795f2235eda7a167e2fe0825b7c151" 3007 | integrity sha512-rR7Zo5WZTGSsE9lq7pPSgO+VMhVV8UVq6emrDoQ3x5dUyhLKB2/gbMkGKucQpsKGLtF/NuccCa+3jMsO788HjQ== 3008 | dependencies: 3009 | vscode-jsonrpc "^4.1.0-next.2" 3010 | vscode-languageserver-types "3.15.0-next.1" 3011 | 3012 | vscode-languageserver-types@3.15.0-next.1: 3013 | version "3.15.0-next.1" 3014 | resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.0-next.1.tgz#eddca4cf2a2547357006d4f0cc177ddc56043b65" 3015 | integrity sha512-R0kzmaI8gOGEoU7b9huYQAzgZzRQ/5Q8HKjsIUdfz0MjXcBZ4tr1ik1So1p1O5kGrI1VTCd22Fw/wI7ECGoIPw== 3016 | 3017 | vscode-languageserver-types@^3.6.0-next.1: 3018 | version "3.13.0" 3019 | resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.13.0.tgz#b704b024cef059f7b326611c99b9c8753c0a18b4" 3020 | integrity sha512-BnJIxS+5+8UWiNKCP7W3g9FlE7fErFw0ofP5BXJe7c2tl0VeWh+nNHFbwAS2vmVC4a5kYxHBjRy0UeOtziemVA== 3021 | 3022 | vscode-uri@^1.0.6: 3023 | version "1.0.6" 3024 | resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.6.tgz#6b8f141b0bbc44ad7b07e94f82f168ac7608ad4d" 3025 | integrity sha512-sLI2L0uGov3wKVb9EB+vIQBl9tVP90nqRvxSoJ35vI3NjxE8jfsE5DSOhWgSunHSZmKS4OCi2jrtfxK7uyp2ww== 3026 | 3027 | watchpack@^1.5.0: 3028 | version "1.6.0" 3029 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" 3030 | integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== 3031 | dependencies: 3032 | chokidar "^2.0.2" 3033 | graceful-fs "^4.1.2" 3034 | neo-async "^2.5.0" 3035 | 3036 | webpack-cli@^3.3.4: 3037 | version "3.3.4" 3038 | resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.4.tgz#de27e281c48a897b8c219cb093e261d5f6afe44a" 3039 | integrity sha512-ubJGQEKMtBSpT+LiL5hXvn2GIOWiRWItR1DGUqJRhwRBeGhpRXjvF5f0erqdRJLErkfqS5/Ldkkedh4AL5Q1ZQ== 3040 | dependencies: 3041 | chalk "^2.4.1" 3042 | cross-spawn "^6.0.5" 3043 | enhanced-resolve "^4.1.0" 3044 | findup-sync "^2.0.0" 3045 | global-modules "^1.0.0" 3046 | import-local "^2.0.0" 3047 | interpret "^1.1.0" 3048 | loader-utils "^1.1.0" 3049 | prettier "^1.17.0" 3050 | supports-color "^5.5.0" 3051 | v8-compile-cache "^2.0.2" 3052 | yargs "^12.0.5" 3053 | 3054 | webpack-sources@^1.3.0: 3055 | version "1.3.0" 3056 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" 3057 | integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== 3058 | dependencies: 3059 | source-list-map "^2.0.0" 3060 | source-map "~0.6.1" 3061 | 3062 | webpack@^4.34.0: 3063 | version "4.34.0" 3064 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.34.0.tgz#a4c30129482f7b4ece4c0842002dedf2b56fab58" 3065 | integrity sha512-ry2IQy1wJjOefLe1uJLzn5tG/DdIKzQqNlIAd2L84kcaADqNvQDTBlo8UcCNyDaT5FiaB+16jhAkb63YeG3H8Q== 3066 | dependencies: 3067 | "@webassemblyjs/ast" "1.8.5" 3068 | "@webassemblyjs/helper-module-context" "1.8.5" 3069 | "@webassemblyjs/wasm-edit" "1.8.5" 3070 | "@webassemblyjs/wasm-parser" "1.8.5" 3071 | acorn "^6.0.5" 3072 | acorn-dynamic-import "^4.0.0" 3073 | ajv "^6.1.0" 3074 | ajv-keywords "^3.1.0" 3075 | chrome-trace-event "^1.0.0" 3076 | enhanced-resolve "^4.1.0" 3077 | eslint-scope "^4.0.0" 3078 | json-parse-better-errors "^1.0.2" 3079 | loader-runner "^2.3.0" 3080 | loader-utils "^1.1.0" 3081 | memory-fs "~0.4.1" 3082 | micromatch "^3.1.8" 3083 | mkdirp "~0.5.0" 3084 | neo-async "^2.5.0" 3085 | node-libs-browser "^2.0.0" 3086 | schema-utils "^1.0.0" 3087 | tapable "^1.1.0" 3088 | terser-webpack-plugin "^1.1.0" 3089 | watchpack "^1.5.0" 3090 | webpack-sources "^1.3.0" 3091 | 3092 | which-module@^2.0.0: 3093 | version "2.0.0" 3094 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 3095 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 3096 | 3097 | which@^1.2.14, which@^1.2.9: 3098 | version "1.3.1" 3099 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 3100 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 3101 | dependencies: 3102 | isexe "^2.0.0" 3103 | 3104 | wide-align@^1.1.0: 3105 | version "1.1.3" 3106 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 3107 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 3108 | dependencies: 3109 | string-width "^1.0.2 || 2" 3110 | 3111 | worker-farm@^1.7.0: 3112 | version "1.7.0" 3113 | resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" 3114 | integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== 3115 | dependencies: 3116 | errno "~0.1.7" 3117 | 3118 | wrap-ansi@^2.0.0: 3119 | version "2.1.0" 3120 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 3121 | integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= 3122 | dependencies: 3123 | string-width "^1.0.1" 3124 | strip-ansi "^3.0.1" 3125 | 3126 | wrappy@1: 3127 | version "1.0.2" 3128 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3129 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 3130 | 3131 | xtend@^4.0.0, xtend@~4.0.1: 3132 | version "4.0.1" 3133 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 3134 | integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= 3135 | 3136 | "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: 3137 | version "4.0.0" 3138 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" 3139 | integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== 3140 | 3141 | yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: 3142 | version "3.0.3" 3143 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" 3144 | integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== 3145 | 3146 | yargs-parser@^11.1.1: 3147 | version "11.1.1" 3148 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" 3149 | integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== 3150 | dependencies: 3151 | camelcase "^5.0.0" 3152 | decamelize "^1.2.0" 3153 | 3154 | yargs@^12.0.5: 3155 | version "12.0.5" 3156 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" 3157 | integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== 3158 | dependencies: 3159 | cliui "^4.0.0" 3160 | decamelize "^1.2.0" 3161 | find-up "^3.0.0" 3162 | get-caller-file "^1.0.1" 3163 | os-locale "^3.0.0" 3164 | require-directory "^2.1.1" 3165 | require-main-filename "^1.0.1" 3166 | set-blocking "^2.0.0" 3167 | string-width "^2.0.0" 3168 | which-module "^2.0.0" 3169 | y18n "^3.2.1 || ^4.0.0" 3170 | yargs-parser "^11.1.1" 3171 | --------------------------------------------------------------------------------