From 81c941962eae14ba125cf16d9c6259e19afa2258 Mon Sep 17 00:00:00 2001 From: Orta Therox Date: Wed, 23 Mar 2022 17:35:03 +0000 Subject: [PATCH] Initial implementation of vscode-graphql inside the graphiql repo (#2239) * Initial implementation of vscode-graphql inside the graphiql repo * Use the new VS Code API for icons Co-authored-by: Rikki Schulte --- .vscode/launch.json | 23 + .vscode/settings.json | 3 + .vscode/tasks.json | 18 + package.json | 6 + .../package.json | 3 +- .../src/GraphQLCache.ts | 7 +- packages/vscode-graphql/.gitignore | 8 + packages/vscode-graphql/CHANGELOG.md | 147 ++++ packages/vscode-graphql/LICENSE | 21 + .../vscode-graphql/assets/graphql-fonts.woff | Bin 0 -> 2000 bytes .../vscode-graphql/assets/images/logo.png | Bin 0 -> 5414 bytes .../vscode-graphql/grammars/graphql.js.json | 67 ++ packages/vscode-graphql/grammars/graphql.json | 766 ++++++++++++++++++ .../grammars/graphql.markdown.codeblock.json | 23 + .../vscode-graphql/grammars/graphql.re.json | 35 + .../grammars/graphql.rescript.json | 25 + .../language/language-configuration.json | 25 + packages/vscode-graphql/package.json | 263 ++++++ packages/vscode-graphql/snippets/graphql.json | 28 + packages/vscode-graphql/src/apis/statusBar.ts | 145 ++++ packages/vscode-graphql/src/extension.ts | 140 ++++ packages/vscode-graphql/src/server/index.ts | 17 + packages/vscode-graphql/tsconfig.json | 19 + resources/tsconfig.build.cjs.json | 3 + yarn.lock | 599 +++++++++++++- 25 files changed, 2369 insertions(+), 22 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 packages/vscode-graphql/.gitignore create mode 100644 packages/vscode-graphql/CHANGELOG.md create mode 100644 packages/vscode-graphql/LICENSE create mode 100644 packages/vscode-graphql/assets/graphql-fonts.woff create mode 100644 packages/vscode-graphql/assets/images/logo.png create mode 100644 packages/vscode-graphql/grammars/graphql.js.json create mode 100644 packages/vscode-graphql/grammars/graphql.json create mode 100644 packages/vscode-graphql/grammars/graphql.markdown.codeblock.json create mode 100644 packages/vscode-graphql/grammars/graphql.re.json create mode 100644 packages/vscode-graphql/grammars/graphql.rescript.json create mode 100644 packages/vscode-graphql/language/language-configuration.json create mode 100644 packages/vscode-graphql/package.json create mode 100644 packages/vscode-graphql/snippets/graphql.json create mode 100644 packages/vscode-graphql/src/apis/statusBar.ts create mode 100644 packages/vscode-graphql/src/extension.ts create mode 100644 packages/vscode-graphql/src/server/index.ts create mode 100644 packages/vscode-graphql/tsconfig.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000000..4ddf05cd2f2 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,23 @@ +// A launch configuration that compiles the extension and then opens it inside a new window +// Use IntelliSense to learn about possible attributes. +// Hover to view descriptions of existing attributes. +// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 +{ + "version": "0.2.0", + "configurations": [ + { + "name": "VS Code Extension: Run", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}/packages/vscode-graphql" + ], + "outFiles": [ + "${workspaceFolder}/packages/vscode-graphql/out/extension.js" + ], + "sourceMaps": true, + "preLaunchTask": "watch-vscode" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000000..ad94bc76410 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "npm.packageManager": "yarn" +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000000..2dcb67a23a6 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,18 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "watch-vscode", + "type": "shell", + "command": "source ~/.zshrc; yarn run watch-vscode", + "isBackground": true, + "presentation": { + "reveal": "always" + }, + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} diff --git a/package.json b/package.json index 18e2cdb99c8..19dda9ac423 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,10 @@ "build-docs": "rimraf 'packages/graphiql/typedoc' && typedoc 'packages'", "build:clean": "yarn tsc --clean", "build:watch": "yarn tsc --watch", + "watch": "yarn build:watch", + "watch-vscode:prebuild": "yarn build && yarn workspace vscode-graphql run build-bundles", + "watch-vscode:bundle": "chokidar 'packages/*/dist/**/*.{js,ts}' -c 'yarn workspace vscode-graphql run build-bundles'", + "watch-vscode": "yarn watch-vscode:prebuild && concurrently 'yarn tsc --watch' 'yarn watch-vscode:bundle'", "check": "yarn tsc --dry", "cypress-open": "yarn workspace graphiql cypress-open", "dev-graphiql": "yarn workspace graphiql dev", @@ -99,7 +103,9 @@ "aws-serverless-express": "^3.4.0", "babel-eslint": "^10.1.0", "babel-jest": "^25.3.0", + "chokidar-cli": "^3.0.0", "copy": "^0.3.2", + "concurrently": "^7.0.0", "cors": "^2.8.5", "cross-env": "^7.0.2", "cypress": "^4.7.0", diff --git a/packages/graphql-language-service-server/package.json b/packages/graphql-language-service-server/package.json index cd11ec3e353..3bfe1cd5c99 100644 --- a/packages/graphql-language-service-server/package.json +++ b/packages/graphql-language-service-server/package.json @@ -42,7 +42,8 @@ "vscode-languageserver": "^6.1.1", "fast-glob": "^3.2.7", "vscode-uri": "^3.0.2", - "glob": "^7.2.0" + "glob": "^7.2.0", + "@graphql-tools/load": "^7.5.3" }, "devDependencies": { "@types/mkdirp": "^1.0.1", diff --git a/packages/graphql-language-service-server/src/GraphQLCache.ts b/packages/graphql-language-service-server/src/GraphQLCache.ts index 37d6b6f8f0a..e44ce4acd6c 100644 --- a/packages/graphql-language-service-server/src/GraphQLCache.ts +++ b/packages/graphql-language-service-server/src/GraphQLCache.ts @@ -27,6 +27,9 @@ import { GraphQLConfig, GraphQLProjectConfig, } from 'graphql-config'; + +import type { UnnormalizedTypeDefPointer } from '@graphql-tools/load'; + import { parseDocument } from './parseDocument'; import stringToHash from './stringToHash'; import glob from 'glob'; @@ -653,7 +656,9 @@ export class GraphQLCache implements GraphQLCacheInterface { schemaKey && this._schemaMap.delete(schemaKey); } - _getSchemaCacheKeyForProject(projectConfig: GraphQLProjectConfig) { + _getSchemaCacheKeyForProject( + projectConfig: GraphQLProjectConfig, + ): UnnormalizedTypeDefPointer { return projectConfig.schema; } diff --git a/packages/vscode-graphql/.gitignore b/packages/vscode-graphql/.gitignore new file mode 100644 index 00000000000..4058a3dfc84 --- /dev/null +++ b/packages/vscode-graphql/.gitignore @@ -0,0 +1,8 @@ +out +node_modules +.vscode-test/ +*.vsix +.vscode/ + +.DS_Store +.envrc \ No newline at end of file diff --git a/packages/vscode-graphql/CHANGELOG.md b/packages/vscode-graphql/CHANGELOG.md new file mode 100644 index 00000000000..f95d05cc699 --- /dev/null +++ b/packages/vscode-graphql/CHANGELOG.md @@ -0,0 +1,147 @@ +# Change Log + +## 0.3.52 + +### Patch Changes + +- [#452](https://github.com/graphql/vscode-graphql/pull/452) [`8878e42`](https://github.com/graphql/vscode-graphql/commit/8878e428c83eed4f53510f9071e9964f48b5d214) Thanks [@acao](https://github.com/acao)! - Limit activation events for package.json file provided `graphql-config` + +## 0.3.50 + +### Patch Changes + +- [#448](https://github.com/graphql/vscode-graphql/pull/448) [`f894dad`](https://github.com/graphql/vscode-graphql/commit/f894daddfe7382f7eb8e9c921c54904255a3557c) Thanks [@acao](https://github.com/acao)! - ugprade graphql-language-service-server to the latest patch version for windows path fix + +* [#436](https://github.com/graphql/vscode-graphql/pull/436) [`2370607`](https://github.com/graphql/vscode-graphql/commit/23706071c6338c05e951783a3e7dfd5000da6d02) Thanks [@orta](https://github.com/orta)! - Adds support for making clicking on the graphql status item show the output channel + +- [#277](https://github.com/graphql/vscode-graphql/pull/277) [`6017872`](https://github.com/graphql/vscode-graphql/commit/6017872b7f19ef5c3fcad404fca9ffd5b8ba5d87) Thanks [@AumyF](https://github.com/AumyF)! - provide 'Execute Query' for `/* GraphQL */` templates + +* [#422](https://github.com/graphql/vscode-graphql/pull/422) [`0e2235d`](https://github.com/graphql/vscode-graphql/commit/0e2235d7fa229b78fb330c337d14fabf679884c2) Thanks [@orta](https://github.com/orta)! - Use the vscode theme API to set the right colours for the status bar item + +## 0.3.48 + +### Patch Changes + +- [#402](https://github.com/graphql/vscode-graphql/pull/402) [`a97e5df`](https://github.com/graphql/vscode-graphql/commit/a97e5df9933dfc79b06e5202c84216cfe2d5f865) Thanks [@acao](https://github.com/acao)! - thanks @markusjwetzel! Add directive highlighting for type system directives. [https://github.com/graphql/vscode-graphql/pull/326](https://github.com/graphql/vscode-graphql/pull/326) + +## 0.3.43 + +### Patch Changes + +- [#391](https://github.com/graphql/vscode-graphql/pull/391) [`6be5593`](https://github.com/graphql/vscode-graphql/commit/6be5593a45a4629f3438f59223ecb04949cb48d2) Thanks [@acao](https://github.com/acao)! - LSP upgrades: + + - bugfix for `insertText` & completion on invalid list types + - add support for template strings and tags with replacement expressions, so strings like these should work now: + + ```ts + const = /*GraphiQL*/ + ` + ${myFragments} + query MyQuery { + something + ${anotherString} + } + + ` + ``` + + ```ts + const = gql` + ${myFragments} + query MyQuery { + something + ${anotherString} + } + + ` + ``` + +All notable changes to the "vscode-graphql" extension will be manually documented in this file. + +Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file. + +The git log should show a fairly clean view of each of these new versions, and the issues/PRs associated. + +# 0.3.25 + +Remove `node_modules` from bundle after adding `esbuild` to make the extension bundle smaller + +# 0.3.24 + +Add highlighting and langauge support for `.mjs`, `.cjs`, `.es6`, `.esm` and other similar extensions + +# 0.3.23 + +Major bugfixes for language features. Most bugs with language features not working should be resolved. + +The `useSchemaFileDefinition` setting was deprecated, and SDL-driven projects work by default. If you want to opt-into an experimental feature to cache graphql-config schema result for definitions (useful for remote schemas), consult the readme on how to configure `cacheSchemaFileForLookup` option in vscode settings, or graphql config (yes you can enable/disable it per-project!) + +Definition lookup works by default with SDL file schemas. `cacheSchemaFileForLookup` must be enabled if you have a remote schema want definition lookup for input types, etc in queries + +# 0.3.19 + +- support `graphql-config` for `.ts` and `.toml` files by upgrading `graphql-config` & `graphql-language-service-server` +- use `*` activation event, because `graphql-config` in `package.json` is impossible to detect otherwise using vscode `activationEvents` +- support additional language features in `graphql-language-service-server` such as interface implements interfaces, etc +- upgrade operation execution to use a new graphql client and support subscriptions +- fix openvsx & vscode publish by re-creating PATs and signing new agreements + +Note: there are still some known bugs in the language server we will be fixing soon: + +- if you don't see editor output, please check your config +- output channel may show errors even after your configuration works +- there may be issues with schema file loading + +# 0.3.13 + +LSP bugfixes: + +- [streaming interface bug](https://github.com/graphql/graphiql/blob/main/packages/graphql-language-service-server/CHANGELOG.md#256-2020-11-28) +- bugfixes for windows filepaths in LSP server + +# 0.3.8 + +- require `dotenv` in the server runtime (for loading graphql config values), and allow a `graphql-config.dotEnvPath` configuration to specify specific paths +- reload server on workspace configuration changes +- reload severside `graphql-config` and language service on config file changes. definitions cache/etc will be rebuilt + - note: client not configured to reload on graphql config changes yet (i.e endpoints) +- accept all `graphql-config.loadConfig()` options + +# 0.3.7 + +- update underlying `graphql-language-service-server` to allow .gql, .graphqls extensions + +# 0.3.6 + +- documentation fix + +# 0.3.5 + +- readme documentation improvements, more examples, FAQ, known issues +- bump `graphql-language-service-server` to allow implicit fragment completion (non-inline fragments). just include your fragments file or string in the graphql-config `documents` + +# 0.3.4 + +- remove insiders announcement until tooling is properly in place, and insiders extension is up to date + +# 0.3.3 + +- `useSchemaFileDefinition` setting + +# 0.3.2 + +- #213: bugfix for input validation on operation exection + +# 0.3.1 🎉 + +- upgrade to `graphql-config@3` +- upgrade to latest major version of `graphql-language-service-server` + - upgrades `graphql-config@3` + - remove watchman dependency 🎉 + - introduce workspace symbol lookup, outline + - validation and completion for input variables + - generate a schema output by default, for code-first schemas. SDL first schemas have an override option now + +## Historical 0.2.x versions + +[todo] diff --git a/packages/vscode-graphql/LICENSE b/packages/vscode-graphql/LICENSE new file mode 100644 index 00000000000..7802f239a32 --- /dev/null +++ b/packages/vscode-graphql/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 GraphQL Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/vscode-graphql/assets/graphql-fonts.woff b/packages/vscode-graphql/assets/graphql-fonts.woff new file mode 100644 index 0000000000000000000000000000000000000000..0c54b6a9010f4a20be5c8b903b40b1add8635879 GIT binary patch literal 2000 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.config.js instead of default `graphql`", + "default": null + }, + "graphql-config.dotEnvPath": { + "type": [ + "string" + ], + "description": "optional .env load path, if not the default", + "default": null + } + } + }, + "commands": [ + { + "command": "vscode-graphql.isDebugging", + "title": "VSCode GraphQL: Is Debugging?" + }, + { + "command": "vscode-graphql.restart", + "title": "VSCode GraphQL: Manual Restart" + }, + { + "command": "vscode-graphql.showOutputChannel", + "title": "VSCode GraphQL: Show output channel" + }, + { + "command": "vscode-graphql.contentProvider", + "title": "VSCode GraphQL: Execute GraphQL Operations" + } + ] + }, + "scripts": { + "vscode:prepublish": "npm run compile -- --minify", + "compile": "npm run compile:server && esbuild ./dist/extension.js --bundle --outfile=out/extension.js --external:vscode --format=cjs --platform=node", + "compile:server": "esbuild ./dist/server/index.js --bundle --outfile=out/server/server.js --external:vscode --format=cjs --platform=node", + "build-bundles": "npm run compile -- --sourcemap", + "vsce:package": "vsce package", + "env:source": "export $(cat .envrc | xargs)", + "vsce:publish": "vsce publish", + "open-vsx:publish": "ovsx publish -p \"$OPEN_VSX_ACCESS_TOKEN\"", + "publish": "npm run vsce:publish && npm run open-vsx:publish" + }, + "devDependencies": { + "@types/capitalize": "2.0.0", + "@types/vscode": "1.62.0", + "esbuild": "0.13.15", + "ovsx": "0.3.0", + "vsce": "2.6.7" + }, + "dependencies": { + "graphql": "16.0.0-experimental-stream-defer.5", + "graphql-config": "^4.1.0", + "graphql-language-service-server": "^2.7.16", + "vscode-languageclient": "5.2.1" + }, + "resolutions": { + "graphql-config": "4.1.0" + } +} diff --git a/packages/vscode-graphql/snippets/graphql.json b/packages/vscode-graphql/snippets/graphql.json new file mode 100644 index 00000000000..8a361878785 --- /dev/null +++ b/packages/vscode-graphql/snippets/graphql.json @@ -0,0 +1,28 @@ +{ + ".source.graphql": { + "Interface definition": { + "prefix": "int", + "body": ["interface ${1:IName} {", "\t$2", "}"] + }, + "Type definition": { + "prefix": "typ", + "body": ["type ${1:TypeName} ${2:implements ${3:IName} }{", "\t$4", "}"] + }, + "Input Field definition": { + "prefix": "inp", + "body": ["input ${1:TypeInput} {", "\t$2", "}"] + }, + "Enum definition": { + "prefix": "enu", + "body": ["enum ${1:EnumName} {", "\t$2", "}"] + }, + "Union definition": { + "prefix": "uni", + "body": ["union ${1:UnionName} = $2 | $3"] + }, + "Fragment definition": { + "prefix": "fra", + "body": ["fragment ${1:FragmentName} on ${2:TypeName} {", "\t$3", "}"] + } + } +} diff --git a/packages/vscode-graphql/src/apis/statusBar.ts b/packages/vscode-graphql/src/apis/statusBar.ts new file mode 100644 index 00000000000..117e05a83b8 --- /dev/null +++ b/packages/vscode-graphql/src/apis/statusBar.ts @@ -0,0 +1,145 @@ +import { + StatusBarAlignment, + StatusBarItem, + TextEditor, + window, + ThemeColor, + version, +} from 'vscode'; +import { LanguageClient, State } from 'vscode-languageclient'; + +enum Status { + INIT = 1, + RUNNING = 2, + ERROR = 3, +} + +// const statusBarText = 'GraphQL'; + +const oldStatusBarUIElements = { + [Status.INIT]: { + icon: 'sync', + tooltip: 'GraphQL language server is initializing', + }, + [Status.RUNNING]: { + icon: 'plug', + tooltip: 'GraphQL language server is running', + }, + [Status.ERROR]: { + icon: 'stop', + color: new ThemeColor('list.warningForeground'), + tooltip: 'GraphQL language server has stopped', + }, +}; + +// Uses an API added in Feb 2022 +const statusBarUIElements = { + [Status.INIT]: { + icon: 'graphql-loading', + tooltip: 'GraphQL language server is starting up, click to show logs', + }, + [Status.RUNNING]: { + icon: 'graphql-logo', + tooltip: 'GraphQL language server is running, click to show logs', + }, + [Status.ERROR]: { + icon: 'graphql-error', + color: new ThemeColor('list.warningForeground'), + tooltip: 'GraphQL language server has stopped, click to show logs', + }, +}; + +// const statusBarItem = window.createStatusBarItem(StatusBarAlignment.Right, 0); +let extensionStatus: Status = Status.RUNNING; +let serverRunning: boolean = true; // TODO: See comment with client.onNotification("init"..... + +const statusBarActivationLanguageIds = [ + 'graphql', + 'javascript', + 'javascriptreact', + 'typescript', + 'typescriptreact', +]; + +export const createStatusBar = () => { + return window.createStatusBarItem(StatusBarAlignment.Right, 0); +}; + +export function initStatusBar( + statusBarItem: StatusBarItem, + client: LanguageClient, + editor: TextEditor | undefined, +) { + extensionStatus = Status.INIT; + + // TODO: Make graphql-language-service-server throw relevant + // notifications. Currently, it does not throw "init" or "exit" + // and status bar is hard coded to all greens. + + client.onNotification('init', _params => { + extensionStatus = Status.RUNNING; + serverRunning = true; + updateStatusBar(statusBarItem, editor); + }); + + client.onNotification('exit', _params => { + extensionStatus = Status.ERROR; + serverRunning = false; + updateStatusBar(statusBarItem, editor); + }); + + client.onDidChangeState(event => { + if (event.newState === State.Running) { + extensionStatus = Status.RUNNING; + serverRunning = true; + } else { + extensionStatus = Status.ERROR; + client.info('The graphql server has stopped running'); + serverRunning = false; + } + updateStatusBar(statusBarItem, editor); + }); + + updateStatusBar(statusBarItem, editor); + + window.onDidChangeActiveTextEditor((activeEditor: TextEditor | undefined) => { + // update the status if the server is running + updateStatusBar(statusBarItem, activeEditor); + }); +} + +function updateStatusBar( + statusBarItem: StatusBarItem, + editor: TextEditor | undefined, +) { + extensionStatus = serverRunning ? Status.RUNNING : Status.ERROR; + + // Support two different versions of the status bar UI, + // a modern version which uses the new API which lets us use the GraphQL logo and + // a legacy version which says 'graphql' in text. + + const [major, minor] = version.split('.'); + const userNewVersion = + Number(major) > 1 || (Number(major) === 1 && Number(minor) >= 65); + const statusBarUIElement = userNewVersion + ? statusBarUIElements + : oldStatusBarUIElements; + const message = userNewVersion ? '' : ' GraphQL'; + + const statusUI = statusBarUIElement[extensionStatus]; + statusBarItem.text = `$(${statusUI.icon})${message}`; + statusBarItem.tooltip = statusUI.tooltip; + statusBarItem.command = 'vscode-graphql.showOutputChannel'; + if ('color' in statusUI) { + statusBarItem.color = statusUI.color; + } + + if ( + editor && + statusBarActivationLanguageIds.indexOf(editor.document.languageId) > -1 + ) { + statusBarItem.show(); + } else { + statusBarItem.hide(); + } +} diff --git a/packages/vscode-graphql/src/extension.ts b/packages/vscode-graphql/src/extension.ts new file mode 100644 index 00000000000..b5f214f074e --- /dev/null +++ b/packages/vscode-graphql/src/extension.ts @@ -0,0 +1,140 @@ +import { + workspace, + ExtensionContext, + window, + commands, + OutputChannel, +} from 'vscode'; + +import { + LanguageClient, + LanguageClientOptions, + ServerOptions, + TransportKind, + RevealOutputChannelOn, +} from 'vscode-languageclient'; + +import * as path from 'path'; +import { createStatusBar, initStatusBar } from './apis/statusBar'; + +export function activate(context: ExtensionContext) { + const outputChannel: OutputChannel = window.createOutputChannel( + 'GraphQL Language Server', + ); + + const config = getConfig(); + const { debug } = config; + if (debug) { + console.log('Extension "vscode-graphql" is now active!'); + } + + const serverPath = path.join('out/server', 'server.js'); + const serverModule = context.asAbsolutePath(serverPath); + + const debugOptions = { + execArgv: ['--nolazy', '--inspect=localhost:6009'], + }; + + const serverOptions: ServerOptions = { + run: { + module: serverModule, + transport: TransportKind.ipc, + }, + debug: { + module: serverModule, + transport: TransportKind.ipc, + options: { ...(debug ? debugOptions : {}) }, + }, + }; + + const clientOptions: LanguageClientOptions = { + documentSelector: [ + { scheme: 'file', language: 'graphql' }, + { scheme: 'file', language: 'javascript' }, + { scheme: 'file', language: 'javascriptreact' }, + { scheme: 'file', language: 'typescript' }, + { scheme: 'file', language: 'typescriptreact' }, + ], + synchronize: { + // TODO: This should include any referenced graphql files inside the graphql-config + fileEvents: [ + workspace.createFileSystemWatcher( + '/{graphql.config.*,.graphqlrc,.graphqlrc.*,package.json}', + false, + // Ignore change events for graphql config, we only care about create, delete and save events + // otherwise, the underlying language service is re-started on every key change. + // also, it makes sense that it should only re-load on file save, but we need to document that. + // TODO: perhaps we can intercept change events, and remind the user + // to save for the changes to take effect + true, + ), + // These ignore node_modules and .git by default + workspace.createFileSystemWatcher( + '**/{*.graphql,*.graphqls,*.gql,*.js,*.mjs,*.cjs,*.esm,*.es,*.es6,*.jsx,*.ts,*.tsx}', + ), + ], + }, + outputChannel, + outputChannelName: 'GraphQL Language Server', + revealOutputChannelOn: RevealOutputChannelOn.Never, + initializationFailedHandler: err => { + outputChannel.appendLine('Initialization failed'); + outputChannel.appendLine(err.message); + if (err.stack) { + outputChannel.appendLine(err.stack); + } + if (debug) { + outputChannel.show(); + } + return false; + }, + }; + + const client = new LanguageClient( + 'vscode-graphql', + 'GraphQL Language Server', + serverOptions, + clientOptions, + debug, + ); + + let clientLSPDisposable = client.start(); + context.subscriptions.push(clientLSPDisposable); + + const commandShowOutputChannel = commands.registerCommand( + 'vscode-graphql.showOutputChannel', + () => outputChannel.show(), + ); + + context.subscriptions.push(commandShowOutputChannel); + + const statusBarItem = createStatusBar(); + context.subscriptions.push(statusBarItem); + client.onReady().then(() => { + initStatusBar(statusBarItem, client, window.activeTextEditor); + }); + + commands.registerCommand('vscode-graphql.restart', async () => { + outputChannel.appendLine(`Stopping GraphQL LSP`); + await client.stop(); + + clientLSPDisposable.dispose(); + + outputChannel.appendLine(`Restarting GraphQL LSP`); + clientLSPDisposable = client.start(); + context.subscriptions.push(clientLSPDisposable); + + outputChannel.appendLine(`GraphQL LSP restarted`); + }); +} + +export function deactivate() { + console.log('Extension "vscode-graphql" has been de-activated!!'); +} + +function getConfig() { + return workspace.getConfiguration( + 'vscode-graphql', + window.activeTextEditor ? window.activeTextEditor.document.uri : null, + ); +} diff --git a/packages/vscode-graphql/src/server/index.ts b/packages/vscode-graphql/src/server/index.ts new file mode 100644 index 00000000000..af348974cd6 --- /dev/null +++ b/packages/vscode-graphql/src/server/index.ts @@ -0,0 +1,17 @@ +import 'babel-polyfill'; +import { startServer } from 'graphql-language-service-server'; + +// The npm scripts are configured to only build this once before +// watching the extension, so please restart the extension debugger for changes! + +const start = () => { + startServer({ + method: 'node', + }) + .then(() => {}) + .catch(err => { + console.error(err); + }); +}; + +start(); diff --git a/packages/vscode-graphql/tsconfig.json b/packages/vscode-graphql/tsconfig.json new file mode 100644 index 00000000000..666652184ba --- /dev/null +++ b/packages/vscode-graphql/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../../resources/tsconfig.base.esm.json", + "compilerOptions": { + "target": "ES2018", + "composite": true, + "rootDir": "./src", + "outDir": "./dist" + }, + "references": [ + { + "path": "../graphql-language-service" + }, + { + "path": "../graphql-language-service-server" + } + ], + "include": ["src"], + "exclude": ["**/__tests__/**", "**/*.spec.*"] +} diff --git a/resources/tsconfig.build.cjs.json b/resources/tsconfig.build.cjs.json index 302d22d7441..3eeeff42a39 100644 --- a/resources/tsconfig.build.cjs.json +++ b/resources/tsconfig.build.cjs.json @@ -25,6 +25,9 @@ }, { "path": "../packages/graphql-language-service-cli" + }, + { + "path": "../packages/vscode-graphql" } ] } diff --git a/yarn.lock b/yarn.lock index f7f411c7d8e..d5b06d48751 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3396,6 +3396,24 @@ p-limit "3.1.0" tslib "~2.3.0" +"@graphql-tools/load@^7.5.3": + version "7.5.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.5.3.tgz#e7414d11e53ad8b78d5a74a0bd7ae958fa717a5c" + integrity sha512-GYwLyGfX1nKUxg6rnTIdryv9d+ugFRTm2q11+IqNsajwNhxJExkx+e/h81AQR5382sAmPEIT+E1J1VS3xNfjyg== + dependencies: + "@graphql-tools/schema" "8.3.3" + "@graphql-tools/utils" "8.6.3" + p-limit "3.1.0" + tslib "~2.3.0" + +"@graphql-tools/merge@8.2.4": + version "8.2.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.2.4.tgz#f903545e5693c75418f95671bca1be6bc51bfa53" + integrity sha512-hiNRTsS948F+BB4Q7CZXLaGFOIHQzmimVq3EEI/+PQZsPb7kYDzg0Ow0GyV4conDdEiooLqHf7I1dWzTYwvs0A== + dependencies: + "@graphql-tools/utils" "8.6.3" + tslib "~2.3.0" + "@graphql-tools/merge@^8.2.1": version "8.2.1" resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.2.1.tgz#bf83aa06a0cfc6a839e52a58057a84498d0d51ff" @@ -3414,6 +3432,16 @@ tslib "~2.3.0" value-or-promise "1.0.11" +"@graphql-tools/schema@8.3.3": + version "8.3.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.3.3.tgz#b69ea495026976f16e697253f08aa7905e7f6265" + integrity sha512-OrRLU9/7UmkDemeyNUy62uH+FofgV3bpVVZJprc9bhe3gZsY7kQNIdY7H1unINlepjLvGOgk7u7iLo2+EhjyWw== + dependencies: + "@graphql-tools/merge" "8.2.4" + "@graphql-tools/utils" "8.6.3" + tslib "~2.3.0" + value-or-promise "1.0.11" + "@graphql-tools/url-loader@^7.4.2": version "7.5.2" resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.5.2.tgz#fb3737fd1269ab61b195b63052179b6049d90ce1" @@ -3446,6 +3474,13 @@ dependencies: tslib "~2.3.0" +"@graphql-tools/utils@8.6.3": + version "8.6.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.6.3.tgz#ce9fc9adce4d45b229e314a2261290a88a252aed" + integrity sha512-CNyP7Uu7dlVMQ32IpHWOxz4yic9BYXXVkDhG0UdTKSszvzHdgMilemE9MpUrGzzBPsTe3aYTtNGyPUkyh9yTXA== + dependencies: + tslib "~2.3.0" + "@graphql-tools/wrap@^8.3.1": version "8.3.2" resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-8.3.2.tgz#d3bcecb7529d071e4ecc4dfc75b9566e3da79d4f" @@ -4999,6 +5034,11 @@ "@types/connect" "*" "@types/node" "*" +"@types/capitalize@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/capitalize/-/capitalize-2.0.0.tgz#8efa550b70c7d05bd5a323d39ba762f3f058cdfb" + integrity sha512-Jxz08Zch+/J+R3DUcPGmXZ4hNzZImd/FXXij32ByTfclrCQr15+geQjV5teTyFQb3zYPi7O5pRv2/YsyDfRmjA== + "@types/codemirror@^0.0.90": version "0.0.90" resolved "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-0.0.90.tgz#9c5edafce2a780b4f8bc5e3b699fe1f4727c8f17" @@ -5450,6 +5490,11 @@ dependencies: source-map "^0.6.1" +"@types/vscode@1.62.0": + version "1.62.0" + resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.62.0.tgz#b4d6d192d5aeb75e91d0adef689c3ecef9879da7" + integrity sha512-iGlQJ1w5e3qPUryroO6v4lxg3ql1ztdTCwQW3xEwFawdyPLoeUSv48SYfMwc7kQA7h6ThUqflZIjgKAykeF9oA== + "@types/webpack-env@^1.14.0", "@types/webpack-env@^1.15.0": version "1.15.2" resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.15.2.tgz#927997342bb9f4a5185a86e6579a0a18afc33b0a" @@ -6101,6 +6146,14 @@ anymatch@^3.0.3, anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + app-root-dir@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" @@ -6402,6 +6455,14 @@ axios@^0.21.1: dependencies: follow-redirects "^1.10.0" +azure-devops-node-api@^11.0.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/azure-devops-node-api/-/azure-devops-node-api-11.1.1.tgz#dd1356031fa4e334e016732594e8fee0f68268c4" + integrity sha512-XDG91XzLZ15reP12s3jFkKS8oiagSICjnLwxEYieme4+4h3ZveFOFRA4iYIG40RyHXsiI0mefFYYMFIJbMpWcg== + dependencies: + tunnel "0.0.6" + typed-rest-client "^1.8.4" + babel-code-frame@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -6984,6 +7045,15 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + bluebird@3.7.2, bluebird@^3.3.5, bluebird@^3.4.1, bluebird@^3.5.1, bluebird@^3.5.5, bluebird@^3.7.1, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -7289,7 +7359,7 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.7.0: +buffer@^5.5.0, buffer@^5.7.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -7596,6 +7666,40 @@ check-types@^8.0.3: resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== +cheerio-select@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.5.0.tgz#faf3daeb31b17c5e1a9dabcee288aaf8aafa5823" + integrity sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg== + dependencies: + css-select "^4.1.3" + css-what "^5.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + domutils "^2.7.0" + +cheerio@^1.0.0-rc.9: + version "1.0.0-rc.10" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" + integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== + dependencies: + cheerio-select "^1.5.0" + dom-serializer "^1.3.2" + domhandler "^4.2.0" + htmlparser2 "^6.1.0" + parse5 "^6.0.1" + parse5-htmlparser2-tree-adapter "^6.0.1" + tslib "^2.2.0" + +chokidar-cli@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chokidar-cli/-/chokidar-cli-3.0.0.tgz#29283666063b9e167559d30f247ff8fc48794eb7" + integrity sha512-xVW+Qeh7z15uZRxHOkP93Ux8A0xbPzwK4GaqD8dQOYc34TlkqUhVSS59fK36DOp5WdJlrRzlYSy02Ht99FjZqQ== + dependencies: + chokidar "^3.5.2" + lodash.debounce "^4.0.8" + lodash.throttle "^4.1.1" + yargs "^13.3.0" + chokidar@^2.0.4, chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" @@ -7645,6 +7749,21 @@ chokidar@^3.4.1: optionalDependencies: fsevents "~2.1.2" +chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -7942,6 +8061,11 @@ commander@^4.0.1, commander@^4.1.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +commander@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + common-tags@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" @@ -8010,6 +8134,20 @@ concat-stream@^1.5.0, concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" +concurrently@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-7.0.0.tgz#78d31b441cec338dab03316c221a2f9a67c529b0" + integrity sha512-WKM7PUsI8wyXpF80H+zjHP32fsgsHNQfPLw/e70Z5dYkV7hF+rf8q3D+ScWJIEr57CpkO3OWBko6hwhQLPR8Pw== + dependencies: + chalk "^4.1.0" + date-fns "^2.16.1" + lodash "^4.17.21" + rxjs "^6.6.3" + spawn-command "^0.0.2-1" + supports-color "^8.1.0" + tree-kill "^1.2.2" + yargs "^16.2.0" + connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" @@ -8409,6 +8547,17 @@ css-select@^2.0.0, css-select@^2.0.2: domutils "^1.7.0" nth-check "^1.0.2" +css-select@^4.1.3: + version "4.2.1" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" + integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== + dependencies: + boolbase "^1.0.0" + css-what "^5.1.0" + domhandler "^4.3.0" + domutils "^2.8.0" + nth-check "^2.0.1" + css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" @@ -8430,6 +8579,11 @@ css-what@^3.2.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39" integrity sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg== +css-what@^5.0.1, css-what@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== + css.escape@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" @@ -8688,6 +8842,11 @@ date-fns@^1.27.2: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== +date-fns@^2.16.1: + version "2.28.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2" + integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -8758,6 +8917,13 @@ decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -8905,6 +9071,11 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -9059,6 +9230,15 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" +dom-serializer@^1.0.1, dom-serializer@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + dom-walk@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" @@ -9074,7 +9254,7 @@ domelementtype@1, domelementtype@^1.3.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1: +domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== @@ -9107,6 +9287,13 @@ domhandler@^2.3.0: dependencies: domelementtype "1" +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" + integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== + dependencies: + domelementtype "^2.2.0" + domutils@^1.5.1, domutils@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" @@ -9115,6 +9302,15 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" +domutils@^2.5.2, domutils@^2.7.0, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + dot-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -9291,7 +9487,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -9552,7 +9748,7 @@ esbuild-windows-arm64@0.13.15: resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3" integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA== -esbuild@^0.13.12: +esbuild@0.13.15, esbuild@^0.13.12: version "0.13.15" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf" integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw== @@ -10054,6 +10250,11 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expand-tilde@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" @@ -10621,6 +10822,11 @@ follow-redirects@^1.0.0, follow-redirects@^1.10.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== +follow-redirects@^1.13.2: + version "1.14.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" + integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== + for-in@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" @@ -10745,6 +10951,11 @@ from@~0: resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-exists-sync@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" @@ -10975,6 +11186,11 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" @@ -11005,7 +11221,7 @@ glob-parent@^5.0.0, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" -glob-parent@^5.1.0, glob-parent@^5.1.2: +glob-parent@^5.1.0, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -11034,7 +11250,7 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, gl once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.2.0: +glob@^7.0.6, glob@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -11294,6 +11510,23 @@ graphql-config@^4.1.0: minimatch "3.0.4" string-env-interpolation "1.0.1" +graphql-language-service-types@^1.8.7: + version "1.8.7" + resolved "https://registry.yarnpkg.com/graphql-language-service-types/-/graphql-language-service-types-1.8.7.tgz#f5e909e6d9334ea2d8d1f7281b695b6f5602c07f" + integrity sha512-LP/Mx0nFBshYEyD0Ny6EVGfacJAGVx+qXtlJP4hLzUdBNOGimfDNtMVIdZANBXHXcM41MDgMHTnyEx2g6/Ttbw== + dependencies: + graphql-config "^4.1.0" + vscode-languageserver-types "^3.15.1" + +graphql-language-service-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/graphql-language-service-utils/-/graphql-language-service-utils-2.7.1.tgz#c97c8d744a761480aba7e03e4a42adf28b6fce39" + integrity sha512-Wci5MbrQj+6d7rfvbORrA9uDlfMysBWYaG49ST5TKylNaXYFf3ixFOa74iM1KtM9eidosUbI3E1JlWi0JaidJA== + dependencies: + "@types/json-schema" "7.0.9" + graphql-language-service-types "^1.8.7" + nullthrows "^1.0.0" + graphql-sse@^1.0.1: version "1.0.6" resolved "https://registry.yarnpkg.com/graphql-sse/-/graphql-sse-1.0.6.tgz#4f98e0a06f2020542ed054399116108491263224" @@ -11548,6 +11781,13 @@ hosted-git-info@^4.0.1: dependencies: lru-cache "^6.0.0" +hosted-git-info@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -11671,6 +11911,16 @@ htmlparser2@^3.10.1: inherits "^2.0.1" readable-stream "^3.1.1" +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + http-cache-semantics@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" @@ -14005,6 +14255,14 @@ jsx-ast-utils@^2.2.3: array-includes "^3.0.3" object.assign "^4.1.0" +keytar@^7.7.0: + version "7.9.0" + resolved "https://registry.yarnpkg.com/keytar/-/keytar-7.9.0.tgz#4c6225708f51b50cbf77c5aae81721964c2918cb" + integrity sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ== + dependencies: + node-addon-api "^4.3.0" + prebuild-install "^7.0.1" + keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -14540,6 +14798,17 @@ markdown-it@^12.2.0: mdurl "^1.0.1" uc.micro "^1.0.5" +markdown-it@^12.3.2: + version "12.3.2" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" + integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== + dependencies: + argparse "^2.0.1" + entities "~2.1.0" + linkify-it "^3.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + markdown-to-jsx@^6.11.4: version "6.11.4" resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz#b4528b1ab668aef7fe61c1535c27e837819392c5" @@ -14795,7 +15064,7 @@ mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: dependencies: mime-db "1.47.0" -mime@1.6.0: +mime@1.6.0, mime@^1.3.4: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -14825,6 +15094,11 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -14874,6 +15148,13 @@ minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + minimist-options@4.1.0, minimist-options@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -14883,7 +15164,7 @@ minimist-options@4.1.0, minimist-options@^4.0.2: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -14953,6 +15234,11 @@ mixme@^0.4.0: resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.4.0.tgz#a1aee27f0d63cc905e1cc6ddc98abf94d414435e" integrity sha512-B4Sm1CDC5+ov5AYxSkyeT5HLtiDgNOLKwFlq34wr8E2O3zRdTvQiLzo599Jt9cir6VJrSenOlgvdooVYCQJIYw== +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + mkdirp@0.x, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -15044,7 +15330,7 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -mute-stream@0.0.8: +mute-stream@0.0.8, mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== @@ -15076,6 +15362,11 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -15109,6 +15400,18 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" +node-abi@^3.3.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.8.0.tgz#679957dc8e7aa47b0a02589dbfde4f77b29ccb32" + integrity sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw== + dependencies: + semver "^7.3.5" + +node-addon-api@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" + integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== + node-dir@^0.1.10: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -15318,7 +15621,7 @@ npm-run-path@^5.0.1: dependencies: path-key "^4.0.0" -npmlog@^4.1.2: +npmlog@^4.0.1, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -15335,6 +15638,13 @@ nth-check@^1.0.2: dependencies: boolbase "~1.0.0" +nth-check@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" + integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + dependencies: + boolbase "^1.0.0" + nullthrows@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" @@ -15614,6 +15924,18 @@ outdent@^0.5.0: resolved "https://registry.yarnpkg.com/outdent/-/outdent-0.5.0.tgz#9e10982fdc41492bb473ad13840d22f9655be2ff" integrity sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q== +ovsx@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ovsx/-/ovsx-0.3.0.tgz#2f30c80c90fbe3c8fc406730c35371219187ca0a" + integrity sha512-UjZjzLt6Iq7LS/XFvEuBAWyn0zmsZEe8fuy5DsbcsIb0mW7PbVtB5Dhe4HeK7NJM228nyhYXC9WCeyBoMi4M3A== + dependencies: + commander "^6.1.0" + follow-redirects "^1.13.2" + is-ci "^2.0.0" + leven "^3.1.0" + tmp "^0.2.1" + vsce "^2.6.3" + p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" @@ -15826,12 +16148,26 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= +parse-semver@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/parse-semver/-/parse-semver-1.1.1.tgz#9a4afd6df063dc4826f93fba4a99cf223f666cb8" + integrity sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg= + dependencies: + semver "^5.1.0" + +parse5-htmlparser2-tree-adapter@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + parse5@5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== -parse5@6.0.1: +parse5@6.0.1, parse5@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== @@ -16773,6 +17109,25 @@ postcss@^8.3.11: picocolors "^1.0.0" source-map-js "^1.0.1" +prebuild-install@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.0.1.tgz#c10075727c318efe72412f333e0ef625beaf3870" + integrity sha512-QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + preferred-pm@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/preferred-pm/-/preferred-pm-3.0.3.tgz#1b6338000371e3edbce52ef2e4f65eb2e73586d6" @@ -17069,6 +17424,13 @@ qs@^6.6.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== +qs@^6.9.1: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -17179,7 +17541,7 @@ raw-loader@^3.1.0: loader-utils "^1.1.0" schema-utils "^2.0.1" -rc@^1.0.1, rc@^1.1.6, rc@^1.2.8: +rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -17527,6 +17889,13 @@ read-yaml-file@^1.1.0: pify "^4.0.1" strip-bom "^3.0.0" +read@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + dependencies: + mute-stream "~0.0.4" + "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -17540,7 +17909,7 @@ read-yaml-file@^1.1.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -17572,6 +17941,13 @@ readdirp@~3.5.0: dependencies: picomatch "^2.2.1" +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + realpath-native@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" @@ -18146,7 +18522,7 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sax@~1.2.4: +sax@>=0.6.0, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -18251,7 +18627,7 @@ semver-regex@^3.1.2: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -18273,7 +18649,7 @@ semver@^7.3.2: dependencies: lru-cache "^6.0.0" -semver@^7.3.4: +semver@^7.3.4, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -18497,6 +18873,15 @@ side-channel@^1.0.2: es-abstract "^1.17.0-next.1" object-inspect "^1.7.0" +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -18507,6 +18892,20 @@ signal-exit@^3.0.3, signal-exit@^3.0.5: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -18711,6 +19110,11 @@ space-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== +spawn-command@^0.0.2-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= + spawndamnit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/spawndamnit/-/spawndamnit-2.0.0.tgz#9f762ac5c3476abb994b42ad592b5ad22bb4b0ad" @@ -19306,7 +19710,7 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: +supports-color@^8.0.0, supports-color@^8.1.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -19386,6 +19790,27 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tar-fs@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + telejson@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/telejson/-/telejson-3.3.0.tgz#6d814f3c0d254d5c4770085aad063e266b56ad03" @@ -19562,6 +19987,13 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +tmp@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + tmp@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" @@ -19697,6 +20129,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + trim-newlines@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" @@ -19782,7 +20219,7 @@ tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== -tslib@^2, tslib@~2.3.0: +tslib@^2, tslib@^2.2.0, tslib@~2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== @@ -19828,6 +20265,11 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tunnel@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -19878,6 +20320,15 @@ type-is@^1.6.16, type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typed-rest-client@^1.8.4: + version "1.8.6" + resolved "https://registry.yarnpkg.com/typed-rest-client/-/typed-rest-client-1.8.6.tgz#d8facd6abd98cbd8ad14cccf056ca5cc306919d7" + integrity sha512-xcQpTEAJw2DP7GqVNECh4dD+riS+C1qndXLfBCJ3xk0kqprtGN491P5KlmrDbKdtuW8NEcP/5ChxiJI3S9WYTA== + dependencies: + qs "^6.9.1" + tunnel "0.0.6" + underscore "^1.12.1" + typed-styles@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" @@ -19950,6 +20401,11 @@ unc-path-regex@^0.1.0: resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= +underscore@^1.12.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.2.tgz#276cea1e8b9722a8dbed0100a407dda572125881" + integrity sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g== + undici@^4.9.3: version "4.10.2" resolved "https://registry.yarnpkg.com/undici/-/undici-4.10.2.tgz#27e360f2d4202ef98dfc1c8e13dcd329660a6d7c" @@ -20087,6 +20543,11 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= +url-join@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" + integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== + url-loader@^2.0.1: version "2.3.0" resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b" @@ -20304,11 +20765,84 @@ void-elements@^2.0.1: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= +vsce@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/vsce/-/vsce-2.6.7.tgz#e590ff957d07910c471334857627c3e7f57e87bc" + integrity sha512-5dEtdi/yzWQbOU7JDUSOs8lmSzzkewBR5P122BUkmXE6A/DEdFsKNsg2773NGXJTwwF1MfsOgUR6QVF3cLLJNQ== + dependencies: + azure-devops-node-api "^11.0.1" + chalk "^2.4.2" + cheerio "^1.0.0-rc.9" + commander "^6.1.0" + glob "^7.0.6" + hosted-git-info "^4.0.2" + keytar "^7.7.0" + leven "^3.1.0" + markdown-it "^12.3.2" + mime "^1.3.4" + minimatch "^3.0.3" + parse-semver "^1.1.1" + read "^1.0.7" + semver "^5.1.0" + tmp "^0.2.1" + typed-rest-client "^1.8.4" + url-join "^4.0.1" + xml2js "^0.4.23" + yauzl "^2.3.1" + yazl "^2.2.2" + +vsce@^2.6.3: + version "2.7.0" + resolved "https://registry.yarnpkg.com/vsce/-/vsce-2.7.0.tgz#7be8deebd1e673b996238d608e7f7324c98744ed" + integrity sha512-CKU34wrQlbKDeJCRBkd1a8iwF9EvNxcYMg9hAUH6AxFGR6Wo2IKWwt3cJIcusHxx6XdjDHWlfAS/fJN30uvVnA== + dependencies: + azure-devops-node-api "^11.0.1" + chalk "^2.4.2" + cheerio "^1.0.0-rc.9" + commander "^6.1.0" + glob "^7.0.6" + hosted-git-info "^4.0.2" + keytar "^7.7.0" + leven "^3.1.0" + markdown-it "^12.3.2" + mime "^1.3.4" + minimatch "^3.0.3" + parse-semver "^1.1.1" + read "^1.0.7" + semver "^5.1.0" + tmp "^0.2.1" + typed-rest-client "^1.8.4" + url-join "^4.0.1" + xml2js "^0.4.23" + yauzl "^2.3.1" + yazl "^2.2.2" + +vscode-jsonrpc@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz#a7bf74ef3254d0a0c272fab15c82128e378b3be9" + integrity sha512-perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg== + vscode-jsonrpc@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-5.0.1.tgz#9bab9c330d89f43fc8c1e8702b5c36e058a01794" integrity sha512-JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A== +vscode-languageclient@5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-5.2.1.tgz#7cfc83a294c409f58cfa2b910a8cfeaad0397193" + integrity sha512-7jrS/9WnV0ruqPamN1nE7qCxn0phkH5LjSgSp9h6qoJGoeAKzwKz/PF6M+iGA/aklx4GLZg1prddhEPQtuXI1Q== + dependencies: + semver "^5.5.0" + vscode-languageserver-protocol "3.14.1" + +vscode-languageserver-protocol@3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.14.1.tgz#b8aab6afae2849c84a8983d39a1cf742417afe2f" + integrity sha512-IL66BLb2g20uIKog5Y2dQ0IiigW0XKrvmWiOvc0yXw80z3tMEzEnHjaGAb3ENuU7MnQqgnYJ1Cl2l9RvNgDi4g== + dependencies: + vscode-jsonrpc "^4.0.0" + vscode-languageserver-types "3.14.0" + vscode-languageserver-protocol@^3.15.3: version "3.15.3" resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.3.tgz#3fa9a0702d742cf7883cb6182a6212fcd0a1d8bb" @@ -20317,6 +20851,11 @@ vscode-languageserver-protocol@^3.15.3: vscode-jsonrpc "^5.0.1" vscode-languageserver-types "3.15.1" +vscode-languageserver-types@3.14.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743" + integrity sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A== + vscode-languageserver-types@3.15.1, vscode-languageserver-types@^3.15.1: version "3.15.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz#17be71d78d2f6236d414f0001ce1ef4d23e6b6de" @@ -20978,6 +21517,19 @@ xml-name-validator@^4.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== +xml2js@^0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + xmlchars@^2.1.1, xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" @@ -21046,7 +21598,7 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== -yargs@^13.0.0, yargs@^13.3.2: +yargs@^13.0.0, yargs@^13.3.0, yargs@^13.3.2: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== @@ -21092,7 +21644,7 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yauzl@^2.10.0: +yauzl@^2.10.0, yauzl@^2.3.1: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= @@ -21100,6 +21652,13 @@ yauzl@^2.10.0: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" +yazl@^2.2.2: + version "2.5.1" + resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" + integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== + dependencies: + buffer-crc32 "~0.2.3" + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"