Extensions Cleanup (#359)

* clean up extensions

* updated copyrights

* formatting
This commit is contained in:
Anthony Dresser
2017-12-20 21:35:52 -08:00
committed by GitHub
parent b1b3a92717
commit 8afebd2e10
72 changed files with 2352 additions and 5359 deletions

View File

@@ -620,8 +620,8 @@ gulp.task('generate-vscode-configuration', () => {
// {{SQL CARBON EDIT}} // {{SQL CARBON EDIT}}
// Install service locally before building carbon // Install service locally before building carbon
function installService(extObj) { function installService(extObj, path) {
var installer = new serviceInstaller.ServiceInstaller(extObj, true); var installer = new serviceInstaller.ServiceInstaller(extObj, path);
installer.getServiceInstallDirectoryRoot().then(serviceInstallFolder => { installer.getServiceInstallDirectoryRoot().then(serviceInstallFolder => {
console.log('Cleaning up the install folder: ' + serviceInstallFolder); console.log('Cleaning up the install folder: ' + serviceInstallFolder);
del(serviceInstallFolder + '/*').then(() => { del(serviceInstallFolder + '/*').then(() => {
@@ -639,7 +639,8 @@ function installService(extObj) {
gulp.task('install-sqltoolsservice', () => { gulp.task('install-sqltoolsservice', () => {
var mssqlExt = require('../extensions/mssql/client/out/models/constants'); var mssqlExt = require('../extensions/mssql/client/out/models/constants');
var extObj = new mssqlExt.Constants(); var extObj = new mssqlExt.Constants();
return installService(extObj); var path = '../extensions/mssql/client/out/config.json';
return installService(extObj, path);
}); });

View File

@@ -41,7 +41,8 @@ const extensions = [
'extension-editing', 'extension-editing',
'markdown', 'markdown',
'merge-conflict', 'merge-conflict',
'insights-default' 'insights-default',
'account-provider-azure'
]; ];
extensions.forEach(extension => npmInstall(`extensions/${extension}`)); extensions.forEach(extension => npmInstall(`extensions/${extension}`));

View File

@@ -0,0 +1,9 @@
.vscode/
lib/test/
lib/**/*.map
src/
test/
.eslintrc
.gitignore
gulpfile.js
tsd.json

View File

@@ -7,7 +7,7 @@
const fs = require('fs'); const fs = require('fs');
import * as path from 'path'; import * as path from 'path';
import { IConfig } from '../languageservice/interfaces'; import { IConfig } from '../languageservice/interfaces';
import * as SharedConstants from '../models/constants'; import { Constants } from '../models/constants';
/* /*
* Config class handles getting values from config.json. * Config class handles getting values from config.json.
@@ -18,7 +18,7 @@ export default class Config implements IConfig {
private _extensionConfigSectionName: string = undefined; private _extensionConfigSectionName: string = undefined;
private _fromBuild: boolean = undefined; private _fromBuild: boolean = undefined;
constructor(extensionConfigSectionName: string, fromBuild?: boolean) { constructor(extensionConfigSectionName: string, private path: string, fromBuild?: boolean) {
this._extensionConfigSectionName = extensionConfigSectionName; this._extensionConfigSectionName = extensionConfigSectionName;
this._fromBuild = fromBuild; this._fromBuild = fromBuild;
} }
@@ -31,24 +31,24 @@ export default class Config implements IConfig {
} }
public getDownloadUrl(): string { public getDownloadUrl(): string {
return this.getConfigValue(SharedConstants.downloadUrlConfigKey); return this.getConfigValue(Constants.downloadUrlConfigKey);
} }
public getInstallDirectory(): string { public getInstallDirectory(): string {
return this.getConfigValue(SharedConstants.installDirConfigKey); return this.getConfigValue(Constants.installDirConfigKey);
} }
public getExecutableFiles(): string[] { public getExecutableFiles(): string[] {
return this.getConfigValue(SharedConstants.executableFilesConfigKey); return this.getConfigValue(Constants.executableFilesConfigKey);
} }
public getPackageVersion(): string { public getPackageVersion(): string {
return this.getConfigValue(SharedConstants.versionConfigKey); return this.getConfigValue(Constants.versionConfigKey);
} }
public getConfigValue(configKey: string): any { public getConfigValue(configKey: string): any {
let json = this.configJsonContent; let json = this.configJsonContent;
let toolsConfig = json[SharedConstants.serviceConfigKey]; let toolsConfig = json[Constants.serviceConfigKey];
let configValue: string = undefined; let configValue: string = undefined;
if (toolsConfig !== undefined) { if (toolsConfig !== undefined) {
configValue = toolsConfig[configKey]; configValue = toolsConfig[configKey];
@@ -82,7 +82,7 @@ export default class Config implements IConfig {
configContent = fs.readFileSync(path.join(__dirname, remainingPath)); configContent = fs.readFileSync(path.join(__dirname, remainingPath));
} }
else { else {
configContent = fs.readFileSync(path.join(__dirname, '../../../../client/out/config.json')); configContent = fs.readFileSync(this.path);
} }
return JSON.parse(configContent); return JSON.parse(configContent);
} }

View File

@@ -8,7 +8,7 @@
import Config from './config'; import Config from './config';
import { workspace, WorkspaceConfiguration } from 'vscode'; import { workspace, WorkspaceConfiguration } from 'vscode';
import { IConfig } from '../languageservice/interfaces'; import { IConfig } from '../languageservice/interfaces';
import * as Constants from '../models/constants'; import { Constants } from '../models/constants';
/* /*
* ExtConfig class handles getting values from workspace config or config.json. * ExtConfig class handles getting values from workspace config or config.json.
@@ -16,10 +16,11 @@ import * as Constants from '../models/constants';
export default class ExtConfig implements IConfig { export default class ExtConfig implements IConfig {
constructor(private _extensionConfigSectionName: string, private _config?: IConfig, constructor(private _extensionConfigSectionName: string, private _config?: IConfig,
path?: string,
private _extensionConfig?: WorkspaceConfiguration, private _extensionConfig?: WorkspaceConfiguration,
private _workspaceConfig?: WorkspaceConfiguration) { private _workspaceConfig?: WorkspaceConfiguration) {
if (this._config === undefined) { if (this._config === undefined) {
this._config = new Config(_extensionConfigSectionName); this._config = new Config(_extensionConfigSectionName, path);
} }
if (this._extensionConfig === undefined) { if (this._extensionConfig === undefined) {
this._extensionConfig = workspace.getConfiguration(_extensionConfigSectionName); this._extensionConfig = workspace.getConfiguration(_extensionConfigSectionName);

View File

@@ -6,9 +6,7 @@
import vscode = require('vscode'); import vscode = require('vscode');
import { IExtensionConstants } from '../models/contracts/contracts'; import { IExtensionConstants } from '../models/contracts/contracts';
export import TextEditor = vscode.TextEditor; export class VscodeWrapper {
export default class VscodeWrapper {
private _extensionConstants: IExtensionConstants; private _extensionConstants: IExtensionConstants;
/** /**
* Output channel for logging. Shared among all instances. * Output channel for logging. Shared among all instances.

View File

@@ -11,7 +11,7 @@ import * as https from 'https';
import * as http from 'http'; import * as http from 'http';
import { getProxyAgent } from './proxy'; import { getProxyAgent } from './proxy';
let fs = require('fs'); const fs = require('fs');
/* /*
* Http client class to handle downloading files using http or https urls * Http client class to handle downloading files using http or https urls

View File

@@ -6,8 +6,8 @@
'use strict'; 'use strict';
import { Url, parse as parseUrl } from 'url'; import { Url, parse as parseUrl } from 'url';
let HttpProxyAgent = require('http-proxy-agent'); const HttpProxyAgent = require('http-proxy-agent');
let HttpsProxyAgent = require('https-proxy-agent'); const HttpsProxyAgent = require('https-proxy-agent');
function getSystemProxyURL(requestURL: Url): string { function getSystemProxyURL(requestURL: Url): string {
if (requestURL.protocol === 'http:') { if (requestURL.protocol === 'http:') {

View File

@@ -9,7 +9,7 @@ import * as path from 'path';
import { Runtime } from '../models/platform'; import { Runtime } from '../models/platform';
import ServiceDownloadProvider from './serviceDownloadProvider'; import ServiceDownloadProvider from './serviceDownloadProvider';
import { IConfig, IStatusView } from './interfaces'; import { IConfig, IStatusView } from './interfaces';
let fs = require('fs-extra-promise'); const fs = require('fs-extra-promise');
/* /*

View File

@@ -8,7 +8,7 @@
import { IStatusView } from './interfaces'; import { IStatusView } from './interfaces';
import vscode = require('vscode'); import vscode = require('vscode');
import { IExtensionConstants } from '../models/contracts/contracts'; import { IExtensionConstants } from '../models/contracts/contracts';
import * as Constants from '../models/constants'; import { Constants } from '../models/constants';
/* /*
* The status class which includes the service initialization result. * The status class which includes the service initialization result.

View File

@@ -1,21 +1,21 @@
/* -------------------------------------------------------------------------------------------- /*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved. * Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information. * Licensed under the Source EULA. See License.txt in the project root for license information.
* ------------------------------------------------------------------------------------------ */ *--------------------------------------------------------------------------------------------*/
'use strict'; 'use strict';
import { ExtensionContext, workspace, window, OutputChannel, languages } from 'vscode'; import { ExtensionContext, workspace, window, OutputChannel, languages } from 'vscode';
import { LanguageClient, LanguageClientOptions, ServerOptions, import {
LanguageClient, LanguageClientOptions, ServerOptions,
TransportKind, RequestType, NotificationType, NotificationHandler, TransportKind, RequestType, NotificationType, NotificationHandler,
ErrorAction, CloseAction } from 'dataprotocol-client'; ErrorAction, CloseAction
} from 'dataprotocol-client';
import VscodeWrapper from '../controllers/vscodeWrapper'; import { VscodeWrapper } from '../controllers/vscodeWrapper';
import Telemetry from '../models/telemetry'; import { Telemetry } from '../models/telemetry';
import * as Utils from '../models/utils'; import { Utils } from '../models/utils';
import { VersionRequest, IExtensionConstants } from '../models/contracts/contracts'; import { VersionRequest, IExtensionConstants } from '../models/contracts/contracts';
import { Logger } from '../models/logger'; import { Logger } from '../models/logger';
import Constants = require('../models/constants');
import {ILanguageClientHelper} from '../models/contracts/languageService';
import ServerProvider from './server'; import ServerProvider from './server';
import ServiceDownloadProvider from './serviceDownloadProvider'; import ServiceDownloadProvider from './serviceDownloadProvider';
import DecompressProvider from './decompressProvider'; import DecompressProvider from './decompressProvider';
@@ -25,14 +25,12 @@ import {PlatformInformation, Runtime} from '../models/platform';
import { ServerInitializationResult, ServerStatusView } from './serverStatus'; import { ServerInitializationResult, ServerStatusView } from './serverStatus';
import StatusView from '../views/statusView'; import StatusView from '../views/statusView';
import * as LanguageServiceContracts from '../models/contracts/languageService'; import * as LanguageServiceContracts from '../models/contracts/languageService';
import * as SharedConstants from '../models/constants'; import { Constants } from '../models/constants';
import * as utils from '../models/utils';
var path = require('path');
import ServiceStatus from './serviceStatus'; import ServiceStatus from './serviceStatus';
let opener = require('opener'); const opener = require('opener');
const path = require('path');
let _channel: OutputChannel = undefined; let _channel: OutputChannel = undefined;
const fs = require('fs-extra');
/** /**
* @interface IMessage * @interface IMessage
@@ -69,8 +67,8 @@ class LanguageClientErrorHandler {
Telemetry.sendTelemetryEvent(extensionConstants.serviceName + 'Crash'); Telemetry.sendTelemetryEvent(extensionConstants.serviceName + 'Crash');
this.vscodeWrapper.showErrorMessage( this.vscodeWrapper.showErrorMessage(
extensionConstants.serviceCrashMessage, extensionConstants.serviceCrashMessage,
SharedConstants.serviceCrashButton).then(action => { Constants.serviceCrashButton).then(action => {
if (action && action === SharedConstants.serviceCrashButton) { if (action && action === Constants.serviceCrashButton) {
opener(extensionConstants.serviceCrashLink); opener(extensionConstants.serviceCrashLink);
} }
}); });
@@ -111,7 +109,7 @@ class LanguageClientErrorHandler {
} }
// The Service Client class handles communication with the VS Code LanguageClient // The Service Client class handles communication with the VS Code LanguageClient
export default class SqlToolsServiceClient { export class SqlToolsServiceClient {
// singleton instance // singleton instance
private static _instance: SqlToolsServiceClient = undefined; private static _instance: SqlToolsServiceClient = undefined;
@@ -126,13 +124,13 @@ export default class SqlToolsServiceClient {
Telemetry.getRuntimeId = this._constants.getRuntimeId; Telemetry.getRuntimeId = this._constants.getRuntimeId;
} }
private static _helper: ILanguageClientHelper = undefined; private static _helper: LanguageServiceContracts.ILanguageClientHelper = undefined;
public static get helper(): ILanguageClientHelper { public static get helper(): LanguageServiceContracts.ILanguageClientHelper {
return this._helper; return this._helper;
} }
public static set helper(helperObject: ILanguageClientHelper) { public static set helper(helperObject: LanguageServiceContracts.ILanguageClientHelper) {
this._helper = helperObject; this._helper = helperObject;
} }
@@ -170,10 +168,10 @@ export default class SqlToolsServiceClient {
} }
// gets or creates the singleton service client instance // gets or creates the singleton service client instance
public static get instance(): SqlToolsServiceClient { public static getInstance(path: string): SqlToolsServiceClient {
if (this._instance === undefined) { if (this._instance === undefined) {
let constants = this._constants; let constants = this._constants;
let config = new ExtConfig(constants.extensionConfigSectionName); let config = new ExtConfig(constants.extensionConfigSectionName, undefined, path);
_channel = window.createOutputChannel(constants.serviceInitializingOutputChannelName); _channel = window.createOutputChannel(constants.serviceInitializingOutputChannelName);
let logger = new Logger(text => _channel.append(text), constants); let logger = new Logger(text => _channel.append(text), constants);
let serverStatusView = new ServerStatusView(constants); let serverStatusView = new ServerStatusView(constants);
@@ -196,7 +194,7 @@ export default class SqlToolsServiceClient {
return PlatformInformation.getCurrent(SqlToolsServiceClient._constants.getRuntimeId, SqlToolsServiceClient._constants.extensionName).then(platformInfo => { return PlatformInformation.getCurrent(SqlToolsServiceClient._constants.getRuntimeId, SqlToolsServiceClient._constants.extensionName).then(platformInfo => {
return this.initializeForPlatform(platformInfo, context); return this.initializeForPlatform(platformInfo, context);
}).catch(err => { }).catch(err => {
this._vscodeWrapper.showErrorMessage(err) this._vscodeWrapper.showErrorMessage(err);
}); });
} }
@@ -321,7 +319,7 @@ export default class SqlToolsServiceClient {
} }
} }
public createClient(context: ExtensionContext, runtimeId: Runtime, languageClientHelper: ILanguageClientHelper, executableFiles: string[]): Promise<LanguageClient> { public createClient(context: ExtensionContext, runtimeId: Runtime, languageClientHelper: LanguageServiceContracts.ILanguageClientHelper, executableFiles: string[]): Promise<LanguageClient> {
return new Promise<LanguageClient>((resolve, reject) => { return new Promise<LanguageClient>((resolve, reject) => {
let client: LanguageClient; let client: LanguageClient;
this._server.findServerPath(this.installDirectory, executableFiles).then(serverPath => { this._server.findServerPath(this.installDirectory, executableFiles).then(serverPath => {
@@ -383,7 +381,7 @@ export default class SqlToolsServiceClient {
} }
} }
serverArgs.push('--log-dir'); serverArgs.push('--log-dir');
let logFileLocation = path.join(utils.getDefaultLogLocation(), SqlToolsServiceClient.constants.extensionName); let logFileLocation = path.join(Utils.getDefaultLogLocation(), SqlToolsServiceClient.constants.extensionName);
serverArgs.push(logFileLocation); serverArgs.push(logFileLocation);
// run the service host using dotnet.exe from the path // run the service host using dotnet.exe from the path

View File

@@ -9,11 +9,11 @@ import { Runtime, getRuntimeDisplayName } from '../models/platform';
import * as path from 'path'; import * as path from 'path';
import { IConfig, IStatusView, IPackage, PackageError, IHttpClient, IDecompressProvider } from './interfaces'; import { IConfig, IStatusView, IPackage, PackageError, IHttpClient, IDecompressProvider } from './interfaces';
import { ILogger } from '../models/interfaces'; import { ILogger } from '../models/interfaces';
import Constants = require('../models/constants'); import { Constants } from '../models/constants';
import * as tmp from 'tmp'; import * as tmp from 'tmp';
import { IExtensionConstants } from '../models/contracts/contracts'; import { IExtensionConstants } from '../models/contracts/contracts';
let fse = require('fs-extra'); const fse = require('fs-extra');
/* /*
* Service Download Provider class which handles downloading the SQL Tools service. * Service Download Provider class which handles downloading the SQL Tools service.

View File

@@ -61,9 +61,9 @@ export class ServiceInstaller {
private _serverProvider = undefined; private _serverProvider = undefined;
private _extensionConstants = undefined; private _extensionConstants = undefined;
constructor(extensionConstants: IExtensionConstants) { constructor(extensionConstants: IExtensionConstants, path?: string) {
this._extensionConstants = extensionConstants; this._extensionConstants = extensionConstants;
this._config = new Config(extensionConstants.extensionConfigSectionName, true); this._config = new Config(extensionConstants.extensionConfigSectionName, path, true);
this._downloadProvider = new ServiceDownloadProvider(this._config, this._logger, this._statusView, this._httpClient, this._decompressProvider, extensionConstants, true); this._downloadProvider = new ServiceDownloadProvider(this._config, this._logger, this._statusView, this._httpClient, this._decompressProvider, extensionConstants, true);
this._serverProvider = new ServerProvider(this._downloadProvider, this._config, this._statusView, extensionConstants.extensionConfigSectionName); this._serverProvider = new ServerProvider(this._downloadProvider, this._config, this._statusView, extensionConstants.extensionConfigSectionName);
} }

View File

@@ -1,7 +1,7 @@
/* -------------------------------------------------------------------------------------------- /*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved. * Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information. * Licensed under the Source EULA. See License.txt in the project root for license information.
* ------------------------------------------------------------------------------------------ */ *--------------------------------------------------------------------------------------------*/
'use strict'; 'use strict';
import vscode = require('vscode'); import vscode = require('vscode');

View File

@@ -1,10 +1,12 @@
import SqlToolsServiceClient from './languageservice/serviceClient'; /*---------------------------------------------------------------------------------------------
import ServerProvider from './languageservice/server'; * Copyright (c) Microsoft Corporation. All rights reserved.
import VscodeWrapper from './controllers/vscodeWrapper'; * Licensed under the Source EULA. See License.txt in the project root for license information.
import * as SharedConstants from './models/constants'; *--------------------------------------------------------------------------------------------*/
import * as Utils from './models/utils'; export * from './controllers/vscodeWrapper';
export * from './models/constants';
export * from './models/utils';
export {SqlToolsServiceClient, VscodeWrapper, SharedConstants, Utils}; export { SqlToolsServiceClient } from './languageservice/serviceClient';
export { IExtensionConstants } from './models/contracts/contracts'; export { IExtensionConstants } from './models/contracts/contracts';
export { ILanguageClientHelper } from './models/contracts/languageService'; export { ILanguageClientHelper } from './models/contracts/languageService';
export { Runtime, PlatformInformation } from './models/platform'; export { Runtime, PlatformInformation } from './models/platform';

View File

@@ -3,24 +3,23 @@
* Licensed under the Source EULA. See License.txt in the project root for license information. * Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
export namespace Constants {
//constants //constants
export const configLogDebugInfo: string = 'logDebugInfo'; export const configLogDebugInfo: string = 'logDebugInfo';
export const serviceNotCompatibleError: string = "Client is not compatible with the service layer"; export const serviceNotCompatibleError: string = 'Client is not compatible with the service layer';
export const serviceDownloading: string = "Downloading"; export const serviceDownloading: string = 'Downloading';
export const serviceInstalling: string = "Installing"; export const serviceInstalling: string = 'Installing';
export const unsupportedPlatformErrorMessage: string = "This platform is unsupported and application services may not function correctly"; export const unsupportedPlatformErrorMessage: string = 'This platform is unsupported and application services may not function correctly';
export const extensionActivated: string = 'activated.';
export const extensionDeactivated: string = 'de-activated.';
export const configEnabled: string = 'enabled';
export const configUseDebugSource = 'useDebugSource';
export const serviceConfigKey = 'service'; export const serviceConfigKey = 'service';
export const executableFilesConfigKey = 'executableFiles'; export const executableFilesConfigKey = 'executableFiles';
export const versionConfigKey = 'version'; export const versionConfigKey = 'version';
export const downloadUrlConfigKey = 'downloadUrl'; export const downloadUrlConfigKey = 'downloadUrl';
export const installDirConfigKey = 'installDir'; export const installDirConfigKey = 'installDir';
export const serviceCrashButton = "View Known Issues"; export const serviceCrashButton = 'View Known Issues';
export const configDebugSourcePath = 'debugSourcePath'; export const neverShowAgain = 'Do not show again';
export const neverShowAgain = "Don't show again";
export const ignorePlatformWarning = 'ignorePlatformWarning'; export const ignorePlatformWarning = 'ignorePlatformWarning';
export const usingDefaultPlatformMessage = "Unknown platform detected, defaulting to Linux_x64 platform"; export const usingDefaultPlatformMessage = 'Unknown platform detected, defaulting to Linux_x64 platform';
export const serverConnectionMetadata = "serverConnectionMetadata"; export const serverConnectionMetadata = 'serverConnectionMetadata';
export const extensionDeactivated: string = 'de-activated.';
export const extensionActivated: string = 'activated.';
}

View File

@@ -2,7 +2,7 @@
* Copyright (c) Microsoft Corporation. All rights reserved. * Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information. * Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
'use strict' 'use strict';
import { RequestType } from 'dataprotocol-client'; import { RequestType } from 'dataprotocol-client';
import { Runtime, LinuxDistribution } from '../platform'; import { Runtime, LinuxDistribution } from '../platform';

View File

@@ -1,3 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { NotificationType, ServerOptions } from 'dataprotocol-client'; import { NotificationType, ServerOptions } from 'dataprotocol-client';
import { ITelemetryEventProperties, ITelemetryEventMeasures } from '../telemetry'; import { ITelemetryEventProperties, ITelemetryEventMeasures } from '../telemetry';
import { Runtime } from '../platform'; import { Runtime } from '../platform';

View File

@@ -1,3 +1,7 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict'; 'use strict';
export interface ILogger { export interface ILogger {
@@ -7,7 +11,3 @@ export interface ILogger {
append(message?: string): void; append(message?: string): void;
appendLine(message?: string): void; appendLine(message?: string): void;
} }
export interface IRuntime {
getRuntimeDisplayName();
}

View File

@@ -4,8 +4,9 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
import * as os from 'os'; import * as os from 'os';
import { ILogger } from './interfaces'; import { ILogger } from './interfaces';
import * as Utils from './utils'; import { Utils } from './utils';
import { IExtensionConstants } from './contracts/contracts'; import { IExtensionConstants } from './contracts/contracts';
/* /*
* Logger class handles logging messages using the Util functions. * Logger class handles logging messages using the Util functions.
*/ */

View File

@@ -134,7 +134,7 @@ export class PlatformInformation {
case 'darwin': case 'darwin':
let osVersion = os.release(); let osVersion = os.release();
if (parseFloat(osVersion) < 16.0 && extensionName === 'mssql') { if (parseFloat(osVersion) < 16.0 && extensionName === 'mssql') {
return Promise.reject('The current version of macOS is not supported. Only macOS Sierra and above (>= 10.12) are supported.') return Promise.reject('The current version of macOS is not supported. Only macOS Sierra and above (>= 10.12) are supported.');
} }
architecturePromise = PlatformInformation.getUnixArchitecture(); architecturePromise = PlatformInformation.getUnixArchitecture();
distributionPromise = Promise.resolve(undefined); distributionPromise = Promise.resolve(undefined);
@@ -235,61 +235,6 @@ export class PlatformInformation {
}); });
}); });
} }
private static getRuntimeIdHelper(distributionName: string, distributionVersion: string): Runtime {
switch (distributionName) {
case 'ubuntu':
if (distributionVersion.startsWith('14')) {
// This also works for Linux Mint
return Runtime.Ubuntu_14;
} else if (distributionVersion.startsWith('16')) {
return Runtime.Ubuntu_16;
}
break;
case 'elementary':
case 'elementary OS':
if (distributionVersion.startsWith('0.3')) {
// Elementary OS 0.3 Freya is binary compatible with Ubuntu 14.04
return Runtime.Ubuntu_14;
} else if (distributionVersion.startsWith('0.4')) {
// Elementary OS 0.4 Loki is binary compatible with Ubuntu 16.04
return Runtime.Ubuntu_16;
}
break;
case 'linuxmint':
if (distributionVersion.startsWith('18')) {
// Linux Mint 18 is binary compatible with Ubuntu 16.04
return Runtime.Ubuntu_16;
}
break;
case 'centos':
case 'ol':
// Oracle Linux is binary compatible with CentOS
return Runtime.CentOS_7;
case 'fedora':
return Runtime.Fedora_23;
case 'opensuse':
return Runtime.OpenSUSE_13_2;
case 'sles':
return Runtime.SLES_12_2;
case 'rhel':
return Runtime.RHEL_7;
case 'debian':
return Runtime.Debian_8;
case 'galliumos':
if (distributionVersion.startsWith('2.0')) {
return Runtime.Ubuntu_16;
}
break;
default:
return Runtime.Linux_64;
}
return Runtime.Linux_64;
}
} }
/** /**

View File

@@ -6,7 +6,7 @@
'use strict'; 'use strict';
import vscode = require('vscode'); import vscode = require('vscode');
import TelemetryReporter from 'vscode-extension-telemetry'; import TelemetryReporter from 'vscode-extension-telemetry';
import Utils = require('./utils'); import { Utils } from './utils';
import { PlatformInformation, Runtime, LinuxDistribution } from './platform'; import { PlatformInformation, Runtime, LinuxDistribution } from './platform';
import { IExtensionConstants } from './contracts/contracts'; import { IExtensionConstants } from './contracts/contracts';
@@ -157,5 +157,3 @@ export class Telemetry {
}); });
} }
} }
export default Telemetry;

View File

@@ -1,17 +1,16 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict'; 'use strict';
import * as crypto from 'crypto'; import * as crypto from 'crypto';
import * as os from 'os'; import * as os from 'os';
import vscode = require('vscode'); import vscode = require('vscode');
import Constants = require('./constants'); import { Constants } from './constants';
import { ExtensionContext } from 'vscode'; import { ExtensionContext } from 'vscode';
import fs = require('fs');
var path = require('path'); var path = require('path');
// CONSTANTS ////////////////////////////////////////////////////////////////////////////////////// export namespace Utils {
const msInH = 3.6e6;
const msInM = 60000;
const msInS = 1000;
// INTERFACES ///////////////////////////////////////////////////////////////////////////////////// // INTERFACES /////////////////////////////////////////////////////////////////////////////////////
// Interface for package.json information // Interface for package.json information
@@ -84,27 +83,6 @@ export function generateUserId(): Promise<string> {
}); });
} }
// Return 'true' if the active editor window has a .sql file, false otherwise
export function isEditingSqlFile(languageId: string): boolean {
let sqlFile = false;
let editor = getActiveTextEditor();
if (editor) {
if (editor.document.languageId === languageId) {
sqlFile = true;
}
}
return sqlFile;
}
// Return the active text editor if there's one
export function getActiveTextEditor(): vscode.TextEditor {
let editor = undefined;
if (vscode.window && vscode.window.activeTextEditor) {
editor = vscode.window.activeTextEditor;
}
return editor;
}
// Retrieve the URI for the currently open file if there is one; otherwise return the empty string // Retrieve the URI for the currently open file if there is one; otherwise return the empty string
export function getActiveTextEditorUri(): string { export function getActiveTextEditorUri(): string {
if (typeof vscode.window.activeTextEditor !== 'undefined' && if (typeof vscode.window.activeTextEditor !== 'undefined' &&
@@ -114,19 +92,6 @@ export function getActiveTextEditorUri(): string {
return ''; return '';
} }
// Helper to log messages to output channel
export function logToOutputChannel(msg: any, outputChannelName: string): void {
let outputChannel = vscode.window.createOutputChannel(outputChannelName);
outputChannel.show();
if (msg instanceof Array) {
msg.forEach(element => {
outputChannel.appendLine(element.toString());
});
} else {
outputChannel.appendLine(msg.toString());
}
}
// Helper to log debug messages // Helper to log debug messages
export function logDebug(msg: any, extensionConfigSectionName: string): void { export function logDebug(msg: any, extensionConfigSectionName: string): void {
let config = vscode.workspace.getConfiguration(extensionConfigSectionName); let config = vscode.workspace.getConfiguration(extensionConfigSectionName);
@@ -138,16 +103,6 @@ export function logDebug(msg: any, extensionConfigSectionName: string): void {
} }
} }
// Helper to show an info message
export function showInfoMsg(msg: string, extensionName: string): void {
vscode.window.showInformationMessage(extensionName + ': ' + msg );
}
// Helper to show an warn message
export function showWarnMsg(msg: string, extensionName: string): void {
vscode.window.showWarningMessage(extensionName + ': ' + msg );
}
// Helper to show an error message // Helper to show an error message
export function showErrorMsg(msg: string, extensionName: string): void { export function showErrorMsg(msg: string, extensionName: string): void {
vscode.window.showErrorMessage(extensionName + ': ' + msg); vscode.window.showErrorMessage(extensionName + ': ' + msg);
@@ -157,97 +112,6 @@ export function isEmpty(str: any): boolean {
return (!str || '' === str); return (!str || '' === str);
} }
export function isNotEmpty(str: any): boolean {
return <boolean>(str && '' !== str);
}
/**
* Format a string. Behaves like C#'s string.Format() function.
*/
export function formatString(str: string, ...args: any[]): string {
// This is based on code originally from https://github.com/Microsoft/vscode/blob/master/src/vs/nls.js
// License: https://github.com/Microsoft/vscode/blob/master/LICENSE.txt
let result: string;
if (args.length === 0) {
result = str;
} else {
result = str.replace(/\{(\d+)\}/g, (match, rest) => {
let index = rest[0];
return typeof args[index] !== 'undefined' ? args[index] : match;
});
}
return result;
}
/**
* Check if a file exists on disk
*/
export function isFileExisting(filePath: string): boolean {
try {
fs.statSync(filePath);
return true;
} catch (err) {
return false;
}
}
/**
* Takes a string in the format of HH:MM:SS.MS and returns a number representing the time in
* miliseconds
* @param value The string to convert to milliseconds
* @return False is returned if the string is an invalid format,
* the number of milliseconds in the time string is returned otherwise.
*/
export function parseTimeString(value: string): number | boolean {
if (!value) {
return false;
}
let tempVal = value.split('.');
if (tempVal.length !== 2) {
return false;
}
let ms = parseInt(tempVal[1].substring(0, 3), 10);
tempVal = tempVal[0].split(':');
if (tempVal.length !== 3) {
return false;
}
let h = parseInt(tempVal[0], 10);
let m = parseInt(tempVal[1], 10);
let s = parseInt(tempVal[2], 10);
return ms + (h * msInH) + (m * msInM) + (s * msInS);
}
/**
* Takes a number of milliseconds and converts it to a string like HH:MM:SS.fff
* @param value The number of milliseconds to convert to a timespan string
* @returns A properly formatted timespan string.
*/
export function parseNumAsTimeString(value: number): string {
let tempVal = value;
let h = Math.floor(tempVal / msInH);
tempVal %= msInH;
let m = Math.floor(tempVal / msInM);
tempVal %= msInM;
let s = Math.floor(tempVal / msInS);
tempVal %= msInS;
let hs = h < 10 ? '0' + h : '' + h;
let ms = m < 10 ? '0' + m : '' + m;
let ss = s < 10 ? '0' + s : '' + s;
let mss = tempVal < 10 ? '00' + tempVal : tempVal < 100 ? '0' + tempVal : '' + tempVal;
let rs = hs + ':' + ms + ':' + ss;
return tempVal > 0 ? rs + '.' + mss : rs;
}
// The function is a duplicate of \src\paths.js. IT would be better to import path.js but it doesn't // The function is a duplicate of \src\paths.js. IT would be better to import path.js but it doesn't
// work for now because the extension is running in different process. // work for now because the extension is running in different process.
export function getAppDataPath() { export function getAppDataPath() {
@@ -259,6 +123,8 @@ export function getAppDataPath() {
default: throw new Error('Platform not supported'); default: throw new Error('Platform not supported');
} }
} }
export function getDefaultLogLocation() { export function getDefaultLogLocation() {
return path.join(getAppDataPath(), 'sqlops'); return path.join(getAppDataPath(), 'sqlops');
} }
}

View File

@@ -1,3 +0,0 @@
'use strict';
export default require('error-ex')('EscapeException');

View File

@@ -1,3 +0,0 @@
'use strict';
export default require('error-ex')('ValidationException');

View File

@@ -1,5 +1,9 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import vscode = require('vscode'); import vscode = require('vscode');
import * as Utils from '../models/utils'; import { Utils } from '../models/utils';
// Status bar element for each file in the editor // Status bar element for each file in the editor
class FileStatusBar { class FileStatusBar {

View File

View File

@@ -0,0 +1,3 @@
src/**
tsconfig.json
npm-shrinkwrap.json

View File

@@ -0,0 +1,348 @@
{
"name": "account-provider-azure",
"version": "0.0.1",
"dependencies": {
"@types/node": {
"version": "8.5.1",
"from": "@types/node@>=8.0.47 <9.0.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.5.1.tgz"
},
"adal-node": {
"version": "0.1.25",
"from": "adal-node@0.1.25",
"resolved": "https://registry.npmjs.org/adal-node/-/adal-node-0.1.25.tgz"
},
"ansi-regex": {
"version": "2.1.1",
"from": "ansi-regex@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
},
"ansi-styles": {
"version": "2.2.1",
"from": "ansi-styles@>=2.2.1 <3.0.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
},
"asn1": {
"version": "0.1.11",
"from": "asn1@0.1.11",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz"
},
"assert-plus": {
"version": "0.1.5",
"from": "assert-plus@>=0.1.5 <0.2.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz"
},
"async": {
"version": "2.6.0",
"from": "async@>=0.6.0",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz"
},
"aws-sign2": {
"version": "0.5.0",
"from": "aws-sign2@>=0.5.0 <0.6.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz"
},
"base64url": {
"version": "2.0.0",
"from": "base64url@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz"
},
"bl": {
"version": "1.0.3",
"from": "bl@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz"
},
"bluebird": {
"version": "2.11.0",
"from": "bluebird@>=2.9.30 <3.0.0",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz"
},
"boom": {
"version": "2.10.1",
"from": "boom@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
},
"buffer-equal-constant-time": {
"version": "1.0.1",
"from": "buffer-equal-constant-time@1.0.1",
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz"
},
"caseless": {
"version": "0.11.0",
"from": "caseless@>=0.11.0 <0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz"
},
"chalk": {
"version": "1.1.3",
"from": "chalk@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
},
"combined-stream": {
"version": "1.0.5",
"from": "combined-stream@>=1.0.1 <1.1.0",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"
},
"commander": {
"version": "2.12.2",
"from": "commander@>=2.8.1 <3.0.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz"
},
"core-util-is": {
"version": "1.0.2",
"from": "core-util-is@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
},
"cryptiles": {
"version": "2.0.5",
"from": "cryptiles@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz"
},
"ctype": {
"version": "0.5.3",
"from": "ctype@0.5.3",
"resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz"
},
"date-utils": {
"version": "1.2.21",
"from": "date-utils@*",
"resolved": "https://registry.npmjs.org/date-utils/-/date-utils-1.2.21.tgz"
},
"delayed-stream": {
"version": "1.0.0",
"from": "delayed-stream@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
},
"ecdsa-sig-formatter": {
"version": "1.0.9",
"from": "ecdsa-sig-formatter@1.0.9",
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz"
},
"escape-string-regexp": {
"version": "1.0.5",
"from": "escape-string-regexp@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
},
"extend": {
"version": "3.0.1",
"from": "extend@>=3.0.0 <3.1.0",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz"
},
"forever-agent": {
"version": "0.6.1",
"from": "forever-agent@>=0.6.0 <0.7.0",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
},
"form-data": {
"version": "1.0.1",
"from": "form-data@>=1.0.0-rc1 <1.1.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz"
},
"generate-function": {
"version": "2.0.0",
"from": "generate-function@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz"
},
"generate-object-property": {
"version": "1.2.0",
"from": "generate-object-property@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz"
},
"har-validator": {
"version": "1.8.0",
"from": "har-validator@>=1.6.1 <2.0.0",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz"
},
"has-ansi": {
"version": "2.0.0",
"from": "has-ansi@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"
},
"hawk": {
"version": "3.1.3",
"from": "hawk@>=3.1.0 <3.2.0",
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz"
},
"hoek": {
"version": "2.16.3",
"from": "hoek@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
},
"http-signature": {
"version": "0.11.0",
"from": "http-signature@>=0.11.0 <0.12.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz"
},
"inherits": {
"version": "2.0.3",
"from": "inherits@>=2.0.1 <2.1.0",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
},
"is-my-json-valid": {
"version": "2.17.1",
"from": "is-my-json-valid@>=2.12.0 <3.0.0",
"resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz"
},
"is-property": {
"version": "1.0.2",
"from": "is-property@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"
},
"isarray": {
"version": "1.0.0",
"from": "isarray@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
},
"isstream": {
"version": "0.1.2",
"from": "isstream@>=0.1.1 <0.2.0",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
},
"json-stringify-safe": {
"version": "5.0.1",
"from": "json-stringify-safe@>=5.0.0 <5.1.0",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
},
"jsonpointer": {
"version": "4.0.1",
"from": "jsonpointer@>=4.0.0 <5.0.0",
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz"
},
"jwa": {
"version": "1.1.5",
"from": "jwa@>=1.1.4 <2.0.0",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz"
},
"jws": {
"version": "3.1.4",
"from": "jws@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz"
},
"lodash": {
"version": "4.17.4",
"from": "lodash@>=4.14.0 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
},
"mime-db": {
"version": "1.30.0",
"from": "mime-db@>=1.30.0 <1.31.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz"
},
"mime-types": {
"version": "2.1.17",
"from": "mime-types@>=2.1.2 <2.2.0",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz"
},
"oauth-sign": {
"version": "0.8.2",
"from": "oauth-sign@>=0.8.0 <0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz"
},
"process-nextick-args": {
"version": "1.0.7",
"from": "process-nextick-args@>=1.0.6 <1.1.0",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"
},
"punycode": {
"version": "1.4.1",
"from": "punycode@>=1.4.1 <2.0.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
},
"qs": {
"version": "5.1.0",
"from": "qs@>=5.1.0 <5.2.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz"
},
"readable-stream": {
"version": "2.0.6",
"from": "readable-stream@>=2.0.5 <2.1.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz"
},
"request": {
"version": "2.63.0",
"from": "request@2.63.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.63.0.tgz",
"dependencies": {
"node-uuid": {
"version": "1.4.8",
"from": "node-uuid@>=1.4.0 <1.5.0",
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz"
}
}
},
"safe-buffer": {
"version": "5.1.1",
"from": "safe-buffer@>=5.0.1 <6.0.0",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
},
"sntp": {
"version": "1.0.9",
"from": "sntp@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
},
"string_decoder": {
"version": "0.10.31",
"from": "string_decoder@>=0.10.0 <0.11.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
},
"stringstream": {
"version": "0.0.5",
"from": "stringstream@>=0.0.4 <0.1.0",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz"
},
"strip-ansi": {
"version": "3.0.1",
"from": "strip-ansi@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
},
"supports-color": {
"version": "2.0.0",
"from": "supports-color@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
},
"tough-cookie": {
"version": "2.3.3",
"from": "tough-cookie@>=0.12.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz"
},
"tunnel-agent": {
"version": "0.4.3",
"from": "tunnel-agent@>=0.4.0 <0.5.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz"
},
"underscore": {
"version": "1.8.3",
"from": "underscore@>=1.3.1",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz"
},
"util-deprecate": {
"version": "1.0.2",
"from": "util-deprecate@>=1.0.1 <1.1.0",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
},
"uuid": {
"version": "3.1.0",
"from": "uuid@>=3.1.0 <4.0.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz"
},
"vscode-nls": {
"version": "2.0.2",
"from": "vscode-nls@2.0.2",
"resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-2.0.2.tgz"
},
"xmldom": {
"version": "0.1.27",
"from": "xmldom@>=0.1.0",
"resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz"
},
"xpath.js": {
"version": "1.0.7",
"from": "xpath.js@>=1.0.5 <1.1.0",
"resolved": "https://registry.npmjs.org/xpath.js/-/xpath.js-1.0.7.tgz"
},
"xtend": {
"version": "4.0.1",
"from": "xtend@>=4.0.0 <5.0.0",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
}
}
}

View File

@@ -0,0 +1,55 @@
{
"name": "account-provider-azure",
"version": "0.0.1",
"publisher": "Microsoft",
"engines": { "vscode": "*" },
"main": "./out/main",
"activationEvents": [ "*" ],
"scripts": {
"compile": "gulp compile-extension:account-provider-azure"
},
"dependencies": {
"adal-node": "0.1.25",
"request": "2.63.0",
"vscode-nls": "2.0.2"
},
"devDependencies": {
"@types/node": "^8.0.24"
},
"contributes": {
"commands": [
{
"command": "extension.clearTokenCache",
"title": "%extension.clearTokenCache%",
"category": "Azure Accounts"
}
],
"configuration": {
"type": "object",
"title": "Azure Account Configuration",
"properties": {
"accounts.azure.enablePublicCloud": {
"type": "boolean",
"default": true,
"description": "%config.enablePublicCloudDescription%"
}
}
},
"account-type": [
{
"id": "microsoft",
"icon": {
"light": "./out/account-provider/media/microsoft_account_light.svg",
"dark": "./out/account-provider/media/microsoft_account_dark.svg"
}
},
{
"id": "work_school",
"icon": {
"light": "./out/account-provider/media/work_school_account_light.svg",
"dark": "./out/account-provider/media/work_school_account_dark.svg"
}
}
]
}
}

View File

@@ -0,0 +1,7 @@
{
"extension.clearTokenCache": "Clear Azure Account Token Cache",
"config.enablePublicCloudDescription": "Should Azure public cloud integration be enabled",
"config.enableUsGovCloudDescription": "Should US Government Azure cloud (Fairfax) integration be enabled",
"config.enableChinaCloudDescription": "Should Azure China integration be enabled",
"config.enableGermanyCloudDescription": "Should Azure Germany integration be enabled"
}

View File

@@ -5,16 +5,18 @@
'use strict'; 'use strict';
import * as constants from '../constants';
import * as data from 'data'; import * as data from 'data';
import * as events from 'events'; import * as events from 'events';
import * as nls from 'vscode-nls';
import * as path from 'path'; import * as path from 'path';
import * as vscode from 'vscode'; import * as vscode from 'vscode';
import CredentialServiceTokenCache from './tokenCache'; import CredentialServiceTokenCache from './tokenCache';
import providerSettings from './providerSettings'; import providerSettings from './providerSettings';
import { AzureAccountProvider } from './azureAccountProvider'; import { AzureAccountProvider } from './azureAccountProvider';
import { AzureAccountProviderMetadata, ProviderSettings } from './interfaces'; import { AzureAccountProviderMetadata, ProviderSettings } from './interfaces';
import * as nls from 'vscode-nls';
const localize = nls.loadMessageBundle(); let localize = nls.loadMessageBundle();
export class AzureAccountProviderService implements vscode.Disposable { export class AzureAccountProviderService implements vscode.Disposable {
// CONSTANTS /////////////////////////////////////////////////////////////// // CONSTANTS ///////////////////////////////////////////////////////////////
@@ -77,11 +79,11 @@ export class AzureAccountProviderService implements vscode.Disposable {
.then( .then(
() => { () => {
let message = localize('clearTokenCacheSuccess', 'Token cache successfully cleared'); let message = localize('clearTokenCacheSuccess', 'Token cache successfully cleared');
vscode.window.showInformationMessage(`mssql: ${message}`); vscode.window.showInformationMessage(`${constants.extensionName}: ${message}`);
}, },
err => { err => {
let message = localize('clearTokenCacheFailure', 'Failed to clear token cache'); let message = localize('clearTokenCacheFailure', 'Failed to clear token cache');
vscode.window.showErrorMessage(`mssql: ${message}: ${err}`); vscode.window.showErrorMessage(`${constants.extensionName}: ${message}: ${err}`);
}); });
} }

View File

@@ -32,6 +32,7 @@ const publicAzureSettings: ProviderSettings = {
} }
}; };
/* Leaving for reference
const usGovAzureSettings: ProviderSettings = { const usGovAzureSettings: ProviderSettings = {
configKey: 'enableUsGovCloud', configKey: 'enableUsGovCloud',
metadata: { metadata: {
@@ -97,6 +98,7 @@ const germanyAzureSettings: ProviderSettings = {
} }
} }
}; };
*/
// TODO: Enable China, Germany, and US Gov clouds: (#3031) // TODO: Enable China, Germany, and US Gov clouds: (#3031)
export default <ProviderSettings[]>[publicAzureSettings, /*chinaAzureSettings, germanyAzureSettings, usGovAzureSettings*/]; export default <ProviderSettings[]>[publicAzureSettings, /*chinaAzureSettings, germanyAzureSettings, usGovAzureSettings*/];

View File

@@ -0,0 +1,12 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as nls from 'vscode-nls';
const localize = nls.loadMessageBundle();
export const extensionName = localize('extensionName', 'Azure Accounts');

View File

@@ -0,0 +1,35 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as fs from 'fs';
import * as path from 'path';
import * as vscode from 'vscode';
import { Utils } from 'extensions-modules';
import * as constants from './constants';
import { AzureAccountProviderService } from './account-provider/azureAccountProviderService';
// EXTENSION ACTIVATION ////////////////////////////////////////////////////
export function activate(context: vscode.ExtensionContext): void {
// Create the folder for storing the token caches
let storagePath = path.join(Utils.getDefaultLogLocation(), constants.extensionName);
try {
if (!fs.existsSync(storagePath)) {
fs.mkdirSync(storagePath);
console.log('Initialized Azure account extension storage.');
}
} catch (e) {
console.error(`Initialization of Azure account extension storage failed: ${e}`);
console.error('Azure accounts will not be available');
return;
}
// Create the provider service and activate
const accountProviderService = new AzureAccountProviderService(context, storagePath);
context.subscriptions.push(accountProviderService);
accountProviderService.activate();
}

View File

@@ -0,0 +1,7 @@
/*---------------------------------------------------------------------------------------------
* 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/vs/vscode.d.ts'/>
/// <reference path='../../../../src/sql/data.d.ts'/>

View File

@@ -0,0 +1,20 @@
{
"compileOnSave": true,
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"outDir": "./out",
"lib": [
"es6", "es2015.promise"
],
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"declaration": true,
"types": ["node"]
},
"exclude": [
"./node_modules"
]
}

View File

@@ -0,0 +1,4 @@
client/src/**
client/tsconfig.json
npm-shrinkwrap.json
test/**

View File

@@ -8,16 +8,12 @@ import vscode = require('vscode');
import data = require('data'); import data = require('data');
import { Constants } from '../models/constants'; import { Constants } from '../models/constants';
import { Serialization } from '../serialize/serialization'; import { Serialization } from '../serialize/serialization';
import { AzureResourceProvider } from '../resourceprovider/resourceprovider'; import { AzureResourceProvider } from '../resourceProvider/resourceProvider';
import { CredentialStore } from '../credentialstore/credentialstore'; import { CredentialStore } from '../credentialstore/credentialstore';
import {IExtensionConstants, Telemetry, SharedConstants, SqlToolsServiceClient, VscodeWrapper, Utils, PlatformInformation} from 'extensions-modules'; import { IExtensionConstants, Telemetry, Constants as SharedConstants, SqlToolsServiceClient, VscodeWrapper, Utils, PlatformInformation } from 'extensions-modules';
import { LanguageClient } from 'dataprotocol-client'; import { LanguageClient } from 'dataprotocol-client';
import * as fs from 'fs';
import * as path from 'path'; import * as path from 'path';
import { AzureAccountProviderService } from '../account-provider/azureAccountProviderService';
/** /**
* The main controller class that initializes the extension * The main controller class that initializes the extension
*/ */
@@ -38,7 +34,7 @@ export default class MainController implements vscode.Disposable {
this._context = context; this._context = context;
this._vscodeWrapper = vscodeWrapper || new VscodeWrapper(MainController._extensionConstants); this._vscodeWrapper = vscodeWrapper || new VscodeWrapper(MainController._extensionConstants);
SqlToolsServiceClient.constants = MainController._extensionConstants; SqlToolsServiceClient.constants = MainController._extensionConstants;
this._client = SqlToolsServiceClient.instance; this._client = SqlToolsServiceClient.getInstance(path.join(__dirname, '../config.json'));
this._credentialStore = new CredentialStore(this._client); this._credentialStore = new CredentialStore(this._client);
this._serialization = new Serialization(this._client); this._serialization = new Serialization(this._client);
} }
@@ -73,7 +69,7 @@ export default class MainController implements vscode.Disposable {
private createClient(executableFiles: string[]): Promise<LanguageClient> { private createClient(executableFiles: string[]): Promise<LanguageClient> {
return PlatformInformation.getCurrent(SqlToolsServiceClient.constants.getRuntimeId, SqlToolsServiceClient.constants.extensionName).then(platformInfo => { return PlatformInformation.getCurrent(SqlToolsServiceClient.constants.getRuntimeId, SqlToolsServiceClient.constants.extensionName).then(platformInfo => {
return SqlToolsServiceClient.instance.createClient(this._context, platformInfo.runtimeId, undefined, executableFiles); return SqlToolsServiceClient.getInstance(path.join(__dirname, '../config.json')).createClient(this._context, platformInfo.runtimeId, undefined, executableFiles);
}); });
} }
@@ -93,33 +89,11 @@ export default class MainController implements vscode.Disposable {
* Initializes the extension * Initializes the extension
*/ */
public initialize(): Promise<boolean> { public initialize(): Promise<boolean> {
const self = this;
// initialize language service client // initialize language service client
return new Promise<boolean>((resolve, reject) => { return new Promise<boolean>((resolve, reject) => {
let constants = new Constants();
// Create the folder for storing the token caches
let storagePath = path.join(Utils.getDefaultLogLocation(), constants.extensionName);
try {
if (!fs.existsSync(storagePath)) {
fs.mkdirSync(storagePath);
console.log('Initialized Azure account extension storage.');
}
} catch(e) {
console.error(`Initialization of Azure account extension storage failed: ${e}`);
console.error('Azure accounts will not be available');
return;
}
// Create the provider service and activate
const accountProviderService = new AzureAccountProviderService(this._context, storagePath);
this._context.subscriptions.push(accountProviderService);
accountProviderService.activate();
const self = this; const self = this;
SqlToolsServiceClient.instance.initialize(self._context).then(serverResult => { SqlToolsServiceClient.getInstance(path.join(__dirname, '../config.json')).initialize(self._context).then(serverResult => {
// Initialize telemetry // Initialize telemetry
Telemetry.initialize(self._context, new Constants()); Telemetry.initialize(self._context, new Constants());
@@ -130,7 +104,6 @@ export default class MainController implements vscode.Disposable {
); );
self.createSerializationClient().then(serializationClient => { self.createSerializationClient().then(serializationClient => {
let serialization = new Serialization(self._client, serializationClient);
// Serialization // Serialization
let serializationProvider: data.SerializationProvider = { let serializationProvider: data.SerializationProvider = {
handle: 0, handle: 0,
@@ -178,6 +151,8 @@ export default class MainController implements vscode.Disposable {
Utils.logDebug('Cannot find credentials executables. error: ' + error, MainController._extensionConstants.extensionConfigSectionName); Utils.logDebug('Cannot find credentials executables. error: ' + error, MainController._extensionConstants.extensionConfigSectionName);
}); });
Utils.logDebug(SharedConstants.extensionActivated, MainController._extensionConstants.extensionConfigSectionName); Utils.logDebug(SharedConstants.extensionActivated, MainController._extensionConstants.extensionConfigSectionName);
self._initialized = true; self._initialized = true;
resolve(true); resolve(true);

View File

@@ -8,6 +8,7 @@ import * as Contracts from '../models/contracts';
import { ICredentialStore } from './icredentialstore'; import { ICredentialStore } from './icredentialstore';
import { SqlToolsServiceClient, Utils } from 'extensions-modules'; import { SqlToolsServiceClient, Utils } from 'extensions-modules';
import { LanguageClient } from 'dataprotocol-client'; import { LanguageClient } from 'dataprotocol-client';
import * as path from 'path';
/** /**
* Implements a credential storage for Windows, Mac (darwin), or Linux. * Implements a credential storage for Windows, Mac (darwin), or Linux.
@@ -20,7 +21,7 @@ export class CredentialStore implements ICredentialStore {
constructor(private _client?: SqlToolsServiceClient) { constructor(private _client?: SqlToolsServiceClient) {
if (!this._client) { if (!this._client) {
this._client = SqlToolsServiceClient.instance; this._client = SqlToolsServiceClient.getInstance(path.join(__dirname, '../config.json'));
} }
} }

View File

@@ -7,7 +7,7 @@
import vscode = require('vscode'); import vscode = require('vscode');
import MainController from './controllers/mainController'; import MainController from './controllers/mainController';
let controller: MainController = undefined; export let controller: MainController;
export function activate(context: vscode.ExtensionContext) { export function activate(context: vscode.ExtensionContext) {
controller = new MainController(context); controller = new MainController(context);
@@ -21,10 +21,3 @@ export function deactivate(): void {
controller.deactivate(); controller.deactivate();
} }
} }
/**
* Exposed for testing purposes
*/
export function getController(): MainController {
return controller;
}

View File

@@ -11,157 +11,13 @@ export class Constants implements IExtensionConstants {
public readonly languageId = 'sql'; public readonly languageId = 'sql';
public readonly extensionName = 'mssql'; public readonly extensionName = 'mssql';
public readonly extensionConfigSectionName = 'mssql'; public readonly extensionConfigSectionName = 'mssql';
public readonly connectionApplicationName = 'vscode-mssql';
public readonly outputChannelName = 'MSSQL'; public readonly outputChannelName = 'MSSQL';
public readonly connectionConfigFilename = 'settings.json';
public readonly connectionsArrayName = 'mssql.connections';
public readonly cmdRunQuery = 'extension.runQuery';
public readonly cmdCancelQuery = 'extension.cancelQuery';
public readonly cmdConnect = 'extension.connect';
public readonly cmdDisconnect = 'extension.disconnect';
public readonly cmdChooseDatabase = 'extension.chooseDatabase';
public readonly cmdShowReleaseNotes = 'extension.showReleaseNotes';
public readonly cmdShowGettingStarted = 'extension.showGettingStarted';
public readonly cmdNewQuery = 'extension.newQuery';
public readonly cmdManageConnectionProfiles = 'extension.manageProfiles';
public readonly sqlDbPrefix = '.database.windows.net';
public readonly defaultConnectionTimeout = 15;
public readonly azureSqlDbConnectionTimeout = 30;
public readonly azureDatabase = 'Azure';
public readonly defaultPortNumber = 1433;
public readonly sqlAuthentication = 'SqlLogin';
public readonly defaultDatabase = 'master';
public readonly errorPasswordExpired = 18487;
public readonly errorPasswordNeedsReset = 18488;
public readonly maxDisplayedStatusTextLength = 50;
public readonly outputContentTypeRoot = 'root';
public readonly outputContentTypeMessages = 'messages';
public readonly outputContentTypeResultsetMeta = 'resultsetsMeta';
public readonly outputContentTypeColumns = 'columns';
public readonly outputContentTypeRows = 'rows';
public readonly outputContentTypeConfig = 'config';
public readonly outputContentTypeSaveResults = 'saveResults';
public readonly outputContentTypeOpenLink = 'openLink';
public readonly outputContentTypeCopy = 'copyResults';
public readonly outputContentTypeEditorSelection = 'setEditorSelection';
public readonly outputContentTypeShowError = 'showError';
public readonly outputContentTypeShowWarning = 'showWarning';
public readonly outputServiceLocalhost = 'http://localhost:';
public readonly msgContentProviderSqlOutputHtml = 'dist/html/sqlOutput.ejs';
public readonly contentProviderMinFile = 'dist/js/app.min.js';
public readonly configLogDebugInfo = 'logDebugInfo';
public readonly providerId = 'MSSQL'; public readonly providerId = 'MSSQL';
public readonly installFolderName = 'sqltoolsservice'; public readonly installFolderName = 'sqltoolsservice';
public readonly telemetryExtensionName = 'carbon-mssql'; public readonly telemetryExtensionName = 'carbon-mssql';
// localizable strings // localizable strings
public readonly configMyConnectionsNoServerName = 'Missing server name in user preferences connection: ';
public readonly msgLocalWebserviceStaticContent = 'LocalWebService: added static html content path: ';
public readonly msgLocalWebserviceStarted = 'LocalWebService listening on port ';
public readonly msgRunQueryAllBatchesExecuted = 'runQuery: all batches executed';
public readonly msgStartedExecute = 'Started query execution for document "{0}"';
public readonly msgFinishedExecute = 'Finished query execution for document "{0}"';
public readonly msgRunQueryError = 'runQuery: error: ';
public readonly msgRunQueryExecutingBatch = 'runQuery: executeBatch called with SQL: ';
public readonly msgRunQueryAddBatchResultsets = 'runQuery: adding resultsets for batch: ';
public readonly msgRunQueryAddBatchError = 'runQuery: adding error message for batch: ';
public readonly msgRunQueryConnectionActive = 'runQuery: active connection is connected, using it to run query';
public readonly msgRunQueryConnectionDisconnected = 'runQuery: active connection is disconnected, reconnecting';
public readonly msgRunQueryNoConnection = 'runQuery: no active connection - prompting for user';
public readonly msgRunQueryInProgress = 'A query is already running for this editor session. Please cancel this query or wait for its completion.';
public readonly runQueryBatchStartMessage = 'Started executing query at ';
public readonly runQueryBatchStartLine = 'Line {0}';
public readonly msgCancelQueryFailed = 'Canceling the query failed: {0}';
public readonly msgCancelQueryNotRunning = 'Cannot cancel query as no query is running.';
public readonly msgCancelQuerySuccess = 'Successfully canceled the query.';
public readonly msgContentProviderOnContentUpdated = 'Content provider: onContentUpdated called';
public readonly msgContentProviderAssociationFailure = 'Content provider: Unable to associate status view for current file';
public readonly msgContentProviderOnRootEndpoint = 'LocalWebService: Root end-point called';
public readonly msgContentProviderOnResultsEndpoint = 'LocalWebService: ResultsetsMeta endpoint called';
public readonly msgContentProviderOnMessagesEndpoint = 'LocalWebService: Messages end-point called';
public readonly msgContentProviderOnColumnsEndpoint = 'LocalWebService: Columns end-point called for index = ';
public readonly msgContentProviderOnRowsEndpoint = 'LocalWebService: Rows end-point called for index = ';
public readonly msgContentProviderOnClear = 'Content provider: clear called';
public readonly msgContentProviderOnUpdateContent = 'Content provider: updateContent called';
public readonly msgContentProviderProvideContent = 'Content provider: provideTextDocumentContent called: ';
public readonly msgChooseDatabaseNotConnected = 'No connection was found. Please connect to a server first.';
public readonly msgChooseDatabasePlaceholder = 'Choose a database from the list below';
public readonly msgConnectionError = 'Error {0}: {1}';
public readonly msgConnectionError2 = 'Failed to connect: {0}';
public readonly msgConnectionErrorPasswordExpired = 'Error {0}: {1} Please login as a different user and change the password using ALTER LOGIN.';
public readonly connectionErrorChannelName = 'Connection Errors';
public readonly msgPromptCancelConnect = 'Server connection in progress. Do you want to cancel?';
public readonly msgPromptClearRecentConnections = 'Confirm to clear recent connections list';
public readonly msgOpenSqlFile = 'To use this command, Open a .sql file -or- ' +
'Change editor language to "SQL" -or- ' +
'Select T-SQL text in the active SQL editor.';
public readonly recentConnectionsPlaceholder = 'Choose a connection profile from the list below';
public readonly msgNoConnectionsInSettings = 'To use this command, add connection profile to User Settings.';
public readonly labelOpenGlobalSettings = 'Open Global Settings';
public readonly labelOpenWorkspaceSettings = 'Open Workspace Settings';
public readonly CreateProfileFromConnectionsListLabel = 'Create Connection Profile';
public readonly CreateProfileLabel = 'Create';
public readonly ClearRecentlyUsedLabel = 'Clear Recent Connections List';
public readonly EditProfilesLabel = 'Edit';
public readonly RemoveProfileLabel = 'Remove';
public readonly ManageProfilesPrompt = 'Manage Connection Profiles';
public readonly SampleServerName = '{{put-server-name-here}}';
public readonly serverPrompt = 'Server name';
public readonly serverPlaceholder = 'hostname\\instance or <server>.database.windows.net';
public readonly databasePrompt = 'Database name';
public readonly databasePlaceholder = '[Optional] Database to connect (press Enter to connect to <default> database)';
public readonly databaseDefaultValue = 'master';
public readonly authTypePrompt = 'Authentication Type';
public readonly authTypeIntegrated = 'Integrated';
public readonly authTypeSql = 'SQL Login';
public readonly authTypeAdUniversal = 'Active Directory Universal';
public readonly usernamePrompt = 'User name';
public readonly usernamePlaceholder = 'User name (SQL Login)';
public readonly passwordPrompt = 'Password';
public readonly passwordPlaceholder = 'Password (SQL Login)';
public readonly msgSavePassword = 'Save Password? If \'No\', password will be required each time you connect';
public readonly profileNamePrompt = 'Profile Name';
public readonly profileNamePlaceholder = '[Optional] Enter a name for this profile';
public readonly filepathPrompt = 'File path';
public readonly filepathPlaceholder = 'File name';
public readonly filepathMessage = 'File name';
public readonly overwritePrompt = 'A file with this name already exists. Do you want to replace the existing file?';
public readonly overwritePlaceholder = 'A file with this name already exists';
public readonly msgSaveResultInProgress = 'A save request is already executing. Please wait for its completion.';
public readonly msgCannotOpenContent = 'Error occurred opening content in editor.';
public readonly msgSaveStarted = 'Started saving results to ';
public readonly msgSaveFailed = 'Failed to save results. ';
public readonly msgSaveSucceeded = 'Successfully saved results to ';
public readonly msgSelectProfile = 'Select connection profile';
public readonly msgSelectProfileToRemove = 'Select profile to remove';
public readonly confirmRemoveProfilePrompt = 'Confirm to remove this profile.';
public readonly msgNoProfilesSaved = 'No connection profile to remove.';
public readonly msgProfileRemoved = 'Profile removed successfully';
public readonly msgProfileCreated = 'Profile created successfully';
public readonly msgProfileCreatedAndConnected = 'Profile created and connected';
public readonly msgClearedRecentConnections = 'Recent connections list cleared';
public readonly msgSelectionIsRequired = 'Selection is required.';
public readonly msgIsRequired = ' is required.';
public readonly msgRetry = 'Retry';
public readonly msgError = 'Error: ';
public readonly msgYes = 'Yes';
public readonly msgNo = 'No';
public readonly defaultDatabaseLabel = '<default>';
public readonly notConnectedLabel = 'Disconnected';
public readonly notConnectedTooltip = 'Click to connect to a database';
public readonly connectingLabel = 'Connecting';
public readonly connectingTooltip = 'Connecting to: ';
public readonly connectedLabel = 'Connected.';
public readonly connectErrorLabel = 'Connection error';
public readonly connectErrorTooltip = 'Error connecting to: ';
public readonly connectErrorCode = 'Errorcode: ';
public readonly connectErrorMessage = 'ErrorMessage: ';
public readonly executeQueryLabel = 'Executing query ';
public readonly cancelingQueryLabel = 'Canceling query ';
public readonly updatingIntelliSenseLabel = 'Updating IntelliSense...';
public readonly unfoundResult = 'Data was disposed when text editor was closed; to view data please reexecute query.';
public readonly serviceCompatibleVersion = '1.0.0'; public readonly serviceCompatibleVersion = '1.0.0';
public readonly serviceNotCompatibleError = 'Client is not compatible with the service layer';
public readonly serviceInstallingTo = 'Installing SQL tools service to'; public readonly serviceInstallingTo = 'Installing SQL tools service to';
public readonly serviceInitializing = 'Initializing SQL tools service for the mssql extension.'; public readonly serviceInitializing = 'Initializing SQL tools service for the mssql extension.';
public readonly commandsNotAvailableWhileInstallingTheService = 'Note: mssql commands will be available after installing the service.'; public readonly commandsNotAvailableWhileInstallingTheService = 'Note: mssql commands will be available after installing the service.';
@@ -169,40 +25,10 @@ export class Constants implements IExtensionConstants {
public readonly serviceInstallationFailed = 'Failed to install Sql Tools Service'; public readonly serviceInstallationFailed = 'Failed to install Sql Tools Service';
public readonly serviceLoadingFailed = 'Failed to load Sql Tools Service'; public readonly serviceLoadingFailed = 'Failed to load Sql Tools Service';
public readonly invalidServiceFilePath = 'Invalid file path for Sql Tools Service'; public readonly invalidServiceFilePath = 'Invalid file path for Sql Tools Service';
public readonly extensionNotInitializedError = 'Unable to execute the command while the extension is initializing. Please try again later.';
public readonly untitledScheme = 'untitled';
public readonly untitledSaveTimeThreshold = 10.0;
public readonly renamedOpenTimeThreshold = 10.0;
public readonly msgChangeLanguageMode = 'To use this command, you must set the language to \"SQL\". Confirm to change language mode.';
public readonly timeToWaitForLanguageModeChange = 10000.0;
public readonly msgChangedDatabaseContext = 'Changed database context to \"{0}\" for document \"{1}\"';
public readonly msgPromptRetryCreateProfile = 'Error: Unable to connect using the connection information provided. Retry profile creation?';
public readonly retryLabel = 'Retry';
public readonly msgConnecting = 'Connecting to server \"{0}\" on document \"{1}\".';
public readonly msgConnectedServerInfo = 'Connected to server \"{0}\" on document \"{1}\". Server information: {2}';
public readonly msgConnectionFailed = 'Error connecting to server \"{0}\". Details: {1}';
public readonly msgChangingDatabase = 'Changing database context to \"{0}\" on server \"{1}\" on document \"{2}\".';
public readonly msgChangedDatabase = 'Changed database context to \"{0}\" on server \"{1}\" on document \"{2}\".';
public readonly msgDisconnected = 'Disconnected on document \"{0}\"';
public readonly msgErrorReadingConfigFile = 'Error: Unable to load connection profiles from [{0}]. Check if the file is formatted correctly.';
public readonly msgErrorOpeningConfigFile = 'Error: Unable to open connection profile settings file.';
public readonly extConfigResultKeys = ['shortcuts', 'messagesDefaultOpen'];
public readonly extConfigResultFontFamily = 'resultsFontFamily';
public readonly extConfigResultFontSize = 'resultsFontSize';
public readonly titleResultsPane = 'Results: {0}';
public readonly macOpenSslErrorMessage = `OpenSSL version >=1.0.1 is required to connect.`;
public readonly macOpenSslHelpButton = 'Help';
public readonly macOpenSslHelpLink = 'https://github.com/Microsoft/vscode-mssql/wiki/OpenSSL-Configuration';
public readonly serviceName = 'SQLToolsService'; public readonly serviceName = 'SQLToolsService';
public readonly serviceInitializingOutputChannelName = 'SqlToolsService Initialization'; public readonly serviceInitializingOutputChannelName = 'SqlToolsService Initialization';
public readonly gettingStartedGuideLink = 'https://aka.ms/mssql-getting-started';
public readonly serviceCrashMessage = 'SQL Tools Service component exited unexpectedly. Please restart SQL Operations Studio.'; public readonly serviceCrashMessage = 'SQL Tools Service component exited unexpectedly. Please restart SQL Operations Studio.';
public readonly serviceCrashLink = 'https://github.com/Microsoft/vscode-mssql/wiki/SqlToolsService-Known-Issues'; public readonly serviceCrashLink = 'https://github.com/Microsoft/vscode-mssql/wiki/SqlToolsService-Known-Issues';
public readonly gettingDefinitionMessage = 'Getting definition ...';
public readonly definitionRequestedStatus = 'DefinitionRequested';
public readonly definitionRequestCompletedStatus = 'DefinitionRequestCompleted';
public readonly updatingIntelliSenseStatus = 'updatingIntelliSense';
public readonly intelliSenseUpdatedStatus = 'intelliSenseUpdated';
/** /**
* Returns a supported .NET Core Runtime ID (RID) for the current platform. The list of Runtime IDs * Returns a supported .NET Core Runtime ID (RID) for the current platform. The list of Runtime IDs

View File

@@ -16,8 +16,6 @@ import * as data from 'data';
* @param {boolean} appendToFile Whether we should append or overwrite the file in savePath * @param {boolean} appendToFile Whether we should append or overwrite the file in savePath
*/ */
export class SaveResultsInfo { export class SaveResultsInfo {
constructor(public saveFormat: string, public savePath: string, public results: string, constructor(public saveFormat: string, public savePath: string, public results: string,
public appendToFile: boolean) { public appendToFile: boolean) {
} }
@@ -101,4 +99,3 @@ export interface HandleFirewallRuleResponse {
result: boolean; result: boolean;
ipAddress: string; ipAddress: string;
} }

View File

@@ -8,6 +8,7 @@ import * as Contracts from '../models/contracts';
import { SqlToolsServiceClient } from 'extensions-modules'; import { SqlToolsServiceClient } from 'extensions-modules';
import { LanguageClient } from 'dataprotocol-client'; import { LanguageClient } from 'dataprotocol-client';
import * as data from 'data'; import * as data from 'data';
import * as path from 'path';
/** /**
@@ -21,7 +22,7 @@ export class AzureResourceProvider implements data.ResourceProvider {
constructor(private _client?: SqlToolsServiceClient, langClient?: LanguageClient) { constructor(private _client?: SqlToolsServiceClient, langClient?: LanguageClient) {
if (!this._client) { if (!this._client) {
this._client = SqlToolsServiceClient.instance; this._client = SqlToolsServiceClient.getInstance(path.join(__dirname, '../config.json'));
} }
this.languageClient = langClient; this.languageClient = langClient;
} }

View File

@@ -4,7 +4,6 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
'use strict'; 'use strict';
import { SaveResultsInfo } from '../models/contracts';
import * as data from 'data'; import * as data from 'data';
/** /**

View File

@@ -9,6 +9,7 @@ import { ISerialization } from './iserialization';
import { SqlToolsServiceClient } from 'extensions-modules'; import { SqlToolsServiceClient } from 'extensions-modules';
import * as data from 'data'; import * as data from 'data';
import { LanguageClient } from 'dataprotocol-client'; import { LanguageClient } from 'dataprotocol-client';
import * as path from 'path';
/** /**
* Implements serializer for query results * Implements serializer for query results
@@ -17,7 +18,7 @@ export class Serialization implements ISerialization {
constructor(private _client?: SqlToolsServiceClient, private _languageClient?: LanguageClient) { constructor(private _client?: SqlToolsServiceClient, private _languageClient?: LanguageClient) {
if (!this._client) { if (!this._client) {
this._client = SqlToolsServiceClient.instance; this._client = SqlToolsServiceClient.getInstance(path.join(__dirname, '../config.json'));
} }
} }

View File

@@ -5,3 +5,4 @@
/// <reference path='../../../../../src/vs/vscode.d.ts'/> /// <reference path='../../../../../src/vs/vscode.d.ts'/>
/// <reference path='../../../../../src/sql/data.d.ts'/> /// <reference path='../../../../../src/sql/data.d.ts'/>
/// <reference types='@types/node'/>

File diff suppressed because it is too large Load Diff

View File

@@ -9,13 +9,14 @@
"activationEvents": [ "activationEvents": [
"*" "*"
], ],
"main": "./client/out/mssqlMain", "main": "./client/out/main",
"extensionDependencies": [ "extensionDependencies": [
"vscode.sql" "vscode.sql"
], ],
"scripts": { "scripts": {
"compile": "gulp compile-extension:mssql-client", "compile": "gulp compile-extension:mssql-client",
"postinstall": "node ./node_modules/vscode/bin/install" "postinstall": "node ./node_modules/vscode/bin/install",
"update-grammar": "node ../../build/npm/update-grammar.js Microsoft/vscode-mssql syntaxes/SQL.plist ./syntaxes/sql.tmLanguage.json"
}, },
"contributes": { "contributes": {
"languages": [ "languages": [
@@ -26,15 +27,7 @@
], ],
"aliases": [ "aliases": [
"SQL" "SQL"
], ]
"configuration": "./syntaxes/sql.configuration.json"
}
],
"grammars": [
{
"language": "sql",
"scopeName": "source.sql",
"path": "./syntaxes/SQL.plist"
} }
], ],
"outputChannels": [ "outputChannels": [
@@ -46,38 +39,10 @@
"path": "./snippets/mssql.json" "path": "./snippets/mssql.json"
} }
], ],
"commands": [
{
"command": "extension.clearTokenCache",
"title": "%extension.clearTokenCache%",
"category": "Azure Accounts"
}
],
"account-type": [
{
"id": "microsoft",
"icon": {
"light": "./out/account-provider/media/microsoft_account_light.svg",
"dark": "./out/account-provider/media/microsoft_account_dark.svg"
}
},
{
"id": "work_school",
"icon": {
"light": "./out/account-provider/media/work_school_account_light.svg",
"dark": "./out/account-provider/media/work_school_account_dark.svg"
}
}
],
"configuration": { "configuration": {
"type": "object", "type": "object",
"title": "MSSQL configuration", "title": "MSSQL configuration",
"properties": { "properties": {
"accounts.azure.enablePublicCloud": {
"type": "boolean",
"default": true,
"description": "%config.enablePublicCloudDescription%"
},
"mssql.query.displayBitAsNumber": { "mssql.query.displayBitAsNumber": {
"type": "boolean", "type": "boolean",
"default": true, "default": true,
@@ -227,18 +192,9 @@
} }
}, },
"dependencies": { "dependencies": {
"dataprotocol-client": "file:../../dataprotocol-node/client", "dataprotocol-client": "file:../../dataprotocol-node/client"
"extensions-modules": "file:../../extensions-modules",
"adal-node": "0.1.25",
"decompress": "^4.0.0",
"fs-extra-promise": "^1.0.1",
"opener": "1.4.3",
"request": "2.63.0",
"vscode-extension-telemetry": "^0.0.8",
"vscode-nls": "2.0.2"
}, },
"devDependencies": { "devDependencies": {
"vscode": "1.0.1", "vscode": "1.0.1"
"@types/node": "^8.0.24"
} }
} }

View File

@@ -1,7 +1,8 @@
{ {
"extension.clearTokenCache": "Clear Azure Account Token Cache", "json.schemas.desc": "Associate schemas to JSON files in the current project",
"config.enablePublicCloudDescription": "Should Azure public cloud integration be enabled", "json.schemas.url.desc": "A URL to a schema or a relative path to a schema in the current directory",
"config.enableUsGovCloudDescription": "Should US Government Azure cloud (Fairfax) integration be enabled", "json.schemas.fileMatch.desc": "An array of file patterns to match against when resolving JSON files to schemas.",
"config.enableChinaCloudDescription": "Should Azure China integration be enabled", "json.schemas.fileMatch.item.desc": "A file pattern that can contain '*' to match against when resolving JSON files to schemas.",
"config.enableGermanyCloudDescription": "Should Azure Germany integration be enabled" "json.schemas.schema.desc": "The schema definition for the given URL. The schema only needs to be provided to avoid accesses to the schema URL.",
"json.format.enable.desc": "Enable/disable default JSON formatter (requires restart)"
} }

View File

@@ -208,10 +208,10 @@
"body": [ "body": [
"-- Get a list of tables and views in the current database", "-- Get a list of tables and views in the current database",
"SELECT table_catalog [database], table_schema [schema], table_name name, table_type type", "SELECT table_catalog [database], table_schema [schema], table_name name, table_type type",
"FROM INFORMATION_SCHEMA.TABLES", "FROM information_schema.tables",
"GO" "GO"
], ],
"description": "List tables and views in the current database" "description": "List tables and vies in the current database"
}, },
"List databases": { "List databases": {
@@ -229,15 +229,15 @@
"body": [ "body": [
"-- List columns in all tables whose name is like '${1:TableName}'", "-- List columns in all tables whose name is like '${1:TableName}'",
"SELECT ", "SELECT ",
"\tTableName = tbl.TABLE_SCHEMA + '.' + tbl.TABLE_NAME, ", "\tTableName = tbl.table_schema + '.' + tbl.table_name, ",
"\tColumnName = col.COLUMN_NAME, ", "\tColumnName = col.column_name, ",
"\tColumnDataType = col.DATA_TYPE", "\tColumnDataType = col.data_type",
"FROM INFORMATION_SCHEMA.TABLES tbl", "FROM information_schema.tables tbl",
"INNER JOIN INFORMATION_SCHEMA.COLUMNS col ", "INNER JOIN information_schema.columns col ",
"\tON col.TABLE_NAME = tbl.TABLE_NAME", "\tON col.table_name = tbl.table_name",
"\tAND col.TABLE_SCHEMA = tbl.TABLE_SCHEMA", "\tAND col.table_schema = tbl.table_schema",
"", "",
"WHERE tbl.TABLE_TYPE = 'BASE TABLE' and tbl.TABLE_NAME like '%${1:TableName}%'", "WHERE tbl.table_type = 'base table' and tbl.table_name like '%${1:TableName}%'",
"GO" "GO"
], ],
"description": "Lists all the columns and their types for tables matching a LIKE statement" "description": "Lists all the columns and their types for tables matching a LIKE statement"

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +0,0 @@
{
}

View File

@@ -1,11 +0,0 @@
{
"name": "vscode-extensions",
"version": "0.0.1",
"dependencies": {
"typescript": {
"version": "2.6.1",
"from": "typescript@2.6.1",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.1.tgz"
}
}
}

View File

@@ -3,7 +3,8 @@
"version": "0.0.1", "version": "0.0.1",
"description": "Dependencies shared by all extensions", "description": "Dependencies shared by all extensions",
"dependencies": { "dependencies": {
"typescript": "2.6.1" "typescript": "2.6.1",
"extensions-modules": "file:../extensions-modules"
}, },
"scripts": { "scripts": {
"postinstall": "node ./postinstall" "postinstall": "node ./postinstall"

File diff suppressed because one or more lines are too long

684
npm-shrinkwrap.json generated
View File

@@ -1,12 +1,7 @@
{ {
"name": "sqlops", "name": "sqlops",
"version": "0.24.0", "version": "0.24.1",
"dependencies": { "dependencies": {
"zone.js": {
"version": "0.8.11",
"from": "zone.js@>=0.8.4 <0.9.0",
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.11.tgz"
},
"@angular/animations": { "@angular/animations": {
"version": "4.1.3", "version": "4.1.3",
"from": "@angular/animations@>=4.1.3 <4.2.0", "from": "@angular/animations@>=4.1.3 <4.2.0",
@@ -62,20 +57,20 @@
"from": "agent-base@>=1.0.1 <1.1.0", "from": "agent-base@>=1.0.1 <1.1.0",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-1.0.2.tgz" "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-1.0.2.tgz"
}, },
"angular2-slickgrid": {
"version": "1.3.4",
"from": "git://github.com/Microsoft/angular2-slickgrid.git#1.3.5",
"resolved": "git://github.com/Microsoft/angular2-slickgrid.git#d122015f2f3e4023394a7e485079da62f20b8356"
},
"angular2-grid": { "angular2-grid": {
"version": "2.0.6", "version": "2.0.6",
"from": "angular2-grid@2.0.6", "from": "angular2-grid@2.0.6",
"resolved": "https://registry.npmjs.org/angular2-grid/-/angular2-grid-2.0.6.tgz" "resolved": "https://registry.npmjs.org/angular2-grid/-/angular2-grid-2.0.6.tgz"
}, },
"angular2-slickgrid": {
"version": "1.2.3",
"from": "git://github.com/Microsoft/angular2-slickgrid.git#1.3.5",
"resolved": "git://github.com/Microsoft/angular2-slickgrid.git#d122015f2f3e4023394a7e485079da62f20b8356"
},
"anymatch": { "anymatch": {
"version": "1.3.0", "version": "1.3.2",
"from": "anymatch@>=1.3.0 <2.0.0", "from": "anymatch@>=1.3.0 <2.0.0",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz" "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz"
}, },
"applicationinsights": { "applicationinsights": {
"version": "0.17.1", "version": "0.17.1",
@@ -88,19 +83,19 @@
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz" "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz"
}, },
"arr-flatten": { "arr-flatten": {
"version": "1.0.3", "version": "1.1.0",
"from": "arr-flatten@>=1.0.1 <2.0.0", "from": "arr-flatten@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz" "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"
}, },
"array-unique": { "array-unique": {
"version": "0.2.1", "version": "0.2.1",
"from": "array-unique@>=0.2.1 <0.3.0", "from": "array-unique@>=0.2.1 <0.3.0",
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz"
}, },
"arrify": { "asap": {
"version": "1.0.1", "version": "2.0.6",
"from": "arrify@>=1.0.0 <2.0.0", "from": "asap@>=2.0.3 <2.1.0",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"
}, },
"async-each": { "async-each": {
"version": "1.0.1", "version": "1.0.1",
@@ -108,25 +103,25 @@
"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz" "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz"
}, },
"balanced-match": { "balanced-match": {
"version": "0.4.2", "version": "1.0.0",
"from": "balanced-match@>=0.4.1 <0.5.0", "from": "balanced-match@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz" "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
}, },
"binary-extensions": { "binary-extensions": {
"version": "1.8.0", "version": "1.11.0",
"from": "binary-extensions@>=1.0.0 <2.0.0", "from": "binary-extensions@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz" "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz"
}, },
"bindings": { "bindings": {
"version": "1.2.1", "version": "1.3.0",
"from": "bindings@>=1.2.1 <2.0.0", "from": "bindings@>=1.2.1 <2.0.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz",
"optional": true "optional": true
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.7", "version": "1.1.8",
"from": "brace-expansion@>=1.1.7 <2.0.0", "from": "brace-expansion@>=1.1.7 <2.0.0",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz" "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"
}, },
"braces": { "braces": {
"version": "1.8.5", "version": "1.8.5",
@@ -138,35 +133,32 @@
"from": "buffer-crc32@>=0.2.3 <0.3.0", "from": "buffer-crc32@>=0.2.3 <0.3.0",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz"
}, },
"buffer-shims": {
"version": "1.0.0",
"from": "buffer-shims@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"
},
"caniuse-db": { "caniuse-db": {
"version": "1.0.30000676", "version": "1.0.30000783",
"from": "caniuse-db@>=1.0.30000161 <2.0.0", "from": "caniuse-db@>=1.0.30000161 <2.0.0",
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000676.tgz" "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000783.tgz"
}, },
"chart.js": { "chart.js": {
"version": "2.6.0", "version": "2.7.1",
"from": "chart.js@>=2.6.0 <3.0.0", "from": "chart.js@>=2.6.0 <3.0.0",
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.6.0.tgz" "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.7.1.tgz",
"dependencies": {
"moment": {
"version": "2.18.1",
"from": "moment@>=2.18.0 <2.19.0",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz"
}
}
}, },
"chartjs-color": { "chartjs-color": {
"version": "2.1.0", "version": "2.2.0",
"from": "chartjs-color@>=2.1.0 <3.0.0", "from": "chartjs-color@>=2.2.0 <2.3.0",
"resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.1.0.tgz" "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.2.0.tgz"
}, },
"chartjs-color-string": { "chartjs-color-string": {
"version": "0.4.0", "version": "0.5.0",
"from": "chartjs-color-string@>=0.4.0 <0.5.0", "from": "chartjs-color-string@>=0.5.0 <0.6.0",
"resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.4.0.tgz" "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.5.0.tgz"
},
"chokidar": {
"version": "1.6.1",
"from": "bpasero/chokidar#vscode",
"resolved": "git://github.com/bpasero/chokidar.git#4c167ce0c29dae1727518998ecad63a049433e35"
}, },
"color-convert": { "color-convert": {
"version": "0.5.3", "version": "0.5.3",
@@ -174,14 +166,9 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz" "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz"
}, },
"color-name": { "color-name": {
"version": "1.1.2",
"from": "color-name@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.2.tgz"
},
"comment-json": {
"version": "1.1.3", "version": "1.1.3",
"from": "comment-json@>=1.1.3 <2.0.0", "from": "color-name@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/comment-json/-/comment-json-1.1.3.tgz" "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
@@ -189,9 +176,9 @@
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
}, },
"core-js": { "core-js": {
"version": "2.4.1", "version": "2.5.3",
"from": "core-js@>=2.4.1 <3.0.0", "from": "core-js@>=2.4.1 <3.0.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz" "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz"
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
@@ -199,9 +186,9 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
}, },
"debug": { "debug": {
"version": "2.6.8", "version": "2.6.9",
"from": "debug@>=2.0.0 <3.0.0", "from": "debug@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz" "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
}, },
"emmet": { "emmet": {
"version": "1.3.2", "version": "1.3.2",
@@ -218,11 +205,6 @@
"from": "escape-string-regexp@>=1.0.2 <2.0.0", "from": "escape-string-regexp@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
}, },
"esprima": {
"version": "2.7.3",
"from": "esprima@>=2.7.0 <3.0.0",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz"
},
"expand-brackets": { "expand-brackets": {
"version": "0.1.5", "version": "0.1.5",
"from": "expand-brackets@>=0.1.4 <0.2.0", "from": "expand-brackets@>=0.1.4 <0.2.0",
@@ -269,9 +251,9 @@
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz" "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz"
}, },
"for-in": { "for-in": {
"version": "0.1.5", "version": "1.0.2",
"from": "for-in@>=0.1.5 <0.2.0", "from": "for-in@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.5.tgz" "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"
}, },
"for-own": { "for-own": {
"version": "0.1.5", "version": "0.1.5",
@@ -283,15 +265,14 @@
"from": "fs-extra@>=3.0.1 <4.0.0", "from": "fs-extra@>=3.0.1 <4.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz" "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz"
}, },
"fsevents": { "fs.realpath": {
"version": "0.3.8", "version": "1.0.0",
"from": "bpasero/fsevents#vscode", "from": "fs.realpath@>=1.0.0 <2.0.0",
"resolved": "git+https://github.com/bpasero/fsevents.git#fe2aaccaaffbd69a23374cf46a8c6bafe8e51b01", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
"optional": true
}, },
"gc-signals": { "gc-signals": {
"version": "0.0.1", "version": "0.0.1",
"from": "gc-signals@0.0.1", "from": "gc-signals@>=0.0.1 <0.0.2",
"resolved": "https://registry.npmjs.org/gc-signals/-/gc-signals-0.0.1.tgz" "resolved": "https://registry.npmjs.org/gc-signals/-/gc-signals-0.0.1.tgz"
}, },
"getmac": { "getmac": {
@@ -316,7 +297,7 @@
}, },
"html-query-plan": { "html-query-plan": {
"version": "1.0.0", "version": "1.0.0",
"from": "git://github.com/anthonydresser/html-query-plan.git#v2.2.5", "from": "git://github.com/anthonydresser/html-query-plan.git#2.2.5",
"resolved": "git://github.com/anthonydresser/html-query-plan.git#fbf8beac00b3870c0d3f4e95de979f7f1ec7af5d" "resolved": "git://github.com/anthonydresser/html-query-plan.git#fbf8beac00b3870c0d3f4e95de979f7f1ec7af5d"
}, },
"http-proxy-agent": { "http-proxy-agent": {
@@ -334,9 +315,14 @@
"from": "iconv-lite@0.4.15", "from": "iconv-lite@0.4.15",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz" "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz"
}, },
"inflight": {
"version": "1.0.6",
"from": "inflight@>=1.0.4 <2.0.0",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
},
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"from": "inherits@>=2.0.1 <3.0.0", "from": "inherits@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
}, },
"is-arrayish": { "is-arrayish": {
@@ -350,9 +336,9 @@
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz"
}, },
"is-buffer": { "is-buffer": {
"version": "1.1.5", "version": "1.1.6",
"from": "is-buffer@>=1.1.5 <2.0.0", "from": "is-buffer@>=1.1.5 <2.0.0",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz" "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
}, },
"is-dotfile": { "is-dotfile": {
"version": "1.0.3", "version": "1.0.3",
@@ -411,45 +397,43 @@
}, },
"jquery-ui": { "jquery-ui": {
"version": "1.12.1", "version": "1.12.1",
"from": "jquery-ui@>=1.12.1 <2.0.0", "from": "jquery-ui@>=1.8.0",
"resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.12.1.tgz" "resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.12.1.tgz"
}, },
"jquery.event.drag": {
"version": "2.2.2",
"from": "jquery.event.drag@2.2.2",
"resolved": "https://registry.npmjs.org/jquery.event.drag/-/jquery.event.drag-2.2.2.tgz"
},
"jschardet": { "jschardet": {
"version": "1.5.1", "version": "1.6.0",
"from": "jschardet@>=1.5.1 <2.0.0", "from": "jschardet@>=1.5.1 <2.0.0",
"resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz" "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.6.0.tgz"
},
"json-parser": {
"version": "1.1.5",
"from": "json-parser@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/json-parser/-/json-parser-1.1.5.tgz"
}, },
"jsonfile": { "jsonfile": {
"version": "3.0.0", "version": "3.0.1",
"from": "jsonfile@>=3.0.0 <4.0.0", "from": "jsonfile@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.0.tgz" "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz"
}, },
"keytar": { "keytar": {
"version": "4.0.5", "version": "4.1.0",
"from": "keytar@latest", "from": "keytar@>=4.0.5 <5.0.0",
"resolved": "https://registry.npmjs.org/keytar/-/keytar-4.0.5.tgz", "resolved": "https://registry.npmjs.org/keytar/-/keytar-4.1.0.tgz"
"dependencies": {
"nan": {
"version": "2.5.1",
"from": "nan@2.5.1",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz"
}
}
}, },
"kind-of": { "kind-of": {
"version": "3.0.4", "version": "3.2.2",
"from": "kind-of@>=3.0.2 <4.0.0", "from": "kind-of@>=3.0.2 <4.0.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.4.tgz" "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
},
"klaw": {
"version": "1.3.1",
"from": "klaw@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz"
},
"lodash.isinteger": {
"version": "4.0.4",
"from": "lodash.isinteger@>=4.0.4 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz"
},
"lodash.isundefined": {
"version": "3.0.1",
"from": "lodash.isundefined@>=3.0.1 <4.0.0",
"resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz"
}, },
"make-error": { "make-error": {
"version": "1.3.0", "version": "1.3.0",
@@ -461,20 +445,15 @@
"from": "micromatch@>=2.1.5 <3.0.0", "from": "micromatch@>=2.1.5 <3.0.0",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz" "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz"
}, },
"minimatch": {
"version": "3.0.3",
"from": "minimatch@>=3.0.2 <4.0.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
},
"minimist": { "minimist": {
"version": "1.2.0", "version": "1.2.0",
"from": "minimist@1.2.0", "from": "minimist@1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
}, },
"moment": { "moment": {
"version": "2.18.1", "version": "2.20.0",
"from": "moment@>=2.15.1 <3.0.0", "from": "moment@>=2.15.1 <3.0.0",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz" "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.0.tgz"
}, },
"ms": { "ms": {
"version": "2.0.0", "version": "2.0.0",
@@ -482,9 +461,9 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
}, },
"nan": { "nan": {
"version": "2.5.0", "version": "2.5.1",
"from": "nan@2.5.0", "from": "nan@2.5.1",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.5.0.tgz" "resolved": "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz"
}, },
"native-keymap": { "native-keymap": {
"version": "1.2.5", "version": "1.2.5",
@@ -502,27 +481,94 @@
"resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-1.6.0.tgz" "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-1.6.0.tgz"
}, },
"node-pty": { "node-pty": {
"version": "0.7.3", "version": "0.7.0",
"from": "node-pty@0.7.3", "from": "node-pty@0.7.0",
"resolved": "https://registry.npmjs.org/node-pty/-/node-pty-0.7.3.tgz", "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-0.7.0.tgz",
"dependencies": { "dependencies": {
"nan": { "nan": {
"version": "2.5.0", "version": "2.8.0",
"from": "nan@2.5.0", "from": "nan@>=2.6.2 <3.0.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.5.0.tgz" "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz"
} }
} }
}, },
"nodegit-promise": {
"version": "4.0.0",
"from": "nodegit-promise@>=4.0.0 <4.1.0",
"resolved": "https://registry.npmjs.org/nodegit-promise/-/nodegit-promise-4.0.0.tgz"
},
"normalize-path": { "normalize-path": {
"version": "2.1.1", "version": "2.1.1",
"from": "normalize-path@>=2.0.1 <3.0.0", "from": "normalize-path@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz"
}, },
"nsfw": {
"version": "1.0.16",
"from": "nsfw@1.0.16",
"resolved": "https://registry.npmjs.org/nsfw/-/nsfw-1.0.16.tgz",
"dependencies": {
"fs-extra": {
"version": "0.26.7",
"from": "fs-extra@>=0.26.5 <0.27.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz"
},
"jsonfile": {
"version": "2.4.0",
"from": "jsonfile@>=2.1.0 <3.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz"
}
}
},
"object.omit": {
"version": "2.0.1",
"from": "object.omit@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz"
},
"once": {
"version": "1.4.0",
"from": "once@>=1.3.0 <2.0.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
},
"oniguruma": {
"version": "6.2.1",
"from": "oniguruma@>=6.0.1 <7.0.0",
"resolved": "https://registry.npmjs.org/oniguruma/-/oniguruma-6.2.1.tgz"
},
"parse-glob": {
"version": "3.0.4",
"from": "parse-glob@>=3.0.4 <4.0.0",
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz"
},
"path-is-absolute": {
"version": "1.0.1",
"from": "path-is-absolute@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
},
"pend": {
"version": "1.2.0",
"from": "pend@>=1.2.0 <1.3.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz"
},
"preserve": {
"version": "0.2.0",
"from": "preserve@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz"
},
"pretty-data": { "pretty-data": {
"version": "0.40.0", "version": "0.40.0",
"from": "pretty-data@>=0.40.0 <0.41.0", "from": "pretty-data@>=0.40.0 <0.41.0",
"resolved": "https://registry.npmjs.org/pretty-data/-/pretty-data-0.40.0.tgz" "resolved": "https://registry.npmjs.org/pretty-data/-/pretty-data-0.40.0.tgz"
}, },
"process-nextick-args": {
"version": "1.0.7",
"from": "process-nextick-args@>=1.0.6 <1.1.0",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"
},
"promisify-node": {
"version": "0.3.0",
"from": "promisify-node@>=0.3.0 <0.4.0",
"resolved": "https://registry.npmjs.org/promisify-node/-/promisify-node-0.3.0.tgz"
},
"pty.js": { "pty.js": {
"version": "0.3.0", "version": "0.3.0",
"from": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642", "from": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642",
@@ -540,195 +586,99 @@
} }
} }
}, },
"nsfw": { "randomatic": {
"version": "1.0.16", "version": "1.1.7",
"from": "nsfw@1.0.16", "from": "randomatic@>=1.1.3 <2.0.0",
"resolved": "https://registry.npmjs.org/nsfw/-/nsfw-1.0.16.tgz", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
"dependencies": { "dependencies": {
"asap": { "is-number": {
"version": "2.0.5", "version": "3.0.0",
"from": "asap@>=2.0.3 <2.1.0", "from": "is-number@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz" "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
"dependencies": {
"kind-of": {
"version": "3.2.2",
"from": "kind-of@^3.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
}
}
}, },
"balanced-match": { "kind-of": {
"version": "1.0.0",
"from": "balanced-match@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
},
"brace-expansion": {
"version": "1.1.8",
"from": "brace-expansion@>=1.1.7 <2.0.0",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"
},
"concat-map": {
"version": "0.0.1",
"from": "concat-map@0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
},
"fs-extra": {
"version": "0.26.7",
"from": "fs-extra@>=0.26.5 <0.27.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz"
},
"fs.realpath": {
"version": "1.0.0",
"from": "fs.realpath@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
},
"glob": {
"version": "7.1.2",
"from": "glob@>=7.0.5 <8.0.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"
},
"graceful-fs": {
"version": "4.1.11",
"from": "graceful-fs@>=4.1.2 <5.0.0",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
},
"inflight": {
"version": "1.0.6",
"from": "inflight@>=1.0.4 <2.0.0",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
},
"inherits": {
"version": "2.0.3",
"from": "inherits@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
},
"jsonfile": {
"version": "2.4.0",
"from": "jsonfile@>=2.1.0 <3.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz"
},
"klaw": {
"version": "1.3.1",
"from": "klaw@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz"
},
"lodash": {
"version": "4.17.4",
"from": "lodash@>=4.6.1 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
},
"lodash.isinteger": {
"version": "4.0.4",
"from": "lodash.isinteger@>=4.0.4 <5.0.0",
"resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz"
},
"lodash.isundefined": {
"version": "3.0.1",
"from": "lodash.isundefined@>=3.0.1 <4.0.0",
"resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz"
},
"minimatch": {
"version": "3.0.4",
"from": "minimatch@>=3.0.4 <4.0.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
},
"nan": {
"version": "2.6.2",
"from": "nan@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz"
},
"nodegit-promise": {
"version": "4.0.0", "version": "4.0.0",
"from": "nodegit-promise@>=4.0.0 <4.1.0", "from": "kind-of@>=4.0.0 <5.0.0",
"resolved": "https://registry.npmjs.org/nodegit-promise/-/nodegit-promise-4.0.0.tgz" "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz"
},
"once": {
"version": "1.4.0",
"from": "once@>=1.3.0 <2.0.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
},
"path-is-absolute": {
"version": "1.0.1",
"from": "path-is-absolute@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
},
"promisify-node": {
"version": "0.3.0",
"from": "promisify-node@>=0.3.0 <0.4.0",
"resolved": "https://registry.npmjs.org/promisify-node/-/promisify-node-0.3.0.tgz"
},
"rimraf": {
"version": "2.6.1",
"from": "rimraf@>=2.2.8 <3.0.0",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz"
},
"wrappy": {
"version": "1.0.2",
"from": "wrappy@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
} }
} }
}, },
"object.omit": { "readable-stream": {
"version": "2.0.0", "version": "2.3.3",
"from": "object.omit@>=2.0.0 <3.0.0", "from": "readable-stream@>=2.0.2 <3.0.0",
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.0.tgz" "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz"
},
"oniguruma": {
"version": "6.1.1",
"from": "oniguruma@>=6.0.1 <7.0.0",
"resolved": "https://registry.npmjs.org/oniguruma/-/oniguruma-6.1.1.tgz"
},
"parse-glob": {
"version": "3.0.4",
"from": "parse-glob@>=3.0.4 <4.0.0",
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz"
},
"path-is-absolute": {
"version": "1.0.0",
"from": "path-is-absolute@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz"
},
"pend": {
"version": "1.2.0",
"from": "pend@>=1.2.0 <1.3.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz"
},
"preserve": {
"version": "0.2.0",
"from": "preserve@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz"
},
"process-nextick-args": {
"version": "1.0.7",
"from": "process-nextick-args@>=1.0.6 <1.1.0",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"
}, },
"readdirp": { "readdirp": {
"version": "2.1.0", "version": "2.1.0",
"from": "readdirp@>=2.0.0 <3.0.0", "from": "readdirp@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
"dependencies": { "dependencies": {
"balanced-match": {
"version": "1.0.0",
"from": "balanced-match@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
},
"brace-expansion": {
"version": "1.1.8",
"from": "brace-expansion@>=1.1.7 <2.0.0",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"
},
"minimatch": { "minimatch": {
"version": "3.0.4", "version": "3.0.4",
"from": "minimatch@>=3.0.2 <4.0.0", "from": "minimatch@^3.0.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
} }
} }
}, },
"reflect-metadata": {
"version": "0.1.10",
"from": "reflect-metadata@>=0.1.8 <0.2.0",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz"
},
"regex-cache": { "regex-cache": {
"version": "0.4.3", "version": "0.4.4",
"from": "regex-cache@>=0.4.2 <0.5.0", "from": "regex-cache@>=0.4.2 <0.5.0",
"resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz" "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz"
},
"remove-trailing-separator": {
"version": "1.1.0",
"from": "remove-trailing-separator@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"
}, },
"repeat-element": { "repeat-element": {
"version": "1.1.2", "version": "1.1.2",
"from": "repeat-element@>=1.1.2 <2.0.0", "from": "repeat-element@>=1.1.2 <2.0.0",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz"
}, },
"repeat-string": {
"version": "1.6.1",
"from": "repeat-string@>=1.5.2 <2.0.0",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
},
"rimraf": {
"version": "2.6.2",
"from": "rimraf@>=2.2.8 <3.0.0",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
"dependencies": {
"glob": {
"version": "7.1.2",
"from": "glob@>=7.0.5 <8.0.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"
},
"minimatch": {
"version": "3.0.4",
"from": "minimatch@>=3.0.4 <4.0.0",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
}
}
},
"rxjs": {
"version": "5.4.0",
"from": "rxjs@5.4.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.4.0.tgz"
},
"safe-buffer": {
"version": "5.1.1",
"from": "safe-buffer@>=5.1.1 <5.2.0",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz"
},
"semver": { "semver": {
"version": "4.3.6", "version": "4.3.6",
"from": "semver@4.3.6", "from": "semver@4.3.6",
@@ -739,11 +689,46 @@
"from": "set-immediate-shim@>=1.0.1 <2.0.0", "from": "set-immediate-shim@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz"
}, },
"slickgrid": {
"version": "2.3.4",
"from": "anthonydresser/SlickGrid#2.3.7",
"resolved": "git://github.com/anthonydresser/SlickGrid.git#fa7911c34b5449f9ce1e7148480fbc24fd20743a"
},
"string_decoder": {
"version": "1.0.3",
"from": "string_decoder@>=1.0.3 <1.1.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
},
"svg.js": {
"version": "2.6.3",
"from": "svg.js@>=2.2.5 <3.0.0",
"resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.6.3.tgz"
},
"symbol-observable": {
"version": "1.1.0",
"from": "symbol-observable@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.1.0.tgz"
},
"systemjs": {
"version": "0.19.40",
"from": "systemjs@0.19.40",
"resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.19.40.tgz"
},
"typechecker": { "typechecker": {
"version": "2.0.8", "version": "2.0.8",
"from": "typechecker@>=2.0.1 <2.1.0", "from": "typechecker@>=2.0.1 <2.1.0",
"resolved": "https://registry.npmjs.org/typechecker/-/typechecker-2.0.8.tgz" "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-2.0.8.tgz"
}, },
"underscore": {
"version": "1.8.3",
"from": "underscore@>=1.8.3 <2.0.0",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz"
},
"universalify": {
"version": "0.1.1",
"from": "universalify@>=0.1.0 <0.2.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz"
},
"util-deprecate": { "util-deprecate": {
"version": "1.0.2", "version": "1.0.2",
"from": "util-deprecate@>=1.0.1 <1.1.0", "from": "util-deprecate@>=1.0.1 <1.1.0",
@@ -754,6 +739,11 @@
"from": "jrieken/v8-profiler#vscode", "from": "jrieken/v8-profiler#vscode",
"resolved": "git://github.com/jrieken/v8-profiler.git#5e4a336693e1d5b079c7aecd286a1abcfbc10421" "resolved": "git://github.com/jrieken/v8-profiler.git#5e4a336693e1d5b079c7aecd286a1abcfbc10421"
}, },
"vscode-chokidar": {
"version": "1.6.2",
"from": "vscode-chokidar@1.6.2",
"resolved": "https://registry.npmjs.org/vscode-chokidar/-/vscode-chokidar-1.6.2.tgz"
},
"vscode-debugprotocol": { "vscode-debugprotocol": {
"version": "1.24.0", "version": "1.24.0",
"from": "vscode-debugprotocol@1.24.0", "from": "vscode-debugprotocol@1.24.0",
@@ -766,94 +756,9 @@
}, },
"vscode-textmate": { "vscode-textmate": {
"version": "3.2.0", "version": "3.2.0",
"from": "vscode-textmate@3.2.0", "from": "vscode-textmate@>=3.2.0 <4.0.0",
"resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-3.2.0.tgz" "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-3.2.0.tgz"
}, },
"winreg": {
"version": "1.2.0",
"from": "winreg@1.2.0",
"resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.0.tgz"
},
"windows-process-tree": {
"version": "0.1.6",
"from": "windows-process-tree@0.1.6",
"resolved": "https://registry.npmjs.org/windows-process-tree/-/windows-process-tree-0.1.6.tgz"
},
"xterm": {
"version": "2.9.1",
"from": "Tyriar/xterm.js#vscode-release/1.18",
"resolved": "git+https://github.com/Tyriar/xterm.js.git#074dbb562062423e322300a513869eed1836a9ba"
},
"yauzl": {
"version": "2.8.0",
"from": "yauzl@2.8.0",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz"
},
"randomatic": {
"version": "1.1.6",
"from": "randomatic@>=1.1.3 <2.0.0",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz"
},
"readable-stream": {
"version": "2.2.10",
"from": "readable-stream@>=2.0.2 <3.0.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.10.tgz"
},
"reflect-metadata": {
"version": "0.1.10",
"from": "reflect-metadata@>=0.1.8 <0.2.0",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz"
},
"remove-trailing-separator": {
"version": "1.0.1",
"from": "remove-trailing-separator@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz"
},
"repeat-string": {
"version": "1.6.1",
"from": "repeat-string@>=1.5.2 <2.0.0",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.4.tgz"
},
"rxjs": {
"version": "5.4.0",
"from": "rxjs@5.4.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.4.0.tgz"
},
"safe-buffer": {
"version": "5.1.0",
"from": "safe-buffer@>=5.0.1 <6.0.0",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.0.tgz"
},
"slickgrid": {
"version": "2.3.6",
"from": "anthonydresser/SlickGrid#2.3.7",
"resolved": "git://github.com/anthonydresser/SlickGrid.git#fa7911c34b5449f9ce1e7148480fbc24fd20743a"
},
"string_decoder": {
"version": "1.0.1",
"from": "string_decoder@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz"
},
"symbol-observable": {
"version": "1.0.4",
"from": "symbol-observable@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz"
},
"systemjs": {
"version": "0.19.40",
"from": "systemjs@0.19.40",
"resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.19.40.tgz"
},
"underscore": {
"version": "1.8.3",
"from": "underscore@>=1.8.3 <2.0.0",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz"
},
"universalify": {
"version": "0.1.0",
"from": "universalify@>=0.1.0 <0.2.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.0.tgz"
},
"when": { "when": {
"version": "3.7.8", "version": "3.7.8",
"from": "when@>=3.7.5 <4.0.0", "from": "when@>=3.7.5 <4.0.0",
@@ -870,6 +775,45 @@
"from": "windows-mutex@>=0.2.0 <0.3.0", "from": "windows-mutex@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/windows-mutex/-/windows-mutex-0.2.0.tgz", "resolved": "https://registry.npmjs.org/windows-mutex/-/windows-mutex-0.2.0.tgz",
"optional": true "optional": true
},
"windows-process-tree": {
"version": "0.1.6",
"from": "windows-process-tree@0.1.6",
"resolved": "https://registry.npmjs.org/windows-process-tree/-/windows-process-tree-0.1.6.tgz",
"optional": true,
"dependencies": {
"nan": {
"version": "2.8.0",
"from": "nan@>=2.6.2 <3.0.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz",
"optional": true
}
}
},
"winreg": {
"version": "1.2.0",
"from": "winreg@1.2.0",
"resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.0.tgz"
},
"wrappy": {
"version": "1.0.2",
"from": "wrappy@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
},
"xterm": {
"version": "2.9.1",
"from": "Tyriar/xterm.js#vscode-release/1.18",
"resolved": "git://github.com/Tyriar/xterm.js.git#074dbb562062423e322300a513869eed1836a9ba"
},
"yauzl": {
"version": "2.8.0",
"from": "yauzl@2.8.0",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz"
},
"zone.js": {
"version": "0.8.18",
"from": "zone.js@>=0.8.4 <0.9.0",
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.18.tgz"
} }
} }
} }

View File

@@ -36,8 +36,6 @@
"angular2-slickgrid": "git://github.com/Microsoft/angular2-slickgrid.git#1.3.5", "angular2-slickgrid": "git://github.com/Microsoft/angular2-slickgrid.git#1.3.5",
"applicationinsights": "0.17.1", "applicationinsights": "0.17.1",
"chart.js": "^2.6.0", "chart.js": "^2.6.0",
"chokidar": "bpasero/chokidar#vscode",
"comment-json": "^1.1.3",
"core-js": "^2.4.1", "core-js": "^2.4.1",
"emmet": "ramya-rao-a/emmet#vscode", "emmet": "ramya-rao-a/emmet#vscode",
"error-ex": "^1.3.0", "error-ex": "^1.3.0",
@@ -47,13 +45,11 @@
"gc-signals": "^0.0.1", "gc-signals": "^0.0.1",
"getmac": "1.0.7", "getmac": "1.0.7",
"graceful-fs": "4.1.11", "graceful-fs": "4.1.11",
"html-query-plan": "git://github.com/anthonydresser/html-query-plan.git#v2.2.5", "html-query-plan": "git://github.com/anthonydresser/html-query-plan.git#2.2.5",
"http-proxy-agent": "0.2.7", "http-proxy-agent": "0.2.7",
"https-proxy-agent": "0.3.6", "https-proxy-agent": "0.3.6",
"iconv-lite": "0.4.15", "iconv-lite": "0.4.15",
"jquery": "^2.2.0", "jquery": "^2.2.0",
"jquery-ui": "^1.12.1",
"jquery.event.drag": "2.2.2",
"make-error": "^1.1.1", "make-error": "^1.1.1",
"jschardet": "^1.5.1", "jschardet": "^1.5.1",
"keytar": "^4.0.5", "keytar": "^4.0.5",
@@ -74,6 +70,7 @@
"systemjs": "0.19.40", "systemjs": "0.19.40",
"underscore": "^1.8.3", "underscore": "^1.8.3",
"v8-profiler": "jrieken/v8-profiler#vscode", "v8-profiler": "jrieken/v8-profiler#vscode",
"vscode-chokidar": "1.6.2",
"vscode-debugprotocol": "1.24.0", "vscode-debugprotocol": "1.24.0",
"vscode-ripgrep": "0.6.0-patch.0.2", "vscode-ripgrep": "0.6.0-patch.0.2",
"vscode-textmate": "^3.2.0", "vscode-textmate": "^3.2.0",
@@ -150,7 +147,6 @@
"typescript-formatter": "4.0.1", "typescript-formatter": "4.0.1",
"uglify-js": "mishoo/UglifyJS2#harmony-v2.8.22", "uglify-js": "mishoo/UglifyJS2#harmony-v2.8.22",
"uglify-es": "^3.0.18", "uglify-es": "^3.0.18",
"underscore": "^1.8.2",
"vinyl": "^0.4.5", "vinyl": "^0.4.5",
"vinyl-fs": "^2.4.3", "vinyl-fs": "^2.4.3",
"vsce": "^1.25.1", "vsce": "^1.25.1",

View File

@@ -3,7 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information. * Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
declare module 'chokidar' { declare module 'vscode-chokidar' {
/** /**
* takes paths to be watched recursively and options * takes paths to be watched recursively and options

View File

@@ -5,7 +5,7 @@
'use strict'; 'use strict';
import chokidar = require('chokidar'); import chokidar = require('vscode-chokidar');
import fs = require('fs'); import fs = require('fs');
import gracefulFs = require('graceful-fs'); import gracefulFs = require('graceful-fs');