Remove LiveShare extension (#21143)

* Remove LiveShare extension

* Update build JS file
This commit is contained in:
Karl Burtram
2022-11-07 16:27:03 -08:00
committed by GitHub
parent aebceb8c16
commit 80c3d3570e
18 changed files with 0 additions and 2110 deletions

View File

@@ -263,7 +263,6 @@ const externalExtensions = [
'dacpac',
'import',
'kusto',
'liveshare',
'machine-learning',
'profiler',
'query-history',

View File

@@ -308,7 +308,6 @@ const externalExtensions = [
'dacpac',
'import',
'kusto',
'liveshare',
'machine-learning',
'profiler',
'query-history',

View File

@@ -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',

View File

@@ -15,7 +15,6 @@
"**/integration-tests/**",
"**/json/**",
"**/json-language-features/**",
"**/liveshare/**",
"**/markdown-basics/**",
"**/markdown-language-features/**",
"**/merge-conflict/**",

View File

@@ -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"]
}
}

View File

@@ -1,3 +0,0 @@
src/**
tsconfig.json
yarn.lock

View File

@@ -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"
}
}

View File

@@ -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';

View File

@@ -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<void> {
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;
}
}

View File

@@ -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);
});
}
}

View File

@@ -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<SessionChangeEvent>;
/** 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<PeersChangeEvent>;
/**
* 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<vscode.Uri | null>;
/**
* 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<void>;
/**
* 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<void>;
/**
* 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<SharedService | null>;
/**
* Stops providing a named service to guests.
*
* NOTE: Access to shared services may be restricted.
*/
unshareService(name: string): Promise<void>;
/**
* 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<SharedServiceProxy | null>;
/**
* 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<T>(
viewId: View,
treeDataProvider: vscode.TreeDataProvider<T>,
): 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<vscode.Disposable>;
/**
* Request contacts to our presence providers
* @param emails Request contacts emails
*/
getContacts(emails: string[]): Promise<ContactsCollection>;
}
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<any>;
}
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<boolean>;
/**
* 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<boolean>;
/**
* 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<any>;
/**
* 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<string[]>;
readonly id: string;
readonly email: string;
readonly displayName?: string;
readonly status?: string;
readonly avatarUri?: string;
invite(options?: InviteContactOptions): Promise<boolean>;
}
/**
* Represent a collection of contacts that can be disposed at once
*/
interface ContactsCollection {
readonly contacts: { [email: string]: Contact };
dispose(): Promise<void>;
}

View File

@@ -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 {
}

View File

@@ -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<any> = new vscode.EventEmitter<any>();
public readonly onConnect: vscode.Event<any> = this._onConnect.event;
protected _onDisconnect: vscode.EventEmitter<any> = new vscode.EventEmitter<any>();
public readonly onDisconnect: vscode.Event<any> = this._onDisconnect.event;
protected _onConnectionChanged: vscode.EventEmitter<any> = new vscode.EventEmitter<any>();
public readonly onConnectionChanged: vscode.Event<any> = 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 = <SharedService>service;
this.registerProviderListener();
} else {
this._sharedServiceProxy = <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(<string>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<boolean> => {
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<boolean> => {
return self._sharedServiceProxy.request(constants.disconnectRequest, [{
ownerUri: ownerUri
}]);
};
let cancelConnect = (ownerUri: string): Thenable<boolean> => {
return self._sharedServiceProxy.request(constants.cancelConnectRequest, [{
ownerUri: ownerUri
}]);
};
let changeDatabase = (ownerUri: string, newDatabase: string): Thenable<boolean> => {
return self._sharedServiceProxy.request(constants.changeDatabaseRequest, [{
ownerUri: ownerUri,
newDatabase: newDatabase
}]);
};
let listDatabases = (ownerUri: string): Thenable<azdata.ListDatabasesResult> => {
return self._sharedServiceProxy.request(constants.listDatabasesRequest, [{
ownerUri: ownerUri
}]);
};
let getConnectionString = (ownerUri: string, includePassword: boolean): Thenable<string> => {
return self._sharedServiceProxy.request(constants.getConnectionStringRequest, [{
ownerUri: ownerUri,
includePassword: includePassword
}]);
};
let buildConnectionInfo = (connectionString: string): Thenable<azdata.ConnectionInfo> => {
return self._sharedServiceProxy.request(constants.buildConnectionInfoRequest, [{
connectionString: connectionString
}]);
};
let rebuildIntelliSenseCache = (ownerUri: string): Thenable<void> => {
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
});
}
}

View File

@@ -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 = <SharedService>service;
this.registerProviderListener();
} else {
this._sharedServiceProxy = <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<void> => {
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<azdata.QueryCancelResult> => {
return self._sharedServiceProxy.request(constants.cancelQueryRequest, [{
ownerUri: ownerUri
}]);
};
let runQueryStatement = (ownerUri: string, line: number, column: number): Thenable<void> => {
return self._sharedServiceProxy.request(constants.runQueryStatementRequest, [{
ownerUri: ownerUri,
line: line,
column: column
}]);
};
let runQueryString = (ownerUri: string, query: string): Thenable<void> => {
return self._sharedServiceProxy.request(constants.runQueryStringRequest, [{
ownerUri: ownerUri,
query: query
}]);
};
let runQueryAndReturn = (ownerUri: string, queryString: string): Thenable<azdata.SimpleExecuteResult> => {
return self._sharedServiceProxy.request(constants.runQueryAndReturnRequest, [{
ownerUri: ownerUri,
query: queryString
}]);
};
let parseSyntax = (ownerUri: string, query: string): Thenable<azdata.SyntaxParseResult> => {
return self._sharedServiceProxy.request(constants.parseSyntaxRequest, [{
ownerUri: ownerUri,
query: query
}]);
};
let getQueryRows = (rowData: azdata.QueryExecuteSubsetParams): Thenable<azdata.QueryExecuteSubsetResult> => {
return self._sharedServiceProxy.request(constants.getQueryRowsRequest, [{
rowData: rowData
}]);
};
let disposeQuery = (ownerUri: string): Thenable<void> => {
return self._sharedServiceProxy.request(constants.disposeQueryRequest, [{
ownerUri: ownerUri
}]);
};
let connectionUriChanged = (ownerUri: string): Thenable<void> => {
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<azdata.SaveResultRequestResult> => {
return Promise.resolve(undefined);
};
let setQueryExecutionOptions = (ownerUri: string, options: azdata.QueryExecutionOptions): Thenable<void> => {
return Promise.resolve();
};
// Edit Data Requests
let commitEdit = (ownerUri: string): Thenable<void> => {
return Promise.resolve();
};
let createRow = (ownerUri: string): Thenable<azdata.EditCreateRowResult> => {
return Promise.resolve(undefined);
};
let deleteRow = (ownerUri: string, rowId: number): Thenable<void> => {
return Promise.resolve();
};
let disposeEdit = (ownerUri: string): Thenable<void> => {
return Promise.resolve();
};
let initializeEdit = (ownerUri: string, schemaName: string, objectName: string, objectType: string, LimitResults: number, queryString: string): Thenable<void> => {
return Promise.resolve();
};
let revertCell = (ownerUri: string, rowId: number, columnId: number): Thenable<azdata.EditRevertCellResult> => {
return Promise.resolve(undefined);
};
let revertRow = (ownerUri: string, rowId: number): Thenable<void> => {
return Promise.resolve();
};
let updateCell = (ownerUri: string, rowId: number, columnId: number, newValue: string): Thenable<azdata.EditUpdateCellResult> => {
return Promise.resolve(undefined);
};
let getEditRows = (rowData: azdata.EditSubsetParams): Thenable<azdata.EditSubsetResult> => {
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);
}
}

View File

@@ -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 = <SharedService>service;
this.registerStatusProvider();
} else {
this._sharedServiceProxy = <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<LiveShareDocumentState> {
if (!this._isHost) {
return this._sharedServiceProxy.request('getDocumentState', [{
ownerUri: doc.uri.toString()
}]);
} else {
return Promise.resolve(undefined);
}
}
}

View File

@@ -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.
*--------------------------------------------------------------------------------------------*/
/// <reference path='../../../../src/sql/azdata.d.ts'/>
/// <reference path='../../../../src/sql/azdata.proposed.d.ts'/>
/// <reference path='../../../../src/vscode-dts/vscode.d.ts'/>

View File

@@ -1,12 +0,0 @@
{
"extends": "../tsconfig.base.json",
"compilerOptions": {
"outDir": "./out",
"strict": false,
"noUnusedParameters": false,
"strictNullChecks": false
},
"include": [
"src/**/*"
]
}

View File

@@ -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==