├── .gitignore ├── .vscode ├── settings.json └── launch.json ├── img └── icon.png ├── .vscodeignore ├── CHANGELOG.md ├── configurations ├── styled-jsx-configuration.json └── language-configuration.json ├── client ├── tsconfig.json └── src │ ├── postcssMain.ts │ └── colorDecorators.ts ├── server ├── tsconfig.json ├── .vscode │ └── launch.json └── src │ ├── languageModelCache.ts │ └── postcssServerMain.ts ├── README.md ├── LICENSE ├── syntaxes ├── styled.jsx.tmLanguage ├── postcss.tmLanguage └── sugarss.tmLanguage ├── package.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | out 3 | *.vsix 4 | *.log -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "vsicons.presets.angular": false 3 | } -------------------------------------------------------------------------------- /img/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MhMadHamster/vscode-postcss-language/HEAD/img/icon.png -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | **/*.ts 3 | **/**/*.ts 4 | **/tsconfig.json 5 | **/src 6 | .gitignore 7 | *.vsix 8 | *.log -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## Change Log 2 | ### [2.1.0] 3 | - Updated dependencies 4 | 5 | ### [2.0.0] 6 | #### Added 7 | - Support for color decorators and CSS IntelliSense. 8 | -------------------------------------------------------------------------------- /configurations/styled-jsx-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "blockComment": [ "/*", "*/" ] 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ] 10 | } -------------------------------------------------------------------------------- /client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "commonjs", 5 | "moduleResolution": "node", 6 | "outDir": "./out", 7 | "lib": [ 8 | "es5", 9 | "es6" 10 | ] 11 | }, 12 | "include": [ 13 | "src/**/*" 14 | ] 15 | } -------------------------------------------------------------------------------- /server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "commonjs", 5 | "moduleResolution": "node", 6 | "outDir": "./out", 7 | "lib": [ 8 | "es5", 9 | "es6" 10 | ] 11 | }, 12 | "include": [ 13 | "src/**/*" 14 | ] 15 | } -------------------------------------------------------------------------------- /server/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | // List of configurations. Add new configurations or edit existing ones. 4 | "configurations": [ 5 | { 6 | "name": "Attach", 7 | "type": "node", 8 | "request": "attach", 9 | "port": 6004, 10 | "sourceMaps": true, 11 | "outDir": "${workspaceRoot}/out" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that launches the extension inside a new window 2 | { 3 | "version": "0.1.0", 4 | "configurations": [ 5 | { 6 | "name": "Launch Extension", 7 | "type": "extensionHost", 8 | "request": "launch", 9 | "runtimeExecutable": "${execPath}", 10 | "args": ["--extensionDevelopmentPath=${workspaceRoot}" ], 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /configurations/language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | // symbols used for start and end a block comment. Remove this entry if your language does not support block comments 4 | "blockComment": [ "/*", "*/" ] 5 | }, 6 | // symbols used as brackets 7 | "brackets": [ 8 | ["{", "}"], 9 | ["[", "]"], 10 | ["(", ")"] 11 | ], 12 | // symbols that are auto closed when typing 13 | "autoClosingPairs": [ 14 | ["{", "}"], 15 | ["[", "]"], 16 | ["(", ")"], 17 | ["\"", "\""], 18 | ["'", "'"] 19 | ], 20 | // symbols that that can be used to surround a selection 21 | "surroundingPairs": [ 22 | ["{", "}"], 23 | ["[", "]"], 24 | ["(", ")"], 25 | ["\"", "\""], 26 | ["'", "'"] 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # postcss-language 2 | 3 | VSCode language support for PostCSS and SugarSS 4 | 5 | package is based on [Syntax Highlighting for PostCSS](https://github.com/hudochenkov/Syntax-highlighting-for-PostCSS) 6 | 7 | ## Features 8 | 9 | Syntax highlighting for: 10 | ``.pcss`` 11 | ``.postcss`` 12 | ``.sss`` 13 | 14 | if you want this plugin to work for ``*.css`` file you need manually change "Language mode" in VSCode to ``PostCSS`` or add 15 | ``` 16 | "files.associations": { 17 | "*.css": "postcss" 18 | } 19 | ``` 20 | to your ``settings.json`` (File -> Preferences -> Settings) if you want to treat all css files as postcss by default 21 | 22 | #### Changed 23 | - Extension now using a language-server(based on vscode-css-extension and vscode-css-languageservice) and a language-client for an additional functionality, such as color decorators. 24 | 25 | ## Known Issues 26 | 27 | semicolon automatically added when expanding abbreviation in *.sss files 28 | 29 | ### [Changelog](./CHANGELOG.md) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Maxim Burmagin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /syntaxes/styled.jsx.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | js 8 | jsx 9 | ts 10 | tsx 11 | 12 | injectionSelector 13 | L:source -comment 14 | patterns 15 | 16 | 17 | begin 18 | \s*+((?<=<style jsx>{)|(?<=<style jsx global>{))\s*(`) 19 | beginCaptures 20 | 21 | 1 22 | 23 | name 24 | entity.name.tag.js 25 | 26 | 2 27 | 28 | name 29 | punctuation.definition.quasi.begin.js 30 | 31 | 32 | contentName 33 | source.jsx.styled 34 | end 35 | \s*(?<=[^\\]\\\\|[^\\]|^\\\\|^)((`)) 36 | endCaptures 37 | 38 | 1 39 | 40 | name 41 | punctuation.definition.quasi.end.js 42 | 43 | 44 | patterns 45 | 46 | 47 | include 48 | source.css.postcss 49 | 50 | 51 | 52 | 53 | scopeName 54 | styled.jsx 55 | 56 | -------------------------------------------------------------------------------- /server/src/languageModelCache.ts: -------------------------------------------------------------------------------- 1 | /*--------------------------------------------------------------------------------------------- 2 | * Copyright (c) Microsoft Corporation. All rights reserved. 3 | * Licensed under the MIT License. See License.txt in the project root for license information. 4 | *--------------------------------------------------------------------------------------------*/ 5 | 'use strict'; 6 | 7 | import { TextDocument } from 'vscode-languageserver'; 8 | 9 | export interface LanguageModelCache { 10 | get(document: TextDocument): T; 11 | onDocumentRemoved(document: TextDocument): void; 12 | dispose(): void; 13 | } 14 | 15 | export function getLanguageModelCache(maxEntries: number, cleanupIntervalTimeInSec: number, parse: (document: TextDocument) => T): LanguageModelCache { 16 | let languageModels: { [uri: string]: { version: number, languageId: string, cTime: number, languageModel: T } } = {}; 17 | let nModels = 0; 18 | 19 | let cleanupInterval = void 0; 20 | if (cleanupIntervalTimeInSec > 0) { 21 | cleanupInterval = setInterval(() => { 22 | let cutoffTime = Date.now() - cleanupIntervalTimeInSec * 1000; 23 | let uris = Object.keys(languageModels); 24 | for (let uri of uris) { 25 | let languageModelInfo = languageModels[uri]; 26 | if (languageModelInfo.cTime < cutoffTime) { 27 | delete languageModels[uri]; 28 | nModels--; 29 | } 30 | } 31 | }, cleanupIntervalTimeInSec * 1000); 32 | } 33 | 34 | return { 35 | get(document: TextDocument): T { 36 | let version = document.version; 37 | let languageId = document.languageId; 38 | let languageModelInfo = languageModels[document.uri]; 39 | if (languageModelInfo && languageModelInfo.version === version && languageModelInfo.languageId === languageId) { 40 | languageModelInfo.cTime = Date.now(); 41 | return languageModelInfo.languageModel; 42 | } 43 | let languageModel = parse(document); 44 | languageModels[document.uri] = { languageModel, version, languageId, cTime: Date.now() }; 45 | if (!languageModelInfo) { 46 | nModels++; 47 | } 48 | 49 | if (nModels === maxEntries) { 50 | let oldestTime = Number.MAX_VALUE; 51 | let oldestUri = null; 52 | for (let uri in languageModels) { 53 | let languageModelInfo = languageModels[uri]; 54 | if (languageModelInfo.cTime < oldestTime) { 55 | oldestUri = uri; 56 | oldestTime = languageModelInfo.cTime; 57 | } 58 | } 59 | if (oldestUri) { 60 | delete languageModels[oldestUri]; 61 | nModels--; 62 | } 63 | } 64 | return languageModel; 65 | 66 | }, 67 | onDocumentRemoved(document: TextDocument) { 68 | let uri = document.uri; 69 | if (languageModels[uri]) { 70 | delete languageModels[uri]; 71 | nModels--; 72 | } 73 | }, 74 | dispose() { 75 | if (typeof cleanupInterval !== 'undefined') { 76 | clearInterval(cleanupInterval); 77 | cleanupInterval = void 0; 78 | languageModels = {}; 79 | nModels = 0; 80 | } 81 | } 82 | }; 83 | } -------------------------------------------------------------------------------- /client/src/postcssMain.ts: -------------------------------------------------------------------------------- 1 | /*--------------------------------------------------------------------------------------------- 2 | * Copyright (c) Microsoft Corporation. All rights reserved. 3 | * Licensed under the MIT License. See License.txt in the project root for license information. 4 | *--------------------------------------------------------------------------------------------*/ 5 | 'use strict'; 6 | 7 | import * as path from 'path'; 8 | 9 | import { languages, window, commands, workspace, ExtensionContext } from 'vscode'; 10 | import { LanguageClient, LanguageClientOptions, ServerOptions, TransportKind, RequestType, Range, TextEdit } from 'vscode-languageclient'; 11 | import { activateColorDecorations } from './colorDecorators'; 12 | 13 | import * as nls from 'vscode-nls'; 14 | let localize = nls.loadMessageBundle(); 15 | 16 | namespace ColorSymbolRequest { 17 | export const type: RequestType = new RequestType('css/colorSymbols'); 18 | } 19 | 20 | // this method is called when vs code is activated 21 | export function activate(context: ExtensionContext) { 22 | 23 | // The server is implemented in node 24 | let serverModule = context.asAbsolutePath(path.join('server', 'out', 'postcssServerMain.js')); 25 | // The debug options for the server 26 | let debugOptions = { execArgv: ['--nolazy', '--debug=6004'] }; 27 | 28 | // If the extension is launch in debug mode the debug server options are use 29 | // Otherwise the run options are used 30 | let serverOptions: ServerOptions = { 31 | run: { module: serverModule, transport: TransportKind.ipc }, 32 | debug: { module: serverModule, transport: TransportKind.ipc, options: debugOptions } 33 | }; 34 | 35 | // Options to control the language client 36 | let clientOptions: LanguageClientOptions = { 37 | documentSelector: ['postcss'], 38 | synchronize: { 39 | configurationSection: ['postcss'] 40 | }, 41 | initializationOptions: { 42 | } 43 | }; 44 | 45 | // Create the language client and start the client. 46 | let client = new LanguageClient('postcss', localize('postcssserver.name', 'PostCSS Language Server'), serverOptions, clientOptions); 47 | 48 | let disposable = client.start(); 49 | // Push the disposable to the context's subscriptions so that the 50 | // client can be deactivated on extension deactivation 51 | context.subscriptions.push(disposable); 52 | 53 | client.onReady().then(_ => { 54 | let colorRequestor = (uri: string) => { 55 | return client.sendRequest(ColorSymbolRequest.type, uri).then(ranges => ranges.map(client.protocol2CodeConverter.asRange)); 56 | }; 57 | let isDecoratorEnabled = (languageId: string) => { 58 | return workspace.getConfiguration().get('css.colorDecorators.enable'); 59 | }; 60 | disposable = activateColorDecorations(colorRequestor, { postcss: true }, isDecoratorEnabled); 61 | context.subscriptions.push(disposable); 62 | }); 63 | 64 | languages.setLanguageConfiguration('postcss', { 65 | wordPattern: /(#?-?\d*\.\d\w*%?)|(::?[\w-]*(?=[^,{;]*[,{]))|(([@#.!])?[\w-?]+%?|[@#!.])/g 66 | }); 67 | 68 | commands.registerCommand('_postcss.applyCodeAction', applyCodeAction); 69 | 70 | function applyCodeAction(uri: string, documentVersion: number, edits: TextEdit[]) { 71 | let textEditor = window.activeTextEditor; 72 | if (textEditor && textEditor.document.uri.toString() === uri) { 73 | if (textEditor.document.version !== documentVersion) { 74 | window.showInformationMessage(`CSS fix is outdated and can't be applied to the document.`); 75 | } 76 | textEditor.edit(mutator => { 77 | for (let edit of edits) { 78 | mutator.replace(client.protocol2CodeConverter.asRange(edit.range), edit.newText); 79 | } 80 | }).then(success => { 81 | if (!success) { 82 | window.showErrorMessage('Failed to apply CSS fix to the document. Please consider opening an issue with steps to reproduce.'); 83 | } 84 | }); 85 | } 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "postcss-language", 3 | "displayName": "postcss-sugarss-language", 4 | "description": "postcss and sugarss syntax support extension for VSCode", 5 | "version": "2.1.0", 6 | "publisher": "mhmadhamster", 7 | "icon": "img/icon.png", 8 | "license": "MIT", 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/MhMadHamster/vscode-postcss-language" 12 | }, 13 | "scripts": { 14 | "postinstall": "node ./node_modules/vscode/bin/install", 15 | "compile:server": "tsc -p ./server", 16 | "compile:client": "tsc -p ./client", 17 | "compile": "yarn run compile:server && yarn run compile:client", 18 | "watch:client": "tsc -p ./client -w", 19 | "watch:server": "tsc -p ./server -w" 20 | }, 21 | "keywords": [ 22 | "postcss", 23 | "sugarss", 24 | "cssnext", 25 | "syntax", 26 | "grammar", 27 | "language", 28 | "vscode" 29 | ], 30 | "engines": { 31 | "vscode": "^1.18.x" 32 | }, 33 | "categories": [ 34 | "Programming Languages" 35 | ], 36 | "activationEvents": [ 37 | "onLanguage:postcss" 38 | ], 39 | "main": "./client/out/postcssMain", 40 | "contributes": { 41 | "languages": [ 42 | { 43 | "id": "postcss", 44 | "aliases": [ 45 | "PostCSS", 46 | "postcss" 47 | ], 48 | "extensions": [ 49 | ".pcss", 50 | ".postcss" 51 | ], 52 | "configuration": "./configurations/language-configuration.json" 53 | }, 54 | { 55 | "id": "sugarss", 56 | "aliases": [ 57 | "SugarSS", 58 | "sugarss" 59 | ], 60 | "extensions": [ 61 | ".sss" 62 | ], 63 | "configuration": "./configurations/language-configuration.json" 64 | }, 65 | { 66 | "id": "source.jsx.styled", 67 | "aliases": [ 68 | "PostCSS (jsx styled)" 69 | ], 70 | "configuration": "./configurations/styled-jsx-configuration.json" 71 | } 72 | ], 73 | "grammars": [ 74 | { 75 | "language": "postcss", 76 | "scopeName": "source.css.postcss", 77 | "path": "./syntaxes/postcss.tmLanguage" 78 | }, 79 | { 80 | "language": "sugarss", 81 | "scopeName": "source.css.sugarss", 82 | "path": "./syntaxes/sugarss.tmLanguage" 83 | }, 84 | { 85 | "injectTo": [ 86 | "source.jsx", 87 | "source.tsx", 88 | "source.js", 89 | "source.ts", 90 | "source.es6" 91 | ], 92 | "scopeName": "styled.jsx", 93 | "path": "./syntaxes/styled.jsx.tmLanguage" 94 | } 95 | ], 96 | "configuration": { 97 | "type": "object", 98 | "title": "PostCSS Configuration", 99 | "properties": { 100 | "postcss.validate": { 101 | "type": "boolean", 102 | "default": true, 103 | "description": "Validation for PostCSS files" 104 | } 105 | } 106 | } 107 | }, 108 | "devDependencies": { 109 | "@types/node": "^9.6.1", 110 | "typescript": "^2.8.1", 111 | "vscode": "^1.1.14" 112 | }, 113 | "dependencies": { 114 | "vscode-css-languageservice": "^3.0.8", 115 | "vscode-languageclient": "^4.0.1", 116 | "vscode-languageserver": "^4.0.0", 117 | "vscode-nls": "^3.2.2" 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /client/src/colorDecorators.ts: -------------------------------------------------------------------------------- 1 | /*--------------------------------------------------------------------------------------------- 2 | * Copyright (c) Microsoft Corporation. All rights reserved. 3 | * Licensed under the MIT License. See License.txt in the project root for license information. 4 | *--------------------------------------------------------------------------------------------*/ 5 | 'use strict'; 6 | 7 | import { window, workspace, DecorationOptions, DecorationRenderOptions, Disposable, Range, TextDocument } from 'vscode'; 8 | 9 | const MAX_DECORATORS = 500; 10 | 11 | let decorationType: DecorationRenderOptions = { 12 | before: { 13 | contentText: ' ', 14 | border: 'solid 0.1em #000', 15 | margin: '0.1em 0.2em 0 0.2em', 16 | width: '0.8em', 17 | height: '0.8em' 18 | }, 19 | dark: { 20 | before: { 21 | border: 'solid 0.1em #eee' 22 | } 23 | } 24 | }; 25 | 26 | export function activateColorDecorations(decoratorProvider: (uri: string) => Thenable, supportedLanguages: { [id: string]: boolean }, isDecoratorEnabled: (languageId: string) => boolean): Disposable { 27 | 28 | let disposables: Disposable[] = []; 29 | 30 | let colorsDecorationType = window.createTextEditorDecorationType(decorationType); 31 | disposables.push(colorsDecorationType); 32 | 33 | let decoratorEnablement = {}; 34 | for (let languageId in supportedLanguages) { 35 | decoratorEnablement[languageId] = isDecoratorEnabled(languageId); 36 | } 37 | 38 | let pendingUpdateRequests: { [key: string]: NodeJS.Timer; } = {}; 39 | 40 | window.onDidChangeVisibleTextEditors(editors => { 41 | for (let editor of editors) { 42 | triggerUpdateDecorations(editor.document); 43 | } 44 | }, null, disposables); 45 | 46 | workspace.onDidChangeTextDocument(event => triggerUpdateDecorations(event.document), null, disposables); 47 | 48 | // track open and close for document languageId changes 49 | workspace.onDidCloseTextDocument(event => triggerUpdateDecorations(event, true)); 50 | workspace.onDidOpenTextDocument(event => triggerUpdateDecorations(event)); 51 | 52 | workspace.onDidChangeConfiguration(_ => { 53 | let hasChanges = false; 54 | for (let languageId in supportedLanguages) { 55 | let prev = decoratorEnablement[languageId]; 56 | let curr = isDecoratorEnabled(languageId); 57 | if (prev !== curr) { 58 | decoratorEnablement[languageId] = curr; 59 | hasChanges = true; 60 | } 61 | } 62 | if (hasChanges) { 63 | updateAllVisibleEditors(true); 64 | } 65 | }, null, disposables); 66 | 67 | updateAllVisibleEditors(false); 68 | 69 | function updateAllVisibleEditors(settingsChanges: boolean) { 70 | window.visibleTextEditors.forEach(editor => { 71 | if (editor.document) { 72 | triggerUpdateDecorations(editor.document, settingsChanges); 73 | } 74 | }); 75 | } 76 | 77 | function triggerUpdateDecorations(document: TextDocument, settingsChanges = false) { 78 | let triggerUpdate = supportedLanguages[document.languageId] && (decoratorEnablement[document.languageId] || settingsChanges); 79 | if (triggerUpdate) { 80 | let documentUriStr = document.uri.toString(); 81 | let timeout = pendingUpdateRequests[documentUriStr]; 82 | if (typeof timeout !== 'undefined') { 83 | clearTimeout(timeout); 84 | } 85 | pendingUpdateRequests[documentUriStr] = setTimeout(() => { 86 | // check if the document is in use by an active editor 87 | for (let editor of window.visibleTextEditors) { 88 | if (editor.document && documentUriStr === editor.document.uri.toString()) { 89 | if (decoratorEnablement[editor.document.languageId]) { 90 | updateDecorationForEditor(documentUriStr, editor.document.version); 91 | break; 92 | } else { 93 | editor.setDecorations(colorsDecorationType, []); 94 | } 95 | } 96 | } 97 | delete pendingUpdateRequests[documentUriStr]; 98 | }, 500); 99 | } 100 | } 101 | 102 | function updateDecorationForEditor(contentUri: string, documentVersion: number) { 103 | decoratorProvider(contentUri).then(ranges => { 104 | for (let editor of window.visibleTextEditors) { 105 | let document = editor.document; 106 | 107 | if (document && document.version === documentVersion && contentUri === document.uri.toString()) { 108 | let decorations = ranges.slice(0, MAX_DECORATORS).map(range => { 109 | let color = document.getText(range); 110 | return { 111 | range: range, 112 | renderOptions: { 113 | before: { 114 | backgroundColor: color 115 | } 116 | } 117 | }; 118 | }); 119 | editor.setDecorations(colorsDecorationType, decorations); 120 | } 121 | } 122 | }); 123 | } 124 | 125 | return Disposable.from(...disposables); 126 | } -------------------------------------------------------------------------------- /server/src/postcssServerMain.ts: -------------------------------------------------------------------------------- 1 | /*--------------------------------------------------------------------------------------------- 2 | * Copyright (c) Microsoft Corporation. All rights reserved. 3 | * Licensed under the MIT License. See License.txt in the project root for license information. 4 | *--------------------------------------------------------------------------------------------*/ 5 | 'use strict'; 6 | 7 | import { 8 | createConnection, IConnection, Range, 9 | TextDocuments, TextDocument, InitializeParams, InitializeResult, RequestType 10 | } from 'vscode-languageserver'; 11 | 12 | import { getSCSSLanguageService, LanguageSettings, LanguageService, Stylesheet } from 'vscode-css-languageservice'; 13 | import { getLanguageModelCache } from './languageModelCache'; 14 | 15 | namespace ColorSymbolRequest { 16 | export const type: RequestType = new RequestType('css/colorSymbols'); 17 | } 18 | 19 | export interface Settings { 20 | css: LanguageSettings; 21 | } 22 | 23 | // Create a connection for the server. 24 | let connection: IConnection = createConnection(); 25 | 26 | console.log = connection.console.log.bind(connection.console); 27 | console.error = connection.console.error.bind(connection.console); 28 | 29 | // Create a simple text document manager. The text document manager 30 | // supports full document sync only 31 | let documents: TextDocuments = new TextDocuments(); 32 | // Make the text document manager listen on the connection 33 | // for open, change and close text document events 34 | documents.listen(connection); 35 | 36 | let stylesheets = getLanguageModelCache(10, 60, document => getLanguageService(document).parseStylesheet(document)); 37 | documents.onDidClose(e => { 38 | stylesheets.onDocumentRemoved(e.document); 39 | }); 40 | connection.onShutdown(() => { 41 | stylesheets.dispose(); 42 | }); 43 | 44 | // After the server has started the client sends an initilize request. The server receives 45 | // in the passed params the rootPath of the workspace plus the client capabilities. 46 | connection.onInitialize((params: InitializeParams): InitializeResult => { 47 | let snippetSupport = params.capabilities && params.capabilities.textDocument && params.capabilities.textDocument.completion && params.capabilities.textDocument.completion.completionItem && params.capabilities.textDocument.completion.completionItem.snippetSupport; 48 | return { 49 | capabilities: { 50 | // Tell the client that the server works in FULL text document sync mode 51 | textDocumentSync: documents.syncKind, 52 | completionProvider: snippetSupport ? { resolveProvider: false } : null, 53 | hoverProvider: true, 54 | documentSymbolProvider: true, 55 | referencesProvider: true, 56 | definitionProvider: true, 57 | documentHighlightProvider: true, 58 | codeActionProvider: true, 59 | renameProvider: true 60 | } 61 | }; 62 | }); 63 | 64 | let languageServices: { [id: string]: LanguageService } = { 65 | css: getSCSSLanguageService(), 66 | }; 67 | 68 | function getLanguageService(document: TextDocument) { 69 | let service = languageServices['css']; 70 | return service; 71 | } 72 | 73 | // The settings have changed. Is send on server activation as well. 74 | connection.onDidChangeConfiguration(change => { 75 | updateConfiguration(change.settings); 76 | }); 77 | 78 | function updateConfiguration(settings: Settings) { 79 | settings['css'] = settings['postcss']; 80 | for (let languageId in languageServices) { 81 | languageServices[languageId].configure(settings[languageId]); 82 | } 83 | // Revalidate any open text documents 84 | documents.all().forEach(triggerValidation); 85 | } 86 | 87 | let pendingValidationRequests: { [uri: string]: NodeJS.Timer } = {}; 88 | const validationDelayMs = 200; 89 | 90 | // The content of a text document has changed. This event is emitted 91 | // when the text document first opened or when its content has changed. 92 | documents.onDidChangeContent(change => { 93 | triggerValidation(change.document); 94 | }); 95 | 96 | // a document has closed: clear all diagnostics 97 | documents.onDidClose(event => { 98 | cleanPendingValidation(event.document); 99 | connection.sendDiagnostics({ uri: event.document.uri, diagnostics: [] }); 100 | }); 101 | 102 | function cleanPendingValidation(textDocument: TextDocument): void { 103 | let request = pendingValidationRequests[textDocument.uri]; 104 | if (request) { 105 | clearTimeout(request); 106 | delete pendingValidationRequests[textDocument.uri]; 107 | } 108 | } 109 | 110 | function triggerValidation(textDocument: TextDocument): void { 111 | cleanPendingValidation(textDocument); 112 | pendingValidationRequests[textDocument.uri] = setTimeout(() => { 113 | delete pendingValidationRequests[textDocument.uri]; 114 | validateTextDocument(textDocument); 115 | }, validationDelayMs); 116 | } 117 | 118 | function validateTextDocument(textDocument: TextDocument): void { 119 | let stylesheet = stylesheets.get(textDocument); 120 | let diagnostics = getLanguageService(textDocument).doValidation(textDocument, stylesheet); 121 | // Send the computed diagnostics to VSCode. 122 | connection.sendDiagnostics({ uri: textDocument.uri, diagnostics }); 123 | } 124 | 125 | connection.onCompletion(textDocumentPosition => { 126 | let document = documents.get(textDocumentPosition.textDocument.uri); 127 | let stylesheet = stylesheets.get(document); 128 | return getLanguageService(document).doComplete(document, textDocumentPosition.position, stylesheet); 129 | }); 130 | 131 | connection.onHover(textDocumentPosition => { 132 | let document = documents.get(textDocumentPosition.textDocument.uri); 133 | let styleSheet = stylesheets.get(document); 134 | return getLanguageService(document).doHover(document, textDocumentPosition.position, styleSheet); 135 | }); 136 | 137 | connection.onDocumentSymbol(documentSymbolParams => { 138 | let document = documents.get(documentSymbolParams.textDocument.uri); 139 | let stylesheet = stylesheets.get(document); 140 | return getLanguageService(document).findDocumentSymbols(document, stylesheet); 141 | }); 142 | 143 | connection.onDefinition(documentSymbolParams => { 144 | let document = documents.get(documentSymbolParams.textDocument.uri); 145 | let stylesheet = stylesheets.get(document); 146 | return getLanguageService(document).findDefinition(document, documentSymbolParams.position, stylesheet); 147 | }); 148 | 149 | connection.onDocumentHighlight(documentSymbolParams => { 150 | let document = documents.get(documentSymbolParams.textDocument.uri); 151 | let stylesheet = stylesheets.get(document); 152 | return getLanguageService(document).findDocumentHighlights(document, documentSymbolParams.position, stylesheet); 153 | }); 154 | 155 | connection.onReferences(referenceParams => { 156 | let document = documents.get(referenceParams.textDocument.uri); 157 | let stylesheet = stylesheets.get(document); 158 | return getLanguageService(document).findReferences(document, referenceParams.position, stylesheet); 159 | }); 160 | 161 | connection.onCodeAction(codeActionParams => { 162 | let document = documents.get(codeActionParams.textDocument.uri); 163 | let stylesheet = stylesheets.get(document); 164 | return getLanguageService(document).doCodeActions(document, codeActionParams.range, codeActionParams.context, stylesheet); 165 | }); 166 | 167 | connection.onRequest(ColorSymbolRequest.type, uri => { 168 | let document = documents.get(uri); 169 | if (document) { 170 | let stylesheet = stylesheets.get(document); 171 | return getLanguageService(document).findColorSymbols(document, stylesheet); 172 | } 173 | return []; 174 | }); 175 | 176 | connection.onRenameRequest(renameParameters => { 177 | let document = documents.get(renameParameters.textDocument.uri); 178 | let stylesheet = stylesheets.get(document); 179 | return getLanguageService(document).doRename(document, renameParameters.position, renameParameters.newName, stylesheet); 180 | }); 181 | 182 | // Listen on the connection 183 | connection.listen(); -------------------------------------------------------------------------------- /syntaxes/postcss.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | css 8 | pcss 9 | postcss 10 | 11 | foldingStartMarker 12 | /\*|^#|^\*|^\b|^\. 13 | foldingStopMarker 14 | \*/|^\s*$ 15 | name 16 | PostCSS 17 | patterns 18 | 19 | 20 | begin 21 | /\* 22 | end 23 | \*/ 24 | name 25 | comment.block.postcss 26 | patterns 27 | 28 | 29 | include 30 | #comment-tag 31 | 32 | 33 | 34 | 35 | include 36 | #double-slash 37 | 38 | 39 | include 40 | #double-quoted 41 | 42 | 43 | include 44 | #single-quoted 45 | 46 | 47 | include 48 | #interpolation 49 | 50 | 51 | include 52 | #placeholder-selector 53 | 54 | 55 | include 56 | #variable 57 | 58 | 59 | include 60 | #variable-root-css 61 | 62 | 63 | include 64 | #numeric 65 | 66 | 67 | include 68 | #unit 69 | 70 | 71 | include 72 | #flag 73 | 74 | 75 | include 76 | #dotdotdot 77 | 78 | 79 | begin 80 | @include 81 | end 82 | (?=\n|\(|{|;) 83 | name 84 | support.function.name.postcss.library 85 | captures 86 | 87 | 0 88 | 89 | name 90 | keyword.control.at-rule.css.postcss 91 | 92 | 93 | 94 | 95 | begin 96 | @mixin|@function 97 | end 98 | $\n?|(?=\(|{) 99 | name 100 | support.function.name.postcss.no-completions 101 | captures 102 | 103 | 0 104 | 105 | name 106 | keyword.control.at-rule.css.postcss 107 | 108 | 109 | patterns 110 | 111 | 112 | match 113 | [\w-]+ 114 | name 115 | entity.name.function 116 | 117 | 118 | 119 | 120 | match 121 | (?<=@import)\s[\w/.*-]+ 122 | name 123 | string.quoted.double.css.postcss 124 | 125 | 126 | begin 127 | @ 128 | end 129 | $\n?|\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\s|,))|(?=;) 130 | name 131 | keyword.control.at-rule.css.postcss 132 | 133 | 134 | begin 135 | # 136 | end 137 | $\n?|(?=\s|,|;|\(|\)|\.|\[|{|>) 138 | name 139 | entity.other.attribute-name.id.css.postcss 140 | patterns 141 | 142 | 143 | include 144 | #interpolation 145 | 146 | 147 | include 148 | #pseudo-class 149 | 150 | 151 | 152 | 153 | begin 154 | \.|(?<=&)(-|_) 155 | end 156 | $\n?|(?=\s|,|;|\(|\)|\[|{|>) 157 | name 158 | entity.other.attribute-name.class.css.postcss 159 | patterns 160 | 161 | 162 | include 163 | #interpolation 164 | 165 | 166 | include 167 | #pseudo-class 168 | 169 | 170 | 171 | 172 | begin 173 | \[ 174 | end 175 | \] 176 | name 177 | entity.other.attribute-selector.postcss 178 | patterns 179 | 180 | 181 | include 182 | #double-quoted 183 | 184 | 185 | include 186 | #single-quoted 187 | 188 | 189 | match 190 | \^|\$|\*|~ 191 | name 192 | keyword.other.regex.postcss 193 | 194 | 195 | 196 | 197 | match 198 | (?<=\]|\)|not\(|\*|>|>\s):[a-z:-]+|(::|:-)[a-z:-]+ 199 | name 200 | entity.other.attribute-name.pseudo-class.css.postcss 201 | 202 | 203 | begin 204 | : 205 | end 206 | $\n?|(?=;|\s\(|and\(|{|}|\),) 207 | name 208 | meta.property-list.css.postcss 209 | patterns 210 | 211 | 212 | include 213 | #double-slash 214 | 215 | 216 | include 217 | #double-quoted 218 | 219 | 220 | include 221 | #single-quoted 222 | 223 | 224 | include 225 | #interpolation 226 | 227 | 228 | include 229 | #variable 230 | 231 | 232 | include 233 | #rgb-value 234 | 235 | 236 | include 237 | #numeric 238 | 239 | 240 | include 241 | #unit 242 | 243 | 244 | include 245 | #flag 246 | 247 | 248 | include 249 | #function 250 | 251 | 252 | include 253 | #function-content 254 | 255 | 256 | include 257 | #function-content-var 258 | 259 | 260 | include 261 | #operator 262 | 263 | 264 | include 265 | #parent-selector 266 | 267 | 268 | include 269 | #property-value 270 | 271 | 272 | 273 | 274 | include 275 | #rgb-value 276 | 277 | 278 | include 279 | #function 280 | 281 | 282 | include 283 | #function-content 284 | 285 | 286 | begin 287 | (?<!\-|\()\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|x)\b(?!-|\)|:\s)|& 288 | end 289 | (?=\s|,|;|\(|\)|\.|\[|{|>|-|_) 290 | name 291 | entity.name.tag.css.postcss.symbol 292 | patterns 293 | 294 | 295 | include 296 | #interpolation 297 | 298 | 299 | include 300 | #pseudo-class 301 | 302 | 303 | 304 | 305 | include 306 | #operator 307 | 308 | 309 | match 310 | [a-z-]+((?=:|#{)) 311 | name 312 | support.type.property-name.css.postcss 313 | 314 | 315 | include 316 | #reserved-words 317 | 318 | 319 | include 320 | #property-value 321 | 322 | 323 | repository 324 | 325 | comment-tag 326 | 327 | begin 328 | {{ 329 | end 330 | }} 331 | name 332 | comment.tags.postcss 333 | patterns 334 | 335 | 336 | match 337 | [\w-]+ 338 | name 339 | comment.tag.postcss 340 | 341 | 342 | 343 | dotdotdot 344 | 345 | match 346 | \.{3} 347 | name 348 | variable.other 349 | 350 | double-slash 351 | 352 | begin 353 | // 354 | end 355 | $ 356 | name 357 | comment.line.postcss 358 | patterns 359 | 360 | 361 | include 362 | #comment-tag 363 | 364 | 365 | 366 | double-quoted 367 | 368 | begin 369 | " 370 | end 371 | " 372 | name 373 | string.quoted.double.css.postcss 374 | patterns 375 | 376 | 377 | include 378 | #quoted-interpolation 379 | 380 | 381 | 382 | flag 383 | 384 | match 385 | !(important|default|optional|global) 386 | name 387 | keyword.other.important.css.postcss 388 | 389 | function 390 | 391 | match 392 | (?<=[\s|\(|,|:])(?!url|format|attr)[\w-][\w-]*(?=\() 393 | name 394 | support.function.name.postcss 395 | 396 | function-content 397 | 398 | match 399 | (?<=url\(|format\(|attr\().+(?=\)) 400 | name 401 | string.quoted.double.css.postcss 402 | 403 | function-content-var 404 | 405 | match 406 | (?<=var\()[\w-]+(?=\)) 407 | name 408 | variable.parameter.postcss 409 | 410 | interpolation 411 | 412 | begin 413 | #{ 414 | end 415 | } 416 | name 417 | support.function.interpolation.postcss 418 | patterns 419 | 420 | 421 | include 422 | #variable 423 | 424 | 425 | include 426 | #numeric 427 | 428 | 429 | include 430 | #operator 431 | 432 | 433 | include 434 | #unit 435 | 436 | 437 | include 438 | #double-quoted 439 | 440 | 441 | include 442 | #single-quoted 443 | 444 | 445 | 446 | numeric 447 | 448 | match 449 | (-|\.)?[0-9]+(\.[0-9]+)? 450 | name 451 | constant.numeric.css.postcss 452 | 453 | operator 454 | 455 | match 456 | \+|\s-\s|\s-(?=\$)|(?<=\()-(?=\$)|\s-(?=\()|\*|/|%|=|!|<|>|~ 457 | name 458 | keyword.operator.postcss 459 | 460 | parent-selector 461 | 462 | match 463 | & 464 | name 465 | entity.name.tag.css.postcss 466 | 467 | placeholder-selector 468 | 469 | begin 470 | (?<!\d)%(?!\d) 471 | end 472 | $\n?|\s|(?=;|{) 473 | name 474 | entity.other.attribute-name.placeholder-selector.postcss 475 | 476 | property-value 477 | 478 | match 479 | [\w-]+ 480 | name 481 | meta.property-value.css.postcss, support.constant.property-value.css.postcss 482 | 483 | pseudo-class 484 | 485 | match 486 | :[a-z:-]+ 487 | name 488 | entity.other.attribute-name.pseudo-class.css.postcss 489 | 490 | quoted-interpolation 491 | 492 | begin 493 | #{ 494 | end 495 | } 496 | name 497 | support.function.interpolation.postcss 498 | patterns 499 | 500 | 501 | include 502 | #variable 503 | 504 | 505 | include 506 | #numeric 507 | 508 | 509 | include 510 | #operator 511 | 512 | 513 | include 514 | #unit 515 | 516 | 517 | 518 | reserved-words 519 | 520 | match 521 | \b(false|from|in|not|null|through|to|true)\b 522 | name 523 | support.type.property-name.css.postcss 524 | 525 | rgb-value 526 | 527 | match 528 | (#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b 529 | name 530 | constant.other.color.rgb-value.css.postcss 531 | 532 | single-quoted 533 | 534 | begin 535 | ' 536 | end 537 | ' 538 | name 539 | string.quoted.single.css.postcss 540 | patterns 541 | 542 | 543 | include 544 | #quoted-interpolation 545 | 546 | 547 | 548 | unit 549 | 550 | match 551 | (?<=[\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|%) 552 | name 553 | keyword.other.unit.css.postcss 554 | 555 | variable 556 | 557 | match 558 | \$[\w-]+ 559 | name 560 | variable.parameter.postcss 561 | 562 | variable-root-css 563 | 564 | match 565 | (?<!&)--[\w-]+ 566 | name 567 | variable.parameter.postcss 568 | 569 | 570 | scopeName 571 | source.css.postcss 572 | uuid 573 | 90DAEA60-88AA-11E2-9E96-0800200C9A66 574 | 575 | -------------------------------------------------------------------------------- /syntaxes/sugarss.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | sss 8 | 9 | foldingStartMarker 10 | /\*|^#|^\*|^\b|^\. 11 | foldingStopMarker 12 | \*/|^\s*$ 13 | name 14 | SugarSS 15 | patterns 16 | 17 | 18 | captures 19 | 20 | 0 21 | 22 | name 23 | punctuation.definition.comment.postcss 24 | 25 | 26 | match 27 | (?:^[ \t]+)?(\/\/).*$\n? 28 | name 29 | comment.line.postcss 30 | 31 | 32 | begin 33 | /\* 34 | captures 35 | 36 | 0 37 | 38 | name 39 | punctuation.definition.comment.postcss 40 | 41 | 42 | end 43 | \*/ 44 | name 45 | comment.block.postcss 46 | 47 | 48 | captures 49 | 50 | 1 51 | 52 | name 53 | entity.name.function.postcss 54 | 55 | 56 | match 57 | (^[-a-zA-Z_][-\w]*)?(\() 58 | name 59 | meta.function.postcss 60 | 61 | 62 | captures 63 | 64 | 1 65 | 66 | name 67 | punctuation.definition.entity.postcss 68 | 69 | 70 | match 71 | \.-?[_a-zA-Z]+[_a-zA-Z0-9-]* 72 | name 73 | entity.other.attribute-name.class.postcss 74 | 75 | 76 | captures 77 | 78 | 1 79 | 80 | name 81 | punctuation.definition.entity.postcss 82 | 83 | 84 | match 85 | \---?[_a-zA-Z]+[_a-zA-Z0-9-]* 86 | name 87 | variable.var.postcss 88 | 89 | 90 | captures 91 | 92 | 1 93 | 94 | name 95 | punctuation.definition.entity.postcss 96 | 97 | 98 | match 99 | \$-?[_a-zA-Z]+[_a-zA-Z0-9-]* 100 | name 101 | variable.var.postcss 102 | 103 | 104 | match 105 | ^ *& 106 | name 107 | entity.language.postcss 108 | 109 | 110 | match 111 | (arguments) 112 | name 113 | variable.language.postcss 114 | 115 | 116 | match 117 | \b(.*)(?=\s*=) 118 | name 119 | variable.language.postcss 120 | 121 | 122 | match 123 | @([-\w]+) 124 | name 125 | keyword.postcss 126 | 127 | 128 | captures 129 | 130 | 1 131 | 132 | name 133 | punctuation.definition.entity.postcss 134 | 135 | 136 | match 137 | (:+)\b(after|before|first-letter|first-line|selection|:-moz-selection)\b 138 | name 139 | entity.other.attribute-name.pseudo-element.postcss 140 | 141 | 142 | match 143 | (-webkit-|-moz\-|-ms-|-o-) 144 | name 145 | entity.name.type.vendor-prefix.postcss 146 | 147 | 148 | captures 149 | 150 | 1 151 | 152 | name 153 | punctuation.definition.entity.postcss 154 | 155 | 156 | match 157 | (:)\b(active|hover|host|focus|target|link|any-link|local-link|visited|scope|current|past|future|dir|lang|enabled|disabled|checked|indeterminate|default|valid|invalid|in-range|out-of-range|required|optional|read-only|read-write|root|first-child|last-child|only-child|nth-child|nth-last-child|first-of-type|last-of-type|matches|nth-of-type|nth-last-of-type|only-of-type|nth-match|nth-last-match|empty|not|column|nth-column|nth-last-column)\b 158 | name 159 | entity.other.attribute-name.pseudo-class.postcss 160 | 161 | 162 | match 163 | \b(:root|a|abbr|acronym|address|area|article|aside|audio|b|base|big|blackness|blend|blockquote|body|br|button|canvas|caption|cite|code|col|contrast|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|hwb|i|iframe|img|input|ins|kbd|label|legend|li|lightness|link|main|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rgba|rgb|s|samp|saturation|script|section|select|shade|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|textarea|tfoot|th|thead|time|tint|title|tr|tt|ul|var|video|whiteness)\b 164 | name 165 | storage.name.tag.postcss 166 | 167 | 168 | 169 | captures 170 | 171 | 1 172 | 173 | name 174 | punctuation.definition.constant.postcss 175 | 176 | 177 | match 178 | (#)([0-9a-fA-F]{1}|[0-9a-fA-F]{2}|[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6})\b 179 | name 180 | constant.other.color.rgb-value.postcss 181 | 182 | 183 | captures 184 | 185 | 1 186 | 187 | name 188 | punctuation.definition.entity.postcss 189 | 190 | 191 | match 192 | (#)[a-zA-Z][a-zA-Z0-9_-]* 193 | name 194 | entity.other.attribute-name.id.postcss 195 | 196 | 197 | match 198 | (\b|\s)(!important|for|from|in|return|to|true|false|null|if|else|unless|return)\b 199 | name 200 | keyword.control.postcss 201 | 202 | 203 | match 204 | ((?:!|~|\+|-|(?:\*)?\*|\/|%|(?:\.)\.\.|<|>|(?:=|:|\?|\+|-|\*|\/|%|<|>)?=|!=)|\b(?:in|is(?:nt)?|not)\b) 205 | name 206 | keyword.operator.postcss 207 | 208 | 209 | begin 210 | " 211 | end 212 | " 213 | name 214 | string.quoted.double.postcss 215 | 216 | 217 | begin 218 | ' 219 | end 220 | ' 221 | name 222 | string.quoted.single.postcss 223 | 224 | 225 | comment 226 | http://www.w3.org/TR/CSS21/syndata.html#value-def-color 227 | match 228 | \b(aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)\b 229 | name 230 | support.constant.color.w3c-standard-color-name.postcss 231 | 232 | 233 | match 234 | (\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\b) 235 | name 236 | string.constant.font-name.postcss 237 | 238 | 239 | captures 240 | 241 | 1 242 | 243 | name 244 | keyword.other.unit.postcss 245 | 246 | 247 | match 248 | (?<![a-zA-Z])(?x) 249 | (?:-|\+)?(?:(?:[0-9]+(?:\.[0-9]+)?)|(?:\.[0-9]+)) 250 | ((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|vm|vmin|vh|dpi|dpcm|s|tochka|liniya|nogot|perst|sotka|dyuim|vershok|piad|fut|arshin|sazhen|versta|milia|тч|пиксель|пикселя|пикселей|пои|пик|градус|град|рад|пов|сек|мсек|твд|твсм|твтч|Гц|кГц|рм|вк|чх|крм|пш|пв|точка|точки|точек|линия|линии|линий|ноготь|ногтя|ногтей|перст|перста|перстов|сотка|сотки|соток|дюйм|дюйма|дюймов|вершок|вершка|вершков|пядь|пяди|пядей|фут|фута|футов|аршин|аршина|аршинов|сажень|сажени|саженей|сажней|верста|версты|вёрст|миля|мили|миль)\b|%)? 251 | name 252 | constant.numeric.postcss 253 | 254 | 255 | match 256 | \b(all|and|align-items|alignment-adjust|alignment-baseline|animation|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|appearance|azimuth|backface-visibility|background|background-attachment|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-decoration-break|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color|color-profile|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|create-row|create-column|crop|cue|cue-after|cue-before|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|flex-align|flex-flow|flex-line-pack|flex-grow|flex-order|flex-pack|float|float-offset|font|font-family|font-size|font-size-adjust|font-smoothing|font-stretch|font-style|font-variant|font-variant-caps|font-variant-numeric|font-weight|grid-columns|grid-column|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|image-size|inline-box-align|left|letter-spacing|line-break|line-height|line-stacking|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|list-style|list-style-image|list-style-position|list-style-type|lost-column|margin|margin-bottom|margin-left|margin-right|margin-top|marker-offset|marks|marquee-direction|marquee-loop|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-style|overflow-wrap|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page|page-break-after|page-break-before|page-break-inside|page-policy|pause|pause-after|pause-before|perspective|perspective-origin|phonemes|pitch|pitch-range|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|richness|right|rotation|rotation-point|screen|size|speak|speak-header|speak-numeral|speak-punctuation|speech-rate|src|stress|string-set|tab-size|table-layout|target|target-name|target-new|target-position|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-skip|text-decoration-style|text-emphasis|text-emphasis-color|text-emphasis-position|text-emphasis-style|text-height|text-indent|text-justify|text-outline|text-shadow|text-space-collapse|text-transform|text-underline-position|text-wrap|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch|voice-pitch-range|voice-rate|voice-stress|voice-volume|volume|white-space|widows|width|will-change|word-break|word-spacing|word-wrap|z-index)\b(?=\:|\s\s*) 257 | name 258 | support.type.property-name.postcss 259 | 260 | 261 | comment 262 | http://dev.w3.org/csswg/css3-transitions/#properties-from-css- 263 | match 264 | \b(background-color|background-position|border-bottom-color|border-bottom-width|border-left-color|border-left-width|border-right-color|border-right-width|border-spacing|border-top-color|border-top-width|bottom|calc|clip|color(-stop)?|crop css3-content will likely advance slower than this specification, in which case this definition should move there|font-size|font-weight|height|left|letter-spacing|line-height|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|opacity|outline-color|outline-offset|outline-width|padding-bottom|padding-left|padding-right|padding-top|right|text-indent|text-shadow|top|vertical-align|visibility|width|word-spacing|z-index)\b(?!\:) 265 | name 266 | support.constant.transitionable-property-value.postcss 267 | 268 | 269 | match 270 | \b(absolute|all(-scroll)?|alternate|always|amaro|antialiased|armenian|auto|avoid|baseline|below|bidi-override|block|bold|bolder|border-box|both|bottom|brannan|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|conic(-gradient)?|content-box|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|earlybird|ease(-(in(-out)?|out))?|ellipsis|fallback|fill|fix-legacy|fix|fixed|flex|format|geometricPrecision|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|infinite|inherit|initial|inkwell|inline-block|inline-start|inline|inset|inside|inter-ideograph|inter-word|italic|justify|kalvin|katakana-iroha|katakana|keep-all|larger|left|lighter|line-edge|lining-nums|line-through|line|linear(-gradient)?|list-item|lo-fi|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|nashville|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|optimize(Legibility|Quality|Speed)|outset|outside|overline|padding-box|painted|pointer|pre(-(wrap|line))?|progress|relative|repeat-x|repeat-y|repeat|responsive|right|ridge|row(-resize)?|rtl|s-resize|scroll|se-resize|separate|smaller|small-caps|solid|square|static|strict|stroke|sub|subpixel-antialiased|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|toaster|top|transform|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|url|vertical(-(ideographic|text))?|visible(Painted|Fill|Stroke)?|w-resize|wait|whitespace|wrap|zero)\b 271 | name 272 | variable.property-value.postcss 273 | 274 | 275 | match 276 | \b(colour|zed-index)\b(?=\:|\s\s*) 277 | name 278 | entity.name.type.property-name.postcss 279 | 280 | 281 | match 282 | \b(centre|yeah-nah|fair-dinkum|rack-off|woop-woop)\b 283 | name 284 | variable.property-value.postcss 285 | 286 | 287 | match 288 | (\b|\s)(!bloody-oath)\b 289 | name 290 | keyword.control.postcss 291 | 292 | 293 | match 294 | \b(true-blue|vegemite|vb-green|kangaroo|koala)\b 295 | name 296 | support.constant.color.w3c-standard-color-name.postcss 297 | 298 | 299 | match 300 | (\b|\s)(!sorry)\b 301 | name 302 | keyword.control.postcss 303 | 304 | 305 | match 306 | \b(grey)\b 307 | name 308 | support.constant.color.w3c-standard-color-name.postcss 309 | 310 | 311 | match 312 | \b(animation-verzögerung|animation-richtung|animation-dauer|animation-füll-methode|animation-wiederholung-anzahl|animation-name|animation-abspiel-zustand|animation-takt-funktion|animation|hintergrund-befestigung|hintergrund-beschnitt|hintergrund-farbe|hintergrund-bild|hintergrund-ursprung|hintergrund-position|hintergrund-wiederholung|hintergrund-größe|hintergrund|rahmen-unten-farbe|rahmen-unten-links-radius|rahmen-unten-rechts-radius|rahmen-unten-stil|rahmen-unten-breite|rahmen-unten|rahmen-kollaps|rahmen-farbe|rahmen-bild|rahmen-bild-anfang|rahmen-bild-wiederholung|rahmen-bild-schnitt|rahmen-bild-quelle|rahmen-bild-breite|rahmen-links-farbe|rahmen-links-stil|rahmen-links-breite|rahmen-links|rahmen-radius|rahmen-rechts-farbe|rahmen-rechts-stil|rahmen-rechts-breite|rahmen-rechts|rahmen-abstand|rahmen-stil|rahmen-oben-farbe|rahmen-oben-links-radius|rahmen-oben-rechts-radius|rahmen-oben-stil|rahmen-oben-breite|rahmen-oben|rahmen-breite|rahmen|unten|kasten-schatten|kasten-bemessung|beschriftung-seite|klären|beschnitt|farbe|spalten|spalte-anzahl|spalte-füllung|spalte-lücke|spalte-linie|spalte-linie-farbe|spalte-linie-stil|spalte-linie-breite|spalte-spanne|spalte-breite|inhalt|zähler-erhöhen|zähler-zurücksetzen|zeiger|anzeige|leere-zellen|filter|flex-grundlage|flex-richtung|flex-fluss|flex-wachsem|flex-schrumpfen|flex-umbruch|umlaufen|schrift-familie|schrift-eigenschaft-einstellungen|schrift-größe|schrift-größe-einstellen|schrift-stil|schrift-variante|schrift-gewicht|schrift|höhe|trennstriche|inhalt-ausrichten|links|zeichen-abstand|zeilen-umbruch|zeilen-höhe|listen-stil-bild|listen-stil-position|listen-stil-typ|listen-stil|außenabstand-unten|außenabstand-links|außenabstand-rechts|außenabstand-oben|außenabstand|max-höhe|max-breite|min-höhe|min-breite|deckkraft|reihenfolge|schusterjungen|kontur-farbe|kontur-abstand|kontur-stil|kontur-breite|kontur|überlauf-x|überlauf-y|überlauf|innenabstand-unten|innenabstand-left|innenabstand-rechts|innenabstand-oben|innenabstand|perspektive-ursprung|perspektive|zeiger-ereignisse|position|anführungszeichen|größenänderung|rechts|tabelle-gestaltung|tab-größe|text-ausrichten|text-verzierung|text-einrückung|text-orientierung|text-überlauf|text-wiedergabe|text-schatten|text-umformung|oben|übergang-verzögerung|übergang-dauer|übergang-eigenschaft|übergang-takt-funktion|übergang|unicode-bidi|vertikale-ausrichtung|sichtbarkeit|weißraum|hurenkinder|breite|wort-umbruch|wort-abstand|wort-umschlag|schreib-richtung|ebene)\b(?=\:|\s\s*) 313 | name 314 | entity.name.type.property-name.postcss 315 | 316 | 317 | match 318 | \b(absolut|automatisch|fett|fixiert|versteckt|erben|initial|kursiv|links|nicht-wiederholen|keines|relativ|wiederholen-x|wiederholen-y|wiederholen|rechts|durchgezogen|statisch|aufheben)\b 319 | name 320 | variable.property-value.postcss 321 | 322 | 323 | match 324 | (\b|\s)(!wichtig)\b 325 | name 326 | keyword.control.postcss 327 | 328 | 329 | match 330 | \b(eisfarben|antikweiß|wasser|aquamarinblau|beige|biskuit|mandelweiß|blauviolett|gelbbraun|kadettenblau|schokolade|kornblumenblau|mais|karmesinrot|dunkelblau|dunkeltürkis|dunklegoldrunenfarbe|dunkelgrün|dunkelgrau|dunkelkhaki|dunkelmagenta|dunkelolivgrün|dunkelorange|dunkleorchidee|dunkelrot|dunklelachsfarbe|dunklesseegrün|dunklesschieferblau|dunkelviolett|tiefrosa|tiefhimmelblau|gedimmtesgrau|persinningblau|backstein|blütenweiß|waldgrün|geisterweiß|grüngelb|honigmelone|leuchtendrosa|indischrot|elfenbein|staubfarbend|lavendelrosa|grasgrün|chiffongelb|hellblau|helleskorallenrot|helltürkis|hellgrau|hellgrün|hellrosa|hellelachsfarbe|hellesseegrün|helleshimmelblau|hellesschiefergrau|hellesstahlblau|hellgelb|limonengrün|leinen|kastanie|mitternachtsblau|cremigeminze|altrosa|mokassin|navajoweiß|marineblau|altespitze|olivgrünbraun|orangerot|orchidee|blassegoldrunenfarbe|blassegoldrunenfarbe|blasstürkis|blasstürkis|pfirsich|pflaume|taubenblau|violett|rosigesbraun|royalblau|sattelbraun|lachsfarben|sandbraun|seegrün|muschel|siennaerde|silber|schieferblau|schiefergrau|schneeweiß|frühlingsgrün|stahlblau|hautfarben|krickentengrün|distel|tomate|türkis|veilchen|weizen|rauchfarben|gelbgrün|himmelblau|schwarz|blau|koralle|cyan|grau|grün|rosa|lavendel|limone|orange|rot|weiß|gelb)\b 331 | name 332 | support.constant.color.w3c-standard-color-name.postcss 333 | 334 | 335 | match 336 | \b(ключевыекадры|анимация|имя-анимации|длительность-анимации|функция-времени-анимации|задержка-анимации|число-повторов-анимации|направление-анимации|статус-проигрывания-анимации|фон|положение-фона|цвет-фона|изображение-фона|позиция-фона|повтор-фона|обрезка-фона|начало-фона|размер-фона|граница|нижняя-граница|цвет-нижней-границы|стиль-нижней-границы|толщина-нижней-границы|цвет-границы|левая-граница|цвет-левой-границы|стиль-левой-границы|толщина-левой-границы|правая-граница|цвет-правой-границы|стиль-правой-границы|толщина-правой-границы|стиль-границы|верхняя-граница|цвет-верхней-границы|стиль-верхней-границы|толщина-верхней-границы|толщина-границы|контур|цвет-контура|стиль-контура|толщина-контура|радиус-нижней-левой-рамки|радиус-нижней-правой-рамки|изображение-рамки|начало-изображения-рамки|повтор-изображения-рамки|смещение-изображения-рамки|источник-изображения-рамки|толщина-изображения-рамки|радиус-рамки|радиус-верхней-левой-рамки|радиус-верхней-правой-рамки|разрыв-оформления-блока|тень-блока|переполнение-икс|переполнение-игрек|стиль-переполнения|поворот|точка-поворота|цветовой-профиль|непрозрачность|намерение-отрисовки|метка-закладки|уровень-закладки|цель-закладки|плавающий-сдвиг|дефисный-после|дефисный-до|дефисный-символ|дефисный-строки|дифисный-ресурс|дефисы|разрешение-изображения|маркировка|набор-строк|высота|макс-высота|макс-ширина|мин-высота|мин-ширина|ширина|выравнивание-блока|направление-блока|флекс-блок|группа-флекс-блока|линии-блока|порядок-группы-бокса|ориентация-бокса|пак-бокса|шрифт|семейство-шрифта|размер-шрифта|стиль-шрифта|вид-шрифта|вес-шрифта|определение-шрифта|подгонка-размера-шрифта|разрядка-шрифта|содержимое|инкремент-счетчика|сброс-счетчика|кавычки|обрезка|сдвинуть-на|политика-страницы|колонки-сетки|ряды-сетки|цель|имя-цели|новая-цель|позиция-цели|подгонка-выравнивания|выравнивание-базовой|сдвиг-базовой|домининация-базовой|выравнивание-строчного-блока|высота-текста|стиль-списка|изображение-стиля-списка|позиция-стиля-списка|тип-стиля-списка|поле|поле-снизу|поле-слева|поле-справа|поле-сверху|направление-шатра|количество-повторов-шатра|скорость-шатра|стиль-шатра|количество-колонок|заполнение-колонок|зазор-колонок|направляющая-колонок|цвет-направляющей-колонок|стиль-направляющей-колонок|ширина-направляющей-колонок|охват-колонок|ширина-колонок|колонки|отбивка|отбивка-снизу|отбивка-слева|отбивка-справа|отбивка-сверху|ориентация-изображения|страница|размер|снизу|очистить|обрезать|курсор|отображение|обтекание|слева|переполнение|положение|справа|сверху|видимость|зед-индекс|сироты|разрыв-страницы-после|разрыв-страницы-до|разрыв-страницы-внутри|вдовы|схлопывание-границ|расстояние-границ|сторона-подписи|пустые-ячейки|макет-таблицы|цвет|направление|мужбуквенный-пробел|высота-строки|выравнивание-текста|оформление-текста|отступ-текста|трансформация-текста|уникод-биди|вертикальное-выравнивание|пробелы|межсловный-пробел|висячая-пунктуация|обрезка-пунктуации|выравнивание-последней-строки|выключка-текста|контур-текста|переполнение-текста|тень-текста|подгонка-размера-текста|обертка-текста|разрыв-слова|обертка-слова|трансформация|точка-трансформации|стиль-трансформации|перспектива|точка-перспективы|видимость-задника|переход|свойство-перехода|длительность-перехода|функция-вренеми-перехода|задержка-перехода|представление|калибровка-блока|иконка|нав-вниз|нав-индекс|нав-влево|нав-вправо|нав-вверх|смещение-контура|ресайз|зум|фильтр|выделение-пользователем|сглаживание-шрифта|осх-сглаживание-шрифта|переполнение-прокрутки|ист)\b(?=\:|\s\s*) 337 | name 338 | entity.name.type.property-name.postcss 339 | 340 | 341 | match 342 | \b(выше|абсолютный|абсолютная|абсолютное|после|псевдоним|все|всё|свободный-скролл|все-капителью|всё-капителью|позволить-конец|алфавитный|алфавитная|алфавитное|альтернативный|альтернативная|альтернативное|альтернативный-инвертированн|альтернативная-инвертированн|альтернативное-инвертированн|всегда|армянский|армянская|армянское|авто|избегать|избегать-колонку|избегать-страницу|назад|баланс|базоваялиния|перед|ниже|отменить-биди|мигать|блок|блокировать|блочное|жирный|более-жирный|по-границе|оба|нижний|перенос-всего|перенос-слов|капитализировать|ячейка|центр|круг|обрезать|клонировать|закрывающие-кавычки|ресайз-колонки|схлопнуть|колонка|инвертировать-колонки|насыщенный|содержать|содержит|по-содержимому|контекстное-меню|копия|копировать|покрыть|перекрестие|пунктирная|десятичный|десятичный-ведущий-ноль|обычный|потомки|диск|распространять|распространить|точка|точечный|двойной|двойной-круг|в-ресайз|легкость|легкость-в|легкость-в-из|легкость-из|края|эллипсис|вставленный|конец|зв-ресайз|расширен|экстра-конденсирован|экстра-расширен|заполнение|заполнен|первый|фиксирован|плоский|флекс|флекс-конец|флекс-старт|форсированный-конец|вперед|полной-ширины|грузинский|канавка|помощь|скрытый|спрятать|горизонтальный|горизонтальный-тб|иконка|бесконечный|бесконечная|бесконечное|наследовать|начальный|начальная|начальное|чернила|строчный|строчный-блок|строчный-флекс|строчная-таблица|вставка|внутри|между-кластером|между-иероглифом|между-словом|инвертированный|инвертированная|инвертированное|курсив|курсивный|выключитьстроку|кашида|сохранить-все|большое|больше|последний|последняя|последнее|слева|левый|легче|зачеркнуть|линейный|линейная|линейное|последний-пункт|локальный|локальная|локальное|свободный|свободная|свободное|нижний-буквенный|нижний-греческий|нижний-латинский|нижний-романский|нижний-регистр|лнп|ручной|соответствует-родителю|средний|средняя|среднее|посередине|смешенный-справа|двигать|с-ресайз|св-ресайз|свюз-ресайз|не-закрывать-кавычки|не-сбрасывать|не-открывать-кавычки|не-повторять|нет|ничего|нету|нормальный|не-разрешен|безобтекания|сю-ресайз|сз-ресайз|сзюв-ресайз|объекты|наклонный|наклонная|наклонное|открыт|открывающие-кавычки|начало|снаружи|оверлайн|по-отбивке|страница|пауза|указатель|пре|пре-линия|пре-обертка|прогресс|относительный|относительная|относительное|повтор|повтор-икс|повтор-игрек|обратный|обратная|обратное|хребет|справа|превый|правый|круглый|круглая|круглое|ряд|ряд-ресайз|обратный-ряд|пнл|бегущий|бегущяя|бегущее|ю-ресайз|уменьшить|уменьшать|скролл|юв-ресайз|полу-конденсирован|полу-расширен|отдельный|отдельная|отдельное|кунжут|показать|боком|боком-лева|боком-права|нарезать|маленький|маленький|капитель|меньше|сплошной|пробел|пробел-вокруг|пробел-между|пробелы|квадрат|старт|статический|шаг-конец|шаг-старт|растягивать|строгий|строгая|строгое|стиль|суб|над|юз-ресайз|таблица|заголовок-таблицы|ячейка-таблицы|колонка-таблицы|группа-колонок-талицы|группа-футера-таблицы|группа-заголовка-таблицы|ряд-таблицы|группа-ряда-таблицы|текст|текст-внизу|текст-наверху|толстый|тонкий|начертание-титров|верх|прозрачный|прозрачная|прозрачное|треугольный|треугольная|треугольное|сверх-конденсирован|сверх-расширен|под|подчеркнут|однорегистровый|однорегистровая|однорегистровое|отключенный|отключенная|отключенное|верхний-буквенный|верхний-латинский|верхний-романский|верхний-регистр|вертикально|использовать-ориентуцию-знака|вертикальный|вертикальная|вертикальное|вертикальный-лп|вертикальный-пл|вертикальный-текст|видимый|з-ресайз|ждать|волнистый|волнистая|волнистое|вес|обернуть|обернуть-обратный|оч-большой|оч-маленький|очоч-большой|очоч-маленький|призумить|отзумить)\b 343 | name 344 | variable.property-value.postcss 345 | 346 | 347 | match 348 | (\b|\s)(!важно)\b 349 | name 350 | keyword.control.postcss 351 | 352 | 353 | match 354 | \b(красный|красная|красное|оранжевый|оранжевая|оранжевое|желтый|желтая|желтое|оливковый|оливковая|оливковое|пурпурный|пурпурное|пурпурная|фуксия|белый|белая|белое|лимонный|лимонная|лимонное|зеленый|зеленая|зеленое|темносиний|темносиняя|темносинее|синий|синяя|синее|водяной|водяная|водяное|бирюзовый|бирюзовая|бирюзовое|черный|черная|черное|серебряный|серебряная|серебряное|серый|серая|серое)\b 355 | name 356 | support.constant.color.w3c-standard-color-name.postcss 357 | 358 | 359 | match 360 | \b(моноширинный|c-засечками|без-засечек|фантазийный|рукописный)\b 361 | name 362 | string.constant.font-name.postcss 363 | 364 | 365 | match 366 | \b(кзс|вычс|кзсп|урл|аттр|от|до)\b 367 | name 368 | storage.name.tag.postcss 369 | 370 | 371 | match 372 | \b(fondo|flota|ancho|alto|puntero|redondeado|izquierda|derecha|arriba|abajo|espaciado)\b 373 | name 374 | entity.name.type.property-name.postcss(?=\:|\s\s*) 375 | 376 | 377 | match 378 | \b(subrayado|manito|mayuscula|izquierda|derecha|arriba|abajo)\b 379 | name 380 | variable.property-value.postcss 381 | 382 | 383 | match 384 | (\b|\s)(!importantisimo)\b 385 | name 386 | keyword.control.postcss 387 | 388 | 389 | match 390 | \b(animering-fördröjning|animering-riktning|animering-längd|animering-fyllnads-metod|animering-upprepning-antal|animering-namn|animering-spelning-status|animering-tajming-funktion|animering|bakgrund-bilaga|bakgrund-klipp|bakgrund-färg|bakgrund-bild|bakgrund-ursprung|bakgrund-position|bakgrund-upprepning|bakgrund-storlek|bakgrund|kant-botten-färg|kant-botten-vänster-radie|kant-botten-höger-radie|kant-botten-stil|kant-botten-bredd|kant-botten|kant-kollaps|kant-färg|kant-bild|kant-bild-början|kant-bild-upprepning|kant-bild-snitt|kant-bild-källa|kant-bild-bredd|kant-vänster-färg|kant-vänster-stil|kant-vänster-bredd|kant-vänster|kant-radie|kant-höger-färg|kant-höger-stil|kant-höger-bredd|kant-höger|kant-avstånd|kant-stil|kant-topp-färg|kant-topp-vänster-radie|kant-topp-höger-radie|kant-topp-stil|kant-topp-bredd|kant-topp|kant-bredd|kant|botten|låda-skugga|låda-kalibrering|bildtext-sida|rensa|klipp|färg|kolumn|kolumn-antal|kolumn-fyllning|kolumn-mellanrum|kolumn-linje|kolumn-linje-färg|kolumn-linje-stil|kolumn-linje-bredd|kolumn-spann|kolumn-bredd|innehåll|räknare-ökning|räknare-återställ|muspekare|visa|tomma-celler|filter|flex-grund|flex-rikting|flex-flöde|flex-ökning|flex-förminskning|flex-omslutning|flex|flyt|typsnitt-familj|typsnitt-särdrag-inställningar|typsnitt-storlek|typsnitt-storlek-justering|typsnitt-stil|typsnitt-variant|typsnitt-vikt|typsnitt|höjd|bindestreck|justera-innehåll|vänster|bokstav-mellanrum|linje-brytning|linje-höjd|lista-stil-bild|lista-stil-position|lista-stil-typ|lista-stil|marginal-botten|marginal-vänster|marginal-höger|marginal-topp|marginal|max-höjd|max-bredd|min-höjd|min-bredd|opacitet|ordning|föräldralösa|kontur-färg|kontur-abstand|kontur-stil|kontur-bredd|kontur|överflöde-x|överflöde-y|överflöde|stoppning-botten|stoppning-left|stoppning-höger|stoppning-topp|stoppning|perspektiv-ursprung|perspektiv|pekare-händelser|position|citat|storleksändra|höger|tabell-layout|tab-storlek|text-riktning|text-dekoration|text-indrag|text-inriktning|text-överflöde|text-rendering|text-skugga|text-omvanlda|topp|övergång-fördröjning|övergång-längd|övergång-egenskap|övergång-tajming-funktion|övergång|unicode-bidi|vertikal-riktning|synlighet|luftrum|änkor|bredd|ord-brytning|ord-avstånd|ord-omslutning|skriv-rikting|nivå)\b(?=\:|\s\s*) 391 | name 392 | entity.name.type.property-name.postcss 393 | 394 | 395 | match 396 | \b(absolut|automatisk|fet|fixerad|gömd|ärva|inledande|kursiv|vänster|ingen-upprepning|ingen|uppradad|uppradad-block|relativ|upprepning-x|upprepning-y|upprepning|höger|solid|statisk|urkoppla)\b 397 | name 398 | variable.property-value.postcss 399 | 400 | 401 | match 402 | (\b|\s)(!viktigt)\b 403 | name 404 | keyword.control.postcss 405 | 406 | 407 | match 408 | \b(isfärg|antikvitt|vatten|marinblå|beige|kex|mandelvit|blålila|gulbrun|kadettenblå|choklad|kornblå|majs|crimson|mörkblå|mörkturkos|mörkgyllenröd|mörkgrön|mörkgrå|mörkkhaki|mörkrosa|mörkolivgrön|mörkorange|mörkorchidee|mörkröd|mörklaxrosa|mörkväxtgräs|mörkskifferblått|mörklila|djuprosa|djuphimmelblå|grummelgrå|skojarblå|tegelsten|vitsippa|skogsgrön|spökvit|gröngul|honungsmelon|hetrosa|indiskröd|elfenben|khaki|lavendelrosa|gräsgrön|chiffongul|himmelblå|ljuskorall|ljusturkos|ljusgrå|ljusgrön|ljusrosa|ljuselaxrosa|ljushavsgrön|ljushimmelblå|ljusskiffergrå|ljusstålblå|ljusgul|limegrön|linnen|kastanj|midnattsblå|mintkräm|gammelrosa|mokassin|navajovitt|marineblå|spets|olivgrönbrun|orangeröd|orchidee|blektgyllenröd|blektgrön|blektturkos|papayakräm|persikopuff|plommon|ljusblå|lila|skärbrun|royalblå|sadelbrun|laxrosa|sandbrun|havsgrön|snäcka|sienna|silver|skifferblå|skiffergrå|snövit|vårgrön|stålblå|hudfärg|blågrön|tistel|tomat|turkos|violett|vete|vitrök|gulgrön|himmelblå|svart|blå|koraller|cyan|grå|grön|rosa|lavendel|lime|orange|röd|vit|gul)\b 409 | name 410 | support.constant.color.w3c-standard-color-name.postcss 411 | 412 | 413 | scopeName 414 | source.css.sugarss 415 | 416 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/node@^9.6.1": 6 | version "9.6.2" 7 | resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.2.tgz#e49ac1adb458835e95ca6487bc20f916b37aff23" 8 | 9 | ajv@^5.1.0: 10 | version "5.5.2" 11 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 12 | dependencies: 13 | co "^4.6.0" 14 | fast-deep-equal "^1.0.0" 15 | fast-json-stable-stringify "^2.0.0" 16 | json-schema-traverse "^0.3.0" 17 | 18 | ansi-cyan@^0.1.1: 19 | version "0.1.1" 20 | resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" 21 | dependencies: 22 | ansi-wrap "0.1.0" 23 | 24 | ansi-gray@^0.1.1: 25 | version "0.1.1" 26 | resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" 27 | dependencies: 28 | ansi-wrap "0.1.0" 29 | 30 | ansi-red@^0.1.1: 31 | version "0.1.1" 32 | resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" 33 | dependencies: 34 | ansi-wrap "0.1.0" 35 | 36 | ansi-regex@^2.0.0: 37 | version "2.1.1" 38 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 39 | 40 | ansi-styles@^2.2.1: 41 | version "2.2.1" 42 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 43 | 44 | ansi-wrap@0.1.0: 45 | version "0.1.0" 46 | resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" 47 | 48 | arr-diff@^1.0.1: 49 | version "1.1.0" 50 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" 51 | dependencies: 52 | arr-flatten "^1.0.1" 53 | array-slice "^0.2.3" 54 | 55 | arr-diff@^2.0.0: 56 | version "2.0.0" 57 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 58 | dependencies: 59 | arr-flatten "^1.0.1" 60 | 61 | arr-flatten@^1.0.1: 62 | version "1.1.0" 63 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 64 | 65 | arr-union@^2.0.1: 66 | version "2.1.0" 67 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" 68 | 69 | array-differ@^1.0.0: 70 | version "1.0.0" 71 | resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" 72 | 73 | array-slice@^0.2.3: 74 | version "0.2.3" 75 | resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" 76 | 77 | array-union@^1.0.1: 78 | version "1.0.2" 79 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 80 | dependencies: 81 | array-uniq "^1.0.1" 82 | 83 | array-uniq@^1.0.1, array-uniq@^1.0.2: 84 | version "1.0.3" 85 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 86 | 87 | array-unique@^0.2.1: 88 | version "0.2.1" 89 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 90 | 91 | arrify@^1.0.0: 92 | version "1.0.1" 93 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 94 | 95 | asn1@~0.2.3: 96 | version "0.2.3" 97 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 98 | 99 | assert-plus@1.0.0, assert-plus@^1.0.0: 100 | version "1.0.0" 101 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 102 | 103 | assert-plus@^0.2.0: 104 | version "0.2.0" 105 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 106 | 107 | asynckit@^0.4.0: 108 | version "0.4.0" 109 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 110 | 111 | aws-sign2@~0.6.0: 112 | version "0.6.0" 113 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 114 | 115 | aws-sign2@~0.7.0: 116 | version "0.7.0" 117 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 118 | 119 | aws4@^1.2.1, aws4@^1.6.0: 120 | version "1.6.0" 121 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 122 | 123 | balanced-match@^1.0.0: 124 | version "1.0.0" 125 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 126 | 127 | bcrypt-pbkdf@^1.0.0: 128 | version "1.0.1" 129 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 130 | dependencies: 131 | tweetnacl "^0.14.3" 132 | 133 | beeper@^1.0.0: 134 | version "1.1.1" 135 | resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" 136 | 137 | block-stream@*: 138 | version "0.0.9" 139 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 140 | dependencies: 141 | inherits "~2.0.0" 142 | 143 | boom@2.x.x: 144 | version "2.10.1" 145 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 146 | dependencies: 147 | hoek "2.x.x" 148 | 149 | boom@4.x.x: 150 | version "4.3.1" 151 | resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" 152 | dependencies: 153 | hoek "4.x.x" 154 | 155 | boom@5.x.x: 156 | version "5.2.0" 157 | resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" 158 | dependencies: 159 | hoek "4.x.x" 160 | 161 | brace-expansion@^1.1.7: 162 | version "1.1.11" 163 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 164 | dependencies: 165 | balanced-match "^1.0.0" 166 | concat-map "0.0.1" 167 | 168 | braces@^1.8.2: 169 | version "1.8.5" 170 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 171 | dependencies: 172 | expand-range "^1.8.1" 173 | preserve "^0.2.0" 174 | repeat-element "^1.1.2" 175 | 176 | browser-stdout@1.3.0: 177 | version "1.3.0" 178 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" 179 | 180 | buffer-crc32@~0.2.3: 181 | version "0.2.13" 182 | resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" 183 | 184 | caseless@~0.11.0: 185 | version "0.11.0" 186 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" 187 | 188 | caseless@~0.12.0: 189 | version "0.12.0" 190 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 191 | 192 | chalk@^1.0.0, chalk@^1.1.1: 193 | version "1.1.3" 194 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 195 | dependencies: 196 | ansi-styles "^2.2.1" 197 | escape-string-regexp "^1.0.2" 198 | has-ansi "^2.0.0" 199 | strip-ansi "^3.0.0" 200 | supports-color "^2.0.0" 201 | 202 | clone-buffer@^1.0.0: 203 | version "1.0.0" 204 | resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" 205 | 206 | clone-stats@^0.0.1: 207 | version "0.0.1" 208 | resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" 209 | 210 | clone-stats@^1.0.0: 211 | version "1.0.0" 212 | resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" 213 | 214 | clone@^0.2.0: 215 | version "0.2.0" 216 | resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" 217 | 218 | clone@^1.0.0: 219 | version "1.0.4" 220 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" 221 | 222 | clone@^2.1.1: 223 | version "2.1.2" 224 | resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" 225 | 226 | cloneable-readable@^1.0.0: 227 | version "1.1.2" 228 | resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" 229 | dependencies: 230 | inherits "^2.0.1" 231 | process-nextick-args "^2.0.0" 232 | readable-stream "^2.3.5" 233 | 234 | co@^4.6.0: 235 | version "4.6.0" 236 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 237 | 238 | color-support@^1.1.3: 239 | version "1.1.3" 240 | resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" 241 | 242 | combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: 243 | version "1.0.6" 244 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" 245 | dependencies: 246 | delayed-stream "~1.0.0" 247 | 248 | commander@2.11.0: 249 | version "2.11.0" 250 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" 251 | 252 | commander@^2.9.0: 253 | version "2.15.1" 254 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" 255 | 256 | concat-map@0.0.1: 257 | version "0.0.1" 258 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 259 | 260 | convert-source-map@^1.1.1: 261 | version "1.5.1" 262 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" 263 | 264 | core-util-is@1.0.2, core-util-is@~1.0.0: 265 | version "1.0.2" 266 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 267 | 268 | cryptiles@2.x.x: 269 | version "2.0.5" 270 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 271 | dependencies: 272 | boom "2.x.x" 273 | 274 | cryptiles@3.x.x: 275 | version "3.1.2" 276 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" 277 | dependencies: 278 | boom "5.x.x" 279 | 280 | dashdash@^1.12.0: 281 | version "1.14.1" 282 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 283 | dependencies: 284 | assert-plus "^1.0.0" 285 | 286 | dateformat@^2.0.0: 287 | version "2.2.0" 288 | resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" 289 | 290 | debug@3.1.0: 291 | version "3.1.0" 292 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 293 | dependencies: 294 | ms "2.0.0" 295 | 296 | deep-assign@^1.0.0: 297 | version "1.0.0" 298 | resolved "https://registry.yarnpkg.com/deep-assign/-/deep-assign-1.0.0.tgz#b092743be8427dc621ea0067cdec7e70dd19f37b" 299 | dependencies: 300 | is-obj "^1.0.0" 301 | 302 | delayed-stream@~1.0.0: 303 | version "1.0.0" 304 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 305 | 306 | diff@3.3.1: 307 | version "3.3.1" 308 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" 309 | 310 | duplexer2@0.0.2: 311 | version "0.0.2" 312 | resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" 313 | dependencies: 314 | readable-stream "~1.1.9" 315 | 316 | duplexer@~0.1.1: 317 | version "0.1.1" 318 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" 319 | 320 | duplexify@^3.2.0: 321 | version "3.5.4" 322 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" 323 | dependencies: 324 | end-of-stream "^1.0.0" 325 | inherits "^2.0.1" 326 | readable-stream "^2.0.0" 327 | stream-shift "^1.0.0" 328 | 329 | ecc-jsbn@~0.1.1: 330 | version "0.1.1" 331 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 332 | dependencies: 333 | jsbn "~0.1.0" 334 | 335 | end-of-stream@^1.0.0: 336 | version "1.4.1" 337 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" 338 | dependencies: 339 | once "^1.4.0" 340 | 341 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2: 342 | version "1.0.5" 343 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 344 | 345 | event-stream@^3.3.1, event-stream@~3.3.4: 346 | version "3.3.4" 347 | resolved "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" 348 | dependencies: 349 | duplexer "~0.1.1" 350 | from "~0" 351 | map-stream "~0.1.0" 352 | pause-stream "0.0.11" 353 | split "0.3" 354 | stream-combiner "~0.0.4" 355 | through "~2.3.1" 356 | 357 | expand-brackets@^0.1.4: 358 | version "0.1.5" 359 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 360 | dependencies: 361 | is-posix-bracket "^0.1.0" 362 | 363 | expand-range@^1.8.1: 364 | version "1.8.2" 365 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 366 | dependencies: 367 | fill-range "^2.1.0" 368 | 369 | extend-shallow@^1.1.2: 370 | version "1.1.4" 371 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" 372 | dependencies: 373 | kind-of "^1.1.0" 374 | 375 | extend-shallow@^2.0.1: 376 | version "2.0.1" 377 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 378 | dependencies: 379 | is-extendable "^0.1.0" 380 | 381 | extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: 382 | version "3.0.1" 383 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 384 | 385 | extglob@^0.3.1: 386 | version "0.3.2" 387 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 388 | dependencies: 389 | is-extglob "^1.0.0" 390 | 391 | extsprintf@1.3.0: 392 | version "1.3.0" 393 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 394 | 395 | extsprintf@^1.2.0: 396 | version "1.4.0" 397 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 398 | 399 | fancy-log@^1.1.0: 400 | version "1.3.2" 401 | resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" 402 | dependencies: 403 | ansi-gray "^0.1.1" 404 | color-support "^1.1.3" 405 | time-stamp "^1.0.0" 406 | 407 | fast-deep-equal@^1.0.0: 408 | version "1.1.0" 409 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 410 | 411 | fast-json-stable-stringify@^2.0.0: 412 | version "2.0.0" 413 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 414 | 415 | fd-slicer@~1.0.1: 416 | version "1.0.1" 417 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" 418 | dependencies: 419 | pend "~1.2.0" 420 | 421 | filename-regex@^2.0.0: 422 | version "2.0.1" 423 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 424 | 425 | fill-range@^2.1.0: 426 | version "2.2.3" 427 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 428 | dependencies: 429 | is-number "^2.1.0" 430 | isobject "^2.0.0" 431 | randomatic "^1.1.3" 432 | repeat-element "^1.1.2" 433 | repeat-string "^1.5.2" 434 | 435 | first-chunk-stream@^1.0.0: 436 | version "1.0.0" 437 | resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" 438 | 439 | for-in@^1.0.1: 440 | version "1.0.2" 441 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 442 | 443 | for-own@^0.1.4: 444 | version "0.1.5" 445 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 446 | dependencies: 447 | for-in "^1.0.1" 448 | 449 | forever-agent@~0.6.1: 450 | version "0.6.1" 451 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 452 | 453 | form-data@~2.1.1: 454 | version "2.1.4" 455 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 456 | dependencies: 457 | asynckit "^0.4.0" 458 | combined-stream "^1.0.5" 459 | mime-types "^2.1.12" 460 | 461 | form-data@~2.3.1: 462 | version "2.3.2" 463 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" 464 | dependencies: 465 | asynckit "^0.4.0" 466 | combined-stream "1.0.6" 467 | mime-types "^2.1.12" 468 | 469 | from@~0: 470 | version "0.1.7" 471 | resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" 472 | 473 | fs.realpath@^1.0.0: 474 | version "1.0.0" 475 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 476 | 477 | fstream@^1.0.2: 478 | version "1.0.11" 479 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 480 | dependencies: 481 | graceful-fs "^4.1.2" 482 | inherits "~2.0.0" 483 | mkdirp ">=0.5 0" 484 | rimraf "2" 485 | 486 | generate-function@^2.0.0: 487 | version "2.0.0" 488 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" 489 | 490 | generate-object-property@^1.1.0: 491 | version "1.2.0" 492 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" 493 | dependencies: 494 | is-property "^1.0.0" 495 | 496 | getpass@^0.1.1: 497 | version "0.1.7" 498 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 499 | dependencies: 500 | assert-plus "^1.0.0" 501 | 502 | glob-base@^0.3.0: 503 | version "0.3.0" 504 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 505 | dependencies: 506 | glob-parent "^2.0.0" 507 | is-glob "^2.0.0" 508 | 509 | glob-parent@^2.0.0: 510 | version "2.0.0" 511 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 512 | dependencies: 513 | is-glob "^2.0.0" 514 | 515 | glob-parent@^3.0.0: 516 | version "3.1.0" 517 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 518 | dependencies: 519 | is-glob "^3.1.0" 520 | path-dirname "^1.0.0" 521 | 522 | glob-stream@^5.3.2: 523 | version "5.3.5" 524 | resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" 525 | dependencies: 526 | extend "^3.0.0" 527 | glob "^5.0.3" 528 | glob-parent "^3.0.0" 529 | micromatch "^2.3.7" 530 | ordered-read-streams "^0.3.0" 531 | through2 "^0.6.0" 532 | to-absolute-glob "^0.1.1" 533 | unique-stream "^2.0.2" 534 | 535 | glob@7.1.2, glob@^7.0.5, glob@^7.1.2: 536 | version "7.1.2" 537 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 538 | dependencies: 539 | fs.realpath "^1.0.0" 540 | inflight "^1.0.4" 541 | inherits "2" 542 | minimatch "^3.0.4" 543 | once "^1.3.0" 544 | path-is-absolute "^1.0.0" 545 | 546 | glob@^5.0.3: 547 | version "5.0.15" 548 | resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" 549 | dependencies: 550 | inflight "^1.0.4" 551 | inherits "2" 552 | minimatch "2 || 3" 553 | once "^1.3.0" 554 | path-is-absolute "^1.0.0" 555 | 556 | glogg@^1.0.0: 557 | version "1.0.1" 558 | resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" 559 | dependencies: 560 | sparkles "^1.0.0" 561 | 562 | graceful-fs@^4.0.0, graceful-fs@^4.1.2: 563 | version "4.1.11" 564 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 565 | 566 | growl@1.10.3: 567 | version "1.10.3" 568 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" 569 | 570 | gulp-chmod@^2.0.0: 571 | version "2.0.0" 572 | resolved "https://registry.yarnpkg.com/gulp-chmod/-/gulp-chmod-2.0.0.tgz#00c390b928a0799b251accf631aa09e01cc6299c" 573 | dependencies: 574 | deep-assign "^1.0.0" 575 | stat-mode "^0.2.0" 576 | through2 "^2.0.0" 577 | 578 | gulp-filter@^5.0.1: 579 | version "5.1.0" 580 | resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-5.1.0.tgz#a05e11affb07cf7dcf41a7de1cb7b63ac3783e73" 581 | dependencies: 582 | multimatch "^2.0.0" 583 | plugin-error "^0.1.2" 584 | streamfilter "^1.0.5" 585 | 586 | gulp-gunzip@1.0.0: 587 | version "1.0.0" 588 | resolved "https://registry.yarnpkg.com/gulp-gunzip/-/gulp-gunzip-1.0.0.tgz#15b741145e83a9c6f50886241b57cc5871f151a9" 589 | dependencies: 590 | through2 "~0.6.5" 591 | vinyl "~0.4.6" 592 | 593 | gulp-remote-src@^0.4.3: 594 | version "0.4.3" 595 | resolved "https://registry.yarnpkg.com/gulp-remote-src/-/gulp-remote-src-0.4.3.tgz#5728cfd643433dd4845ddef0969f0f971a2ab4a1" 596 | dependencies: 597 | event-stream "~3.3.4" 598 | node.extend "~1.1.2" 599 | request "~2.79.0" 600 | through2 "~2.0.3" 601 | vinyl "~2.0.1" 602 | 603 | gulp-sourcemaps@1.6.0: 604 | version "1.6.0" 605 | resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" 606 | dependencies: 607 | convert-source-map "^1.1.1" 608 | graceful-fs "^4.1.2" 609 | strip-bom "^2.0.0" 610 | through2 "^2.0.0" 611 | vinyl "^1.0.0" 612 | 613 | gulp-symdest@^1.1.0: 614 | version "1.1.0" 615 | resolved "https://registry.yarnpkg.com/gulp-symdest/-/gulp-symdest-1.1.0.tgz#c165320732d192ce56fd94271ffa123234bf2ae0" 616 | dependencies: 617 | event-stream "^3.3.1" 618 | mkdirp "^0.5.1" 619 | queue "^3.1.0" 620 | vinyl-fs "^2.4.3" 621 | 622 | gulp-untar@^0.0.6: 623 | version "0.0.6" 624 | resolved "https://registry.yarnpkg.com/gulp-untar/-/gulp-untar-0.0.6.tgz#d6bdefde7e9a8e054c9f162385a0782c4be74000" 625 | dependencies: 626 | event-stream "~3.3.4" 627 | gulp-util "~3.0.8" 628 | streamifier "~0.1.1" 629 | tar "^2.2.1" 630 | through2 "~2.0.3" 631 | 632 | gulp-util@~3.0.8: 633 | version "3.0.8" 634 | resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" 635 | dependencies: 636 | array-differ "^1.0.0" 637 | array-uniq "^1.0.2" 638 | beeper "^1.0.0" 639 | chalk "^1.0.0" 640 | dateformat "^2.0.0" 641 | fancy-log "^1.1.0" 642 | gulplog "^1.0.0" 643 | has-gulplog "^0.1.0" 644 | lodash._reescape "^3.0.0" 645 | lodash._reevaluate "^3.0.0" 646 | lodash._reinterpolate "^3.0.0" 647 | lodash.template "^3.0.0" 648 | minimist "^1.1.0" 649 | multipipe "^0.1.2" 650 | object-assign "^3.0.0" 651 | replace-ext "0.0.1" 652 | through2 "^2.0.0" 653 | vinyl "^0.5.0" 654 | 655 | gulp-vinyl-zip@^2.1.0: 656 | version "2.1.0" 657 | resolved "https://registry.yarnpkg.com/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.0.tgz#24e40685dc05b7149995245099e0590263be8dad" 658 | dependencies: 659 | event-stream "^3.3.1" 660 | queue "^4.2.1" 661 | through2 "^2.0.3" 662 | vinyl "^2.0.2" 663 | vinyl-fs "^2.0.0" 664 | yauzl "^2.2.1" 665 | yazl "^2.2.1" 666 | 667 | gulplog@^1.0.0: 668 | version "1.0.0" 669 | resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" 670 | dependencies: 671 | glogg "^1.0.0" 672 | 673 | har-schema@^2.0.0: 674 | version "2.0.0" 675 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 676 | 677 | har-validator@~2.0.6: 678 | version "2.0.6" 679 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" 680 | dependencies: 681 | chalk "^1.1.1" 682 | commander "^2.9.0" 683 | is-my-json-valid "^2.12.4" 684 | pinkie-promise "^2.0.0" 685 | 686 | har-validator@~5.0.3: 687 | version "5.0.3" 688 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" 689 | dependencies: 690 | ajv "^5.1.0" 691 | har-schema "^2.0.0" 692 | 693 | has-ansi@^2.0.0: 694 | version "2.0.0" 695 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 696 | dependencies: 697 | ansi-regex "^2.0.0" 698 | 699 | has-flag@^2.0.0: 700 | version "2.0.0" 701 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 702 | 703 | has-gulplog@^0.1.0: 704 | version "0.1.0" 705 | resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" 706 | dependencies: 707 | sparkles "^1.0.0" 708 | 709 | hawk@~3.1.3: 710 | version "3.1.3" 711 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 712 | dependencies: 713 | boom "2.x.x" 714 | cryptiles "2.x.x" 715 | hoek "2.x.x" 716 | sntp "1.x.x" 717 | 718 | hawk@~6.0.2: 719 | version "6.0.2" 720 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" 721 | dependencies: 722 | boom "4.x.x" 723 | cryptiles "3.x.x" 724 | hoek "4.x.x" 725 | sntp "2.x.x" 726 | 727 | he@1.1.1: 728 | version "1.1.1" 729 | resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" 730 | 731 | hoek@2.x.x: 732 | version "2.16.3" 733 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 734 | 735 | hoek@4.x.x: 736 | version "4.2.1" 737 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" 738 | 739 | http-signature@~1.1.0: 740 | version "1.1.1" 741 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 742 | dependencies: 743 | assert-plus "^0.2.0" 744 | jsprim "^1.2.2" 745 | sshpk "^1.7.0" 746 | 747 | http-signature@~1.2.0: 748 | version "1.2.0" 749 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 750 | dependencies: 751 | assert-plus "^1.0.0" 752 | jsprim "^1.2.2" 753 | sshpk "^1.7.0" 754 | 755 | inflight@^1.0.4: 756 | version "1.0.6" 757 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 758 | dependencies: 759 | once "^1.3.0" 760 | wrappy "1" 761 | 762 | inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: 763 | version "2.0.3" 764 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 765 | 766 | is-buffer@^1.1.5: 767 | version "1.1.6" 768 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 769 | 770 | is-dotfile@^1.0.0: 771 | version "1.0.3" 772 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 773 | 774 | is-equal-shallow@^0.1.3: 775 | version "0.1.3" 776 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 777 | dependencies: 778 | is-primitive "^2.0.0" 779 | 780 | is-extendable@^0.1.0, is-extendable@^0.1.1: 781 | version "0.1.1" 782 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 783 | 784 | is-extglob@^1.0.0: 785 | version "1.0.0" 786 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 787 | 788 | is-extglob@^2.1.0: 789 | version "2.1.1" 790 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 791 | 792 | is-glob@^2.0.0, is-glob@^2.0.1: 793 | version "2.0.1" 794 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 795 | dependencies: 796 | is-extglob "^1.0.0" 797 | 798 | is-glob@^3.1.0: 799 | version "3.1.0" 800 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 801 | dependencies: 802 | is-extglob "^2.1.0" 803 | 804 | is-my-ip-valid@^1.0.0: 805 | version "1.0.0" 806 | resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" 807 | 808 | is-my-json-valid@^2.12.4: 809 | version "2.17.2" 810 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" 811 | dependencies: 812 | generate-function "^2.0.0" 813 | generate-object-property "^1.1.0" 814 | is-my-ip-valid "^1.0.0" 815 | jsonpointer "^4.0.0" 816 | xtend "^4.0.0" 817 | 818 | is-number@^2.1.0: 819 | version "2.1.0" 820 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 821 | dependencies: 822 | kind-of "^3.0.2" 823 | 824 | is-number@^3.0.0: 825 | version "3.0.0" 826 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 827 | dependencies: 828 | kind-of "^3.0.2" 829 | 830 | is-obj@^1.0.0: 831 | version "1.0.1" 832 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 833 | 834 | is-posix-bracket@^0.1.0: 835 | version "0.1.1" 836 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 837 | 838 | is-primitive@^2.0.0: 839 | version "2.0.0" 840 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 841 | 842 | is-property@^1.0.0: 843 | version "1.0.2" 844 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 845 | 846 | is-stream@^1.0.1, is-stream@^1.1.0: 847 | version "1.1.0" 848 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 849 | 850 | is-typedarray@~1.0.0: 851 | version "1.0.0" 852 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 853 | 854 | is-utf8@^0.2.0: 855 | version "0.2.1" 856 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 857 | 858 | is-valid-glob@^0.3.0: 859 | version "0.3.0" 860 | resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" 861 | 862 | is@^3.1.0: 863 | version "3.2.1" 864 | resolved "https://registry.yarnpkg.com/is/-/is-3.2.1.tgz#d0ac2ad55eb7b0bec926a5266f6c662aaa83dca5" 865 | 866 | isarray@0.0.1: 867 | version "0.0.1" 868 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 869 | 870 | isarray@1.0.0, isarray@~1.0.0: 871 | version "1.0.0" 872 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 873 | 874 | isobject@^2.0.0: 875 | version "2.1.0" 876 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 877 | dependencies: 878 | isarray "1.0.0" 879 | 880 | isstream@~0.1.2: 881 | version "0.1.2" 882 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 883 | 884 | jsbn@~0.1.0: 885 | version "0.1.1" 886 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 887 | 888 | json-schema-traverse@^0.3.0: 889 | version "0.3.1" 890 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 891 | 892 | json-schema@0.2.3: 893 | version "0.2.3" 894 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 895 | 896 | json-stable-stringify@^1.0.0: 897 | version "1.0.1" 898 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 899 | dependencies: 900 | jsonify "~0.0.0" 901 | 902 | json-stringify-safe@~5.0.1: 903 | version "5.0.1" 904 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 905 | 906 | jsonify@~0.0.0: 907 | version "0.0.0" 908 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 909 | 910 | jsonpointer@^4.0.0: 911 | version "4.0.1" 912 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" 913 | 914 | jsprim@^1.2.2: 915 | version "1.4.1" 916 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 917 | dependencies: 918 | assert-plus "1.0.0" 919 | extsprintf "1.3.0" 920 | json-schema "0.2.3" 921 | verror "1.10.0" 922 | 923 | kind-of@^1.1.0: 924 | version "1.1.0" 925 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" 926 | 927 | kind-of@^3.0.2: 928 | version "3.2.2" 929 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 930 | dependencies: 931 | is-buffer "^1.1.5" 932 | 933 | kind-of@^4.0.0: 934 | version "4.0.0" 935 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 936 | dependencies: 937 | is-buffer "^1.1.5" 938 | 939 | lazystream@^1.0.0: 940 | version "1.0.0" 941 | resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" 942 | dependencies: 943 | readable-stream "^2.0.5" 944 | 945 | lodash._basecopy@^3.0.0: 946 | version "3.0.1" 947 | resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" 948 | 949 | lodash._basetostring@^3.0.0: 950 | version "3.0.1" 951 | resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" 952 | 953 | lodash._basevalues@^3.0.0: 954 | version "3.0.0" 955 | resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" 956 | 957 | lodash._getnative@^3.0.0: 958 | version "3.9.1" 959 | resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" 960 | 961 | lodash._isiterateecall@^3.0.0: 962 | version "3.0.9" 963 | resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" 964 | 965 | lodash._reescape@^3.0.0: 966 | version "3.0.0" 967 | resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" 968 | 969 | lodash._reevaluate@^3.0.0: 970 | version "3.0.0" 971 | resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" 972 | 973 | lodash._reinterpolate@^3.0.0: 974 | version "3.0.0" 975 | resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" 976 | 977 | lodash._root@^3.0.0: 978 | version "3.0.1" 979 | resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" 980 | 981 | lodash.escape@^3.0.0: 982 | version "3.2.0" 983 | resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" 984 | dependencies: 985 | lodash._root "^3.0.0" 986 | 987 | lodash.isarguments@^3.0.0: 988 | version "3.1.0" 989 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" 990 | 991 | lodash.isarray@^3.0.0: 992 | version "3.0.4" 993 | resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" 994 | 995 | lodash.isequal@^4.0.0: 996 | version "4.5.0" 997 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" 998 | 999 | lodash.keys@^3.0.0: 1000 | version "3.1.2" 1001 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" 1002 | dependencies: 1003 | lodash._getnative "^3.0.0" 1004 | lodash.isarguments "^3.0.0" 1005 | lodash.isarray "^3.0.0" 1006 | 1007 | lodash.restparam@^3.0.0: 1008 | version "3.6.1" 1009 | resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" 1010 | 1011 | lodash.template@^3.0.0: 1012 | version "3.6.2" 1013 | resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" 1014 | dependencies: 1015 | lodash._basecopy "^3.0.0" 1016 | lodash._basetostring "^3.0.0" 1017 | lodash._basevalues "^3.0.0" 1018 | lodash._isiterateecall "^3.0.0" 1019 | lodash._reinterpolate "^3.0.0" 1020 | lodash.escape "^3.0.0" 1021 | lodash.keys "^3.0.0" 1022 | lodash.restparam "^3.0.0" 1023 | lodash.templatesettings "^3.0.0" 1024 | 1025 | lodash.templatesettings@^3.0.0: 1026 | version "3.1.1" 1027 | resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" 1028 | dependencies: 1029 | lodash._reinterpolate "^3.0.0" 1030 | lodash.escape "^3.0.0" 1031 | 1032 | map-stream@~0.1.0: 1033 | version "0.1.0" 1034 | resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" 1035 | 1036 | merge-stream@^1.0.0: 1037 | version "1.0.1" 1038 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" 1039 | dependencies: 1040 | readable-stream "^2.0.1" 1041 | 1042 | micromatch@^2.3.7: 1043 | version "2.3.11" 1044 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 1045 | dependencies: 1046 | arr-diff "^2.0.0" 1047 | array-unique "^0.2.1" 1048 | braces "^1.8.2" 1049 | expand-brackets "^0.1.4" 1050 | extglob "^0.3.1" 1051 | filename-regex "^2.0.0" 1052 | is-extglob "^1.0.0" 1053 | is-glob "^2.0.1" 1054 | kind-of "^3.0.2" 1055 | normalize-path "^2.0.1" 1056 | object.omit "^2.0.0" 1057 | parse-glob "^3.0.4" 1058 | regex-cache "^0.4.2" 1059 | 1060 | mime-db@~1.33.0: 1061 | version "1.33.0" 1062 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 1063 | 1064 | mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7: 1065 | version "2.1.18" 1066 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 1067 | dependencies: 1068 | mime-db "~1.33.0" 1069 | 1070 | "minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.4: 1071 | version "3.0.4" 1072 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1073 | dependencies: 1074 | brace-expansion "^1.1.7" 1075 | 1076 | minimist@0.0.8: 1077 | version "0.0.8" 1078 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1079 | 1080 | minimist@^1.1.0: 1081 | version "1.2.0" 1082 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1083 | 1084 | mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: 1085 | version "0.5.1" 1086 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1087 | dependencies: 1088 | minimist "0.0.8" 1089 | 1090 | mocha@^4.0.1: 1091 | version "4.1.0" 1092 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794" 1093 | dependencies: 1094 | browser-stdout "1.3.0" 1095 | commander "2.11.0" 1096 | debug "3.1.0" 1097 | diff "3.3.1" 1098 | escape-string-regexp "1.0.5" 1099 | glob "7.1.2" 1100 | growl "1.10.3" 1101 | he "1.1.1" 1102 | mkdirp "0.5.1" 1103 | supports-color "4.4.0" 1104 | 1105 | ms@2.0.0: 1106 | version "2.0.0" 1107 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1108 | 1109 | multimatch@^2.0.0: 1110 | version "2.1.0" 1111 | resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" 1112 | dependencies: 1113 | array-differ "^1.0.0" 1114 | array-union "^1.0.1" 1115 | arrify "^1.0.0" 1116 | minimatch "^3.0.0" 1117 | 1118 | multipipe@^0.1.2: 1119 | version "0.1.2" 1120 | resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" 1121 | dependencies: 1122 | duplexer2 "0.0.2" 1123 | 1124 | node.extend@~1.1.2: 1125 | version "1.1.6" 1126 | resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-1.1.6.tgz#a7b882c82d6c93a4863a5504bd5de8ec86258b96" 1127 | dependencies: 1128 | is "^3.1.0" 1129 | 1130 | normalize-path@^2.0.1: 1131 | version "2.1.1" 1132 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1133 | dependencies: 1134 | remove-trailing-separator "^1.0.1" 1135 | 1136 | oauth-sign@~0.8.1, oauth-sign@~0.8.2: 1137 | version "0.8.2" 1138 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 1139 | 1140 | object-assign@^3.0.0: 1141 | version "3.0.0" 1142 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" 1143 | 1144 | object-assign@^4.0.0: 1145 | version "4.1.1" 1146 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1147 | 1148 | object.omit@^2.0.0: 1149 | version "2.0.1" 1150 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 1151 | dependencies: 1152 | for-own "^0.1.4" 1153 | is-extendable "^0.1.1" 1154 | 1155 | once@^1.3.0, once@^1.4.0: 1156 | version "1.4.0" 1157 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1158 | dependencies: 1159 | wrappy "1" 1160 | 1161 | ordered-read-streams@^0.3.0: 1162 | version "0.3.0" 1163 | resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" 1164 | dependencies: 1165 | is-stream "^1.0.1" 1166 | readable-stream "^2.0.1" 1167 | 1168 | parse-glob@^3.0.4: 1169 | version "3.0.4" 1170 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 1171 | dependencies: 1172 | glob-base "^0.3.0" 1173 | is-dotfile "^1.0.0" 1174 | is-extglob "^1.0.0" 1175 | is-glob "^2.0.0" 1176 | 1177 | path-dirname@^1.0.0: 1178 | version "1.0.2" 1179 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 1180 | 1181 | path-is-absolute@^1.0.0: 1182 | version "1.0.1" 1183 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1184 | 1185 | pause-stream@0.0.11: 1186 | version "0.0.11" 1187 | resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" 1188 | dependencies: 1189 | through "~2.3" 1190 | 1191 | pend@~1.2.0: 1192 | version "1.2.0" 1193 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" 1194 | 1195 | performance-now@^2.1.0: 1196 | version "2.1.0" 1197 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 1198 | 1199 | pinkie-promise@^2.0.0: 1200 | version "2.0.1" 1201 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1202 | dependencies: 1203 | pinkie "^2.0.0" 1204 | 1205 | pinkie@^2.0.0: 1206 | version "2.0.4" 1207 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1208 | 1209 | plugin-error@^0.1.2: 1210 | version "0.1.2" 1211 | resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" 1212 | dependencies: 1213 | ansi-cyan "^0.1.1" 1214 | ansi-red "^0.1.1" 1215 | arr-diff "^1.0.1" 1216 | arr-union "^2.0.1" 1217 | extend-shallow "^1.1.2" 1218 | 1219 | preserve@^0.2.0: 1220 | version "0.2.0" 1221 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 1222 | 1223 | process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: 1224 | version "2.0.0" 1225 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 1226 | 1227 | punycode@^1.4.1: 1228 | version "1.4.1" 1229 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 1230 | 1231 | qs@~6.3.0: 1232 | version "6.3.2" 1233 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" 1234 | 1235 | qs@~6.5.1: 1236 | version "6.5.1" 1237 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 1238 | 1239 | querystringify@~1.0.0: 1240 | version "1.0.0" 1241 | resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" 1242 | 1243 | queue@^3.1.0: 1244 | version "3.1.0" 1245 | resolved "https://registry.yarnpkg.com/queue/-/queue-3.1.0.tgz#6c49d01f009e2256788789f2bffac6b8b9990585" 1246 | dependencies: 1247 | inherits "~2.0.0" 1248 | 1249 | queue@^4.2.1: 1250 | version "4.4.2" 1251 | resolved "https://registry.yarnpkg.com/queue/-/queue-4.4.2.tgz#5a9733d9a8b8bd1b36e934bc9c55ab89b28e29c7" 1252 | dependencies: 1253 | inherits "~2.0.0" 1254 | 1255 | randomatic@^1.1.3: 1256 | version "1.1.7" 1257 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" 1258 | dependencies: 1259 | is-number "^3.0.0" 1260 | kind-of "^4.0.0" 1261 | 1262 | "readable-stream@>=1.0.33-1 <1.1.0-0": 1263 | version "1.0.34" 1264 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" 1265 | dependencies: 1266 | core-util-is "~1.0.0" 1267 | inherits "~2.0.1" 1268 | isarray "0.0.1" 1269 | string_decoder "~0.10.x" 1270 | 1271 | 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: 1272 | version "2.3.6" 1273 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 1274 | dependencies: 1275 | core-util-is "~1.0.0" 1276 | inherits "~2.0.3" 1277 | isarray "~1.0.0" 1278 | process-nextick-args "~2.0.0" 1279 | safe-buffer "~5.1.1" 1280 | string_decoder "~1.1.1" 1281 | util-deprecate "~1.0.1" 1282 | 1283 | readable-stream@~1.1.9: 1284 | version "1.1.14" 1285 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 1286 | dependencies: 1287 | core-util-is "~1.0.0" 1288 | inherits "~2.0.1" 1289 | isarray "0.0.1" 1290 | string_decoder "~0.10.x" 1291 | 1292 | regex-cache@^0.4.2: 1293 | version "0.4.4" 1294 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" 1295 | dependencies: 1296 | is-equal-shallow "^0.1.3" 1297 | 1298 | remove-trailing-separator@^1.0.1: 1299 | version "1.1.0" 1300 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 1301 | 1302 | repeat-element@^1.1.2: 1303 | version "1.1.2" 1304 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 1305 | 1306 | repeat-string@^1.5.2: 1307 | version "1.6.1" 1308 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1309 | 1310 | replace-ext@0.0.1: 1311 | version "0.0.1" 1312 | resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" 1313 | 1314 | replace-ext@^1.0.0: 1315 | version "1.0.0" 1316 | resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" 1317 | 1318 | request@^2.83.0: 1319 | version "2.85.0" 1320 | resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" 1321 | dependencies: 1322 | aws-sign2 "~0.7.0" 1323 | aws4 "^1.6.0" 1324 | caseless "~0.12.0" 1325 | combined-stream "~1.0.5" 1326 | extend "~3.0.1" 1327 | forever-agent "~0.6.1" 1328 | form-data "~2.3.1" 1329 | har-validator "~5.0.3" 1330 | hawk "~6.0.2" 1331 | http-signature "~1.2.0" 1332 | is-typedarray "~1.0.0" 1333 | isstream "~0.1.2" 1334 | json-stringify-safe "~5.0.1" 1335 | mime-types "~2.1.17" 1336 | oauth-sign "~0.8.2" 1337 | performance-now "^2.1.0" 1338 | qs "~6.5.1" 1339 | safe-buffer "^5.1.1" 1340 | stringstream "~0.0.5" 1341 | tough-cookie "~2.3.3" 1342 | tunnel-agent "^0.6.0" 1343 | uuid "^3.1.0" 1344 | 1345 | request@~2.79.0: 1346 | version "2.79.0" 1347 | resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" 1348 | dependencies: 1349 | aws-sign2 "~0.6.0" 1350 | aws4 "^1.2.1" 1351 | caseless "~0.11.0" 1352 | combined-stream "~1.0.5" 1353 | extend "~3.0.0" 1354 | forever-agent "~0.6.1" 1355 | form-data "~2.1.1" 1356 | har-validator "~2.0.6" 1357 | hawk "~3.1.3" 1358 | http-signature "~1.1.0" 1359 | is-typedarray "~1.0.0" 1360 | isstream "~0.1.2" 1361 | json-stringify-safe "~5.0.1" 1362 | mime-types "~2.1.7" 1363 | oauth-sign "~0.8.1" 1364 | qs "~6.3.0" 1365 | stringstream "~0.0.4" 1366 | tough-cookie "~2.3.0" 1367 | tunnel-agent "~0.4.1" 1368 | uuid "^3.0.0" 1369 | 1370 | requires-port@~1.0.0: 1371 | version "1.0.0" 1372 | resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" 1373 | 1374 | rimraf@2: 1375 | version "2.6.2" 1376 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1377 | dependencies: 1378 | glob "^7.0.5" 1379 | 1380 | safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1381 | version "5.1.1" 1382 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 1383 | 1384 | semver@^5.4.1: 1385 | version "5.5.0" 1386 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 1387 | 1388 | sntp@1.x.x: 1389 | version "1.0.9" 1390 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 1391 | dependencies: 1392 | hoek "2.x.x" 1393 | 1394 | sntp@2.x.x: 1395 | version "2.1.0" 1396 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" 1397 | dependencies: 1398 | hoek "4.x.x" 1399 | 1400 | source-map-support@^0.5.0: 1401 | version "0.5.4" 1402 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.4.tgz#54456efa89caa9270af7cd624cc2f123e51fbae8" 1403 | dependencies: 1404 | source-map "^0.6.0" 1405 | 1406 | source-map@^0.6.0: 1407 | version "0.6.1" 1408 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1409 | 1410 | sparkles@^1.0.0: 1411 | version "1.0.0" 1412 | resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" 1413 | 1414 | split@0.3: 1415 | version "0.3.3" 1416 | resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" 1417 | dependencies: 1418 | through "2" 1419 | 1420 | sshpk@^1.7.0: 1421 | version "1.14.1" 1422 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" 1423 | dependencies: 1424 | asn1 "~0.2.3" 1425 | assert-plus "^1.0.0" 1426 | dashdash "^1.12.0" 1427 | getpass "^0.1.1" 1428 | optionalDependencies: 1429 | bcrypt-pbkdf "^1.0.0" 1430 | ecc-jsbn "~0.1.1" 1431 | jsbn "~0.1.0" 1432 | tweetnacl "~0.14.0" 1433 | 1434 | stat-mode@^0.2.0: 1435 | version "0.2.2" 1436 | resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" 1437 | 1438 | stream-combiner@~0.0.4: 1439 | version "0.0.4" 1440 | resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" 1441 | dependencies: 1442 | duplexer "~0.1.1" 1443 | 1444 | stream-shift@^1.0.0: 1445 | version "1.0.0" 1446 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" 1447 | 1448 | streamfilter@^1.0.5: 1449 | version "1.0.7" 1450 | resolved "https://registry.yarnpkg.com/streamfilter/-/streamfilter-1.0.7.tgz#ae3e64522aa5a35c061fd17f67620c7653c643c9" 1451 | dependencies: 1452 | readable-stream "^2.0.2" 1453 | 1454 | streamifier@~0.1.1: 1455 | version "0.1.1" 1456 | resolved "https://registry.yarnpkg.com/streamifier/-/streamifier-0.1.1.tgz#97e98d8fa4d105d62a2691d1dc07e820db8dfc4f" 1457 | 1458 | string_decoder@~0.10.x: 1459 | version "0.10.31" 1460 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 1461 | 1462 | string_decoder@~1.1.1: 1463 | version "1.1.1" 1464 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1465 | dependencies: 1466 | safe-buffer "~5.1.0" 1467 | 1468 | stringstream@~0.0.4, stringstream@~0.0.5: 1469 | version "0.0.5" 1470 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 1471 | 1472 | strip-ansi@^3.0.0: 1473 | version "3.0.1" 1474 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1475 | dependencies: 1476 | ansi-regex "^2.0.0" 1477 | 1478 | strip-bom-stream@^1.0.0: 1479 | version "1.0.0" 1480 | resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" 1481 | dependencies: 1482 | first-chunk-stream "^1.0.0" 1483 | strip-bom "^2.0.0" 1484 | 1485 | strip-bom@^2.0.0: 1486 | version "2.0.0" 1487 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 1488 | dependencies: 1489 | is-utf8 "^0.2.0" 1490 | 1491 | supports-color@4.4.0: 1492 | version "4.4.0" 1493 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" 1494 | dependencies: 1495 | has-flag "^2.0.0" 1496 | 1497 | supports-color@^2.0.0: 1498 | version "2.0.0" 1499 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1500 | 1501 | tar@^2.2.1: 1502 | version "2.2.1" 1503 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 1504 | dependencies: 1505 | block-stream "*" 1506 | fstream "^1.0.2" 1507 | inherits "2" 1508 | 1509 | through2-filter@^2.0.0: 1510 | version "2.0.0" 1511 | resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" 1512 | dependencies: 1513 | through2 "~2.0.0" 1514 | xtend "~4.0.0" 1515 | 1516 | through2@^0.6.0, through2@~0.6.5: 1517 | version "0.6.5" 1518 | resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" 1519 | dependencies: 1520 | readable-stream ">=1.0.33-1 <1.1.0-0" 1521 | xtend ">=4.0.0 <4.1.0-0" 1522 | 1523 | through2@^2.0.0, through2@^2.0.3, through2@~2.0.0, through2@~2.0.3: 1524 | version "2.0.3" 1525 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" 1526 | dependencies: 1527 | readable-stream "^2.1.5" 1528 | xtend "~4.0.1" 1529 | 1530 | through@2, through@~2.3, through@~2.3.1: 1531 | version "2.3.8" 1532 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1533 | 1534 | time-stamp@^1.0.0: 1535 | version "1.1.0" 1536 | resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" 1537 | 1538 | to-absolute-glob@^0.1.1: 1539 | version "0.1.1" 1540 | resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" 1541 | dependencies: 1542 | extend-shallow "^2.0.1" 1543 | 1544 | tough-cookie@~2.3.0, tough-cookie@~2.3.3: 1545 | version "2.3.4" 1546 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" 1547 | dependencies: 1548 | punycode "^1.4.1" 1549 | 1550 | tunnel-agent@^0.6.0: 1551 | version "0.6.0" 1552 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1553 | dependencies: 1554 | safe-buffer "^5.0.1" 1555 | 1556 | tunnel-agent@~0.4.1: 1557 | version "0.4.3" 1558 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" 1559 | 1560 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1561 | version "0.14.5" 1562 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1563 | 1564 | typescript@^2.8.1: 1565 | version "2.8.1" 1566 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.1.tgz#6160e4f8f195d5ba81d4876f9c0cc1fbc0820624" 1567 | 1568 | unique-stream@^2.0.2: 1569 | version "2.2.1" 1570 | resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" 1571 | dependencies: 1572 | json-stable-stringify "^1.0.0" 1573 | through2-filter "^2.0.0" 1574 | 1575 | url-parse@^1.1.9: 1576 | version "1.2.0" 1577 | resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986" 1578 | dependencies: 1579 | querystringify "~1.0.0" 1580 | requires-port "~1.0.0" 1581 | 1582 | util-deprecate@~1.0.1: 1583 | version "1.0.2" 1584 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1585 | 1586 | uuid@^3.0.0, uuid@^3.1.0: 1587 | version "3.2.1" 1588 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 1589 | 1590 | vali-date@^1.0.0: 1591 | version "1.0.0" 1592 | resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" 1593 | 1594 | verror@1.10.0: 1595 | version "1.10.0" 1596 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 1597 | dependencies: 1598 | assert-plus "^1.0.0" 1599 | core-util-is "1.0.2" 1600 | extsprintf "^1.2.0" 1601 | 1602 | vinyl-fs@^2.0.0, vinyl-fs@^2.4.3: 1603 | version "2.4.4" 1604 | resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" 1605 | dependencies: 1606 | duplexify "^3.2.0" 1607 | glob-stream "^5.3.2" 1608 | graceful-fs "^4.0.0" 1609 | gulp-sourcemaps "1.6.0" 1610 | is-valid-glob "^0.3.0" 1611 | lazystream "^1.0.0" 1612 | lodash.isequal "^4.0.0" 1613 | merge-stream "^1.0.0" 1614 | mkdirp "^0.5.0" 1615 | object-assign "^4.0.0" 1616 | readable-stream "^2.0.4" 1617 | strip-bom "^2.0.0" 1618 | strip-bom-stream "^1.0.0" 1619 | through2 "^2.0.0" 1620 | through2-filter "^2.0.0" 1621 | vali-date "^1.0.0" 1622 | vinyl "^1.0.0" 1623 | 1624 | vinyl-source-stream@^1.1.0: 1625 | version "1.1.2" 1626 | resolved "https://registry.yarnpkg.com/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz#62b53a135610a896e98ca96bee3a87f008a8e780" 1627 | dependencies: 1628 | through2 "^2.0.3" 1629 | vinyl "^0.4.3" 1630 | 1631 | vinyl@^0.4.3, vinyl@~0.4.6: 1632 | version "0.4.6" 1633 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" 1634 | dependencies: 1635 | clone "^0.2.0" 1636 | clone-stats "^0.0.1" 1637 | 1638 | vinyl@^0.5.0: 1639 | version "0.5.3" 1640 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" 1641 | dependencies: 1642 | clone "^1.0.0" 1643 | clone-stats "^0.0.1" 1644 | replace-ext "0.0.1" 1645 | 1646 | vinyl@^1.0.0: 1647 | version "1.2.0" 1648 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" 1649 | dependencies: 1650 | clone "^1.0.0" 1651 | clone-stats "^0.0.1" 1652 | replace-ext "0.0.1" 1653 | 1654 | vinyl@^2.0.2: 1655 | version "2.1.0" 1656 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c" 1657 | dependencies: 1658 | clone "^2.1.1" 1659 | clone-buffer "^1.0.0" 1660 | clone-stats "^1.0.0" 1661 | cloneable-readable "^1.0.0" 1662 | remove-trailing-separator "^1.0.1" 1663 | replace-ext "^1.0.0" 1664 | 1665 | vinyl@~2.0.1: 1666 | version "2.0.2" 1667 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.0.2.tgz#0a3713d8d4e9221c58f10ca16c0116c9e25eda7c" 1668 | dependencies: 1669 | clone "^1.0.0" 1670 | clone-buffer "^1.0.0" 1671 | clone-stats "^1.0.0" 1672 | cloneable-readable "^1.0.0" 1673 | is-stream "^1.1.0" 1674 | remove-trailing-separator "^1.0.1" 1675 | replace-ext "^1.0.0" 1676 | 1677 | vscode-css-languageservice@^3.0.8: 1678 | version "3.0.8" 1679 | resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-3.0.8.tgz#dc27a2f6eefd191bc603be6b9c0a59232a4c2b9f" 1680 | dependencies: 1681 | vscode-languageserver-types "^3.6.1" 1682 | vscode-nls "^3.2.1" 1683 | 1684 | vscode-jsonrpc@^3.6.0: 1685 | version "3.6.0" 1686 | resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.0.tgz#848d56995d5168950d84feb5d9c237ae5c6a02d4" 1687 | 1688 | vscode-languageclient@^4.0.1: 1689 | version "4.0.1" 1690 | resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-4.0.1.tgz#70a3d98afa62b12bf932a5c987c8a73cee195017" 1691 | dependencies: 1692 | vscode-languageserver-protocol "^3.6.0" 1693 | 1694 | vscode-languageserver-protocol@^3.6.0: 1695 | version "3.6.0" 1696 | resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.6.0.tgz#579642cdcccf74b0cd771c33daa3239acb40d040" 1697 | dependencies: 1698 | vscode-jsonrpc "^3.6.0" 1699 | vscode-languageserver-types "^3.6.0" 1700 | 1701 | vscode-languageserver-types@^3.6.0, vscode-languageserver-types@^3.6.1: 1702 | version "3.6.1" 1703 | resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.6.1.tgz#4bc06a48dff653495f12f94b8b1e228988a1748d" 1704 | 1705 | vscode-languageserver@^4.0.0: 1706 | version "4.0.0" 1707 | resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-4.0.0.tgz#8b792f0d6d10acfe363d02371ed4ce53d08af88a" 1708 | dependencies: 1709 | vscode-languageserver-protocol "^3.6.0" 1710 | vscode-uri "^1.0.1" 1711 | 1712 | vscode-nls@^3.2.1, vscode-nls@^3.2.2: 1713 | version "3.2.2" 1714 | resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.2.tgz#3817eca5b985c2393de325197cf4e15eb2aa5350" 1715 | 1716 | vscode-uri@^1.0.1: 1717 | version "1.0.3" 1718 | resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.3.tgz#631bdbf716dccab0e65291a8dc25c23232085a52" 1719 | 1720 | vscode@^1.1.14: 1721 | version "1.1.14" 1722 | resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.14.tgz#f327f5fd45c085d12def616962af205b2bc75db5" 1723 | dependencies: 1724 | glob "^7.1.2" 1725 | gulp-chmod "^2.0.0" 1726 | gulp-filter "^5.0.1" 1727 | gulp-gunzip "1.0.0" 1728 | gulp-remote-src "^0.4.3" 1729 | gulp-symdest "^1.1.0" 1730 | gulp-untar "^0.0.6" 1731 | gulp-vinyl-zip "^2.1.0" 1732 | mocha "^4.0.1" 1733 | request "^2.83.0" 1734 | semver "^5.4.1" 1735 | source-map-support "^0.5.0" 1736 | url-parse "^1.1.9" 1737 | vinyl-source-stream "^1.1.0" 1738 | 1739 | wrappy@1: 1740 | version "1.0.2" 1741 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1742 | 1743 | "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: 1744 | version "4.0.1" 1745 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 1746 | 1747 | yauzl@^2.2.1: 1748 | version "2.9.1" 1749 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.9.1.tgz#a81981ea70a57946133883f029c5821a89359a7f" 1750 | dependencies: 1751 | buffer-crc32 "~0.2.3" 1752 | fd-slicer "~1.0.1" 1753 | 1754 | yazl@^2.2.1: 1755 | version "2.4.3" 1756 | resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.4.3.tgz#ec26e5cc87d5601b9df8432dbdd3cd2e5173a071" 1757 | dependencies: 1758 | buffer-crc32 "~0.2.3" 1759 | --------------------------------------------------------------------------------