From 80c3d3570e4402841ffdd67aa3dd152015c8357e Mon Sep 17 00:00:00 2001 From: Karl Burtram Date: Mon, 7 Nov 2022 16:27:03 -0800 Subject: [PATCH] Remove LiveShare extension (#21143) * Remove LiveShare extension * Update build JS file --- build/lib/extensions.js | 1 - build/lib/extensions.ts | 1 - build/npm/dirs.js | 1 - extensions/integration-tests/coverConfig.json | 1 - extensions/liveshare/.eslintrc.json | 9 - extensions/liveshare/.vscodeignore | 3 - extensions/liveshare/package.json | 31 - extensions/liveshare/src/constants.ts | 38 - .../liveshare/src/guestSessionManager.ts | 77 -- .../liveshare/src/hostSessionManager.ts | 45 - extensions/liveshare/src/liveshare.ts | 461 ---------- extensions/liveshare/src/main.ts | 24 - .../src/providers/connectionProvider.ts | 217 ----- .../liveshare/src/providers/queryProvider.ts | 245 ----- .../liveshare/src/providers/statusProvider.ts | 94 -- extensions/liveshare/src/typings/refs.d.ts | 8 - extensions/liveshare/tsconfig.json | 12 - extensions/liveshare/yarn.lock | 842 ------------------ 18 files changed, 2110 deletions(-) delete mode 100644 extensions/liveshare/.eslintrc.json delete mode 100644 extensions/liveshare/.vscodeignore delete mode 100644 extensions/liveshare/package.json delete mode 100644 extensions/liveshare/src/constants.ts delete mode 100644 extensions/liveshare/src/guestSessionManager.ts delete mode 100644 extensions/liveshare/src/hostSessionManager.ts delete mode 100644 extensions/liveshare/src/liveshare.ts delete mode 100644 extensions/liveshare/src/main.ts delete mode 100644 extensions/liveshare/src/providers/connectionProvider.ts delete mode 100644 extensions/liveshare/src/providers/queryProvider.ts delete mode 100644 extensions/liveshare/src/providers/statusProvider.ts delete mode 100644 extensions/liveshare/src/typings/refs.d.ts delete mode 100644 extensions/liveshare/tsconfig.json delete mode 100644 extensions/liveshare/yarn.lock diff --git a/build/lib/extensions.js b/build/lib/extensions.js index 84730e86d1..31634ef622 100644 --- a/build/lib/extensions.js +++ b/build/lib/extensions.js @@ -263,7 +263,6 @@ const externalExtensions = [ 'dacpac', 'import', 'kusto', - 'liveshare', 'machine-learning', 'profiler', 'query-history', diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts index 9b41105f2c..be2e1d7b30 100644 --- a/build/lib/extensions.ts +++ b/build/lib/extensions.ts @@ -308,7 +308,6 @@ const externalExtensions = [ 'dacpac', 'import', 'kusto', - 'liveshare', 'machine-learning', 'profiler', 'query-history', diff --git a/build/npm/dirs.js b/build/npm/dirs.js index 67506b4667..eda24d884a 100644 --- a/build/npm/dirs.js +++ b/build/npm/dirs.js @@ -32,7 +32,6 @@ exports.dirs = [ 'extensions/json-language-features', 'extensions/json-language-features/server', 'extensions/kusto', - 'extensions/liveshare', 'extensions/machine-learning', 'extensions/markdown-language-features', 'extensions/markdown-math', diff --git a/extensions/integration-tests/coverConfig.json b/extensions/integration-tests/coverConfig.json index 00c1dc8538..55bd9b764e 100644 --- a/extensions/integration-tests/coverConfig.json +++ b/extensions/integration-tests/coverConfig.json @@ -15,7 +15,6 @@ "**/integration-tests/**", "**/json/**", "**/json-language-features/**", - "**/liveshare/**", "**/markdown-basics/**", "**/markdown-language-features/**", "**/merge-conflict/**", diff --git a/extensions/liveshare/.eslintrc.json b/extensions/liveshare/.eslintrc.json deleted file mode 100644 index 65afbde805..0000000000 --- a/extensions/liveshare/.eslintrc.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parserOptions": { - "project": "./extensions/liveshare/tsconfig.json" - }, - "rules": { - // Disabled until the issues can be fixed - "@typescript-eslint/explicit-function-return-type": ["off"] - } -} diff --git a/extensions/liveshare/.vscodeignore b/extensions/liveshare/.vscodeignore deleted file mode 100644 index beddbbb2c5..0000000000 --- a/extensions/liveshare/.vscodeignore +++ /dev/null @@ -1,3 +0,0 @@ -src/** -tsconfig.json -yarn.lock diff --git a/extensions/liveshare/package.json b/extensions/liveshare/package.json deleted file mode 100644 index ea70245299..0000000000 --- a/extensions/liveshare/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "liveshare", - "version": "0.1.0", - "publisher": "Microsoft", - "activationEvents": [ - "*" - ], - "engines": { - "vscode": "*" - }, - "main": "./out/main", - "repository": { - "type": "git", - "url": "https://github.com/Microsoft/azuredatastudio.git" - }, - "extensionDependencies": [ - "vscode.sql" - ], - "scripts": { - "compile": "gulp compile-extension:liveshare" - }, - "devDependencies": { - "@types/node": "^12.11.7", - "ts-loader": "^5.3.3", - "typescript": "^3.3.1" - }, - "dependencies": { - "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#0.3.0", - "vsls": "^0.3.1291" - } -} diff --git a/extensions/liveshare/src/constants.ts b/extensions/liveshare/src/constants.ts deleted file mode 100644 index c58c8abd86..0000000000 --- a/extensions/liveshare/src/constants.ts +++ /dev/null @@ -1,38 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -/** - * Provider Constants - */ -export const LiveShareProviderId: string = 'ads-liveshare'; -export const LiveShareServiceName: string = 'ads-liveshare'; -export const VslsSchema: string = 'vsls'; - -/** - * Connection Provider Constants - */ -export const connectRequest = 'connect'; -export const disconnectRequest = 'disconnect'; -export const cancelConnectRequest = 'cancelConnect'; -export const changeDatabaseRequest = 'changeDatabase'; -export const listDatabasesRequest = 'listDatabases'; -export const getConnectionStringRequest = 'getConnectionString'; -export const buildConnectionInfoRequest = 'buildConnectionInfo'; -export const rebuildIntellisenseCacheRequest = 'rebuildIntelliSenseCache'; - -/** - * Query Provider Constants - */ -export const cancelQueryRequest = 'cancelQuery'; -export const runQueryRequest = 'runQuery'; -export const runQueryStatementRequest = 'runQueryStatement'; -export const runQueryStringRequest = 'runQueryString'; -export const runQueryAndReturnRequest = 'runQueryAndReturn'; -export const parseSyntaxRequest = 'parseSyntax'; -export const getQueryRowsRequest = 'getQueryRows'; -export const disposeQueryRequest = 'disposeQuery'; -export const connectionUriChangedNotification = 'connectionUriChanged'; -export const setQueryExecutionOptionsRequest = 'setQueryExecutionOptions'; -export const saveResultsRequest = 'saveResultsRequest'; diff --git a/extensions/liveshare/src/guestSessionManager.ts b/extensions/liveshare/src/guestSessionManager.ts deleted file mode 100644 index 15a1e3762a..0000000000 --- a/extensions/liveshare/src/guestSessionManager.ts +++ /dev/null @@ -1,77 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as vscode from 'vscode'; -import * as azdata from 'azdata'; -import { LiveShare, SharedServiceProxy } from './liveshare'; -import { LiveShareProviderId, LiveShareServiceName, VslsSchema } from './constants'; -import { ConnectionProvider } from './providers/connectionProvider'; -import { StatusProvider, LiveShareDocumentState } from './providers/statusProvider'; -import { QueryProvider } from './providers/queryProvider'; - -declare let require: any; -let vsls = require('vsls'); - -export class GuestSessionManager { - private _statusProvider: StatusProvider; - - constructor( - context: vscode.ExtensionContext, - vslsApi: LiveShare - ) { - let self = this; - vscode.workspace.onDidOpenTextDocument(params => this.onDidOpenTextDocument(params)); - - vslsApi!.onDidChangeSession(async function onLiveShareSessionCHange(e: any) { - const isHost = e.session.role === vsls.Role.Host; - if (!e.session.id && isHost) { - return; - } - - const sharedServiceProxy: SharedServiceProxy = await vslsApi.getSharedService(LiveShareServiceName); - if (!sharedServiceProxy) { - vscode.window.showErrorMessage('Could not access a shared service. You have to set "liveshare.features" to "experimental" in your user settings in order to use this extension.'); - return; - } - - const connectionProvider = new ConnectionProvider(isHost, vslsApi, sharedServiceProxy); - - const queryProvider = new QueryProvider(false); - queryProvider.initialize(false, sharedServiceProxy); - - self._statusProvider = new StatusProvider( - isHost, - vslsApi, - connectionProvider, - sharedServiceProxy); - }); - } - - private async onDidOpenTextDocument(doc: vscode.TextDocument): Promise { - if (this._statusProvider && this.isLiveShareDocument(doc)) { - let documentState: LiveShareDocumentState = await this._statusProvider.getDocumentState(doc); - if (documentState) { - let queryDocument = await azdata.queryeditor.getQueryDocument(doc.uri.toString()); - if (queryDocument) { - let connectionOptions: { [key: string]: any } = {}; - connectionOptions['providerName'] = LiveShareProviderId; - connectionOptions['serverName'] = documentState.serverName; - connectionOptions['databaseName'] = documentState.databaseName; - connectionOptions['userName'] = 'liveshare'; - connectionOptions['password'] = 'liveshare'; // [SuppressMessage("Microsoft.Security", "CS001:SecretInline", Justification="Stub value for testing")] - connectionOptions['authenticationType'] = 'liveshare'; - connectionOptions['savePassword'] = false; - connectionOptions['saveProfile'] = false; - let profile = azdata.connection.ConnectionProfile.createFrom(connectionOptions); - queryDocument.connect(profile); - } - } - } - } - - private isLiveShareDocument(doc: vscode.TextDocument): boolean { - return doc && doc.uri.scheme === VslsSchema; - } -} diff --git a/extensions/liveshare/src/hostSessionManager.ts b/extensions/liveshare/src/hostSessionManager.ts deleted file mode 100644 index b887d00fdf..0000000000 --- a/extensions/liveshare/src/hostSessionManager.ts +++ /dev/null @@ -1,45 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as vscode from 'vscode'; -import { LiveShare, SharedService } from './liveshare'; -import { ConnectionProvider } from './providers/connectionProvider'; -import { QueryProvider } from './providers/queryProvider'; -import { StatusProvider } from './providers/statusProvider'; -import { LiveShareServiceName } from './constants'; - -declare let require: any; -let vsls = require('vsls'); - -export class HostSessionManager { - constructor( - context: vscode.ExtensionContext, - vslsApi: LiveShare - ) { - vslsApi!.onDidChangeSession(async function onLiveShareSessionCHange(e: any) { - const isHost = e.session.role === vsls.Role.Host; - if (!isHost) { - return; - } - - const sharedService: SharedService = await vslsApi.shareService(LiveShareServiceName); - if (!sharedService) { - vscode.window.showErrorMessage('Could not create a shared service. You have to set "liveshare.features" to "experimental" in your user settings in order to use this extension.'); - return; - } - - const connectionProvider = new ConnectionProvider(isHost, vslsApi, sharedService); - - const queryProvider = new QueryProvider(true); - queryProvider.initialize(true, sharedService); - - new StatusProvider( - isHost, - vslsApi, - connectionProvider, - sharedService); - }); - } -} diff --git a/extensions/liveshare/src/liveshare.ts b/extensions/liveshare/src/liveshare.ts deleted file mode 100644 index 85efdca22f..0000000000 --- a/extensions/liveshare/src/liveshare.ts +++ /dev/null @@ -1,461 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -/** - * Entrypoint and type definitions for Live Share for VS Code extension API - */ - -import * as vscode from 'vscode'; - -/** - * Forward definition of the ContactServiceProvider interface - */ -interface ContactServiceProvider { - -} - -/** - * Main API that enables other VS Code extensions to access Live Share capabilities. - */ -export interface LiveShare { - /** - * Status of participation in a sharing session, if any. - * Also includes the Live Share user info, if signed in. - */ - readonly session: Session; - - /** - * Event that notifies listeners when participation in a sharing session - * starts or stops. - */ - readonly onDidChangeSession: vscode.Event; - - /** List of peers connected to the current sharing session, NOT including oneself. */ - readonly peers: Peer[]; - - /** Event that notifies listeners when peers join or leave the session. */ - readonly onDidChangePeers: vscode.Event; - - /** - * Starts a new session, sharing the currenly opened workspace. - * Or if sharing was already started, retrieves the join link. - * - * Not valid when joined to a session as a guest. - * - * @returns Join link for the new or existing session, or `null` if sharing failed. - */ - share(options?: ShareOptions): Promise; - - /** - * Joins a shared session using a link acquired from the host. - * - * Note joining another session requires either reloading the current window - * (and all extensions) or opening a new window. - * - * @param link Join link for a shared session. - */ - join(link: vscode.Uri, options?: JoinOptions): Promise; - - /** - * When called as a Host, ends the current sharing session and disconnects all guests, - * (without reloading the window or extensions). - * - * When called as a Guest, disconnects from the current sharing session - * and closes the workspace (causing extensions to be reloaded). - */ - end(): Promise; - - /** - * Provides a named service to guests. The service is made available only - * while a Live Share session is active in the Host role. - * - * The caller must add request and/or notification handlers to the returned - * `SharedService` instance in order to receive messages from guests. - * - * A `SharedService` instance is returned even if the service is not - * currently made available because there is no hosted sharing session. - * The service will be automatically made available when a hosted sharing - * session begins. - * - * NOTE: Access to shared services may be restricted. - * If the caller is not permitted, this method returns `null`. - */ - shareService(name: string): Promise; - - /** - * Stops providing a named service to guests. - * - * NOTE: Access to shared services may be restricted. - */ - unshareService(name: string): Promise; - - /** - * Gets a proxy for a named service provided by a Host. The service is - * available only while a Live Share session is active in the Guest role - * AND the session Host has shared the named service. - * - * The caller must add a notification handler to the returned `SharedService` - * instance in order to receive notifications from hosts. (Service proxies - * cannot receive requests, only send them.) - * - * A `SharedServiceProxy` instance is returned even if the service is not - * currently available (either because there is no active sharing session or - * because the Host has not shared the service). Listen to the event on the - * instance to be notified when the service becomes available or unavailable. - * - * NOTE: Access to shared services may be restricted. - * If the caller is not permitted, this method returns `null`. - */ - getSharedService(name: string): Promise; - - /** - * Converts a local `file:` URI to a `vsls:` URI. Only available in host role. - */ - convertLocalUriToShared(localUri: vscode.Uri): vscode.Uri; - - /** - * Converts a `vsls:` URI to a local `file:` URI. Only available in host role. - */ - convertSharedUriToLocal(sharedUri: vscode.Uri): vscode.Uri; - - /** - * Registers a command to be added to the Live Share contextual command palette. - * - * @param command command identifier, as declared in the calling extension's manifest - * @param isEnabled optional callback to check if the command is available - * @param thisArg optional `this` for the callback - * @returns Disposable that can be used to unregister the command, or null if the command - * could not be registered. - * - * The command must be declared in the `contributes.commands` section of the calling - * extension manifest, including extended VSLS label and detail properties, for example: - * "contributes": { - * "commands": [ - * { - * "command": "myextension.mycommand", - * "title": "Live Share: Do Something", - * "vsls-label": "$(star) Do Something", - * "vsls-detail": "Do some VSLS-related command provided by this extension" - * } - * ] - * } - * - * Extensions should use this capability judiciously, to avoid cluttering the Live Share - * command palette. If contributing a group of related commands, put them in a separate - * quick-pick menu that is brought up by a single command registered here. - * - * NOTE: Ability to contribute commands to the Live Share command palette may be restricted. - * If the caller is not permitted, this method returns `null`. - */ - registerCommand( - command: string, - isEnabled?: () => boolean, - thisArg?: any): vscode.Disposable | null; - - /** - * Registers a provider that can extend a Live Share tree view by providing additional items. - * - * @param viewId One of the Live Share tree view IDs. Not all Live Share tree views support - * data providers; currently only the session and session explorer views do. - * @param treeDataProvider A provider that provides additional data for the Live Share view. - * @returns Disposable that can be used to unregister the provider, or null if the provider - * could not be registered. - * - * NOTE: Ability to contribute commands to Live Share tree views may be restricted. If the - * caller is not permitted, this method returns `null`. - */ - registerTreeDataProvider( - viewId: View, - treeDataProvider: vscode.TreeDataProvider, - ): vscode.Disposable | null; - - /** - * Registers a contact service provider. - * - * @param name Name of the provider ('skype', 'teams',..) - * @param contactServiceProvider implementation of the ContactServiceProvider interface - * @returns Disposable that can be used to unregister the provider, or null if the provider - * could not be registered. - */ - registerContactServiceProvider( - name: string, - contactServiceProvider: ContactServiceProvider, - ): vscode.Disposable | null; - - /** - * Sends a request to share a local server in the active collaboration session. - * - * @param server Contains properties pertaining to the local server. - * @returns A registration object that will un-share the server when disposed. - */ - shareServer(server: Server): Promise; - - /** - * Request contacts to our presence providers - * @param emails Request contacts emails - */ - getContacts(emails: string[]): Promise; -} - -interface ShareOptions { - /** - * Suppress display of the usual notification that indicates that sharing - * started. Also suppresses copying the join link to the clipboard. When - * setting this option, the caller should take care of showing or - * communicating the link somehow. - */ - suppressNotification?: boolean; - - /** - * (NOT IMPLEMENTED) Default access level for incoming guests. The host may - * override this setting on a per-guest basis. - */ - access?: Access; -} - -interface JoinOptions { - /** - * Open the joined workspace in a new window, instead of re-using the current window. - */ - newWindow?: boolean; - correlationId?: string; -} - -/** - * Represents a local TCP server listening on the given port. - */ -interface Server { - /** - * Local TCP port the server is listening on. - */ - port: number; - /** - * User-friendly name of the server. - */ - displayName?: string; - /** - * Default URL users will be redirected to when accessing the server. - */ - browseUrl?: string; -} - -enum Role { - None = 0, - Host = 1, - Guest = 2, -} - -/** This is just a placeholder for a richer access control model to be added later. */ -enum Access { - None = 0, - ReadOnly = 1, - ReadWrite = 3, - Owner = 0xFF, -} - -/** - * Authenticated Live Share user information. - * - * NOTE: Access to user information may be restricted. - * If the caller is not permitted, the `Peer.user` property returns 'null'. - */ -interface UserInfo { - /** - * User display name. - */ - readonly displayName: string; - - /** - * Validated email address. - */ - readonly emailAddress: string | null; - - /** - * The username that the provider (e.g. GitHub) makes available. - */ - readonly userName: string | null; - - /** - * User id. This is persistent ID that stays the same for the same user - * if the user re-joins the session and even between sessions for some time. - */ - readonly id: string; -} - -/** - * Represents one participant in a sharing session. - */ -interface Peer { - /** Integer that uniquely identifies a peer within the scope of a session. */ - readonly peerNumber: number; - - /** - * Authenticated Live Share user information. - * - * NOTE: Access to user information may be restricted. - * If the caller is not permitted, this property returns 'null'. - */ - readonly user: UserInfo | null; - - /** - * Role within the session. Each session has exactly one host; the rest of - * the peers are guests. - */ - readonly role: Role; - - /** - * Access level within the session. The host has full "owner" access to the - * session. Guests may have their access limited by the host. - */ - readonly access: Access; -} - -/** - * Information about the current session, including user information (in the base class). - */ -interface Session extends Peer { - /** - * Globally unique identifier for the current session, or null if there is no active session. - */ - readonly id: string | null; -} - -interface SessionChangeEvent { - readonly session: Session; -} - -interface PeersChangeEvent { - readonly added: Peer[]; - readonly removed: Peer[]; -} - -interface RequestHandler { - (args: any[], cancellation: vscode.CancellationToken): any | Promise; -} - -interface NotifyHandler { - (args: object): void; -} - -/** - * A service that is provided by the host for use by guests. - */ -export interface SharedService { - /** A shared service is available when a sharing session is active as a Host. */ - readonly isServiceAvailable: boolean; - readonly onDidChangeIsServiceAvailable: vscode.Event; - - /** - * Registers a callback to be invoked when a request is sent to the service. - * - * @param name Request method name - */ - onRequest(name: string, handler: RequestHandler): void; - - /** - * Registers a callback to be invoked when a notification is sent to the service. - * - * @param name Notify event name - */ - onNotify(name: string, handler: NotifyHandler): void; - - /** - * Sends a notification (event) from the service. Does not wait for a response. - * - * If no sharing session is active, this method does nothing. - * - * @param name notify event name - * @param args notify event args object - */ - notify(name: string, args: object): void; -} - -/** - * A proxy that allows guests to access a host-provided service. - */ -export interface SharedServiceProxy { - /** - * A shared service proxy is available when a sharing session is active as a - * Guest, and the Host has shared a service with the same name. - */ - readonly isServiceAvailable: boolean; - readonly onDidChangeIsServiceAvailable: vscode.Event; - - /** - * Registers a callback to be invoked when a notification is sent by the service. - * - * @param name notify event name - */ - onNotify(name: string, handler: NotifyHandler): void; - - /** - * Sends a request (method call) to the service and waits for a response. - * - * @param name request method name - * - * @returns a promise that waits asynchronously for a response - * - * @throws SharedServiceProxyError if the service is not currently available - * (because there is no active sharing session or no peer has provided the service) - * - * @throws SharedServiceResponseError (via rejected promise) if the service's - * request handler throws an error - */ - request(name: string, args: any[], cancellation?: vscode.CancellationToken): Promise; - - /** - * Sends a notification (event) to the service. (Does not wait for a response.) - * - * If the service is not currently available (either because there is - * no active sharing session or because no peer has provided the service) - * then this method does nothing. - * - * @param name notify event name - * @param args notify event args object - */ - notify(name: string, args: object): void; -} - -/** - * Identifiers for Live Share tree views. These identifiers may be used by other extensions - * to extend Live Share tree views with additional nodes via the `registerTreeDataProvider()` - * API. - */ -enum View { - Session = 'liveshare.session', - ExplorerSession = 'liveshare.session.explorer', - Contacts = 'liveshare.contacts', - Help = 'liveshare.help', -} - -interface InviteContactOptions { - - /** - * This option will force the invite to only use the email channel - */ - useEmail?: boolean; -} - -/** - * Represent a contact with live presence support - */ -interface Contact { - readonly onDidChange: vscode.Event; - readonly id: string; - readonly email: string; - readonly displayName?: string; - readonly status?: string; - readonly avatarUri?: string; - - invite(options?: InviteContactOptions): Promise; -} - -/** - * Represent a collection of contacts that can be disposed at once - */ -interface ContactsCollection { - readonly contacts: { [email: string]: Contact }; - dispose(): Promise; -} diff --git a/extensions/liveshare/src/main.ts b/extensions/liveshare/src/main.ts deleted file mode 100644 index 18cf9ebdcb..0000000000 --- a/extensions/liveshare/src/main.ts +++ /dev/null @@ -1,24 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as vscode from 'vscode'; -import { GuestSessionManager } from './guestSessionManager'; -import { HostSessionManager } from './hostSessionManager'; - -declare let require: any; -let vsls = require('vsls'); - -export async function activate(context: vscode.ExtensionContext) { - const vslsApi = await vsls.getApi(); - if (!vslsApi) { - return; - } - - new HostSessionManager(context, vslsApi); - new GuestSessionManager(context, vslsApi); -} - -export function deactivate(): void { -} diff --git a/extensions/liveshare/src/providers/connectionProvider.ts b/extensions/liveshare/src/providers/connectionProvider.ts deleted file mode 100644 index 58dc78c167..0000000000 --- a/extensions/liveshare/src/providers/connectionProvider.ts +++ /dev/null @@ -1,217 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as azdata from 'azdata'; -import * as vscode from 'vscode'; -import * as constants from '../constants'; - -import { LiveShare, SharedService, SharedServiceProxy } from '../liveshare'; - -export class ConnectionProvider { - private _sharedService: SharedService; - private _sharedServiceProxy: SharedServiceProxy; - - protected _onConnect: vscode.EventEmitter = new vscode.EventEmitter(); - public readonly onConnect: vscode.Event = this._onConnect.event; - - protected _onDisconnect: vscode.EventEmitter = new vscode.EventEmitter(); - public readonly onDisconnect: vscode.Event = this._onDisconnect.event; - - protected _onConnectionChanged: vscode.EventEmitter = new vscode.EventEmitter(); - public readonly onConnectionChanged: vscode.Event = this._onConnectionChanged.event; - - private _onConnectionCompleteHandler: (connSummary: azdata.ConnectionInfoSummary) => any; - - public constructor( - private _isHost: boolean, - private _vslsApi: LiveShare, - service: SharedService | SharedServiceProxy) { - if (this._isHost) { - this._sharedService = service; - this.registerProviderListener(); - } else { - this._sharedServiceProxy = service; - this.registerProvider(); - } - } - - public registerProviderListener(): void { - let self = this; - azdata.connection.registerConnectionEventListener({ - onConnectionEvent(type: azdata.connection.ConnectionEventType, ownerUri: string, profile: azdata.IConnectionProfile) { - try { - let localUri: vscode.Uri = self._vslsApi.convertLocalUriToShared(vscode.Uri.parse(ownerUri)); - ownerUri = localUri.toString(); - } catch { - } - - self._sharedService.notify(type, { - ownerUri: ownerUri, - profile: profile - }); - } - }); - - this._sharedService.onRequest(constants.connectRequest, (args: any) => { - return; - }); - - this._sharedService.onRequest(constants.disconnectRequest, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.cancelConnectRequest, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.changeDatabaseRequest, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.listDatabasesRequest, (args: any) => { - return true; - }); - this._sharedService.onRequest(constants.getConnectionStringRequest, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.buildConnectionInfoRequest, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.rebuildIntellisenseCacheRequest, (args: any) => { - return true; - }); - } - - public registerProvider(): vscode.Disposable { - const self = this; - this._sharedServiceProxy.onNotify('onConnect', (args: any) => { - this._onConnect.fire(args); - return args; - }); - - this._sharedServiceProxy.onNotify('onDisconnect', (args: any) => { - this._onDisconnect.fire(args); - return args; - }); - - this._sharedServiceProxy.onNotify('onConnectionChanged', (args: any) => { - this._onConnectionChanged.fire(args); - return args; - }); - - let connect = (ownerUri: string, connInfo: azdata.ConnectionInfo): Thenable => { - if (self._onConnectionCompleteHandler) { - // "test" liveshare connection details to be filled out in later iteration - let connSummary: azdata.ConnectionInfoSummary = { - ownerUri: ownerUri, - connectionId: ownerUri, - messages: undefined, - errorMessage: undefined, - errorNumber: undefined, - connectionSummary: { - serverName: connInfo.options['serverName'], - databaseName: connInfo.options['databaseName'], - userName: 'liveshare' - }, - serverInfo: { - serverMajorVersion: 1, - serverMinorVersion: 0, - serverReleaseVersion: 1, - engineEditionId: 1, - serverVersion: '1.0', - serverLevel: '1', - serverEdition: '1', - isCloud: false, - azureVersion: 1, - osVersion: '1', - cpuCount: 1, - physicalMemoryInMb: 1, - options: connInfo.options - } - }; - self._onConnectionCompleteHandler(connSummary); - } - - return self._sharedServiceProxy.request(constants.connectRequest, [{ - ownerUri: ownerUri, - connInfo: connInfo - }]); - }; - - let disconnect = (ownerUri: string): Thenable => { - return self._sharedServiceProxy.request(constants.disconnectRequest, [{ - ownerUri: ownerUri - }]); - }; - - let cancelConnect = (ownerUri: string): Thenable => { - return self._sharedServiceProxy.request(constants.cancelConnectRequest, [{ - ownerUri: ownerUri - }]); - }; - - let changeDatabase = (ownerUri: string, newDatabase: string): Thenable => { - return self._sharedServiceProxy.request(constants.changeDatabaseRequest, [{ - ownerUri: ownerUri, - newDatabase: newDatabase - }]); - }; - - let listDatabases = (ownerUri: string): Thenable => { - return self._sharedServiceProxy.request(constants.listDatabasesRequest, [{ - ownerUri: ownerUri - }]); - }; - - let getConnectionString = (ownerUri: string, includePassword: boolean): Thenable => { - return self._sharedServiceProxy.request(constants.getConnectionStringRequest, [{ - ownerUri: ownerUri, - includePassword: includePassword - }]); - }; - - let buildConnectionInfo = (connectionString: string): Thenable => { - return self._sharedServiceProxy.request(constants.buildConnectionInfoRequest, [{ - connectionString: connectionString - }]); - }; - - let rebuildIntelliSenseCache = (ownerUri: string): Thenable => { - return self._sharedServiceProxy.request(constants.rebuildIntellisenseCacheRequest, [{ - ownerUri: ownerUri - }]); - }; - - let registerOnConnectionComplete = (handler: (connSummary: azdata.ConnectionInfoSummary) => any): void => { - self._onConnectionCompleteHandler = handler; - return; - }; - - let registerOnIntelliSenseCacheComplete = (handler: (connectionUri: string) => any): void => { - return; - }; - - let registerOnConnectionChanged = (handler: (changedConnInfo: azdata.ChangedConnectionInfo) => any): void => { - return; - }; - - return azdata.dataprotocol.registerConnectionProvider({ - providerId: constants.LiveShareProviderId, - connect, - disconnect, - cancelConnect, - changeDatabase, - listDatabases, - getConnectionString, - buildConnectionInfo, - rebuildIntelliSenseCache, - registerOnConnectionChanged, - registerOnIntelliSenseCacheComplete, - registerOnConnectionComplete - }); - } -} diff --git a/extensions/liveshare/src/providers/queryProvider.ts b/extensions/liveshare/src/providers/queryProvider.ts deleted file mode 100644 index e786275dcf..0000000000 --- a/extensions/liveshare/src/providers/queryProvider.ts +++ /dev/null @@ -1,245 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as azdata from 'azdata'; -import * as vscode from 'vscode'; - -import * as constants from '../constants'; -import { SharedService, SharedServiceProxy } from '../liveshare'; - -export class QueryProvider { - private _sharedService: SharedService; - private _sharedServiceProxy: SharedServiceProxy; - private _onQueryCompleteHandler: (result: azdata.QueryExecuteCompleteNotificationResult) => any; - - public constructor(private _isHost: boolean) { } - - public initialize(isHost: boolean, service: SharedService | SharedServiceProxy) { - if (this._isHost) { - this._sharedService = service; - this.registerProviderListener(); - } else { - this._sharedServiceProxy = service; - this.registerProvider(); - } - } - - public registerProviderListener() { - this._sharedService.onRequest(constants.cancelQueryRequest, (args: any) => { - return; - }); - - this._sharedService.onRequest(constants.runQueryRequest, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.runQueryStatementRequest, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.runQueryStringRequest, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.runQueryAndReturnRequest, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.parseSyntaxRequest, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.getQueryRowsRequest, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.disposeQueryRequest, (args: any) => { - return true; - }); - - this._sharedService.onNotify(constants.connectionUriChangedNotification, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.saveResultsRequest, (args: any) => { - return true; - }); - - this._sharedService.onRequest(constants.setQueryExecutionOptionsRequest, (args: any) => { - return true; - }); - } - - public registerProvider(): vscode.Disposable { - const self = this; - let runQuery = (ownerUri: string, querySelection: azdata.ISelectionData, executionPlanOptions?: azdata.ExecutionPlanOptions): Thenable => { - if (self._onQueryCompleteHandler) { - self._onQueryCompleteHandler({ - ownerUri: ownerUri, - batchSummaries: [] - }); - } - - return self._sharedServiceProxy.request(constants.runQueryRequest, [{ - ownerUri: ownerUri, - querySelection: querySelection, - executionPlanOptions: executionPlanOptions - }]); - }; - - let cancelQuery = (ownerUri: string): Thenable => { - return self._sharedServiceProxy.request(constants.cancelQueryRequest, [{ - ownerUri: ownerUri - }]); - }; - - let runQueryStatement = (ownerUri: string, line: number, column: number): Thenable => { - return self._sharedServiceProxy.request(constants.runQueryStatementRequest, [{ - ownerUri: ownerUri, - line: line, - column: column - }]); - }; - - let runQueryString = (ownerUri: string, query: string): Thenable => { - return self._sharedServiceProxy.request(constants.runQueryStringRequest, [{ - ownerUri: ownerUri, - query: query - }]); - }; - - let runQueryAndReturn = (ownerUri: string, queryString: string): Thenable => { - return self._sharedServiceProxy.request(constants.runQueryAndReturnRequest, [{ - ownerUri: ownerUri, - query: queryString - }]); - }; - - let parseSyntax = (ownerUri: string, query: string): Thenable => { - return self._sharedServiceProxy.request(constants.parseSyntaxRequest, [{ - ownerUri: ownerUri, - query: query - }]); - }; - - let getQueryRows = (rowData: azdata.QueryExecuteSubsetParams): Thenable => { - return self._sharedServiceProxy.request(constants.getQueryRowsRequest, [{ - rowData: rowData - }]); - }; - - let disposeQuery = (ownerUri: string): Thenable => { - return self._sharedServiceProxy.request(constants.disposeQueryRequest, [{ - ownerUri: ownerUri - }]); - }; - - let connectionUriChanged = (ownerUri: string): Thenable => { - self._sharedServiceProxy.notify(constants.connectionUriChangedNotification, [{ - ownerUri: ownerUri - }]); - return Promise.resolve(); - }; - - let registerOnQueryComplete = (handler: (result: azdata.QueryExecuteCompleteNotificationResult) => any): void => { - self._onQueryCompleteHandler = handler; - }; - - let registerOnBatchStart = (handler: (batchInfo: azdata.QueryExecuteBatchNotificationParams) => any): void => { - }; - - let registerOnBatchComplete = (handler: (batchInfo: azdata.QueryExecuteBatchNotificationParams) => any): void => { - }; - - let registerOnResultSetAvailable = (handler: (resultSetInfo: azdata.QueryExecuteResultSetNotificationParams) => any): void => { - }; - - let registerOnResultSetUpdated = (handler: (resultSetInfo: azdata.QueryExecuteResultSetNotificationParams) => any): void => { - }; - - let registerOnMessage = (handler: (message: azdata.QueryExecuteMessageParams) => any): void => { - }; - - let saveResults = (requestParams: azdata.SaveResultsRequestParams): Thenable => { - return Promise.resolve(undefined); - }; - - let setQueryExecutionOptions = (ownerUri: string, options: azdata.QueryExecutionOptions): Thenable => { - return Promise.resolve(); - }; - - // Edit Data Requests - let commitEdit = (ownerUri: string): Thenable => { - return Promise.resolve(); - }; - - let createRow = (ownerUri: string): Thenable => { - return Promise.resolve(undefined); - }; - - let deleteRow = (ownerUri: string, rowId: number): Thenable => { - return Promise.resolve(); - }; - - let disposeEdit = (ownerUri: string): Thenable => { - return Promise.resolve(); - }; - - let initializeEdit = (ownerUri: string, schemaName: string, objectName: string, objectType: string, LimitResults: number, queryString: string): Thenable => { - return Promise.resolve(); - }; - - let revertCell = (ownerUri: string, rowId: number, columnId: number): Thenable => { - return Promise.resolve(undefined); - }; - - let revertRow = (ownerUri: string, rowId: number): Thenable => { - return Promise.resolve(); - }; - - let updateCell = (ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable => { - return Promise.resolve(undefined); - }; - - let getEditRows = (rowData: azdata.EditSubsetParams): Thenable => { - return Promise.resolve(undefined); - }; - - // Edit Data Event Handlers - let registerOnEditSessionReady = (handler: (ownerUri: string, success: boolean, message: string) => any): void => { - }; - - return azdata.dataprotocol.registerQueryProvider({ - providerId: constants.LiveShareProviderId, - cancelQuery, - commitEdit, - createRow, - deleteRow, - disposeEdit, - disposeQuery, - connectionUriChanged, - getEditRows, - getQueryRows, - setQueryExecutionOptions, - initializeEdit, - registerOnBatchComplete, - registerOnBatchStart, - registerOnEditSessionReady, - registerOnMessage, - registerOnQueryComplete, - registerOnResultSetAvailable, - registerOnResultSetUpdated, - revertCell, - revertRow, - runQuery, - runQueryAndReturn, - parseSyntax, - runQueryStatement, - runQueryString, - saveResults, - updateCell - }, true); - } -} diff --git a/extensions/liveshare/src/providers/statusProvider.ts b/extensions/liveshare/src/providers/statusProvider.ts deleted file mode 100644 index 109caaf726..0000000000 --- a/extensions/liveshare/src/providers/statusProvider.ts +++ /dev/null @@ -1,94 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as azdata from 'azdata'; -import * as vscode from 'vscode'; -import { LiveShare, SharedService, SharedServiceProxy } from '../liveshare'; -import { ConnectionProvider } from './connectionProvider'; -import { LiveShareProviderId } from '../constants'; - -export class LiveShareDocumentState { - public isConnected: boolean; - public serverName?: string; - public databaseName?: string; -} - -export class StatusProvider { - private _sharedService: SharedService; - private _sharedServiceProxy: SharedServiceProxy; - - public constructor( - private _isHost: boolean, - private _vslsApi: LiveShare, - connectionProvider: ConnectionProvider, - service: SharedService | SharedServiceProxy) { - - if (this._isHost) { - this._sharedService = service; - this.registerStatusProvider(); - } else { - this._sharedServiceProxy = service; - - connectionProvider.onConnect(async (args: any) => { - if (args && args.ownerUri && args.profile) { - let queryDocument = await azdata.queryeditor.getQueryDocument(args.ownerUri); - if (queryDocument) { - let connectionOptions: { [key: string]: any } = {}; - connectionOptions['providerName'] = LiveShareProviderId; - connectionOptions['serverName'] = args.profile.options['server']; - connectionOptions['databaseName'] = args.profile.options['database']; - connectionOptions['userName'] = 'liveshare'; - connectionOptions['password'] = 'liveshare'; // [SuppressMessage("Microsoft.Security", "CS001:SecretInline", Justification="Stub value for testing")] - connectionOptions['authenticationType'] = 'liveshare'; - connectionOptions['savePassword'] = false; - connectionOptions['saveProfile'] = false; - let profile = azdata.connection.ConnectionProfile.createFrom(connectionOptions); - queryDocument.connect(profile); - } - } - }); - } - } - - private registerStatusProvider(): void { - let self = this; - - // Retrieves the current document state associated with the URI parameter. - // The URI will be in guest Live Share format and needs to be converted back - // to the host file path format. - this._sharedService.onRequest('getDocumentState', async (args: any[]) => { - if (args && args.length > 0) { - let ownerUri = vscode.Uri.parse(args[0].ownerUri); - let localUri: vscode.Uri = self._vslsApi.convertSharedUriToLocal(ownerUri); - let connection = await azdata.connection.getConnection(localUri.toString()); - - let serverName: string = 'liveshare'; - let databaseName: string = 'liveshare'; - if (connection) { - serverName = connection.serverName; - databaseName = connection.databaseName; - } - - let documentState: LiveShareDocumentState = { - isConnected: true, - serverName: serverName, - databaseName: databaseName - }; - return documentState; - } - return undefined; - }); - } - - public getDocumentState(doc: vscode.TextDocument): Promise { - if (!this._isHost) { - return this._sharedServiceProxy.request('getDocumentState', [{ - ownerUri: doc.uri.toString() - }]); - } else { - return Promise.resolve(undefined); - } - } -} diff --git a/extensions/liveshare/src/typings/refs.d.ts b/extensions/liveshare/src/typings/refs.d.ts deleted file mode 100644 index 59c63ae84d..0000000000 --- a/extensions/liveshare/src/typings/refs.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -/// -/// -/// diff --git a/extensions/liveshare/tsconfig.json b/extensions/liveshare/tsconfig.json deleted file mode 100644 index bda62ffc0d..0000000000 --- a/extensions/liveshare/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "../tsconfig.base.json", - "compilerOptions": { - "outDir": "./out", - "strict": false, - "noUnusedParameters": false, - "strictNullChecks": false - }, - "include": [ - "src/**/*" - ] -} diff --git a/extensions/liveshare/yarn.lock b/extensions/liveshare/yarn.lock deleted file mode 100644 index c05ea58f47..0000000000 --- a/extensions/liveshare/yarn.lock +++ /dev/null @@ -1,842 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@types/node@^12.11.7": - version "12.12.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.7.tgz#01e4ea724d9e3bd50d90c11fd5980ba317d8fa11" - integrity sha512-E6Zn0rffhgd130zbCbAr/JdXfXkoOUFAKNs/rF8qnafSJ8KYaA/j3oz7dcwal+lYjLA7xvdd5J4wdYpCTlP8+w== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -chalk@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#0.3.0": - version "0.3.0" - resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/21487d15a5f753ba885ce1e489abc0af03487544" - dependencies: - vscode-languageclient "3.5.1" - -debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -enhanced-resolve@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -errno@^0.1.3: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -graceful-fs@^4.1.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" - integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -loader-utils@^1.0.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -memory-fs@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -minimist@^1.2.0: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -readable-stream@^2.0.1: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -semver@^5.0.1: - version "5.7.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" - integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -tapable@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -ts-loader@^5.3.3: - version "5.4.5" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-5.4.5.tgz#a0c1f034b017a9344cef0961bfd97cc192492b8b" - integrity sha512-XYsjfnRQCBum9AMRZpk2rTYSVpdZBpZK+kDh0TeT3kxmQNBDVIeUjdPjY5RZry4eIAb8XHc4gYSUiUWPYvzSRw== - dependencies: - chalk "^2.3.0" - enhanced-resolve "^4.0.0" - loader-utils "^1.0.2" - micromatch "^3.1.4" - semver "^5.0.1" - -typescript@^3.3.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" - integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -vscode-jsonrpc@3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.5.0.tgz#87239d9e166b2d7352245b8a813597804c1d63aa" - integrity sha512-LeE9LS1IOIRDZy5Xugrbk2tKeMa64vkRODrXPZbwyn2l/Q0e/jyYq8ze/Lo96sjOFiRe3HHbTVN39Ta8KN2RpA== - -vscode-languageclient@3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.1.tgz#c78e582459c24e58f88020dfa34065e976186a98" - integrity sha512-GTQ+hSq/o4c/y6GYmyP9XNrVoIu0NFZ67KltSkqN+tO0eUNDIlrVNX+3DJzzyLhSsrctuGzuYWm3t87mNAcBmQ== - dependencies: - vscode-languageserver-protocol "3.5.1" - -vscode-languageserver-protocol@3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.5.1.tgz#5144a3a9eeccbd83fe2745bd4ed75fad6cc45f0d" - integrity sha512-1fPDIwsAv1difCV+8daOrJEGunClNJWqnUHq/ncWrjhitKWXgGmRCjlwZ3gDUTt54yRcvXz1PXJDaRNvNH6pYA== - dependencies: - vscode-jsonrpc "3.5.0" - vscode-languageserver-types "3.5.0" - -vscode-languageserver-types@3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374" - integrity sha512-D4rUfu/oKYdc9Tmec0nEfedj+uXO2tZHR+eoHs9rE9G/QpRyZaHuug8ZUNGTGdO+ALLGgenL6bRpY8y3J9acHg== - -vsls@^0.3.1291: - version "0.3.1291" - resolved "https://registry.yarnpkg.com/vsls/-/vsls-0.3.1291.tgz#55928c363b24d39a5d03d8e946ba85d7dcec3e38" - integrity sha512-8yJPN9p7k+XYyczOVtQmpun4K1CRDsw/hdnIzT/c40r5bIkpptfsBlHmmLemoIV+CAHvrTLdWKEf5OtRvdcn9A==