├── .gitignore ├── .prettierrc ├── .vscode ├── extensions.json ├── launch.json ├── settings.json └── tasks.json ├── .vscodeignore ├── CHANGELOG.md ├── README.md ├── package.json ├── screenshots └── vscode-open-in-playground.gif ├── src ├── extension.ts └── test │ ├── runTest.ts │ └── suite │ ├── extension.test.ts │ └── index.ts ├── tsconfig.json ├── tslint.json ├── vsc-extension-quickstart.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | node_modules 3 | .vscode-test/ 4 | *.vsix 5 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "semi": false, 4 | "singleQuote": false, 5 | "trailingComma": "es5", 6 | "bracketSpacing": true, 7 | "proseWrap": "always" 8 | } 9 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "ms-vscode.vscode-typescript-tslint-plugin" 6 | ] 7 | } -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that compiles the extension and then opens it inside a new window 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | { 6 | "version": "0.2.0", 7 | "configurations": [ 8 | { 9 | "name": "Run Extension", 10 | "type": "extensionHost", 11 | "request": "launch", 12 | "runtimeExecutable": "${execPath}", 13 | "args": [ 14 | "--extensionDevelopmentPath=${workspaceFolder}" 15 | ], 16 | "outFiles": [ 17 | "${workspaceFolder}/out/**/*.js" 18 | ], 19 | "preLaunchTask": "npm: watch" 20 | }, 21 | { 22 | "name": "Extension Tests", 23 | "type": "extensionHost", 24 | "request": "launch", 25 | "runtimeExecutable": "${execPath}", 26 | "args": [ 27 | "--extensionDevelopmentPath=${workspaceFolder}", 28 | "--extensionTestsPath=${workspaceFolder}/out/test/suite/index" 29 | ], 30 | "outFiles": [ 31 | "${workspaceFolder}/out/test/**/*.js" 32 | ], 33 | "preLaunchTask": "npm: watch" 34 | } 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | "files.exclude": { 4 | "out": false // set this to true to hide the "out" folder with the compiled JS files 5 | }, 6 | "search.exclude": { 7 | "out": true // set this to false to include "out" folder in search results 8 | }, 9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts 10 | "typescript.tsc.autoDetect": "off", 11 | "editor.formatOnSave": true 12 | } 13 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | // See https://go.microsoft.com/fwlink/?LinkId=733558 2 | // for the documentation about the tasks.json format 3 | { 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "type": "npm", 8 | "script": "watch", 9 | "problemMatcher": "$tsc-watch", 10 | "isBackground": true, 11 | "presentation": { 12 | "reveal": "never" 13 | }, 14 | "group": { 15 | "kind": "build", 16 | "isDefault": true 17 | } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | .vscode-test/** 3 | out/test/** 4 | src/** 5 | .gitignore 6 | vsc-extension-quickstart.md 7 | **/tsconfig.json 8 | **/tslint.json 9 | **/*.map 10 | **/*.ts -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to the "vscode-ts-markdown-to-playground" extension will be documented in this file. 4 | 5 | Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file. 6 | 7 | ## 1.1.0 8 | 9 | - Adds a command to open the file or selection in the TypeScript playground 10 | 11 | ## 1.0.0 12 | 13 | - Initial release with support code fenced codeblocks with js/javascript/ts/typescript as their language 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vscode-ts-markdown-to-playground 2 | 3 | ## Features 4 | 5 | - Adds a link to JavaScript and TypeScript codeblocks in markdown to open in the TypeScript playground. 6 | 7 | ![screenshots/vscode-open-in-playground.gif](screenshots/vscode-open-in-playground.gif) 8 | 9 | - Adds a command to open the file or selection in the TypeScript playground 10 | - Very few dependencies 11 | - Is very memory efficient 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vscode-ts-markdown-to-playground", 3 | "publisher": "Orta", 4 | "displayName": "Open in TypeScript Playground", 5 | "description": "Open TypeScript code in the TypeScript Playground", 6 | "version": "1.1.0", 7 | "license": "MIT", 8 | "repository": { 9 | "type": "git", 10 | "url": "https://github.com/orta/vscode-ts-markdown-to-playground" 11 | }, 12 | "engines": { 13 | "vscode": "^1.36.0" 14 | }, 15 | "categories": [ 16 | "Other" 17 | ], 18 | "activationEvents": [ 19 | "onLanguage:markdown", 20 | "onCommand:tsPlayground.openFileAsPlayground", 21 | "onCommand:tsPlayground.copyFileAsPlaygroundURL", 22 | "onCommand:tsPlayground.openSelectionInPlayground", 23 | "onCommand:tsPlayground.copySelectionAsPlaygroundURL" 24 | ], 25 | "main": "./out/extension.js", 26 | "scripts": { 27 | "vscode:prepublish": "yarn run compile", 28 | "compile": "tsc -p ./", 29 | "watch": "tsc -watch -p ./", 30 | "pretest": "yarn run compile", 31 | "test": "node ./out/test/runTest.js" 32 | }, 33 | "devDependencies": { 34 | "@types/glob": "^7.1.1", 35 | "@types/mocha": "^5.2.6", 36 | "@types/node": "^10.12.21", 37 | "@types/vscode": "^1.36.0", 38 | "glob": "^7.1.4", 39 | "mocha": "^6.1.4", 40 | "tslint": "^5.12.1", 41 | "typescript": "^3.3.1", 42 | "vscode-test": "^1.0.0-next.0" 43 | }, 44 | "dependencies": { 45 | "gfm-code-blocks": "^1.0.0" 46 | }, 47 | "contributes": { 48 | "commands": [ 49 | { 50 | "command": "tsPlayground.openFileInPlayground", 51 | "category": "TypeScript Playground", 52 | "title": "Open File in Playground" 53 | }, 54 | { 55 | "command": "tsPlayground.copyFileAsPlaygroundURL", 56 | "category": "TypeScript Playground", 57 | "title": "Copy File as Playground URL" 58 | }, 59 | { 60 | "command": "tsPlayground.openSelectionInPlayground", 61 | "category": "TypeScript Playground", 62 | "title": "Open Selection in Playground" 63 | }, 64 | { 65 | "command": "tsPlayground.copySelectionAsPlaygroundURL", 66 | "category": "TypeScript Playground", 67 | "title": "Copy Selection as Playground URL" 68 | } 69 | ], 70 | "menus": { 71 | "commandPalette": [ 72 | { 73 | "command": "tsPlayground.openFileInPlayground", 74 | "when": "editorLangId =~ /typescript(react)?/ && !editorHasSelection" 75 | }, 76 | { 77 | "command": "tsPlayground.copyFileAsPlaygroundURL", 78 | "when": "editorLangId =~ /typescript(react)?/ && !editorHasSelection" 79 | }, 80 | { 81 | "command": "tsPlayground.openSelectionInPlayground", 82 | "when": "editorLangId =~ /typescript(react)?/ && editorHasSelection" 83 | }, 84 | { 85 | "command": "tsPlayground.copySelectionAsPlaygroundURL", 86 | "when": "editorLangId =~ /typescript(react)?/ && editorHasSelection" 87 | } 88 | ] 89 | } 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /screenshots/vscode-open-in-playground.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/orta/vscode-typescript-playground-links/db77a2b087b61b7dfafe48caea24ba53230bb05b/screenshots/vscode-open-in-playground.gif -------------------------------------------------------------------------------- /src/extension.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from "vscode" 2 | var codeBlocks = require("gfm-code-blocks") 3 | 4 | function getTypeScriptPlaygroundURL(code: string) { 5 | return "https://www.typescriptlang.org/play/#src=" + encodeURI(code) 6 | } 7 | 8 | class LinkProvider implements vscode.DocumentLinkProvider { 9 | links: { lang: string; start: number }[] = [] 10 | 11 | provideDocumentLinks( 12 | document: vscode.TextDocument, 13 | token: vscode.CancellationToken 14 | ): vscode.ProviderResult { 15 | const links = decorateMarkdownEditor(document) 16 | return links.map(l => { 17 | const startPosition = document.positionAt(l.start + 3) 18 | const endPosition = document.positionAt(l.start + 3 + l.lang.length) 19 | return { 20 | range: new vscode.Range(startPosition, endPosition), 21 | tooltip: "Open in TypeScript Playground", 22 | } 23 | }) 24 | } 25 | 26 | resolveDocumentLink( 27 | link: vscode.DocumentLink, 28 | token: vscode.CancellationToken 29 | ): vscode.ProviderResult { 30 | const editor = vscode.window.activeTextEditor 31 | if (!editor) { 32 | return 33 | } 34 | 35 | const tsOrJSBlocks = getCodeblocks(editor.document) 36 | const selectedBlock = tsOrJSBlocks.find(block => { 37 | const pos = editor.document.positionAt(block.start + 3) 38 | return pos.isEqual(link.range.start) 39 | }) 40 | 41 | if (!selectedBlock) { 42 | console.log("Could not find the codeblock") 43 | return 44 | } 45 | 46 | const url = getTypeScriptPlaygroundURL(selectedBlock.code) 47 | 48 | return { 49 | target: vscode.Uri.parse(url), 50 | range: link.range, 51 | tooltip: link.tooltip, 52 | } 53 | } 54 | } 55 | 56 | const linkProvider = new LinkProvider() 57 | 58 | // this method is called when your extension is activated 59 | // your extension is activated the very first time the command is executed 60 | export function activate(context: vscode.ExtensionContext) { 61 | // Use the console to output diagnostic information (console.log) and errors (console.error) 62 | // This line of code will only be executed once when your extension is activated 63 | console.log('Congratulations, your extension "vscode-ts-markdown-to-playground" is now active!') 64 | 65 | // const openEditors = vscode.window.visibleTextEditors.filter(e => e.document.languageId === "markdown") 66 | // openEditors.forEach(decorateMarkdownEditor) 67 | 68 | const selector: vscode.DocumentSelector = [ 69 | { language: "markdown", scheme: "file" }, 70 | { language: "markdown", scheme: "untitled" }, 71 | ] 72 | 73 | vscode.languages.registerDocumentLinkProvider(selector, linkProvider) 74 | 75 | context.subscriptions.push(...[ 76 | vscode.commands.registerCommand("tsPlayground.openFileInPlayground", () => { 77 | if (vscode.window.activeTextEditor) { 78 | vscode.env.openExternal( 79 | vscode.Uri.parse(getTypeScriptPlaygroundURL(vscode.window.activeTextEditor.document.getText())) 80 | ) 81 | } 82 | }), 83 | vscode.commands.registerCommand("tsPlayground.copyFileAsPlaygroundURL", () => { 84 | if (vscode.window.activeTextEditor) { 85 | vscode.env.clipboard.writeText( 86 | getTypeScriptPlaygroundURL(vscode.window.activeTextEditor.document.getText()) 87 | ) 88 | } 89 | }), 90 | vscode.commands.registerCommand("tsPlayground.openSelectionInPlayground", () => { 91 | if (vscode.window.activeTextEditor) { 92 | vscode.env.openExternal( 93 | vscode.Uri.parse(getTypeScriptPlaygroundURL(getAllSelectedText(vscode.window.activeTextEditor))) 94 | ) 95 | } 96 | }), 97 | vscode.commands.registerCommand("tsPlayground.copySelectionAsPlaygroundURL", () => { 98 | if (vscode.window.activeTextEditor) { 99 | vscode.env.clipboard.writeText( 100 | getTypeScriptPlaygroundURL(getAllSelectedText(vscode.window.activeTextEditor)) 101 | ) 102 | } 103 | }), 104 | ]) 105 | 106 | // vscode.workspace.onDidOpenTextDocument(event => decorateMarkdownEditor(vscode.window.activeTextEditor)) 107 | // vscode.workspace.onWillSaveTextDocument(event => { 108 | // const openEditor = vscode.window.visibleTextEditors.filter(editor => editor.document.uri === event.document.uri)[0] 109 | // decorateMarkdownEditor(openEditor) 110 | // }) 111 | } 112 | 113 | function decorateMarkdownEditor(document: vscode.TextDocument) { 114 | const tsOrJSBlocks = getCodeblocks(document) 115 | return tsOrJSBlocks.map(b => ({ lang: b.lang, start: b.start })) 116 | } 117 | 118 | function getAllSelectedText(textEditor: vscode.TextEditor) { 119 | return textEditor.selections 120 | .map(selection => getSelectionContentWithoutLeadingWhitespace(textEditor, selection)) 121 | .join(getCurrentEOL(textEditor).repeat(2)) 122 | } 123 | 124 | function getSelectionContentWithoutLeadingWhitespace(textEditor: vscode.TextEditor, selection: vscode.Selection) { 125 | const textLines: string[] = [] 126 | let trimLength = Infinity; 127 | for (let line = selection.start.line; line <= selection.end.line; line++) { 128 | const lineEnd = line === selection.end.line 129 | ? selection.end 130 | : textEditor.document.positionAt(textEditor.document.offsetAt(new vscode.Position(line + 1, 0)) - 1) 131 | 132 | let lineText = textEditor.document.getText(new vscode.Range(new vscode.Position(line, 0), lineEnd)) 133 | if (line === selection.start.line) { 134 | lineText = " ".repeat(selection.start.character) + lineText.slice(selection.start.character) 135 | } 136 | 137 | const firstNonWhitespaceChar = lineText.match(/\S/) 138 | if (firstNonWhitespaceChar) { 139 | trimLength = Math.min(trimLength, firstNonWhitespaceChar.index!) 140 | } 141 | textLines.push(lineText) 142 | } 143 | 144 | return textLines.map(line => line.slice(trimLength)).join(getCurrentEOL(textEditor)) 145 | } 146 | 147 | function getCurrentEOL(textEditor: vscode.TextEditor) { 148 | switch (textEditor.document.eol) { 149 | case vscode.EndOfLine.CRLF: return "\r\n" 150 | case vscode.EndOfLine.LF: return "\n" 151 | } 152 | } 153 | 154 | export const getCodeblocks = (document: vscode.TextDocument) => { 155 | const sourceCode = document.getText() 156 | const code = codeBlocks(sourceCode) as { lang: string; code: string; block: string; start: number; end: number }[] 157 | const acceptable = ["js", "javascript", "ts", "typescript"] 158 | return code.filter(c => acceptable.includes(c.lang)) 159 | } 160 | 161 | // this method is called when your extension is deactivated 162 | export function deactivate() { } 163 | -------------------------------------------------------------------------------- /src/test/runTest.ts: -------------------------------------------------------------------------------- 1 | import * as path from 'path'; 2 | 3 | import { runTests } from 'vscode-test'; 4 | 5 | async function main() { 6 | try { 7 | // The folder containing the Extension Manifest package.json 8 | // Passed to `--extensionDevelopmentPath` 9 | const extensionDevelopmentPath = path.resolve(__dirname, '../../'); 10 | 11 | // The path to test runner 12 | // Passed to --extensionTestsPath 13 | const extensionTestsPath = path.resolve(__dirname, './suite/index'); 14 | 15 | // Download VS Code, unzip it and run the integration test 16 | await runTests({ extensionDevelopmentPath, extensionTestsPath }); 17 | } catch (err) { 18 | console.error('Failed to run tests'); 19 | process.exit(1); 20 | } 21 | } 22 | 23 | main(); 24 | -------------------------------------------------------------------------------- /src/test/suite/extension.test.ts: -------------------------------------------------------------------------------- 1 | import * as assert from 'assert'; 2 | import { before } from 'mocha'; 3 | 4 | // You can import and use all API from the 'vscode' module 5 | // as well as import your extension to test it 6 | import * as vscode from 'vscode'; 7 | // import * as myExtension from '../extension'; 8 | 9 | suite('Extension Test Suite', () => { 10 | before(() => { 11 | vscode.window.showInformationMessage('Start all tests.'); 12 | }); 13 | 14 | test('Sample test', () => { 15 | assert.equal(-1, [1, 2, 3].indexOf(5)); 16 | assert.equal(-1, [1, 2, 3].indexOf(0)); 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /src/test/suite/index.ts: -------------------------------------------------------------------------------- 1 | import * as path from 'path'; 2 | import * as Mocha from 'mocha'; 3 | import * as glob from 'glob'; 4 | 5 | export function run(): Promise { 6 | // Create the mocha test 7 | const mocha = new Mocha({ 8 | ui: 'tdd', 9 | }); 10 | mocha.useColors(true); 11 | 12 | const testsRoot = path.resolve(__dirname, '..'); 13 | 14 | return new Promise((c, e) => { 15 | glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { 16 | if (err) { 17 | return e(err); 18 | } 19 | 20 | // Add files to the test suite 21 | files.forEach(f => mocha.addFile(path.resolve(testsRoot, f))); 22 | 23 | try { 24 | // Run the mocha test 25 | mocha.run(failures => { 26 | if (failures > 0) { 27 | e(new Error(`${failures} tests failed.`)); 28 | } else { 29 | c(); 30 | } 31 | }); 32 | } catch (err) { 33 | e(err); 34 | } 35 | }); 36 | }); 37 | } 38 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "es6", 5 | "outDir": "out", 6 | "lib": [ 7 | "es6" 8 | ], 9 | "sourceMap": true, 10 | "rootDir": "src", 11 | "strict": true /* enable all strict type-checking options */ 12 | /* Additional Checks */ 13 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 14 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 15 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 16 | }, 17 | "exclude": [ 18 | "node_modules", 19 | ".vscode-test" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-string-throw": true, 4 | "no-unused-expression": true, 5 | "no-duplicate-variable": true, 6 | "curly": true, 7 | "class-name": true, 8 | "triple-equals": true 9 | }, 10 | "defaultSeverity": "warning" 11 | } 12 | -------------------------------------------------------------------------------- /vsc-extension-quickstart.md: -------------------------------------------------------------------------------- 1 | # Welcome to your VS Code Extension 2 | 3 | ## What's in the folder 4 | 5 | - This folder contains all of the files necessary for your extension. 6 | - `package.json` - this is the manifest file in which you declare your extension and command. 7 | - The sample plugin registers a command and defines its title and command name. With this information VS Code can show 8 | the command in the command palette. It doesn’t yet need to load the plugin. 9 | - `src/extension.ts` - this is the main file where you will provide the implementation of your command. 10 | - The file exports one function, `activate`, which is called the very first time your extension is activated (in this 11 | case by executing the command). Inside the `activate` function we call `registerCommand`. 12 | - We pass the function containing the implementation of the command as the second parameter to `registerCommand`. 13 | 14 | ## Get up and running straight away 15 | 16 | - Press `F5` to open a new window with your extension loaded. 17 | - Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing 18 | `Hello World`. 19 | - Set breakpoints in your code inside `src/extension.ts` to debug your extension. 20 | - Find output from your extension in the debug console. 21 | 22 | ## Make changes 23 | 24 | - You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`. 25 | - You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes. 26 | 27 | ## Explore the API 28 | 29 | - You can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`. 30 | 31 | ## Run tests 32 | 33 | - Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick 34 | `Extension Tests`. 35 | - Press `F5` to run the tests in a new window with your extension loaded. 36 | - See the output of the test result in the debug console. 37 | - Make changes to `test/extension.test.ts` or create new test files inside the `test` folder. 38 | - By convention, the test runner will only consider files matching the name pattern `**.test.ts`. 39 | - You can create folders inside the `test` folder to structure your tests any way you want. 40 | 41 | ## Go further 42 | 43 | - Reduce the extension size and improve the startup time by 44 | [bundling your extension](https://code.visualstudio.com/api/working-with-extensions/testing-extension). 45 | - [Publish your extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension) on the VSCode 46 | extension marketplace. 47 | - Automate builds by setting up 48 | [Continuous Integration](https://code.visualstudio.com/api/working-with-extensions/continuous-integration). 49 | -------------------------------------------------------------------------------- /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.5.5" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" 8 | integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== 9 | dependencies: 10 | "@babel/highlight" "^7.0.0" 11 | 12 | "@babel/highlight@^7.0.0": 13 | version "7.5.0" 14 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" 15 | integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== 16 | dependencies: 17 | chalk "^2.0.0" 18 | esutils "^2.0.2" 19 | js-tokens "^4.0.0" 20 | 21 | "@types/events@*": 22 | version "3.0.0" 23 | resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" 24 | integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== 25 | 26 | "@types/glob@^7.1.1": 27 | version "7.1.1" 28 | resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" 29 | integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== 30 | dependencies: 31 | "@types/events" "*" 32 | "@types/minimatch" "*" 33 | "@types/node" "*" 34 | 35 | "@types/minimatch@*": 36 | version "3.0.3" 37 | resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" 38 | integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== 39 | 40 | "@types/mocha@^5.2.6": 41 | version "5.2.7" 42 | resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" 43 | integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== 44 | 45 | "@types/node@*": 46 | version "12.6.8" 47 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.8.tgz#e469b4bf9d1c9832aee4907ba8a051494357c12c" 48 | integrity sha512-aX+gFgA5GHcDi89KG5keey2zf0WfZk/HAQotEamsK2kbey+8yGKcson0hbK8E+v0NArlCJQCqMP161YhV6ZXLg== 49 | 50 | "@types/node@^10.12.21": 51 | version "10.14.13" 52 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.13.tgz#ac786d623860adf39a3f51d629480aacd6a6eec7" 53 | integrity sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ== 54 | 55 | "@types/vscode@^1.36.0": 56 | version "1.36.0" 57 | resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.36.0.tgz#ae60242e893d9eda9a0d96d51ef56f1a3fae14ed" 58 | integrity sha512-SbHR3Q5g/C3N+Ila3KrRf1rSZiyHxWdOZ7X3yFHXzw6HrvRLuVZrxnwEX0lTBMRpH9LkwZdqRTgXW+D075jxkg== 59 | 60 | agent-base@4, agent-base@^4.3.0: 61 | version "4.3.0" 62 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" 63 | integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== 64 | dependencies: 65 | es6-promisify "^5.0.0" 66 | 67 | ansi-colors@3.2.3: 68 | version "3.2.3" 69 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" 70 | integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== 71 | 72 | ansi-regex@^2.0.0: 73 | version "2.1.1" 74 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 75 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 76 | 77 | ansi-regex@^3.0.0: 78 | version "3.0.0" 79 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 80 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 81 | 82 | ansi-regex@^4.1.0: 83 | version "4.1.0" 84 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 85 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 86 | 87 | ansi-styles@^3.2.1: 88 | version "3.2.1" 89 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 90 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 91 | dependencies: 92 | color-convert "^1.9.0" 93 | 94 | argparse@^1.0.7: 95 | version "1.0.10" 96 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 97 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 98 | dependencies: 99 | sprintf-js "~1.0.2" 100 | 101 | balanced-match@^1.0.0: 102 | version "1.0.0" 103 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 104 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 105 | 106 | brace-expansion@^1.1.7: 107 | version "1.1.11" 108 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 109 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 110 | dependencies: 111 | balanced-match "^1.0.0" 112 | concat-map "0.0.1" 113 | 114 | browser-stdout@1.3.1: 115 | version "1.3.1" 116 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 117 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== 118 | 119 | builtin-modules@^1.1.1: 120 | version "1.1.1" 121 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 122 | integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= 123 | 124 | camelcase@^5.0.0: 125 | version "5.3.1" 126 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 127 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 128 | 129 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0: 130 | version "2.4.2" 131 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 132 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 133 | dependencies: 134 | ansi-styles "^3.2.1" 135 | escape-string-regexp "^1.0.5" 136 | supports-color "^5.3.0" 137 | 138 | cliui@^4.0.0: 139 | version "4.1.0" 140 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" 141 | integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== 142 | dependencies: 143 | string-width "^2.1.1" 144 | strip-ansi "^4.0.0" 145 | wrap-ansi "^2.0.0" 146 | 147 | code-point-at@^1.0.0: 148 | version "1.1.0" 149 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 150 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 151 | 152 | color-convert@^1.9.0: 153 | version "1.9.3" 154 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 155 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 156 | dependencies: 157 | color-name "1.1.3" 158 | 159 | color-name@1.1.3: 160 | version "1.1.3" 161 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 162 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 163 | 164 | commander@^2.12.1: 165 | version "2.20.0" 166 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" 167 | integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== 168 | 169 | concat-map@0.0.1: 170 | version "0.0.1" 171 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 172 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 173 | 174 | cross-spawn@^6.0.0: 175 | version "6.0.5" 176 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 177 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 178 | dependencies: 179 | nice-try "^1.0.4" 180 | path-key "^2.0.1" 181 | semver "^5.5.0" 182 | shebang-command "^1.2.0" 183 | which "^1.2.9" 184 | 185 | debug@3.1.0: 186 | version "3.1.0" 187 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 188 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 189 | dependencies: 190 | ms "2.0.0" 191 | 192 | debug@3.2.6, debug@^3.1.0: 193 | version "3.2.6" 194 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 195 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 196 | dependencies: 197 | ms "^2.1.1" 198 | 199 | decamelize@^1.2.0: 200 | version "1.2.0" 201 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 202 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 203 | 204 | define-properties@^1.1.2: 205 | version "1.1.3" 206 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 207 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 208 | dependencies: 209 | object-keys "^1.0.12" 210 | 211 | diff@3.5.0, diff@^3.2.0: 212 | version "3.5.0" 213 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 214 | integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== 215 | 216 | emoji-regex@^7.0.1: 217 | version "7.0.3" 218 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 219 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 220 | 221 | end-of-stream@^1.1.0: 222 | version "1.4.1" 223 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" 224 | integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== 225 | dependencies: 226 | once "^1.4.0" 227 | 228 | es-abstract@^1.5.1: 229 | version "1.13.0" 230 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" 231 | integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== 232 | dependencies: 233 | es-to-primitive "^1.2.0" 234 | function-bind "^1.1.1" 235 | has "^1.0.3" 236 | is-callable "^1.1.4" 237 | is-regex "^1.0.4" 238 | object-keys "^1.0.12" 239 | 240 | es-to-primitive@^1.2.0: 241 | version "1.2.0" 242 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" 243 | integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== 244 | dependencies: 245 | is-callable "^1.1.4" 246 | is-date-object "^1.0.1" 247 | is-symbol "^1.0.2" 248 | 249 | es6-promise@^4.0.3: 250 | version "4.2.8" 251 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" 252 | integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== 253 | 254 | es6-promisify@^5.0.0: 255 | version "5.0.0" 256 | resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" 257 | integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= 258 | dependencies: 259 | es6-promise "^4.0.3" 260 | 261 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: 262 | version "1.0.5" 263 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 264 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 265 | 266 | esprima@^4.0.0: 267 | version "4.0.1" 268 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 269 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 270 | 271 | esutils@^2.0.2: 272 | version "2.0.2" 273 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 274 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= 275 | 276 | execa@^1.0.0: 277 | version "1.0.0" 278 | resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" 279 | integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== 280 | dependencies: 281 | cross-spawn "^6.0.0" 282 | get-stream "^4.0.0" 283 | is-stream "^1.1.0" 284 | npm-run-path "^2.0.0" 285 | p-finally "^1.0.0" 286 | signal-exit "^3.0.0" 287 | strip-eof "^1.0.0" 288 | 289 | find-up@3.0.0, find-up@^3.0.0: 290 | version "3.0.0" 291 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 292 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 293 | dependencies: 294 | locate-path "^3.0.0" 295 | 296 | flat@^4.1.0: 297 | version "4.1.0" 298 | resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" 299 | integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== 300 | dependencies: 301 | is-buffer "~2.0.3" 302 | 303 | fs.realpath@^1.0.0: 304 | version "1.0.0" 305 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 306 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 307 | 308 | function-bind@^1.1.1: 309 | version "1.1.1" 310 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 311 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 312 | 313 | get-caller-file@^1.0.1: 314 | version "1.0.3" 315 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" 316 | integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== 317 | 318 | get-caller-file@^2.0.1: 319 | version "2.0.5" 320 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 321 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 322 | 323 | get-stream@^4.0.0: 324 | version "4.1.0" 325 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 326 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 327 | dependencies: 328 | pump "^3.0.0" 329 | 330 | gfm-code-block-regex@^1.0.0: 331 | version "1.0.0" 332 | resolved "https://registry.yarnpkg.com/gfm-code-block-regex/-/gfm-code-block-regex-1.0.0.tgz#bb83c7d6284e6b5b72fa02198a58ac0d256215d2" 333 | integrity sha1-u4PH1ihOa1ty+gIZilisDSViFdI= 334 | 335 | gfm-code-blocks@^1.0.0: 336 | version "1.0.0" 337 | resolved "https://registry.yarnpkg.com/gfm-code-blocks/-/gfm-code-blocks-1.0.0.tgz#614d21059b844c6bbc9d588c089b25c4e8bccf0d" 338 | integrity sha1-YU0hBZuETGu8nViMCJslxOi8zw0= 339 | dependencies: 340 | gfm-code-block-regex "^1.0.0" 341 | 342 | glob@7.1.3: 343 | version "7.1.3" 344 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 345 | integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== 346 | dependencies: 347 | fs.realpath "^1.0.0" 348 | inflight "^1.0.4" 349 | inherits "2" 350 | minimatch "^3.0.4" 351 | once "^1.3.0" 352 | path-is-absolute "^1.0.0" 353 | 354 | glob@^7.1.1, glob@^7.1.4: 355 | version "7.1.4" 356 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" 357 | integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== 358 | dependencies: 359 | fs.realpath "^1.0.0" 360 | inflight "^1.0.4" 361 | inherits "2" 362 | minimatch "^3.0.4" 363 | once "^1.3.0" 364 | path-is-absolute "^1.0.0" 365 | 366 | growl@1.10.5: 367 | version "1.10.5" 368 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" 369 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== 370 | 371 | has-flag@^3.0.0: 372 | version "3.0.0" 373 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 374 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 375 | 376 | has-symbols@^1.0.0: 377 | version "1.0.0" 378 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" 379 | integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= 380 | 381 | has@^1.0.1, has@^1.0.3: 382 | version "1.0.3" 383 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 384 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 385 | dependencies: 386 | function-bind "^1.1.1" 387 | 388 | he@1.2.0: 389 | version "1.2.0" 390 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 391 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 392 | 393 | http-proxy-agent@^2.1.0: 394 | version "2.1.0" 395 | resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" 396 | integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== 397 | dependencies: 398 | agent-base "4" 399 | debug "3.1.0" 400 | 401 | https-proxy-agent@^2.2.1: 402 | version "2.2.2" 403 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" 404 | integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== 405 | dependencies: 406 | agent-base "^4.3.0" 407 | debug "^3.1.0" 408 | 409 | inflight@^1.0.4: 410 | version "1.0.6" 411 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 412 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 413 | dependencies: 414 | once "^1.3.0" 415 | wrappy "1" 416 | 417 | inherits@2: 418 | version "2.0.4" 419 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 420 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 421 | 422 | invert-kv@^2.0.0: 423 | version "2.0.0" 424 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" 425 | integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== 426 | 427 | is-buffer@~2.0.3: 428 | version "2.0.3" 429 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" 430 | integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== 431 | 432 | is-callable@^1.1.4: 433 | version "1.1.4" 434 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" 435 | integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== 436 | 437 | is-date-object@^1.0.1: 438 | version "1.0.1" 439 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 440 | integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= 441 | 442 | is-fullwidth-code-point@^1.0.0: 443 | version "1.0.0" 444 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 445 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 446 | dependencies: 447 | number-is-nan "^1.0.0" 448 | 449 | is-fullwidth-code-point@^2.0.0: 450 | version "2.0.0" 451 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 452 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 453 | 454 | is-regex@^1.0.4: 455 | version "1.0.4" 456 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 457 | integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= 458 | dependencies: 459 | has "^1.0.1" 460 | 461 | is-stream@^1.1.0: 462 | version "1.1.0" 463 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 464 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 465 | 466 | is-symbol@^1.0.2: 467 | version "1.0.2" 468 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" 469 | integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== 470 | dependencies: 471 | has-symbols "^1.0.0" 472 | 473 | isexe@^2.0.0: 474 | version "2.0.0" 475 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 476 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 477 | 478 | js-tokens@^4.0.0: 479 | version "4.0.0" 480 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 481 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 482 | 483 | js-yaml@3.13.1, js-yaml@^3.13.1: 484 | version "3.13.1" 485 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 486 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== 487 | dependencies: 488 | argparse "^1.0.7" 489 | esprima "^4.0.0" 490 | 491 | lcid@^2.0.0: 492 | version "2.0.0" 493 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" 494 | integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== 495 | dependencies: 496 | invert-kv "^2.0.0" 497 | 498 | locate-path@^3.0.0: 499 | version "3.0.0" 500 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 501 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 502 | dependencies: 503 | p-locate "^3.0.0" 504 | path-exists "^3.0.0" 505 | 506 | lodash@^4.17.11: 507 | version "4.17.15" 508 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" 509 | integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== 510 | 511 | log-symbols@2.2.0: 512 | version "2.2.0" 513 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" 514 | integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== 515 | dependencies: 516 | chalk "^2.0.1" 517 | 518 | map-age-cleaner@^0.1.1: 519 | version "0.1.3" 520 | resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" 521 | integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== 522 | dependencies: 523 | p-defer "^1.0.0" 524 | 525 | mem@^4.0.0: 526 | version "4.3.0" 527 | resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" 528 | integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== 529 | dependencies: 530 | map-age-cleaner "^0.1.1" 531 | mimic-fn "^2.0.0" 532 | p-is-promise "^2.0.0" 533 | 534 | mimic-fn@^2.0.0: 535 | version "2.1.0" 536 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 537 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 538 | 539 | minimatch@3.0.4, minimatch@^3.0.4: 540 | version "3.0.4" 541 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 542 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 543 | dependencies: 544 | brace-expansion "^1.1.7" 545 | 546 | minimist@0.0.8: 547 | version "0.0.8" 548 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 549 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 550 | 551 | mkdirp@0.5.1, mkdirp@^0.5.1: 552 | version "0.5.1" 553 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 554 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 555 | dependencies: 556 | minimist "0.0.8" 557 | 558 | mocha@^6.1.4: 559 | version "6.2.0" 560 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.0.tgz#f896b642843445d1bb8bca60eabd9206b8916e56" 561 | integrity sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ== 562 | dependencies: 563 | ansi-colors "3.2.3" 564 | browser-stdout "1.3.1" 565 | debug "3.2.6" 566 | diff "3.5.0" 567 | escape-string-regexp "1.0.5" 568 | find-up "3.0.0" 569 | glob "7.1.3" 570 | growl "1.10.5" 571 | he "1.2.0" 572 | js-yaml "3.13.1" 573 | log-symbols "2.2.0" 574 | minimatch "3.0.4" 575 | mkdirp "0.5.1" 576 | ms "2.1.1" 577 | node-environment-flags "1.0.5" 578 | object.assign "4.1.0" 579 | strip-json-comments "2.0.1" 580 | supports-color "6.0.0" 581 | which "1.3.1" 582 | wide-align "1.1.3" 583 | yargs "13.2.2" 584 | yargs-parser "13.0.0" 585 | yargs-unparser "1.5.0" 586 | 587 | ms@2.0.0: 588 | version "2.0.0" 589 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 590 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 591 | 592 | ms@2.1.1: 593 | version "2.1.1" 594 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 595 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 596 | 597 | ms@^2.1.1: 598 | version "2.1.2" 599 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 600 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 601 | 602 | nice-try@^1.0.4: 603 | version "1.0.5" 604 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 605 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 606 | 607 | node-environment-flags@1.0.5: 608 | version "1.0.5" 609 | resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" 610 | integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== 611 | dependencies: 612 | object.getownpropertydescriptors "^2.0.3" 613 | semver "^5.7.0" 614 | 615 | npm-run-path@^2.0.0: 616 | version "2.0.2" 617 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 618 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 619 | dependencies: 620 | path-key "^2.0.0" 621 | 622 | number-is-nan@^1.0.0: 623 | version "1.0.1" 624 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 625 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 626 | 627 | object-keys@^1.0.11, object-keys@^1.0.12: 628 | version "1.1.1" 629 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 630 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 631 | 632 | object.assign@4.1.0: 633 | version "4.1.0" 634 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" 635 | integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== 636 | dependencies: 637 | define-properties "^1.1.2" 638 | function-bind "^1.1.1" 639 | has-symbols "^1.0.0" 640 | object-keys "^1.0.11" 641 | 642 | object.getownpropertydescriptors@^2.0.3: 643 | version "2.0.3" 644 | resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" 645 | integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= 646 | dependencies: 647 | define-properties "^1.1.2" 648 | es-abstract "^1.5.1" 649 | 650 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 651 | version "1.4.0" 652 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 653 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 654 | dependencies: 655 | wrappy "1" 656 | 657 | os-locale@^3.0.0, os-locale@^3.1.0: 658 | version "3.1.0" 659 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" 660 | integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== 661 | dependencies: 662 | execa "^1.0.0" 663 | lcid "^2.0.0" 664 | mem "^4.0.0" 665 | 666 | p-defer@^1.0.0: 667 | version "1.0.0" 668 | resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" 669 | integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= 670 | 671 | p-finally@^1.0.0: 672 | version "1.0.0" 673 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 674 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 675 | 676 | p-is-promise@^2.0.0: 677 | version "2.1.0" 678 | resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" 679 | integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== 680 | 681 | p-limit@^2.0.0: 682 | version "2.2.0" 683 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" 684 | integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== 685 | dependencies: 686 | p-try "^2.0.0" 687 | 688 | p-locate@^3.0.0: 689 | version "3.0.0" 690 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 691 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 692 | dependencies: 693 | p-limit "^2.0.0" 694 | 695 | p-try@^2.0.0: 696 | version "2.2.0" 697 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 698 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 699 | 700 | path-exists@^3.0.0: 701 | version "3.0.0" 702 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 703 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 704 | 705 | path-is-absolute@^1.0.0: 706 | version "1.0.1" 707 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 708 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 709 | 710 | path-key@^2.0.0, path-key@^2.0.1: 711 | version "2.0.1" 712 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 713 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 714 | 715 | path-parse@^1.0.6: 716 | version "1.0.6" 717 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 718 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 719 | 720 | pump@^3.0.0: 721 | version "3.0.0" 722 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 723 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 724 | dependencies: 725 | end-of-stream "^1.1.0" 726 | once "^1.3.1" 727 | 728 | require-directory@^2.1.1: 729 | version "2.1.1" 730 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 731 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 732 | 733 | require-main-filename@^1.0.1: 734 | version "1.0.1" 735 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 736 | integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= 737 | 738 | require-main-filename@^2.0.0: 739 | version "2.0.0" 740 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" 741 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== 742 | 743 | resolve@^1.3.2: 744 | version "1.11.1" 745 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" 746 | integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== 747 | dependencies: 748 | path-parse "^1.0.6" 749 | 750 | semver@^5.3.0, semver@^5.5.0, semver@^5.7.0: 751 | version "5.7.0" 752 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" 753 | integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== 754 | 755 | set-blocking@^2.0.0: 756 | version "2.0.0" 757 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 758 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 759 | 760 | shebang-command@^1.2.0: 761 | version "1.2.0" 762 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 763 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 764 | dependencies: 765 | shebang-regex "^1.0.0" 766 | 767 | shebang-regex@^1.0.0: 768 | version "1.0.0" 769 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 770 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 771 | 772 | signal-exit@^3.0.0: 773 | version "3.0.2" 774 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 775 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 776 | 777 | sprintf-js@~1.0.2: 778 | version "1.0.3" 779 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 780 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 781 | 782 | string-width@^1.0.1: 783 | version "1.0.2" 784 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 785 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 786 | dependencies: 787 | code-point-at "^1.0.0" 788 | is-fullwidth-code-point "^1.0.0" 789 | strip-ansi "^3.0.0" 790 | 791 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: 792 | version "2.1.1" 793 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 794 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 795 | dependencies: 796 | is-fullwidth-code-point "^2.0.0" 797 | strip-ansi "^4.0.0" 798 | 799 | string-width@^3.0.0: 800 | version "3.1.0" 801 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 802 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 803 | dependencies: 804 | emoji-regex "^7.0.1" 805 | is-fullwidth-code-point "^2.0.0" 806 | strip-ansi "^5.1.0" 807 | 808 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 809 | version "3.0.1" 810 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 811 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 812 | dependencies: 813 | ansi-regex "^2.0.0" 814 | 815 | strip-ansi@^4.0.0: 816 | version "4.0.0" 817 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 818 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 819 | dependencies: 820 | ansi-regex "^3.0.0" 821 | 822 | strip-ansi@^5.1.0: 823 | version "5.2.0" 824 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 825 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 826 | dependencies: 827 | ansi-regex "^4.1.0" 828 | 829 | strip-eof@^1.0.0: 830 | version "1.0.0" 831 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 832 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 833 | 834 | strip-json-comments@2.0.1: 835 | version "2.0.1" 836 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 837 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 838 | 839 | supports-color@6.0.0: 840 | version "6.0.0" 841 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" 842 | integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== 843 | dependencies: 844 | has-flag "^3.0.0" 845 | 846 | supports-color@^5.3.0: 847 | version "5.5.0" 848 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 849 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 850 | dependencies: 851 | has-flag "^3.0.0" 852 | 853 | tslib@^1.8.0, tslib@^1.8.1: 854 | version "1.10.0" 855 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" 856 | integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== 857 | 858 | tslint@^5.12.1: 859 | version "5.18.0" 860 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.18.0.tgz#f61a6ddcf372344ac5e41708095bbf043a147ac6" 861 | integrity sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w== 862 | dependencies: 863 | "@babel/code-frame" "^7.0.0" 864 | builtin-modules "^1.1.1" 865 | chalk "^2.3.0" 866 | commander "^2.12.1" 867 | diff "^3.2.0" 868 | glob "^7.1.1" 869 | js-yaml "^3.13.1" 870 | minimatch "^3.0.4" 871 | mkdirp "^0.5.1" 872 | resolve "^1.3.2" 873 | semver "^5.3.0" 874 | tslib "^1.8.0" 875 | tsutils "^2.29.0" 876 | 877 | tsutils@^2.29.0: 878 | version "2.29.0" 879 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" 880 | integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== 881 | dependencies: 882 | tslib "^1.8.1" 883 | 884 | typescript@^3.3.1: 885 | version "3.5.3" 886 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" 887 | integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== 888 | 889 | vscode-test@^1.0.0-next.0: 890 | version "1.0.2" 891 | resolved "https://registry.yarnpkg.com/vscode-test/-/vscode-test-1.0.2.tgz#fcd0f7e8e380183478cfa3d16de0eac73161aa81" 892 | integrity sha512-lBvwzJWl/uVfsa2buouUwIaN10MIaiZMlTXP+rESGrHLa12Nt8nP2xroZYdbnSv1DrTCFjnQAsGXbCJnQC585A== 893 | dependencies: 894 | http-proxy-agent "^2.1.0" 895 | https-proxy-agent "^2.2.1" 896 | 897 | which-module@^2.0.0: 898 | version "2.0.0" 899 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 900 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 901 | 902 | which@1.3.1, which@^1.2.9: 903 | version "1.3.1" 904 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 905 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 906 | dependencies: 907 | isexe "^2.0.0" 908 | 909 | wide-align@1.1.3: 910 | version "1.1.3" 911 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 912 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 913 | dependencies: 914 | string-width "^1.0.2 || 2" 915 | 916 | wrap-ansi@^2.0.0: 917 | version "2.1.0" 918 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 919 | integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= 920 | dependencies: 921 | string-width "^1.0.1" 922 | strip-ansi "^3.0.1" 923 | 924 | wrappy@1: 925 | version "1.0.2" 926 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 927 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 928 | 929 | "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: 930 | version "4.0.0" 931 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" 932 | integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== 933 | 934 | yargs-parser@13.0.0: 935 | version "13.0.0" 936 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.0.0.tgz#3fc44f3e76a8bdb1cc3602e860108602e5ccde8b" 937 | integrity sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw== 938 | dependencies: 939 | camelcase "^5.0.0" 940 | decamelize "^1.2.0" 941 | 942 | yargs-parser@^11.1.1: 943 | version "11.1.1" 944 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" 945 | integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== 946 | dependencies: 947 | camelcase "^5.0.0" 948 | decamelize "^1.2.0" 949 | 950 | yargs-parser@^13.0.0: 951 | version "13.1.1" 952 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" 953 | integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== 954 | dependencies: 955 | camelcase "^5.0.0" 956 | decamelize "^1.2.0" 957 | 958 | yargs-unparser@1.5.0: 959 | version "1.5.0" 960 | resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.5.0.tgz#f2bb2a7e83cbc87bb95c8e572828a06c9add6e0d" 961 | integrity sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw== 962 | dependencies: 963 | flat "^4.1.0" 964 | lodash "^4.17.11" 965 | yargs "^12.0.5" 966 | 967 | yargs@13.2.2: 968 | version "13.2.2" 969 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.2.tgz#0c101f580ae95cea7f39d927e7770e3fdc97f993" 970 | integrity sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA== 971 | dependencies: 972 | cliui "^4.0.0" 973 | find-up "^3.0.0" 974 | get-caller-file "^2.0.1" 975 | os-locale "^3.1.0" 976 | require-directory "^2.1.1" 977 | require-main-filename "^2.0.0" 978 | set-blocking "^2.0.0" 979 | string-width "^3.0.0" 980 | which-module "^2.0.0" 981 | y18n "^4.0.0" 982 | yargs-parser "^13.0.0" 983 | 984 | yargs@^12.0.5: 985 | version "12.0.5" 986 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" 987 | integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== 988 | dependencies: 989 | cliui "^4.0.0" 990 | decamelize "^1.2.0" 991 | find-up "^3.0.0" 992 | get-caller-file "^1.0.1" 993 | os-locale "^3.0.0" 994 | require-directory "^2.1.1" 995 | require-main-filename "^1.0.1" 996 | set-blocking "^2.0.0" 997 | string-width "^2.0.0" 998 | which-module "^2.0.0" 999 | y18n "^3.2.1 || ^4.0.0" 1000 | yargs-parser "^11.1.1" 1001 | --------------------------------------------------------------------------------