├── .gitignore ├── .vscodeignore ├── icons └── logo.png ├── .prettierrc ├── tsconfig.json ├── .vscode └── launch.json ├── language-configuration.json ├── LICENSE ├── docs └── preprocessors │ ├── typescript.md │ └── scss.md ├── src ├── extension.ts └── html │ └── autoClose.ts ├── README.md ├── CHANGELOG.md ├── package.json ├── syntaxes └── svelte.tmLanguage.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /dist 2 | /node_modules 3 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | **/tsconfig.json 2 | src 3 | .vscode 4 | -------------------------------------------------------------------------------- /icons/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesbirtles/svelte-vscode/HEAD/icons/logo.png -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": false, 3 | "printWidth": 100, 4 | "tabWidth": 4, 5 | "semi": true, 6 | "trailingComma": "all", 7 | "singleQuote": true 8 | } 9 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "commonjs", 5 | "moduleResolution": "node", 6 | "lib": ["es6", "es2016.array.include"], 7 | "strict": true, 8 | "declaration": true, 9 | "outDir": "dist", 10 | "sourceMap": true 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | // List of configurations. Add new configurations or edit existing ones. 4 | "configurations": [ 5 | { 6 | "name": "Launch Client", 7 | "type": "extensionHost", 8 | "request": "launch", 9 | "runtimeExecutable": "${execPath}", 10 | "args": ["--extensionDevelopmentPath=${workspaceRoot}"], 11 | "stopOnEntry": false, 12 | "sourceMaps": true, 13 | "outFiles": ["${workspaceRoot}/dist/**/*.js"] 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "blockComment": [""] 4 | }, 5 | "brackets": [[""], ["<", ">"], ["{", "}"], ["(", ")"], ["[", "]"]], 6 | "autoClosingPairs": [ 7 | { "open": "{", "close": "}" }, 8 | { "open": "[", "close": "]" }, 9 | { "open": "(", "close": ")" }, 10 | { "open": "'", "close": "'" }, 11 | { "open": "\"", "close": "\"" }, 12 | { "open": "", "notIn": ["comment", "string"] } 13 | ], 14 | "surroundingPairs": [ 15 | { "open": "'", "close": "'" }, 16 | { "open": "\"", "close": "\"" }, 17 | { "open": "{", "close": "}" }, 18 | { "open": "[", "close": "]" }, 19 | { "open": "(", "close": ")" }, 20 | { "open": "<", "close": ">" } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 James Birtles 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/preprocessors/typescript.md: -------------------------------------------------------------------------------- 1 | # TypeScript Support 2 | 3 | To tell us to treat your script tags as typescript, add a `type` or `lang` attribute to your script tags like so: 4 | 5 | ```html 6 | 7 | 10 | 11 | 12 | 15 | ``` 16 | 17 | Now you'll need to add a `svelte.config.js` file at the root of your project to tell svelte how to convert your TypeScript into JavaScript that it understands. 18 | 19 | You likely already have this configuration somewhere if you are/are planning to use TypeScript with svelte, e.g. webpack config, rollup config, etc. 20 | 21 | _Tip: To avoid duplication of config, you can import the `svelte.config.js` file in your bundle configuration_ 22 | 23 | ### Example Configurations 24 | 25 | #### Using [svelte-preprocess](https://github.com/kaisermann/svelte-preprocess) by [@kaisermann](https://github.com/kaisermann) 26 | 27 | ##### Install 28 | 29 | ```sh 30 | npm i -D svelte-preprocess typescript 31 | ``` 32 | 33 |
34 | Yarn 35 | 36 | ```sh 37 | yarn add --dev svelte-preprocess typescript 38 | ``` 39 | 40 |
41 | 42 | ##### Set up `svelte.config.js` 43 | 44 | ```js 45 | const sveltePreprocess = require('svelte-preprocess'); 46 | 47 | module.exports = { 48 | preprocess: sveltePreprocess(), 49 | }; 50 | ``` 51 | 52 | ##### Restart the svelte language server 53 | 54 | You will need to tell svelte-vscode to restart the svelte language server in order to pick up the new configuration. 55 | 56 | Hit `ctrl-shift-p` or `cmd-shift-p` on mac, type `svelte restart`, and select `Svelte: Restart Language Server`. Any errors you were seeing should now go away and you're now all set up! 57 | -------------------------------------------------------------------------------- /docs/preprocessors/scss.md: -------------------------------------------------------------------------------- 1 | # SCSS Support 2 | 3 | ## Syntax Highlighting 4 | 5 | To gain syntax highlighing for your SCSS code, add a `type` or `lang` attribute to your style tags like so: 6 | 7 | ```html 8 | 9 | 16 | 17 | 18 | 25 | ``` 26 | 27 | ## Fix svelte errors 28 | 29 | The highlighter can now understand the syntax, but svelte still can't. 30 | For that you will need to add a `svelte.config.js` file at the root of your project to tell svelte how to convert your SCSS into CSS that it understands. 31 | 32 | You likely already have this configuration somewhere if you are/are planning to use SCSS with svelte, e.g. webpack config, rollup config, etc. 33 | 34 | _Tip: To avoid duplication of config, you can import the `svelte.config.js` file in your bundle configuration_ 35 | 36 | ### Example Configurations 37 | 38 | #### Using [svelte-preprocess](https://github.com/kaisermann/svelte-preprocess) by [@kaisermann](https://github.com/kaisermann) 39 | 40 | ##### Install 41 | 42 | ```sh 43 | npm i -D svelte-preprocess node-sass 44 | ``` 45 | 46 |
47 | Yarn 48 | 49 | ```sh 50 | yarn add --dev svelte-preprocess node-sass 51 | ``` 52 | 53 |
54 | 55 | ##### Set up `svelte.config.js` 56 | 57 | ```js 58 | const sveltePreprocess = require('svelte-preprocess'); 59 | 60 | module.exports = { 61 | preprocess: sveltePreprocess(), 62 | }; 63 | ``` 64 | 65 | ##### Restart the svelte language server 66 | 67 | You will need to tell svelte-vscode to restart the svelte language server in order to pick up the new configuration. 68 | 69 | Hit `ctrl-shift-p` or `cmd-shift-p` on mac, type `svelte restart`, and select `Svelte: Restart Language Server`. Any errors you were seeing should now go away and you're now all set up! 70 | -------------------------------------------------------------------------------- /src/extension.ts: -------------------------------------------------------------------------------- 1 | import * as path from 'path'; 2 | 3 | import { workspace, ExtensionContext, TextDocument, Position, commands, window } from 'vscode'; 4 | import { 5 | LanguageClient, 6 | LanguageClientOptions, 7 | ServerOptions, 8 | TransportKind, 9 | TextDocumentPositionParams, 10 | RequestType, 11 | RevealOutputChannelOn, 12 | } from 'vscode-languageclient'; 13 | import { activateTagClosing } from './html/autoClose'; 14 | 15 | namespace TagCloseRequest { 16 | export const type: RequestType = new RequestType( 17 | 'html/tag', 18 | ); 19 | } 20 | 21 | export function activate(context: ExtensionContext) { 22 | let serverModule = context.asAbsolutePath( 23 | path.join('./', 'node_modules', 'svelte-language-server', 'bin', 'server.js'), 24 | ); 25 | 26 | let debugOptions = { execArgv: ['--nolazy', '--inspect=6009'] }; 27 | let serverOptions: ServerOptions = { 28 | run: { module: serverModule, transport: TransportKind.ipc }, 29 | debug: { module: serverModule, transport: TransportKind.ipc, options: debugOptions }, 30 | }; 31 | 32 | const lsConfig = workspace.getConfiguration('svelte.language-server'); 33 | 34 | const serverRuntime = lsConfig.get('runtime'); 35 | if (serverRuntime) { 36 | serverOptions.run.runtime = serverRuntime; 37 | serverOptions.debug.runtime = serverRuntime; 38 | console.log('setting server runtime to', serverRuntime); 39 | } 40 | 41 | let clientOptions: LanguageClientOptions = { 42 | documentSelector: [{ scheme: 'file', language: 'svelte' }], 43 | revealOutputChannelOn: RevealOutputChannelOn.Never, 44 | synchronize: { 45 | configurationSection: ['svelte', 'html'], 46 | }, 47 | }; 48 | 49 | let ls = createLanguageServer(serverOptions, clientOptions); 50 | context.subscriptions.push(ls.start()); 51 | 52 | ls.onReady().then(() => { 53 | let tagRequestor = (document: TextDocument, position: Position) => { 54 | let param = ls.code2ProtocolConverter.asTextDocumentPositionParams(document, position); 55 | return ls.sendRequest(TagCloseRequest.type, param); 56 | }; 57 | let disposable = activateTagClosing(tagRequestor, { svelte: true }, 'html.autoClosingTags'); 58 | context.subscriptions.push(disposable); 59 | }); 60 | 61 | context.subscriptions.push( 62 | commands.registerCommand('svelte.restartLanguageServer', async () => { 63 | await ls.stop(); 64 | ls = createLanguageServer(serverOptions, clientOptions); 65 | context.subscriptions.push(ls.start()); 66 | await ls.onReady(); 67 | window.showInformationMessage('Svelte language server restarted.'); 68 | }), 69 | ); 70 | } 71 | 72 | function createLanguageServer(serverOptions: ServerOptions, clientOptions: LanguageClientOptions) { 73 | return new LanguageClient('svelte', 'Svelte', serverOptions, clientOptions); 74 | } 75 | -------------------------------------------------------------------------------- /src/html/autoClose.ts: -------------------------------------------------------------------------------- 1 | // Original source: https://github.com/Microsoft/vscode/blob/master/extensions/html-language-features/client/src/tagClosing.ts 2 | 3 | /*--------------------------------------------------------------------------------------------- 4 | * Copyright (c) Microsoft Corporation. All rights reserved. 5 | * Licensed under the MIT License. See License.txt in the project root for license information. 6 | *--------------------------------------------------------------------------------------------*/ 7 | 'use strict'; 8 | 9 | import { 10 | window, 11 | workspace, 12 | Disposable, 13 | TextDocumentContentChangeEvent, 14 | TextDocument, 15 | Position, 16 | SnippetString, 17 | } from 'vscode'; 18 | 19 | export function activateTagClosing( 20 | tagProvider: (document: TextDocument, position: Position) => Thenable, 21 | supportedLanguages: { [id: string]: boolean }, 22 | configName: string, 23 | ): Disposable { 24 | let disposables: Disposable[] = []; 25 | workspace.onDidChangeTextDocument( 26 | event => onDidChangeTextDocument(event.document, event.contentChanges), 27 | null, 28 | disposables, 29 | ); 30 | 31 | let isEnabled = false; 32 | updateEnabledState(); 33 | window.onDidChangeActiveTextEditor(updateEnabledState, null, disposables); 34 | 35 | let timeout: NodeJS.Timer | undefined = void 0; 36 | 37 | function updateEnabledState() { 38 | isEnabled = false; 39 | let editor = window.activeTextEditor; 40 | if (!editor) { 41 | return; 42 | } 43 | let document = editor.document; 44 | if (!supportedLanguages[document.languageId]) { 45 | return; 46 | } 47 | if (!workspace.getConfiguration(void 0, document.uri).get(configName)) { 48 | return; 49 | } 50 | isEnabled = true; 51 | } 52 | 53 | function onDidChangeTextDocument( 54 | document: TextDocument, 55 | changes: TextDocumentContentChangeEvent[], 56 | ) { 57 | if (!isEnabled) { 58 | return; 59 | } 60 | let activeDocument = window.activeTextEditor && window.activeTextEditor.document; 61 | if (document !== activeDocument || changes.length === 0) { 62 | return; 63 | } 64 | if (typeof timeout !== 'undefined') { 65 | clearTimeout(timeout); 66 | } 67 | let lastChange = changes[changes.length - 1]; 68 | let lastCharacter = lastChange.text[lastChange.text.length - 1]; 69 | if (lastChange.rangeLength > 0 || (lastCharacter !== '>' && lastCharacter !== '/')) { 70 | return; 71 | } 72 | let rangeStart = lastChange.range.start; 73 | let version = document.version; 74 | timeout = setTimeout(() => { 75 | let position = new Position( 76 | rangeStart.line, 77 | rangeStart.character + lastChange.text.length, 78 | ); 79 | tagProvider(document, position).then(text => { 80 | if (text && isEnabled) { 81 | let activeEditor = window.activeTextEditor; 82 | if (activeEditor) { 83 | let activeDocument = activeEditor.document; 84 | if (document === activeDocument && activeDocument.version === version) { 85 | let selections = activeEditor.selections; 86 | if ( 87 | selections.length && 88 | selections.some(s => s.active.isEqual(position)) 89 | ) { 90 | activeEditor.insertSnippet( 91 | new SnippetString(text), 92 | selections.map(s => s.active), 93 | ); 94 | } else { 95 | activeEditor.insertSnippet(new SnippetString(text), position); 96 | } 97 | } 98 | } 99 | } 100 | }); 101 | timeout = void 0; 102 | }, 100); 103 | } 104 | return Disposable.from(...disposables); 105 | } 106 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Work is being continued in the official [svelte language-tools repo](https://github.com/sveltejs/language-tools) 2 | 3 | # Svelte for VS Code 4 | 5 | Provides syntax highlighting and rich intellisense for Svelte components in VS Code, utilising the [svelte language server](https://github.com/UnwrittenFun/svelte-language-server). 6 | 7 | ## Features 8 | 9 | - Svelte 10 | - Diagnostic messages for warnings and errors 11 | - Support for svelte preprocessors that provide source maps 12 | - Svelte specific formatting (via [prettier-plugin-svelte](https://github.com/UnwrittenFun/prettier-plugin-svelte)) 13 | - HTML 14 | - Hover info 15 | - Autocompletions 16 | - [Emmet](https://emmet.io/) 17 | - Symbols in Outline panel 18 | - CSS / SCSS / LESS 19 | - Diagnostic messages for syntax and lint errors 20 | - Hover info 21 | - Autocompletions 22 | - Formatting (via [prettier](https://github.com/prettier/prettier)) 23 | - [Emmet](https://emmet.io/) 24 | - Color highlighting and color picker 25 | - Symbols in Outline panel 26 | - TypeScript / JavaScript 27 | - Diagnostics messages for syntax errors, semantic errors, and suggestions 28 | - Hover info 29 | - Formatting (via [prettier](https://github.com/prettier/prettier)) 30 | - Symbols in Outline panel 31 | - Autocompletions 32 | - Go to definition 33 | - Code Actions 34 | 35 | ### Using with preprocessors 36 | 37 | #### Language specific setup 38 | 39 | - [SCSS](docs/preprocessors/scss.md) 40 | - [TypeScript](docs/preprocessors/typescript.md) 41 | 42 | #### Generic setup 43 | 44 | If a svelte file contains some language other than `html`, `css` or `javascript`, `svelte-vscode` needs to know how to [preprocess](https://svelte.dev/docs#svelte_preprocess) it. This can be achieved by creating a `svelte.config.js` file at the root of your project which exports a svelte options object (similar to `svelte-loader` and `rollup-plugin-svelte`). 45 | 46 | ```js 47 | // svelte.config.js 48 | const preprocess = require('my-example-svelte-preprocessor'); 49 | 50 | module.exports = { 51 | preprocess: [preprocess()], 52 | // ...other svelte options 53 | }; 54 | ``` 55 | 56 | It's also necessary to add a `type="text/language-name"` or `lang="language-name"` to your `style` and `script` tags, which defines how that code should be interpreted by the extension. 57 | 58 | ```html 59 |
60 |

Hello, world!

61 |
62 | 63 | 70 | ``` 71 | 72 | ### Settings 73 | 74 | ##### `svelte.language-server.runtime` 75 | 76 | Path to the node executable you would like to use to run the language server. 77 | This is useful when you depend on native modules such as node-sass as without 78 | this they will run in the context of vscode, meaning v8 version mismatch is likely. 79 | 80 | ##### `svelte.plugin.typescript.enable` 81 | 82 | Enable the TypeScript plugin. _Default_: `true` 83 | 84 | ##### `svelte.plugin.typescript.diagnostics` 85 | 86 | Enable diagnostic messages for TypeScript. _Default_: `true` 87 | 88 | ##### `svelte.plugin.typescript.hover` 89 | 90 | Enable hover info for TypeScript. _Default_: `true` 91 | 92 | ##### `svelte.plugin.typescript.documentSymbols` 93 | 94 | Enable document symbols for TypeScript. _Default_: `true` 95 | 96 | ##### `svelte.plugin.typescript.completions` 97 | 98 | Enable completions for TypeScript. _Default_: `true` 99 | 100 | ##### `svelte.plugin.typescript.definitions` 101 | 102 | Enable go to definition for TypeScript. _Default_: `true` 103 | 104 | ##### `svelte.plugin.typescript.codeActions` 105 | 106 | Enable code actions for TypeScript. _Default_: `true` 107 | 108 | ##### `svelte.plugin.css.enable` 109 | 110 | Enable the CSS plugin. _Default_: `true` 111 | 112 | ##### `svelte.plugin.css.diagnostics` 113 | 114 | Enable diagnostic messages for CSS. _Default_: `true` 115 | 116 | ##### `svelte.plugin.css.hover` 117 | 118 | Enable hover info for CSS. _Default_: `true` 119 | 120 | ##### `svelte.plugin.css.completions` 121 | 122 | Enable auto completions for CSS. _Default_: `true` 123 | 124 | ##### `svelte.plugin.css.documentColors` 125 | 126 | Enable document colors for CSS. _Default_: `true` 127 | 128 | ##### `svelte.plugin.css.colorPresentations` 129 | 130 | Enable color picker for CSS. _Default_: `true` 131 | 132 | ##### `svelte.plugin.css.documentSymbols` 133 | 134 | Enable document symbols for CSS. _Default_: `true` 135 | 136 | ##### `svelte.plugin.html.enable` 137 | 138 | Enable the HTML plugin. _Default_: `true` 139 | 140 | ##### `svelte.plugin.html.hover` 141 | 142 | Enable hover info for HTML. _Default_: `true` 143 | 144 | ##### `svelte.plugin.html.completions` 145 | 146 | Enable auto completions for HTML. _Default_: `true` 147 | 148 | ##### `svelte.plugin.html.tagComplete` 149 | 150 | Enable HTML tag auto closing. _Default_: `true` 151 | 152 | ##### `svelte.plugin.html.documentSymbols` 153 | 154 | Enable document symbols for HTML. _Default_: `true` 155 | 156 | ##### `svelte.plugin.svelte.enable` 157 | 158 | Enable the Svelte plugin. _Default_: `true` 159 | 160 | ##### `svelte.plugin.svelte.diagnostics.enable` 161 | 162 | Enable diagnostic messages for Svelte. _Default_: `true` 163 | 164 | ##### `svelte.plugin.svelte.format.enable` 165 | 166 | Enable formatting for Svelte (includes css & js). _Default_: `true` 167 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 0.9.3 4 | 5 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/releases/v0.10.3) 0.10.3 6 | - Don't trigger autocompletion in css when typing { 7 | - Debounce diagnostics requests to improve diagnostic performance 8 | - Document settings and preprocessor configuration 9 | 10 | ## 0.9.2 11 | 12 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/releases/v0.10.2) 0.10.2 13 | - Update to [prettier-plugin-svelte](https://github.com/UnwrittenFun/prettier-plugin-svelte/releases/tag/v0.7.0) 0.7.0 14 | - Added strict html mode with option `svelte-strict-mode` 15 | - Added support for await block shorthand 16 | - Now handles multiple script and style tags 17 | - HTML entities (e.g. &) will be kept as is in svelte > 3.4.3 18 | - New option `svelteBracketNewLine` to add a new line before closing `>` when wrapping attributes 19 | - Added support for all known svelte:\* elements 20 | - Added support for local modifier on transitions 21 | - Fixed if inside of each else blocks erroneously being converted to and else if block 22 | - Added sort order option to change order of script/style/markup available as `svelte-sort-order` 23 | - Fix some whitespace issues with inline tags 24 | 25 | ## 0.9.1 26 | 27 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/releases/v0.10.1) 0.10.1 28 | - Update to [prettier-plugin-svelte](https://github.com/UnwrittenFun/prettier-plugin-svelte/releases/tag/v0.5.1) 0.5.1 29 | - Better attribute wrapping 30 | - No longer opens output panel on error 31 | 32 | ## 0.9.0 33 | 34 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/tree/v0.10.0) 0.10.0 35 | - Adds suggestion diagnostics for typescript/javascript 36 | - Add code actions to typescript/javascript 37 | - Add go to definition support for typescript/javascript 38 | - Fix emmet completions showing up inconsistently 39 | - Update to [prettier-plugin-svelte](https://github.com/UnwrittenFun/prettier-plugin-svelte/releases/tag/v0.5.0) 0.5.0 40 | - Adds better whitespace support 41 | - Adds support for all utf8 characters in styles and scripts 42 | - Support event modifiers 43 | - Support let and class bindings 44 | - .html files are no longer associated to this plugin by default 45 | 46 | ## 0.8.0 47 | 48 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/tree/v0.8.0) 0.8.0 49 | - No longer applies semantic validation to JavaScript blocks (only syntactic). 50 | - Add autocompletions to js/ts 51 | - Formatting is now provided by [prettier-plugin-svelte](https://github.com/UnwrittenFun/prettier-plugin-svelte) 52 | which gives much improved support for svelte specific syntax and fixes a number of issues with the previous setup 53 | 54 | ## 0.7.1 55 | 56 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/tree/v0.7.1) 0.7.1 57 | - Fix for breaking changes in svelte v3 58 | 59 | ## 0.7.0 60 | 61 | - Support for Svelte v3 62 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/tree/v0.7.0) 0.7.0 63 | - Svelte is now loaded from your project when possible 64 | - Updates to various packages 65 | 66 | ## 0.6.1 67 | 68 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/tree/v0.6.1) 0.6.1 69 | - Includes some minor bug fixes 70 | 71 | ## 0.6.0 72 | 73 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/tree/v0.6.0) 0.6.0 74 | - Add symbols in the outline panel for css, html, and typescript 75 | - Add html formatting 76 | - Add color information and color picker to css 77 | - Add support for lang attribute on style and script tags 78 | 79 | ## 0.5.0 80 | 81 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/tree/v0.5.0) 0.5.0 82 | - Add config options for all features provided by the language server 83 | 84 | ## 0.4.2 85 | 86 | - Add command to restart language server (useful if it errors or is using stale data) 87 | - Access it using `Cmd-Shift-P` or `Ctrl-Shift-P` and typing "restart language server" 88 | 89 | ## 0.4.1 90 | 91 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/tree/v0.4.2) 0.4.2 92 | - Has better support for typescript in workspaces 93 | - Now actually bundles the lib.d.ts files from typescript.. 🤦 94 | 95 | ## 0.4.0 96 | 97 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/tree/v0.4.0) 0.4.0 98 | - Includes fix to prevent attempting to load svelte config from package.json 99 | - Switching language type (.e.g from `type=text/javascript` to `type=text/typescript`) no longer crashes the server 100 | 101 | ## 0.3.2 102 | 103 | - Allow space after key in each block ([#12](https://github.com/UnwrittenFun/svelte-vscode/issues/12)) 104 | 105 | ## 0.3.1 106 | 107 | - Register .svelte extension ([#8](https://github.com/UnwrittenFun/svelte-vscode/pull/8)) 108 | - Fix highlighting error when using object destructuring in each blocks ([#11](https://github.com/UnwrittenFun/svelte-vscode/issues/11)) 109 | - Use correct comments in typescript and scss blocks 110 | 111 | ## 0.3.0 112 | 113 | - Add html tag autoclosing ([#4](https://github.com/UnwrittenFun/svelte-vscode/pull/4)) 114 | - Fix incorrect comments being used for css and html ([#3](https://github.com/UnwrittenFun/svelte-vscode/issues/3)) 115 | 116 | ## 0.2.0 117 | 118 | - Update to [svelte-language-server](https://github.com/UnwrittenFun/svelte-language-server/tree/v0.2.0) 0.2.0 119 | - Emmet abbreviations support for HTML and CSS ([#2](https://github.com/UnwrittenFun/svelte-vscode/issues/2)) 120 | 121 | ## 0.1.0 122 | 123 | - Initial release 124 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-vscode", 3 | "version": "0.9.3", 4 | "description": "Svelte language support for VS Code", 5 | "main": "dist/extension.js", 6 | "scripts": { 7 | "vscode:prepublish": "tsc -p ./", 8 | "build": "tsc -p ./", 9 | "watch": "tsc -w -p ./", 10 | "update-vscode": "node ./node_modules/vscode/bin/install", 11 | "postinstall": "node ./node_modules/vscode/bin/install" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/UnwrittenFun/svelte-vscode.git" 16 | }, 17 | "keywords": [ 18 | "svelte", 19 | "vscode" 20 | ], 21 | "author": "James Birtles ", 22 | "license": "MIT", 23 | "bugs": { 24 | "url": "https://github.com/UnwrittenFun/svelte-vscode/issues" 25 | }, 26 | "homepage": "https://github.com/UnwrittenFun/svelte-vscode#readme", 27 | "displayName": "Svelte", 28 | "publisher": "JamesBirtles", 29 | "icon": "icons/logo.png", 30 | "galleryBanner": { 31 | "color": "#333333", 32 | "theme": "dark" 33 | }, 34 | "categories": [ 35 | "Programming Languages", 36 | "Formatters" 37 | ], 38 | "engines": { 39 | "vscode": "^1.30.0" 40 | }, 41 | "activationEvents": [ 42 | "onLanguage:svelte", 43 | "onCommand:svelte.restartLanguageServer" 44 | ], 45 | "contributes": { 46 | "configuration": { 47 | "type": "object", 48 | "title": "Svelte", 49 | "properties": { 50 | "svelte.language-server.runtime": { 51 | "type": "string", 52 | "title": "Language Server Runtime", 53 | "description": "Path to the node executable to use to spawn the language server" 54 | }, 55 | "svelte.plugin.typescript.enable": { 56 | "type": "boolean", 57 | "default": true, 58 | "title": "TypeScript", 59 | "description": "Enable the TypeScript plugin" 60 | }, 61 | "svelte.plugin.typescript.diagnostics.enable": { 62 | "type": "boolean", 63 | "default": true, 64 | "title": "TypeScript: Diagnostics", 65 | "description": "Enable diagnostic messages for TypeScript" 66 | }, 67 | "svelte.plugin.typescript.hover.enable": { 68 | "type": "boolean", 69 | "default": true, 70 | "title": "TypeScript: Hover Info", 71 | "description": "Enable hover info for TypeScript" 72 | }, 73 | "svelte.plugin.typescript.documentSymbols.enable": { 74 | "type": "boolean", 75 | "default": true, 76 | "title": "TypeScript: Symbols in Outline", 77 | "description": "Enable document symbols for TypeScript" 78 | }, 79 | "svelte.plugin.typescript.completions.enable": { 80 | "type": "boolean", 81 | "default": true, 82 | "title": "TypeScript: Completions", 83 | "description": "Enable completions for TypeScript" 84 | }, 85 | "svelte.plugin.typescript.definitions.enable": { 86 | "type": "boolean", 87 | "default": true, 88 | "title": "TypeScript: Go to Definition", 89 | "description": "Enable go to definition for TypeScript" 90 | }, 91 | "svelte.plugin.typescript.codeActions.enable": { 92 | "type": "boolean", 93 | "default": true, 94 | "title": "TypeScript: Code Actions", 95 | "description": "Enable code actions for TypeScript" 96 | }, 97 | "svelte.plugin.css.enable": { 98 | "type": "boolean", 99 | "default": true, 100 | "title": "CSS", 101 | "description": "Enable the CSS plugin" 102 | }, 103 | "svelte.plugin.css.diagnostics.enable": { 104 | "type": "boolean", 105 | "default": true, 106 | "title": "CSS: Diagnostics", 107 | "description": "Enable diagnostic messages for CSS" 108 | }, 109 | "svelte.plugin.css.hover.enable": { 110 | "type": "boolean", 111 | "default": true, 112 | "title": "CSS: Hover Info", 113 | "description": "Enable hover info for CSS" 114 | }, 115 | "svelte.plugin.css.completions.enable": { 116 | "type": "boolean", 117 | "default": true, 118 | "title": "CSS: Auto Complete", 119 | "description": "Enable auto completions for CSS" 120 | }, 121 | "svelte.plugin.css.documentColors.enable": { 122 | "type": "boolean", 123 | "default": true, 124 | "title": "CSS: Document Colors", 125 | "description": "Enable document colors for CSS" 126 | }, 127 | "svelte.plugin.css.colorPresentations.enable": { 128 | "type": "boolean", 129 | "default": true, 130 | "title": "CSS: Color Picker", 131 | "description": "Enable color picker for CSS" 132 | }, 133 | "svelte.plugin.css.documentSymbols.enable": { 134 | "type": "boolean", 135 | "default": true, 136 | "title": "CSS: Symbols in Outline", 137 | "description": "Enable document symbols for CSS" 138 | }, 139 | "svelte.plugin.html.enable": { 140 | "type": "boolean", 141 | "default": true, 142 | "title": "HTML", 143 | "description": "Enable the HTML plugin" 144 | }, 145 | "svelte.plugin.html.hover.enable": { 146 | "type": "boolean", 147 | "default": true, 148 | "title": "HTML: Hover Info", 149 | "description": "Enable hover info for HTML" 150 | }, 151 | "svelte.plugin.html.completions.enable": { 152 | "type": "boolean", 153 | "default": true, 154 | "title": "HTML: Auto Complete", 155 | "description": "Enable auto completions for HTML" 156 | }, 157 | "svelte.plugin.html.tagComplete.enable": { 158 | "type": "boolean", 159 | "default": true, 160 | "title": "HTML: Tag Auto Closing", 161 | "description": "Enable HTML tag auto closing" 162 | }, 163 | "svelte.plugin.html.documentSymbols.enable": { 164 | "type": "boolean", 165 | "default": true, 166 | "title": "HTML: Symbols in Outline", 167 | "description": "Enable document symbols for HTML" 168 | }, 169 | "svelte.plugin.svelte.enable": { 170 | "type": "boolean", 171 | "default": true, 172 | "title": "Svelte", 173 | "description": "Enable the Svelte plugin" 174 | }, 175 | "svelte.plugin.svelte.diagnostics.enable": { 176 | "type": "boolean", 177 | "default": true, 178 | "title": "Svelte: Diagnostics", 179 | "description": "Enable diagnostic messages for Svelte" 180 | }, 181 | "svelte.plugin.svelte.format.enable": { 182 | "type": "boolean", 183 | "default": true, 184 | "title": "Svelte: Format", 185 | "description": "Enable formatting for Svelte (includes css & js)" 186 | } 187 | } 188 | }, 189 | "languages": [ 190 | { 191 | "id": "svelte", 192 | "aliases": [ 193 | "Svelte", 194 | "svelte" 195 | ], 196 | "extensions": [ 197 | ".svelte" 198 | ], 199 | "configuration": "./language-configuration.json" 200 | } 201 | ], 202 | "grammars": [ 203 | { 204 | "language": "svelte", 205 | "scopeName": "source.svelte", 206 | "path": "./syntaxes/svelte.tmLanguage.json", 207 | "embeddedLanguages": { 208 | "text.html": "html", 209 | "source.css": "css", 210 | "source.css.scss": "scss", 211 | "source.js": "javascript", 212 | "source.ts": "typescript" 213 | } 214 | } 215 | ], 216 | "commands": [ 217 | { 218 | "command": "svelte.restartLanguageServer", 219 | "title": "Svelte: Restart Language Server" 220 | } 221 | ], 222 | "breakpoints": [ 223 | { 224 | "language": "svelte" 225 | } 226 | ] 227 | }, 228 | "devDependencies": { 229 | "@types/node": "^9.6.5", 230 | "typescript": "^3.0.1", 231 | "vscode": "^1.1.30" 232 | }, 233 | "dependencies": { 234 | "svelte-language-server": "0.10.3", 235 | "vscode-languageclient": "^5.0.1" 236 | } 237 | } 238 | -------------------------------------------------------------------------------- /syntaxes/svelte.tmLanguage.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Svelte Component", 3 | "scopeName": "source.svelte", 4 | "fileTypes": ["svelte"], 5 | "uuid": "7582b62f-51d9-4a84-8c8d-fc189530faf6", 6 | "patterns": [ 7 | { 8 | "begin": "(<)(style)\\b(?=[^>]*(?:type=('text/sass'|\"text/sass\")|lang=(sass|'sass'|\"sass\")))(?![^/>]*/>\\s*$)", 9 | "beginCaptures": { 10 | "1": { 11 | "name": "punctuation.definition.tag.begin.html" 12 | }, 13 | "2": { 14 | "name": "entity.name.tag.style.html" 15 | } 16 | }, 17 | "end": "()", 18 | "endCaptures": { 19 | "1": { 20 | "name": "punctuation.definition.tag.begin.html" 21 | }, 22 | "2": { 23 | "name": "entity.name.tag.style.html" 24 | }, 25 | "3": { 26 | "name": "punctuation.definition.tag.end.html" 27 | } 28 | }, 29 | "patterns": [ 30 | { 31 | "include": "#tag-stuff" 32 | }, 33 | { 34 | "contentName": "source.sass", 35 | "begin": "(>)", 36 | "beginCaptures": { 37 | "1": { 38 | "name": "punctuation.definition.tag.end.html" 39 | } 40 | }, 41 | "end": "(?=)", 42 | "patterns": [ 43 | { 44 | "include": "source.sass" 45 | } 46 | ] 47 | } 48 | ] 49 | }, 50 | { 51 | "begin": "(<)(style)\\b(?=[^>]*(?:type=('text/scss'|\"text/scss\")|lang=(scss|'scss'|\"scss\")))(?![^/>]*/>\\s*$)", 52 | "beginCaptures": { 53 | "1": { 54 | "name": "punctuation.definition.tag.begin.html" 55 | }, 56 | "2": { 57 | "name": "entity.name.tag.style.html" 58 | } 59 | }, 60 | "end": "()", 61 | "endCaptures": { 62 | "1": { 63 | "name": "punctuation.definition.tag.begin.html" 64 | }, 65 | "2": { 66 | "name": "entity.name.tag.style.html" 67 | }, 68 | "3": { 69 | "name": "punctuation.definition.tag.end.html" 70 | } 71 | }, 72 | "patterns": [ 73 | { 74 | "include": "#tag-stuff" 75 | }, 76 | { 77 | "contentName": "source.css.scss", 78 | "begin": "(>)", 79 | "beginCaptures": { 80 | "1": { 81 | "name": "punctuation.definition.tag.end.html" 82 | } 83 | }, 84 | "end": "(?=)", 85 | "patterns": [ 86 | { 87 | "include": "source.css.scss" 88 | } 89 | ] 90 | } 91 | ] 92 | }, 93 | { 94 | "begin": "(<)(style)\\b(?=[^>]*(?:type=('text/less'|\"text/less\")|lang=(less|'less'|\"less\")))(?![^/>]*/>\\s*$)", 95 | "beginCaptures": { 96 | "1": { 97 | "name": "punctuation.definition.tag.begin.html" 98 | }, 99 | "2": { 100 | "name": "entity.name.tag.style.html" 101 | } 102 | }, 103 | "end": "()", 104 | "endCaptures": { 105 | "1": { 106 | "name": "punctuation.definition.tag.begin.html" 107 | }, 108 | "2": { 109 | "name": "entity.name.tag.style.html" 110 | }, 111 | "3": { 112 | "name": "punctuation.definition.tag.end.html" 113 | } 114 | }, 115 | "patterns": [ 116 | { 117 | "include": "#tag-stuff" 118 | }, 119 | { 120 | "contentName": "source.css.less", 121 | "begin": "(>)", 122 | "beginCaptures": { 123 | "1": { 124 | "name": "punctuation.definition.tag.end.html" 125 | } 126 | }, 127 | "end": "(?=)", 128 | "patterns": [ 129 | { 130 | "include": "source.css.less" 131 | } 132 | ] 133 | } 134 | ] 135 | }, 136 | { 137 | "begin": "(<)(style)\\b(?=[^>]*(?:type=('text/stylus'|\"text/stylus\")|lang=(stylus|'stylus'|\"stylus\")))(?![^/>]*/>\\s*$)", 138 | "beginCaptures": { 139 | "1": { 140 | "name": "punctuation.definition.tag.begin.html" 141 | }, 142 | "2": { 143 | "name": "entity.name.tag.style.html" 144 | } 145 | }, 146 | "end": "()", 147 | "endCaptures": { 148 | "1": { 149 | "name": "punctuation.definition.tag.begin.html" 150 | }, 151 | "2": { 152 | "name": "entity.name.tag.style.html" 153 | }, 154 | "3": { 155 | "name": "punctuation.definition.tag.end.html" 156 | } 157 | }, 158 | "patterns": [ 159 | { 160 | "include": "#tag-stuff" 161 | }, 162 | { 163 | "contentName": "source.stylus", 164 | "begin": "(>)", 165 | "beginCaptures": { 166 | "1": { 167 | "name": "punctuation.definition.tag.end.html" 168 | } 169 | }, 170 | "end": "(?=)", 171 | "patterns": [ 172 | { 173 | "include": "source.stylus" 174 | } 175 | ] 176 | } 177 | ] 178 | }, 179 | { 180 | "begin": "(<)(style)\\b(?=[^>]*(?:type=('text/postcss'|\"text/postcss\")|lang=(postcss|'postcss'|\"postcss\")))(?![^/>]*/>\\s*$)", 181 | "beginCaptures": { 182 | "1": { 183 | "name": "punctuation.definition.tag.begin.html" 184 | }, 185 | "2": { 186 | "name": "entity.name.tag.style.html" 187 | } 188 | }, 189 | "end": "()", 190 | "endCaptures": { 191 | "1": { 192 | "name": "punctuation.definition.tag.begin.html" 193 | }, 194 | "2": { 195 | "name": "entity.name.tag.style.html" 196 | }, 197 | "3": { 198 | "name": "punctuation.definition.tag.end.html" 199 | } 200 | }, 201 | "patterns": [ 202 | { 203 | "include": "#tag-stuff" 204 | }, 205 | { 206 | "contentName": "source.css.postcss", 207 | "begin": "(>)", 208 | "beginCaptures": { 209 | "1": { 210 | "name": "punctuation.definition.tag.end.html" 211 | } 212 | }, 213 | "end": "(?=)", 214 | "patterns": [ 215 | { 216 | "include": "source.css.postcss" 217 | } 218 | ] 219 | } 220 | ] 221 | }, 222 | { 223 | "begin": "(<)(style)\\b(?=[^>]*(?:(?:type=('text/css'|\"text/css\")|lang=(css|'css'|\"css\")))?)(?![^/>]*/>\\s*$)", 224 | "beginCaptures": { 225 | "1": { 226 | "name": "punctuation.definition.tag.begin.html" 227 | }, 228 | "2": { 229 | "name": "entity.name.tag.style.html" 230 | } 231 | }, 232 | "end": "()", 233 | "endCaptures": { 234 | "1": { 235 | "name": "punctuation.definition.tag.begin.html" 236 | }, 237 | "2": { 238 | "name": "entity.name.tag.style.html" 239 | }, 240 | "3": { 241 | "name": "punctuation.definition.tag.end.html" 242 | } 243 | }, 244 | "patterns": [ 245 | { 246 | "include": "#tag-stuff" 247 | }, 248 | { 249 | "contentName": "source.css", 250 | "begin": "(>)", 251 | "beginCaptures": { 252 | "1": { 253 | "name": "punctuation.definition.tag.end.html" 254 | } 255 | }, 256 | "end": "(?=)", 257 | "patterns": [ 258 | { 259 | "include": "source.css" 260 | } 261 | ] 262 | } 263 | ] 264 | }, 265 | { 266 | "begin": "(<)(script)\\b(?=[^>]*(?:type=('text/typescript'|\"text/typescript\")|lang=(typescript|'typescript'|\"typescript\"|ts|'ts'|\"ts\")))(?![^/>]*/>\\s*$)", 267 | "beginCaptures": { 268 | "1": { 269 | "name": "punctuation.definition.tag.begin.html" 270 | }, 271 | "2": { 272 | "name": "entity.name.tag.script.html" 273 | } 274 | }, 275 | "end": "()", 276 | "endCaptures": { 277 | "1": { 278 | "name": "punctuation.definition.tag.begin.html" 279 | }, 280 | "2": { 281 | "name": "entity.name.tag.script.html" 282 | }, 283 | "3": { 284 | "name": "punctuation.definition.tag.end.html" 285 | } 286 | }, 287 | "patterns": [ 288 | { 289 | "include": "#tag-stuff" 290 | }, 291 | { 292 | "contentName": "source.ts", 293 | "begin": "(>)", 294 | "beginCaptures": { 295 | "1": { 296 | "name": "punctuation.definition.tag.end.html" 297 | } 298 | }, 299 | "end": "(?=)", 300 | "patterns": [ 301 | { 302 | "include": "source.ts" 303 | } 304 | ] 305 | } 306 | ] 307 | }, 308 | { 309 | "begin": "(<)(script)\\b(?=[^>]*(?:type=('text/coffee'|\"text/coffee\")|lang=(coffee|'coffee'|\"coffee\")))(?![^/>]*/>\\s*$)", 310 | "beginCaptures": { 311 | "1": { 312 | "name": "punctuation.definition.tag.begin.html" 313 | }, 314 | "2": { 315 | "name": "entity.name.tag.script.html" 316 | } 317 | }, 318 | "end": "()", 319 | "endCaptures": { 320 | "1": { 321 | "name": "punctuation.definition.tag.begin.html" 322 | }, 323 | "2": { 324 | "name": "entity.name.tag.script.html" 325 | }, 326 | "3": { 327 | "name": "punctuation.definition.tag.end.html" 328 | } 329 | }, 330 | "patterns": [ 331 | { 332 | "include": "#tag-stuff" 333 | }, 334 | { 335 | "contentName": "source.coffee", 336 | "begin": "(>)", 337 | "beginCaptures": { 338 | "1": { 339 | "name": "punctuation.definition.tag.end.html" 340 | } 341 | }, 342 | "end": "(?=)", 343 | "patterns": [ 344 | { 345 | "include": "source.coffee" 346 | } 347 | ] 348 | } 349 | ] 350 | }, 351 | { 352 | "begin": "(<)(script)\\b(?=[^>]*(?:(?:type=('text/javascript'|\"text/javascript\")|lang=(javascript|'javascript'|\"javascript\")))?)(?![^/>]*/>\\s*$)", 353 | "beginCaptures": { 354 | "1": { 355 | "name": "punctuation.definition.tag.begin.html" 356 | }, 357 | "2": { 358 | "name": "entity.name.tag.script.html" 359 | } 360 | }, 361 | "end": "()", 362 | "endCaptures": { 363 | "1": { 364 | "name": "punctuation.definition.tag.begin.html" 365 | }, 366 | "2": { 367 | "name": "entity.name.tag.script.html" 368 | }, 369 | "3": { 370 | "name": "punctuation.definition.tag.end.html" 371 | } 372 | }, 373 | "patterns": [ 374 | { 375 | "include": "#tag-stuff" 376 | }, 377 | { 378 | "contentName": "source.js", 379 | "begin": "(>)", 380 | "beginCaptures": { 381 | "1": { 382 | "name": "punctuation.definition.tag.end.html" 383 | } 384 | }, 385 | "end": "(?=)", 386 | "patterns": [ 387 | { 388 | "include": "source.js" 389 | } 390 | ] 391 | } 392 | ] 393 | }, 394 | { 395 | "begin": "({)\\s*(#if|:elseif|#await|@html)", 396 | "beginCaptures": { 397 | "1": { 398 | "name": "punctuation.definition.tag.begin.svelte" 399 | }, 400 | "2": { 401 | "name": "keyword.control.conditional" 402 | } 403 | }, 404 | "end": "}", 405 | "endCaptures": { 406 | "0": { 407 | "name": "punctuation.definition.tag.end.svelte" 408 | } 409 | }, 410 | "patterns": [ 411 | { 412 | "include": "source.ts" 413 | } 414 | ] 415 | }, 416 | { 417 | "match": "({)\\s*(:then|:catch)\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(})", 418 | "captures": { 419 | "1": { 420 | "name": "punctuation.definition.tag.begin.svelte" 421 | }, 422 | "2": { 423 | "name": "keyword.control.conditional" 424 | }, 425 | "3": { 426 | "name": "variable" 427 | }, 428 | "4": { 429 | "name": "punctuation.definition.tag.end.svelte" 430 | } 431 | } 432 | }, 433 | { 434 | "begin": "({)\\s*(#each)", 435 | "beginCaptures": { 436 | "1": { 437 | "name": "punctuation.definition.tag.begin.svelte" 438 | }, 439 | "2": { 440 | "name": "keyword.control.conditional" 441 | } 442 | }, 443 | "end": "}", 444 | "endCaptures": { 445 | "0": { 446 | "name": "punctuation.definition.tag.end.svelte" 447 | } 448 | }, 449 | "patterns": [ 450 | { 451 | "begin": "\\s", 452 | "end": "\\s(as)\\s+", 453 | "endCaptures": { 454 | "1": { 455 | "name": "keyword.control" 456 | } 457 | }, 458 | "patterns": [ 459 | { 460 | "include": "source.ts" 461 | } 462 | ] 463 | }, 464 | { 465 | "match": "[_$[:alpha:]][_$[:alnum:]]*\\s*", 466 | "name": "variable" 467 | }, 468 | { 469 | "patterns": [ 470 | { 471 | "begin": "\\[\\s*", 472 | "end": "]\\s*", 473 | "patterns": [ 474 | { 475 | "include": "source.js" 476 | } 477 | ] 478 | }, 479 | { 480 | "begin": "\\{\\s*", 481 | "end": "}\\s*", 482 | "patterns": [ 483 | { 484 | "include": "source.js" 485 | } 486 | ] 487 | } 488 | ] 489 | }, 490 | { 491 | "match": ",\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*", 492 | "captures": { 493 | "1": { 494 | "name": "variable" 495 | } 496 | } 497 | }, 498 | { 499 | "begin": "\\(", 500 | "end": "\\)\\s*", 501 | "patterns": [ 502 | { 503 | "include": "source.ts" 504 | } 505 | ] 506 | } 507 | ] 508 | }, 509 | { 510 | "match": "({)\\s*(:else|/if|/each|/await)\\s*(})", 511 | "captures": { 512 | "1": { 513 | "name": "punctuation.definition.tag.begin.svelte" 514 | }, 515 | "2": { 516 | "name": "keyword.control.conditional" 517 | }, 518 | "3": { 519 | "name": "punctuation.definition.tag.end.svelte" 520 | } 521 | } 522 | }, 523 | { 524 | "begin": "{", 525 | "beginCaptures": { 526 | "0": { 527 | "name": "punctuation.definition.tag.begin.svelte" 528 | } 529 | }, 530 | "end": "}", 531 | "endCaptures": { 532 | "0": { 533 | "name": "punctuation.definition.tag.end.svelte" 534 | } 535 | }, 536 | "patterns": [ 537 | { 538 | "include": "source.ts" 539 | } 540 | ] 541 | }, 542 | { 543 | "begin": "()", 553 | "endCaptures": { 554 | "1": { 555 | "name": "punctuation.definition.tag.end.html" 556 | } 557 | }, 558 | "name": "meta.tag.other.html", 559 | "patterns": [ 560 | { 561 | "include": "#tag-stuff" 562 | } 563 | ] 564 | }, 565 | { 566 | "begin": "", 568 | "name": "comment.block" 569 | }, 570 | { 571 | "match": "", 572 | "name": "punctuation.definition.tag" 573 | } 574 | ], 575 | "repository": { 576 | "entities": { 577 | "patterns": [ 578 | { 579 | "name": "constant.character.entity.html", 580 | "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", 581 | "captures": { 582 | "1": { 583 | "name": "punctuation.definition.entity.html" 584 | }, 585 | "3": { 586 | "name": "punctuation.definition.entity.html" 587 | } 588 | } 589 | }, 590 | { 591 | "name": "invalid.illegal.bad-ampersand.html", 592 | "match": "&" 593 | } 594 | ] 595 | }, 596 | "string-double-quoted": { 597 | "name": "string.quoted.double.html", 598 | "begin": "\"", 599 | "beginCaptures": { 600 | "0": { 601 | "name": "punctuation.definition.string.begin.html" 602 | } 603 | }, 604 | "end": "\"", 605 | "endCaptures": { 606 | "0": { 607 | "name": "punctuation.definition.string.end.html" 608 | } 609 | }, 610 | "patterns": [ 611 | { 612 | "include": "#entities" 613 | } 614 | ] 615 | }, 616 | "string-single-quoted": { 617 | "name": "string.quoted.single.html", 618 | "begin": "'", 619 | "beginCaptures": { 620 | "0": { 621 | "name": "punctuation.definition.string.begin.html" 622 | } 623 | }, 624 | "end": "'", 625 | "endCaptures": { 626 | "0": { 627 | "name": "punctuation.definition.string.end.html" 628 | } 629 | }, 630 | "patterns": [ 631 | { 632 | "include": "#entities" 633 | } 634 | ] 635 | }, 636 | "tag-generic-attribute": { 637 | "name": "entity.other.attribute-name.html", 638 | "match": "\\b([a-zA-Z\\-:]+)" 639 | }, 640 | "tag-id-attribute": { 641 | "name": "meta.attribute-with-value.id.html", 642 | "begin": "\\b(id)\\b\\s*(=)", 643 | "end": "(?<='|\")", 644 | "captures": { 645 | "1": { 646 | "name": "entity.other.attribute-name.id.html" 647 | }, 648 | "2": { 649 | "name": "punctuation.separator.key-value.html" 650 | } 651 | }, 652 | "patterns": [ 653 | { 654 | "name": "string.quoted.double.html", 655 | "contentName": "meta.toc-list.id.html", 656 | "begin": "\"", 657 | "beginCaptures": { 658 | "0": { 659 | "name": "punctuation.definition.string.begin.html" 660 | } 661 | }, 662 | "end": "\"", 663 | "endCaptures": { 664 | "0": { 665 | "name": "punctuation.definition.string.end.html" 666 | } 667 | }, 668 | "patterns": [ 669 | { 670 | "include": "#entities" 671 | } 672 | ] 673 | }, 674 | { 675 | "name": "string.quoted.single.html", 676 | "contentName": "meta.toc-list.id.html", 677 | "begin": "'", 678 | "beginCaptures": { 679 | "0": { 680 | "name": "punctuation.definition.string.begin.html" 681 | } 682 | }, 683 | "end": "'", 684 | "endCaptures": { 685 | "0": { 686 | "name": "punctuation.definition.string.end.html" 687 | } 688 | }, 689 | "patterns": [ 690 | { 691 | "include": "#entities" 692 | } 693 | ] 694 | } 695 | ] 696 | }, 697 | "tag-event-handlers": { 698 | "begin": "\\b(on):([a-zA-Z]+)=(\"|')", 699 | "beginCaptures": { 700 | "1": { 701 | "name": "entity.other.attribute-name.html" 702 | }, 703 | "2": { 704 | "name": "entity.other.attribute-name.html" 705 | }, 706 | "3": { 707 | "name": "string.quoted.double" 708 | } 709 | }, 710 | "end": "\\3", 711 | "endCaptures": { 712 | "0": { 713 | "name": "string.quoted.double" 714 | } 715 | }, 716 | "patterns": [ 717 | { 718 | "include": "source.ts" 719 | } 720 | ] 721 | }, 722 | "tag-moustaches": { 723 | "begin": "\\b([a-zA-Z\\-:]+)=(\"|')(?=.*{)", 724 | "beginCaptures": { 725 | "1": { 726 | "name": "entity.other.attribute-name.html" 727 | }, 728 | "2": { 729 | "name": "string.quoted.double" 730 | } 731 | }, 732 | "end": "\\2", 733 | "endCaptures": { 734 | "0": { 735 | "name": "string.quoted.double" 736 | } 737 | }, 738 | "patterns": [ 739 | { 740 | "begin": "{", 741 | "beginCaptures": { 742 | "0": { 743 | "name": "punctuation.definition.tag.begin.svelte" 744 | } 745 | }, 746 | "end": "}", 747 | "endCaptures": { 748 | "0": { 749 | "name": "punctuation.definition.tag.end.svelte" 750 | } 751 | }, 752 | "patterns": [ 753 | { 754 | "include": "source.ts" 755 | } 756 | ] 757 | }, 758 | { 759 | "match": "(?!{).", 760 | "name": "string.quoted.double" 761 | } 762 | ] 763 | }, 764 | "tag-moustaches-raw": { 765 | "begin": "\\b([a-zA-Z\\-:]+)=({)", 766 | "beginCaptures": { 767 | "1": { 768 | "name": "entity.other.attribute-name.html" 769 | }, 770 | "2": { 771 | "name": "punctuation.definition.tag.begin.svelte" 772 | } 773 | }, 774 | "end": "}", 775 | "endCaptures": { 776 | "0": { 777 | "name": "punctuation.definition.tag.end.svelte" 778 | } 779 | }, 780 | "patterns": [ 781 | { 782 | "include": "source.ts" 783 | } 784 | ] 785 | }, 786 | "tag-shorthand": { 787 | "match": "({)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(})", 788 | "captures": { 789 | "1": { 790 | "name": "punctuation.definition.tag.begin.svelte" 791 | }, 792 | "2": { 793 | "name": "variable" 794 | }, 795 | "3": { 796 | "name": "punctuation.definition.tag.end.svelte" 797 | } 798 | } 799 | }, 800 | "tag-stuff": { 801 | "patterns": [ 802 | { 803 | "include": "#tag-event-handlers" 804 | }, 805 | { 806 | "include": "#tag-moustaches" 807 | }, 808 | { 809 | "include": "#tag-moustaches-raw" 810 | }, 811 | { 812 | "include": "#tag-shorthand" 813 | }, 814 | { 815 | "include": "#tag-id-attribute" 816 | }, 817 | { 818 | "include": "#tag-generic-attribute" 819 | }, 820 | { 821 | "include": "#string-double-quoted" 822 | }, 823 | { 824 | "include": "#string-single-quoted" 825 | } 826 | ] 827 | } 828 | } 829 | } 830 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@emmetio/extract-abbreviation@0.1.6": 6 | version "0.1.6" 7 | resolved "https://registry.npmjs.org/@emmetio/extract-abbreviation/-/extract-abbreviation-0.1.6.tgz#e4a9856c1057f0aff7d443b8536477c243abe28c" 8 | integrity sha512-Ce3xE2JvTSEbASFbRbA1gAIcMcZWdS2yUYRaQbeM0nbOzaZrUYfa3ePtcriYRZOZmr+CkKA+zbjhvTpIOAYVcw== 9 | 10 | "@sinonjs/commons@^1", "@sinonjs/commons@^1.0.2": 11 | version "1.4.0" 12 | resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.4.0.tgz#7b3ec2d96af481d7a0321252e7b1c94724ec5a78" 13 | integrity sha512-9jHK3YF/8HtJ9wCAbG+j8cD0i0+ATS9A7gXFqS36TblLPNy6rEEc+SB0imo91eCboGaBYGV/MT1/br/J+EE7Tw== 14 | dependencies: 15 | type-detect "4.0.8" 16 | 17 | "@sinonjs/formatio@^2.0.0": 18 | version "2.0.0" 19 | resolved "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" 20 | integrity sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg== 21 | dependencies: 22 | samsam "1.3.0" 23 | 24 | "@sinonjs/formatio@^3.1.0": 25 | version "3.2.1" 26 | resolved "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.1.tgz#52310f2f9bcbc67bdac18c94ad4901b95fde267e" 27 | integrity sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ== 28 | dependencies: 29 | "@sinonjs/commons" "^1" 30 | "@sinonjs/samsam" "^3.1.0" 31 | 32 | "@sinonjs/samsam@^3.1.0": 33 | version "3.3.1" 34 | resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.1.tgz#e88c53fbd9d91ad9f0f2b0140c16c7c107fe0d07" 35 | integrity sha512-wRSfmyd81swH0hA1bxJZJ57xr22kC07a1N4zuIL47yTS04bDk6AoCkczcqHEjcRPmJ+FruGJ9WBQiJwMtIElFw== 36 | dependencies: 37 | "@sinonjs/commons" "^1.0.2" 38 | array-from "^2.1.1" 39 | lodash "^4.17.11" 40 | 41 | "@sinonjs/text-encoding@^0.7.1": 42 | version "0.7.1" 43 | resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" 44 | integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== 45 | 46 | "@types/node@^9.6.5": 47 | version "9.6.48" 48 | resolved "https://registry.npmjs.org/@types/node/-/node-9.6.48.tgz#06e765bda1fef91b075c58d540207e8b37dbdc1f" 49 | integrity sha512-velR2CyDrHC1WFheHr5Jm25mdCMs0BXJRp6u0zf8PF9yeOy4Xff5sJeusWS7xOmhAoezlSq8LJ0+9M5H7YkTdw== 50 | 51 | agent-base@4, agent-base@^4.1.0: 52 | version "4.2.1" 53 | resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" 54 | integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== 55 | dependencies: 56 | es6-promisify "^5.0.0" 57 | 58 | ajv@^6.5.5: 59 | version "6.10.0" 60 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" 61 | integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== 62 | dependencies: 63 | fast-deep-equal "^2.0.1" 64 | fast-json-stable-stringify "^2.0.0" 65 | json-schema-traverse "^0.4.1" 66 | uri-js "^4.2.2" 67 | 68 | argparse@^1.0.7: 69 | version "1.0.10" 70 | resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 71 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 72 | dependencies: 73 | sprintf-js "~1.0.2" 74 | 75 | array-from@^2.1.1: 76 | version "2.1.1" 77 | resolved "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" 78 | integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= 79 | 80 | asn1@~0.2.3: 81 | version "0.2.4" 82 | resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" 83 | integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== 84 | dependencies: 85 | safer-buffer "~2.1.0" 86 | 87 | assert-plus@1.0.0, assert-plus@^1.0.0: 88 | version "1.0.0" 89 | resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 90 | integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= 91 | 92 | asynckit@^0.4.0: 93 | version "0.4.0" 94 | resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 95 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 96 | 97 | aws-sign2@~0.7.0: 98 | version "0.7.0" 99 | resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 100 | integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= 101 | 102 | aws4@^1.8.0: 103 | version "1.8.0" 104 | resolved "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" 105 | integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== 106 | 107 | balanced-match@^1.0.0: 108 | version "1.0.0" 109 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 110 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 111 | 112 | bcrypt-pbkdf@^1.0.0: 113 | version "1.0.2" 114 | resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" 115 | integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= 116 | dependencies: 117 | tweetnacl "^0.14.3" 118 | 119 | brace-expansion@^1.1.7: 120 | version "1.1.11" 121 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 122 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 123 | dependencies: 124 | balanced-match "^1.0.0" 125 | concat-map "0.0.1" 126 | 127 | browser-stdout@1.3.0: 128 | version "1.3.0" 129 | resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" 130 | integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8= 131 | 132 | buffer-from@^1.0.0: 133 | version "1.1.1" 134 | resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 135 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 136 | 137 | caseless@~0.12.0: 138 | version "0.12.0" 139 | resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 140 | integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= 141 | 142 | combined-stream@^1.0.6, combined-stream@~1.0.6: 143 | version "1.0.7" 144 | resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" 145 | integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== 146 | dependencies: 147 | delayed-stream "~1.0.0" 148 | 149 | commander@2.11.0: 150 | version "2.11.0" 151 | resolved "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" 152 | integrity sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ== 153 | 154 | concat-map@0.0.1: 155 | version "0.0.1" 156 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 157 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 158 | 159 | core-util-is@1.0.2: 160 | version "1.0.2" 161 | resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 162 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 163 | 164 | cosmiconfig@^4.0.0: 165 | version "4.0.0" 166 | resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" 167 | integrity sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ== 168 | dependencies: 169 | is-directory "^0.3.1" 170 | js-yaml "^3.9.0" 171 | parse-json "^4.0.0" 172 | require-from-string "^2.0.1" 173 | 174 | dashdash@^1.12.0: 175 | version "1.14.1" 176 | resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 177 | integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= 178 | dependencies: 179 | assert-plus "^1.0.0" 180 | 181 | debug@3.1.0: 182 | version "3.1.0" 183 | resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 184 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 185 | dependencies: 186 | ms "2.0.0" 187 | 188 | debug@^3.1.0: 189 | version "3.2.6" 190 | resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 191 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 192 | dependencies: 193 | ms "^2.1.1" 194 | 195 | delayed-stream@~1.0.0: 196 | version "1.0.0" 197 | resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 198 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 199 | 200 | diff@3.3.1: 201 | version "3.3.1" 202 | resolved "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" 203 | integrity sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww== 204 | 205 | diff@^3.1.0: 206 | version "3.5.0" 207 | resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 208 | integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== 209 | 210 | ecc-jsbn@~0.1.1: 211 | version "0.1.2" 212 | resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" 213 | integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= 214 | dependencies: 215 | jsbn "~0.1.0" 216 | safer-buffer "^2.1.0" 217 | 218 | error-ex@^1.3.1: 219 | version "1.3.2" 220 | resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 221 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 222 | dependencies: 223 | is-arrayish "^0.2.1" 224 | 225 | es6-promise@^4.0.3: 226 | version "4.2.6" 227 | resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" 228 | integrity sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q== 229 | 230 | es6-promisify@^5.0.0: 231 | version "5.0.0" 232 | resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" 233 | integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= 234 | dependencies: 235 | es6-promise "^4.0.3" 236 | 237 | escape-string-regexp@1.0.5: 238 | version "1.0.5" 239 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 240 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 241 | 242 | esprima@^4.0.0: 243 | version "4.0.1" 244 | resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 245 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 246 | 247 | estree-walker@^0.6.1: 248 | version "0.6.1" 249 | resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" 250 | integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== 251 | 252 | extend@~3.0.2: 253 | version "3.0.2" 254 | resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 255 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== 256 | 257 | extsprintf@1.3.0: 258 | version "1.3.0" 259 | resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 260 | integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= 261 | 262 | extsprintf@^1.2.0: 263 | version "1.4.0" 264 | resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 265 | integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= 266 | 267 | fast-deep-equal@^2.0.1: 268 | version "2.0.1" 269 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" 270 | integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= 271 | 272 | fast-json-stable-stringify@^2.0.0: 273 | version "2.0.0" 274 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 275 | integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= 276 | 277 | forever-agent@~0.6.1: 278 | version "0.6.1" 279 | resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 280 | integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= 281 | 282 | form-data@~2.3.2: 283 | version "2.3.3" 284 | resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" 285 | integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== 286 | dependencies: 287 | asynckit "^0.4.0" 288 | combined-stream "^1.0.6" 289 | mime-types "^2.1.12" 290 | 291 | fs.realpath@^1.0.0: 292 | version "1.0.0" 293 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 294 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 295 | 296 | getpass@^0.1.1: 297 | version "0.1.7" 298 | resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 299 | integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= 300 | dependencies: 301 | assert-plus "^1.0.0" 302 | 303 | glob@7.1.2: 304 | version "7.1.2" 305 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 306 | integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== 307 | dependencies: 308 | fs.realpath "^1.0.0" 309 | inflight "^1.0.4" 310 | inherits "2" 311 | minimatch "^3.0.4" 312 | once "^1.3.0" 313 | path-is-absolute "^1.0.0" 314 | 315 | glob@^7.1.2: 316 | version "7.1.3" 317 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 318 | integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== 319 | dependencies: 320 | fs.realpath "^1.0.0" 321 | inflight "^1.0.4" 322 | inherits "2" 323 | minimatch "^3.0.4" 324 | once "^1.3.0" 325 | path-is-absolute "^1.0.0" 326 | 327 | growl@1.10.3: 328 | version "1.10.3" 329 | resolved "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" 330 | integrity sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q== 331 | 332 | har-schema@^2.0.0: 333 | version "2.0.0" 334 | resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 335 | integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= 336 | 337 | har-validator@~5.1.0: 338 | version "5.1.3" 339 | resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" 340 | integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== 341 | dependencies: 342 | ajv "^6.5.5" 343 | har-schema "^2.0.0" 344 | 345 | has-flag@^2.0.0: 346 | version "2.0.0" 347 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 348 | integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= 349 | 350 | has-flag@^3.0.0: 351 | version "3.0.0" 352 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 353 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 354 | 355 | he@1.1.1: 356 | version "1.1.1" 357 | resolved "https://registry.npmjs.org/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" 358 | integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= 359 | 360 | http-proxy-agent@^2.1.0: 361 | version "2.1.0" 362 | resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" 363 | integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== 364 | dependencies: 365 | agent-base "4" 366 | debug "3.1.0" 367 | 368 | http-signature@~1.2.0: 369 | version "1.2.0" 370 | resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 371 | integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= 372 | dependencies: 373 | assert-plus "^1.0.0" 374 | jsprim "^1.2.2" 375 | sshpk "^1.7.0" 376 | 377 | https-proxy-agent@^2.2.1: 378 | version "2.2.1" 379 | resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" 380 | integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== 381 | dependencies: 382 | agent-base "^4.1.0" 383 | debug "^3.1.0" 384 | 385 | inflight@^1.0.4: 386 | version "1.0.6" 387 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 388 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 389 | dependencies: 390 | once "^1.3.0" 391 | wrappy "1" 392 | 393 | inherits@2: 394 | version "2.0.3" 395 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 396 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 397 | 398 | is-arrayish@^0.2.1: 399 | version "0.2.1" 400 | resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 401 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 402 | 403 | is-directory@^0.3.1: 404 | version "0.3.1" 405 | resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" 406 | integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= 407 | 408 | is-typedarray@~1.0.0: 409 | version "1.0.0" 410 | resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 411 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 412 | 413 | isarray@0.0.1: 414 | version "0.0.1" 415 | resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 416 | integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= 417 | 418 | isstream@~0.1.2: 419 | version "0.1.2" 420 | resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 421 | integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= 422 | 423 | js-yaml@^3.9.0: 424 | version "3.13.1" 425 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 426 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== 427 | dependencies: 428 | argparse "^1.0.7" 429 | esprima "^4.0.0" 430 | 431 | jsbn@~0.1.0: 432 | version "0.1.1" 433 | resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 434 | integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= 435 | 436 | json-parse-better-errors@^1.0.1: 437 | version "1.0.2" 438 | resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 439 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 440 | 441 | json-schema-traverse@^0.4.1: 442 | version "0.4.1" 443 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 444 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 445 | 446 | json-schema@0.2.3: 447 | version "0.2.3" 448 | resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 449 | integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= 450 | 451 | json-stringify-safe@~5.0.1: 452 | version "5.0.1" 453 | resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 454 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= 455 | 456 | jsonc-parser@^1.0.0: 457 | version "1.0.3" 458 | resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-1.0.3.tgz#1d53d7160e401a783dbceabaad82473f80e6ad7e" 459 | integrity sha512-hk/69oAeaIzchq/v3lS50PXuzn5O2ynldopMC+SWBql7J2WtdptfB9dy8Y7+Og5rPkTCpn83zTiO8FMcqlXJ/g== 460 | 461 | jsprim@^1.2.2: 462 | version "1.4.1" 463 | resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 464 | integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= 465 | dependencies: 466 | assert-plus "1.0.0" 467 | extsprintf "1.3.0" 468 | json-schema "0.2.3" 469 | verror "1.10.0" 470 | 471 | just-extend@^4.0.2: 472 | version "4.0.2" 473 | resolved "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" 474 | integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw== 475 | 476 | lodash.get@^4.4.2: 477 | version "4.4.2" 478 | resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" 479 | integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= 480 | 481 | lodash@^4.17.10, lodash@^4.17.11: 482 | version "4.17.11" 483 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" 484 | integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== 485 | 486 | lolex@^2.2.0, lolex@^2.3.2: 487 | version "2.7.5" 488 | resolved "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" 489 | integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q== 490 | 491 | magic-string@^0.25.3: 492 | version "0.25.3" 493 | resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz#34b8d2a2c7fec9d9bdf9929a3fd81d271ef35be9" 494 | integrity sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA== 495 | dependencies: 496 | sourcemap-codec "^1.4.4" 497 | 498 | mime-db@1.40.0: 499 | version "1.40.0" 500 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" 501 | integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== 502 | 503 | mime-types@^2.1.12, mime-types@~2.1.19: 504 | version "2.1.24" 505 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" 506 | integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== 507 | dependencies: 508 | mime-db "1.40.0" 509 | 510 | minimatch@^3.0.4: 511 | version "3.0.4" 512 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 513 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 514 | dependencies: 515 | brace-expansion "^1.1.7" 516 | 517 | minimist@0.0.8: 518 | version "0.0.8" 519 | resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 520 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 521 | 522 | mkdirp@0.5.1: 523 | version "0.5.1" 524 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 525 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 526 | dependencies: 527 | minimist "0.0.8" 528 | 529 | mocha@^4.0.1: 530 | version "4.1.0" 531 | resolved "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794" 532 | integrity sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA== 533 | dependencies: 534 | browser-stdout "1.3.0" 535 | commander "2.11.0" 536 | debug "3.1.0" 537 | diff "3.3.1" 538 | escape-string-regexp "1.0.5" 539 | glob "7.1.2" 540 | growl "1.10.3" 541 | he "1.1.1" 542 | mkdirp "0.5.1" 543 | supports-color "4.4.0" 544 | 545 | ms@2.0.0: 546 | version "2.0.0" 547 | resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 548 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 549 | 550 | ms@^2.1.1: 551 | version "2.1.1" 552 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 553 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 554 | 555 | nise@^1.2.0: 556 | version "1.4.10" 557 | resolved "https://registry.npmjs.org/nise/-/nise-1.4.10.tgz#ae46a09a26436fae91a38a60919356ae6db143b6" 558 | integrity sha512-sa0RRbj53dovjc7wombHmVli9ZihXbXCQ2uH3TNm03DyvOSIQbxg+pbqDKrk2oxMK1rtLGVlKxcB9rrc6X5YjA== 559 | dependencies: 560 | "@sinonjs/formatio" "^3.1.0" 561 | "@sinonjs/text-encoding" "^0.7.1" 562 | just-extend "^4.0.2" 563 | lolex "^2.3.2" 564 | path-to-regexp "^1.7.0" 565 | 566 | oauth-sign@~0.9.0: 567 | version "0.9.0" 568 | resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" 569 | integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== 570 | 571 | once@^1.3.0: 572 | version "1.4.0" 573 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 574 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 575 | dependencies: 576 | wrappy "1" 577 | 578 | parse-json@^4.0.0: 579 | version "4.0.0" 580 | resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 581 | integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= 582 | dependencies: 583 | error-ex "^1.3.1" 584 | json-parse-better-errors "^1.0.1" 585 | 586 | path-is-absolute@^1.0.0: 587 | version "1.0.1" 588 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 589 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 590 | 591 | path-to-regexp@^1.7.0: 592 | version "1.7.0" 593 | resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" 594 | integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30= 595 | dependencies: 596 | isarray "0.0.1" 597 | 598 | performance-now@^2.1.0: 599 | version "2.1.0" 600 | resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 601 | integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= 602 | 603 | prettier-plugin-svelte@0.7.0: 604 | version "0.7.0" 605 | resolved "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-0.7.0.tgz#5ac0b9f194e0450c88ff1e167cbf3b32d2642df2" 606 | integrity sha512-SuZSeMh48rx42kCFEpI/xE1XgjxQcS3r22Yo7jIhBYRhwbAa8laNxiIHsfeWWkX8BdyELkEayaTQp4ricckwTQ== 607 | dependencies: 608 | tslib "^1.9.3" 609 | 610 | prettier@1.18.2: 611 | version "1.18.2" 612 | resolved "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" 613 | integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== 614 | 615 | psl@^1.1.24: 616 | version "1.1.31" 617 | resolved "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" 618 | integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw== 619 | 620 | punycode@^1.4.1: 621 | version "1.4.1" 622 | resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 623 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= 624 | 625 | punycode@^2.1.0: 626 | version "2.1.1" 627 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 628 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 629 | 630 | qs@~6.5.2: 631 | version "6.5.2" 632 | resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 633 | integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== 634 | 635 | querystringify@^2.1.1: 636 | version "2.1.1" 637 | resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" 638 | integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== 639 | 640 | request@^2.88.0: 641 | version "2.88.0" 642 | resolved "https://registry.npmjs.org/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" 643 | integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== 644 | dependencies: 645 | aws-sign2 "~0.7.0" 646 | aws4 "^1.8.0" 647 | caseless "~0.12.0" 648 | combined-stream "~1.0.6" 649 | extend "~3.0.2" 650 | forever-agent "~0.6.1" 651 | form-data "~2.3.2" 652 | har-validator "~5.1.0" 653 | http-signature "~1.2.0" 654 | is-typedarray "~1.0.0" 655 | isstream "~0.1.2" 656 | json-stringify-safe "~5.0.1" 657 | mime-types "~2.1.19" 658 | oauth-sign "~0.9.0" 659 | performance-now "^2.1.0" 660 | qs "~6.5.2" 661 | safe-buffer "^5.1.2" 662 | tough-cookie "~2.4.3" 663 | tunnel-agent "^0.6.0" 664 | uuid "^3.3.2" 665 | 666 | require-from-string@^2.0.1: 667 | version "2.0.2" 668 | resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 669 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 670 | 671 | requires-port@^1.0.0: 672 | version "1.0.0" 673 | resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" 674 | integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= 675 | 676 | safe-buffer@^5.0.1, safe-buffer@^5.1.2: 677 | version "5.1.2" 678 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 679 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 680 | 681 | safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: 682 | version "2.1.2" 683 | resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 684 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 685 | 686 | samsam@1.3.0: 687 | version "1.3.0" 688 | resolved "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" 689 | integrity sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg== 690 | 691 | semver@^5.4.1, semver@^5.5.0: 692 | version "5.7.0" 693 | resolved "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" 694 | integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== 695 | 696 | sinon@^4.5.0: 697 | version "4.5.0" 698 | resolved "https://registry.npmjs.org/sinon/-/sinon-4.5.0.tgz#427ae312a337d3c516804ce2754e8c0d5028cb04" 699 | integrity sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w== 700 | dependencies: 701 | "@sinonjs/formatio" "^2.0.0" 702 | diff "^3.1.0" 703 | lodash.get "^4.4.2" 704 | lolex "^2.2.0" 705 | nise "^1.2.0" 706 | supports-color "^5.1.0" 707 | type-detect "^4.0.5" 708 | 709 | source-map-support@^0.5.0: 710 | version "0.5.12" 711 | resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" 712 | integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== 713 | dependencies: 714 | buffer-from "^1.0.0" 715 | source-map "^0.6.0" 716 | 717 | source-map@^0.6.0: 718 | version "0.6.1" 719 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 720 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 721 | 722 | source-map@^0.7.3: 723 | version "0.7.3" 724 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" 725 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 726 | 727 | sourcemap-codec@^1.4.4: 728 | version "1.4.6" 729 | resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz#e30a74f0402bad09807640d39e971090a08ce1e9" 730 | integrity sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg== 731 | 732 | sprintf-js@~1.0.2: 733 | version "1.0.3" 734 | resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 735 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 736 | 737 | sshpk@^1.7.0: 738 | version "1.16.1" 739 | resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" 740 | integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== 741 | dependencies: 742 | asn1 "~0.2.3" 743 | assert-plus "^1.0.0" 744 | bcrypt-pbkdf "^1.0.0" 745 | dashdash "^1.12.0" 746 | ecc-jsbn "~0.1.1" 747 | getpass "^0.1.1" 748 | jsbn "~0.1.0" 749 | safer-buffer "^2.0.2" 750 | tweetnacl "~0.14.0" 751 | 752 | supports-color@4.4.0: 753 | version "4.4.0" 754 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" 755 | integrity sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ== 756 | dependencies: 757 | has-flag "^2.0.0" 758 | 759 | supports-color@^5.1.0: 760 | version "5.5.0" 761 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 762 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 763 | dependencies: 764 | has-flag "^3.0.0" 765 | 766 | svelte-language-server@^0.10.3: 767 | version "0.10.3" 768 | resolved "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.10.3.tgz#945b0d93306219dc01a3e1afe95bf34fc36e3942" 769 | integrity sha512-kXwwX+t/snSmORKkp/Gx5XBVFfhFQXLCQCBthk7pb/SNXQX7tGptiKgvfyF0kFrMO7OVP3eaUVfSPDQlFwJSYA== 770 | dependencies: 771 | cosmiconfig "^4.0.0" 772 | estree-walker "^0.6.1" 773 | lodash "^4.17.10" 774 | magic-string "^0.25.3" 775 | prettier "1.18.2" 776 | prettier-plugin-svelte "0.7.0" 777 | sinon "^4.5.0" 778 | source-map "^0.7.3" 779 | svelte "3.6.7" 780 | typescript "3.5.3" 781 | vscode-css-languageservice "4.0.2" 782 | vscode-emmet-helper "1.2.15" 783 | vscode-html-languageservice "3.0.2" 784 | vscode-languageserver "5.2.1" 785 | vscode-languageserver-types "3.14.0" 786 | vscode-uri "2.0.3" 787 | 788 | svelte@3.6.7: 789 | version "3.6.7" 790 | resolved "https://registry.npmjs.org/svelte/-/svelte-3.6.7.tgz#20e814b79aac4009d4bc1ecf0c9287a6bf7e96fb" 791 | integrity sha512-9HzhPxWNLi+ZBhxL3HJ8jwwu+u+XfHtVF3uEJ2m8/JOdnaTC9D2qiEwOncgI7z/pN+VumgKQtZoHtvYCW6fHqg== 792 | 793 | tough-cookie@~2.4.3: 794 | version "2.4.3" 795 | resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" 796 | integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== 797 | dependencies: 798 | psl "^1.1.24" 799 | punycode "^1.4.1" 800 | 801 | tslib@^1.9.3: 802 | version "1.9.3" 803 | resolved "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" 804 | integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== 805 | 806 | tunnel-agent@^0.6.0: 807 | version "0.6.0" 808 | resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 809 | integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= 810 | dependencies: 811 | safe-buffer "^5.0.1" 812 | 813 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 814 | version "0.14.5" 815 | resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 816 | integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= 817 | 818 | type-detect@4.0.8, type-detect@^4.0.5: 819 | version "4.0.8" 820 | resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" 821 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 822 | 823 | typescript@3.5.3: 824 | version "3.5.3" 825 | resolved "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" 826 | integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== 827 | 828 | typescript@^3.0.1: 829 | version "3.4.5" 830 | resolved "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" 831 | integrity sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw== 832 | 833 | uri-js@^4.2.2: 834 | version "4.2.2" 835 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 836 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== 837 | dependencies: 838 | punycode "^2.1.0" 839 | 840 | url-parse@^1.4.4: 841 | version "1.4.7" 842 | resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" 843 | integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== 844 | dependencies: 845 | querystringify "^2.1.1" 846 | requires-port "^1.0.0" 847 | 848 | uuid@^3.3.2: 849 | version "3.3.2" 850 | resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" 851 | integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== 852 | 853 | verror@1.10.0: 854 | version "1.10.0" 855 | resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 856 | integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= 857 | dependencies: 858 | assert-plus "^1.0.0" 859 | core-util-is "1.0.2" 860 | extsprintf "^1.2.0" 861 | 862 | vscode-css-languageservice@4.0.2: 863 | version "4.0.2" 864 | resolved "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-4.0.2.tgz#7496e538b0c151feac16d5888cc0b1b104f4c736" 865 | integrity sha512-pTnfXbsME3pl+yDfhUp/mtvPyIJk0Le4zqJxDn56s9GY9LqY0RmkSEh0oHH6D0HXR3Ni6wKosIaqu8a2G0+jdw== 866 | dependencies: 867 | vscode-languageserver-types "^3.15.0-next.2" 868 | vscode-nls "^4.1.1" 869 | 870 | vscode-emmet-helper@1.2.15: 871 | version "1.2.15" 872 | resolved "https://registry.npmjs.org/vscode-emmet-helper/-/vscode-emmet-helper-1.2.15.tgz#62dbfbf49bb9ebe329cb7bffdda5aaac725eea7a" 873 | integrity sha512-JplvmMMWSvm/6/dZezix2ADPM49u6YahPYjs/QToohUpomW/2Eb27ecCrkCyOGBPfKLKGiOPHCssss8TSDA9ag== 874 | dependencies: 875 | "@emmetio/extract-abbreviation" "0.1.6" 876 | jsonc-parser "^1.0.0" 877 | vscode-languageserver-types "^3.6.0-next.1" 878 | 879 | vscode-html-languageservice@3.0.2: 880 | version "3.0.2" 881 | resolved "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-3.0.2.tgz#1fb9f1bf25094ad10c5b64931083d841ce6e6e0c" 882 | integrity sha512-MP9al7nk1SqQwW4GdDy6Ec3UU1GKy0Wf4pzo3nQ5lgdScb2pajV7iyXZIGJk7jQbifkZWnG0jB7CKecTNFynJw== 883 | dependencies: 884 | vscode-languageserver-types "^3.15.0-next.2" 885 | vscode-nls "^4.1.1" 886 | vscode-uri "^2.0.1" 887 | 888 | vscode-jsonrpc@^4.0.0: 889 | version "4.0.0" 890 | resolved "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz#a7bf74ef3254d0a0c272fab15c82128e378b3be9" 891 | integrity sha512-perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg== 892 | 893 | vscode-languageclient@^5.0.1: 894 | version "5.2.1" 895 | resolved "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-5.2.1.tgz#7cfc83a294c409f58cfa2b910a8cfeaad0397193" 896 | integrity sha512-7jrS/9WnV0ruqPamN1nE7qCxn0phkH5LjSgSp9h6qoJGoeAKzwKz/PF6M+iGA/aklx4GLZg1prddhEPQtuXI1Q== 897 | dependencies: 898 | semver "^5.5.0" 899 | vscode-languageserver-protocol "3.14.1" 900 | 901 | vscode-languageserver-protocol@3.14.1: 902 | version "3.14.1" 903 | resolved "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.14.1.tgz#b8aab6afae2849c84a8983d39a1cf742417afe2f" 904 | integrity sha512-IL66BLb2g20uIKog5Y2dQ0IiigW0XKrvmWiOvc0yXw80z3tMEzEnHjaGAb3ENuU7MnQqgnYJ1Cl2l9RvNgDi4g== 905 | dependencies: 906 | vscode-jsonrpc "^4.0.0" 907 | vscode-languageserver-types "3.14.0" 908 | 909 | vscode-languageserver-types@3.14.0, vscode-languageserver-types@^3.6.0-next.1: 910 | version "3.14.0" 911 | resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743" 912 | integrity sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A== 913 | 914 | vscode-languageserver-types@^3.15.0-next.2: 915 | version "3.15.0-next.2" 916 | resolved "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.0-next.2.tgz#a0601332cdaafac21931f497bb080cfb8d73f254" 917 | integrity sha512-2JkrMWWUi2rlVLSo9OFR2PIGUzdiowEM8NgNYiwLKnXTjpwpjjIrJbNNxDik7Rv4oo9KtikcFQZKXbrKilL/MQ== 918 | 919 | vscode-languageserver@5.2.1: 920 | version "5.2.1" 921 | resolved "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-5.2.1.tgz#0d2feddd33f92aadf5da32450df498d52f6f14eb" 922 | integrity sha512-GuayqdKZqAwwaCUjDvMTAVRPJOp/SLON3mJ07eGsx/Iq9HjRymhKWztX41rISqDKhHVVyFM+IywICyZDla6U3A== 923 | dependencies: 924 | vscode-languageserver-protocol "3.14.1" 925 | vscode-uri "^1.0.6" 926 | 927 | vscode-nls@^4.1.1: 928 | version "4.1.1" 929 | resolved "https://registry.npmjs.org/vscode-nls/-/vscode-nls-4.1.1.tgz#f9916b64e4947b20322defb1e676a495861f133c" 930 | integrity sha512-4R+2UoUUU/LdnMnFjePxfLqNhBS8lrAFyX7pjb2ud/lqDkrUavFUTcG7wR0HBZFakae0Q6KLBFjMS6W93F403A== 931 | 932 | vscode-test@^0.4.1: 933 | version "0.4.1" 934 | resolved "https://registry.npmjs.org/vscode-test/-/vscode-test-0.4.1.tgz#5e2387dbc303544c932092469e6bbf42204bfab3" 935 | integrity sha512-uIi/07uG/gmCbD9Y9bFpNzmk4el82xiclijEdL426A3jOFfvwdqgfmtuWYfxEGo0w6JY9EqVDTGQCXwuInXVTQ== 936 | dependencies: 937 | http-proxy-agent "^2.1.0" 938 | https-proxy-agent "^2.2.1" 939 | 940 | vscode-uri@2.0.3, vscode-uri@^2.0.1: 941 | version "2.0.3" 942 | resolved "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.0.3.tgz#25e5f37f552fbee3cec7e5f80cef8469cefc6543" 943 | integrity sha512-4D3DI3F4uRy09WNtDGD93H9q034OHImxiIcSq664Hq1Y1AScehlP3qqZyTkX/RWxeu0MRMHGkrxYqm2qlDF/aw== 944 | 945 | vscode-uri@^1.0.6: 946 | version "1.0.6" 947 | resolved "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.6.tgz#6b8f141b0bbc44ad7b07e94f82f168ac7608ad4d" 948 | integrity sha512-sLI2L0uGov3wKVb9EB+vIQBl9tVP90nqRvxSoJ35vI3NjxE8jfsE5DSOhWgSunHSZmKS4OCi2jrtfxK7uyp2ww== 949 | 950 | vscode@^1.1.30: 951 | version "1.1.34" 952 | resolved "https://registry.npmjs.org/vscode/-/vscode-1.1.34.tgz#3aba5d2f3a9d43f4e798f6933339fe5fcfb782c6" 953 | integrity sha512-GuT3tCT2N5Qp26VG4C+iGmWMgg/MuqtY5G5TSOT3U/X6pgjM9LFulJEeqpyf6gdzpI4VyU3ZN/lWPo54UFPuQg== 954 | dependencies: 955 | glob "^7.1.2" 956 | mocha "^4.0.1" 957 | request "^2.88.0" 958 | semver "^5.4.1" 959 | source-map-support "^0.5.0" 960 | url-parse "^1.4.4" 961 | vscode-test "^0.4.1" 962 | 963 | wrappy@1: 964 | version "1.0.2" 965 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 966 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 967 | --------------------------------------------------------------------------------