├── .github └── FUNDING.yml ├── .gitignore ├── .prettierrc ├── .travis.yml ├── .vscode ├── launch.json ├── launch.json.old ├── settings.json └── tasks.json ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── package.json ├── src └── extension.ts ├── tsconfig.json ├── tslint.json ├── vale-0.9.1.vsix ├── vale.png └── yarn.lock /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | out/ 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "arrowParens": "always", 3 | "semi": true, 4 | "singleQuote": false, 5 | "tabWidth": 4, 6 | "trailingComma": "all" 7 | } -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "node" 4 | script: 5 | # Check code formatting 6 | - yarn format:verify 7 | # Compile code 8 | - yarn vscode:prepublish 9 | cache: 10 | yarn: true 11 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that compiles the extension and then opens it inside a new window 2 | { 3 | "version": "0.2.0", 4 | "configurations": [ 5 | { 6 | "name": "Launch Extension", 7 | "type": "extensionHost", 8 | "request": "launch", 9 | "runtimeExecutable": "${execPath}", 10 | "args": [ 11 | "--extensionDevelopmentPath=${workspaceRoot}" 12 | ], 13 | "stopOnEntry": false, 14 | "sourceMaps": true, 15 | "outFiles": [ 16 | "${workspaceRoot}/out/src/**/*.js" 17 | ], 18 | "preLaunchTask": "npm" 19 | }, 20 | { 21 | "name": "Launch Tests", 22 | "type": "extensionHost", 23 | "request": "launch", 24 | "runtimeExecutable": "${execPath}", 25 | "args": [ 26 | "--extensionDevelopmentPath=${workspaceRoot}", 27 | "--extensionTestsPath=${workspaceRoot}/out/test" 28 | ], 29 | "stopOnEntry": false, 30 | "sourceMaps": true, 31 | "outFiles": [ 32 | "${workspaceRoot}/out/test/**/*.js" 33 | ], 34 | "preLaunchTask": "npm" 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /.vscode/launch.json.old: -------------------------------------------------------------------------------- 1 | // A launch configuration that compiles the extension and then opens it inside a new window 2 | { 3 | "version": "0.2.0", 4 | "configurations": [ 5 | { 6 | "name": "Launch Extension", 7 | "type": "extensionHost", 8 | "request": "launch", 9 | "runtimeExecutable": "${execPath}", 10 | "args": ["--extensionDevelopmentPath=${workspaceRoot}" ], 11 | "stopOnEntry": false, 12 | "sourceMaps": true, 13 | "outFiles": [ "${workspaceRoot}/out/src/**/*.js" ], 14 | "preLaunchTask": "npm" 15 | }, 16 | { 17 | "name": "Launch Tests", 18 | "type": "extensionHost", 19 | "request": "launch", 20 | "runtimeExecutable": "${execPath}", 21 | "args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ], 22 | "stopOnEntry": false, 23 | "sourceMaps": true, 24 | "outFiles": [ "${workspaceRoot}/out/test/**/*.js" ], 25 | "preLaunchTask": "npm" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": { 3 | "out": true 4 | }, 5 | "search.exclude": { 6 | "out": true 7 | }, 8 | "licenser.license": "MIT", 9 | "licenser.author": "Chris Chinchilla ", 10 | "licenser.projectName": "vscode-vale", 11 | "typescript.implementationsCodeLens.enabled": true, 12 | "typescript.referencesCodeLens.enabled": true 13 | } 14 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | // Available variables which can be used inside of strings. 2 | // ${workspaceRoot}: the root folder of the team 3 | // ${file}: the current opened file 4 | // ${fileBasename}: the current opened file's basename 5 | // ${fileDirname}: the current opened file's dirname 6 | // ${fileExtname}: the current opened file's extension 7 | // ${cwd}: the current working directory of the spawned process 8 | // A task runner that calls a custom npm script that compiles the extension. 9 | { 10 | "version": "2.0.0", 11 | // we want to run npm 12 | 13 | "command": "npm", 14 | // the command is a shell script 15 | "type": "shell", 16 | // show the output window only if unrecognized errors occur. 17 | "presentation": { 18 | "reveal": "silent" 19 | }, 20 | // we run the custom script "compile" as defined in package.json 21 | "args": [ 22 | "run", 23 | "compile", 24 | "--loglevel", 25 | "silent" 26 | ], 27 | // The tsc compiler is started in watching mode 28 | "isBackground": true, 29 | // use the standard tsc in watch mode problem matcher to find compile problems in the output. 30 | "problemMatcher": "$tsc-watch" 31 | 32 | } -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to the "vale" extension will be documented in this file. 4 | 5 | Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how 6 | to structure this file. This project adheres to [Semantic 7 | Versioning](http://semver.org/)! 8 | 9 | ## [Unreleased] 10 | 11 | ## 0.9.1 12 | 13 | - Update extension APIs 14 | - Add ability to override config path 15 | 16 | ## 0.9 17 | 18 | - Small UI improvements 19 | - Ability to define file extensions to check 20 | 21 | ## 0.8.7 22 | 23 | - Added ability to add path to Vale 24 | 25 | ## 0.8.4 26 | 27 | - Asciidoc support 28 | 29 | ## 0.8.3 30 | 31 | ### Added 32 | 33 | - Ability to add location of vale binary 34 | 35 | ## 0.6.0 – 2018-08-14 36 | 37 | ### Changed 38 | 39 | - Make vale suggestions appear in problems view, see [GH-10][]. 40 | 41 | [gh-10]: https://github.com/lunaryorn/vscode-vale/pull/10 42 | 43 | ## 0.5.0 – 2018-02-27 44 | 45 | ### Added 46 | 47 | - Add support for ReStructuredText, LaTeX and plain text (`.txt`) documents, see 48 | [GH-6][] and [GH-7][]. 49 | 50 | [gh-6]: https://github.com/lunaryorn/vscode-vale/issues/6 51 | 52 | [gh-7]: https://github.com/lunaryorn/vscode-vale/pull/7 53 | 54 | ## 0.4.0 – 2017-12-09 55 | 56 | ### Added 57 | 58 | - Support multi-root workspaces, see [GH-4][]. 59 | 60 | [gh-4]: https://github.com/lunaryorn/vscode-vale/issues/4 61 | 62 | ### Changed 63 | 64 | - Increase buffer size for `vale` processes to handle large results, see 65 | [GH-3][]. 66 | 67 | [gh-3]: https://github.com/lunaryorn/vscode-vale/issues/3 68 | 69 | ### Changed 70 | 71 | - Require vscode 1.15 or newer 72 | 73 | ## 0.3.1 – 2017-06-26 74 | 75 | ### Changed 76 | 77 | - Change license from GPL-3 to MIT 78 | 79 | ## 0.3.0 – 2017-06-13 80 | 81 | ### Added 82 | 83 | - Show status bar message while linting the entire workspace with vale, see 84 | [GH-2]. 85 | 86 | [gh-2]: https://github.com/lunaryorn/vscode-vale/issues/2 87 | 88 | ## 0.2.0 – 2017-06-12 89 | 90 | ### Added 91 | 92 | - Add `Vale: Lint workspace` command to run vale on all files in the current 93 | workspace, see [GH-1][]. 94 | 95 | [gh-1]: https://github.com/lunaryorn/vscode-vale/issues/1. 96 | 97 | ### Changed 98 | 99 | - Require Vale version 0.7.2 or newer. Older vale releases do not lint all 100 | files given as arguments, see [vale GH-46][]. 101 | 102 | [vale gh-46]: https://github.com/ValeLint/vale/issues/46 103 | 104 | ## 0.1.2 – 2017-06-08 105 | 106 | ### Changed 107 | 108 | - Use normal logo in Marketplace as it fits better in the overview page. 109 | 110 | ## 0.1.1 – 2017-06-08 111 | 112 | ### Fixed 113 | 114 | - Use a proper marketplace description. 115 | 116 | ## 0.1.0 – 2017-06-08 117 | 118 | This is the first release. 119 | 120 | ### Added 121 | 122 | - Run vale on Markdown documents. 123 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Thank you for your interest in this project 😊 I appreciate all issues and pull 4 | requests, and any kind of contribution 🙂 5 | 6 | ## Contributor documentation 7 | 8 | ### Make a release 9 | 10 | 1. Bump version in `package.json`. 11 | 2. Add a corresponding headline to `CHANGELOG.md`. 12 | 3. `git commit` changes and `git tag` the commit (`git tag -m 'vscode-value x.y.z' x.y.z`) 13 | 4. Run `yarn run vsce list-publishers` if you are unsure whether a publisher is 14 | set up. If there is none see below before continuing. 15 | 5. Run `yarn run publish`. 16 | 6. Bump `package.json` to a pre-release version `x.y.z-dev`, `git commit` and 17 | then push all changes. 18 | 19 | If you have no publisher setup: 20 | 21 | 1. [Get a personal access token][1] for your Visual Studio team services 22 | account, and copy it. 23 | 2. Run `yarn run vsce login `, with the nickname of that account. 24 | 3. Paste the access token into the prompt. 25 | 26 | [1]: https://code.visualstudio.com/docs/extensions/publish-extension#_get-a-personal-access-token 27 | 28 | Yes, I should automate this process! 😊 Also consider `yarn version` to update 29 | the version. 30 | 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Sebastian Wiesner 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # VSCode vale 2 | 3 | > This extension is now depreciated in favour of [github.com/errata-ai/vale-vscode](https://github.com/errata-ai/vale-vscode), which supports both Vale CLI and Vale Server. You should uninstall this extension, and install that extension. Any Vale config and styles should work with no issue, but you will likely need to update any relevant settings in the new extension. 4 | 5 | Thanks to all the work previous work from [lunaryorn](https://github.com/testthedocs/vscode-vale/commits?author=lunaryorn), this is a new maintained fork, with more features to come soon. 6 | 7 | Lint documents with [Vale][vale] in [Visual Studio Code][code]. 8 | 9 | [vale]: https://errata-ai.github.io/vale/ 10 | 11 | [code]: https://code.visualstudio.com 12 | 13 | ## Prerequisites 14 | 15 | [Install vale][1] **0.7.2 or newer**. 16 | 17 | If Vale is too old the extension fails to activate. 18 | In this case please update Vale; the error message tells you the required version. 19 | 20 | > By default the extension will use the global installed binary `vale`. In case you have the binary installed on a local project you can configure the extension to use the local path. See [configuration options](#configuration) below. 21 | 22 | [1]: https://errata-ai.github.io/vale/#installation 23 | 24 | [issue]: https://github.com/testthedocs/vscode-vale/issues/new 25 | 26 | ## Usage 27 | 28 | Vale automatically checks a document when you open or save it. Use the `Vale: Lint workspace` command to check the entire workspace. 29 | 30 | Vale always runs from the workspace directory in either case, so if you put a [Vale configuration][config] in the workspace directory it will automatically pick it up. 31 | 32 | This extension supports the following file extensions by default, but you can change them with the `vscode-vale.fileExtensions` config item (see below): 33 | 34 | - **Asciidoc**: _.adoc_ and _.asciidoc_ 35 | - **Markdown**: _.md_ and _.markdown_ 36 | - **reStructuredText**: _.rst_ 37 | - **LaTeX**: _.tex_ 38 | - **plain text**: _.txt_ 39 | 40 | [config]: https://errata-ai.github.io/vale/config/ 41 | 42 | ## Configuration 43 | 44 | - `vscode-vale.configPath`: Absolute path to Vale config file. If not specified, uses normal Vale config scoping rules. 45 | - `vscode-vale.path`: (default `vale`). Absolute path to the `vale` binary, useful if you don't want to use the global binary. 46 | 47 | **Example** 48 | 49 | ```js 50 | { 51 | // You can use ${workspaceFolder} it will be replaced by workspace folder path 52 | "vscode-vale.path": "${workspaceFolder}/node_modules/.bin/vale" 53 | 54 | // or use some absolute path 55 | "vscode-vale.path": "/some/path/to/vale" 56 | } 57 | ``` 58 | 59 | - `vscode-vale.fileExtensions`: (default `md, markdown, txt, rst, tex, adoc, asciidoc`). 60 | 61 | File extensions to lint. 62 | 63 | > **Note**, these also need to be in your Vale config file. 64 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vale", 3 | "displayName": "vale", 4 | "description": "Lint documents with Vale", 5 | "extensionKind": "workspace", 6 | "version": "0.9.1", 7 | "homepage": "https://marketplace.visualstudio.com/items?itemName=testthedocs.vale", 8 | "bugs": "https://github.com/testthedocs/vscode-vale/issues", 9 | "icon": "vale.png", 10 | "author": { 11 | "name": "Test the Docs", 12 | "email": "chris@chrischinchilla.com", 13 | "url": "https://testthedocs.org" 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/testthedocs/vscode-vale.git" 18 | }, 19 | "license": "MIT", 20 | "publisher": "testthedocs", 21 | "engines": { 22 | "vscode": "^1.15.0" 23 | }, 24 | "galleryBanner": { 25 | "color": "#fff", 26 | "theme": "light" 27 | }, 28 | "categories": [ 29 | "Linters" 30 | ], 31 | "keywords": [ 32 | "value", 33 | "lint", 34 | "markdown", 35 | "multi-root ready" 36 | ], 37 | "badges": [ 38 | { 39 | "url": "https://travis-ci.org/testthedocs/vscode-vale.svg?branch=master", 40 | "href": "https://travis-ci.org/testthedocs/vscode-vale", 41 | "description": "Build Status" 42 | } 43 | ], 44 | "contributes": { 45 | "commands": { 46 | "command": "vale.lintWorkspace", 47 | "title": "Lint workspace", 48 | "category": "Vale", 49 | "icon": { 50 | "dark": "vale.png", 51 | "light": "vale.png" 52 | } 53 | }, 54 | "configuration": { 55 | "type": "object", 56 | "title": "Vale", 57 | "properties": { 58 | "vscode-vale.configPath": { 59 | "scope": "resource", 60 | "type": "string", 61 | "default": null, 62 | "description": "Absolute path to Vale config file. If not specified, uses normal Vale config scoping rules" 63 | }, 64 | "vscode-vale.path": { 65 | "scope": "resource", 66 | "type": "string", 67 | "default": "vale", 68 | "description": "Absolute path to Vale binary. Special var ${workspaceFolder} can be used in path (NOTE: in windows you can use '/' and can omit '.cmd' in path)" 69 | }, 70 | "vscode-vale.fileExtensions": { 71 | "scope": "resource", 72 | "type": "array", 73 | "default": [ 74 | "md", 75 | "markdown", 76 | "txt", 77 | "rst", 78 | "tex", 79 | "adoc", 80 | "asciidoc" 81 | ], 82 | "description": "File extensions to lint. Note, these also need to be in your Vale config file.", 83 | "items": { 84 | "type": "string" 85 | } 86 | } 87 | } 88 | } 89 | }, 90 | "activationEvents": [ 91 | "onLanguage:plaintext" 92 | ], 93 | "main": "./out/src/extension", 94 | "scripts": { 95 | "vscode:prepublish": "tsc -p ./", 96 | "format": "tsfmt --baseDir . --replace", 97 | "format:verify": "tsfmt --baseDir . --verify", 98 | "compile": "tsc -watch -p ./", 99 | "postinstall": "node ./node_modules/vscode/bin/install", 100 | "test": "node ./node_modules/vscode/bin/test", 101 | "publish": "vsce publish" 102 | }, 103 | "devDependencies": { 104 | "@types/node": "^9.0", 105 | "@types/semver": "^5.3", 106 | "@types/which": "^1.3", 107 | "tslint": "^5.8.0", 108 | "tslint-immutable": "^4.4.0", 109 | "tslint-language-service": "^0.9.6", 110 | "typescript": "^3.0.1", 111 | "typescript-formatter": "^7.0.0", 112 | "vsce": "^1.37.1", 113 | "vscode": "^1.1.5" 114 | }, 115 | "dependencies": { 116 | "semver": "^5.3.0", 117 | "which": "^2.0.1" 118 | } 119 | } -------------------------------------------------------------------------------- /src/extension.ts: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Sebastian Wiesner 2 | 3 | // Permission is hereby granted, free of charge, to any person obtaining a copy 4 | // of this software and associated documentation files (the "Software"), to deal 5 | // in the Software without restriction, including without limitation the rights 6 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | // copies of the Software, and to permit persons to whom the Software is 8 | // furnished to do so, subject to the following conditions: 9 | 10 | // The above copyright notice and this permission notice shall be included in 11 | // all copies or substantial portions of the Software. 12 | 13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | // SOFTWARE. 20 | 21 | import { execFile } from "child_process"; 22 | import * as path from "path"; 23 | import * as semver from "semver"; 24 | import { 25 | commands, 26 | Diagnostic, 27 | DiagnosticCollection, 28 | DiagnosticSeverity, 29 | ExtensionContext, 30 | languages, 31 | ProgressLocation, 32 | Range, 33 | TextDocument, 34 | Uri, 35 | window, 36 | workspace, 37 | WorkspaceFolder, 38 | } from "vscode"; 39 | import * as which from "which"; 40 | 41 | /** 42 | * Whether a given document is elligible for linting. 43 | * 44 | * A document is elligible if it's in a supported format and saved to disk. 45 | * 46 | * @param document The document to check 47 | * @return Whether the document is elligible 48 | */ 49 | const isElligibleDocument = (document: TextDocument): boolean => 50 | !document.isDirty && 0 < languages.match({ scheme: "file" }, document); 51 | 52 | /** 53 | * Run a command in a given workspace folder and get its standard output. 54 | * 55 | * If the workspace folder is undefined run the command in the working directory 56 | * of the current vscode instance. 57 | * 58 | * @param folder The workspace 59 | * @param command The command array 60 | * @return The standard output of the program 61 | */ 62 | const runInWorkspace = ( 63 | folder: WorkspaceFolder | undefined, 64 | command: ReadonlyArray, 65 | ): Promise => 66 | new Promise((resolve, reject) => { 67 | const cwd = folder ? folder.uri.fsPath : process.cwd(); 68 | const maxBuffer = 10 * 1024 * 1024; // 10MB buffer for large results 69 | execFile( 70 | command[0], 71 | command.slice(1), 72 | { cwd, maxBuffer }, 73 | (error, stdout) => { 74 | if (error) { 75 | // Throw system errors, but do not fail if the command 76 | // fails with a non-zero exit code. 77 | console.error("Command error", command, error); 78 | reject(error); 79 | } else { 80 | resolve(stdout); 81 | } 82 | }, 83 | ); 84 | }); 85 | 86 | /** 87 | * A severity from vale. 88 | */ 89 | type ValeSeverity = "suggestion" | "warning" | "error"; 90 | 91 | interface IValeErrorJSON { 92 | readonly Check: string; 93 | readonly Context: string; 94 | readonly Description: string; 95 | readonly Line: number; 96 | readonly Link: string; 97 | readonly Message: string; 98 | readonly Span: [number, number]; 99 | readonly Severity: ValeSeverity; 100 | } 101 | 102 | /** 103 | * The type of Vale’s JSON output. 104 | */ 105 | interface IValeJSON { 106 | readonly [propName: string]: ReadonlyArray; 107 | } 108 | 109 | /** 110 | * The result of a vale run, mapping file names to a list of errors in the file. 111 | */ 112 | type ValeDiagnostics = Map>; 113 | 114 | /** 115 | * Convert a Vale severity string to a code diagnostic severity. 116 | * 117 | * @param severity The severity to convert 118 | */ 119 | const toSeverity = (severity: ValeSeverity): DiagnosticSeverity => { 120 | switch (severity) { 121 | case "suggestion": 122 | return DiagnosticSeverity.Information; 123 | case "warning": 124 | return DiagnosticSeverity.Warning; 125 | case "error": 126 | return DiagnosticSeverity.Error; 127 | } 128 | }; 129 | 130 | /** 131 | * Convert a Vale error to a code diagnostic. 132 | * 133 | * @param message The message to convert 134 | */ 135 | const toDiagnostic = (error: IValeErrorJSON): Diagnostic => { 136 | // vale prints one-based locations but code wants zero-based, so adjust 137 | // accordingly 138 | const range = new Range( 139 | error.Line - 1, 140 | error.Span[0] - 1, 141 | error.Line - 1, 142 | error.Span[1], 143 | ); 144 | const message = error.Link 145 | ? `${error.Message} (${error.Check}, see ${error.Link})` 146 | : `${error.Message} (${error.Check})`; 147 | const diagnostic = new Diagnostic( 148 | range, 149 | message, 150 | toSeverity(error.Severity), 151 | ); 152 | diagnostic.source = "vale"; 153 | diagnostic.code = error.Check; 154 | return diagnostic; 155 | }; 156 | 157 | /** 158 | * Get the version of vale. 159 | * 160 | * @return A promise with the vale version string as single element. If vale 161 | * doesn't exist or if the version wasn't found the promise is rejected. 162 | */ 163 | const getValeVersion = async ( 164 | workspaceFolder?: WorkspaceFolder, 165 | ): Promise => { 166 | const binaryLocation = readBinaryLocation(workspaceFolder); 167 | // Run in an arbitrary directory, since "--version" doesn't depend on any 168 | // folder 169 | const stdout = await runInWorkspace(undefined, [ 170 | binaryLocation, 171 | "--version", 172 | ]); 173 | const matches = stdout.match(/^vale version (.+)$/m); 174 | if (matches && matches.length === 2) { 175 | return matches[1]; 176 | } 177 | throw new Error(`Failed to extract vale version from: ${stdout}`); 178 | }; 179 | 180 | /** 181 | * The version requirements for vale. 182 | * 183 | * We need at least 0.7.2 in this extension because earlier releases do not 184 | * process all command line arguments, which we need to lint the entire 185 | * workspace. 186 | * 187 | * See https://github.com/ValeLint/vale/issues/46 for details. 188 | */ 189 | const VERSION_REQUIREMENTS = ">= 0.7.2"; 190 | 191 | const checkValeVersionSatisfies = async (workspaceFolder?: WorkspaceFolder) => { 192 | const version = await getValeVersion(workspaceFolder); 193 | if ( 194 | semver.satisfies(version, VERSION_REQUIREMENTS) || 195 | version === "master" 196 | ) { 197 | console.log( 198 | `Found vale version ${version} satisfying ${VERSION_REQUIREMENTS}.`, 199 | ); 200 | } else { 201 | // tslint:disable-next-line:max-line-length 202 | throw new Error( 203 | `Vale version ${version} does not satisfy ${VERSION_REQUIREMENTS}`, 204 | ); 205 | } 206 | }; 207 | 208 | const readBinaryLocation = (workspaceFolder?: WorkspaceFolder) => { 209 | const configuration = workspace.getConfiguration(); 210 | const customBinaryPath = configuration.get("vscode-vale.path"); 211 | if (customBinaryPath && workspaceFolder) { 212 | return path.normalize( 213 | customBinaryPath.replace( 214 | "${workspaceFolder}", 215 | workspaceFolder.uri.fsPath, 216 | ), 217 | ); 218 | } 219 | // Assume that the binary is installed globally 220 | return which.sync("vale", { pathExt: ".cmd" }); 221 | }; 222 | 223 | const readFileLocation = (workspaceFolder?: WorkspaceFolder) => { 224 | const configuration = workspace.getConfiguration(); 225 | const customConfigPath = configuration.get("vscode-vale.configPath"); 226 | if (customConfigPath && workspaceFolder) { 227 | return path.normalize( 228 | customConfigPath.replace( 229 | "${workspaceFolder}", 230 | workspaceFolder.uri.fsPath, 231 | ), 232 | ); 233 | } 234 | // Assume that the binary is installed globally 235 | return customConfigPath; 236 | }; 237 | /** 238 | * Lint a path, which is either a file or a directory. 239 | * 240 | * @param path The path to lint 241 | * @return A promise with the results of linting the path 242 | */ 243 | const runVale = async ( 244 | folder: WorkspaceFolder | undefined, 245 | args: string | ReadonlyArray, 246 | ): Promise => { 247 | const binaryLocation = readBinaryLocation(folder); 248 | const configLocation = readFileLocation(folder)!; 249 | 250 | const command: ReadonlyArray = [ 251 | binaryLocation, 252 | "--no-exit", 253 | "--config", 254 | configLocation, 255 | "--output", 256 | "JSON", 257 | ...(typeof args === "string" ? [args] : args), 258 | ]; 259 | console.info("Run vale as", command); 260 | const stdout = await runInWorkspace(folder, command); 261 | const result = JSON.parse(stdout) as IValeJSON; 262 | const diagnostics: ValeDiagnostics = new Map(); 263 | for (const fileName of Object.getOwnPropertyNames(result)) { 264 | diagnostics.set(fileName, result[fileName].map(toDiagnostic)); 265 | } 266 | return diagnostics; 267 | }; 268 | 269 | /** 270 | * Lint a single document and put the results into a diagnostic collection. 271 | * 272 | * @param diagnostics The diagnostic collection to put results in 273 | * @param document The document to lint 274 | */ 275 | const lintDocumentToDiagnostics = (diagnostics: DiagnosticCollection) => async ( 276 | document: TextDocument, 277 | ) => { 278 | console.log("Linting", document.fileName); 279 | if (!isElligibleDocument(document)) { 280 | return; 281 | } 282 | const folder = workspace.getWorkspaceFolder(document.uri); 283 | await checkValeVersionSatisfies(folder); 284 | try { 285 | const result = await runVale(folder, document.fileName); 286 | // Delete old diagnostics for the document, in case we 287 | // don't receive new diagnostics, because the document 288 | // has no errors. 289 | diagnostics.delete(document.uri); 290 | result.forEach((fileDiagnostics, fileName) => 291 | diagnostics.set( 292 | Uri.file(fileName), 293 | // tslint:disable-next-line:readonly-array 294 | fileDiagnostics as Diagnostic[], 295 | ), 296 | ); 297 | } catch (error) { 298 | window.showErrorMessage(error.toString()); 299 | diagnostics.delete(document.uri); 300 | return new Map(); 301 | } 302 | }; 303 | 304 | /** 305 | * Start linting vale documents. 306 | * 307 | * @param context The extension context 308 | */ 309 | const startLinting = ( 310 | context: ExtensionContext, 311 | diagnostics: DiagnosticCollection, 312 | ): void => { 313 | workspace.onDidSaveTextDocument( 314 | lintDocumentToDiagnostics(diagnostics), 315 | null, 316 | context.subscriptions, 317 | ); 318 | workspace.onDidOpenTextDocument( 319 | lintDocumentToDiagnostics(diagnostics), 320 | null, 321 | context.subscriptions, 322 | ); 323 | workspace.textDocuments.forEach(lintDocumentToDiagnostics(diagnostics)); 324 | 325 | workspace.onDidCloseTextDocument( 326 | (d) => diagnostics.delete(d.uri), 327 | null, 328 | context.subscriptions, 329 | ); 330 | }; 331 | 332 | /** 333 | * A workspace folder with URIs. 334 | */ 335 | interface IWorkspaceFolderFiles { 336 | readonly folder: WorkspaceFolder; 337 | readonly filePaths: ReadonlyArray; 338 | } 339 | 340 | /** 341 | * Group a list of URIs by their workspace folders. 342 | * 343 | * Yield an object containing the folder and the corresponding file paths for 344 | * every group. 345 | * 346 | * @param uris The URIs to group by their workspace folder. 347 | */ 348 | function* groupByWorkspace( 349 | uris: ReadonlyArray, 350 | ): IterableIterator { 351 | const byFolder = new Map>(); 352 | for (const uri of uris) { 353 | const folder = workspace.getWorkspaceFolder(uri); 354 | if (folder) { 355 | const paths = byFolder.get(folder.index) || []; 356 | byFolder.set(folder.index, [...paths, uri.fsPath]); 357 | } 358 | } 359 | 360 | const folders = workspace.workspaceFolders; 361 | if (folders) { 362 | for (const [index, folderUris] of byFolder) { 363 | const folder = folders[index]; 364 | yield { folder, filePaths: folderUris }; 365 | } 366 | } 367 | } 368 | 369 | /** 370 | * Run value on the entire workspace. 371 | * 372 | * @return A promise with the results 373 | */ 374 | const runValeOnWorkspace = async (): Promise => { 375 | // Explicitly find all elligible files ourselves so that we respect 376 | // "files.exclude", ie, only look at files that are included in the 377 | // workspace. 378 | 379 | const extensions = workspace 380 | .getConfiguration("vscode-vale") 381 | .get>("fileExtensions")!; 382 | 383 | const pattern = `**/*.{${extensions.join(",")}}`; 384 | const uris = await workspace.findFiles(pattern); 385 | const results: ValeDiagnostics = new Map(); 386 | for (const urisInFolder of groupByWorkspace(uris)) { 387 | const folderResults = await runVale( 388 | urisInFolder.folder, 389 | urisInFolder.filePaths, 390 | ); 391 | for (const [filePath, errors] of folderResults) { 392 | results.set(filePath, errors); 393 | } 394 | } 395 | return results; 396 | }; 397 | 398 | /** 399 | * Register commands for this extensions. 400 | * 401 | * @param context The extension context 402 | * @param diagnostics The diagnostic collection to put diagnostics in 403 | */ 404 | const registerCommands = ( 405 | context: ExtensionContext, 406 | diagnostics: DiagnosticCollection, 407 | ): void => { 408 | const lintProgressOptions = { 409 | location: ProgressLocation.Window, 410 | title: "vale running on workspace", 411 | }; 412 | const lintWorkspaceCommand = commands.registerCommand( 413 | "vale.lintWorkspace", 414 | () => 415 | window.withProgress(lintProgressOptions, async () => { 416 | const result = await runValeOnWorkspace(); 417 | diagnostics.clear(); 418 | result.forEach((errors, fileName) => 419 | diagnostics.set( 420 | Uri.file(fileName), 421 | // tslint:disable-next-line:readonly-array 422 | errors as Diagnostic[], 423 | ), 424 | ); 425 | }), 426 | ); 427 | 428 | context.subscriptions.push(lintWorkspaceCommand); 429 | }; 430 | 431 | /** 432 | * Activate this extension. 433 | * 434 | * Start linting elligible files with vale. 435 | * 436 | * Initialization fails if vale is not installed or does not meet the version 437 | * requirements. 438 | * 439 | * @param context The context for this extension 440 | * @return A promise for the initialization 441 | */ 442 | export const activate = async (context: ExtensionContext): Promise => { 443 | // Create and register a collection for our diagnostics 444 | const diagnostics = languages.createDiagnosticCollection("vale"); 445 | context.subscriptions.push(diagnostics); 446 | 447 | startLinting(context, diagnostics); 448 | registerCommands(context, diagnostics); 449 | }; 450 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "es6", 5 | "outDir": "out", 6 | "lib": [ 7 | "es6" 8 | ], 9 | "sourceMap": true, 10 | "rootDir": ".", 11 | "strict": true, 12 | "newLine": "LF", 13 | "noUnusedLocals": true, 14 | "noUnusedParameters": true, 15 | "noFallthroughCasesInSwitch": true, 16 | "forceConsistentCasingInFileNames": true, 17 | "plugins": [ 18 | { 19 | "name": "tslint-language-service" 20 | } 21 | ] 22 | }, 23 | "exclude": [ 24 | "node_modules", 25 | ".vscode-test" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "error", 3 | "extends": [ 4 | "tslint:recommended", 5 | "tslint-immutable" 6 | ], 7 | "jsRules": {}, 8 | "rules": { 9 | // Immutability rules 10 | "readonly-keyword": true, 11 | "readonly-array": true, 12 | "no-let": true, 13 | // Functional style rules 14 | "no-this": true, 15 | "no-class": true, 16 | "no-mixed-interface": true, 17 | "only-arrow-functions": true, 18 | // Style rules 19 | "max-line-length": [ 20 | true, 21 | 80 22 | ], 23 | // Allow console for debugging output 24 | "no-console": [ 25 | false 26 | ] 27 | }, 28 | "rulesDirectory": [] 29 | } 30 | -------------------------------------------------------------------------------- /vale-0.9.1.vsix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testthedocs/vscode-vale/179c91a38b3cbe0d5b420060eb8e0c77ee326535/vale-0.9.1.vsix -------------------------------------------------------------------------------- /vale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testthedocs/vscode-vale/179c91a38b3cbe0d5b420060eb8e0c77ee326535/vale.png -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/commander@^2.11.0": 6 | version "2.12.2" 7 | resolved "https://registry.yarnpkg.com/@types/commander/-/commander-2.12.2.tgz#183041a23842d4281478fa5d23c5ca78e6fd08ae" 8 | dependencies: 9 | commander "*" 10 | 11 | "@types/node@*": 12 | version "10.7.0" 13 | resolved "https://registry.yarnpkg.com/@types/node/-/node-10.7.0.tgz#d384b2c8625414ab2aa18fdf989c288d6a7a8202" 14 | 15 | "@types/node@^9.0": 16 | version "9.6.27" 17 | resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.27.tgz#aaf535fee3572029c3d525d511c091ee65380337" 18 | 19 | "@types/semver@^5.3", "@types/semver@^5.4.0": 20 | version "5.5.0" 21 | resolved "https://registry.yarnpkg.com/@types/semver/-/semver-5.5.0.tgz#146c2a29ee7d3bae4bf2fcb274636e264c813c45" 22 | 23 | "@types/which@^1.3": 24 | version "1.3.2" 25 | resolved "https://registry.yarnpkg.com/@types/which/-/which-1.3.2.tgz#9c246fc0c93ded311c8512df2891fb41f6227fdf" 26 | integrity sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA== 27 | 28 | ajv@^5.3.0: 29 | version "5.5.2" 30 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 31 | dependencies: 32 | co "^4.6.0" 33 | fast-deep-equal "^1.0.0" 34 | fast-json-stable-stringify "^2.0.0" 35 | json-schema-traverse "^0.3.0" 36 | 37 | ansi-cyan@^0.1.1: 38 | version "0.1.1" 39 | resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" 40 | dependencies: 41 | ansi-wrap "0.1.0" 42 | 43 | ansi-red@^0.1.1: 44 | version "0.1.1" 45 | resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" 46 | dependencies: 47 | ansi-wrap "0.1.0" 48 | 49 | ansi-regex@^2.0.0: 50 | version "2.1.1" 51 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 52 | 53 | ansi-styles@^2.2.1: 54 | version "2.2.1" 55 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 56 | 57 | ansi-styles@^3.2.1: 58 | version "3.2.1" 59 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 60 | dependencies: 61 | color-convert "^1.9.0" 62 | 63 | ansi-wrap@0.1.0: 64 | version "0.1.0" 65 | resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" 66 | 67 | argparse@^1.0.7: 68 | version "1.0.10" 69 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 70 | dependencies: 71 | sprintf-js "~1.0.2" 72 | 73 | arr-diff@^1.0.1: 74 | version "1.1.0" 75 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" 76 | dependencies: 77 | arr-flatten "^1.0.1" 78 | array-slice "^0.2.3" 79 | 80 | arr-diff@^2.0.0: 81 | version "2.0.0" 82 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 83 | dependencies: 84 | arr-flatten "^1.0.1" 85 | 86 | arr-flatten@^1.0.1: 87 | version "1.1.0" 88 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 89 | 90 | arr-union@^2.0.1: 91 | version "2.1.0" 92 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" 93 | 94 | array-differ@^1.0.0: 95 | version "1.0.0" 96 | resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" 97 | 98 | array-slice@^0.2.3: 99 | version "0.2.3" 100 | resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" 101 | 102 | array-union@^1.0.1: 103 | version "1.0.2" 104 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 105 | dependencies: 106 | array-uniq "^1.0.1" 107 | 108 | array-uniq@^1.0.1: 109 | version "1.0.3" 110 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 111 | 112 | array-unique@^0.2.1: 113 | version "0.2.1" 114 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 115 | 116 | arrify@^1.0.0: 117 | version "1.0.1" 118 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 119 | 120 | asn1@~0.2.3: 121 | version "0.2.4" 122 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" 123 | dependencies: 124 | safer-buffer "~2.1.0" 125 | 126 | assert-plus@1.0.0, assert-plus@^1.0.0: 127 | version "1.0.0" 128 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 129 | 130 | asynckit@^0.4.0: 131 | version "0.4.0" 132 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 133 | 134 | aws-sign2@~0.7.0: 135 | version "0.7.0" 136 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 137 | 138 | aws4@^1.8.0: 139 | version "1.8.0" 140 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" 141 | 142 | babel-code-frame@^6.22.0: 143 | version "6.26.0" 144 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 145 | dependencies: 146 | chalk "^1.1.3" 147 | esutils "^2.0.2" 148 | js-tokens "^3.0.2" 149 | 150 | balanced-match@^1.0.0: 151 | version "1.0.0" 152 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 153 | 154 | bcrypt-pbkdf@^1.0.0: 155 | version "1.0.2" 156 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" 157 | dependencies: 158 | tweetnacl "^0.14.3" 159 | 160 | block-stream@*: 161 | version "0.0.9" 162 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 163 | dependencies: 164 | inherits "~2.0.0" 165 | 166 | boolbase@~1.0.0: 167 | version "1.0.0" 168 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 169 | 170 | brace-expansion@^1.1.7: 171 | version "1.1.11" 172 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 173 | dependencies: 174 | balanced-match "^1.0.0" 175 | concat-map "0.0.1" 176 | 177 | braces@^1.8.2: 178 | version "1.8.5" 179 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 180 | dependencies: 181 | expand-range "^1.8.1" 182 | preserve "^0.2.0" 183 | repeat-element "^1.1.2" 184 | 185 | browser-stdout@1.3.0: 186 | version "1.3.0" 187 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" 188 | 189 | buffer-crc32@~0.2.3: 190 | version "0.2.13" 191 | resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" 192 | 193 | buffer-from@^1.0.0: 194 | version "1.1.1" 195 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 196 | 197 | builtin-modules@^1.1.1: 198 | version "1.1.1" 199 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 200 | 201 | caller-id@^0.1.0: 202 | version "0.1.0" 203 | resolved "https://registry.yarnpkg.com/caller-id/-/caller-id-0.1.0.tgz#59bdac0893d12c3871408279231f97458364f07b" 204 | dependencies: 205 | stack-trace "~0.0.7" 206 | 207 | caseless@~0.12.0: 208 | version "0.12.0" 209 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 210 | 211 | chalk@^1.1.3: 212 | version "1.1.3" 213 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 214 | dependencies: 215 | ansi-styles "^2.2.1" 216 | escape-string-regexp "^1.0.2" 217 | has-ansi "^2.0.0" 218 | strip-ansi "^3.0.0" 219 | supports-color "^2.0.0" 220 | 221 | chalk@^2.3.0: 222 | version "2.4.1" 223 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 224 | dependencies: 225 | ansi-styles "^3.2.1" 226 | escape-string-regexp "^1.0.5" 227 | supports-color "^5.3.0" 228 | 229 | cheerio@^1.0.0-rc.1: 230 | version "1.0.0-rc.2" 231 | resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" 232 | dependencies: 233 | css-select "~1.2.0" 234 | dom-serializer "~0.1.0" 235 | entities "~1.1.1" 236 | htmlparser2 "^3.9.1" 237 | lodash "^4.15.0" 238 | parse5 "^3.0.1" 239 | 240 | clone-buffer@^1.0.0: 241 | version "1.0.0" 242 | resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" 243 | 244 | clone-stats@^0.0.1: 245 | version "0.0.1" 246 | resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" 247 | 248 | clone-stats@^1.0.0: 249 | version "1.0.0" 250 | resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" 251 | 252 | clone@^0.2.0: 253 | version "0.2.0" 254 | resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" 255 | 256 | clone@^1.0.0: 257 | version "1.0.4" 258 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" 259 | 260 | clone@^2.1.1: 261 | version "2.1.2" 262 | resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" 263 | 264 | cloneable-readable@^1.0.0: 265 | version "1.1.2" 266 | resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" 267 | dependencies: 268 | inherits "^2.0.1" 269 | process-nextick-args "^2.0.0" 270 | readable-stream "^2.3.5" 271 | 272 | co@^4.6.0: 273 | version "4.6.0" 274 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 275 | 276 | color-convert@^1.9.0: 277 | version "1.9.2" 278 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" 279 | dependencies: 280 | color-name "1.1.1" 281 | 282 | color-name@1.1.1: 283 | version "1.1.1" 284 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" 285 | 286 | combined-stream@1.0.6, combined-stream@~1.0.6: 287 | version "1.0.6" 288 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" 289 | dependencies: 290 | delayed-stream "~1.0.0" 291 | 292 | commander@*, commander@^2.11.0, commander@^2.12.1, commander@^2.8.1: 293 | version "2.17.1" 294 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" 295 | 296 | commander@2.11.0: 297 | version "2.11.0" 298 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" 299 | 300 | commandpost@^1.0.0: 301 | version "1.3.0" 302 | resolved "https://registry.yarnpkg.com/commandpost/-/commandpost-1.3.0.tgz#e0654e4933abf58406c7d3b77ce747083da178c4" 303 | 304 | concat-map@0.0.1: 305 | version "0.0.1" 306 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 307 | 308 | convert-source-map@^1.1.1: 309 | version "1.5.1" 310 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" 311 | 312 | core-util-is@1.0.2, core-util-is@~1.0.0: 313 | version "1.0.2" 314 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 315 | 316 | css-select@~1.2.0: 317 | version "1.2.0" 318 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" 319 | dependencies: 320 | boolbase "~1.0.0" 321 | css-what "2.1" 322 | domutils "1.5.1" 323 | nth-check "~1.0.1" 324 | 325 | css-what@2.1: 326 | version "2.1.0" 327 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" 328 | 329 | dashdash@^1.12.0: 330 | version "1.14.1" 331 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 332 | dependencies: 333 | assert-plus "^1.0.0" 334 | 335 | debug@3.1.0: 336 | version "3.1.0" 337 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 338 | dependencies: 339 | ms "2.0.0" 340 | 341 | deep-assign@^1.0.0: 342 | version "1.0.0" 343 | resolved "https://registry.yarnpkg.com/deep-assign/-/deep-assign-1.0.0.tgz#b092743be8427dc621ea0067cdec7e70dd19f37b" 344 | dependencies: 345 | is-obj "^1.0.0" 346 | 347 | delayed-stream@~1.0.0: 348 | version "1.0.0" 349 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 350 | 351 | denodeify@^1.2.1: 352 | version "1.2.1" 353 | resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" 354 | 355 | diff@3.3.1: 356 | version "3.3.1" 357 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" 358 | 359 | diff@^3.2.0: 360 | version "3.5.0" 361 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 362 | 363 | dom-serializer@0, dom-serializer@~0.1.0: 364 | version "0.1.0" 365 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" 366 | dependencies: 367 | domelementtype "~1.1.1" 368 | entities "~1.1.1" 369 | 370 | domelementtype@1, domelementtype@^1.3.0: 371 | version "1.3.0" 372 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" 373 | 374 | domelementtype@~1.1.1: 375 | version "1.1.3" 376 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" 377 | 378 | domhandler@^2.3.0: 379 | version "2.4.2" 380 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" 381 | dependencies: 382 | domelementtype "1" 383 | 384 | domutils@1.5.1: 385 | version "1.5.1" 386 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" 387 | dependencies: 388 | dom-serializer "0" 389 | domelementtype "1" 390 | 391 | domutils@^1.5.1: 392 | version "1.7.0" 393 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" 394 | dependencies: 395 | dom-serializer "0" 396 | domelementtype "1" 397 | 398 | duplexer@~0.1.1: 399 | version "0.1.1" 400 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" 401 | 402 | duplexify@^3.2.0: 403 | version "3.6.0" 404 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" 405 | dependencies: 406 | end-of-stream "^1.0.0" 407 | inherits "^2.0.1" 408 | readable-stream "^2.0.0" 409 | stream-shift "^1.0.0" 410 | 411 | ecc-jsbn@~0.1.1: 412 | version "0.1.2" 413 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" 414 | dependencies: 415 | jsbn "~0.1.0" 416 | safer-buffer "^2.1.0" 417 | 418 | editorconfig@^0.15.0: 419 | version "0.15.0" 420 | resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.0.tgz#b6dd4a0b6b9e76ce48e066bdc15381aebb8804fd" 421 | dependencies: 422 | "@types/commander" "^2.11.0" 423 | "@types/semver" "^5.4.0" 424 | commander "^2.11.0" 425 | lru-cache "^4.1.1" 426 | semver "^5.4.1" 427 | sigmund "^1.0.1" 428 | 429 | end-of-stream@^1.0.0: 430 | version "1.4.1" 431 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" 432 | dependencies: 433 | once "^1.4.0" 434 | 435 | entities@^1.1.1, entities@~1.1.1: 436 | version "1.1.1" 437 | resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" 438 | 439 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 440 | version "1.0.5" 441 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 442 | 443 | esprima@^4.0.0: 444 | version "4.0.1" 445 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 446 | 447 | esutils@^2.0.2: 448 | version "2.0.2" 449 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 450 | 451 | event-stream@^3.3.1, event-stream@^3.3.4, event-stream@~3.3.4: 452 | version "3.3.4" 453 | resolved "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" 454 | dependencies: 455 | duplexer "~0.1.1" 456 | from "~0" 457 | map-stream "~0.1.0" 458 | pause-stream "0.0.11" 459 | split "0.3" 460 | stream-combiner "~0.0.4" 461 | through "~2.3.1" 462 | 463 | expand-brackets@^0.1.4: 464 | version "0.1.5" 465 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 466 | dependencies: 467 | is-posix-bracket "^0.1.0" 468 | 469 | expand-range@^1.8.1: 470 | version "1.8.2" 471 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 472 | dependencies: 473 | fill-range "^2.1.0" 474 | 475 | extend-shallow@^1.1.2: 476 | version "1.1.4" 477 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" 478 | dependencies: 479 | kind-of "^1.1.0" 480 | 481 | extend-shallow@^2.0.1: 482 | version "2.0.1" 483 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 484 | dependencies: 485 | is-extendable "^0.1.0" 486 | 487 | extend@^3.0.0, extend@~3.0.2: 488 | version "3.0.2" 489 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 490 | 491 | extglob@^0.3.1: 492 | version "0.3.2" 493 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 494 | dependencies: 495 | is-extglob "^1.0.0" 496 | 497 | extsprintf@1.3.0: 498 | version "1.3.0" 499 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 500 | 501 | extsprintf@^1.2.0: 502 | version "1.4.0" 503 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 504 | 505 | fast-deep-equal@^1.0.0: 506 | version "1.1.0" 507 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 508 | 509 | fast-json-stable-stringify@^2.0.0: 510 | version "2.0.0" 511 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 512 | 513 | fd-slicer@~1.1.0: 514 | version "1.1.0" 515 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" 516 | dependencies: 517 | pend "~1.2.0" 518 | 519 | filename-regex@^2.0.0: 520 | version "2.0.1" 521 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 522 | 523 | fill-range@^2.1.0: 524 | version "2.2.4" 525 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" 526 | dependencies: 527 | is-number "^2.1.0" 528 | isobject "^2.0.0" 529 | randomatic "^3.0.0" 530 | repeat-element "^1.1.2" 531 | repeat-string "^1.5.2" 532 | 533 | first-chunk-stream@^1.0.0: 534 | version "1.0.0" 535 | resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" 536 | 537 | for-in@^1.0.1: 538 | version "1.0.2" 539 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 540 | 541 | for-own@^0.1.4: 542 | version "0.1.5" 543 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 544 | dependencies: 545 | for-in "^1.0.1" 546 | 547 | forever-agent@~0.6.1: 548 | version "0.6.1" 549 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 550 | 551 | form-data@~2.3.2: 552 | version "2.3.2" 553 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" 554 | dependencies: 555 | asynckit "^0.4.0" 556 | combined-stream "1.0.6" 557 | mime-types "^2.1.12" 558 | 559 | from@~0: 560 | version "0.1.7" 561 | resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" 562 | 563 | fs.realpath@^1.0.0: 564 | version "1.0.0" 565 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 566 | 567 | fstream@^1.0.2: 568 | version "1.0.11" 569 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 570 | dependencies: 571 | graceful-fs "^4.1.2" 572 | inherits "~2.0.0" 573 | mkdirp ">=0.5 0" 574 | rimraf "2" 575 | 576 | getpass@^0.1.1: 577 | version "0.1.7" 578 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 579 | dependencies: 580 | assert-plus "^1.0.0" 581 | 582 | glob-base@^0.3.0: 583 | version "0.3.0" 584 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 585 | dependencies: 586 | glob-parent "^2.0.0" 587 | is-glob "^2.0.0" 588 | 589 | glob-parent@^2.0.0: 590 | version "2.0.0" 591 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 592 | dependencies: 593 | is-glob "^2.0.0" 594 | 595 | glob-parent@^3.0.0: 596 | version "3.1.0" 597 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 598 | dependencies: 599 | is-glob "^3.1.0" 600 | path-dirname "^1.0.0" 601 | 602 | glob-stream@^5.3.2: 603 | version "5.3.5" 604 | resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" 605 | dependencies: 606 | extend "^3.0.0" 607 | glob "^5.0.3" 608 | glob-parent "^3.0.0" 609 | micromatch "^2.3.7" 610 | ordered-read-streams "^0.3.0" 611 | through2 "^0.6.0" 612 | to-absolute-glob "^0.1.1" 613 | unique-stream "^2.0.2" 614 | 615 | glob@7.1.2, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2: 616 | version "7.1.2" 617 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 618 | dependencies: 619 | fs.realpath "^1.0.0" 620 | inflight "^1.0.4" 621 | inherits "2" 622 | minimatch "^3.0.4" 623 | once "^1.3.0" 624 | path-is-absolute "^1.0.0" 625 | 626 | glob@^5.0.3: 627 | version "5.0.15" 628 | resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" 629 | dependencies: 630 | inflight "^1.0.4" 631 | inherits "2" 632 | minimatch "2 || 3" 633 | once "^1.3.0" 634 | path-is-absolute "^1.0.0" 635 | 636 | graceful-fs@^4.0.0, graceful-fs@^4.1.2: 637 | version "4.1.11" 638 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 639 | 640 | growl@1.10.3: 641 | version "1.10.3" 642 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" 643 | 644 | gulp-chmod@^2.0.0: 645 | version "2.0.0" 646 | resolved "https://registry.yarnpkg.com/gulp-chmod/-/gulp-chmod-2.0.0.tgz#00c390b928a0799b251accf631aa09e01cc6299c" 647 | dependencies: 648 | deep-assign "^1.0.0" 649 | stat-mode "^0.2.0" 650 | through2 "^2.0.0" 651 | 652 | gulp-filter@^5.0.1: 653 | version "5.1.0" 654 | resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-5.1.0.tgz#a05e11affb07cf7dcf41a7de1cb7b63ac3783e73" 655 | dependencies: 656 | multimatch "^2.0.0" 657 | plugin-error "^0.1.2" 658 | streamfilter "^1.0.5" 659 | 660 | gulp-gunzip@1.0.0: 661 | version "1.0.0" 662 | resolved "https://registry.yarnpkg.com/gulp-gunzip/-/gulp-gunzip-1.0.0.tgz#15b741145e83a9c6f50886241b57cc5871f151a9" 663 | dependencies: 664 | through2 "~0.6.5" 665 | vinyl "~0.4.6" 666 | 667 | gulp-remote-src-vscode@^0.5.0: 668 | version "0.5.0" 669 | resolved "https://registry.yarnpkg.com/gulp-remote-src-vscode/-/gulp-remote-src-vscode-0.5.0.tgz#71785553bc491880088ad971f90910c4b2d80a99" 670 | dependencies: 671 | event-stream "^3.3.4" 672 | node.extend "^1.1.2" 673 | request "^2.79.0" 674 | through2 "^2.0.3" 675 | vinyl "^2.0.1" 676 | 677 | gulp-sourcemaps@1.6.0: 678 | version "1.6.0" 679 | resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" 680 | dependencies: 681 | convert-source-map "^1.1.1" 682 | graceful-fs "^4.1.2" 683 | strip-bom "^2.0.0" 684 | through2 "^2.0.0" 685 | vinyl "^1.0.0" 686 | 687 | gulp-symdest@^1.1.0: 688 | version "1.1.0" 689 | resolved "https://registry.yarnpkg.com/gulp-symdest/-/gulp-symdest-1.1.0.tgz#c165320732d192ce56fd94271ffa123234bf2ae0" 690 | dependencies: 691 | event-stream "^3.3.1" 692 | mkdirp "^0.5.1" 693 | queue "^3.1.0" 694 | vinyl-fs "^2.4.3" 695 | 696 | gulp-untar@^0.0.7: 697 | version "0.0.7" 698 | resolved "https://registry.yarnpkg.com/gulp-untar/-/gulp-untar-0.0.7.tgz#92067d79e0fa1e92d60562a100233a44a5aa08b4" 699 | dependencies: 700 | event-stream "~3.3.4" 701 | streamifier "~0.1.1" 702 | tar "^2.2.1" 703 | through2 "~2.0.3" 704 | vinyl "^1.2.0" 705 | 706 | gulp-vinyl-zip@^2.1.0: 707 | version "2.1.0" 708 | resolved "https://registry.yarnpkg.com/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.0.tgz#24e40685dc05b7149995245099e0590263be8dad" 709 | dependencies: 710 | event-stream "^3.3.1" 711 | queue "^4.2.1" 712 | through2 "^2.0.3" 713 | vinyl "^2.0.2" 714 | vinyl-fs "^2.0.0" 715 | yauzl "^2.2.1" 716 | yazl "^2.2.1" 717 | 718 | har-schema@^2.0.0: 719 | version "2.0.0" 720 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 721 | 722 | har-validator@~5.1.0: 723 | version "5.1.0" 724 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29" 725 | dependencies: 726 | ajv "^5.3.0" 727 | har-schema "^2.0.0" 728 | 729 | has-ansi@^2.0.0: 730 | version "2.0.0" 731 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 732 | dependencies: 733 | ansi-regex "^2.0.0" 734 | 735 | has-flag@^2.0.0: 736 | version "2.0.0" 737 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 738 | 739 | has-flag@^3.0.0: 740 | version "3.0.0" 741 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 742 | 743 | he@1.1.1: 744 | version "1.1.1" 745 | resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" 746 | 747 | htmlparser2@^3.9.1: 748 | version "3.9.2" 749 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" 750 | dependencies: 751 | domelementtype "^1.3.0" 752 | domhandler "^2.3.0" 753 | domutils "^1.5.1" 754 | entities "^1.1.1" 755 | inherits "^2.0.1" 756 | readable-stream "^2.0.2" 757 | 758 | http-signature@~1.2.0: 759 | version "1.2.0" 760 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 761 | dependencies: 762 | assert-plus "^1.0.0" 763 | jsprim "^1.2.2" 764 | sshpk "^1.7.0" 765 | 766 | inflight@^1.0.4: 767 | version "1.0.6" 768 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 769 | dependencies: 770 | once "^1.3.0" 771 | wrappy "1" 772 | 773 | inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: 774 | version "2.0.3" 775 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 776 | 777 | is-buffer@^1.1.5: 778 | version "1.1.6" 779 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 780 | 781 | is-dotfile@^1.0.0: 782 | version "1.0.3" 783 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 784 | 785 | is-equal-shallow@^0.1.3: 786 | version "0.1.3" 787 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 788 | dependencies: 789 | is-primitive "^2.0.0" 790 | 791 | is-extendable@^0.1.0, is-extendable@^0.1.1: 792 | version "0.1.1" 793 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 794 | 795 | is-extglob@^1.0.0: 796 | version "1.0.0" 797 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 798 | 799 | is-extglob@^2.1.0: 800 | version "2.1.1" 801 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 802 | 803 | is-glob@^2.0.0, is-glob@^2.0.1: 804 | version "2.0.1" 805 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 806 | dependencies: 807 | is-extglob "^1.0.0" 808 | 809 | is-glob@^3.1.0: 810 | version "3.1.0" 811 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 812 | dependencies: 813 | is-extglob "^2.1.0" 814 | 815 | is-number@^2.1.0: 816 | version "2.1.0" 817 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 818 | dependencies: 819 | kind-of "^3.0.2" 820 | 821 | is-number@^4.0.0: 822 | version "4.0.0" 823 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" 824 | 825 | is-obj@^1.0.0: 826 | version "1.0.1" 827 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 828 | 829 | is-posix-bracket@^0.1.0: 830 | version "0.1.1" 831 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 832 | 833 | is-primitive@^2.0.0: 834 | version "2.0.0" 835 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 836 | 837 | is-stream@^1.0.1: 838 | version "1.1.0" 839 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 840 | 841 | is-typedarray@~1.0.0: 842 | version "1.0.0" 843 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 844 | 845 | is-utf8@^0.2.0: 846 | version "0.2.1" 847 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 848 | 849 | is-valid-glob@^0.3.0: 850 | version "0.3.0" 851 | resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" 852 | 853 | is@^3.1.0: 854 | version "3.2.1" 855 | resolved "https://registry.yarnpkg.com/is/-/is-3.2.1.tgz#d0ac2ad55eb7b0bec926a5266f6c662aaa83dca5" 856 | 857 | isarray@0.0.1: 858 | version "0.0.1" 859 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 860 | 861 | isarray@1.0.0, isarray@~1.0.0: 862 | version "1.0.0" 863 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 864 | 865 | isexe@^2.0.0: 866 | version "2.0.0" 867 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 868 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 869 | 870 | isobject@^2.0.0: 871 | version "2.1.0" 872 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 873 | dependencies: 874 | isarray "1.0.0" 875 | 876 | isstream@~0.1.2: 877 | version "0.1.2" 878 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 879 | 880 | js-tokens@^3.0.2: 881 | version "3.0.2" 882 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 883 | 884 | js-yaml@^3.7.0: 885 | version "3.12.0" 886 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 887 | dependencies: 888 | argparse "^1.0.7" 889 | esprima "^4.0.0" 890 | 891 | jsbn@~0.1.0: 892 | version "0.1.1" 893 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 894 | 895 | json-schema-traverse@^0.3.0: 896 | version "0.3.1" 897 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 898 | 899 | json-schema@0.2.3: 900 | version "0.2.3" 901 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 902 | 903 | json-stable-stringify@^1.0.0: 904 | version "1.0.1" 905 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 906 | dependencies: 907 | jsonify "~0.0.0" 908 | 909 | json-stringify-safe@~5.0.1: 910 | version "5.0.1" 911 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 912 | 913 | jsonify@~0.0.0: 914 | version "0.0.0" 915 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 916 | 917 | jsprim@^1.2.2: 918 | version "1.4.1" 919 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 920 | dependencies: 921 | assert-plus "1.0.0" 922 | extsprintf "1.3.0" 923 | json-schema "0.2.3" 924 | verror "1.10.0" 925 | 926 | kind-of@^1.1.0: 927 | version "1.1.0" 928 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" 929 | 930 | kind-of@^3.0.2: 931 | version "3.2.2" 932 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 933 | dependencies: 934 | is-buffer "^1.1.5" 935 | 936 | kind-of@^6.0.0: 937 | version "6.0.2" 938 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 939 | 940 | lazystream@^1.0.0: 941 | version "1.0.0" 942 | resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" 943 | dependencies: 944 | readable-stream "^2.0.5" 945 | 946 | linkify-it@^2.0.0: 947 | version "2.0.3" 948 | resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.0.3.tgz#d94a4648f9b1c179d64fa97291268bdb6ce9434f" 949 | dependencies: 950 | uc.micro "^1.0.1" 951 | 952 | lodash.isequal@^4.0.0: 953 | version "4.5.0" 954 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" 955 | 956 | lodash@^4.15.0, lodash@^4.17.10: 957 | version "4.17.10" 958 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 959 | 960 | lru-cache@^4.1.1: 961 | version "4.1.3" 962 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" 963 | dependencies: 964 | pseudomap "^1.0.2" 965 | yallist "^2.1.2" 966 | 967 | map-stream@~0.1.0: 968 | version "0.1.0" 969 | resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" 970 | 971 | markdown-it@^8.3.1: 972 | version "8.4.2" 973 | resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54" 974 | dependencies: 975 | argparse "^1.0.7" 976 | entities "~1.1.1" 977 | linkify-it "^2.0.0" 978 | mdurl "^1.0.1" 979 | uc.micro "^1.0.5" 980 | 981 | math-random@^1.0.1: 982 | version "1.0.1" 983 | resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" 984 | 985 | mdurl@^1.0.1: 986 | version "1.0.1" 987 | resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" 988 | 989 | merge-stream@^1.0.0: 990 | version "1.0.1" 991 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" 992 | dependencies: 993 | readable-stream "^2.0.1" 994 | 995 | micromatch@^2.3.7: 996 | version "2.3.11" 997 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 998 | dependencies: 999 | arr-diff "^2.0.0" 1000 | array-unique "^0.2.1" 1001 | braces "^1.8.2" 1002 | expand-brackets "^0.1.4" 1003 | extglob "^0.3.1" 1004 | filename-regex "^2.0.0" 1005 | is-extglob "^1.0.0" 1006 | is-glob "^2.0.1" 1007 | kind-of "^3.0.2" 1008 | normalize-path "^2.0.1" 1009 | object.omit "^2.0.0" 1010 | parse-glob "^3.0.4" 1011 | regex-cache "^0.4.2" 1012 | 1013 | mime-db@~1.35.0: 1014 | version "1.35.0" 1015 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47" 1016 | 1017 | mime-types@^2.1.12, mime-types@~2.1.19: 1018 | version "2.1.19" 1019 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0" 1020 | dependencies: 1021 | mime-db "~1.35.0" 1022 | 1023 | mime@^1.3.4: 1024 | version "1.6.0" 1025 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 1026 | 1027 | "minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.3, minimatch@^3.0.4: 1028 | version "3.0.4" 1029 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1030 | dependencies: 1031 | brace-expansion "^1.1.7" 1032 | 1033 | minimist@0.0.8: 1034 | version "0.0.8" 1035 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1036 | 1037 | mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: 1038 | version "0.5.1" 1039 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1040 | dependencies: 1041 | minimist "0.0.8" 1042 | 1043 | mocha@^4.0.1: 1044 | version "4.1.0" 1045 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794" 1046 | dependencies: 1047 | browser-stdout "1.3.0" 1048 | commander "2.11.0" 1049 | debug "3.1.0" 1050 | diff "3.3.1" 1051 | escape-string-regexp "1.0.5" 1052 | glob "7.1.2" 1053 | growl "1.10.3" 1054 | he "1.1.1" 1055 | mkdirp "0.5.1" 1056 | supports-color "4.4.0" 1057 | 1058 | mock-require@^2.0.2: 1059 | version "2.0.2" 1060 | resolved "https://registry.yarnpkg.com/mock-require/-/mock-require-2.0.2.tgz#1eaa71aad23013773d127dc7e91a3fbb4837d60d" 1061 | dependencies: 1062 | caller-id "^0.1.0" 1063 | 1064 | ms@2.0.0: 1065 | version "2.0.0" 1066 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1067 | 1068 | multimatch@^2.0.0: 1069 | version "2.1.0" 1070 | resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" 1071 | dependencies: 1072 | array-differ "^1.0.0" 1073 | array-union "^1.0.1" 1074 | arrify "^1.0.0" 1075 | minimatch "^3.0.0" 1076 | 1077 | mute-stream@~0.0.4: 1078 | version "0.0.7" 1079 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 1080 | 1081 | node.extend@^1.1.2: 1082 | version "1.1.6" 1083 | resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-1.1.6.tgz#a7b882c82d6c93a4863a5504bd5de8ec86258b96" 1084 | dependencies: 1085 | is "^3.1.0" 1086 | 1087 | normalize-path@^2.0.1: 1088 | version "2.1.1" 1089 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1090 | dependencies: 1091 | remove-trailing-separator "^1.0.1" 1092 | 1093 | nth-check@~1.0.1: 1094 | version "1.0.1" 1095 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" 1096 | dependencies: 1097 | boolbase "~1.0.0" 1098 | 1099 | oauth-sign@~0.9.0: 1100 | version "0.9.0" 1101 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" 1102 | 1103 | object-assign@^4.0.0: 1104 | version "4.1.1" 1105 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1106 | 1107 | object.omit@^2.0.0: 1108 | version "2.0.1" 1109 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 1110 | dependencies: 1111 | for-own "^0.1.4" 1112 | is-extendable "^0.1.1" 1113 | 1114 | once@^1.3.0, once@^1.4.0: 1115 | version "1.4.0" 1116 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1117 | dependencies: 1118 | wrappy "1" 1119 | 1120 | ordered-read-streams@^0.3.0: 1121 | version "0.3.0" 1122 | resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" 1123 | dependencies: 1124 | is-stream "^1.0.1" 1125 | readable-stream "^2.0.1" 1126 | 1127 | os-homedir@^1.0.0: 1128 | version "1.0.2" 1129 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1130 | 1131 | os-tmpdir@^1.0.0, os-tmpdir@~1.0.1: 1132 | version "1.0.2" 1133 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1134 | 1135 | osenv@^0.1.3: 1136 | version "0.1.5" 1137 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 1138 | dependencies: 1139 | os-homedir "^1.0.0" 1140 | os-tmpdir "^1.0.0" 1141 | 1142 | parse-glob@^3.0.4: 1143 | version "3.0.4" 1144 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 1145 | dependencies: 1146 | glob-base "^0.3.0" 1147 | is-dotfile "^1.0.0" 1148 | is-extglob "^1.0.0" 1149 | is-glob "^2.0.0" 1150 | 1151 | parse-semver@^1.1.1: 1152 | version "1.1.1" 1153 | resolved "https://registry.yarnpkg.com/parse-semver/-/parse-semver-1.1.1.tgz#9a4afd6df063dc4826f93fba4a99cf223f666cb8" 1154 | dependencies: 1155 | semver "^5.1.0" 1156 | 1157 | parse5@^3.0.1: 1158 | version "3.0.3" 1159 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" 1160 | dependencies: 1161 | "@types/node" "*" 1162 | 1163 | path-dirname@^1.0.0: 1164 | version "1.0.2" 1165 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 1166 | 1167 | path-is-absolute@^1.0.0: 1168 | version "1.0.1" 1169 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1170 | 1171 | path-parse@^1.0.5: 1172 | version "1.0.6" 1173 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 1174 | 1175 | pause-stream@0.0.11: 1176 | version "0.0.11" 1177 | resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" 1178 | dependencies: 1179 | through "~2.3" 1180 | 1181 | pend@~1.2.0: 1182 | version "1.2.0" 1183 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" 1184 | 1185 | performance-now@^2.1.0: 1186 | version "2.1.0" 1187 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 1188 | 1189 | plugin-error@^0.1.2: 1190 | version "0.1.2" 1191 | resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" 1192 | dependencies: 1193 | ansi-cyan "^0.1.1" 1194 | ansi-red "^0.1.1" 1195 | arr-diff "^1.0.1" 1196 | arr-union "^2.0.1" 1197 | extend-shallow "^1.1.2" 1198 | 1199 | preserve@^0.2.0: 1200 | version "0.2.0" 1201 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 1202 | 1203 | process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: 1204 | version "2.0.0" 1205 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 1206 | 1207 | pseudomap@^1.0.2: 1208 | version "1.0.2" 1209 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 1210 | 1211 | psl@^1.1.24: 1212 | version "1.1.29" 1213 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67" 1214 | 1215 | punycode@^1.4.1: 1216 | version "1.4.1" 1217 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 1218 | 1219 | q@^1.0.1: 1220 | version "1.5.1" 1221 | resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" 1222 | 1223 | qs@~6.5.2: 1224 | version "6.5.2" 1225 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 1226 | 1227 | querystringify@^2.0.0: 1228 | version "2.0.0" 1229 | resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" 1230 | 1231 | queue@^3.1.0: 1232 | version "3.1.0" 1233 | resolved "https://registry.yarnpkg.com/queue/-/queue-3.1.0.tgz#6c49d01f009e2256788789f2bffac6b8b9990585" 1234 | dependencies: 1235 | inherits "~2.0.0" 1236 | 1237 | queue@^4.2.1: 1238 | version "4.4.2" 1239 | resolved "https://registry.yarnpkg.com/queue/-/queue-4.4.2.tgz#5a9733d9a8b8bd1b36e934bc9c55ab89b28e29c7" 1240 | dependencies: 1241 | inherits "~2.0.0" 1242 | 1243 | randomatic@^3.0.0: 1244 | version "3.1.0" 1245 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" 1246 | dependencies: 1247 | is-number "^4.0.0" 1248 | kind-of "^6.0.0" 1249 | math-random "^1.0.1" 1250 | 1251 | read@^1.0.7: 1252 | version "1.0.7" 1253 | resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" 1254 | dependencies: 1255 | mute-stream "~0.0.4" 1256 | 1257 | "readable-stream@>=1.0.33-1 <1.1.0-0": 1258 | version "1.0.34" 1259 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" 1260 | dependencies: 1261 | core-util-is "~1.0.0" 1262 | inherits "~2.0.1" 1263 | isarray "0.0.1" 1264 | string_decoder "~0.10.x" 1265 | 1266 | readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.3.5: 1267 | version "2.3.6" 1268 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 1269 | dependencies: 1270 | core-util-is "~1.0.0" 1271 | inherits "~2.0.3" 1272 | isarray "~1.0.0" 1273 | process-nextick-args "~2.0.0" 1274 | safe-buffer "~5.1.1" 1275 | string_decoder "~1.1.1" 1276 | util-deprecate "~1.0.1" 1277 | 1278 | regex-cache@^0.4.2: 1279 | version "0.4.4" 1280 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" 1281 | dependencies: 1282 | is-equal-shallow "^0.1.3" 1283 | 1284 | remove-trailing-separator@^1.0.1: 1285 | version "1.1.0" 1286 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 1287 | 1288 | repeat-element@^1.1.2: 1289 | version "1.1.2" 1290 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 1291 | 1292 | repeat-string@^1.5.2: 1293 | version "1.6.1" 1294 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1295 | 1296 | replace-ext@0.0.1: 1297 | version "0.0.1" 1298 | resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" 1299 | 1300 | replace-ext@^1.0.0: 1301 | version "1.0.0" 1302 | resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" 1303 | 1304 | request@^2.79.0, request@^2.83.0: 1305 | version "2.88.0" 1306 | resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" 1307 | dependencies: 1308 | aws-sign2 "~0.7.0" 1309 | aws4 "^1.8.0" 1310 | caseless "~0.12.0" 1311 | combined-stream "~1.0.6" 1312 | extend "~3.0.2" 1313 | forever-agent "~0.6.1" 1314 | form-data "~2.3.2" 1315 | har-validator "~5.1.0" 1316 | http-signature "~1.2.0" 1317 | is-typedarray "~1.0.0" 1318 | isstream "~0.1.2" 1319 | json-stringify-safe "~5.0.1" 1320 | mime-types "~2.1.19" 1321 | oauth-sign "~0.9.0" 1322 | performance-now "^2.1.0" 1323 | qs "~6.5.2" 1324 | safe-buffer "^5.1.2" 1325 | tough-cookie "~2.4.3" 1326 | tunnel-agent "^0.6.0" 1327 | uuid "^3.3.2" 1328 | 1329 | requires-port@^1.0.0: 1330 | version "1.0.0" 1331 | resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" 1332 | 1333 | resolve@^1.3.2: 1334 | version "1.8.1" 1335 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 1336 | dependencies: 1337 | path-parse "^1.0.5" 1338 | 1339 | rimraf@2: 1340 | version "2.6.2" 1341 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1342 | dependencies: 1343 | glob "^7.0.5" 1344 | 1345 | safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1346 | version "5.1.2" 1347 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1348 | 1349 | safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: 1350 | version "2.1.2" 1351 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1352 | 1353 | semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: 1354 | version "5.5.0" 1355 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 1356 | 1357 | sigmund@^1.0.1: 1358 | version "1.0.1" 1359 | resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" 1360 | 1361 | source-map-support@^0.5.0: 1362 | version "0.5.8" 1363 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.8.tgz#04f5581713a8a65612d0175fbf3a01f80a162613" 1364 | dependencies: 1365 | buffer-from "^1.0.0" 1366 | source-map "^0.6.0" 1367 | 1368 | source-map@^0.6.0: 1369 | version "0.6.1" 1370 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1371 | 1372 | split@0.3: 1373 | version "0.3.3" 1374 | resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" 1375 | dependencies: 1376 | through "2" 1377 | 1378 | sprintf-js@~1.0.2: 1379 | version "1.0.3" 1380 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1381 | 1382 | sshpk@^1.7.0: 1383 | version "1.14.2" 1384 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" 1385 | dependencies: 1386 | asn1 "~0.2.3" 1387 | assert-plus "^1.0.0" 1388 | dashdash "^1.12.0" 1389 | getpass "^0.1.1" 1390 | safer-buffer "^2.0.2" 1391 | optionalDependencies: 1392 | bcrypt-pbkdf "^1.0.0" 1393 | ecc-jsbn "~0.1.1" 1394 | jsbn "~0.1.0" 1395 | tweetnacl "~0.14.0" 1396 | 1397 | stack-trace@~0.0.7: 1398 | version "0.0.10" 1399 | resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" 1400 | 1401 | stat-mode@^0.2.0: 1402 | version "0.2.2" 1403 | resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" 1404 | 1405 | stream-combiner@~0.0.4: 1406 | version "0.0.4" 1407 | resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" 1408 | dependencies: 1409 | duplexer "~0.1.1" 1410 | 1411 | stream-shift@^1.0.0: 1412 | version "1.0.0" 1413 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" 1414 | 1415 | streamfilter@^1.0.5: 1416 | version "1.0.7" 1417 | resolved "https://registry.yarnpkg.com/streamfilter/-/streamfilter-1.0.7.tgz#ae3e64522aa5a35c061fd17f67620c7653c643c9" 1418 | dependencies: 1419 | readable-stream "^2.0.2" 1420 | 1421 | streamifier@~0.1.1: 1422 | version "0.1.1" 1423 | resolved "https://registry.yarnpkg.com/streamifier/-/streamifier-0.1.1.tgz#97e98d8fa4d105d62a2691d1dc07e820db8dfc4f" 1424 | 1425 | string_decoder@~0.10.x: 1426 | version "0.10.31" 1427 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 1428 | 1429 | string_decoder@~1.1.1: 1430 | version "1.1.1" 1431 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1432 | dependencies: 1433 | safe-buffer "~5.1.0" 1434 | 1435 | strip-ansi@^3.0.0: 1436 | version "3.0.1" 1437 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1438 | dependencies: 1439 | ansi-regex "^2.0.0" 1440 | 1441 | strip-bom-stream@^1.0.0: 1442 | version "1.0.0" 1443 | resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" 1444 | dependencies: 1445 | first-chunk-stream "^1.0.0" 1446 | strip-bom "^2.0.0" 1447 | 1448 | strip-bom@^2.0.0: 1449 | version "2.0.0" 1450 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 1451 | dependencies: 1452 | is-utf8 "^0.2.0" 1453 | 1454 | supports-color@4.4.0: 1455 | version "4.4.0" 1456 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" 1457 | dependencies: 1458 | has-flag "^2.0.0" 1459 | 1460 | supports-color@^2.0.0: 1461 | version "2.0.0" 1462 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1463 | 1464 | supports-color@^5.3.0: 1465 | version "5.4.0" 1466 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 1467 | dependencies: 1468 | has-flag "^3.0.0" 1469 | 1470 | tar@^2.2.1: 1471 | version "2.2.1" 1472 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 1473 | dependencies: 1474 | block-stream "*" 1475 | fstream "^1.0.2" 1476 | inherits "2" 1477 | 1478 | through2-filter@^2.0.0: 1479 | version "2.0.0" 1480 | resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" 1481 | dependencies: 1482 | through2 "~2.0.0" 1483 | xtend "~4.0.0" 1484 | 1485 | through2@^0.6.0, through2@~0.6.5: 1486 | version "0.6.5" 1487 | resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" 1488 | dependencies: 1489 | readable-stream ">=1.0.33-1 <1.1.0-0" 1490 | xtend ">=4.0.0 <4.1.0-0" 1491 | 1492 | through2@^2.0.0, through2@^2.0.3, through2@~2.0.0, through2@~2.0.3: 1493 | version "2.0.3" 1494 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" 1495 | dependencies: 1496 | readable-stream "^2.1.5" 1497 | xtend "~4.0.1" 1498 | 1499 | through@2, through@~2.3, through@~2.3.1: 1500 | version "2.3.8" 1501 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1502 | 1503 | tmp@0.0.29: 1504 | version "0.0.29" 1505 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" 1506 | dependencies: 1507 | os-tmpdir "~1.0.1" 1508 | 1509 | to-absolute-glob@^0.1.1: 1510 | version "0.1.1" 1511 | resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" 1512 | dependencies: 1513 | extend-shallow "^2.0.1" 1514 | 1515 | tough-cookie@~2.4.3: 1516 | version "2.4.3" 1517 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" 1518 | dependencies: 1519 | psl "^1.1.24" 1520 | punycode "^1.4.1" 1521 | 1522 | tslib@^1.8.0, tslib@^1.8.1: 1523 | version "1.9.3" 1524 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" 1525 | 1526 | tslint-immutable@^4.4.0: 1527 | version "4.6.0" 1528 | resolved "https://registry.yarnpkg.com/tslint-immutable/-/tslint-immutable-4.6.0.tgz#b93f50961c499e331d919084140f5034b84e80af" 1529 | 1530 | tslint-language-service@^0.9.6: 1531 | version "0.9.9" 1532 | resolved "https://registry.yarnpkg.com/tslint-language-service/-/tslint-language-service-0.9.9.tgz#f546dc38483979e6fb3cfa59584ad8525b3ad4da" 1533 | dependencies: 1534 | mock-require "^2.0.2" 1535 | 1536 | tslint@^5.8.0: 1537 | version "5.11.0" 1538 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed" 1539 | dependencies: 1540 | babel-code-frame "^6.22.0" 1541 | builtin-modules "^1.1.1" 1542 | chalk "^2.3.0" 1543 | commander "^2.12.1" 1544 | diff "^3.2.0" 1545 | glob "^7.1.1" 1546 | js-yaml "^3.7.0" 1547 | minimatch "^3.0.4" 1548 | resolve "^1.3.2" 1549 | semver "^5.3.0" 1550 | tslib "^1.8.0" 1551 | tsutils "^2.27.2" 1552 | 1553 | tsutils@^2.27.2: 1554 | version "2.29.0" 1555 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" 1556 | dependencies: 1557 | tslib "^1.8.1" 1558 | 1559 | tunnel-agent@^0.6.0: 1560 | version "0.6.0" 1561 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1562 | dependencies: 1563 | safe-buffer "^5.0.1" 1564 | 1565 | tunnel@0.0.4: 1566 | version "0.0.4" 1567 | resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.4.tgz#2d3785a158c174c9a16dc2c046ec5fc5f1742213" 1568 | 1569 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1570 | version "0.14.5" 1571 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1572 | 1573 | typed-rest-client@^0.9.0: 1574 | version "0.9.0" 1575 | resolved "https://registry.yarnpkg.com/typed-rest-client/-/typed-rest-client-0.9.0.tgz#f768cc0dc3f4e950f06e04825c36b3e7834aa1f2" 1576 | dependencies: 1577 | tunnel "0.0.4" 1578 | underscore "1.8.3" 1579 | 1580 | typescript-formatter@^7.0.0: 1581 | version "7.2.2" 1582 | resolved "https://registry.yarnpkg.com/typescript-formatter/-/typescript-formatter-7.2.2.tgz#a147181839b7bb09c2377b072f20f6336547c00a" 1583 | dependencies: 1584 | commandpost "^1.0.0" 1585 | editorconfig "^0.15.0" 1586 | 1587 | typescript@^3.0.1: 1588 | version "3.0.1" 1589 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.1.tgz#43738f29585d3a87575520a4b93ab6026ef11fdb" 1590 | 1591 | uc.micro@^1.0.1, uc.micro@^1.0.5: 1592 | version "1.0.5" 1593 | resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.5.tgz#0c65f15f815aa08b560a61ce8b4db7ffc3f45376" 1594 | 1595 | underscore@1.8.3: 1596 | version "1.8.3" 1597 | resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" 1598 | 1599 | underscore@^1.8.3: 1600 | version "1.9.1" 1601 | resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" 1602 | 1603 | unique-stream@^2.0.2: 1604 | version "2.2.1" 1605 | resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" 1606 | dependencies: 1607 | json-stable-stringify "^1.0.0" 1608 | through2-filter "^2.0.0" 1609 | 1610 | url-join@^1.1.0: 1611 | version "1.1.0" 1612 | resolved "https://registry.yarnpkg.com/url-join/-/url-join-1.1.0.tgz#741c6c2f4596c4830d6718460920d0c92202dc78" 1613 | 1614 | url-parse@^1.4.3: 1615 | version "1.4.3" 1616 | resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.3.tgz#bfaee455c889023219d757e045fa6a684ec36c15" 1617 | dependencies: 1618 | querystringify "^2.0.0" 1619 | requires-port "^1.0.0" 1620 | 1621 | util-deprecate@~1.0.1: 1622 | version "1.0.2" 1623 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1624 | 1625 | uuid@^3.3.2: 1626 | version "3.3.2" 1627 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" 1628 | 1629 | vali-date@^1.0.0: 1630 | version "1.0.0" 1631 | resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" 1632 | 1633 | verror@1.10.0: 1634 | version "1.10.0" 1635 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 1636 | dependencies: 1637 | assert-plus "^1.0.0" 1638 | core-util-is "1.0.2" 1639 | extsprintf "^1.2.0" 1640 | 1641 | vinyl-fs@^2.0.0, vinyl-fs@^2.4.3: 1642 | version "2.4.4" 1643 | resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" 1644 | dependencies: 1645 | duplexify "^3.2.0" 1646 | glob-stream "^5.3.2" 1647 | graceful-fs "^4.0.0" 1648 | gulp-sourcemaps "1.6.0" 1649 | is-valid-glob "^0.3.0" 1650 | lazystream "^1.0.0" 1651 | lodash.isequal "^4.0.0" 1652 | merge-stream "^1.0.0" 1653 | mkdirp "^0.5.0" 1654 | object-assign "^4.0.0" 1655 | readable-stream "^2.0.4" 1656 | strip-bom "^2.0.0" 1657 | strip-bom-stream "^1.0.0" 1658 | through2 "^2.0.0" 1659 | through2-filter "^2.0.0" 1660 | vali-date "^1.0.0" 1661 | vinyl "^1.0.0" 1662 | 1663 | vinyl-source-stream@^1.1.0: 1664 | version "1.1.2" 1665 | resolved "https://registry.yarnpkg.com/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz#62b53a135610a896e98ca96bee3a87f008a8e780" 1666 | dependencies: 1667 | through2 "^2.0.3" 1668 | vinyl "^0.4.3" 1669 | 1670 | vinyl@^0.4.3, vinyl@~0.4.6: 1671 | version "0.4.6" 1672 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" 1673 | dependencies: 1674 | clone "^0.2.0" 1675 | clone-stats "^0.0.1" 1676 | 1677 | vinyl@^1.0.0, vinyl@^1.2.0: 1678 | version "1.2.0" 1679 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" 1680 | dependencies: 1681 | clone "^1.0.0" 1682 | clone-stats "^0.0.1" 1683 | replace-ext "0.0.1" 1684 | 1685 | vinyl@^2.0.1, vinyl@^2.0.2: 1686 | version "2.2.0" 1687 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" 1688 | dependencies: 1689 | clone "^2.1.1" 1690 | clone-buffer "^1.0.0" 1691 | clone-stats "^1.0.0" 1692 | cloneable-readable "^1.0.0" 1693 | remove-trailing-separator "^1.0.1" 1694 | replace-ext "^1.0.0" 1695 | 1696 | vsce@^1.37.1: 1697 | version "1.46.0" 1698 | resolved "https://registry.yarnpkg.com/vsce/-/vsce-1.46.0.tgz#709ef40540c53d78e4896fd76e09c23e50ddd538" 1699 | dependencies: 1700 | cheerio "^1.0.0-rc.1" 1701 | commander "^2.8.1" 1702 | denodeify "^1.2.1" 1703 | glob "^7.0.6" 1704 | lodash "^4.17.10" 1705 | markdown-it "^8.3.1" 1706 | mime "^1.3.4" 1707 | minimatch "^3.0.3" 1708 | osenv "^0.1.3" 1709 | parse-semver "^1.1.1" 1710 | read "^1.0.7" 1711 | semver "^5.1.0" 1712 | tmp "0.0.29" 1713 | url-join "^1.1.0" 1714 | vso-node-api "6.1.2-preview" 1715 | yauzl "^2.3.1" 1716 | yazl "^2.2.2" 1717 | 1718 | vscode@^1.1.5: 1719 | version "1.1.21" 1720 | resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.21.tgz#1c8253d6238aefb4112d6e58cf975ad25313dafc" 1721 | dependencies: 1722 | glob "^7.1.2" 1723 | gulp-chmod "^2.0.0" 1724 | gulp-filter "^5.0.1" 1725 | gulp-gunzip "1.0.0" 1726 | gulp-remote-src-vscode "^0.5.0" 1727 | gulp-symdest "^1.1.0" 1728 | gulp-untar "^0.0.7" 1729 | gulp-vinyl-zip "^2.1.0" 1730 | mocha "^4.0.1" 1731 | request "^2.83.0" 1732 | semver "^5.4.1" 1733 | source-map-support "^0.5.0" 1734 | url-parse "^1.4.3" 1735 | vinyl-source-stream "^1.1.0" 1736 | 1737 | vso-node-api@6.1.2-preview: 1738 | version "6.1.2-preview" 1739 | resolved "https://registry.yarnpkg.com/vso-node-api/-/vso-node-api-6.1.2-preview.tgz#aab3546df2451ecd894e071bb99b5df19c5fa78f" 1740 | dependencies: 1741 | q "^1.0.1" 1742 | tunnel "0.0.4" 1743 | typed-rest-client "^0.9.0" 1744 | underscore "^1.8.3" 1745 | 1746 | which@^2.0.1: 1747 | version "2.0.1" 1748 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.1.tgz#f1cf94d07a8e571b6ff006aeb91d0300c47ef0a4" 1749 | integrity sha512-N7GBZOTswtB9lkQBZA4+zAXrjEIWAUOB93AvzUiudRzRxhUdLURQ7D/gAIMY1gatT/LTbmbcv8SiYazy3eYB7w== 1750 | dependencies: 1751 | isexe "^2.0.0" 1752 | 1753 | wrappy@1: 1754 | version "1.0.2" 1755 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1756 | 1757 | "xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.0, xtend@~4.0.1: 1758 | version "4.0.1" 1759 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 1760 | 1761 | yallist@^2.1.2: 1762 | version "2.1.2" 1763 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 1764 | 1765 | yauzl@^2.2.1, yauzl@^2.3.1: 1766 | version "2.10.0" 1767 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" 1768 | dependencies: 1769 | buffer-crc32 "~0.2.3" 1770 | fd-slicer "~1.1.0" 1771 | 1772 | yazl@^2.2.1, yazl@^2.2.2: 1773 | version "2.4.3" 1774 | resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.4.3.tgz#ec26e5cc87d5601b9df8432dbdd3cd2e5173a071" 1775 | dependencies: 1776 | buffer-crc32 "~0.2.3" 1777 | --------------------------------------------------------------------------------