Compare commits
64 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8439cde610 | ||
|
|
2080c525a7 | ||
|
|
db2d380b6c | ||
|
|
a06f80bdb1 | ||
|
|
1f76c85b1b | ||
|
|
cffc18d5ea | ||
|
|
a747b6a500 | ||
|
|
711b7bf622 | ||
|
|
9b0757de9c | ||
|
|
b9a0744a83 | ||
|
|
c69915ca58 | ||
|
|
a16835918a | ||
|
|
f9e27d7112 | ||
|
|
c072ba9c5c | ||
|
|
807fb2ed8a | ||
|
|
daf347b728 | ||
|
|
e76222db7a | ||
|
|
f676090901 | ||
|
|
726eb8d0e1 | ||
|
|
2c0d6b93ee | ||
|
|
98d06b2892 | ||
|
|
856c19fa17 | ||
|
|
3237507bb2 | ||
|
|
ff5a248240 | ||
|
|
fc3bdc9037 | ||
|
|
533c0bf0b1 | ||
|
|
afb6862035 | ||
|
|
92d9d04a78 | ||
|
|
0704e5ee67 | ||
|
|
7dfcd89a04 | ||
|
|
724c49f5c4 | ||
|
|
48c4a473df | ||
|
|
3d39272536 | ||
|
|
0a63966cbd | ||
|
|
89e959c2e3 | ||
|
|
c56dd2cdbd | ||
|
|
363f28a46b | ||
|
|
5549f51a13 | ||
|
|
82486ee22e | ||
|
|
29cc57f52a | ||
|
|
f7d92caae5 | ||
|
|
201174e293 | ||
|
|
dc2f6235a1 | ||
|
|
0824c779db | ||
|
|
e002ad3b6a | ||
|
|
8a570069f8 | ||
|
|
bfe44c1621 | ||
|
|
b17882a1c1 | ||
|
|
f309979126 | ||
|
|
5a0490e81f | ||
|
|
2c007115f7 | ||
|
|
ac47fb84a8 | ||
|
|
7ba14a3925 | ||
|
|
67514ccc5f | ||
|
|
6ee3886ecf | ||
|
|
76282ed1ef | ||
|
|
bfa9e8c495 | ||
|
|
425eecf692 | ||
|
|
ac1f7542a9 | ||
|
|
225d168fdd | ||
|
|
e073b2cf42 | ||
|
|
1cb366d822 | ||
|
|
c9c8e30ced | ||
|
|
c50941ac7d |
16
CHANGELOG.md
@@ -1,5 +1,21 @@
|
|||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
|
## Version 1.1.3
|
||||||
|
* Release date: October 18, 2018
|
||||||
|
* Release status: General Availability
|
||||||
|
|
||||||
|
## What's new in this version
|
||||||
|
* Introducing the Azure Resource Explorer to browse Azure SQL Databases
|
||||||
|
* Improve Object Explorer and Query Editor connectivity robustness
|
||||||
|
* SQL Server 2019 and SQL Agent extension improvements
|
||||||
|
|
||||||
|
## Contributions and "thank you"
|
||||||
|
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||||
|
|
||||||
|
* philoushka for `center the icon #2760`
|
||||||
|
* anthonypants for `Typo #2775`
|
||||||
|
* kstolte for `Fix Invalid Configuration in Launch.json #2789`
|
||||||
|
* kstolte for `Fixing a reference to SQL Ops Studio #2788`
|
||||||
|
|
||||||
## Version 1.0.0
|
## Version 1.0.0
|
||||||
* Release date: September 24, 2018
|
* Release date: September 24, 2018
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ First, please do a search in [open issues](https://github.com/Microsoft/azuredat
|
|||||||
|
|
||||||
If you find your issue already exists, make relevant comments and add your [reaction](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments). Use a reaction in place of a "+1" comment.
|
If you find your issue already exists, make relevant comments and add your [reaction](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments). Use a reaction in place of a "+1" comment.
|
||||||
|
|
||||||
<EFBFBD> - upvote
|
:+1: - upvote
|
||||||
|
|
||||||
<EFBFBD> - downvote
|
:-1: - downvote
|
||||||
|
|
||||||
If you cannot find an existing issue that describes your bug or feature, submit an issue using the guidelines below.
|
If you cannot find an existing issue that describes your bug or feature, submit an issue using the guidelines below.
|
||||||
|
|
||||||
|
|||||||
34
README.md
@@ -4,16 +4,16 @@
|
|||||||
|
|
||||||
Azure Data Studio is a data management tool that enables you to work with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.
|
Azure Data Studio is a data management tool that enables you to work with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.
|
||||||
|
|
||||||
**Download Azure Data Studio August Public Preview**
|
**Download the latest Azure Data Studio release**
|
||||||
|
|
||||||
Platform | Link
|
Platform | Link
|
||||||
-- | --
|
-- | --
|
||||||
Windows Setup Installer | https://go.microsoft.com/fwlink/?linkid=2024683
|
Windows Setup Installer | https://go.microsoft.com/fwlink/?linkid=2030731
|
||||||
Windows ZIP | https://go.microsoft.com/fwlink/?linkid=2024680
|
Windows ZIP | https://go.microsoft.com/fwlink/?linkid=2030736
|
||||||
macOS ZIP | https://go.microsoft.com/fwlink/?linkid=2024677
|
macOS ZIP | https://go.microsoft.com/fwlink/?linkid=2030738
|
||||||
Linux TAR.GZ | https://go.microsoft.com/fwlink/?linkid=2024675
|
Linux TAR.GZ | https://go.microsoft.com/fwlink/?linkid=2030741
|
||||||
Linux RPM | https://go.microsoft.com/fwlink/?linkid=2024672
|
Linux RPM | https://go.microsoft.com/fwlink/?linkid=2030746
|
||||||
Linux DEB | https://go.microsoft.com/fwlink/?linkid=2024668
|
Linux DEB | https://go.microsoft.com/fwlink/?linkid=2030750
|
||||||
|
|
||||||
Go to our [download page](https://aka.ms/azuredatastudio) for more specific instructions.
|
Go to our [download page](https://aka.ms/azuredatastudio) for more specific instructions.
|
||||||
|
|
||||||
@@ -34,9 +34,9 @@ See the [change log](https://github.com/Microsoft/azuredatastudio/blob/master/CH
|
|||||||
- Task History window to view current task execution status, completion results with error messages and task T-SQL scripting
|
- Task History window to view current task execution status, completion results with error messages and task T-SQL scripting
|
||||||
- Scripting support to generate CREATE, SELECT, ALTER and DROP statements for database objects
|
- Scripting support to generate CREATE, SELECT, ALTER and DROP statements for database objects
|
||||||
- Workspaces with full Git integration and Find In Files support to managing T-SQL script libraries
|
- Workspaces with full Git integration and Find In Files support to managing T-SQL script libraries
|
||||||
- Modern light-weight shell with theming, user settings, full screen support, integrated terminal and numerous other features
|
- Modern light-weight shell with theming, user settings, full-screen support, integrated terminal and numerous other features
|
||||||
|
|
||||||
Here's some of these features in action.
|
Here are some of these features in action.
|
||||||
|
|
||||||
<img src='https://github.com/Microsoft/azuredatastudio/blob/master/docs/overview_screen.jpg' width='800px'>
|
<img src='https://github.com/Microsoft/azuredatastudio/blob/master/docs/overview_screen.jpg' width='800px'>
|
||||||
|
|
||||||
@@ -61,29 +61,33 @@ The [Microsoft Enterprise and Developer Privacy Statement](https://privacy.micro
|
|||||||
## Contributions and "Thank You"
|
## Contributions and "Thank You"
|
||||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||||
|
|
||||||
|
* philoushka for `center the icon #2760`
|
||||||
|
* anthonypants for `Typo #2775`
|
||||||
|
* kstolte for `Fix Invalid Configuration in Launch.json #2789`
|
||||||
|
* kstolte for `Fixing a reference to SQL Ops Studio #2788`
|
||||||
* AlexFsmn `Feature: Ability to add connection name #2332`
|
* AlexFsmn `Feature: Ability to add connection name #2332`
|
||||||
* AlexFsmn `Disabled connection name input when connecting to a server. #2566`
|
* AlexFsmn `Disabled connection name input when connecting to a server. #2566`
|
||||||
* SebastianPfliegel `Added more saveAsCsv options #2099`
|
* SebastianPfliegel `Added more saveAsCsv options #2099`
|
||||||
* ianychoi `Fixes a typo: Mimunum -> Minimum #1994`
|
* ianychoi `Fixes a typo: Mimunum -> Minimum #1994`
|
||||||
* AlexFsmn `Fixed bug where proper file extension wasn't appended to filename. #2151`
|
* AlexFsmn `Fixed bug where proper file extension wasn't appended to the filename. #2151`
|
||||||
* AlexFsmn `Added functionality for adding any file to import wizard #2329`
|
* AlexFsmn `Added functionality for adding any file to import wizard #2329`
|
||||||
* AlexFsmn `Fixed background issue when copying a chart to clipboard #2215`
|
* AlexFsmn `Fixed background issue when copying a chart to clipboard #2215`
|
||||||
* AlexFsmn `Fixed problem where vertical charts didn't display labels correctly. #2263`
|
* AlexFsmn `Fixed problem where vertical charts didn't display labels correctly. #2263`
|
||||||
* AlexFsmn `Fixed Initial values for charts to match visuals #2266`
|
* AlexFsmn `Fixed Initial values for charts to match visuals #2266`
|
||||||
* AlexFsmn `Renamed chart option labels #2264`
|
* AlexFsmn `Renamed chart option labels #2264`
|
||||||
* AlexFsmn `Added feature for opening file after exporting to CSV/XLS/JSON & query files #2216`
|
* AlexFsmn `Added feature for the opening file after exporting to CSV/XLS/JSON & query files #2216`
|
||||||
* AlexFsmm `Get Connection String should copy to clipboard #2175`
|
* AlexFsmm `Get Connection String should copy to clipboard #2175`
|
||||||
* lanceklinger `Fix for double clicking column handle in results table #1504`
|
* lanceklinger `Fix for double-clicking column handle in results table #1504`
|
||||||
* westerncj for `Removed duplicate contribution from README.md (#753)`
|
* westerncj for `Removed duplicate contribution from README.md (#753)`
|
||||||
* ntovas for `Fix for duplicate extensions shown in "Save File" dialog. (#779)`
|
* ntovas for `Fix for duplicate extensions shown in "Save File" dialog. (#779)`
|
||||||
* SebastianPfliegel for `Add cursor snippet (#475)`
|
* SebastianPfliegel for `Add cursor snippet (#475)`
|
||||||
* mikaoelitiana for fix: `revert README and CONTRIBUTING after last VSCode merge (#574)`
|
* mikaoelitiana for the fix: `revert README and CONTRIBUTING after last VSCode merge (#574)`
|
||||||
* alextercete for `Reinstate menu item to install from VSIX (#682)`
|
* alextercete for `Reinstate menu item to install from VSIX (#682)`
|
||||||
* alextercete for `Fix "No extension gallery service configured" error (#427)`
|
* alextercete for `Fix "No extension gallery service configured" error (#427)`
|
||||||
* mwiedemeyer for `Fix #58: Default sort order for DB size widget (#111)`
|
* mwiedemeyer for `Fix #58: Default sort order for DB size widget (#111)`
|
||||||
* AlexTroshkin for `Show disconnect in context menu only when connectionProfile connected (#150)`
|
* AlexTroshkin for `Show disconnect in context menu only when connectionProfile connected (#150)`
|
||||||
* AlexTroshkin for `Fix #138: Invalid syntax color highlighting (identity not highlighting) (#140))`
|
* AlexTroshkin for `Fix #138: Invalid syntax color highlighting (identity not highlighting) (#140))`
|
||||||
* stebet for `Fix #153: Fixing sql snippets that failed on a DB with case-sensitive collation. (#152)`
|
* stebet for `Fix #153: Fixing sql snippets that failed on a DB with a case-sensitive collation. (#152)`
|
||||||
* SebastianPfliegel `Remove sqlExtensionHelp (#312)`
|
* SebastianPfliegel `Remove sqlExtensionHelp (#312)`
|
||||||
* olljanat for `Implemented npm version check (#314)`
|
* olljanat for `Implemented npm version check (#314)`
|
||||||
* Adam Machanic for helping with the `whoisactive` extension
|
* Adam Machanic for helping with the `whoisactive` extension
|
||||||
@@ -100,7 +104,7 @@ We would like to thank all our users who raised issues, and in particular the fo
|
|||||||
* Portuguese Brazil: Daniel de Sousa, Diogo Duarte, Douglas Correa, Douglas Eccker, José Emanuel Mendes, Marcelo Fernandes, Marcondes Alexandre, Roberto Fonseca, Rodrigo Crespi
|
* Portuguese Brazil: Daniel de Sousa, Diogo Duarte, Douglas Correa, Douglas Eccker, José Emanuel Mendes, Marcelo Fernandes, Marcondes Alexandre, Roberto Fonseca, Rodrigo Crespi
|
||||||
|
|
||||||
|
|
||||||
And of course we'd like to thank the authors of all upstream dependencies. Please see a full list in the [ThirdPartyNotices.txt](https://raw.githubusercontent.com/Microsoft/azuredatastudio/master/ThirdPartyNotices.txt)
|
And of course, we'd like to thank the authors of all upstream dependencies. Please see a full list in the [ThirdPartyNotices.txt](https://raw.githubusercontent.com/Microsoft/azuredatastudio/master/ThirdPartyNotices.txt)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ Type: filesandordirs; Name: "{app}\_"
|
|||||||
[Tasks]
|
[Tasks]
|
||||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkedonce; Check: IsNotUpdate
|
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkedonce; Check: IsNotUpdate
|
||||||
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
|
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
|
||||||
Name: "associatewithfiles"; Description: "{cm:AssociateWithFiles,{#NameShort}}"; GroupDescription: "{cm:Other}"; Flags: unchecked
|
Name: "associatewithfiles"; Description: "{cm:AssociateWithFiles,{#NameLong}}"; GroupDescription: "{cm:Other}"; Flags: unchecked
|
||||||
Name: "addtopath"; Description: "{cm:AddToPath}"; GroupDescription: "{cm:Other}"
|
Name: "addtopath"; Description: "{cm:AddToPath}"; GroupDescription: "{cm:Other}"
|
||||||
Name: "runcode"; Description: "{cm:RunAfter,{#NameShort}}"; GroupDescription: "{cm:Other}"; Check: WizardSilent
|
Name: "runcode"; Description: "{cm:RunAfter,{#NameShort}}"; GroupDescription: "{cm:Other}"; Check: WizardSilent
|
||||||
|
|
||||||
|
|||||||
372
build/yarn.lock
@@ -2,7 +2,7 @@
|
|||||||
"name": "agent",
|
"name": "agent",
|
||||||
"displayName": "SQL Server Agent",
|
"displayName": "SQL Server Agent",
|
||||||
"description": "Manage and troubleshoot SQL Server Agent jobs",
|
"description": "Manage and troubleshoot SQL Server Agent jobs",
|
||||||
"version": "0.33.0",
|
"version": "0.34.0",
|
||||||
"publisher": "Microsoft",
|
"publisher": "Microsoft",
|
||||||
"preview": true,
|
"preview": true,
|
||||||
"license": "https://raw.githubusercontent.com/Microsoft/azuredatastudio/master/LICENSE.txt",
|
"license": "https://raw.githubusercontent.com/Microsoft/azuredatastudio/master/LICENSE.txt",
|
||||||
@@ -26,12 +26,6 @@
|
|||||||
"outputChannels": [
|
"outputChannels": [
|
||||||
"sqlagent"
|
"sqlagent"
|
||||||
],
|
],
|
||||||
"commands": [
|
|
||||||
{
|
|
||||||
"command": "agent.openNewStepDialog",
|
|
||||||
"title": "agent.openNewStepDialog"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dashboard.tabs": [
|
"dashboard.tabs": [
|
||||||
{
|
{
|
||||||
"id": "data-management-agent",
|
"id": "data-management-agent",
|
||||||
|
|||||||
@@ -35,4 +35,5 @@ export class AgentUtils {
|
|||||||
}
|
}
|
||||||
return this._queryProvider;
|
return this._queryProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -9,6 +9,7 @@ import * as vscode from 'vscode';
|
|||||||
import * as sqlops from 'sqlops';
|
import * as sqlops from 'sqlops';
|
||||||
import { AgentUtils } from '../agentUtils';
|
import { AgentUtils } from '../agentUtils';
|
||||||
import { IAgentDialogData, AgentDialogMode } from '../interfaces';
|
import { IAgentDialogData, AgentDialogMode } from '../interfaces';
|
||||||
|
import { JobData } from './jobData';
|
||||||
|
|
||||||
const localize = nls.loadMessageBundle();
|
const localize = nls.loadMessageBundle();
|
||||||
|
|
||||||
@@ -45,8 +46,19 @@ export class AlertData implements IAgentDialogData {
|
|||||||
wmiEventNamespace: string;
|
wmiEventNamespace: string;
|
||||||
wmiEventQuery: string;
|
wmiEventQuery: string;
|
||||||
|
|
||||||
constructor(ownerUri:string, alertInfo: sqlops.AgentAlertInfo) {
|
private viaJobDialog: boolean;
|
||||||
|
private jobModel: JobData;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
ownerUri:string,
|
||||||
|
alertInfo: sqlops.AgentAlertInfo,
|
||||||
|
jobModel?: JobData,
|
||||||
|
viaJobDialog: boolean = false
|
||||||
|
) {
|
||||||
this.ownerUri = ownerUri;
|
this.ownerUri = ownerUri;
|
||||||
|
this.viaJobDialog = viaJobDialog;
|
||||||
|
this.jobModel = jobModel;
|
||||||
|
this.jobName = this.jobName ? this.jobName : this.jobModel.name;
|
||||||
|
|
||||||
if (alertInfo) {
|
if (alertInfo) {
|
||||||
this.dialogMode = AgentDialogMode.EDIT;
|
this.dialogMode = AgentDialogMode.EDIT;
|
||||||
@@ -60,7 +72,6 @@ export class AlertData implements IAgentDialogData {
|
|||||||
this.includeEventDescription = alertInfo.includeEventDescription.toString();
|
this.includeEventDescription = alertInfo.includeEventDescription.toString();
|
||||||
this.isEnabled = alertInfo.isEnabled;
|
this.isEnabled = alertInfo.isEnabled;
|
||||||
this.jobId = alertInfo.jobId;
|
this.jobId = alertInfo.jobId;
|
||||||
this.jobName = alertInfo.jobName;
|
|
||||||
this.lastOccurrenceDate = alertInfo.lastOccurrenceDate;
|
this.lastOccurrenceDate = alertInfo.lastOccurrenceDate;
|
||||||
this.lastResponseDate = alertInfo.lastResponseDate;
|
this.lastResponseDate = alertInfo.lastResponseDate;
|
||||||
this.messageId = alertInfo.messageId;
|
this.messageId = alertInfo.messageId;
|
||||||
@@ -82,10 +93,18 @@ export class AlertData implements IAgentDialogData {
|
|||||||
|
|
||||||
public async save() {
|
public async save() {
|
||||||
let agentService = await AgentUtils.getAgentService();
|
let agentService = await AgentUtils.getAgentService();
|
||||||
let result = this.dialogMode === AgentDialogMode.CREATE
|
let result: any;
|
||||||
? await agentService.createAlert(this.ownerUri, this.toAgentAlertInfo())
|
// if it's called via the job dialog, add it to the
|
||||||
: await agentService.updateAlert(this.ownerUri, this.originalName, this.toAgentAlertInfo());
|
// job model
|
||||||
|
if (this.viaJobDialog) {
|
||||||
|
if (this.jobModel) {
|
||||||
|
Promise.resolve(this);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// has to be a create alert
|
||||||
|
result = await agentService.createAlert(this.ownerUri, this.toAgentAlertInfo());
|
||||||
|
}
|
||||||
if (!result || !result.success) {
|
if (!result || !result.success) {
|
||||||
vscode.window.showErrorMessage(
|
vscode.window.showErrorMessage(
|
||||||
localize('alertData.saveErrorMessage', "Alert update failed '{0}'", result.errorMessage ? result.errorMessage : 'Unknown'));
|
localize('alertData.saveErrorMessage', "Alert update failed '{0}'", result.errorMessage ? result.errorMessage : 'Unknown'));
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ export class JobData implements IAgentDialogData {
|
|||||||
public jobSteps: sqlops.AgentJobStepInfo[];
|
public jobSteps: sqlops.AgentJobStepInfo[];
|
||||||
public jobSchedules: sqlops.AgentJobScheduleInfo[];
|
public jobSchedules: sqlops.AgentJobScheduleInfo[];
|
||||||
public alerts: sqlops.AgentAlertInfo[];
|
public alerts: sqlops.AgentAlertInfo[];
|
||||||
|
public jobId: string;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
ownerUri: string,
|
ownerUri: string,
|
||||||
@@ -62,6 +63,7 @@ export class JobData implements IAgentDialogData {
|
|||||||
this.jobSteps = jobInfo.JobSteps;
|
this.jobSteps = jobInfo.JobSteps;
|
||||||
this.jobSchedules = jobInfo.JobSchedules;
|
this.jobSchedules = jobInfo.JobSchedules;
|
||||||
this.alerts = jobInfo.Alerts;
|
this.alerts = jobInfo.Alerts;
|
||||||
|
this.jobId = jobInfo.jobId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,7 +117,6 @@ export class JobData implements IAgentDialogData {
|
|||||||
let result = this.dialogMode === AgentDialogMode.CREATE
|
let result = this.dialogMode === AgentDialogMode.CREATE
|
||||||
? await this._agentService.createJob(this.ownerUri, jobInfo)
|
? await this._agentService.createJob(this.ownerUri, jobInfo)
|
||||||
: await this._agentService.updateJob(this.ownerUri, this.originalName, jobInfo);
|
: await this._agentService.updateJob(this.ownerUri, this.originalName, jobInfo);
|
||||||
|
|
||||||
if (!result || !result.success) {
|
if (!result || !result.success) {
|
||||||
vscode.window.showErrorMessage(
|
vscode.window.showErrorMessage(
|
||||||
localize('jobData.saveErrorMessage', "Job update failed '{0}'", result.errorMessage ? result.errorMessage : 'Unknown'));
|
localize('jobData.saveErrorMessage', "Job update failed '{0}'", result.errorMessage ? result.errorMessage : 'Unknown'));
|
||||||
@@ -135,13 +136,6 @@ export class JobData implements IAgentDialogData {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public addJobSchedule(schedule: sqlops.AgentJobScheduleInfo) {
|
|
||||||
let existingSchedule = this.jobSchedules.find(item => item.name === schedule.name);
|
|
||||||
if (!existingSchedule) {
|
|
||||||
this.jobSchedules.push(schedule);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public toAgentJobInfo(): sqlops.AgentJobInfo {
|
public toAgentJobInfo(): sqlops.AgentJobInfo {
|
||||||
return {
|
return {
|
||||||
name: this.name,
|
name: this.name,
|
||||||
@@ -172,7 +166,7 @@ export class JobData implements IAgentDialogData {
|
|||||||
categoryType: 1, // LocalJob, hard-coding the value, corresponds to the target tab in SSMS
|
categoryType: 1, // LocalJob, hard-coding the value, corresponds to the target tab in SSMS
|
||||||
lastRun: '',
|
lastRun: '',
|
||||||
nextRun: '',
|
nextRun: '',
|
||||||
jobId: ''
|
jobId: this.jobId
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,20 +4,22 @@
|
|||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
import * as sqlops from 'sqlops';
|
||||||
|
import * as nls from 'vscode-nls';
|
||||||
|
import * as vscode from 'vscode';
|
||||||
import { AgentUtils } from '../agentUtils';
|
import { AgentUtils } from '../agentUtils';
|
||||||
import { IAgentDialogData, AgentDialogMode } from '../interfaces';
|
import { IAgentDialogData, AgentDialogMode } from '../interfaces';
|
||||||
import { JobData } from './jobData';
|
import { JobData } from './jobData';
|
||||||
import * as nls from 'vscode-nls';
|
|
||||||
|
|
||||||
const localize = nls.loadMessageBundle();
|
const localize = nls.loadMessageBundle();
|
||||||
|
|
||||||
export class JobStepData implements IAgentDialogData {
|
export class JobStepData implements IAgentDialogData {
|
||||||
|
|
||||||
// Error Messages
|
// Error Messages
|
||||||
private readonly CreateStepErrorMessage_JobNameIsEmpty = localize('stepData.jobNameRequired', 'Job name must be provided');
|
private static readonly CreateStepErrorMessage_JobNameIsEmpty = localize('stepData.jobNameRequired', 'Job name must be provided');
|
||||||
private readonly CreateStepErrorMessage_StepNameIsEmpty = localize('stepData.stepNameRequired', 'Step name must be provided');
|
private static readonly CreateStepErrorMessage_StepNameIsEmpty = localize('stepData.stepNameRequired', 'Step name must be provided');
|
||||||
|
|
||||||
public dialogMode: AgentDialogMode = AgentDialogMode.CREATE;
|
public dialogMode: AgentDialogMode;
|
||||||
public ownerUri: string;
|
public ownerUri: string;
|
||||||
public jobId: string;
|
public jobId: string;
|
||||||
public jobName: string;
|
public jobName: string;
|
||||||
@@ -28,8 +30,8 @@ export class JobStepData implements IAgentDialogData {
|
|||||||
public id: number;
|
public id: number;
|
||||||
public failureAction: string;
|
public failureAction: string;
|
||||||
public successAction: string;
|
public successAction: string;
|
||||||
public failStepId: number;
|
|
||||||
public successStepId: number;
|
public successStepId: number;
|
||||||
|
public failStepId: number;
|
||||||
public command: string;
|
public command: string;
|
||||||
public commandExecutionSuccessCode: number;
|
public commandExecutionSuccessCode: number;
|
||||||
public databaseName: string;
|
public databaseName: string;
|
||||||
@@ -43,10 +45,14 @@ export class JobStepData implements IAgentDialogData {
|
|||||||
public retryAttempts: number;
|
public retryAttempts: number;
|
||||||
public retryInterval: number;
|
public retryInterval: number;
|
||||||
public proxyName: string;
|
public proxyName: string;
|
||||||
|
private jobModel: JobData;
|
||||||
|
private viaJobDialog: boolean;
|
||||||
|
|
||||||
constructor(ownerUri:string, jobModel?: JobData) {
|
constructor(ownerUri:string, jobModel?: JobData, viaJobDialog: boolean = false) {
|
||||||
this.ownerUri = ownerUri;
|
this.ownerUri = ownerUri;
|
||||||
this.jobName = jobModel.name;
|
this.jobName = jobModel.name;
|
||||||
|
this.jobModel = jobModel;
|
||||||
|
this.viaJobDialog = viaJobDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async initialize() {
|
public async initialize() {
|
||||||
@@ -54,47 +60,33 @@ export class JobStepData implements IAgentDialogData {
|
|||||||
|
|
||||||
public async save() {
|
public async save() {
|
||||||
let agentService = await AgentUtils.getAgentService();
|
let agentService = await AgentUtils.getAgentService();
|
||||||
agentService.createJobStep(this.ownerUri, {
|
let result: any;
|
||||||
jobId: this.jobId,
|
// if it's called via the job dialog, add it to the
|
||||||
jobName: this.jobName,
|
// job model
|
||||||
script: this.script,
|
if (this.viaJobDialog) {
|
||||||
scriptName: this.scriptName,
|
if (this.jobModel) {
|
||||||
stepName: this.stepName,
|
Promise.resolve(this);
|
||||||
subSystem: this.subSystem,
|
return;
|
||||||
id: this.id,
|
}
|
||||||
failureAction: this.failureAction,
|
} else {
|
||||||
successAction: this.successAction,
|
// has to be a create step
|
||||||
failStepId: this.failStepId,
|
result = await agentService.createJobStep(this.ownerUri, JobStepData.convertToAgentJobStepInfo(this));
|
||||||
successStepId: this.successStepId,
|
}
|
||||||
command: this.command,
|
if (!result || !result.success) {
|
||||||
commandExecutionSuccessCode: this.commandExecutionSuccessCode,
|
vscode.window.showErrorMessage(
|
||||||
databaseName: this.databaseName,
|
localize('jobStepData.saveErrorMessage', "Step update failed '{0}'", result.errorMessage ? result.errorMessage : 'Unknown'));
|
||||||
databaseUserName: this.databaseUserName,
|
|
||||||
server: this.server,
|
|
||||||
outputFileName: this.outputFileName,
|
|
||||||
appendToLogFile: this.appendToLogFile,
|
|
||||||
appendToStepHist: this.appendToStepHist,
|
|
||||||
writeLogToTable: this.writeLogToTable,
|
|
||||||
appendLogToTable: this.appendLogToTable,
|
|
||||||
retryAttempts: this.retryAttempts,
|
|
||||||
retryInterval: this.retryInterval,
|
|
||||||
proxyName: this.proxyName
|
|
||||||
}).then(result => {
|
|
||||||
if (result && result.success) {
|
|
||||||
console.info(result);
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public validate(): { valid: boolean, errorMessages: string[] } {
|
public validate(): { valid: boolean, errorMessages: string[] } {
|
||||||
let validationErrors: string[] = [];
|
let validationErrors: string[] = [];
|
||||||
|
|
||||||
if (!(this.stepName && this.stepName.trim())) {
|
if (!(this.stepName && this.stepName.trim())) {
|
||||||
validationErrors.push(this.CreateStepErrorMessage_StepNameIsEmpty);
|
validationErrors.push(JobStepData.CreateStepErrorMessage_StepNameIsEmpty);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(this.jobName && this.jobName.trim())) {
|
if (!(this.jobName && this.jobName.trim())) {
|
||||||
validationErrors.push(this.CreateStepErrorMessage_JobNameIsEmpty);
|
validationErrors.push(JobStepData.CreateStepErrorMessage_JobNameIsEmpty);
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -102,4 +94,66 @@ export class JobStepData implements IAgentDialogData {
|
|||||||
errorMessages: validationErrors
|
errorMessages: validationErrors
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static convertToJobStepData(jobStepInfo: sqlops.AgentJobStepInfo, jobData: JobData) {
|
||||||
|
let stepData = new JobStepData(jobData.ownerUri, jobData);
|
||||||
|
stepData.ownerUri = jobData.ownerUri;
|
||||||
|
stepData.jobId = jobStepInfo.jobId;
|
||||||
|
stepData.jobName = jobStepInfo.jobName;
|
||||||
|
stepData.script = jobStepInfo.script;
|
||||||
|
stepData.scriptName = jobStepInfo.scriptName,
|
||||||
|
stepData.stepName = jobStepInfo.stepName,
|
||||||
|
stepData.subSystem = jobStepInfo.subSystem,
|
||||||
|
stepData.id = jobStepInfo.id,
|
||||||
|
stepData.failureAction = jobStepInfo.failureAction,
|
||||||
|
stepData.successAction = jobStepInfo.successAction,
|
||||||
|
stepData.failStepId = jobStepInfo.failStepId,
|
||||||
|
stepData.successStepId = jobStepInfo.successStepId,
|
||||||
|
stepData.command = jobStepInfo.command,
|
||||||
|
stepData.commandExecutionSuccessCode = jobStepInfo.commandExecutionSuccessCode,
|
||||||
|
stepData.databaseName = jobStepInfo.databaseName,
|
||||||
|
stepData.databaseUserName = jobStepInfo.databaseUserName,
|
||||||
|
stepData.server = jobStepInfo.server,
|
||||||
|
stepData.outputFileName = jobStepInfo.outputFileName,
|
||||||
|
stepData.appendToLogFile = jobStepInfo.appendToLogFile,
|
||||||
|
stepData.appendToStepHist = jobStepInfo.appendToStepHist,
|
||||||
|
stepData.writeLogToTable = jobStepInfo.writeLogToTable,
|
||||||
|
stepData.appendLogToTable = jobStepInfo.appendLogToTable,
|
||||||
|
stepData.retryAttempts = jobStepInfo.retryAttempts,
|
||||||
|
stepData.retryInterval = jobStepInfo.retryInterval,
|
||||||
|
stepData.proxyName = jobStepInfo.proxyName;
|
||||||
|
stepData.dialogMode = AgentDialogMode.EDIT;
|
||||||
|
return stepData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static convertToAgentJobStepInfo(jobStepData: JobStepData): sqlops.AgentJobStepInfo {
|
||||||
|
let result: sqlops.AgentJobStepInfo = {
|
||||||
|
jobId: jobStepData.jobId,
|
||||||
|
jobName: jobStepData.jobName,
|
||||||
|
script: jobStepData.script,
|
||||||
|
scriptName: jobStepData.scriptName,
|
||||||
|
stepName: jobStepData.stepName,
|
||||||
|
subSystem: jobStepData.subSystem,
|
||||||
|
id: jobStepData.id,
|
||||||
|
failureAction: jobStepData.failureAction,
|
||||||
|
successAction: jobStepData.successAction,
|
||||||
|
failStepId: jobStepData.failStepId,
|
||||||
|
successStepId: jobStepData.successStepId,
|
||||||
|
command: jobStepData.command,
|
||||||
|
commandExecutionSuccessCode: jobStepData.commandExecutionSuccessCode,
|
||||||
|
databaseName: jobStepData.databaseName,
|
||||||
|
databaseUserName: jobStepData.databaseUserName,
|
||||||
|
server: jobStepData.server,
|
||||||
|
outputFileName: jobStepData.outputFileName,
|
||||||
|
appendToLogFile: jobStepData.appendToLogFile,
|
||||||
|
appendToStepHist: jobStepData.appendToStepHist,
|
||||||
|
writeLogToTable: jobStepData.writeLogToTable,
|
||||||
|
appendLogToTable: jobStepData.appendLogToTable,
|
||||||
|
retryAttempts: jobStepData.retryAttempts,
|
||||||
|
retryInterval: jobStepData.retryInterval,
|
||||||
|
proxyName: jobStepData.proxyName
|
||||||
|
};
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -13,9 +13,11 @@ export class PickScheduleData implements IAgentDialogData {
|
|||||||
public ownerUri: string;
|
public ownerUri: string;
|
||||||
public schedules: sqlops.AgentJobScheduleInfo[];
|
public schedules: sqlops.AgentJobScheduleInfo[];
|
||||||
public selectedSchedule: sqlops.AgentJobScheduleInfo;
|
public selectedSchedule: sqlops.AgentJobScheduleInfo;
|
||||||
|
private jobName: string;
|
||||||
|
|
||||||
constructor(ownerUri:string) {
|
constructor(ownerUri:string, jobName: string) {
|
||||||
this.ownerUri = ownerUri;
|
this.ownerUri = ownerUri;
|
||||||
|
this.jobName = jobName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async initialize() {
|
public async initialize() {
|
||||||
@@ -27,5 +29,6 @@ export class PickScheduleData implements IAgentDialogData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async save() {
|
public async save() {
|
||||||
|
this.selectedSchedule.jobName = this.jobName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import { AgentUtils } from '../agentUtils';
|
|||||||
import { AlertData } from '../data/alertData';
|
import { AlertData } from '../data/alertData';
|
||||||
import { OperatorDialog } from './operatorDialog';
|
import { OperatorDialog } from './operatorDialog';
|
||||||
import { JobDialog } from './jobDialog';
|
import { JobDialog } from './jobDialog';
|
||||||
|
import { JobData } from '../data/jobData';
|
||||||
|
|
||||||
const localize = nls.loadMessageBundle();
|
const localize = nls.loadMessageBundle();
|
||||||
|
|
||||||
@@ -148,14 +149,23 @@ export class AlertDialog extends AgentDialog<AlertData> {
|
|||||||
private delayMinutesTextBox: sqlops.InputBoxComponent;
|
private delayMinutesTextBox: sqlops.InputBoxComponent;
|
||||||
private delaySecondsTextBox: sqlops.InputBoxComponent;
|
private delaySecondsTextBox: sqlops.InputBoxComponent;
|
||||||
|
|
||||||
private jobs: string[];
|
|
||||||
private databases: string[];
|
private databases: string[];
|
||||||
|
private jobModel: JobData;
|
||||||
|
public jobId: string;
|
||||||
|
public jobName: string;
|
||||||
|
|
||||||
constructor(ownerUri: string, alertInfo: sqlops.AgentAlertInfo = undefined, jobs: string[]) {
|
constructor(
|
||||||
|
ownerUri: string,
|
||||||
|
jobModel: JobData,
|
||||||
|
alertInfo: sqlops.AgentAlertInfo = undefined,
|
||||||
|
viaJobDialog: boolean = false
|
||||||
|
) {
|
||||||
super(ownerUri,
|
super(ownerUri,
|
||||||
new AlertData(ownerUri, alertInfo),
|
new AlertData(ownerUri, alertInfo, jobModel, viaJobDialog),
|
||||||
alertInfo ? AlertDialog.EditDialogTitle : AlertDialog.CreateDialogTitle);
|
alertInfo ? AlertDialog.EditDialogTitle : AlertDialog.CreateDialogTitle);
|
||||||
this.jobs = jobs;
|
this.jobModel = jobModel;
|
||||||
|
this.jobId = this.jobId ? this.jobId : this.jobModel.jobId;
|
||||||
|
this.jobName = this.jobName ? this.jobName : this.jobModel.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async initializeDialog(dialog: sqlops.window.modelviewdialog.Dialog) {
|
protected async initializeDialog(dialog: sqlops.window.modelviewdialog.Dialog) {
|
||||||
@@ -512,7 +522,8 @@ export class AlertDialog extends AgentDialog<AlertData> {
|
|||||||
protected updateModel() {
|
protected updateModel() {
|
||||||
this.model.name = this.nameTextBox.value;
|
this.model.name = this.nameTextBox.value;
|
||||||
this.model.isEnabled = this.enabledCheckBox.checked;
|
this.model.isEnabled = this.enabledCheckBox.checked;
|
||||||
|
this.model.jobId = this.jobId;
|
||||||
|
this.model.jobName = this.jobName;
|
||||||
this.model.alertType = this.getDropdownValue(this.typeDropDown);
|
this.model.alertType = this.getDropdownValue(this.typeDropDown);
|
||||||
let databaseName = this.getDropdownValue(this.databaseDropDown);
|
let databaseName = this.getDropdownValue(this.databaseDropDown);
|
||||||
this.model.databaseName = (databaseName !== AlertDialog.AllDatabases) ? databaseName : undefined;
|
this.model.databaseName = (databaseName !== AlertDialog.AllDatabases) ? databaseName : undefined;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import { PickScheduleDialog } from './pickScheduleDialog';
|
|||||||
import { AlertDialog } from './alertDialog';
|
import { AlertDialog } from './alertDialog';
|
||||||
import { AgentDialog } from './agentDialog';
|
import { AgentDialog } from './agentDialog';
|
||||||
import { AgentUtils } from '../agentUtils';
|
import { AgentUtils } from '../agentUtils';
|
||||||
|
import { JobStepData } from '../data/jobStepData';
|
||||||
|
|
||||||
const localize = nls.loadMessageBundle();
|
const localize = nls.loadMessageBundle();
|
||||||
|
|
||||||
@@ -108,12 +109,22 @@ export class JobDialog extends AgentDialog<JobData> {
|
|||||||
// Alert tab controls
|
// Alert tab controls
|
||||||
private alertsTable: sqlops.TableComponent;
|
private alertsTable: sqlops.TableComponent;
|
||||||
private newAlertButton: sqlops.ButtonComponent;
|
private newAlertButton: sqlops.ButtonComponent;
|
||||||
|
private isEdit: boolean = false;
|
||||||
|
|
||||||
|
// Job objects
|
||||||
|
private steps: sqlops.AgentJobStepInfo[];
|
||||||
|
private schedules: sqlops.AgentJobScheduleInfo[];
|
||||||
|
private alerts: sqlops.AgentAlertInfo[] = [];
|
||||||
|
|
||||||
constructor(ownerUri: string, jobInfo: sqlops.AgentJobInfo = undefined) {
|
constructor(ownerUri: string, jobInfo: sqlops.AgentJobInfo = undefined) {
|
||||||
super(
|
super(
|
||||||
ownerUri,
|
ownerUri,
|
||||||
new JobData(ownerUri, jobInfo),
|
new JobData(ownerUri, jobInfo),
|
||||||
jobInfo ? JobDialog.EditDialogTitle : JobDialog.CreateDialogTitle);
|
jobInfo ? JobDialog.EditDialogTitle : JobDialog.CreateDialogTitle);
|
||||||
|
this.steps = this.model.jobSteps ? this.model.jobSteps : [];
|
||||||
|
this.schedules = this.model.jobSchedules ? this.model.jobSchedules : [];
|
||||||
|
this.alerts = this.model.alerts ? this.model.alerts : [];
|
||||||
|
this.isEdit = jobInfo ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async initializeDialog() {
|
protected async initializeDialog() {
|
||||||
@@ -196,12 +207,7 @@ export class JobDialog extends AgentDialog<JobData> {
|
|||||||
|
|
||||||
private initializeStepsTab() {
|
private initializeStepsTab() {
|
||||||
this.stepsTab.registerContent(async view => {
|
this.stepsTab.registerContent(async view => {
|
||||||
let previewTag = view.modelBuilder.text()
|
let data = this.steps ? this.convertStepsToData(this.steps) : [];
|
||||||
.withProperties({
|
|
||||||
value: 'Feature Preview'
|
|
||||||
}).component();
|
|
||||||
let steps = this.model.jobSteps ? this.model.jobSteps : [];
|
|
||||||
let data = this.convertStepsToData(steps);
|
|
||||||
this.stepsTable = view.modelBuilder.table()
|
this.stepsTable = view.modelBuilder.table()
|
||||||
.withProperties({
|
.withProperties({
|
||||||
columns: [
|
columns: [
|
||||||
@@ -235,13 +241,15 @@ export class JobDialog extends AgentDialog<JobData> {
|
|||||||
width: 80
|
width: 80
|
||||||
}).component();
|
}).component();
|
||||||
|
|
||||||
let stepDialog = new JobStepDialog(this.model.ownerUri, '' , data.length + 1, this.model);
|
let stepDialog = new JobStepDialog(this.model.ownerUri, '' , this.model, null, true);
|
||||||
stepDialog.onSuccess((step) => {
|
stepDialog.onSuccess((step) => {
|
||||||
this.model.jobSteps.push(step);
|
let stepInfo = JobStepData.convertToAgentJobStepInfo(step);
|
||||||
this.stepsTable.data = this.convertStepsToData(this.model.jobSteps);
|
this.steps.push(stepInfo);
|
||||||
|
this.stepsTable.data = this.convertStepsToData(this.steps);
|
||||||
});
|
});
|
||||||
this.newStepButton.onDidClick((e)=>{
|
this.newStepButton.onDidClick((e)=>{
|
||||||
if (this.nameTextBox.value && this.nameTextBox.value.length > 0) {
|
if (this.nameTextBox.value && this.nameTextBox.value.length > 0) {
|
||||||
|
stepDialog.jobName = this.nameTextBox.value;
|
||||||
stepDialog.openDialog();
|
stepDialog.openDialog();
|
||||||
} else {
|
} else {
|
||||||
this.dialog.message = { text: this.BlankJobNameErrorText };
|
this.dialog.message = { text: this.BlankJobNameErrorText };
|
||||||
@@ -267,23 +275,20 @@ export class JobDialog extends AgentDialog<JobData> {
|
|||||||
// one step selection
|
// one step selection
|
||||||
if (this.stepsTable.selectedRows.length === 1) {
|
if (this.stepsTable.selectedRows.length === 1) {
|
||||||
let rowNumber = this.stepsTable.selectedRows[0];
|
let rowNumber = this.stepsTable.selectedRows[0];
|
||||||
let stepData = steps[rowNumber];
|
let stepData = this.model.jobSteps[rowNumber];
|
||||||
this.deleteStepButton.enabled = true;
|
this.deleteStepButton.enabled = true;
|
||||||
this.editStepButton.enabled = true;
|
this.editStepButton.enabled = true;
|
||||||
this.editStepButton.onDidClick((e) => {
|
this.editStepButton.onDidClick(() => {
|
||||||
// implement edit steps
|
let stepDialog = new JobStepDialog(this.model.ownerUri, '' , this.model, stepData, true);
|
||||||
|
stepDialog.openDialog();
|
||||||
// let stepDialog = new JobStepDialog(this.model.ownerUri, this.nameTextBox.value, '' , 1, this.model);
|
|
||||||
// stepDialog.openNewStepDialog();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
this.deleteStepButton.onDidClick((e) => {
|
this.deleteStepButton.onDidClick(() => {
|
||||||
AgentUtils.getAgentService().then((agentService) => {
|
AgentUtils.getAgentService().then((agentService) => {
|
||||||
let steps = this.model.jobSteps ? this.model.jobSteps : [];
|
let steps = this.model.jobSteps ? this.model.jobSteps : [];
|
||||||
agentService.deleteJobStep(this.ownerUri, stepData).then((result) => {
|
agentService.deleteJobStep(this.ownerUri, stepData).then((result) => {
|
||||||
if (result && result.success) {
|
if (result && result.success) {
|
||||||
delete steps[rowNumber];
|
delete steps[rowNumber];
|
||||||
this.model.jobSteps = steps;
|
|
||||||
let data = this.convertStepsToData(steps);
|
let data = this.convertStepsToData(steps);
|
||||||
this.stepsTable.data = data;
|
this.stepsTable.data = data;
|
||||||
}
|
}
|
||||||
@@ -295,10 +300,6 @@ export class JobDialog extends AgentDialog<JobData> {
|
|||||||
|
|
||||||
let formModel = view.modelBuilder.formContainer()
|
let formModel = view.modelBuilder.formContainer()
|
||||||
.withFormItems([{
|
.withFormItems([{
|
||||||
component: previewTag,
|
|
||||||
title: ''
|
|
||||||
},
|
|
||||||
{
|
|
||||||
component: this.stepsTable,
|
component: this.stepsTable,
|
||||||
title: this.JobStepsTopLabelString,
|
title: this.JobStepsTopLabelString,
|
||||||
actions: [this.moveStepUpButton, this.moveStepDownButton, this.newStepButton, this.editStepButton, this.deleteStepButton]
|
actions: [this.moveStepUpButton, this.moveStepDownButton, this.newStepButton, this.editStepButton, this.deleteStepButton]
|
||||||
@@ -309,10 +310,6 @@ export class JobDialog extends AgentDialog<JobData> {
|
|||||||
|
|
||||||
private initializeAlertsTab() {
|
private initializeAlertsTab() {
|
||||||
this.alertsTab.registerContent(async view => {
|
this.alertsTab.registerContent(async view => {
|
||||||
let previewTag = view.modelBuilder.text()
|
|
||||||
.withProperties({
|
|
||||||
value: 'Feature Preview'
|
|
||||||
}).component();
|
|
||||||
let alerts = this.model.alerts ? this.model.alerts : [];
|
let alerts = this.model.alerts ? this.model.alerts : [];
|
||||||
let data = this.convertAlertsToData(alerts);
|
let data = this.convertAlertsToData(alerts);
|
||||||
this.alertsTable = view.modelBuilder.table()
|
this.alertsTable = view.modelBuilder.table()
|
||||||
@@ -323,7 +320,7 @@ export class JobDialog extends AgentDialog<JobData> {
|
|||||||
this.AlertTypeLabelString
|
this.AlertTypeLabelString
|
||||||
],
|
],
|
||||||
data: data,
|
data: data,
|
||||||
height: 430,
|
height: 750,
|
||||||
width: 400
|
width: 400
|
||||||
}).component();
|
}).component();
|
||||||
|
|
||||||
@@ -332,18 +329,24 @@ export class JobDialog extends AgentDialog<JobData> {
|
|||||||
width: 80
|
width: 80
|
||||||
}).component();
|
}).component();
|
||||||
|
|
||||||
this.newAlertButton.onDidClick((e)=>{
|
let alertDialog = new AlertDialog(this.model.ownerUri, this.model, null, true);
|
||||||
let alertDialog = new AlertDialog(this.model.ownerUri, null, []);
|
alertDialog.onSuccess((alert) => {
|
||||||
alertDialog.onSuccess((dialogModel) => {
|
let alertInfo = alert.toAgentAlertInfo();
|
||||||
|
this.alerts.push(alertInfo);
|
||||||
|
this.alertsTable.data = this.convertAlertsToData(this.alerts);
|
||||||
});
|
});
|
||||||
|
this.newAlertButton.onDidClick(()=>{
|
||||||
|
if (this.nameTextBox.value && this.nameTextBox.value.length > 0) {
|
||||||
|
alertDialog.jobId = this.model.jobId;
|
||||||
|
alertDialog.jobName = this.model.name ? this.model.name : this.nameTextBox.value;
|
||||||
alertDialog.openDialog();
|
alertDialog.openDialog();
|
||||||
|
} else {
|
||||||
|
this.dialog.message = { text: this.BlankJobNameErrorText };
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
let formModel = view.modelBuilder.formContainer()
|
let formModel = view.modelBuilder.formContainer()
|
||||||
.withFormItems([{
|
.withFormItems([{
|
||||||
component: previewTag,
|
|
||||||
title: ''
|
|
||||||
}, {
|
|
||||||
component: this.alertsTable,
|
component: this.alertsTable,
|
||||||
title: this.AlertsTopLabelString,
|
title: this.AlertsTopLabelString,
|
||||||
actions: [this.newAlertButton]
|
actions: [this.newAlertButton]
|
||||||
@@ -371,13 +374,16 @@ export class JobDialog extends AgentDialog<JobData> {
|
|||||||
label: this.PickScheduleButtonString,
|
label: this.PickScheduleButtonString,
|
||||||
width: 80
|
width: 80
|
||||||
}).component();
|
}).component();
|
||||||
|
|
||||||
this.pickScheduleButton.onDidClick((e)=>{
|
this.pickScheduleButton.onDidClick((e)=>{
|
||||||
let pickScheduleDialog = new PickScheduleDialog(this.model.ownerUri);
|
let pickScheduleDialog = new PickScheduleDialog(this.model.ownerUri, this.model.name);
|
||||||
pickScheduleDialog.onSuccess((dialogModel) => {
|
pickScheduleDialog.onSuccess((dialogModel) => {
|
||||||
let selectedSchedule = dialogModel.selectedSchedule;
|
let selectedSchedule = dialogModel.selectedSchedule;
|
||||||
if (selectedSchedule) {
|
if (selectedSchedule) {
|
||||||
this.model.addJobSchedule(selectedSchedule);
|
let existingSchedule = this.schedules.find(item => item.name === selectedSchedule.name);
|
||||||
|
if (!existingSchedule) {
|
||||||
|
selectedSchedule.jobName = this.model.name ? this.model.name : this.nameTextBox.value;
|
||||||
|
this.schedules.push(selectedSchedule);
|
||||||
|
}
|
||||||
this.populateScheduleTable();
|
this.populateScheduleTable();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -398,8 +404,7 @@ export class JobDialog extends AgentDialog<JobData> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private populateScheduleTable() {
|
private populateScheduleTable() {
|
||||||
let schedules = this.model.jobSchedules ? this.model.jobSchedules : [];
|
let data = this.convertSchedulesToData(this.schedules);
|
||||||
let data = this.convertSchedulesToData(schedules);
|
|
||||||
if (data.length > 0) {
|
if (data.length > 0) {
|
||||||
this.schedulesTable.data = data;
|
this.schedulesTable.data = data;
|
||||||
this.schedulesTable.height = 750;
|
this.schedulesTable.height = 750;
|
||||||
@@ -562,5 +567,17 @@ export class JobDialog extends AgentDialog<JobData> {
|
|||||||
this.model.pageLevel = this.getActualConditionValue(this.pagerCheckBox, this.pagerConditionDropdown);
|
this.model.pageLevel = this.getActualConditionValue(this.pagerCheckBox, this.pagerConditionDropdown);
|
||||||
this.model.eventLogLevel = this.getActualConditionValue(this.eventLogCheckBox, this.eventLogConditionDropdown);
|
this.model.eventLogLevel = this.getActualConditionValue(this.eventLogCheckBox, this.eventLogConditionDropdown);
|
||||||
this.model.deleteLevel = this.getActualConditionValue(this.deleteJobCheckBox, this.deleteJobConditionDropdown);
|
this.model.deleteLevel = this.getActualConditionValue(this.deleteJobCheckBox, this.deleteJobConditionDropdown);
|
||||||
|
if (!this.model.jobSteps) {
|
||||||
|
this.model.jobSteps = [];
|
||||||
|
}
|
||||||
|
this.model.jobSteps = this.steps;
|
||||||
|
if (!this.model.jobSchedules) {
|
||||||
|
this.model.jobSchedules = [];
|
||||||
|
}
|
||||||
|
this.model.jobSchedules = this.schedules;
|
||||||
|
if (!this.model.alerts) {
|
||||||
|
this.model.alerts = [];
|
||||||
|
}
|
||||||
|
this.model.alerts = this.alerts;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,7 @@ import { JobStepData } from '../data/jobStepData';
|
|||||||
import { AgentUtils } from '../agentUtils';
|
import { AgentUtils } from '../agentUtils';
|
||||||
import { JobData } from '../data/jobData';
|
import { JobData } from '../data/jobData';
|
||||||
import { AgentDialog } from './agentDialog';
|
import { AgentDialog } from './agentDialog';
|
||||||
|
import { AgentDialogMode } from '../interfaces';
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
|
||||||
const localize = nls.loadMessageBundle();
|
const localize = nls.loadMessageBundle();
|
||||||
@@ -19,7 +20,8 @@ export class JobStepDialog extends AgentDialog<JobStepData> {
|
|||||||
// TODO: localize
|
// TODO: localize
|
||||||
// Top level
|
// Top level
|
||||||
//
|
//
|
||||||
private readonly DialogTitle: string = localize('jobStepDialog.newJobStep', 'New Job Step');
|
private static readonly NewDialogTitle: string = localize('jobStepDialog.newJobStep', 'New Job Step');
|
||||||
|
private static readonly EditDialogTitle: string = localize('jobStepDialog.editJobStep', 'Edit Job Step');
|
||||||
private readonly FileBrowserDialogTitle: string = localize('jobStepDialog.fileBrowserTitle', 'Locate Database Files - ');
|
private readonly FileBrowserDialogTitle: string = localize('jobStepDialog.fileBrowserTitle', 'Locate Database Files - ');
|
||||||
private readonly OkButtonText: string = localize('jobStepDialog.ok', 'OK');
|
private readonly OkButtonText: string = localize('jobStepDialog.ok', 'OK');
|
||||||
private readonly CancelButtonText: string = localize('jobStepDialog.cancel', 'Cancel');
|
private readonly CancelButtonText: string = localize('jobStepDialog.cancel', 'Cancel');
|
||||||
@@ -102,24 +104,33 @@ export class JobStepDialog extends AgentDialog<JobStepData> {
|
|||||||
// Checkbox
|
// Checkbox
|
||||||
private appendToExistingFileCheckbox: sqlops.CheckBoxComponent;
|
private appendToExistingFileCheckbox: sqlops.CheckBoxComponent;
|
||||||
private logToTableCheckbox: sqlops.CheckBoxComponent;
|
private logToTableCheckbox: sqlops.CheckBoxComponent;
|
||||||
|
private logStepOutputHistoryCheckbox: sqlops.CheckBoxComponent;
|
||||||
|
|
||||||
private fileBrowserTree: sqlops.FileBrowserTreeComponent;
|
private fileBrowserTree: sqlops.FileBrowserTreeComponent;
|
||||||
private jobModel: JobData;
|
private jobModel: JobData;
|
||||||
private jobName: string;
|
public jobName: string;
|
||||||
private server: string;
|
private server: string;
|
||||||
private stepId: number;
|
private stepId: number;
|
||||||
|
private isEdit: boolean;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
ownerUri: string,
|
ownerUri: string,
|
||||||
server: string,
|
server: string,
|
||||||
stepId: number,
|
jobModel: JobData,
|
||||||
jobModel?: JobData
|
jobStepInfo?: sqlops.AgentJobStepInfo,
|
||||||
|
viaJobDialog: boolean = false
|
||||||
) {
|
) {
|
||||||
super(ownerUri, new JobStepData(ownerUri, jobModel), 'New Step');
|
super(ownerUri,
|
||||||
this.stepId = stepId;
|
jobStepInfo ? JobStepData.convertToJobStepData(jobStepInfo, jobModel) : new JobStepData(ownerUri, jobModel, viaJobDialog),
|
||||||
this.jobName = jobModel.name;
|
jobStepInfo ? JobStepDialog.EditDialogTitle : JobStepDialog.NewDialogTitle);
|
||||||
this.server = server;
|
this.stepId = jobStepInfo ?
|
||||||
|
jobStepInfo.id : jobModel.jobSteps ?
|
||||||
|
jobModel.jobSteps.length + 1 : 1;
|
||||||
|
this.isEdit = jobStepInfo ? true : false;
|
||||||
|
this.model.dialogMode = this.isEdit ? AgentDialogMode.EDIT : AgentDialogMode.CREATE;
|
||||||
this.jobModel = jobModel;
|
this.jobModel = jobModel;
|
||||||
|
this.jobName = this.jobName ? this.jobName : this.jobModel.name;
|
||||||
|
this.server = server;
|
||||||
}
|
}
|
||||||
|
|
||||||
private initializeUIComponents() {
|
private initializeUIComponents() {
|
||||||
@@ -254,6 +265,14 @@ export class JobStepDialog extends AgentDialog<JobStepData> {
|
|||||||
let formWrapper = view.modelBuilder.loadingComponent().withItem(formModel).component();
|
let formWrapper = view.modelBuilder.loadingComponent().withItem(formModel).component();
|
||||||
formWrapper.loading = false;
|
formWrapper.loading = false;
|
||||||
await view.initializeModel(formWrapper);
|
await view.initializeModel(formWrapper);
|
||||||
|
|
||||||
|
// Load values for edit scenario
|
||||||
|
if (this.isEdit) {
|
||||||
|
this.nameTextBox.value = this.model.stepName;
|
||||||
|
this.typeDropdown.value = this.model.subSystem;
|
||||||
|
this.databaseDropdown.value = this.model.databaseName;
|
||||||
|
this.commandTextBox.value = this.model.command;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -290,7 +309,7 @@ export class JobStepDialog extends AgentDialog<JobStepData> {
|
|||||||
let logToTableContainer = view.modelBuilder.flexContainer()
|
let logToTableContainer = view.modelBuilder.flexContainer()
|
||||||
.withLayout({ flexFlow: 'row', justifyContent: 'space-between', width: 300 })
|
.withLayout({ flexFlow: 'row', justifyContent: 'space-between', width: 300 })
|
||||||
.withItems([this.logToTableCheckbox]).component();
|
.withItems([this.logToTableCheckbox]).component();
|
||||||
let logStepOutputHistoryCheckbox = view.modelBuilder.checkBox()
|
this.logStepOutputHistoryCheckbox = view.modelBuilder.checkBox()
|
||||||
.withProperties({ label: this.IncludeStepOutputHistoryLabel }).component();
|
.withProperties({ label: this.IncludeStepOutputHistoryLabel }).component();
|
||||||
this.userInputBox = view.modelBuilder.inputBox()
|
this.userInputBox = view.modelBuilder.inputBox()
|
||||||
.withProperties({ inputType: 'text', width: '100%' }).component();
|
.withProperties({ inputType: 'text', width: '100%' }).component();
|
||||||
@@ -315,7 +334,7 @@ export class JobStepDialog extends AgentDialog<JobStepData> {
|
|||||||
component: appendCheckboxContainer,
|
component: appendCheckboxContainer,
|
||||||
title: ' '
|
title: ' '
|
||||||
}, {
|
}, {
|
||||||
component: logStepOutputHistoryCheckbox,
|
component: this.logStepOutputHistoryCheckbox,
|
||||||
title: ''
|
title: ''
|
||||||
}, {
|
}, {
|
||||||
component: this.userInputBox,
|
component: this.userInputBox,
|
||||||
@@ -326,7 +345,19 @@ export class JobStepDialog extends AgentDialog<JobStepData> {
|
|||||||
|
|
||||||
let formWrapper = view.modelBuilder.loadingComponent().withItem(formModel).component();
|
let formWrapper = view.modelBuilder.loadingComponent().withItem(formModel).component();
|
||||||
formWrapper.loading = false;
|
formWrapper.loading = false;
|
||||||
view.initializeModel(formWrapper);
|
await view.initializeModel(formWrapper);
|
||||||
|
|
||||||
|
if (this.isEdit) {
|
||||||
|
this.successActionDropdown.value = this.model.successAction;
|
||||||
|
this.retryAttemptsBox.value = this.model.retryAttempts.toString();
|
||||||
|
this.retryIntervalBox.value = this.model.retryInterval.toString();
|
||||||
|
this.failureActionDropdown.value = this.model.failureAction;
|
||||||
|
this.outputFileNameBox.value = this.model.outputFileName;
|
||||||
|
this.appendToExistingFileCheckbox.checked = this.model.appendToLogFile;
|
||||||
|
this.logToTableCheckbox.checked = this.model.appendLogToTable;
|
||||||
|
this.logStepOutputHistoryCheckbox.checked = this.model.appendToStepHist;
|
||||||
|
this.userInputBox.value = this.model.databaseUserName;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -479,7 +510,6 @@ export class JobStepDialog extends AgentDialog<JobStepData> {
|
|||||||
this.model.jobName = this.jobName;
|
this.model.jobName = this.jobName;
|
||||||
this.model.id = this.stepId;
|
this.model.id = this.stepId;
|
||||||
this.model.server = this.server;
|
this.model.server = this.server;
|
||||||
this.model.stepName = this.nameTextBox.value;
|
|
||||||
this.model.subSystem = this.typeDropdown.value as string;
|
this.model.subSystem = this.typeDropdown.value as string;
|
||||||
this.model.databaseName = this.databaseDropdown.value as string;
|
this.model.databaseName = this.databaseDropdown.value as string;
|
||||||
this.model.script = this.commandTextBox.value;
|
this.model.script = this.commandTextBox.value;
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ export class PickScheduleDialog {
|
|||||||
private _onSuccess: vscode.EventEmitter<PickScheduleData> = new vscode.EventEmitter<PickScheduleData>();
|
private _onSuccess: vscode.EventEmitter<PickScheduleData> = new vscode.EventEmitter<PickScheduleData>();
|
||||||
public readonly onSuccess: vscode.Event<PickScheduleData> = this._onSuccess.event;
|
public readonly onSuccess: vscode.Event<PickScheduleData> = this._onSuccess.event;
|
||||||
|
|
||||||
constructor(ownerUri: string) {
|
constructor(ownerUri: string, jobName: string) {
|
||||||
this.model = new PickScheduleData(ownerUri);
|
this.model = new PickScheduleData(ownerUri, jobName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async showDialog() {
|
public async showDialog() {
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import { OperatorDialog } from './dialogs/operatorDialog';
|
|||||||
import { ProxyDialog } from './dialogs/proxyDialog';
|
import { ProxyDialog } from './dialogs/proxyDialog';
|
||||||
import { JobStepDialog } from './dialogs/jobStepDialog';
|
import { JobStepDialog } from './dialogs/jobStepDialog';
|
||||||
import { PickScheduleDialog } from './dialogs/pickScheduleDialog';
|
import { PickScheduleDialog } from './dialogs/pickScheduleDialog';
|
||||||
|
import { JobData } from './data/jobData';
|
||||||
|
import { AgentUtils } from './agentUtils';
|
||||||
|
|
||||||
const localize = nls.loadMessageBundle();
|
const localize = nls.loadMessageBundle();
|
||||||
|
|
||||||
@@ -40,18 +42,24 @@ export class MainController {
|
|||||||
let dialog = new JobDialog(ownerUri, jobInfo);
|
let dialog = new JobDialog(ownerUri, jobInfo);
|
||||||
dialog.openDialog();
|
dialog.openDialog();
|
||||||
});
|
});
|
||||||
vscode.commands.registerCommand('agent.openNewStepDialog', (ownerUri: string, server: string, stepId: number) => {
|
vscode.commands.registerCommand('agent.openNewStepDialog', (ownerUri: string, server: string, jobInfo: sqlops.AgentJobInfo, jobStepInfo: sqlops.AgentJobStepInfo) => {
|
||||||
let dialog = new JobStepDialog(ownerUri, server, stepId);
|
AgentUtils.getAgentService().then((agentService) => {
|
||||||
|
let jobData: JobData = new JobData(ownerUri, jobInfo, agentService);
|
||||||
|
let dialog = new JobStepDialog(ownerUri, server, jobData, jobStepInfo, false);
|
||||||
dialog.openDialog();
|
dialog.openDialog();
|
||||||
});
|
});
|
||||||
vscode.commands.registerCommand('agent.openPickScheduleDialog', (ownerUri: string) => {
|
});
|
||||||
let dialog = new PickScheduleDialog(ownerUri);
|
vscode.commands.registerCommand('agent.openPickScheduleDialog', (ownerUri: string, jobName: string) => {
|
||||||
|
let dialog = new PickScheduleDialog(ownerUri, jobName);
|
||||||
dialog.showDialog();
|
dialog.showDialog();
|
||||||
});
|
});
|
||||||
vscode.commands.registerCommand('agent.openAlertDialog', (ownerUri: string, alertInfo: sqlops.AgentAlertInfo, jobs: string[]) => {
|
vscode.commands.registerCommand('agent.openAlertDialog', (ownerUri: string, jobInfo: sqlops.AgentJobInfo, alertInfo: sqlops.AgentAlertInfo) => {
|
||||||
let dialog = new AlertDialog(ownerUri, alertInfo, jobs);
|
AgentUtils.getAgentService().then((agentService) => {
|
||||||
|
let jobData: JobData = new JobData(ownerUri, jobInfo, agentService);
|
||||||
|
let dialog = new AlertDialog(ownerUri, jobData, alertInfo, false);
|
||||||
dialog.openDialog();
|
dialog.openDialog();
|
||||||
});
|
});
|
||||||
|
});
|
||||||
vscode.commands.registerCommand('agent.openOperatorDialog', (ownerUri: string, operatorInfo: sqlops.AgentOperatorInfo) => {
|
vscode.commands.registerCommand('agent.openOperatorDialog', (ownerUri: string, operatorInfo: sqlops.AgentOperatorInfo) => {
|
||||||
let dialog = new OperatorDialog(ownerUri, operatorInfo);
|
let dialog = new OperatorDialog(ownerUri, operatorInfo);
|
||||||
dialog.openDialog();
|
dialog.openDialog();
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export class TestAgentService implements sqlops.AgentServicesProvider {
|
|||||||
getJobs(ownerUri: string): Thenable<sqlops.AgentJobsResult> {
|
getJobs(ownerUri: string): Thenable<sqlops.AgentJobsResult> {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
getJobHistory(ownerUri: string, jobId: string): Thenable<sqlops.AgentJobHistoryResult> {
|
getJobHistory(ownerUri: string, jobId: string, jobName: string): Thenable<sqlops.AgentJobHistoryResult> {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
jobAction(ownerUri: string, jobName: string, action: string): Thenable<sqlops.ResultStatus> {
|
jobAction(ownerUri: string, jobName: string, action: string): Thenable<sqlops.ResultStatus> {
|
||||||
|
|||||||
@@ -5,38 +5,46 @@
|
|||||||
ansi-regex@^3.0.0:
|
ansi-regex@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
|
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
|
||||||
|
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
|
||||||
|
|
||||||
charenc@~0.0.1:
|
charenc@~0.0.1:
|
||||||
version "0.0.2"
|
version "0.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
|
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
|
||||||
|
integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
|
||||||
|
|
||||||
crypt@~0.0.1:
|
crypt@~0.0.1:
|
||||||
version "0.0.2"
|
version "0.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
|
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
|
||||||
|
integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
|
||||||
|
|
||||||
debug@^2.2.0:
|
debug@^2.2.0:
|
||||||
version "2.6.9"
|
version "2.6.9"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
||||||
|
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
debug@^3.1.0:
|
debug@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||||
|
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
is-buffer@~1.1.1:
|
is-buffer@~1.1.1:
|
||||||
version "1.1.6"
|
version "1.1.6"
|
||||||
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
|
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
|
||||||
|
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
|
||||||
|
|
||||||
lodash@^4.16.4:
|
lodash@^4.16.4:
|
||||||
version "4.17.10"
|
version "4.17.10"
|
||||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
|
||||||
|
integrity sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==
|
||||||
|
|
||||||
md5@^2.1.0:
|
md5@^2.1.0:
|
||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9"
|
resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9"
|
||||||
|
integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=
|
||||||
dependencies:
|
dependencies:
|
||||||
charenc "~0.0.1"
|
charenc "~0.0.1"
|
||||||
crypt "~0.0.1"
|
crypt "~0.0.1"
|
||||||
@@ -45,16 +53,19 @@ md5@^2.1.0:
|
|||||||
minimist@0.0.8:
|
minimist@0.0.8:
|
||||||
version "0.0.8"
|
version "0.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
||||||
|
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
|
||||||
|
|
||||||
mkdirp@~0.5.1:
|
mkdirp@~0.5.1:
|
||||||
version "0.5.1"
|
version "0.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||||
|
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
|
||||||
dependencies:
|
dependencies:
|
||||||
minimist "0.0.8"
|
minimist "0.0.8"
|
||||||
|
|
||||||
mocha-junit-reporter@^1.17.0:
|
mocha-junit-reporter@^1.17.0:
|
||||||
version "1.17.0"
|
version "1.17.0"
|
||||||
resolved "https://registry.yarnpkg.com/mocha-junit-reporter/-/mocha-junit-reporter-1.17.0.tgz#2e5149ed40fc5d2e3ca71e42db5ab1fec9c6d85c"
|
resolved "https://registry.yarnpkg.com/mocha-junit-reporter/-/mocha-junit-reporter-1.17.0.tgz#2e5149ed40fc5d2e3ca71e42db5ab1fec9c6d85c"
|
||||||
|
integrity sha1-LlFJ7UD8XS48px5C21qx/snG2Fw=
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^2.2.0"
|
debug "^2.2.0"
|
||||||
md5 "^2.1.0"
|
md5 "^2.1.0"
|
||||||
@@ -65,6 +76,7 @@ mocha-junit-reporter@^1.17.0:
|
|||||||
mocha-multi-reporters@^1.1.7:
|
mocha-multi-reporters@^1.1.7:
|
||||||
version "1.1.7"
|
version "1.1.7"
|
||||||
resolved "https://registry.yarnpkg.com/mocha-multi-reporters/-/mocha-multi-reporters-1.1.7.tgz#cc7f3f4d32f478520941d852abb64d9988587d82"
|
resolved "https://registry.yarnpkg.com/mocha-multi-reporters/-/mocha-multi-reporters-1.1.7.tgz#cc7f3f4d32f478520941d852abb64d9988587d82"
|
||||||
|
integrity sha1-zH8/TTL0eFIJQdhSq7ZNmYhYfYI=
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^3.1.0"
|
debug "^3.1.0"
|
||||||
lodash "^4.16.4"
|
lodash "^4.16.4"
|
||||||
@@ -72,17 +84,21 @@ mocha-multi-reporters@^1.1.7:
|
|||||||
ms@2.0.0:
|
ms@2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||||
|
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
|
||||||
|
|
||||||
strip-ansi@^4.0.0:
|
strip-ansi@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
|
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
|
||||||
|
integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-regex "^3.0.0"
|
ansi-regex "^3.0.0"
|
||||||
|
|
||||||
vscode-nls@^3.2.1:
|
vscode-nls@^3.2.1:
|
||||||
version "3.2.2"
|
version "3.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.2.tgz#3817eca5b985c2393de325197cf4e15eb2aa5350"
|
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.2.tgz#3817eca5b985c2393de325197cf4e15eb2aa5350"
|
||||||
|
integrity sha512-/Ur1+tgazwd51+ncRyoy0UIu4dvMdVXS9XMUULQlZIBoNGEwOhwEx9x+hHWoUjldMrOQ32t2CGKo0u6D4R6/hg==
|
||||||
|
|
||||||
xml@^1.0.0:
|
xml@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5"
|
resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5"
|
||||||
|
integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=
|
||||||
|
|||||||
@@ -125,12 +125,12 @@
|
|||||||
"view/item/context": [
|
"view/item/context": [
|
||||||
{
|
{
|
||||||
"command": "azureresource.connectsqldb",
|
"command": "azureresource.connectsqldb",
|
||||||
"when": "viewItem =~ /^azureResource.itemType.database/ && viewItem != azureResource.itemType.databaseContainer && viewItem != azureResource.itemType.databaseServerContainer",
|
"when": "viewItem =~ /^azureResource\\.itemType\\.database(?:Server){0,1}$/",
|
||||||
"group": "1azureresource@1"
|
"group": "1azureresource@1"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "azureresource.connectsqldb",
|
"command": "azureresource.connectsqldb",
|
||||||
"when": "viewItem =~ /^azureResource.itemType.database/ && viewItem != azureResource.itemType.databaseContainer && viewItem != azureResource.itemType.databaseServerContainer",
|
"when": "viewItem =~ /^azureResource\\.itemType\\.database(?:Server){0,1}$/",
|
||||||
"group": "inline"
|
"group": "inline"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -140,7 +140,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "azureresource.refresh",
|
"command": "azureresource.refresh",
|
||||||
"when": "viewItem != azureResource.itemType.database && viewItem != azureResource.itemType.databaseServer && viewItem != azureResource.itemType.message",
|
"when": "viewItem =~ /^azureResource\\.itemType\\.(?:account|subscription|databaseContainer|databaseServerContainer)$/",
|
||||||
"group": "inline"
|
"group": "inline"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
"@types/mocha@^5.2.5":
|
"@types/mocha@^5.2.5":
|
||||||
version "5.2.5"
|
version "5.2.5"
|
||||||
resolved "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.5.tgz#8a4accfc403c124a0bafe8a9fc61a05ec1032073"
|
resolved "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.5.tgz#8a4accfc403c124a0bafe8a9fc61a05ec1032073"
|
||||||
|
integrity sha512-lAVp+Kj54ui/vLUFxsJTMtWvZraZxum3w3Nwkble2dNuV5VnPA+Mi2oGX9XYJAaIvZi3tn3cbjS/qcJXRb6Bww==
|
||||||
|
|
||||||
"@types/node@^8.0.24":
|
"@types/node@^8.0.24":
|
||||||
version "8.10.36"
|
version "8.10.36"
|
||||||
@@ -13,10 +14,12 @@
|
|||||||
"@types/node@^8.0.47":
|
"@types/node@^8.0.47":
|
||||||
version "8.10.30"
|
version "8.10.30"
|
||||||
resolved "https://registry.npmjs.org/@types/node/-/node-8.10.30.tgz#2c82cbed5f79d72280c131d2acffa88fbd8dd353"
|
resolved "https://registry.npmjs.org/@types/node/-/node-8.10.30.tgz#2c82cbed5f79d72280c131d2acffa88fbd8dd353"
|
||||||
|
integrity sha512-Le8HGMI5gjFSBqcCuKP/wfHC19oURzkU2D+ERIescUoJd+CmNEMYBib9LQ4zj1HHEZOJQWhw2ZTnbD8weASh/Q==
|
||||||
|
|
||||||
adal-node@^0.1.28:
|
adal-node@^0.1.28:
|
||||||
version "0.1.28"
|
version "0.1.28"
|
||||||
resolved "https://registry.npmjs.org/adal-node/-/adal-node-0.1.28.tgz#468c4bb3ebbd96b1270669f4b9cba4e0065ea485"
|
resolved "https://registry.npmjs.org/adal-node/-/adal-node-0.1.28.tgz#468c4bb3ebbd96b1270669f4b9cba4e0065ea485"
|
||||||
|
integrity sha1-RoxLs+u9lrEnBmn0ucuk4AZepIU=
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "^8.0.47"
|
"@types/node" "^8.0.47"
|
||||||
async ">=0.6.0"
|
async ">=0.6.0"
|
||||||
@@ -31,6 +34,7 @@ adal-node@^0.1.28:
|
|||||||
ajv@^5.3.0:
|
ajv@^5.3.0:
|
||||||
version "5.5.2"
|
version "5.5.2"
|
||||||
resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
|
resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
|
||||||
|
integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=
|
||||||
dependencies:
|
dependencies:
|
||||||
co "^4.6.0"
|
co "^4.6.0"
|
||||||
fast-deep-equal "^1.0.0"
|
fast-deep-equal "^1.0.0"
|
||||||
@@ -52,12 +56,14 @@ asn1@0.1.11:
|
|||||||
asn1@~0.2.3:
|
asn1@~0.2.3:
|
||||||
version "0.2.4"
|
version "0.2.4"
|
||||||
resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
|
resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
|
||||||
|
integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
|
||||||
dependencies:
|
dependencies:
|
||||||
safer-buffer "~2.1.0"
|
safer-buffer "~2.1.0"
|
||||||
|
|
||||||
assert-plus@1.0.0, assert-plus@^1.0.0:
|
assert-plus@1.0.0, assert-plus@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
|
resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
|
||||||
|
integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
|
||||||
|
|
||||||
assert-plus@^0.1.5:
|
assert-plus@^0.1.5:
|
||||||
version "0.1.5"
|
version "0.1.5"
|
||||||
@@ -66,6 +72,7 @@ assert-plus@^0.1.5:
|
|||||||
async@2.6.0:
|
async@2.6.0:
|
||||||
version "2.6.0"
|
version "2.6.0"
|
||||||
resolved "https://registry.npmjs.org/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
|
resolved "https://registry.npmjs.org/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
|
||||||
|
integrity sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==
|
||||||
dependencies:
|
dependencies:
|
||||||
lodash "^4.14.0"
|
lodash "^4.14.0"
|
||||||
|
|
||||||
@@ -78,6 +85,7 @@ async@>=0.6.0, async@^2.0.1:
|
|||||||
asynckit@^0.4.0:
|
asynckit@^0.4.0:
|
||||||
version "0.4.0"
|
version "0.4.0"
|
||||||
resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||||
|
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
|
||||||
|
|
||||||
aws-sign2@~0.5.0:
|
aws-sign2@~0.5.0:
|
||||||
version "0.5.0"
|
version "0.5.0"
|
||||||
@@ -86,14 +94,17 @@ aws-sign2@~0.5.0:
|
|||||||
aws-sign2@~0.7.0:
|
aws-sign2@~0.7.0:
|
||||||
version "0.7.0"
|
version "0.7.0"
|
||||||
resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
|
resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
|
||||||
|
integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
|
||||||
|
|
||||||
aws4@^1.8.0:
|
aws4@^1.8.0:
|
||||||
version "1.8.0"
|
version "1.8.0"
|
||||||
resolved "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
|
resolved "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
|
||||||
|
integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
|
||||||
|
|
||||||
azure-arm-resource@^7.0.0:
|
azure-arm-resource@^7.0.0:
|
||||||
version "7.0.0"
|
version "7.0.0"
|
||||||
resolved "https://registry.npmjs.org/azure-arm-resource/-/azure-arm-resource-7.0.0.tgz#e76fe2195abe354b607346c2fa0f690544176294"
|
resolved "https://registry.npmjs.org/azure-arm-resource/-/azure-arm-resource-7.0.0.tgz#e76fe2195abe354b607346c2fa0f690544176294"
|
||||||
|
integrity sha512-LW1OmW49d5xQo/KDBK2BNfoFVOlP8Gq9yKqP2kz0e6RURl5UXhIfN65Y4GeJramuyGIOXeGPV+NrXrzl1k4d4g==
|
||||||
dependencies:
|
dependencies:
|
||||||
ms-rest "^2.3.3"
|
ms-rest "^2.3.3"
|
||||||
ms-rest-azure "^2.5.5"
|
ms-rest-azure "^2.5.5"
|
||||||
@@ -101,6 +112,7 @@ azure-arm-resource@^7.0.0:
|
|||||||
azure-arm-sql@^5.0.1:
|
azure-arm-sql@^5.0.1:
|
||||||
version "5.0.1"
|
version "5.0.1"
|
||||||
resolved "https://registry.npmjs.org/azure-arm-sql/-/azure-arm-sql-5.0.1.tgz#75c0b115525d2270ab16122d47d0c666aca175d4"
|
resolved "https://registry.npmjs.org/azure-arm-sql/-/azure-arm-sql-5.0.1.tgz#75c0b115525d2270ab16122d47d0c666aca175d4"
|
||||||
|
integrity sha512-n+c1cfCnBCGL5lOdPtCHve0Meu3vclwGEJxvMBYC6e3CjiNrI0eoaPtS3Aug4M/srVJPCNOKCTyuLj0OIc7Aww==
|
||||||
dependencies:
|
dependencies:
|
||||||
ms-rest "^2.3.3"
|
ms-rest "^2.3.3"
|
||||||
ms-rest-azure "^2.5.5"
|
ms-rest-azure "^2.5.5"
|
||||||
@@ -108,10 +120,12 @@ azure-arm-sql@^5.0.1:
|
|||||||
balanced-match@^1.0.0:
|
balanced-match@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||||
|
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
||||||
|
|
||||||
bcrypt-pbkdf@^1.0.0:
|
bcrypt-pbkdf@^1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
|
resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
|
||||||
|
integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
|
||||||
dependencies:
|
dependencies:
|
||||||
tweetnacl "^0.14.3"
|
tweetnacl "^0.14.3"
|
||||||
|
|
||||||
@@ -134,6 +148,7 @@ boom@2.x.x:
|
|||||||
brace-expansion@^1.1.7:
|
brace-expansion@^1.1.7:
|
||||||
version "1.1.11"
|
version "1.1.11"
|
||||||
resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
||||||
|
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
|
||||||
dependencies:
|
dependencies:
|
||||||
balanced-match "^1.0.0"
|
balanced-match "^1.0.0"
|
||||||
concat-map "0.0.1"
|
concat-map "0.0.1"
|
||||||
@@ -141,10 +156,12 @@ brace-expansion@^1.1.7:
|
|||||||
browser-stdout@1.3.1:
|
browser-stdout@1.3.1:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
|
resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
|
||||||
|
integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
|
||||||
|
|
||||||
buffer-equal-constant-time@1.0.1:
|
buffer-equal-constant-time@1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
|
resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
|
||||||
|
integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
|
||||||
|
|
||||||
caseless@~0.11.0:
|
caseless@~0.11.0:
|
||||||
version "0.11.0"
|
version "0.11.0"
|
||||||
@@ -153,6 +170,7 @@ caseless@~0.11.0:
|
|||||||
caseless@~0.12.0:
|
caseless@~0.12.0:
|
||||||
version "0.12.0"
|
version "0.12.0"
|
||||||
resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
||||||
|
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
|
||||||
|
|
||||||
chalk@^1.0.0:
|
chalk@^1.0.0:
|
||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
@@ -167,14 +185,17 @@ chalk@^1.0.0:
|
|||||||
circular-json@^0.3.1:
|
circular-json@^0.3.1:
|
||||||
version "0.3.3"
|
version "0.3.3"
|
||||||
resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
|
resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
|
||||||
|
integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==
|
||||||
|
|
||||||
co@^4.6.0:
|
co@^4.6.0:
|
||||||
version "4.6.0"
|
version "4.6.0"
|
||||||
resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
||||||
|
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
|
||||||
|
|
||||||
combined-stream@1.0.6:
|
combined-stream@1.0.6:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
resolved "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
|
resolved "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
|
||||||
|
integrity sha1-cj599ugBrFYTETp+RFqbactjKBg=
|
||||||
dependencies:
|
dependencies:
|
||||||
delayed-stream "~1.0.0"
|
delayed-stream "~1.0.0"
|
||||||
|
|
||||||
@@ -187,6 +208,7 @@ combined-stream@^1.0.5, combined-stream@~1.0.1, combined-stream@~1.0.6:
|
|||||||
commander@2.15.1:
|
commander@2.15.1:
|
||||||
version "2.15.1"
|
version "2.15.1"
|
||||||
resolved "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
|
resolved "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
|
||||||
|
integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==
|
||||||
|
|
||||||
commander@^2.8.1:
|
commander@^2.8.1:
|
||||||
version "2.19.0"
|
version "2.19.0"
|
||||||
@@ -195,6 +217,7 @@ commander@^2.8.1:
|
|||||||
concat-map@0.0.1:
|
concat-map@0.0.1:
|
||||||
version "0.0.1"
|
version "0.0.1"
|
||||||
resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||||
|
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
||||||
|
|
||||||
core-util-is@1.0.2, core-util-is@~1.0.0:
|
core-util-is@1.0.2, core-util-is@~1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
@@ -213,34 +236,41 @@ ctype@0.5.3:
|
|||||||
dashdash@^1.12.0:
|
dashdash@^1.12.0:
|
||||||
version "1.14.1"
|
version "1.14.1"
|
||||||
resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
|
resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
|
||||||
|
integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
|
||||||
dependencies:
|
dependencies:
|
||||||
assert-plus "^1.0.0"
|
assert-plus "^1.0.0"
|
||||||
|
|
||||||
date-utils@*:
|
date-utils@*:
|
||||||
version "1.2.21"
|
version "1.2.21"
|
||||||
resolved "https://registry.npmjs.org/date-utils/-/date-utils-1.2.21.tgz#61fb16cdc1274b3c9acaaffe9fc69df8720a2b64"
|
resolved "https://registry.npmjs.org/date-utils/-/date-utils-1.2.21.tgz#61fb16cdc1274b3c9acaaffe9fc69df8720a2b64"
|
||||||
|
integrity sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q=
|
||||||
|
|
||||||
debug@3.1.0:
|
debug@3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||||
|
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
delayed-stream@~1.0.0:
|
delayed-stream@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||||
|
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
|
||||||
|
|
||||||
diff@3.5.0:
|
diff@3.5.0:
|
||||||
version "3.5.0"
|
version "3.5.0"
|
||||||
resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
|
resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
|
||||||
|
integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
|
||||||
|
|
||||||
duplexer@^0.1.1:
|
duplexer@^0.1.1:
|
||||||
version "0.1.1"
|
version "0.1.1"
|
||||||
resolved "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
|
resolved "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
|
||||||
|
integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
|
||||||
|
|
||||||
ecc-jsbn@~0.1.1:
|
ecc-jsbn@~0.1.1:
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
|
resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
|
||||||
|
integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
|
||||||
dependencies:
|
dependencies:
|
||||||
jsbn "~0.1.0"
|
jsbn "~0.1.0"
|
||||||
safer-buffer "^2.1.0"
|
safer-buffer "^2.1.0"
|
||||||
@@ -248,6 +278,7 @@ ecc-jsbn@~0.1.1:
|
|||||||
ecdsa-sig-formatter@1.0.10:
|
ecdsa-sig-formatter@1.0.10:
|
||||||
version "1.0.10"
|
version "1.0.10"
|
||||||
resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz#1c595000f04a8897dfb85000892a0f4c33af86c3"
|
resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz#1c595000f04a8897dfb85000892a0f4c33af86c3"
|
||||||
|
integrity sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer "^5.0.1"
|
safe-buffer "^5.0.1"
|
||||||
|
|
||||||
@@ -262,18 +293,22 @@ extend@~3.0.0, extend@~3.0.2:
|
|||||||
extsprintf@1.3.0:
|
extsprintf@1.3.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
||||||
|
integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
|
||||||
|
|
||||||
extsprintf@^1.2.0:
|
extsprintf@^1.2.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
|
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
|
||||||
|
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
|
||||||
|
|
||||||
fast-deep-equal@^1.0.0:
|
fast-deep-equal@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
|
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
|
||||||
|
integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=
|
||||||
|
|
||||||
fast-json-stable-stringify@^2.0.0:
|
fast-json-stable-stringify@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
|
resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
|
||||||
|
integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
|
||||||
|
|
||||||
forever-agent@~0.6.0, forever-agent@~0.6.1:
|
forever-agent@~0.6.0, forever-agent@~0.6.1:
|
||||||
version "0.6.1"
|
version "0.6.1"
|
||||||
@@ -290,6 +325,7 @@ form-data@~1.0.0-rc1:
|
|||||||
form-data@~2.3.2:
|
form-data@~2.3.2:
|
||||||
version "2.3.2"
|
version "2.3.2"
|
||||||
resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
|
resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
|
||||||
|
integrity sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=
|
||||||
dependencies:
|
dependencies:
|
||||||
asynckit "^0.4.0"
|
asynckit "^0.4.0"
|
||||||
combined-stream "1.0.6"
|
combined-stream "1.0.6"
|
||||||
@@ -298,6 +334,7 @@ form-data@~2.3.2:
|
|||||||
fs.realpath@^1.0.0:
|
fs.realpath@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||||
|
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
||||||
|
|
||||||
generate-function@^2.0.0:
|
generate-function@^2.0.0:
|
||||||
version "2.3.1"
|
version "2.3.1"
|
||||||
@@ -314,12 +351,14 @@ generate-object-property@^1.1.0:
|
|||||||
getpass@^0.1.1:
|
getpass@^0.1.1:
|
||||||
version "0.1.7"
|
version "0.1.7"
|
||||||
resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
|
resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
|
||||||
|
integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
|
||||||
dependencies:
|
dependencies:
|
||||||
assert-plus "^1.0.0"
|
assert-plus "^1.0.0"
|
||||||
|
|
||||||
glob@7.1.2:
|
glob@7.1.2:
|
||||||
version "7.1.2"
|
version "7.1.2"
|
||||||
resolved "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
|
resolved "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
|
||||||
|
integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
fs.realpath "^1.0.0"
|
fs.realpath "^1.0.0"
|
||||||
inflight "^1.0.4"
|
inflight "^1.0.4"
|
||||||
@@ -331,10 +370,12 @@ glob@7.1.2:
|
|||||||
growl@1.10.5:
|
growl@1.10.5:
|
||||||
version "1.10.5"
|
version "1.10.5"
|
||||||
resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
|
resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
|
||||||
|
integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
|
||||||
|
|
||||||
har-schema@^2.0.0:
|
har-schema@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
|
resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
|
||||||
|
integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
|
||||||
|
|
||||||
har-validator@^1.6.1:
|
har-validator@^1.6.1:
|
||||||
version "1.8.0"
|
version "1.8.0"
|
||||||
@@ -348,6 +389,7 @@ har-validator@^1.6.1:
|
|||||||
har-validator@~5.1.0:
|
har-validator@~5.1.0:
|
||||||
version "5.1.0"
|
version "5.1.0"
|
||||||
resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29"
|
resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29"
|
||||||
|
integrity sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv "^5.3.0"
|
ajv "^5.3.0"
|
||||||
har-schema "^2.0.0"
|
har-schema "^2.0.0"
|
||||||
@@ -361,6 +403,7 @@ has-ansi@^2.0.0:
|
|||||||
has-flag@^3.0.0:
|
has-flag@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
||||||
|
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
|
||||||
|
|
||||||
hawk@~3.1.0:
|
hawk@~3.1.0:
|
||||||
version "3.1.3"
|
version "3.1.3"
|
||||||
@@ -374,6 +417,7 @@ hawk@~3.1.0:
|
|||||||
he@1.1.1:
|
he@1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.npmjs.org/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
|
resolved "https://registry.npmjs.org/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
|
||||||
|
integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
|
||||||
|
|
||||||
hoek@2.x.x:
|
hoek@2.x.x:
|
||||||
version "2.16.3"
|
version "2.16.3"
|
||||||
@@ -390,6 +434,7 @@ http-signature@~0.11.0:
|
|||||||
http-signature@~1.2.0:
|
http-signature@~1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
|
resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
|
||||||
|
integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
|
||||||
dependencies:
|
dependencies:
|
||||||
assert-plus "^1.0.0"
|
assert-plus "^1.0.0"
|
||||||
jsprim "^1.2.2"
|
jsprim "^1.2.2"
|
||||||
@@ -398,6 +443,7 @@ http-signature@~1.2.0:
|
|||||||
inflight@^1.0.4:
|
inflight@^1.0.4:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||||
|
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
||||||
dependencies:
|
dependencies:
|
||||||
once "^1.3.0"
|
once "^1.3.0"
|
||||||
wrappy "1"
|
wrappy "1"
|
||||||
@@ -409,6 +455,7 @@ inherits@2, inherits@~2.0.1:
|
|||||||
is-buffer@^1.1.6:
|
is-buffer@^1.1.6:
|
||||||
version "1.1.6"
|
version "1.1.6"
|
||||||
resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
|
resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
|
||||||
|
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
|
||||||
|
|
||||||
is-my-ip-valid@^1.0.0:
|
is-my-ip-valid@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
@@ -431,10 +478,12 @@ is-property@^1.0.0, is-property@^1.0.2:
|
|||||||
is-stream@^1.1.0:
|
is-stream@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||||
|
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
|
||||||
|
|
||||||
is-typedarray@~1.0.0:
|
is-typedarray@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
|
resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
|
||||||
|
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
|
||||||
|
|
||||||
isarray@~1.0.0:
|
isarray@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
@@ -447,14 +496,17 @@ isstream@~0.1.1, isstream@~0.1.2:
|
|||||||
jsbn@~0.1.0:
|
jsbn@~0.1.0:
|
||||||
version "0.1.1"
|
version "0.1.1"
|
||||||
resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
|
resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
|
||||||
|
integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
|
||||||
|
|
||||||
json-schema-traverse@^0.3.0:
|
json-schema-traverse@^0.3.0:
|
||||||
version "0.3.1"
|
version "0.3.1"
|
||||||
resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
|
resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
|
||||||
|
integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
|
||||||
|
|
||||||
json-schema@0.2.3:
|
json-schema@0.2.3:
|
||||||
version "0.2.3"
|
version "0.2.3"
|
||||||
resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
|
resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
|
||||||
|
integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
|
||||||
|
|
||||||
json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1:
|
json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1:
|
||||||
version "5.0.1"
|
version "5.0.1"
|
||||||
@@ -467,6 +519,7 @@ jsonpointer@^4.0.0:
|
|||||||
jsprim@^1.2.2:
|
jsprim@^1.2.2:
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
|
resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
|
||||||
|
integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
|
||||||
dependencies:
|
dependencies:
|
||||||
assert-plus "1.0.0"
|
assert-plus "1.0.0"
|
||||||
extsprintf "1.3.0"
|
extsprintf "1.3.0"
|
||||||
@@ -476,6 +529,7 @@ jsprim@^1.2.2:
|
|||||||
jwa@^1.1.5:
|
jwa@^1.1.5:
|
||||||
version "1.1.6"
|
version "1.1.6"
|
||||||
resolved "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz#87240e76c9808dbde18783cf2264ef4929ee50e6"
|
resolved "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz#87240e76c9808dbde18783cf2264ef4929ee50e6"
|
||||||
|
integrity sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw==
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer-equal-constant-time "1.0.1"
|
buffer-equal-constant-time "1.0.1"
|
||||||
ecdsa-sig-formatter "1.0.10"
|
ecdsa-sig-formatter "1.0.10"
|
||||||
@@ -484,6 +538,7 @@ jwa@^1.1.5:
|
|||||||
jws@3.x.x:
|
jws@3.x.x:
|
||||||
version "3.1.5"
|
version "3.1.5"
|
||||||
resolved "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz#80d12d05b293d1e841e7cb8b4e69e561adcf834f"
|
resolved "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz#80d12d05b293d1e841e7cb8b4e69e561adcf834f"
|
||||||
|
integrity sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
jwa "^1.1.5"
|
jwa "^1.1.5"
|
||||||
safe-buffer "^5.0.1"
|
safe-buffer "^5.0.1"
|
||||||
@@ -491,10 +546,12 @@ jws@3.x.x:
|
|||||||
lodash@^4.14.0, lodash@^4.17.10, lodash@^4.17.4:
|
lodash@^4.14.0, lodash@^4.17.10, lodash@^4.17.4:
|
||||||
version "4.17.11"
|
version "4.17.11"
|
||||||
resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
|
resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
|
||||||
|
integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
|
||||||
|
|
||||||
mime-db@~1.36.0:
|
mime-db@~1.36.0:
|
||||||
version "1.36.0"
|
version "1.36.0"
|
||||||
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397"
|
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397"
|
||||||
|
integrity sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==
|
||||||
|
|
||||||
mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.2:
|
mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.2:
|
||||||
version "2.1.20"
|
version "2.1.20"
|
||||||
@@ -505,22 +562,26 @@ mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.2:
|
|||||||
minimatch@3.0.4, minimatch@^3.0.4:
|
minimatch@3.0.4, minimatch@^3.0.4:
|
||||||
version "3.0.4"
|
version "3.0.4"
|
||||||
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
||||||
|
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
|
||||||
dependencies:
|
dependencies:
|
||||||
brace-expansion "^1.1.7"
|
brace-expansion "^1.1.7"
|
||||||
|
|
||||||
minimist@0.0.8:
|
minimist@0.0.8:
|
||||||
version "0.0.8"
|
version "0.0.8"
|
||||||
resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
||||||
|
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
|
||||||
|
|
||||||
mkdirp@0.5.1:
|
mkdirp@0.5.1:
|
||||||
version "0.5.1"
|
version "0.5.1"
|
||||||
resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||||
|
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
|
||||||
dependencies:
|
dependencies:
|
||||||
minimist "0.0.8"
|
minimist "0.0.8"
|
||||||
|
|
||||||
mocha@^5.2.0:
|
mocha@^5.2.0:
|
||||||
version "5.2.0"
|
version "5.2.0"
|
||||||
resolved "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6"
|
resolved "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6"
|
||||||
|
integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
browser-stdout "1.3.1"
|
browser-stdout "1.3.1"
|
||||||
commander "2.15.1"
|
commander "2.15.1"
|
||||||
@@ -537,10 +598,12 @@ mocha@^5.2.0:
|
|||||||
moment@^2.21.0, moment@^2.22.2:
|
moment@^2.21.0, moment@^2.22.2:
|
||||||
version "2.22.2"
|
version "2.22.2"
|
||||||
resolved "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66"
|
resolved "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66"
|
||||||
|
integrity sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=
|
||||||
|
|
||||||
ms-rest-azure@^2.5.5:
|
ms-rest-azure@^2.5.5:
|
||||||
version "2.5.9"
|
version "2.5.9"
|
||||||
resolved "https://registry.npmjs.org/ms-rest-azure/-/ms-rest-azure-2.5.9.tgz#8599943e349c91eb367d2d1dcb885017518dc712"
|
resolved "https://registry.npmjs.org/ms-rest-azure/-/ms-rest-azure-2.5.9.tgz#8599943e349c91eb367d2d1dcb885017518dc712"
|
||||||
|
integrity sha512-qonobzWLS7Jl6qwgTuA/SfyCtnv7olvCRKrcF8nzXSj68ds4Oj3K64ntzgQajroKa0hKVMcPUFbTk1IYMGvu8w==
|
||||||
dependencies:
|
dependencies:
|
||||||
adal-node "^0.1.28"
|
adal-node "^0.1.28"
|
||||||
async "2.6.0"
|
async "2.6.0"
|
||||||
@@ -552,6 +615,7 @@ ms-rest-azure@^2.5.5:
|
|||||||
ms-rest@^2.3.2, ms-rest@^2.3.3:
|
ms-rest@^2.3.2, ms-rest@^2.3.3:
|
||||||
version "2.3.7"
|
version "2.3.7"
|
||||||
resolved "https://registry.npmjs.org/ms-rest/-/ms-rest-2.3.7.tgz#8bfc82fb91807643fcaa487c5fc9698cd18a018c"
|
resolved "https://registry.npmjs.org/ms-rest/-/ms-rest-2.3.7.tgz#8bfc82fb91807643fcaa487c5fc9698cd18a018c"
|
||||||
|
integrity sha512-zZwuckC/Uv8F1Jr1bW+U1tsDTErWhtH6W4mpxvRrta4YrKwkFeLMt53RsaDOWTqMFsVpjNuCfznV1uxeGUF3/g==
|
||||||
dependencies:
|
dependencies:
|
||||||
duplexer "^0.1.1"
|
duplexer "^0.1.1"
|
||||||
is-buffer "^1.1.6"
|
is-buffer "^1.1.6"
|
||||||
@@ -565,6 +629,7 @@ ms-rest@^2.3.2, ms-rest@^2.3.3:
|
|||||||
ms@2.0.0:
|
ms@2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||||
|
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
|
||||||
|
|
||||||
node-uuid@~1.4.0:
|
node-uuid@~1.4.0:
|
||||||
version "1.4.8"
|
version "1.4.8"
|
||||||
@@ -577,24 +642,29 @@ oauth-sign@~0.8.0:
|
|||||||
oauth-sign@~0.9.0:
|
oauth-sign@~0.9.0:
|
||||||
version "0.9.0"
|
version "0.9.0"
|
||||||
resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
|
resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
|
||||||
|
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
|
||||||
|
|
||||||
once@^1.3.0:
|
once@^1.3.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||||
|
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||||
dependencies:
|
dependencies:
|
||||||
wrappy "1"
|
wrappy "1"
|
||||||
|
|
||||||
path-is-absolute@^1.0.0:
|
path-is-absolute@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||||
|
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
||||||
|
|
||||||
performance-now@^2.1.0:
|
performance-now@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
||||||
|
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
|
||||||
|
|
||||||
postinstall-build@^5.0.1:
|
postinstall-build@^5.0.1:
|
||||||
version "5.0.3"
|
version "5.0.3"
|
||||||
resolved "https://registry.npmjs.org/postinstall-build/-/postinstall-build-5.0.3.tgz#238692f712a481d8f5bc8960e94786036241efc7"
|
resolved "https://registry.npmjs.org/postinstall-build/-/postinstall-build-5.0.3.tgz#238692f712a481d8f5bc8960e94786036241efc7"
|
||||||
|
integrity sha512-vPvPe8TKgp4FLgY3+DfxCE5PIfoXBK2lyLfNCxsRbDsV6vS4oU5RG/IWxrblMn6heagbnMED3MemUQllQ2bQUg==
|
||||||
|
|
||||||
process-nextick-args@~1.0.6:
|
process-nextick-args@~1.0.6:
|
||||||
version "1.0.7"
|
version "1.0.7"
|
||||||
@@ -603,10 +673,12 @@ process-nextick-args@~1.0.6:
|
|||||||
psl@^1.1.24:
|
psl@^1.1.24:
|
||||||
version "1.1.29"
|
version "1.1.29"
|
||||||
resolved "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67"
|
resolved "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67"
|
||||||
|
integrity sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==
|
||||||
|
|
||||||
punycode@^1.4.1:
|
punycode@^1.4.1:
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
|
resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
|
||||||
|
integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
|
||||||
|
|
||||||
qs@~5.1.0:
|
qs@~5.1.0:
|
||||||
version "5.1.0"
|
version "5.1.0"
|
||||||
@@ -615,6 +687,7 @@ qs@~5.1.0:
|
|||||||
qs@~6.5.2:
|
qs@~6.5.2:
|
||||||
version "6.5.2"
|
version "6.5.2"
|
||||||
resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
|
resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
|
||||||
|
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
|
||||||
|
|
||||||
readable-stream@~2.0.5:
|
readable-stream@~2.0.5:
|
||||||
version "2.0.6"
|
version "2.0.6"
|
||||||
@@ -654,6 +727,7 @@ request@2.63.0:
|
|||||||
"request@>= 2.52.0", request@^2.88.0:
|
"request@>= 2.52.0", request@^2.88.0:
|
||||||
version "2.88.0"
|
version "2.88.0"
|
||||||
resolved "https://registry.npmjs.org/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
|
resolved "https://registry.npmjs.org/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
|
||||||
|
integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
|
||||||
dependencies:
|
dependencies:
|
||||||
aws-sign2 "~0.7.0"
|
aws-sign2 "~0.7.0"
|
||||||
aws4 "^1.8.0"
|
aws4 "^1.8.0"
|
||||||
@@ -679,20 +753,24 @@ request@2.63.0:
|
|||||||
safe-buffer@^5.0.1, safe-buffer@^5.1.2:
|
safe-buffer@^5.0.1, safe-buffer@^5.1.2:
|
||||||
version "5.1.2"
|
version "5.1.2"
|
||||||
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
||||||
|
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
||||||
|
|
||||||
safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
|
safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
|
||||||
version "2.1.2"
|
version "2.1.2"
|
||||||
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||||
|
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||||
|
|
||||||
should-equal@^2.0.0:
|
should-equal@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3"
|
resolved "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3"
|
||||||
|
integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==
|
||||||
dependencies:
|
dependencies:
|
||||||
should-type "^1.4.0"
|
should-type "^1.4.0"
|
||||||
|
|
||||||
should-format@^3.0.3:
|
should-format@^3.0.3:
|
||||||
version "3.0.3"
|
version "3.0.3"
|
||||||
resolved "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1"
|
resolved "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1"
|
||||||
|
integrity sha1-m/yPdPo5IFxT04w01xcwPidxJPE=
|
||||||
dependencies:
|
dependencies:
|
||||||
should-type "^1.3.0"
|
should-type "^1.3.0"
|
||||||
should-type-adaptors "^1.0.1"
|
should-type-adaptors "^1.0.1"
|
||||||
@@ -700,6 +778,7 @@ should-format@^3.0.3:
|
|||||||
should-type-adaptors@^1.0.1:
|
should-type-adaptors@^1.0.1:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a"
|
resolved "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a"
|
||||||
|
integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==
|
||||||
dependencies:
|
dependencies:
|
||||||
should-type "^1.3.0"
|
should-type "^1.3.0"
|
||||||
should-util "^1.0.0"
|
should-util "^1.0.0"
|
||||||
@@ -707,14 +786,17 @@ should-type-adaptors@^1.0.1:
|
|||||||
should-type@^1.3.0, should-type@^1.4.0:
|
should-type@^1.3.0, should-type@^1.4.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3"
|
resolved "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3"
|
||||||
|
integrity sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=
|
||||||
|
|
||||||
should-util@^1.0.0:
|
should-util@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.npmjs.org/should-util/-/should-util-1.0.0.tgz#c98cda374aa6b190df8ba87c9889c2b4db620063"
|
resolved "https://registry.npmjs.org/should-util/-/should-util-1.0.0.tgz#c98cda374aa6b190df8ba87c9889c2b4db620063"
|
||||||
|
integrity sha1-yYzaN0qmsZDfi6h8mInCtNtiAGM=
|
||||||
|
|
||||||
should@^13.2.1:
|
should@^13.2.1:
|
||||||
version "13.2.3"
|
version "13.2.3"
|
||||||
resolved "https://registry.npmjs.org/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10"
|
resolved "https://registry.npmjs.org/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10"
|
||||||
|
integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
should-equal "^2.0.0"
|
should-equal "^2.0.0"
|
||||||
should-format "^3.0.3"
|
should-format "^3.0.3"
|
||||||
@@ -731,6 +813,7 @@ sntp@1.x.x:
|
|||||||
sshpk@^1.7.0:
|
sshpk@^1.7.0:
|
||||||
version "1.14.2"
|
version "1.14.2"
|
||||||
resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98"
|
resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98"
|
||||||
|
integrity sha1-xvxhZIo9nE52T9P8306hBeSSupg=
|
||||||
dependencies:
|
dependencies:
|
||||||
asn1 "~0.2.3"
|
asn1 "~0.2.3"
|
||||||
assert-plus "^1.0.0"
|
assert-plus "^1.0.0"
|
||||||
@@ -760,6 +843,7 @@ strip-ansi@^3.0.0:
|
|||||||
supports-color@5.4.0:
|
supports-color@5.4.0:
|
||||||
version "5.4.0"
|
version "5.4.0"
|
||||||
resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
|
resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
|
||||||
|
integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==
|
||||||
dependencies:
|
dependencies:
|
||||||
has-flag "^3.0.0"
|
has-flag "^3.0.0"
|
||||||
|
|
||||||
@@ -770,6 +854,7 @@ supports-color@^2.0.0:
|
|||||||
through@^2.3.8:
|
through@^2.3.8:
|
||||||
version "2.3.8"
|
version "2.3.8"
|
||||||
resolved "http://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
resolved "http://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||||
|
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
|
||||||
|
|
||||||
tough-cookie@>=0.12.0, tough-cookie@~2.4.3:
|
tough-cookie@>=0.12.0, tough-cookie@~2.4.3:
|
||||||
version "2.4.3"
|
version "2.4.3"
|
||||||
@@ -781,6 +866,7 @@ tough-cookie@>=0.12.0, tough-cookie@~2.4.3:
|
|||||||
tunnel-agent@^0.6.0:
|
tunnel-agent@^0.6.0:
|
||||||
version "0.6.0"
|
version "0.6.0"
|
||||||
resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
|
resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
|
||||||
|
integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer "^5.0.1"
|
safe-buffer "^5.0.1"
|
||||||
|
|
||||||
@@ -791,14 +877,17 @@ tunnel-agent@~0.4.0:
|
|||||||
tunnel@0.0.5:
|
tunnel@0.0.5:
|
||||||
version "0.0.5"
|
version "0.0.5"
|
||||||
resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.5.tgz#d1532254749ed36620fcd1010865495a1fa9d0ae"
|
resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.5.tgz#d1532254749ed36620fcd1010865495a1fa9d0ae"
|
||||||
|
integrity sha512-gj5sdqherx4VZKMcBA4vewER7zdK25Td+z1npBqpbDys4eJrLx+SlYjJvq1bDXs2irkuJM5pf8ktaEQVipkrbA==
|
||||||
|
|
||||||
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
|
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
|
||||||
version "0.14.5"
|
version "0.14.5"
|
||||||
resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
||||||
|
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
|
||||||
|
|
||||||
typemoq@^2.1.0:
|
typemoq@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.npmjs.org/typemoq/-/typemoq-2.1.0.tgz#4452ce360d92cf2a1a180f0c29de2803f87af1e8"
|
resolved "https://registry.npmjs.org/typemoq/-/typemoq-2.1.0.tgz#4452ce360d92cf2a1a180f0c29de2803f87af1e8"
|
||||||
|
integrity sha512-DtRNLb7x8yCTv/KHlwes+NI+aGb4Vl1iPC63Hhtcvk1DpxSAZzKWQv0RQFY0jX2Uqj0SDBNl8Na4e6MV6TNDgw==
|
||||||
dependencies:
|
dependencies:
|
||||||
circular-json "^0.3.1"
|
circular-json "^0.3.1"
|
||||||
lodash "^4.17.4"
|
lodash "^4.17.4"
|
||||||
@@ -807,6 +896,7 @@ typemoq@^2.1.0:
|
|||||||
"underscore@>= 1.3.1":
|
"underscore@>= 1.3.1":
|
||||||
version "1.9.1"
|
version "1.9.1"
|
||||||
resolved "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961"
|
resolved "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961"
|
||||||
|
integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==
|
||||||
|
|
||||||
util-deprecate@~1.0.1:
|
util-deprecate@~1.0.1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
@@ -815,10 +905,12 @@ util-deprecate@~1.0.1:
|
|||||||
uuid@^3.1.0, uuid@^3.2.1, uuid@^3.3.2:
|
uuid@^3.1.0, uuid@^3.2.1, uuid@^3.3.2:
|
||||||
version "3.3.2"
|
version "3.3.2"
|
||||||
resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
|
resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
|
||||||
|
integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
|
||||||
|
|
||||||
verror@1.10.0:
|
verror@1.10.0:
|
||||||
version "1.10.0"
|
version "1.10.0"
|
||||||
resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
|
resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
|
||||||
|
integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
|
||||||
dependencies:
|
dependencies:
|
||||||
assert-plus "^1.0.0"
|
assert-plus "^1.0.0"
|
||||||
core-util-is "1.0.2"
|
core-util-is "1.0.2"
|
||||||
@@ -827,14 +919,17 @@ verror@1.10.0:
|
|||||||
vscode-nls@^4.0.0:
|
vscode-nls@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.npmjs.org/vscode-nls/-/vscode-nls-4.0.0.tgz#4001c8a6caba5cedb23a9c5ce1090395c0e44002"
|
resolved "https://registry.npmjs.org/vscode-nls/-/vscode-nls-4.0.0.tgz#4001c8a6caba5cedb23a9c5ce1090395c0e44002"
|
||||||
|
integrity sha512-qCfdzcH+0LgQnBpZA53bA32kzp9rpq/f66Som577ObeuDlFIrtbEJ+A/+CCxjIh4G8dpJYNCKIsxpRAHIfsbNw==
|
||||||
|
|
||||||
wrappy@1:
|
wrappy@1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||||
|
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||||
|
|
||||||
"xmldom@>= 0.1.x":
|
"xmldom@>= 0.1.x":
|
||||||
version "0.1.27"
|
version "0.1.27"
|
||||||
resolved "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
|
resolved "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
|
||||||
|
integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk=
|
||||||
|
|
||||||
xpath.js@~1.1.0:
|
xpath.js@~1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
|
|||||||
@@ -5,11 +5,14 @@
|
|||||||
"@types/node@7.0.4":
|
"@types/node@7.0.4":
|
||||||
version "7.0.4"
|
version "7.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.4.tgz#9aabc135979ded383325749f508894c662948c8b"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.4.tgz#9aabc135979ded383325749f508894c662948c8b"
|
||||||
|
integrity sha1-mqvBNZed7TgzJXSfUIiUxmKUjIs=
|
||||||
|
|
||||||
jsonc-parser@^1.0.0:
|
jsonc-parser@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.0.tgz#ddcc864ae708e60a7a6dd36daea00172fa8d9272"
|
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.0.tgz#ddcc864ae708e60a7a6dd36daea00172fa8d9272"
|
||||||
|
integrity sha1-3cyGSucI5gp6bdNtrqABcvqNknI=
|
||||||
|
|
||||||
vscode-nls@^3.2.4:
|
vscode-nls@^3.2.4:
|
||||||
version "3.2.4"
|
version "3.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
||||||
|
integrity sha512-FTjdqa4jDDoBjJqr36O8lmmZf/55kQ2w4ZY/+GL6K92fq765BqO3aYw21atnXUno/P04V5DWagNl4ybDIndJsw==
|
||||||
|
|||||||
@@ -5,34 +5,41 @@
|
|||||||
"@types/markdown-it@0.0.2":
|
"@types/markdown-it@0.0.2":
|
||||||
version "0.0.2"
|
version "0.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-0.0.2.tgz#5d9ad19e6e6508cdd2f2596df86fd0aade598660"
|
resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-0.0.2.tgz#5d9ad19e6e6508cdd2f2596df86fd0aade598660"
|
||||||
|
integrity sha1-XZrRnm5lCM3S8llt+G/Qqt5ZhmA=
|
||||||
|
|
||||||
"@types/node@6.0.78", "@types/node@^6.0.46":
|
"@types/node@6.0.78", "@types/node@^6.0.46":
|
||||||
version "6.0.78"
|
version "6.0.78"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.78.tgz#5d4a3f579c1524e01ee21bf474e6fba09198f470"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.78.tgz#5d4a3f579c1524e01ee21bf474e6fba09198f470"
|
||||||
|
integrity sha512-+vD6E8ixntRzzZukoF3uP1iV+ZjVN3koTcaeK+BEoc/kSfGbLDIGC7RmCaUgVpUfN6cWvfczFRERCyKM9mkvXg==
|
||||||
|
|
||||||
argparse@^1.0.7:
|
argparse@^1.0.7:
|
||||||
version "1.0.9"
|
version "1.0.9"
|
||||||
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
|
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
|
||||||
|
integrity sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=
|
||||||
dependencies:
|
dependencies:
|
||||||
sprintf-js "~1.0.2"
|
sprintf-js "~1.0.2"
|
||||||
|
|
||||||
entities@~1.1.1:
|
entities@~1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
|
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
|
||||||
|
integrity sha1-blwtClYhtdra7O+AuQ7ftc13cvA=
|
||||||
|
|
||||||
jsonc-parser@^1.0.0:
|
jsonc-parser@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.0.tgz#ddcc864ae708e60a7a6dd36daea00172fa8d9272"
|
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.0.tgz#ddcc864ae708e60a7a6dd36daea00172fa8d9272"
|
||||||
|
integrity sha1-3cyGSucI5gp6bdNtrqABcvqNknI=
|
||||||
|
|
||||||
linkify-it@^2.0.0:
|
linkify-it@^2.0.0:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.0.3.tgz#d94a4648f9b1c179d64fa97291268bdb6ce9434f"
|
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.0.3.tgz#d94a4648f9b1c179d64fa97291268bdb6ce9434f"
|
||||||
|
integrity sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=
|
||||||
dependencies:
|
dependencies:
|
||||||
uc.micro "^1.0.1"
|
uc.micro "^1.0.1"
|
||||||
|
|
||||||
markdown-it@^8.3.1:
|
markdown-it@^8.3.1:
|
||||||
version "8.4.0"
|
version "8.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.0.tgz#e2400881bf171f7018ed1bd9da441dac8af6306d"
|
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.0.tgz#e2400881bf171f7018ed1bd9da441dac8af6306d"
|
||||||
|
integrity sha512-tNuOCCfunY5v5uhcO2AUMArvKAyKMygX8tfup/JrgnsDqcCATQsAExBq7o5Ml9iMmO82bk6jYNLj6khcrl0JGA==
|
||||||
dependencies:
|
dependencies:
|
||||||
argparse "^1.0.7"
|
argparse "^1.0.7"
|
||||||
entities "~1.1.1"
|
entities "~1.1.1"
|
||||||
@@ -43,21 +50,26 @@ markdown-it@^8.3.1:
|
|||||||
mdurl@^1.0.1:
|
mdurl@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
|
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
|
||||||
|
integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=
|
||||||
|
|
||||||
parse5@^3.0.2:
|
parse5@^3.0.2:
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.2.tgz#05eff57f0ef4577fb144a79f8b9a967a6cc44510"
|
resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.2.tgz#05eff57f0ef4577fb144a79f8b9a967a6cc44510"
|
||||||
|
integrity sha1-Be/1fw70V3+xRKefi5qWemzERRA=
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "^6.0.46"
|
"@types/node" "^6.0.46"
|
||||||
|
|
||||||
sprintf-js@~1.0.2:
|
sprintf-js@~1.0.2:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
||||||
|
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
|
||||||
|
|
||||||
uc.micro@^1.0.1, uc.micro@^1.0.3:
|
uc.micro@^1.0.1, uc.micro@^1.0.3:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192"
|
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192"
|
||||||
|
integrity sha1-ftUNXg+an7ClczeSWfKndFjVAZI=
|
||||||
|
|
||||||
vscode-nls@^3.2.4:
|
vscode-nls@^3.2.4:
|
||||||
version "3.2.4"
|
version "3.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
||||||
|
integrity sha512-FTjdqa4jDDoBjJqr36O8lmmZf/55kQ2w4ZY/+GL6K92fq765BqO3aYw21atnXUno/P04V5DWagNl4ybDIndJsw==
|
||||||
|
|||||||
@@ -5,34 +5,41 @@
|
|||||||
"@types/byline@4.2.31":
|
"@types/byline@4.2.31":
|
||||||
version "4.2.31"
|
version "4.2.31"
|
||||||
resolved "https://registry.yarnpkg.com/@types/byline/-/byline-4.2.31.tgz#0e61fcb9c03e047d21c4496554c7116297ab60cd"
|
resolved "https://registry.yarnpkg.com/@types/byline/-/byline-4.2.31.tgz#0e61fcb9c03e047d21c4496554c7116297ab60cd"
|
||||||
|
integrity sha1-DmH8ucA+BH0hxEllVMcRYperYM0=
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
"@types/file-type@^5.2.1":
|
"@types/file-type@^5.2.1":
|
||||||
version "5.2.1"
|
version "5.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/@types/file-type/-/file-type-5.2.1.tgz#e7af49e08187b6b7598509c5e416669d25fa3461"
|
resolved "https://registry.yarnpkg.com/@types/file-type/-/file-type-5.2.1.tgz#e7af49e08187b6b7598509c5e416669d25fa3461"
|
||||||
|
integrity sha512-Im0cJaIPJbbpuW91OrjXnqWPZCJK/tcFy2cFX+1qjG1gubgVZPPO9OVsTVAjotN4I1E6FAV0eIqt+rR8Y1c3iA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
"@types/mocha@2.2.43":
|
"@types/mocha@2.2.43":
|
||||||
version "2.2.43"
|
version "2.2.43"
|
||||||
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.43.tgz#03c54589c43ad048cbcbfd63999b55d0424eec27"
|
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.43.tgz#03c54589c43ad048cbcbfd63999b55d0424eec27"
|
||||||
|
integrity sha512-xNlAmH+lRJdUMXClMTI9Y0pRqIojdxfm7DHsIxoB2iTzu3fnPmSMEN8SsSx0cdwV36d02PWCWaDUoZPDSln+xw==
|
||||||
|
|
||||||
"@types/node@*":
|
"@types/node@*":
|
||||||
version "8.0.51"
|
version "8.0.51"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.51.tgz#b31d716fb8d58eeb95c068a039b9b6292817d5fb"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.51.tgz#b31d716fb8d58eeb95c068a039b9b6292817d5fb"
|
||||||
|
integrity sha512-El3+WJk2D/ppWNd2X05aiP5l2k4EwF7KwheknQZls+I26eSICoWRhRIJ56jGgw2dqNGQ5LtNajmBU2ajS28EvQ==
|
||||||
|
|
||||||
"@types/node@7.0.43":
|
"@types/node@7.0.43":
|
||||||
version "7.0.43"
|
version "7.0.43"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c"
|
||||||
|
integrity sha512-7scYwwfHNppXvH/9JzakbVxk0o0QUILVk1Lv64GRaxwPuGpnF1QBiwdvhDpLcymb8BpomQL3KYoWKq3wUdDMhQ==
|
||||||
|
|
||||||
"@types/which@^1.0.28":
|
"@types/which@^1.0.28":
|
||||||
version "1.0.28"
|
version "1.0.28"
|
||||||
resolved "https://registry.yarnpkg.com/@types/which/-/which-1.0.28.tgz#016e387629b8817bed653fe32eab5d11279c8df6"
|
resolved "https://registry.yarnpkg.com/@types/which/-/which-1.0.28.tgz#016e387629b8817bed653fe32eab5d11279c8df6"
|
||||||
|
integrity sha1-AW44dim4gXvtZT/jLqtdESecjfY=
|
||||||
|
|
||||||
applicationinsights@1.0.1:
|
applicationinsights@1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927"
|
resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927"
|
||||||
|
integrity sha1-U0Rrgw/o1dYZ7uKieLMdPSUDCSc=
|
||||||
dependencies:
|
dependencies:
|
||||||
diagnostic-channel "0.2.0"
|
diagnostic-channel "0.2.0"
|
||||||
diagnostic-channel-publishers "0.2.1"
|
diagnostic-channel-publishers "0.2.1"
|
||||||
@@ -41,10 +48,12 @@ applicationinsights@1.0.1:
|
|||||||
balanced-match@^1.0.0:
|
balanced-match@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||||
|
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
||||||
|
|
||||||
brace-expansion@^1.1.7:
|
brace-expansion@^1.1.7:
|
||||||
version "1.1.8"
|
version "1.1.8"
|
||||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
|
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
|
||||||
|
integrity sha1-wHshHHyVLsH479Uad+8NHTmQopI=
|
||||||
dependencies:
|
dependencies:
|
||||||
balanced-match "^1.0.0"
|
balanced-match "^1.0.0"
|
||||||
concat-map "0.0.1"
|
concat-map "0.0.1"
|
||||||
@@ -52,56 +61,68 @@ brace-expansion@^1.1.7:
|
|||||||
browser-stdout@1.3.0:
|
browser-stdout@1.3.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
|
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
|
||||||
|
integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8=
|
||||||
|
|
||||||
byline@^5.0.0:
|
byline@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1"
|
resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1"
|
||||||
|
integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=
|
||||||
|
|
||||||
commander@2.9.0:
|
commander@2.9.0:
|
||||||
version "2.9.0"
|
version "2.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
|
||||||
|
integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=
|
||||||
dependencies:
|
dependencies:
|
||||||
graceful-readlink ">= 1.0.0"
|
graceful-readlink ">= 1.0.0"
|
||||||
|
|
||||||
concat-map@0.0.1:
|
concat-map@0.0.1:
|
||||||
version "0.0.1"
|
version "0.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||||
|
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
||||||
|
|
||||||
debug@2.6.8:
|
debug@2.6.8:
|
||||||
version "2.6.8"
|
version "2.6.8"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
|
||||||
|
integrity sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
diagnostic-channel-publishers@0.2.1:
|
diagnostic-channel-publishers@0.2.1:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3"
|
resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3"
|
||||||
|
integrity sha1-ji1geottef6IC1SLxYzGvrKIxPM=
|
||||||
|
|
||||||
diagnostic-channel@0.2.0:
|
diagnostic-channel@0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17"
|
resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17"
|
||||||
|
integrity sha1-zJmvlhLCP7H/8TYSxy8sv6qNWhc=
|
||||||
dependencies:
|
dependencies:
|
||||||
semver "^5.3.0"
|
semver "^5.3.0"
|
||||||
|
|
||||||
diff@3.2.0:
|
diff@3.2.0:
|
||||||
version "3.2.0"
|
version "3.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
|
resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
|
||||||
|
integrity sha1-yc45Okt8vQsFinJck98pkCeGj/k=
|
||||||
|
|
||||||
escape-string-regexp@1.0.5:
|
escape-string-regexp@1.0.5:
|
||||||
version "1.0.5"
|
version "1.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
||||||
|
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
||||||
|
|
||||||
file-type@^7.2.0:
|
file-type@^7.2.0:
|
||||||
version "7.2.0"
|
version "7.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/file-type/-/file-type-7.2.0.tgz#113cfed52e1d6959ab80248906e2f25a8cdccb74"
|
resolved "https://registry.yarnpkg.com/file-type/-/file-type-7.2.0.tgz#113cfed52e1d6959ab80248906e2f25a8cdccb74"
|
||||||
|
integrity sha1-ETz+1S4daVmrgCSJBuLyWozcy3Q=
|
||||||
|
|
||||||
fs.realpath@^1.0.0:
|
fs.realpath@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||||
|
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
||||||
|
|
||||||
glob@7.1.1:
|
glob@7.1.1:
|
||||||
version "7.1.1"
|
version "7.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
|
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
|
||||||
|
integrity sha1-gFIR3wT6rxxjo2ADBs31reULLsg=
|
||||||
dependencies:
|
dependencies:
|
||||||
fs.realpath "^1.0.0"
|
fs.realpath "^1.0.0"
|
||||||
inflight "^1.0.4"
|
inflight "^1.0.4"
|
||||||
@@ -113,26 +134,32 @@ glob@7.1.1:
|
|||||||
"graceful-readlink@>= 1.0.0":
|
"graceful-readlink@>= 1.0.0":
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
||||||
|
integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
|
||||||
|
|
||||||
growl@1.9.2:
|
growl@1.9.2:
|
||||||
version "1.9.2"
|
version "1.9.2"
|
||||||
resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
|
resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
|
||||||
|
integrity sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=
|
||||||
|
|
||||||
has-flag@^1.0.0:
|
has-flag@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
|
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
|
||||||
|
integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=
|
||||||
|
|
||||||
he@1.1.1:
|
he@1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
|
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
|
||||||
|
integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
|
||||||
|
|
||||||
iconv-lite@0.4.19:
|
iconv-lite@0.4.19:
|
||||||
version "0.4.19"
|
version "0.4.19"
|
||||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
|
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
|
||||||
|
integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==
|
||||||
|
|
||||||
inflight@^1.0.4:
|
inflight@^1.0.4:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||||
|
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
||||||
dependencies:
|
dependencies:
|
||||||
once "^1.3.0"
|
once "^1.3.0"
|
||||||
wrappy "1"
|
wrappy "1"
|
||||||
@@ -140,22 +167,27 @@ inflight@^1.0.4:
|
|||||||
inherits@2:
|
inherits@2:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||||
|
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
|
||||||
|
|
||||||
isexe@^2.0.0:
|
isexe@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
||||||
|
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
|
||||||
|
|
||||||
jschardet@^1.6.0:
|
jschardet@^1.6.0:
|
||||||
version "1.6.0"
|
version "1.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.6.0.tgz#c7d1a71edcff2839db2f9ec30fc5d5ebd3c1a678"
|
resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.6.0.tgz#c7d1a71edcff2839db2f9ec30fc5d5ebd3c1a678"
|
||||||
|
integrity sha512-xYuhvQ7I9PDJIGBWev9xm0+SMSed3ZDBAmvVjbFR1ZRLAF+vlXcQu6cRI9uAlj81rzikElRVteehwV7DuX2ZmQ==
|
||||||
|
|
||||||
json3@3.3.2:
|
json3@3.3.2:
|
||||||
version "3.3.2"
|
version "3.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
|
resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
|
||||||
|
integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=
|
||||||
|
|
||||||
lodash._baseassign@^3.0.0:
|
lodash._baseassign@^3.0.0:
|
||||||
version "3.2.0"
|
version "3.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
|
resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
|
||||||
|
integrity sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=
|
||||||
dependencies:
|
dependencies:
|
||||||
lodash._basecopy "^3.0.0"
|
lodash._basecopy "^3.0.0"
|
||||||
lodash.keys "^3.0.0"
|
lodash.keys "^3.0.0"
|
||||||
@@ -163,22 +195,27 @@ lodash._baseassign@^3.0.0:
|
|||||||
lodash._basecopy@^3.0.0:
|
lodash._basecopy@^3.0.0:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
|
resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
|
||||||
|
integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=
|
||||||
|
|
||||||
lodash._basecreate@^3.0.0:
|
lodash._basecreate@^3.0.0:
|
||||||
version "3.0.3"
|
version "3.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
|
resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
|
||||||
|
integrity sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=
|
||||||
|
|
||||||
lodash._getnative@^3.0.0:
|
lodash._getnative@^3.0.0:
|
||||||
version "3.9.1"
|
version "3.9.1"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
|
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
|
||||||
|
integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
|
||||||
|
|
||||||
lodash._isiterateecall@^3.0.0:
|
lodash._isiterateecall@^3.0.0:
|
||||||
version "3.0.9"
|
version "3.0.9"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
|
resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
|
||||||
|
integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=
|
||||||
|
|
||||||
lodash.create@3.1.1:
|
lodash.create@3.1.1:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
|
resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
|
||||||
|
integrity sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=
|
||||||
dependencies:
|
dependencies:
|
||||||
lodash._baseassign "^3.0.0"
|
lodash._baseassign "^3.0.0"
|
||||||
lodash._basecreate "^3.0.0"
|
lodash._basecreate "^3.0.0"
|
||||||
@@ -187,14 +224,17 @@ lodash.create@3.1.1:
|
|||||||
lodash.isarguments@^3.0.0:
|
lodash.isarguments@^3.0.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
|
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
|
||||||
|
integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
|
||||||
|
|
||||||
lodash.isarray@^3.0.0:
|
lodash.isarray@^3.0.0:
|
||||||
version "3.0.4"
|
version "3.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
|
resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
|
||||||
|
integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=
|
||||||
|
|
||||||
lodash.keys@^3.0.0:
|
lodash.keys@^3.0.0:
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
|
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
|
||||||
|
integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=
|
||||||
dependencies:
|
dependencies:
|
||||||
lodash._getnative "^3.0.0"
|
lodash._getnative "^3.0.0"
|
||||||
lodash.isarguments "^3.0.0"
|
lodash.isarguments "^3.0.0"
|
||||||
@@ -203,22 +243,26 @@ lodash.keys@^3.0.0:
|
|||||||
minimatch@^3.0.2:
|
minimatch@^3.0.2:
|
||||||
version "3.0.4"
|
version "3.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
||||||
|
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
|
||||||
dependencies:
|
dependencies:
|
||||||
brace-expansion "^1.1.7"
|
brace-expansion "^1.1.7"
|
||||||
|
|
||||||
minimist@0.0.8:
|
minimist@0.0.8:
|
||||||
version "0.0.8"
|
version "0.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
||||||
|
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
|
||||||
|
|
||||||
mkdirp@0.5.1:
|
mkdirp@0.5.1:
|
||||||
version "0.5.1"
|
version "0.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||||
|
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
|
||||||
dependencies:
|
dependencies:
|
||||||
minimist "0.0.8"
|
minimist "0.0.8"
|
||||||
|
|
||||||
mocha@^3.2.0:
|
mocha@^3.2.0:
|
||||||
version "3.5.3"
|
version "3.5.3"
|
||||||
resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d"
|
resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d"
|
||||||
|
integrity sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==
|
||||||
dependencies:
|
dependencies:
|
||||||
browser-stdout "1.3.0"
|
browser-stdout "1.3.0"
|
||||||
commander "2.9.0"
|
commander "2.9.0"
|
||||||
@@ -236,47 +280,57 @@ mocha@^3.2.0:
|
|||||||
ms@2.0.0:
|
ms@2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||||
|
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
|
||||||
|
|
||||||
once@^1.3.0:
|
once@^1.3.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||||
|
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||||
dependencies:
|
dependencies:
|
||||||
wrappy "1"
|
wrappy "1"
|
||||||
|
|
||||||
path-is-absolute@^1.0.0:
|
path-is-absolute@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||||
|
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
||||||
|
|
||||||
semver@^5.3.0:
|
semver@^5.3.0:
|
||||||
version "5.5.0"
|
version "5.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
|
||||||
|
integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==
|
||||||
|
|
||||||
supports-color@3.1.2:
|
supports-color@3.1.2:
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
|
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
|
||||||
|
integrity sha1-cqJiiU2dQIuVbKBf83su2KbiotU=
|
||||||
dependencies:
|
dependencies:
|
||||||
has-flag "^1.0.0"
|
has-flag "^1.0.0"
|
||||||
|
|
||||||
vscode-extension-telemetry@0.0.18:
|
vscode-extension-telemetry@0.0.18:
|
||||||
version "0.0.18"
|
version "0.0.18"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.18.tgz#602ba20d8c71453aa34533a291e7638f6e5c0327"
|
resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.18.tgz#602ba20d8c71453aa34533a291e7638f6e5c0327"
|
||||||
|
integrity sha512-Vw3Sr+dZwl+c6PlsUwrTtCOJkgrmvS3OUVDQGcmpXWAgq9xGq6as0K4pUx+aGqTjzLAESmWSrs6HlJm6J6Khcg==
|
||||||
dependencies:
|
dependencies:
|
||||||
applicationinsights "1.0.1"
|
applicationinsights "1.0.1"
|
||||||
|
|
||||||
vscode-nls@^3.2.4:
|
vscode-nls@^3.2.4:
|
||||||
version "3.2.4"
|
version "3.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
||||||
|
integrity sha512-FTjdqa4jDDoBjJqr36O8lmmZf/55kQ2w4ZY/+GL6K92fq765BqO3aYw21atnXUno/P04V5DWagNl4ybDIndJsw==
|
||||||
|
|
||||||
which@^1.3.0:
|
which@^1.3.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
|
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
|
||||||
|
integrity sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==
|
||||||
dependencies:
|
dependencies:
|
||||||
isexe "^2.0.0"
|
isexe "^2.0.0"
|
||||||
|
|
||||||
wrappy@1:
|
wrappy@1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||||
|
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||||
|
|
||||||
zone.js@0.7.6:
|
zone.js@0.7.6:
|
||||||
version "0.7.6"
|
version "0.7.6"
|
||||||
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009"
|
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009"
|
||||||
|
integrity sha1-+7w50+AmHQmG8boGMG6zrrDSIAk=
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "import",
|
"name": "import",
|
||||||
"displayName": "SQL Server Import",
|
"displayName": "SQL Server Import",
|
||||||
"description": "SQL Server Import for Azure Data Studio supports importing CSV or JSON files into SQL Server.",
|
"description": "SQL Server Import for Azure Data Studio supports importing CSV or JSON files into SQL Server.",
|
||||||
"version": "0.2.0",
|
"version": "0.3.0",
|
||||||
"publisher": "Microsoft",
|
"publisher": "Microsoft",
|
||||||
"preview": true,
|
"preview": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -42,33 +42,6 @@
|
|||||||
"mac": "ctrl+i"
|
"mac": "ctrl+i"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dashboard.tabs": [
|
|
||||||
{
|
|
||||||
"id": "flat-file-import",
|
|
||||||
"title": "Flat File Import",
|
|
||||||
"description": "The flat file importer.",
|
|
||||||
"container": {
|
|
||||||
"flat-file-import-container": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dashboard.containers": [
|
|
||||||
{
|
|
||||||
"id": "flat-file-import-container",
|
|
||||||
"container": {
|
|
||||||
"widgets-container": [
|
|
||||||
{
|
|
||||||
"name": "Tasks",
|
|
||||||
"widget": {
|
|
||||||
"tasks-widget": [
|
|
||||||
"flatFileImport.start"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"menus": {
|
"menus": {
|
||||||
"objectExplorer/item/context": [
|
"objectExplorer/item/context": [
|
||||||
{
|
{
|
||||||
@@ -83,9 +56,8 @@
|
|||||||
"dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#0.2.7",
|
"dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#0.2.7",
|
||||||
"opener": "^1.4.3",
|
"opener": "^1.4.3",
|
||||||
"service-downloader": "github:anthonydresser/service-downloader#0.1.5",
|
"service-downloader": "github:anthonydresser/service-downloader#0.1.5",
|
||||||
"vscode-extension-telemetry": "^0.0.5",
|
"vscode-extension-telemetry": "0.0.18",
|
||||||
"vscode-nls": "^3.2.1"
|
"vscode-nls": "^3.2.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ export class FlatFileWizard {
|
|||||||
public async start(p: any, ...args: any[]) {
|
public async start(p: any, ...args: any[]) {
|
||||||
let model = <ImportDataModel>{};
|
let model = <ImportDataModel>{};
|
||||||
|
|
||||||
let profile = <sqlops.IConnectionProfile>p.connectionProfile;
|
let profile = p ? <sqlops.IConnectionProfile>p.connectionProfile : null;
|
||||||
if (profile) {
|
if (profile) {
|
||||||
model.serverId = profile.id;
|
model.serverId = profile.id;
|
||||||
model.database = profile.databaseName;
|
model.database = profile.databaseName;
|
||||||
|
|||||||
@@ -5,20 +5,27 @@
|
|||||||
agent-base@4, agent-base@^4.1.0:
|
agent-base@4, agent-base@^4.1.0:
|
||||||
version "4.2.1"
|
version "4.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9"
|
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9"
|
||||||
|
integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==
|
||||||
dependencies:
|
dependencies:
|
||||||
es6-promisify "^5.0.0"
|
es6-promisify "^5.0.0"
|
||||||
|
|
||||||
applicationinsights@0.15.6:
|
applicationinsights@1.0.1:
|
||||||
version "0.15.6"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-0.15.6.tgz#201a0682c0704fe4bdd9a92d0b2cbe34d2ae5972"
|
resolved "https://registry.npmjs.org/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927"
|
||||||
|
dependencies:
|
||||||
|
diagnostic-channel "0.2.0"
|
||||||
|
diagnostic-channel-publishers "0.2.1"
|
||||||
|
zone.js "0.7.6"
|
||||||
|
|
||||||
base64-js@0.0.8:
|
base64-js@0.0.8:
|
||||||
version "0.0.8"
|
version "0.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
|
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
|
||||||
|
integrity sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=
|
||||||
|
|
||||||
bl@^1.0.0:
|
bl@^1.0.0:
|
||||||
version "1.2.2"
|
version "1.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
|
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
|
||||||
|
integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==
|
||||||
dependencies:
|
dependencies:
|
||||||
readable-stream "^2.3.5"
|
readable-stream "^2.3.5"
|
||||||
safe-buffer "^5.1.1"
|
safe-buffer "^5.1.1"
|
||||||
@@ -26,10 +33,12 @@ bl@^1.0.0:
|
|||||||
buffer-alloc-unsafe@^1.1.0:
|
buffer-alloc-unsafe@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
|
resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
|
||||||
|
integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
|
||||||
|
|
||||||
buffer-alloc@^1.1.0:
|
buffer-alloc@^1.1.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
|
resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
|
||||||
|
integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer-alloc-unsafe "^1.1.0"
|
buffer-alloc-unsafe "^1.1.0"
|
||||||
buffer-fill "^1.0.0"
|
buffer-fill "^1.0.0"
|
||||||
@@ -37,14 +46,17 @@ buffer-alloc@^1.1.0:
|
|||||||
buffer-crc32@~0.2.3:
|
buffer-crc32@~0.2.3:
|
||||||
version "0.2.13"
|
version "0.2.13"
|
||||||
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
|
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
|
||||||
|
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
|
||||||
|
|
||||||
buffer-fill@^1.0.0:
|
buffer-fill@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
|
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
|
||||||
|
integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
|
||||||
|
|
||||||
buffer@^3.0.1:
|
buffer@^3.0.1:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb"
|
resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb"
|
||||||
|
integrity sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=
|
||||||
dependencies:
|
dependencies:
|
||||||
base64-js "0.0.8"
|
base64-js "0.0.8"
|
||||||
ieee754 "^1.1.4"
|
ieee754 "^1.1.4"
|
||||||
@@ -53,12 +65,14 @@ buffer@^3.0.1:
|
|||||||
commander@~2.8.1:
|
commander@~2.8.1:
|
||||||
version "2.8.1"
|
version "2.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
|
||||||
|
integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=
|
||||||
dependencies:
|
dependencies:
|
||||||
graceful-readlink ">= 1.0.0"
|
graceful-readlink ">= 1.0.0"
|
||||||
|
|
||||||
core-util-is@~1.0.0:
|
core-util-is@~1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||||
|
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
|
||||||
|
|
||||||
"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#0.2.7":
|
"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#0.2.7":
|
||||||
version "0.2.6"
|
version "0.2.6"
|
||||||
@@ -69,12 +83,14 @@ core-util-is@~1.0.0:
|
|||||||
debug@3.1.0, debug@^3.1.0:
|
debug@3.1.0, debug@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||||
|
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
|
decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1"
|
resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1"
|
||||||
|
integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
file-type "^5.2.0"
|
file-type "^5.2.0"
|
||||||
is-stream "^1.1.0"
|
is-stream "^1.1.0"
|
||||||
@@ -83,6 +99,7 @@ decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
|
|||||||
decompress-tarbz2@^4.0.0:
|
decompress-tarbz2@^4.0.0:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b"
|
resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b"
|
||||||
|
integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==
|
||||||
dependencies:
|
dependencies:
|
||||||
decompress-tar "^4.1.0"
|
decompress-tar "^4.1.0"
|
||||||
file-type "^6.1.0"
|
file-type "^6.1.0"
|
||||||
@@ -93,6 +110,7 @@ decompress-tarbz2@^4.0.0:
|
|||||||
decompress-targz@^4.0.0:
|
decompress-targz@^4.0.0:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee"
|
resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee"
|
||||||
|
integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==
|
||||||
dependencies:
|
dependencies:
|
||||||
decompress-tar "^4.1.1"
|
decompress-tar "^4.1.1"
|
||||||
file-type "^5.2.0"
|
file-type "^5.2.0"
|
||||||
@@ -101,6 +119,7 @@ decompress-targz@^4.0.0:
|
|||||||
decompress-unzip@^4.0.1:
|
decompress-unzip@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69"
|
resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69"
|
||||||
|
integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k=
|
||||||
dependencies:
|
dependencies:
|
||||||
file-type "^3.8.0"
|
file-type "^3.8.0"
|
||||||
get-stream "^2.2.0"
|
get-stream "^2.2.0"
|
||||||
@@ -110,6 +129,7 @@ decompress-unzip@^4.0.1:
|
|||||||
decompress@^4.2.0:
|
decompress@^4.2.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d"
|
resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d"
|
||||||
|
integrity sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=
|
||||||
dependencies:
|
dependencies:
|
||||||
decompress-tar "^4.0.0"
|
decompress-tar "^4.0.0"
|
||||||
decompress-tarbz2 "^4.0.0"
|
decompress-tarbz2 "^4.0.0"
|
||||||
@@ -120,51 +140,71 @@ decompress@^4.2.0:
|
|||||||
pify "^2.3.0"
|
pify "^2.3.0"
|
||||||
strip-dirs "^2.0.0"
|
strip-dirs "^2.0.0"
|
||||||
|
|
||||||
|
diagnostic-channel-publishers@0.2.1:
|
||||||
|
version "0.2.1"
|
||||||
|
resolved "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3"
|
||||||
|
|
||||||
|
diagnostic-channel@0.2.0:
|
||||||
|
version "0.2.0"
|
||||||
|
resolved "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17"
|
||||||
|
dependencies:
|
||||||
|
semver "^5.3.0"
|
||||||
|
|
||||||
end-of-stream@^1.0.0:
|
end-of-stream@^1.0.0:
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
|
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
|
||||||
|
integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
once "^1.4.0"
|
once "^1.4.0"
|
||||||
|
|
||||||
es6-promise@^4.0.3:
|
es6-promise@^4.0.3:
|
||||||
version "4.2.4"
|
version "4.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29"
|
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29"
|
||||||
|
integrity sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==
|
||||||
|
|
||||||
es6-promisify@^5.0.0:
|
es6-promisify@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
|
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
|
||||||
|
integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
|
||||||
dependencies:
|
dependencies:
|
||||||
es6-promise "^4.0.3"
|
es6-promise "^4.0.3"
|
||||||
|
|
||||||
eventemitter2@^5.0.1:
|
eventemitter2@^5.0.1:
|
||||||
version "5.0.1"
|
version "5.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-5.0.1.tgz#6197a095d5fb6b57e8942f6fd7eaad63a09c9452"
|
resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-5.0.1.tgz#6197a095d5fb6b57e8942f6fd7eaad63a09c9452"
|
||||||
|
integrity sha1-YZegldX7a1folC9v1+qtY6CclFI=
|
||||||
|
|
||||||
fd-slicer@~1.1.0:
|
fd-slicer@~1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
|
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
|
||||||
|
integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
|
||||||
dependencies:
|
dependencies:
|
||||||
pend "~1.2.0"
|
pend "~1.2.0"
|
||||||
|
|
||||||
file-type@^3.8.0:
|
file-type@^3.8.0:
|
||||||
version "3.9.0"
|
version "3.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
|
resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
|
||||||
|
integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek=
|
||||||
|
|
||||||
file-type@^5.2.0:
|
file-type@^5.2.0:
|
||||||
version "5.2.0"
|
version "5.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
|
resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
|
||||||
|
integrity sha1-LdvqfHP/42No365J3DOMBYwritY=
|
||||||
|
|
||||||
file-type@^6.1.0:
|
file-type@^6.1.0:
|
||||||
version "6.2.0"
|
version "6.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919"
|
resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919"
|
||||||
|
integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==
|
||||||
|
|
||||||
fs-constants@^1.0.0:
|
fs-constants@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
|
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
|
||||||
|
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
|
||||||
|
|
||||||
get-stream@^2.2.0:
|
get-stream@^2.2.0:
|
||||||
version "2.3.1"
|
version "2.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
|
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
|
||||||
|
integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=
|
||||||
dependencies:
|
dependencies:
|
||||||
object-assign "^4.0.1"
|
object-assign "^4.0.1"
|
||||||
pinkie-promise "^2.0.0"
|
pinkie-promise "^2.0.0"
|
||||||
@@ -172,14 +212,17 @@ get-stream@^2.2.0:
|
|||||||
graceful-fs@^4.1.10:
|
graceful-fs@^4.1.10:
|
||||||
version "4.1.11"
|
version "4.1.11"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
||||||
|
integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=
|
||||||
|
|
||||||
"graceful-readlink@>= 1.0.0":
|
"graceful-readlink@>= 1.0.0":
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
||||||
|
integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
|
||||||
|
|
||||||
http-proxy-agent@^2.1.0:
|
http-proxy-agent@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
||||||
|
integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base "4"
|
agent-base "4"
|
||||||
debug "3.1.0"
|
debug "3.1.0"
|
||||||
@@ -187,6 +230,7 @@ http-proxy-agent@^2.1.0:
|
|||||||
https-proxy-agent@^2.2.1:
|
https-proxy-agent@^2.2.1:
|
||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
|
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
|
||||||
|
integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base "^4.1.0"
|
agent-base "^4.1.0"
|
||||||
debug "^3.1.0"
|
debug "^3.1.0"
|
||||||
@@ -194,90 +238,110 @@ https-proxy-agent@^2.2.1:
|
|||||||
ieee754@^1.1.4:
|
ieee754@^1.1.4:
|
||||||
version "1.1.12"
|
version "1.1.12"
|
||||||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
|
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
|
||||||
|
integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==
|
||||||
|
|
||||||
inherits@~2.0.3:
|
inherits@~2.0.3:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||||
|
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
|
||||||
|
|
||||||
is-natural-number@^4.0.1:
|
is-natural-number@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
|
resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
|
||||||
|
integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=
|
||||||
|
|
||||||
is-stream@^1.1.0:
|
is-stream@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||||
|
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
|
||||||
|
|
||||||
isarray@^1.0.0, isarray@~1.0.0:
|
isarray@^1.0.0, isarray@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||||
|
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
|
||||||
|
|
||||||
make-dir@^1.0.0:
|
make-dir@^1.0.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
|
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
|
||||||
|
integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
pify "^3.0.0"
|
pify "^3.0.0"
|
||||||
|
|
||||||
minimist@0.0.8:
|
minimist@0.0.8:
|
||||||
version "0.0.8"
|
version "0.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
||||||
|
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
|
||||||
|
|
||||||
mkdirp@^0.5.1:
|
mkdirp@^0.5.1:
|
||||||
version "0.5.1"
|
version "0.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||||
|
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
|
||||||
dependencies:
|
dependencies:
|
||||||
minimist "0.0.8"
|
minimist "0.0.8"
|
||||||
|
|
||||||
ms@2.0.0:
|
ms@2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||||
|
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
|
||||||
|
|
||||||
object-assign@^4.0.1:
|
object-assign@^4.0.1:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||||
|
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
|
||||||
|
|
||||||
once@^1.4.0:
|
once@^1.4.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||||
|
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||||
dependencies:
|
dependencies:
|
||||||
wrappy "1"
|
wrappy "1"
|
||||||
|
|
||||||
opener@^1.4.3:
|
opener@^1.4.3:
|
||||||
version "1.4.3"
|
version "1.4.3"
|
||||||
resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
|
resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
|
||||||
|
integrity sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=
|
||||||
|
|
||||||
os-tmpdir@~1.0.2:
|
os-tmpdir@~1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
||||||
|
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
|
||||||
|
|
||||||
pend@~1.2.0:
|
pend@~1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
|
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
|
||||||
|
integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
|
||||||
|
|
||||||
pify@^2.3.0:
|
pify@^2.3.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
||||||
|
integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
|
||||||
|
|
||||||
pify@^3.0.0:
|
pify@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
|
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
|
||||||
|
integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
|
||||||
|
|
||||||
pinkie-promise@^2.0.0:
|
pinkie-promise@^2.0.0:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
|
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
|
||||||
|
integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
|
||||||
dependencies:
|
dependencies:
|
||||||
pinkie "^2.0.0"
|
pinkie "^2.0.0"
|
||||||
|
|
||||||
pinkie@^2.0.0:
|
pinkie@^2.0.0:
|
||||||
version "2.0.4"
|
version "2.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
|
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
|
||||||
|
integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
|
||||||
|
|
||||||
process-nextick-args@~2.0.0:
|
process-nextick-args@~2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
|
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
|
||||||
|
integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
|
||||||
|
|
||||||
readable-stream@^2.3.0, readable-stream@^2.3.5:
|
readable-stream@^2.3.0, readable-stream@^2.3.5:
|
||||||
version "2.3.6"
|
version "2.3.6"
|
||||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
|
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
|
||||||
|
integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
|
||||||
dependencies:
|
dependencies:
|
||||||
core-util-is "~1.0.0"
|
core-util-is "~1.0.0"
|
||||||
inherits "~2.0.3"
|
inherits "~2.0.3"
|
||||||
@@ -290,13 +354,19 @@ readable-stream@^2.3.0, readable-stream@^2.3.5:
|
|||||||
safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||||
version "5.1.2"
|
version "5.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
||||||
|
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
||||||
|
|
||||||
seek-bzip@^1.0.5:
|
seek-bzip@^1.0.5:
|
||||||
version "1.0.5"
|
version "1.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
|
resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
|
||||||
|
integrity sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=
|
||||||
dependencies:
|
dependencies:
|
||||||
commander "~2.8.1"
|
commander "~2.8.1"
|
||||||
|
|
||||||
|
semver@^5.3.0:
|
||||||
|
version "5.6.0"
|
||||||
|
resolved "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
|
||||||
|
|
||||||
"service-downloader@github:anthonydresser/service-downloader#0.1.5":
|
"service-downloader@github:anthonydresser/service-downloader#0.1.5":
|
||||||
version "0.1.5"
|
version "0.1.5"
|
||||||
resolved "https://codeload.github.com/anthonydresser/service-downloader/tar.gz/6ebb0465573cc140e461a22f334260f55ef45546"
|
resolved "https://codeload.github.com/anthonydresser/service-downloader/tar.gz/6ebb0465573cc140e461a22f334260f55ef45546"
|
||||||
@@ -311,18 +381,21 @@ seek-bzip@^1.0.5:
|
|||||||
string_decoder@~1.1.1:
|
string_decoder@~1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
|
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
|
||||||
|
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer "~5.1.0"
|
safe-buffer "~5.1.0"
|
||||||
|
|
||||||
strip-dirs@^2.0.0:
|
strip-dirs@^2.0.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5"
|
resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5"
|
||||||
|
integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==
|
||||||
dependencies:
|
dependencies:
|
||||||
is-natural-number "^4.0.1"
|
is-natural-number "^4.0.1"
|
||||||
|
|
||||||
tar-stream@^1.5.2:
|
tar-stream@^1.5.2:
|
||||||
version "1.6.1"
|
version "1.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395"
|
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395"
|
||||||
|
integrity sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==
|
||||||
dependencies:
|
dependencies:
|
||||||
bl "^1.0.0"
|
bl "^1.0.0"
|
||||||
buffer-alloc "^1.1.0"
|
buffer-alloc "^1.1.0"
|
||||||
@@ -335,20 +408,24 @@ tar-stream@^1.5.2:
|
|||||||
through@^2.3.6:
|
through@^2.3.6:
|
||||||
version "2.3.8"
|
version "2.3.8"
|
||||||
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||||
|
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
|
||||||
|
|
||||||
tmp@^0.0.33:
|
tmp@^0.0.33:
|
||||||
version "0.0.33"
|
version "0.0.33"
|
||||||
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
|
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
|
||||||
|
integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
|
||||||
dependencies:
|
dependencies:
|
||||||
os-tmpdir "~1.0.2"
|
os-tmpdir "~1.0.2"
|
||||||
|
|
||||||
to-buffer@^1.1.0:
|
to-buffer@^1.1.0:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
|
resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
|
||||||
|
integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==
|
||||||
|
|
||||||
unbzip2-stream@^1.0.9:
|
unbzip2-stream@^1.0.9:
|
||||||
version "1.2.5"
|
version "1.2.5"
|
||||||
resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47"
|
resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47"
|
||||||
|
integrity sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og==
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer "^3.0.1"
|
buffer "^3.0.1"
|
||||||
through "^2.3.6"
|
through "^2.3.6"
|
||||||
@@ -356,27 +433,30 @@ unbzip2-stream@^1.0.9:
|
|||||||
util-deprecate@~1.0.1:
|
util-deprecate@~1.0.1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
||||||
|
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
|
||||||
|
|
||||||
vscode-extension-telemetry@^0.0.5:
|
vscode-extension-telemetry@0.0.18:
|
||||||
version "0.0.5"
|
version "0.0.18"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.5.tgz#21e2abb4cbce3326e469ddbb322123b3702f3f85"
|
resolved "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.18.tgz#602ba20d8c71453aa34533a291e7638f6e5c0327"
|
||||||
dependencies:
|
dependencies:
|
||||||
applicationinsights "0.15.6"
|
applicationinsights "1.0.1"
|
||||||
winreg "0.0.13"
|
|
||||||
|
|
||||||
vscode-jsonrpc@3.5.0:
|
vscode-jsonrpc@3.5.0:
|
||||||
version "3.5.0"
|
version "3.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.5.0.tgz#87239d9e166b2d7352245b8a813597804c1d63aa"
|
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.5.0.tgz#87239d9e166b2d7352245b8a813597804c1d63aa"
|
||||||
|
integrity sha1-hyOdnhZrLXNSJFuKgTWXgEwdY6o=
|
||||||
|
|
||||||
vscode-languageclient@3.5.1:
|
vscode-languageclient@3.5.1:
|
||||||
version "3.5.1"
|
version "3.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.1.tgz#c78e582459c24e58f88020dfa34065e976186a98"
|
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.1.tgz#c78e582459c24e58f88020dfa34065e976186a98"
|
||||||
|
integrity sha512-GTQ+hSq/o4c/y6GYmyP9XNrVoIu0NFZ67KltSkqN+tO0eUNDIlrVNX+3DJzzyLhSsrctuGzuYWm3t87mNAcBmQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-languageserver-protocol "3.5.1"
|
vscode-languageserver-protocol "3.5.1"
|
||||||
|
|
||||||
vscode-languageserver-protocol@3.5.1:
|
vscode-languageserver-protocol@3.5.1:
|
||||||
version "3.5.1"
|
version "3.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.5.1.tgz#5144a3a9eeccbd83fe2745bd4ed75fad6cc45f0d"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.5.1.tgz#5144a3a9eeccbd83fe2745bd4ed75fad6cc45f0d"
|
||||||
|
integrity sha512-1fPDIwsAv1difCV+8daOrJEGunClNJWqnUHq/ncWrjhitKWXgGmRCjlwZ3gDUTt54yRcvXz1PXJDaRNvNH6pYA==
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-jsonrpc "3.5.0"
|
vscode-jsonrpc "3.5.0"
|
||||||
vscode-languageserver-types "3.5.0"
|
vscode-languageserver-types "3.5.0"
|
||||||
@@ -384,26 +464,31 @@ vscode-languageserver-protocol@3.5.1:
|
|||||||
vscode-languageserver-types@3.5.0:
|
vscode-languageserver-types@3.5.0:
|
||||||
version "3.5.0"
|
version "3.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374"
|
||||||
|
integrity sha1-5I15li8LjgLelV4/UkkI4rGcA3Q=
|
||||||
|
|
||||||
vscode-nls@^3.2.1:
|
vscode-nls@^3.2.1:
|
||||||
version "3.2.4"
|
version "3.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
||||||
|
integrity sha512-FTjdqa4jDDoBjJqr36O8lmmZf/55kQ2w4ZY/+GL6K92fq765BqO3aYw21atnXUno/P04V5DWagNl4ybDIndJsw==
|
||||||
winreg@0.0.13:
|
|
||||||
version "0.0.13"
|
|
||||||
resolved "https://registry.yarnpkg.com/winreg/-/winreg-0.0.13.tgz#76bfe02e1dd0c9c8275fb9fdf17a9f36846e3483"
|
|
||||||
|
|
||||||
wrappy@1:
|
wrappy@1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||||
|
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||||
|
|
||||||
xtend@^4.0.0:
|
xtend@^4.0.0:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
||||||
|
integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
|
||||||
|
|
||||||
yauzl@^2.4.2:
|
yauzl@^2.4.2:
|
||||||
version "2.10.0"
|
version "2.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
|
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
|
||||||
|
integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer-crc32 "~0.2.3"
|
buffer-crc32 "~0.2.3"
|
||||||
fd-slicer "~1.1.0"
|
fd-slicer "~1.1.0"
|
||||||
|
|
||||||
|
zone.js@0.7.6:
|
||||||
|
version "0.7.6"
|
||||||
|
resolved "https://registry.npmjs.org/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009"
|
||||||
|
|||||||
@@ -5,36 +5,43 @@
|
|||||||
"@types/mocha@2.2.33":
|
"@types/mocha@2.2.33":
|
||||||
version "2.2.33"
|
version "2.2.33"
|
||||||
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.33.tgz#d79a0061ec270379f4d9e225f4096fb436669def"
|
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.33.tgz#d79a0061ec270379f4d9e225f4096fb436669def"
|
||||||
|
integrity sha1-15oAYewnA3n02eIl9AlvtDZmne8=
|
||||||
|
|
||||||
"@types/node@7.0.43":
|
"@types/node@7.0.43":
|
||||||
version "7.0.43"
|
version "7.0.43"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c"
|
||||||
|
integrity sha512-7scYwwfHNppXvH/9JzakbVxk0o0QUILVk1Lv64GRaxwPuGpnF1QBiwdvhDpLcymb8BpomQL3KYoWKq3wUdDMhQ==
|
||||||
|
|
||||||
agent-base@4, agent-base@^4.1.0:
|
agent-base@4, agent-base@^4.1.0:
|
||||||
version "4.1.2"
|
version "4.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.1.2.tgz#80fa6cde440f4dcf9af2617cf246099b5d99f0c8"
|
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.1.2.tgz#80fa6cde440f4dcf9af2617cf246099b5d99f0c8"
|
||||||
|
integrity sha512-VE6QoEdaugY86BohRtfGmTDabxdU5sCKOkbcPA6PXKJsRzEi/7A3RCTxJal1ft/4qSfPht5/iQLhMh/wzSkkNw==
|
||||||
dependencies:
|
dependencies:
|
||||||
es6-promisify "^5.0.0"
|
es6-promisify "^5.0.0"
|
||||||
|
|
||||||
debug@3.1.0, debug@^3.1.0:
|
debug@3.1.0, debug@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||||
|
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
es6-promise@^4.0.3:
|
es6-promise@^4.0.3:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a"
|
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a"
|
||||||
|
integrity sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==
|
||||||
|
|
||||||
es6-promisify@^5.0.0:
|
es6-promisify@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
|
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
|
||||||
|
integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
|
||||||
dependencies:
|
dependencies:
|
||||||
es6-promise "^4.0.3"
|
es6-promise "^4.0.3"
|
||||||
|
|
||||||
http-proxy-agent@^2.1.0:
|
http-proxy-agent@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
||||||
|
integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base "4"
|
agent-base "4"
|
||||||
debug "3.1.0"
|
debug "3.1.0"
|
||||||
@@ -42,6 +49,7 @@ http-proxy-agent@^2.1.0:
|
|||||||
https-proxy-agent@^2.2.1:
|
https-proxy-agent@^2.2.1:
|
||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
|
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
|
||||||
|
integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base "^4.1.0"
|
agent-base "^4.1.0"
|
||||||
debug "^3.1.0"
|
debug "^3.1.0"
|
||||||
@@ -49,14 +57,17 @@ https-proxy-agent@^2.2.1:
|
|||||||
jsonc-parser@^2.0.1:
|
jsonc-parser@^2.0.1:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.0.1.tgz#9d23cd2709714fff508a1a6679d82135bee1ae60"
|
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.0.1.tgz#9d23cd2709714fff508a1a6679d82135bee1ae60"
|
||||||
|
integrity sha512-9w/QyN9qF1dTlffzkmyITa6qAYt6sDArlVZqaP+CXnRh66V73wImQGG8GIBkuas0XLAxddWEWYQ8PPFoK5KNQA==
|
||||||
|
|
||||||
ms@2.0.0:
|
ms@2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||||
|
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
|
||||||
|
|
||||||
request-light@^0.2.3:
|
request-light@^0.2.3:
|
||||||
version "0.2.3"
|
version "0.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/request-light/-/request-light-0.2.3.tgz#a18635ec6dd92f8705c019c42ef645f684d94f7e"
|
resolved "https://registry.yarnpkg.com/request-light/-/request-light-0.2.3.tgz#a18635ec6dd92f8705c019c42ef645f684d94f7e"
|
||||||
|
integrity sha512-KUQTybUtB/WZl7wQGAKenEJkuUX1/DyYX6PJpNEaBVyxE4v6U4Q5P65cmjdKglzcNTGIPZG857JMEAiMWVsoIw==
|
||||||
dependencies:
|
dependencies:
|
||||||
http-proxy-agent "^2.1.0"
|
http-proxy-agent "^2.1.0"
|
||||||
https-proxy-agent "^2.2.1"
|
https-proxy-agent "^2.2.1"
|
||||||
@@ -65,6 +76,7 @@ request-light@^0.2.3:
|
|||||||
vscode-json-languageservice@^3.1.4:
|
vscode-json-languageservice@^3.1.4:
|
||||||
version "3.1.4"
|
version "3.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.1.4.tgz#72e84e2754ad117f9e8d36876c1a66fe16234235"
|
resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.1.4.tgz#72e84e2754ad117f9e8d36876c1a66fe16234235"
|
||||||
|
integrity sha512-RiLEhif0MzwIscoxKZ0lL1fvKUbB1DLJcPXGCm/K9WouLbEQu1OuIBsMPp3NnK+ZOW7uMXZgGfpMtWow7YgOiQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
jsonc-parser "^2.0.1"
|
jsonc-parser "^2.0.1"
|
||||||
vscode-languageserver-types "^3.10.0"
|
vscode-languageserver-types "^3.10.0"
|
||||||
@@ -74,10 +86,12 @@ vscode-json-languageservice@^3.1.4:
|
|||||||
vscode-jsonrpc@^3.6.2:
|
vscode-jsonrpc@^3.6.2:
|
||||||
version "3.6.2"
|
version "3.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz#3b5eef691159a15556ecc500e9a8a0dd143470c8"
|
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz#3b5eef691159a15556ecc500e9a8a0dd143470c8"
|
||||||
|
integrity sha512-T24Jb5V48e4VgYliUXMnZ379ItbrXgOimweKaJshD84z+8q7ZOZjJan0MeDe+Ugb+uqERDVV8SBmemaGMSMugA==
|
||||||
|
|
||||||
vscode-languageserver-protocol@^3.10.0:
|
vscode-languageserver-protocol@^3.10.0:
|
||||||
version "3.10.0"
|
version "3.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.0.tgz#f8dcdf987687f64a26e7c32d498fc781a0e886dc"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.0.tgz#f8dcdf987687f64a26e7c32d498fc781a0e886dc"
|
||||||
|
integrity sha512-PNNmKM0IcQPRiY1oUIxfwseBvxS5Sa5aZUpTcq/qsXWclnl8FFNs8oCCoAtyLhBXnuJvybWUNafiA78y0unJDA==
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-jsonrpc "^3.6.2"
|
vscode-jsonrpc "^3.6.2"
|
||||||
vscode-languageserver-types "^3.10.0"
|
vscode-languageserver-types "^3.10.0"
|
||||||
@@ -85,10 +99,12 @@ vscode-languageserver-protocol@^3.10.0:
|
|||||||
vscode-languageserver-types@^3.10.0:
|
vscode-languageserver-types@^3.10.0:
|
||||||
version "3.10.0"
|
version "3.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.10.0.tgz#944e5308f3b36a3f372c766f1a344e903ec9c389"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.10.0.tgz#944e5308f3b36a3f372c766f1a344e903ec9c389"
|
||||||
|
integrity sha512-vxmCsVZGwq8X40SuLP8Ix7V0rq5V/7iQUjRVe2Oxm+TbmjxtjK4dpHHXQCUawjA4fhPA9FwjSRbDhbvQmYCfMw==
|
||||||
|
|
||||||
vscode-languageserver@^4.4.0:
|
vscode-languageserver@^4.4.0:
|
||||||
version "4.4.0"
|
version "4.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-4.4.0.tgz#b6e8b37a739ccb629d92f3635f0099d191c856fa"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-4.4.0.tgz#b6e8b37a739ccb629d92f3635f0099d191c856fa"
|
||||||
|
integrity sha512-NO4JQg286YLSdU11Fko6cke19kwSob3O0bhf6xDxIJuDhUbFy0VEPRB5ITc3riVmp13+Ki344xtqJYmqfcmCrg==
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-languageserver-protocol "^3.10.0"
|
vscode-languageserver-protocol "^3.10.0"
|
||||||
vscode-uri "^1.0.3"
|
vscode-uri "^1.0.3"
|
||||||
@@ -96,11 +112,14 @@ vscode-languageserver@^4.4.0:
|
|||||||
vscode-nls@^3.2.2, vscode-nls@^3.2.4:
|
vscode-nls@^3.2.2, vscode-nls@^3.2.4:
|
||||||
version "3.2.4"
|
version "3.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
||||||
|
integrity sha512-FTjdqa4jDDoBjJqr36O8lmmZf/55kQ2w4ZY/+GL6K92fq765BqO3aYw21atnXUno/P04V5DWagNl4ybDIndJsw==
|
||||||
|
|
||||||
vscode-uri@^1.0.3:
|
vscode-uri@^1.0.3:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.3.tgz#631bdbf716dccab0e65291a8dc25c23232085a52"
|
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.3.tgz#631bdbf716dccab0e65291a8dc25c23232085a52"
|
||||||
|
integrity sha1-Yxvb9xbcyrDmUpGo3CXCMjIIWlI=
|
||||||
|
|
||||||
vscode-uri@^1.0.5:
|
vscode-uri@^1.0.5:
|
||||||
version "1.0.5"
|
version "1.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.5.tgz#3b899a8ef71c37f3054d79bdbdda31c7bf36f20d"
|
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.5.tgz#3b899a8ef71c37f3054d79bdbdda31c7bf36f20d"
|
||||||
|
integrity sha1-O4majvccN/MFTXm9vdoxx7828g0=
|
||||||
|
|||||||
@@ -5,10 +5,12 @@
|
|||||||
"@types/node@7.0.43":
|
"@types/node@7.0.43":
|
||||||
version "7.0.43"
|
version "7.0.43"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c"
|
||||||
|
integrity sha512-7scYwwfHNppXvH/9JzakbVxk0o0QUILVk1Lv64GRaxwPuGpnF1QBiwdvhDpLcymb8BpomQL3KYoWKq3wUdDMhQ==
|
||||||
|
|
||||||
applicationinsights@1.0.1:
|
applicationinsights@1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927"
|
resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927"
|
||||||
|
integrity sha1-U0Rrgw/o1dYZ7uKieLMdPSUDCSc=
|
||||||
dependencies:
|
dependencies:
|
||||||
diagnostic-channel "0.2.0"
|
diagnostic-channel "0.2.0"
|
||||||
diagnostic-channel-publishers "0.2.1"
|
diagnostic-channel-publishers "0.2.1"
|
||||||
@@ -17,36 +19,43 @@ applicationinsights@1.0.1:
|
|||||||
diagnostic-channel-publishers@0.2.1:
|
diagnostic-channel-publishers@0.2.1:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3"
|
resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3"
|
||||||
|
integrity sha1-ji1geottef6IC1SLxYzGvrKIxPM=
|
||||||
|
|
||||||
diagnostic-channel@0.2.0:
|
diagnostic-channel@0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17"
|
resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17"
|
||||||
|
integrity sha1-zJmvlhLCP7H/8TYSxy8sv6qNWhc=
|
||||||
dependencies:
|
dependencies:
|
||||||
semver "^5.3.0"
|
semver "^5.3.0"
|
||||||
|
|
||||||
semver@^5.3.0:
|
semver@^5.3.0:
|
||||||
version "5.5.0"
|
version "5.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
|
||||||
|
integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==
|
||||||
|
|
||||||
vscode-extension-telemetry@0.0.18:
|
vscode-extension-telemetry@0.0.18:
|
||||||
version "0.0.18"
|
version "0.0.18"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.18.tgz#602ba20d8c71453aa34533a291e7638f6e5c0327"
|
resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.18.tgz#602ba20d8c71453aa34533a291e7638f6e5c0327"
|
||||||
|
integrity sha512-Vw3Sr+dZwl+c6PlsUwrTtCOJkgrmvS3OUVDQGcmpXWAgq9xGq6as0K4pUx+aGqTjzLAESmWSrs6HlJm6J6Khcg==
|
||||||
dependencies:
|
dependencies:
|
||||||
applicationinsights "1.0.1"
|
applicationinsights "1.0.1"
|
||||||
|
|
||||||
vscode-jsonrpc@^3.6.2:
|
vscode-jsonrpc@^3.6.2:
|
||||||
version "3.6.2"
|
version "3.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz#3b5eef691159a15556ecc500e9a8a0dd143470c8"
|
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz#3b5eef691159a15556ecc500e9a8a0dd143470c8"
|
||||||
|
integrity sha512-T24Jb5V48e4VgYliUXMnZ379ItbrXgOimweKaJshD84z+8q7ZOZjJan0MeDe+Ugb+uqERDVV8SBmemaGMSMugA==
|
||||||
|
|
||||||
vscode-languageclient@^4.4.0:
|
vscode-languageclient@^4.4.0:
|
||||||
version "4.4.0"
|
version "4.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-4.4.0.tgz#b05868f6477b6f0c9910b24daae4f3e8c4b65902"
|
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-4.4.0.tgz#b05868f6477b6f0c9910b24daae4f3e8c4b65902"
|
||||||
|
integrity sha512-sXBwIcwG4W5MjnDAfXf0hM5ErOcXxEBlix6QJb5ijf0gtecYygrMAqv8hag7sEg/jCCOKQdXJ4K1iZL3GZcJZg==
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-languageserver-protocol "^3.10.0"
|
vscode-languageserver-protocol "^3.10.0"
|
||||||
|
|
||||||
vscode-languageserver-protocol@^3.10.0:
|
vscode-languageserver-protocol@^3.10.0:
|
||||||
version "3.10.0"
|
version "3.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.0.tgz#f8dcdf987687f64a26e7c32d498fc781a0e886dc"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.0.tgz#f8dcdf987687f64a26e7c32d498fc781a0e886dc"
|
||||||
|
integrity sha512-PNNmKM0IcQPRiY1oUIxfwseBvxS5Sa5aZUpTcq/qsXWclnl8FFNs8oCCoAtyLhBXnuJvybWUNafiA78y0unJDA==
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-jsonrpc "^3.6.2"
|
vscode-jsonrpc "^3.6.2"
|
||||||
vscode-languageserver-types "^3.10.0"
|
vscode-languageserver-types "^3.10.0"
|
||||||
@@ -54,11 +63,14 @@ vscode-languageserver-protocol@^3.10.0:
|
|||||||
vscode-languageserver-types@^3.10.0:
|
vscode-languageserver-types@^3.10.0:
|
||||||
version "3.10.0"
|
version "3.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.10.0.tgz#944e5308f3b36a3f372c766f1a344e903ec9c389"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.10.0.tgz#944e5308f3b36a3f372c766f1a344e903ec9c389"
|
||||||
|
integrity sha512-vxmCsVZGwq8X40SuLP8Ix7V0rq5V/7iQUjRVe2Oxm+TbmjxtjK4dpHHXQCUawjA4fhPA9FwjSRbDhbvQmYCfMw==
|
||||||
|
|
||||||
vscode-nls@^3.2.4:
|
vscode-nls@^3.2.4:
|
||||||
version "3.2.4"
|
version "3.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
||||||
|
integrity sha512-FTjdqa4jDDoBjJqr36O8lmmZf/55kQ2w4ZY/+GL6K92fq765BqO3aYw21atnXUno/P04V5DWagNl4ybDIndJsw==
|
||||||
|
|
||||||
zone.js@0.7.6:
|
zone.js@0.7.6:
|
||||||
version "0.7.6"
|
version "0.7.6"
|
||||||
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009"
|
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009"
|
||||||
|
integrity sha1-+7w50+AmHQmG8boGMG6zrrDSIAk=
|
||||||
|
|||||||
@@ -5,7 +5,9 @@
|
|||||||
"@types/node@8.0.33":
|
"@types/node@8.0.33":
|
||||||
version "8.0.33"
|
version "8.0.33"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.33.tgz#1126e94374014e54478092830704f6ea89df04cd"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.33.tgz#1126e94374014e54478092830704f6ea89df04cd"
|
||||||
|
integrity sha512-vmCdO8Bm1ExT+FWfC9sd9r4jwqM7o97gGy2WBshkkXbf/2nLAJQUrZfIhw27yVOtLUev6kSZc4cav/46KbDd8A==
|
||||||
|
|
||||||
vscode-nls@^3.2.4:
|
vscode-nls@^3.2.4:
|
||||||
version "3.2.4"
|
version "3.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.4.tgz#2166b4183c8aea884d20727f5449e62be69fd398"
|
||||||
|
integrity sha512-FTjdqa4jDDoBjJqr36O8lmmZf/55kQ2w4ZY/+GL6K92fq765BqO3aYw21atnXUno/P04V5DWagNl4ybDIndJsw==
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
{
|
{
|
||||||
"downloadUrl": "https://github.com/Microsoft/sqltoolsservice/releases/download/v{#version#}/microsoft.sqltools.servicelayer-{#fileName#}",
|
"downloadUrl": "https://github.com/Microsoft/sqltoolsservice/releases/download/v{#version#}/microsoft.sqltools.servicelayer-{#fileName#}",
|
||||||
"version": "1.5.0-alpha.43",
|
"version": "1.5.0-alpha.52",
|
||||||
"downloadFileNames": {
|
"downloadFileNames": {
|
||||||
"Windows_86": "win-x86-netcoreapp2.1.zip",
|
"Windows_86": "win-x86-netcoreapp2.2.zip",
|
||||||
"Windows_64": "win-x64-netcoreapp2.1.zip",
|
"Windows_64": "win-x64-netcoreapp2.2.zip",
|
||||||
"OSX": "osx-x64-netcoreapp2.1.tar.gz",
|
"OSX": "osx-x64-netcoreapp2.2.tar.gz",
|
||||||
"CentOS_7": "rhel-x64-netcoreapp2.1.tar.gz",
|
"CentOS_7": "rhel-x64-netcoreapp2.2.tar.gz",
|
||||||
"Debian_8": "rhel-x64-netcoreapp2.1.tar.gz",
|
"Debian_8": "rhel-x64-netcoreapp2.2.tar.gz",
|
||||||
"Fedora_23": "rhel-x64-netcoreapp2.1.tar.gz",
|
"Fedora_23": "rhel-x64-netcoreapp2.2.tar.gz",
|
||||||
"OpenSUSE_13_2": "rhel-x64-netcoreapp2.1.tar.gz",
|
"OpenSUSE_13_2": "rhel-x64-netcoreapp2.2.tar.gz",
|
||||||
"RHEL_7": "rhel-x64-netcoreapp2.1.tar.gz",
|
"RHEL_7": "rhel-x64-netcoreapp2.2.tar.gz",
|
||||||
"SLES_12_2": "rhel-x64-netcoreapp2.1.tar.gz",
|
"SLES_12_2": "rhel-x64-netcoreapp2.2.tar.gz",
|
||||||
"Ubuntu_14": "rhel-x64-netcoreapp2.1.tar.gz",
|
"Ubuntu_14": "rhel-x64-netcoreapp2.2.tar.gz",
|
||||||
"Ubuntu_16": "rhel-x64-netcoreapp2.1.tar.gz"
|
"Ubuntu_16": "rhel-x64-netcoreapp2.2.tar.gz"
|
||||||
},
|
},
|
||||||
"installDirectory": "../sqltoolsservice/{#platform#}/{#version#}",
|
"installDirectory": "../sqltoolsservice/{#platform#}/{#version#}",
|
||||||
"executableFiles": ["MicrosoftSqlToolsServiceLayer.exe", "MicrosoftSqlToolsServiceLayer"]
|
"executableFiles": ["MicrosoftSqlToolsServiceLayer.exe", "MicrosoftSqlToolsServiceLayer"]
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ export interface AgentJobsParams {
|
|||||||
export interface AgentJobHistoryParams {
|
export interface AgentJobHistoryParams {
|
||||||
ownerUri: string;
|
ownerUri: string;
|
||||||
jobId: string;
|
jobId: string;
|
||||||
|
jobName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AgentJobActionParams {
|
export interface AgentJobActionParams {
|
||||||
|
|||||||
@@ -80,8 +80,8 @@ export class AgentServicesFeature extends SqlOpsFeature<undefined> {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
let getJobHistory = (ownerUri: string, jobID: string): Thenable<sqlops.AgentJobHistoryResult> => {
|
let getJobHistory = (ownerUri: string, jobID: string, jobName: string): Thenable<sqlops.AgentJobHistoryResult> => {
|
||||||
let params: contracts.AgentJobHistoryParams = { ownerUri: ownerUri, jobId: jobID };
|
let params: contracts.AgentJobHistoryParams = { ownerUri: ownerUri, jobId: jobID, jobName: jobName };
|
||||||
|
|
||||||
return client.sendRequest(contracts.AgentJobHistoryRequest.type, params).then(
|
return client.sendRequest(contracts.AgentJobHistoryRequest.type, params).then(
|
||||||
r => r,
|
r => r,
|
||||||
|
|||||||
@@ -5,12 +5,14 @@
|
|||||||
agent-base@4, agent-base@^4.1.0:
|
agent-base@4, agent-base@^4.1.0:
|
||||||
version "4.2.1"
|
version "4.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9"
|
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9"
|
||||||
|
integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==
|
||||||
dependencies:
|
dependencies:
|
||||||
es6-promisify "^5.0.0"
|
es6-promisify "^5.0.0"
|
||||||
|
|
||||||
applicationinsights@1.0.1:
|
applicationinsights@1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927"
|
resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927"
|
||||||
|
integrity sha1-U0Rrgw/o1dYZ7uKieLMdPSUDCSc=
|
||||||
dependencies:
|
dependencies:
|
||||||
diagnostic-channel "0.2.0"
|
diagnostic-channel "0.2.0"
|
||||||
diagnostic-channel-publishers "0.2.1"
|
diagnostic-channel-publishers "0.2.1"
|
||||||
@@ -19,10 +21,12 @@ applicationinsights@1.0.1:
|
|||||||
base64-js@0.0.8:
|
base64-js@0.0.8:
|
||||||
version "0.0.8"
|
version "0.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
|
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
|
||||||
|
integrity sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=
|
||||||
|
|
||||||
bl@^1.0.0:
|
bl@^1.0.0:
|
||||||
version "1.2.2"
|
version "1.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
|
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
|
||||||
|
integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==
|
||||||
dependencies:
|
dependencies:
|
||||||
readable-stream "^2.3.5"
|
readable-stream "^2.3.5"
|
||||||
safe-buffer "^5.1.1"
|
safe-buffer "^5.1.1"
|
||||||
@@ -30,10 +34,12 @@ bl@^1.0.0:
|
|||||||
buffer-alloc-unsafe@^1.1.0:
|
buffer-alloc-unsafe@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
|
resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
|
||||||
|
integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
|
||||||
|
|
||||||
buffer-alloc@^1.1.0:
|
buffer-alloc@^1.1.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
|
resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
|
||||||
|
integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer-alloc-unsafe "^1.1.0"
|
buffer-alloc-unsafe "^1.1.0"
|
||||||
buffer-fill "^1.0.0"
|
buffer-fill "^1.0.0"
|
||||||
@@ -41,14 +47,17 @@ buffer-alloc@^1.1.0:
|
|||||||
buffer-crc32@~0.2.3:
|
buffer-crc32@~0.2.3:
|
||||||
version "0.2.13"
|
version "0.2.13"
|
||||||
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
|
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
|
||||||
|
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
|
||||||
|
|
||||||
buffer-fill@^1.0.0:
|
buffer-fill@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
|
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
|
||||||
|
integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
|
||||||
|
|
||||||
buffer@^3.0.1:
|
buffer@^3.0.1:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb"
|
resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb"
|
||||||
|
integrity sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=
|
||||||
dependencies:
|
dependencies:
|
||||||
base64-js "0.0.8"
|
base64-js "0.0.8"
|
||||||
ieee754 "^1.1.4"
|
ieee754 "^1.1.4"
|
||||||
@@ -57,12 +66,14 @@ buffer@^3.0.1:
|
|||||||
commander@~2.8.1:
|
commander@~2.8.1:
|
||||||
version "2.8.1"
|
version "2.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
|
||||||
|
integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=
|
||||||
dependencies:
|
dependencies:
|
||||||
graceful-readlink ">= 1.0.0"
|
graceful-readlink ">= 1.0.0"
|
||||||
|
|
||||||
core-util-is@~1.0.0:
|
core-util-is@~1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||||
|
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
|
||||||
|
|
||||||
"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#0.2.8":
|
"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#0.2.8":
|
||||||
version "0.2.8"
|
version "0.2.8"
|
||||||
@@ -73,12 +84,14 @@ core-util-is@~1.0.0:
|
|||||||
debug@3.1.0, debug@^3.1.0:
|
debug@3.1.0, debug@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||||
|
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
|
decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1"
|
resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1"
|
||||||
|
integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
file-type "^5.2.0"
|
file-type "^5.2.0"
|
||||||
is-stream "^1.1.0"
|
is-stream "^1.1.0"
|
||||||
@@ -87,6 +100,7 @@ decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
|
|||||||
decompress-tarbz2@^4.0.0:
|
decompress-tarbz2@^4.0.0:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b"
|
resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b"
|
||||||
|
integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==
|
||||||
dependencies:
|
dependencies:
|
||||||
decompress-tar "^4.1.0"
|
decompress-tar "^4.1.0"
|
||||||
file-type "^6.1.0"
|
file-type "^6.1.0"
|
||||||
@@ -97,6 +111,7 @@ decompress-tarbz2@^4.0.0:
|
|||||||
decompress-targz@^4.0.0:
|
decompress-targz@^4.0.0:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee"
|
resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee"
|
||||||
|
integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==
|
||||||
dependencies:
|
dependencies:
|
||||||
decompress-tar "^4.1.1"
|
decompress-tar "^4.1.1"
|
||||||
file-type "^5.2.0"
|
file-type "^5.2.0"
|
||||||
@@ -105,6 +120,7 @@ decompress-targz@^4.0.0:
|
|||||||
decompress-unzip@^4.0.1:
|
decompress-unzip@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69"
|
resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69"
|
||||||
|
integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k=
|
||||||
dependencies:
|
dependencies:
|
||||||
file-type "^3.8.0"
|
file-type "^3.8.0"
|
||||||
get-stream "^2.2.0"
|
get-stream "^2.2.0"
|
||||||
@@ -114,6 +130,7 @@ decompress-unzip@^4.0.1:
|
|||||||
decompress@^4.2.0:
|
decompress@^4.2.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d"
|
resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d"
|
||||||
|
integrity sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=
|
||||||
dependencies:
|
dependencies:
|
||||||
decompress-tar "^4.0.0"
|
decompress-tar "^4.0.0"
|
||||||
decompress-tarbz2 "^4.0.0"
|
decompress-tarbz2 "^4.0.0"
|
||||||
@@ -127,58 +144,70 @@ decompress@^4.2.0:
|
|||||||
diagnostic-channel-publishers@0.2.1:
|
diagnostic-channel-publishers@0.2.1:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3"
|
resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3"
|
||||||
|
integrity sha1-ji1geottef6IC1SLxYzGvrKIxPM=
|
||||||
|
|
||||||
diagnostic-channel@0.2.0:
|
diagnostic-channel@0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17"
|
resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17"
|
||||||
|
integrity sha1-zJmvlhLCP7H/8TYSxy8sv6qNWhc=
|
||||||
dependencies:
|
dependencies:
|
||||||
semver "^5.3.0"
|
semver "^5.3.0"
|
||||||
|
|
||||||
end-of-stream@^1.0.0:
|
end-of-stream@^1.0.0:
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
|
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
|
||||||
|
integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
once "^1.4.0"
|
once "^1.4.0"
|
||||||
|
|
||||||
es6-promise@^4.0.3:
|
es6-promise@^4.0.3:
|
||||||
version "4.2.4"
|
version "4.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29"
|
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29"
|
||||||
|
integrity sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==
|
||||||
|
|
||||||
es6-promisify@^5.0.0:
|
es6-promisify@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
|
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
|
||||||
|
integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=
|
||||||
dependencies:
|
dependencies:
|
||||||
es6-promise "^4.0.3"
|
es6-promise "^4.0.3"
|
||||||
|
|
||||||
eventemitter2@^5.0.1:
|
eventemitter2@^5.0.1:
|
||||||
version "5.0.1"
|
version "5.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-5.0.1.tgz#6197a095d5fb6b57e8942f6fd7eaad63a09c9452"
|
resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-5.0.1.tgz#6197a095d5fb6b57e8942f6fd7eaad63a09c9452"
|
||||||
|
integrity sha1-YZegldX7a1folC9v1+qtY6CclFI=
|
||||||
|
|
||||||
fd-slicer@~1.1.0:
|
fd-slicer@~1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
|
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
|
||||||
|
integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
|
||||||
dependencies:
|
dependencies:
|
||||||
pend "~1.2.0"
|
pend "~1.2.0"
|
||||||
|
|
||||||
file-type@^3.8.0:
|
file-type@^3.8.0:
|
||||||
version "3.9.0"
|
version "3.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
|
resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
|
||||||
|
integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek=
|
||||||
|
|
||||||
file-type@^5.2.0:
|
file-type@^5.2.0:
|
||||||
version "5.2.0"
|
version "5.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
|
resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
|
||||||
|
integrity sha1-LdvqfHP/42No365J3DOMBYwritY=
|
||||||
|
|
||||||
file-type@^6.1.0:
|
file-type@^6.1.0:
|
||||||
version "6.2.0"
|
version "6.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919"
|
resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919"
|
||||||
|
integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==
|
||||||
|
|
||||||
fs-constants@^1.0.0:
|
fs-constants@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
|
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
|
||||||
|
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
|
||||||
|
|
||||||
get-stream@^2.2.0:
|
get-stream@^2.2.0:
|
||||||
version "2.3.1"
|
version "2.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
|
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
|
||||||
|
integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=
|
||||||
dependencies:
|
dependencies:
|
||||||
object-assign "^4.0.1"
|
object-assign "^4.0.1"
|
||||||
pinkie-promise "^2.0.0"
|
pinkie-promise "^2.0.0"
|
||||||
@@ -186,14 +215,17 @@ get-stream@^2.2.0:
|
|||||||
graceful-fs@^4.1.10:
|
graceful-fs@^4.1.10:
|
||||||
version "4.1.11"
|
version "4.1.11"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
||||||
|
integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=
|
||||||
|
|
||||||
"graceful-readlink@>= 1.0.0":
|
"graceful-readlink@>= 1.0.0":
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
|
||||||
|
integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
|
||||||
|
|
||||||
http-proxy-agent@^2.1.0:
|
http-proxy-agent@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
||||||
|
integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base "4"
|
agent-base "4"
|
||||||
debug "3.1.0"
|
debug "3.1.0"
|
||||||
@@ -201,6 +233,7 @@ http-proxy-agent@^2.1.0:
|
|||||||
https-proxy-agent@^2.2.1:
|
https-proxy-agent@^2.2.1:
|
||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
|
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
|
||||||
|
integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base "^4.1.0"
|
agent-base "^4.1.0"
|
||||||
debug "^3.1.0"
|
debug "^3.1.0"
|
||||||
@@ -208,90 +241,110 @@ https-proxy-agent@^2.2.1:
|
|||||||
ieee754@^1.1.4:
|
ieee754@^1.1.4:
|
||||||
version "1.1.12"
|
version "1.1.12"
|
||||||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
|
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
|
||||||
|
integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==
|
||||||
|
|
||||||
inherits@~2.0.3:
|
inherits@~2.0.3:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||||
|
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
|
||||||
|
|
||||||
is-natural-number@^4.0.1:
|
is-natural-number@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
|
resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
|
||||||
|
integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=
|
||||||
|
|
||||||
is-stream@^1.1.0:
|
is-stream@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||||
|
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
|
||||||
|
|
||||||
isarray@^1.0.0, isarray@~1.0.0:
|
isarray@^1.0.0, isarray@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||||
|
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
|
||||||
|
|
||||||
make-dir@^1.0.0:
|
make-dir@^1.0.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
|
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
|
||||||
|
integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
pify "^3.0.0"
|
pify "^3.0.0"
|
||||||
|
|
||||||
minimist@0.0.8:
|
minimist@0.0.8:
|
||||||
version "0.0.8"
|
version "0.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
||||||
|
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
|
||||||
|
|
||||||
mkdirp@^0.5.1:
|
mkdirp@^0.5.1:
|
||||||
version "0.5.1"
|
version "0.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||||
|
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
|
||||||
dependencies:
|
dependencies:
|
||||||
minimist "0.0.8"
|
minimist "0.0.8"
|
||||||
|
|
||||||
ms@2.0.0:
|
ms@2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||||
|
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
|
||||||
|
|
||||||
object-assign@^4.0.1:
|
object-assign@^4.0.1:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||||
|
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
|
||||||
|
|
||||||
once@^1.4.0:
|
once@^1.4.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||||
|
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||||
dependencies:
|
dependencies:
|
||||||
wrappy "1"
|
wrappy "1"
|
||||||
|
|
||||||
opener@^1.4.3:
|
opener@^1.4.3:
|
||||||
version "1.4.3"
|
version "1.4.3"
|
||||||
resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
|
resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
|
||||||
|
integrity sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=
|
||||||
|
|
||||||
os-tmpdir@~1.0.2:
|
os-tmpdir@~1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
||||||
|
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
|
||||||
|
|
||||||
pend@~1.2.0:
|
pend@~1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
|
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
|
||||||
|
integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
|
||||||
|
|
||||||
pify@^2.3.0:
|
pify@^2.3.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
||||||
|
integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
|
||||||
|
|
||||||
pify@^3.0.0:
|
pify@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
|
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
|
||||||
|
integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
|
||||||
|
|
||||||
pinkie-promise@^2.0.0:
|
pinkie-promise@^2.0.0:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
|
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
|
||||||
|
integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
|
||||||
dependencies:
|
dependencies:
|
||||||
pinkie "^2.0.0"
|
pinkie "^2.0.0"
|
||||||
|
|
||||||
pinkie@^2.0.0:
|
pinkie@^2.0.0:
|
||||||
version "2.0.4"
|
version "2.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
|
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
|
||||||
|
integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
|
||||||
|
|
||||||
process-nextick-args@~2.0.0:
|
process-nextick-args@~2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
|
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
|
||||||
|
integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
|
||||||
|
|
||||||
readable-stream@^2.3.0, readable-stream@^2.3.5:
|
readable-stream@^2.3.0, readable-stream@^2.3.5:
|
||||||
version "2.3.6"
|
version "2.3.6"
|
||||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
|
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
|
||||||
|
integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
|
||||||
dependencies:
|
dependencies:
|
||||||
core-util-is "~1.0.0"
|
core-util-is "~1.0.0"
|
||||||
inherits "~2.0.3"
|
inherits "~2.0.3"
|
||||||
@@ -304,16 +357,19 @@ readable-stream@^2.3.0, readable-stream@^2.3.5:
|
|||||||
safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||||
version "5.1.2"
|
version "5.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
||||||
|
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
||||||
|
|
||||||
seek-bzip@^1.0.5:
|
seek-bzip@^1.0.5:
|
||||||
version "1.0.5"
|
version "1.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
|
resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
|
||||||
|
integrity sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=
|
||||||
dependencies:
|
dependencies:
|
||||||
commander "~2.8.1"
|
commander "~2.8.1"
|
||||||
|
|
||||||
semver@^5.3.0:
|
semver@^5.3.0:
|
||||||
version "5.5.0"
|
version "5.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
|
||||||
|
integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==
|
||||||
|
|
||||||
"service-downloader@github:anthonydresser/service-downloader#0.1.5":
|
"service-downloader@github:anthonydresser/service-downloader#0.1.5":
|
||||||
version "0.1.5"
|
version "0.1.5"
|
||||||
@@ -329,18 +385,21 @@ semver@^5.3.0:
|
|||||||
string_decoder@~1.1.1:
|
string_decoder@~1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
|
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
|
||||||
|
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer "~5.1.0"
|
safe-buffer "~5.1.0"
|
||||||
|
|
||||||
strip-dirs@^2.0.0:
|
strip-dirs@^2.0.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5"
|
resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5"
|
||||||
|
integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==
|
||||||
dependencies:
|
dependencies:
|
||||||
is-natural-number "^4.0.1"
|
is-natural-number "^4.0.1"
|
||||||
|
|
||||||
tar-stream@^1.5.2:
|
tar-stream@^1.5.2:
|
||||||
version "1.6.1"
|
version "1.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395"
|
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395"
|
||||||
|
integrity sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==
|
||||||
dependencies:
|
dependencies:
|
||||||
bl "^1.0.0"
|
bl "^1.0.0"
|
||||||
buffer-alloc "^1.1.0"
|
buffer-alloc "^1.1.0"
|
||||||
@@ -353,20 +412,24 @@ tar-stream@^1.5.2:
|
|||||||
through@^2.3.6:
|
through@^2.3.6:
|
||||||
version "2.3.8"
|
version "2.3.8"
|
||||||
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||||
|
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
|
||||||
|
|
||||||
tmp@^0.0.33:
|
tmp@^0.0.33:
|
||||||
version "0.0.33"
|
version "0.0.33"
|
||||||
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
|
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
|
||||||
|
integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
|
||||||
dependencies:
|
dependencies:
|
||||||
os-tmpdir "~1.0.2"
|
os-tmpdir "~1.0.2"
|
||||||
|
|
||||||
to-buffer@^1.1.0:
|
to-buffer@^1.1.0:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
|
resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
|
||||||
|
integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==
|
||||||
|
|
||||||
unbzip2-stream@^1.0.9:
|
unbzip2-stream@^1.0.9:
|
||||||
version "1.2.5"
|
version "1.2.5"
|
||||||
resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47"
|
resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47"
|
||||||
|
integrity sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og==
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer "^3.0.1"
|
buffer "^3.0.1"
|
||||||
through "^2.3.6"
|
through "^2.3.6"
|
||||||
@@ -374,26 +437,31 @@ unbzip2-stream@^1.0.9:
|
|||||||
util-deprecate@~1.0.1:
|
util-deprecate@~1.0.1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
||||||
|
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
|
||||||
|
|
||||||
vscode-extension-telemetry@^0.0.15:
|
vscode-extension-telemetry@^0.0.15:
|
||||||
version "0.0.15"
|
version "0.0.15"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.15.tgz#685c32f3b67e8fb85ba689c1d7f88ff90ff87856"
|
resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.15.tgz#685c32f3b67e8fb85ba689c1d7f88ff90ff87856"
|
||||||
|
integrity sha512-Yf6dL9r2x2GISI1xh22XsAaydSTQG/4aBitu8sGBwGr42n2TyOsIXGtXSDgqQBNZgYD6+P1EHqrrzetn9ekWTQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
applicationinsights "1.0.1"
|
applicationinsights "1.0.1"
|
||||||
|
|
||||||
vscode-jsonrpc@3.5.0:
|
vscode-jsonrpc@3.5.0:
|
||||||
version "3.5.0"
|
version "3.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.5.0.tgz#87239d9e166b2d7352245b8a813597804c1d63aa"
|
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-3.5.0.tgz#87239d9e166b2d7352245b8a813597804c1d63aa"
|
||||||
|
integrity sha1-hyOdnhZrLXNSJFuKgTWXgEwdY6o=
|
||||||
|
|
||||||
vscode-languageclient@3.5.1:
|
vscode-languageclient@3.5.1:
|
||||||
version "3.5.1"
|
version "3.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.1.tgz#c78e582459c24e58f88020dfa34065e976186a98"
|
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.1.tgz#c78e582459c24e58f88020dfa34065e976186a98"
|
||||||
|
integrity sha512-GTQ+hSq/o4c/y6GYmyP9XNrVoIu0NFZ67KltSkqN+tO0eUNDIlrVNX+3DJzzyLhSsrctuGzuYWm3t87mNAcBmQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-languageserver-protocol "3.5.1"
|
vscode-languageserver-protocol "3.5.1"
|
||||||
|
|
||||||
vscode-languageserver-protocol@3.5.1:
|
vscode-languageserver-protocol@3.5.1:
|
||||||
version "3.5.1"
|
version "3.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.5.1.tgz#5144a3a9eeccbd83fe2745bd4ed75fad6cc45f0d"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.5.1.tgz#5144a3a9eeccbd83fe2745bd4ed75fad6cc45f0d"
|
||||||
|
integrity sha512-1fPDIwsAv1difCV+8daOrJEGunClNJWqnUHq/ncWrjhitKWXgGmRCjlwZ3gDUTt54yRcvXz1PXJDaRNvNH6pYA==
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-jsonrpc "3.5.0"
|
vscode-jsonrpc "3.5.0"
|
||||||
vscode-languageserver-types "3.5.0"
|
vscode-languageserver-types "3.5.0"
|
||||||
@@ -401,18 +469,22 @@ vscode-languageserver-protocol@3.5.1:
|
|||||||
vscode-languageserver-types@3.5.0:
|
vscode-languageserver-types@3.5.0:
|
||||||
version "3.5.0"
|
version "3.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374"
|
||||||
|
integrity sha1-5I15li8LjgLelV4/UkkI4rGcA3Q=
|
||||||
|
|
||||||
wrappy@1:
|
wrappy@1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||||
|
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||||
|
|
||||||
xtend@^4.0.0:
|
xtend@^4.0.0:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
||||||
|
integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
|
||||||
|
|
||||||
yauzl@^2.4.2:
|
yauzl@^2.4.2:
|
||||||
version "2.10.0"
|
version "2.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
|
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
|
||||||
|
integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer-crc32 "~0.2.3"
|
buffer-crc32 "~0.2.3"
|
||||||
fd-slicer "~1.1.0"
|
fd-slicer "~1.1.0"
|
||||||
@@ -420,3 +492,4 @@ yauzl@^2.4.2:
|
|||||||
zone.js@0.7.6:
|
zone.js@0.7.6:
|
||||||
version "0.7.6"
|
version "0.7.6"
|
||||||
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009"
|
resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009"
|
||||||
|
integrity sha1-+7w50+AmHQmG8boGMG6zrrDSIAk=
|
||||||
|
|||||||
@@ -6,17 +6,17 @@
|
|||||||
|
|
||||||
// base
|
// base
|
||||||
"foreground": "#fffffe",
|
"foreground": "#fffffe",
|
||||||
"focusBorder": "#0E639C",
|
"focusBorder": "#0078d7",
|
||||||
"selection.background": "#3062d6",
|
"selection.background": "#3062d6",
|
||||||
|
|
||||||
//text colors
|
//text colors
|
||||||
"textLinkForeground": "#30B4FF",
|
"textLinkForeground": "#30b4ff",
|
||||||
"textLinkActiveForeground": "#30B4FF",
|
"textLinkActiveForeground": "#30b4ff",
|
||||||
|
|
||||||
//Button control
|
//Button control
|
||||||
"button.background": "#00BCF2",
|
"button.background": "#0078d7cc",
|
||||||
"button.foreground": "#212121",
|
"button.foreground": "#ffffff",
|
||||||
"button.hoverBackground": "#0099BC",
|
"button.hoverBackground": "#0078d7",
|
||||||
|
|
||||||
// TODO add support for these
|
// TODO add support for these
|
||||||
// "button.secondaryBackground": "#c8c8c8",
|
// "button.secondaryBackground": "#c8c8c8",
|
||||||
@@ -25,6 +25,9 @@
|
|||||||
// "button.disabledBackground": "#444444" ,
|
// "button.disabledBackground": "#444444" ,
|
||||||
// "button.disabledForeground": "#888888" ,
|
// "button.disabledForeground": "#888888" ,
|
||||||
|
|
||||||
|
//Checkbox
|
||||||
|
"checkbox.disabled.foreground": "#888888",
|
||||||
|
|
||||||
//Dropdown Control
|
//Dropdown Control
|
||||||
"dropdown.background": "#212121",
|
"dropdown.background": "#212121",
|
||||||
"dropdown.foreground": "#fffffe",
|
"dropdown.foreground": "#fffffe",
|
||||||
@@ -35,24 +38,24 @@
|
|||||||
"input.border": "#888888",
|
"input.border": "#888888",
|
||||||
"input.disabled.background": "#444444",
|
"input.disabled.background": "#444444",
|
||||||
"input.disabled.foreground": "#888888",
|
"input.disabled.foreground": "#888888",
|
||||||
"inputOption.activeBorder": "#007ACC",
|
"inputOption.activeBorder": "#0078d7",
|
||||||
"input.placeholderForeground": "#888888",
|
"input.placeholderForeground": "#888888",
|
||||||
"inputValidation.errorBackground": "#D02E00",
|
"inputValidation.errorBackground": "#b62e00",
|
||||||
"inputValidation.errorBorder": "#D02E00",
|
"inputValidation.errorBorder": "#b62e00",
|
||||||
|
|
||||||
//List and trees
|
//List and trees
|
||||||
"list.activeSelectionBackground": "#3062d6",
|
"list.activeSelectionBackground": "#3062d6",
|
||||||
"list.hoverBackground": "#444444",
|
"list.hoverBackground": "#444444",
|
||||||
"pickerGroup.border": "#00BCF2",
|
"pickerGroup.border": "#0078d7",
|
||||||
"activityBar.background": "#444444",
|
"activityBar.background": "#444444",
|
||||||
"sideBar.background": "#333333",
|
"sideBar.background": "#333333",
|
||||||
"sideBarTitle.foreground": "#BBBBBB",
|
"sideBarTitle.foreground": "#bbbbbb",
|
||||||
"input.placeholderForeground": "#A6A6A6",
|
"input.placeholderForeground": "#a6a6a6",
|
||||||
"editorGroupHeader.tabsBackground": "#444444",
|
"editorGroupHeader.tabsBackground": "#444444",
|
||||||
"editor.background": "#212121",
|
"editor.background": "#212121",
|
||||||
"editor.foreground": "#ffffff",
|
"editor.foreground": "#ffffff",
|
||||||
"editorWidget.background": "#444444",
|
"editorWidget.background": "#444444",
|
||||||
"editorLink.activeForeground": "#30B4FF",
|
"editorLink.activeForeground": "#30b4ff",
|
||||||
"editorGroup.border": "#333333",
|
"editorGroup.border": "#333333",
|
||||||
"editorGroup.background": "#212121",
|
"editorGroup.background": "#212121",
|
||||||
"editorIndentGuide.activeBackground": "#707070",
|
"editorIndentGuide.activeBackground": "#707070",
|
||||||
|
|||||||
@@ -5,18 +5,18 @@
|
|||||||
"colors": {
|
"colors": {
|
||||||
// base
|
// base
|
||||||
"foreground": "#4a4a4a",
|
"foreground": "#4a4a4a",
|
||||||
"focusBorder": "#00BCF2",
|
"focusBorder": "#0078d7",
|
||||||
"selection.background": "#C9D0D9",
|
"selection.background": "#c9d0d9",
|
||||||
"widget.shadow": "#666666",
|
"widget.shadow": "#666666",
|
||||||
|
|
||||||
// text colors
|
// text colors
|
||||||
"textLinkForeground": "#3062D6",
|
"textLinkForeground": "#3062d6",
|
||||||
"textLinkActiveForeground": "#3062D6",
|
"textLinkActiveForeground": "#3062d6",
|
||||||
|
|
||||||
//Button control
|
//Button control
|
||||||
"button.background": "#00BCF2",
|
"button.background": "#0078d7cc",
|
||||||
"button.foreground": "#212121",
|
"button.foreground": "#ffffff",
|
||||||
"button.hoverBackground": "#0099BC",
|
"button.hoverBackground": "#0078d7",
|
||||||
|
|
||||||
// TODO add support for these
|
// TODO add support for these
|
||||||
// "button.secondaryBackground": "#c8c8c8",
|
// "button.secondaryBackground": "#c8c8c8",
|
||||||
@@ -25,35 +25,38 @@
|
|||||||
// "button.disabledBackground": "#eaeaea",
|
// "button.disabledBackground": "#eaeaea",
|
||||||
// "button.disabledForeground": "#888888",
|
// "button.disabledForeground": "#888888",
|
||||||
|
|
||||||
|
//Checkbox
|
||||||
|
"checkbox.disabled.foreground": "#888888",
|
||||||
|
|
||||||
//Dropdown Control
|
//Dropdown Control
|
||||||
"dropdown.background": "#fffffe",
|
"dropdown.background": "#ffffff",
|
||||||
"dropdown.foreground": "#4a4a4a",
|
"dropdown.foreground": "#4a4a4a",
|
||||||
"dropdown.border": "#C8C8C8",
|
"dropdown.border": "#c8c8c8",
|
||||||
|
|
||||||
//badge
|
//badge
|
||||||
"badge.background": "#777777",
|
"badge.background": "#777777",
|
||||||
"badge.foreground": "#ffffff",
|
"badge.foreground": "#ffffff",
|
||||||
|
|
||||||
//Input Control
|
//Input Control
|
||||||
"input.background": "#fffffe",
|
"input.background": "#ffffff",
|
||||||
"input.border": "#c8c8c8",
|
"input.border": "#c8c8c8",
|
||||||
"input.disabled.background": "#dcdcdc",
|
"input.disabled.background": "#dcdcdc",
|
||||||
"input.disabled.foreground": "#888888",
|
"input.disabled.foreground": "#888888",
|
||||||
"inputOption.activeBorder": "#666666",
|
"inputOption.activeBorder": "#666666",
|
||||||
"input.placeholderForeground": "#767676",
|
"input.placeholderForeground": "#767676",
|
||||||
"inputValidation.errorBackground": "#ffeaea",
|
"inputValidation.errorBackground": "#ffeaea",
|
||||||
"inputValidation.errorBorder": "#f1897f",
|
"inputValidation.errorBorder": "#b62e00",
|
||||||
|
|
||||||
//List and tree
|
//List and tree
|
||||||
"list.activeSelectionBackground": "#3062d6",
|
"list.activeSelectionBackground": "#3062d6",
|
||||||
"list.hoverBackground": "#dcdcdc",
|
"list.hoverBackground": "#dcdcdc",
|
||||||
"pickerGroup.border": "#00BCF2",
|
"pickerGroup.border": "#0078d7",
|
||||||
|
|
||||||
// Workbench: Activity Bar
|
// Workbench: Activity Bar
|
||||||
"activityBar.background": "#212121",
|
"activityBar.background": "#212121",
|
||||||
|
|
||||||
// Workbench: Side Bar
|
// Workbench: Side Bar
|
||||||
"sideBar.background": "#EAEAEA",
|
"sideBar.background": "#eaeaea",
|
||||||
"editorGroupHeader.tabsBackground": "#f4f4f4",
|
"editorGroupHeader.tabsBackground": "#f4f4f4",
|
||||||
"editor.background": "#fffffe",
|
"editor.background": "#fffffe",
|
||||||
"editor.foreground": "#212121",
|
"editor.foreground": "#212121",
|
||||||
@@ -64,15 +67,15 @@
|
|||||||
"editorIndentGuide.activeBackground": "#939393",
|
"editorIndentGuide.activeBackground": "#939393",
|
||||||
|
|
||||||
// Workbench: Tabs
|
// Workbench: Tabs
|
||||||
"tab.activeBackground": "#FFFFFE",
|
"tab.activeBackground": "#ffffff",
|
||||||
"tab.activeForeground": "#4A4A4A",
|
"tab.activeForeground": "#4a4a4a",
|
||||||
"tab.inactiveBackground": "#f4f4f4",
|
"tab.inactiveBackground": "#f4f4f4",
|
||||||
"tab.inactiveForeground": "#707070",
|
"tab.inactiveForeground": "#707070",
|
||||||
"tab.border": "#EAEAEA",
|
"tab.border": "#eaeaea",
|
||||||
"tab.unfocusedInactiveForeground": "#888888",
|
"tab.unfocusedInactiveForeground": "#888888",
|
||||||
"tab.unfocusedActiveForeground": "#212121",
|
"tab.unfocusedActiveForeground": "#212121",
|
||||||
"panel.background": "#FFFFFE",
|
"panel.background": "#ffffff",
|
||||||
"panel.border": "#C8C8C8",
|
"panel.border": "#c8c8c8",
|
||||||
"panelTitle.activeForeground": "#212121",
|
"panelTitle.activeForeground": "#212121",
|
||||||
"panelTitle.inactiveForeground": "#757575"
|
"panelTitle.inactiveForeground": "#757575"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,3 +5,4 @@
|
|||||||
typescript@3.0.1:
|
typescript@3.0.1:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.1.tgz#43738f29585d3a87575520a4b93ab6026ef11fdb"
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.1.tgz#43738f29585d3a87575520a4b93ab6026ef11fdb"
|
||||||
|
integrity sha512-zQIMOmC+372pC/CCVLqnQ0zSBiY7HHodU7mpQdjiZddek4GMj31I3dUJ7gAs9o65X7mnRma6OokOkc6f9jjfBg==
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "azuredatastudio",
|
"name": "azuredatastudio",
|
||||||
"version": "1.1.2",
|
"version": "1.2.3",
|
||||||
"distro": "8c3e97e3425cc9814496472ab73e076de2ba99ee",
|
"distro": "8c3e97e3425cc9814496472ab73e076de2ba99ee",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Microsoft Corporation"
|
"name": "Microsoft Corporation"
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
"Microsoft.import",
|
"Microsoft.import",
|
||||||
"Microsoft.profiler",
|
"Microsoft.profiler",
|
||||||
"Microsoft.server-report",
|
"Microsoft.server-report",
|
||||||
|
"Microsoft.sql-vnext",
|
||||||
"Microsoft.whoisactive",
|
"Microsoft.whoisactive",
|
||||||
"Redgate.sql-search"
|
"Redgate.sql-search"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -3,6 +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.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
import { Color } from 'vs/base/common/color';
|
||||||
import { Event, Emitter } from 'vs/base/common/event';
|
import { Event, Emitter } from 'vs/base/common/event';
|
||||||
import { KeyCode } from 'vs/base/common/keyCodes';
|
import { KeyCode } from 'vs/base/common/keyCodes';
|
||||||
import { Widget } from 'vs/base/browser/ui/widget';
|
import { Widget } from 'vs/base/browser/ui/widget';
|
||||||
@@ -15,9 +16,14 @@ export interface ICheckboxOptions {
|
|||||||
ariaLabel?: string;
|
ariaLabel?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ICheckboxStyles {
|
||||||
|
disabledCheckboxForeground?: Color;
|
||||||
|
}
|
||||||
|
|
||||||
export class Checkbox extends Widget {
|
export class Checkbox extends Widget {
|
||||||
private _el: HTMLInputElement;
|
private _el: HTMLInputElement;
|
||||||
private _label: HTMLSpanElement;
|
private _label: HTMLSpanElement;
|
||||||
|
private disabledCheckboxForeground: Color;
|
||||||
|
|
||||||
private _onChange = new Emitter<boolean>();
|
private _onChange = new Emitter<boolean>();
|
||||||
public readonly onChange: Event<boolean> = this._onChange.event;
|
public readonly onChange: Event<boolean> = this._onChange.event;
|
||||||
@@ -27,6 +33,7 @@ export class Checkbox extends Widget {
|
|||||||
|
|
||||||
this._el = document.createElement('input');
|
this._el = document.createElement('input');
|
||||||
this._el.type = 'checkbox';
|
this._el.type = 'checkbox';
|
||||||
|
this._el.style.verticalAlign = 'middle';
|
||||||
|
|
||||||
if (opts.ariaLabel) {
|
if (opts.ariaLabel) {
|
||||||
this._el.setAttribute('aria-label', opts.ariaLabel);
|
this._el.setAttribute('aria-label', opts.ariaLabel);
|
||||||
@@ -44,6 +51,7 @@ export class Checkbox extends Widget {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this._label = document.createElement('span');
|
this._label = document.createElement('span');
|
||||||
|
this._label.style.verticalAlign = 'middle';
|
||||||
|
|
||||||
this.label = opts.label;
|
this.label = opts.label;
|
||||||
this.enabled = opts.enabled || true;
|
this.enabled = opts.enabled || true;
|
||||||
@@ -63,6 +71,7 @@ export class Checkbox extends Widget {
|
|||||||
|
|
||||||
public set enabled(val: boolean) {
|
public set enabled(val: boolean) {
|
||||||
this._el.disabled = !val;
|
this._el.disabled = !val;
|
||||||
|
this.updateStyle();
|
||||||
}
|
}
|
||||||
|
|
||||||
public get enabled(): boolean {
|
public get enabled(): boolean {
|
||||||
@@ -88,4 +97,13 @@ export class Checkbox extends Widget {
|
|||||||
public enable(): void {
|
public enable(): void {
|
||||||
this.enabled = true;
|
this.enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public style(styles: ICheckboxStyles): void {
|
||||||
|
this.disabledCheckboxForeground = styles.disabledCheckboxForeground;
|
||||||
|
this.updateStyle();
|
||||||
|
}
|
||||||
|
|
||||||
|
private updateStyle(): void {
|
||||||
|
this._label.style.color = !this.enabled && this.disabledCheckboxForeground ? this.disabledCheckboxForeground.toString() : 'inherit';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
1
src/sql/base/browser/ui/modal/media/close.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><title>close</title><path d="M8.82,8.1,15,14.29l-.81.81L8,8.91,1.81,15.1,1,14.29,7.18,8.1,1,1.9l.81-.81L8,7.28,14.19,1.1,15,1.9Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 230 B |
1
src/sql/base/browser/ui/modal/media/close_inverse.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><defs><style>.cls-1{fill:#fff;}</style></defs><title>close copy</title><path class="cls-1" d="M8.82,8.1,15,14.29l-.81.81L8,8.91,1.81,15.1,1,14.29,7.18,8.1,1,1.9l.81-.81L8,7.28,14.19,1.1,15,1.9Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 295 B |
1
src/sql/base/browser/ui/modal/media/copy.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><title>copy</title><path d="M3-.15V3.21H0V15.95H13V12.58h3V-.15ZM12,15H1.08V4.12H12Zm3-3.36H13V3.21h-9V.75H15Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 212 B |
1
src/sql/base/browser/ui/modal/media/copy_inverse.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><defs><style>.cls-1{fill:#fff;}</style></defs><title>copy_inverse</title><path class="cls-1" d="M3,0V3.36H0V16.1H13V12.73h3V0Zm9,15.19H1.08V4.27H12Zm3-3.36H13V3.36H4V.9H15Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 274 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><title>error_notification</title><path d="M8,0a7.92,7.92,0,0,1,4,1.09A8.15,8.15,0,0,1,14.91,4a8,8,0,0,1,.81,1.91,8,8,0,0,1-.81,6.16A8.15,8.15,0,0,1,12,14.92a8,8,0,0,1-8.07,0,8.15,8.15,0,0,1-2.87-2.87A8,8,0,0,1,1.09,4,8.15,8.15,0,0,1,4,1.11,7.92,7.92,0,0,1,8,0ZM8,15a6.88,6.88,0,0,0,1.86-.25,7,7,0,0,0,4.89-4.89,7.07,7.07,0,0,0,0-3.73A7,7,0,0,0,9.86,1.27a7.07,7.07,0,0,0-3.73,0A7,7,0,0,0,1.25,6.15a7.07,7.07,0,0,0,0,3.73,7,7,0,0,0,4.89,4.89A6.88,6.88,0,0,0,8,15Zm3.46-9.76L8.71,8l2.75,2.76-.7.7L8,8.73,5.24,11.48l-.7-.7L7.29,8,4.54,5.26l.7-.7L8,7.31l2.76-2.75Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 661 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><defs><style>.cls-1{fill:#fff;}</style></defs><title>error_notification_inverse</title><path class="cls-1" d="M8,0a7.92,7.92,0,0,1,4,1.09A8.15,8.15,0,0,1,14.91,4a8,8,0,0,1,.81,1.91,8,8,0,0,1-.81,6.16A8.15,8.15,0,0,1,12,14.92a8,8,0,0,1-8.07,0,8.15,8.15,0,0,1-2.87-2.87A8,8,0,0,1,1.09,4,8.15,8.15,0,0,1,4,1.11,7.92,7.92,0,0,1,8,0ZM8,15a6.88,6.88,0,0,0,1.86-.25,7,7,0,0,0,4.89-4.89,7.07,7.07,0,0,0,0-3.73A7,7,0,0,0,9.86,1.27a7.07,7.07,0,0,0-3.73,0A7,7,0,0,0,1.25,6.15a7.07,7.07,0,0,0,0,3.73,7,7,0,0,0,4.89,4.89A6.88,6.88,0,0,0,8,15Zm3.46-9.76L8.71,8l2.75,2.76-.7.7L8,8.73,5.24,11.48l-.7-.7L7.29,8,4.54,5.26l.7-.7L8,7.31l2.76-2.75Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 729 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><title>info_notification</title><path d="M8,16a7.93,7.93,0,0,1-2.13-.28A8,8,0,0,1,4,14.91,8,8,0,0,1,0,8,7.94,7.94,0,0,1,.28,5.88,8,8,0,0,1,1.09,4,8,8,0,0,1,4,1.1,8.08,8.08,0,0,1,5.86.3a8.13,8.13,0,0,1,4.25,0,8,8,0,0,1,3.53,2.05A8,8,0,0,1,14.9,4a8,8,0,0,1,.8,1.91,8,8,0,0,1-2.05,7.78A7.93,7.93,0,0,1,12,14.91a8,8,0,0,1-1.91.8A7.93,7.93,0,0,1,8,16ZM8,1.08a6.72,6.72,0,0,0-1.84.25A7.09,7.09,0,0,0,4.5,2,6.92,6.92,0,0,0,2,4.52a7.09,7.09,0,0,0-.7,1.66,6.87,6.87,0,0,0,0,3.67A7.07,7.07,0,0,0,2,11.5,6.92,6.92,0,0,0,4.5,14a7.09,7.09,0,0,0,1.65.7,6.89,6.89,0,0,0,3.68,0,7.07,7.07,0,0,0,1.66-.7A6.92,6.92,0,0,0,14,11.5a7.08,7.08,0,0,0,.7-1.65,6.89,6.89,0,0,0,0-3.68A7.09,7.09,0,0,0,14,4.52,6.92,6.92,0,0,0,11.48,2a7.07,7.07,0,0,0-1.66-.7A6.74,6.74,0,0,0,8,1.08Zm-.53,3.2H8.52V5.34H7.46Zm0,2.13H8.52v5.33H7.46Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 902 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><defs><style>.cls-1{fill:#fff;}</style></defs><title>info_notification_inverse</title><path class="cls-1" d="M8,16a7.93,7.93,0,0,1-2.13-.28A8,8,0,0,1,4,14.91,8,8,0,0,1,0,8,7.94,7.94,0,0,1,.28,5.88,8,8,0,0,1,1.09,4,8,8,0,0,1,4,1.1,8.08,8.08,0,0,1,5.86.3a8.13,8.13,0,0,1,4.25,0,8,8,0,0,1,3.53,2.05A8,8,0,0,1,14.9,4a8,8,0,0,1,.8,1.91,8,8,0,0,1-2.05,7.78A7.93,7.93,0,0,1,12,14.91a8,8,0,0,1-1.91.8A7.93,7.93,0,0,1,8,16ZM8,1.08a6.72,6.72,0,0,0-1.84.25A7.09,7.09,0,0,0,4.5,2,6.92,6.92,0,0,0,2,4.52a7.09,7.09,0,0,0-.7,1.66,6.87,6.87,0,0,0,0,3.67A7.07,7.07,0,0,0,2,11.5,6.92,6.92,0,0,0,4.5,14a7.09,7.09,0,0,0,1.65.7,6.89,6.89,0,0,0,3.68,0,7.07,7.07,0,0,0,1.66-.7A6.92,6.92,0,0,0,14,11.5a7.08,7.08,0,0,0,.7-1.65,6.89,6.89,0,0,0,0-3.68A7.09,7.09,0,0,0,14,4.52,6.92,6.92,0,0,0,11.48,2a7.07,7.07,0,0,0-1.66-.7A6.74,6.74,0,0,0,8,1.08Zm-.53,3.2H8.52V5.34H7.46Zm0,2.13H8.52v5.33H7.46Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 970 B |
@@ -50,6 +50,8 @@
|
|||||||
.monaco-shell .modal.flyout-dialog .modal-content {
|
.monaco-shell .modal.flyout-dialog .modal-content {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal .modal-title {
|
.modal .modal-title {
|
||||||
@@ -63,18 +65,12 @@
|
|||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.monaco-shell .modal.flyout-dialog .modal-body {
|
.monaco-shell .modal.flyout-dialog .modal-body,
|
||||||
height: calc(100% - 105px);
|
.monaco-shell .modal.flyout-dialog .angular-modal-body,
|
||||||
}
|
|
||||||
|
|
||||||
/* modal body for angular component dialog */
|
|
||||||
.monaco-shell .modal.flyout-dialog .angular-modal-body {
|
|
||||||
height: calc(100% - 90px);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Style for body and footer in modal dialog. This should be applied to dialog created with angular component. */
|
/* Style for body and footer in modal dialog. This should be applied to dialog created with angular component. */
|
||||||
.monaco-shell .modal.flyout-dialog .modal-body-and-footer {
|
.monaco-shell .modal.flyout-dialog .modal-body-and-footer {
|
||||||
height: 100%;
|
flex: 1 1;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* modl body content style(excluding dialogErrorMessage section) for angulr component dialog */
|
/* modl body content style(excluding dialogErrorMessage section) for angulr component dialog */
|
||||||
@@ -86,6 +82,8 @@
|
|||||||
|
|
||||||
.modal.flyout-dialog .angular-form {
|
.modal.flyout-dialog .angular-form {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal.flyout-dialog .dialog-label {
|
.modal.flyout-dialog .dialog-label {
|
||||||
@@ -106,10 +104,6 @@
|
|||||||
padding-left: 4px;
|
padding-left: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal.flyout-dialog .modal-body {
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.vs-dark.monaco-shell .modal.flyout-dialog .input {
|
.vs-dark.monaco-shell .modal.flyout-dialog .input {
|
||||||
background-color: #3C3C3C;
|
background-color: #3C3C3C;
|
||||||
}
|
}
|
||||||
@@ -128,13 +122,6 @@
|
|||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal.flyout-dialog .dialogErrorMessage {
|
|
||||||
overflow: hidden;
|
|
||||||
padding-left: 10px;
|
|
||||||
overflow-y: auto;
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal .modal-footer {
|
.modal .modal-footer {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
@@ -167,27 +154,131 @@
|
|||||||
margin-right: none;
|
margin-right: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal.flyout-dialog .icon.error {
|
|
||||||
float: left;
|
.modal.flyout-dialog .dialog-message {
|
||||||
margin-right: 10px;
|
padding: 6px 10px 10px 10px;
|
||||||
width: 20px;
|
font-size: 13px;
|
||||||
height: 20px;
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal .modal-footer .dialogErrorMessage {
|
.vs .modal.flyout-dialog .dialog-message.error,
|
||||||
align-items: center;
|
.vs-dark .modal.flyout-dialog .dialog-message.error {
|
||||||
max-height: 30px;
|
background-color:#B62E00 !important;
|
||||||
margin-right: 5px;
|
color:#FFFFFF !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal .dialogErrorMessage .icon {
|
.vs .modal.flyout-dialog .dialog-message.warning,
|
||||||
float: left;
|
.vs-dark .modal.flyout-dialog .dialog-message.warning {
|
||||||
margin-right: 10px;
|
background-color:#F9E385 !important;
|
||||||
width: auto;
|
color:#4A4A4A !important;
|
||||||
height: 20px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal .modal-footer .dialogErrorMessage .errorMessage {
|
.vs .modal.flyout-dialog .dialog-message.info,
|
||||||
max-height: 100%;
|
.vs-dark .modal.flyout-dialog .dialog-message.info {
|
||||||
|
background-color:#0078D7 !important;
|
||||||
|
color:#FFFFFF !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal.flyout-dialog .dialog-message-header {
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal.flyout-dialog .dialog-message-body {
|
||||||
|
margin-left: 26px;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
|
overflow-x: hidden;
|
||||||
|
max-height: 90px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal.flyout-dialog .dialog-message-icon {
|
||||||
|
margin-right: 10px;
|
||||||
|
margin-top: 5px;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
min-width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal.flyout-dialog .dialog-message-severity {
|
||||||
|
margin-right: auto;
|
||||||
|
line-height: 26px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal.flyout-dialog .dialog-message-button {
|
||||||
|
min-width: 60px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal.flyout-dialog .dialog-message-button > a {
|
||||||
|
background-position-x: 2px !important;
|
||||||
|
background-color: inherit !important;
|
||||||
|
color:inherit !important;
|
||||||
|
padding-left: 22px !important;
|
||||||
|
background-size: 16px 16px !important;
|
||||||
|
text-align: left !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal.flyout-dialog .dialog-message-summary {
|
||||||
|
overflow-x: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal.flyout-dialog .dialog-message-summary.expanded {
|
||||||
|
white-space: normal;
|
||||||
|
overflow-x: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal.flyout-dialog .dialog-message-detail {
|
||||||
|
margin-top: 5px;
|
||||||
|
white-space: normal;
|
||||||
|
-webkit-user-select: text;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hc-black .dialog-message.warning .close-message-icon,
|
||||||
|
.close-message-icon {
|
||||||
|
background: url('close_inverse.svg') center center no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-message.warning .close-message-icon {
|
||||||
|
background: url('close.svg') center center no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hc-black .dialog-message.warning .copy-message-icon,
|
||||||
|
.copy-message-icon {
|
||||||
|
background: url('copy_inverse.svg') center center no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-message.warning .copy-message-icon {
|
||||||
|
background: url('copy.svg') center center no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hc-black .dialog-message.warning .message-details-icon,
|
||||||
|
.message-details-icon {
|
||||||
|
background: url('show_details_inverse.svg') center center no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-message.warning .message-details-icon {
|
||||||
|
background: url('show_details.svg') center center no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-message.info .dialog-message-icon {
|
||||||
|
background: url('info_notification_inverse.svg') center center no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hc-black .dialog-message.warning .dialog-message-icon {
|
||||||
|
background: url('warning_notification_inverse.svg') center center no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-message.warning .dialog-message-icon {
|
||||||
|
background: url('warning_notification.svg') center center no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-message.error .dialog-message-icon {
|
||||||
|
background: url('error_notification_inverse.svg') center center no-repeat;
|
||||||
}
|
}
|
||||||
1
src/sql/base/browser/ui/modal/media/show_details.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><title>show_details</title><path d="M1,0H15V16H1ZM14,15V1H2V15ZM13,3V4H3V3Zm0,2V6H3V5Zm0,2V8H3V7Zm0,2v1H3V9Zm0,2v1H3V11Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 222 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><defs><style>.cls-1{fill:#fff;}</style></defs><title>show_details_inverse</title><path class="cls-1" d="M1,0H15V16H1ZM14,15V1H2V15ZM13,3V4H3V3Zm0,2V6H3V5Zm0,2V8H3V7Zm0,2v1H3V9Zm0,2v1H3V11Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 290 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><title>warning_notification</title><path d="M8,0l8,16H0ZM8,2.4,1.73,15H14.28Zm-.53,4H8.53v5.33H7.47Zm0,7.47V12.82H8.53v1.07Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 226 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><defs><style>.cls-1{fill:#fff;}</style></defs><title>warning_notification_inverse</title><path class="cls-1" d="M8,0l8,16H0ZM8,2.4,1.73,15H14.28Zm-.53,4H8.53v5.33H7.47Zm0,7.47V12.82H8.53v1.07Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 294 B |
@@ -2,9 +2,8 @@
|
|||||||
* 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.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
import 'vs/css!sql/media/icons/common-icons';
|
|
||||||
import 'vs/css!./media/modal';
|
import 'vs/css!./media/modal';
|
||||||
import { IThemable } from 'vs/platform/theme/common/styler';
|
import { IThemable, attachButtonStyler } from 'vs/platform/theme/common/styler';
|
||||||
import { Color } from 'vs/base/common/color';
|
import { Color } from 'vs/base/common/color';
|
||||||
import { IPartService } from 'vs/workbench/services/part/common/partService';
|
import { IPartService } from 'vs/workbench/services/part/common/partService';
|
||||||
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
|
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
|
||||||
@@ -16,18 +15,26 @@ import * as DOM from 'vs/base/browser/dom';
|
|||||||
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||||
import { generateUuid } from 'vs/base/common/uuid';
|
import { generateUuid } from 'vs/base/common/uuid';
|
||||||
import { IContextKeyService, RawContextKey, IContextKey } from 'vs/platform/contextkey/common/contextkey';
|
import { IContextKeyService, RawContextKey, IContextKey } from 'vs/platform/contextkey/common/contextkey';
|
||||||
|
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
|
||||||
|
|
||||||
import { Button } from 'sql/base/browser/ui/button/button';
|
import { Button } from 'sql/base/browser/ui/button/button';
|
||||||
import * as TelemetryUtils from 'sql/common/telemetryUtilities';
|
import * as TelemetryUtils from 'sql/common/telemetryUtilities';
|
||||||
import * as TelemetryKeys from 'sql/common/telemetryKeys';
|
import * as TelemetryKeys from 'sql/common/telemetryKeys';
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
import { MessageLevel } from 'sql/workbench/api/common/sqlExtHostTypes';
|
import { MessageLevel } from 'sql/workbench/api/common/sqlExtHostTypes';
|
||||||
|
import * as os from 'os';
|
||||||
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||||
|
|
||||||
export const MODAL_SHOWING_KEY = 'modalShowing';
|
export const MODAL_SHOWING_KEY = 'modalShowing';
|
||||||
export const MODAL_SHOWING_CONTEXT = new RawContextKey<Array<string>>(MODAL_SHOWING_KEY, []);
|
export const MODAL_SHOWING_CONTEXT = new RawContextKey<Array<string>>(MODAL_SHOWING_KEY, []);
|
||||||
const INFO_ALT_TEXT = localize('infoAltText', 'Info');
|
const INFO_ALT_TEXT = localize('infoAltText', 'Information');
|
||||||
const WARNING_ALT_TEXT = localize('warningAltText', 'Warning');
|
const WARNING_ALT_TEXT = localize('warningAltText', 'Warning');
|
||||||
const ERROR_ALT_TEXT = localize('errorAltText', 'Error');
|
const ERROR_ALT_TEXT = localize('errorAltText', 'Error');
|
||||||
|
const SHOW_DETAILS_TEXT = localize('showMessageDetails', 'Show Details');
|
||||||
|
const HIDE_DETAILS_TEXT = localize('hideMessageDetails', 'Hide Details');
|
||||||
|
const COPY_TEXT = localize('copyMessage', 'Copy');
|
||||||
|
const CLOSE_TEXT = localize('closeMessage', 'Close');
|
||||||
|
const MESSAGE_EXPANDED_MODE_CLASS = 'expanded';
|
||||||
|
|
||||||
export interface IModalDialogStyles {
|
export interface IModalDialogStyles {
|
||||||
dialogForeground?: Color;
|
dialogForeground?: Color;
|
||||||
@@ -66,10 +73,20 @@ const defaultOptions: IModalOptions = {
|
|||||||
|
|
||||||
export abstract class Modal extends Disposable implements IThemable {
|
export abstract class Modal extends Disposable implements IThemable {
|
||||||
|
|
||||||
private _errorMessage: Builder;
|
private _messageElement: HTMLElement;
|
||||||
private _spinnerElement: HTMLElement;
|
private _messageIcon: HTMLElement;
|
||||||
private _errorIconElement: HTMLElement;
|
private _messageSeverity: Builder;
|
||||||
|
private _messageSummary: Builder;
|
||||||
|
private _messageSummaryElement: HTMLElement;
|
||||||
|
private _messageDetail: Builder;
|
||||||
|
private _messageDetailElement: HTMLElement;
|
||||||
|
private _toggleMessageDetailButton: Button;
|
||||||
|
private _copyMessageButton: Button;
|
||||||
|
private _closeMessageButton: Button;
|
||||||
|
private _messageSummaryText: string;
|
||||||
|
private _messageDetailText: string;
|
||||||
|
|
||||||
|
private _spinnerElement: HTMLElement;
|
||||||
private _focusableElements: NodeListOf<Element>;
|
private _focusableElements: NodeListOf<Element>;
|
||||||
private _firstFocusableElement: HTMLElement;
|
private _firstFocusableElement: HTMLElement;
|
||||||
private _lastFocusableElement: HTMLElement;
|
private _lastFocusableElement: HTMLElement;
|
||||||
@@ -82,6 +99,7 @@ export abstract class Modal extends Disposable implements IThemable {
|
|||||||
|
|
||||||
private _modalDialog: Builder;
|
private _modalDialog: Builder;
|
||||||
private _modalHeaderSection: Builder;
|
private _modalHeaderSection: Builder;
|
||||||
|
private _modalMessageSection: Builder;
|
||||||
private _modalBodySection: HTMLElement;
|
private _modalBodySection: HTMLElement;
|
||||||
private _modalFooterSection: Builder;
|
private _modalFooterSection: Builder;
|
||||||
private _closeButtonInHeader: Builder;
|
private _closeButtonInHeader: Builder;
|
||||||
@@ -135,6 +153,8 @@ export abstract class Modal extends Disposable implements IThemable {
|
|||||||
private _name: string,
|
private _name: string,
|
||||||
private _partService: IPartService,
|
private _partService: IPartService,
|
||||||
private _telemetryService: ITelemetryService,
|
private _telemetryService: ITelemetryService,
|
||||||
|
protected _clipboardService: IClipboardService,
|
||||||
|
protected _themeService: IThemeService,
|
||||||
_contextKeyService: IContextKeyService,
|
_contextKeyService: IContextKeyService,
|
||||||
options?: IModalOptions
|
options?: IModalOptions
|
||||||
) {
|
) {
|
||||||
@@ -149,7 +169,7 @@ export abstract class Modal extends Disposable implements IThemable {
|
|||||||
/**
|
/**
|
||||||
* Build and render the modal, will call {@link Modal#renderBody}
|
* Build and render the modal, will call {@link Modal#renderBody}
|
||||||
*/
|
*/
|
||||||
public render(errorMessagesInFooter: boolean = false) {
|
public render() {
|
||||||
let modalBodyClass = (this._modalOptions.isAngular === false ? 'modal-body' : 'modal-body-and-footer');
|
let modalBodyClass = (this._modalOptions.isAngular === false ? 'modal-body' : 'modal-body-and-footer');
|
||||||
let parts: Array<HTMLElement> = [];
|
let parts: Array<HTMLElement> = [];
|
||||||
// This modal header section refers to the header of of the dialog
|
// This modal header section refers to the header of of the dialog
|
||||||
@@ -176,11 +196,72 @@ export abstract class Modal extends Disposable implements IThemable {
|
|||||||
parts.push(this._modalHeaderSection.getHTMLElement());
|
parts.push(this._modalHeaderSection.getHTMLElement());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this._modalOptions.isAngular === false && this._modalOptions.hasErrors) {
|
||||||
|
|
||||||
|
this._modalMessageSection = $().div({ class: 'dialog-message error' }, (messageContainer) => {
|
||||||
|
messageContainer.div({ class: 'dialog-message-header' }, (headerContainer) => {
|
||||||
|
headerContainer.div({ class: 'dialog-message-icon' }, (iconContainer) => {
|
||||||
|
this._messageIcon = iconContainer.getHTMLElement();
|
||||||
|
});
|
||||||
|
headerContainer.div({ class: 'dialog-message-severity' }, (messageSeverityContainer) => {
|
||||||
|
this._messageSeverity = messageSeverityContainer;
|
||||||
|
});
|
||||||
|
headerContainer.div({ class: 'dialog-message-button' }, (buttonContainer) => {
|
||||||
|
this._toggleMessageDetailButton = new Button(buttonContainer);
|
||||||
|
this._toggleMessageDetailButton.icon = 'message-details-icon';
|
||||||
|
this._toggleMessageDetailButton.label = SHOW_DETAILS_TEXT;
|
||||||
|
this._toggleMessageDetailButton.onDidClick((e) => {
|
||||||
|
this.toggleMessageDetail();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
headerContainer.div({ class: 'dialog-message-button' }, (buttonContainer) => {
|
||||||
|
this._copyMessageButton = new Button(buttonContainer);
|
||||||
|
this._copyMessageButton.icon = 'copy-message-icon';
|
||||||
|
this._copyMessageButton.label = COPY_TEXT;
|
||||||
|
this._copyMessageButton.onDidClick((e) => {
|
||||||
|
this._clipboardService.writeText(this.getTextForClipboard());
|
||||||
|
});
|
||||||
|
});
|
||||||
|
headerContainer.div({ class: 'dialog-message-button' }, (buttonContainer) => {
|
||||||
|
this._closeMessageButton = new Button(buttonContainer);
|
||||||
|
this._closeMessageButton.icon = 'close-message-icon';
|
||||||
|
this._closeMessageButton.label = CLOSE_TEXT;
|
||||||
|
this._closeMessageButton.onDidClick((e) => {
|
||||||
|
this.setError(undefined);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
attachButtonStyler(this._toggleMessageDetailButton, this._themeService);
|
||||||
|
attachButtonStyler(this._copyMessageButton, this._themeService);
|
||||||
|
attachButtonStyler(this._closeMessageButton, this._themeService);
|
||||||
|
});
|
||||||
|
messageContainer.div({ class: 'dialog-message-body' }, (messageBody) => {
|
||||||
|
messageBody.div({ class: 'dialog-message-summary' }, (summaryContainer) => {
|
||||||
|
this._messageSummary = summaryContainer;
|
||||||
|
this._messageSummaryElement = summaryContainer.getHTMLElement();
|
||||||
|
this._messageSummaryElement.onclick = (e) => {
|
||||||
|
this.toggleMessageDetail();
|
||||||
|
};
|
||||||
|
});
|
||||||
|
messageBody.div({ class: 'dialog-message-detail' }, (detailContainer) => {
|
||||||
|
this._messageDetail = detailContainer;
|
||||||
|
this._messageDetailElement = detailContainer.getHTMLElement();
|
||||||
|
this._messageDetailElement.style.display = 'none';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
this._messageElement = this._modalMessageSection.getHTMLElement();
|
||||||
|
this.updateElementVisibility(this._messageElement, false);
|
||||||
|
|
||||||
|
parts.push(this._messageElement);
|
||||||
|
}
|
||||||
|
|
||||||
// This modal body section refers to the body of of the dialog
|
// This modal body section refers to the body of of the dialog
|
||||||
let body: Builder;
|
let body: Builder;
|
||||||
$().div({ class: modalBodyClass }, (builder) => {
|
$().div({ class: modalBodyClass }, (builder) => {
|
||||||
body = builder;
|
body = builder;
|
||||||
});
|
});
|
||||||
|
|
||||||
this._modalBodySection = body.getHTMLElement();
|
this._modalBodySection = body.getHTMLElement();
|
||||||
parts.push(body.getHTMLElement());
|
parts.push(body.getHTMLElement());
|
||||||
|
|
||||||
@@ -214,19 +295,6 @@ export abstract class Modal extends Disposable implements IThemable {
|
|||||||
builderClass += ' wide';
|
builderClass += ' wide';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this._modalOptions.isAngular === false && this._modalOptions.hasErrors) {
|
|
||||||
let builder = errorMessagesInFooter ? this._leftFooter : body;
|
|
||||||
builder.div({ class: 'dialogErrorMessage', id: 'dialogErrorMessage' }, (errorMessageContainer) => {
|
|
||||||
errorMessageContainer.div({ class: 'sql icon error' }, (iconContainer) => {
|
|
||||||
this._errorIconElement = iconContainer.getHTMLElement();
|
|
||||||
this._errorIconElement.style.visibility = 'hidden';
|
|
||||||
});
|
|
||||||
errorMessageContainer.div({ class: 'errorMessage' }, (messageContainer) => {
|
|
||||||
this._errorMessage = messageContainer;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// The builder builds the dialog. It append header, body and footer sections.
|
// The builder builds the dialog. It append header, body and footer sections.
|
||||||
this._builder = $().div({ class: builderClass, 'role': 'dialog', 'aria-label': this._title }, (dialogContainer) => {
|
this._builder = $().div({ class: builderClass, 'role': 'dialog', 'aria-label': this._title }, (dialogContainer) => {
|
||||||
this._modalDialog = dialogContainer.div({ class: 'modal-dialog ', role: 'document' }, (modalDialog) => {
|
this._modalDialog = dialogContainer.div({ class: 'modal-dialog ', role: 'document' }, (modalDialog) => {
|
||||||
@@ -273,6 +341,39 @@ export abstract class Modal extends Disposable implements IThemable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private getTextForClipboard(): string {
|
||||||
|
return this._messageDetailText === '' ? this._messageSummaryText : `${this._messageSummaryText}${os.EOL}========================${os.EOL}${this._messageDetailText}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
private updateElementVisibility(element: HTMLElement, visible: boolean) {
|
||||||
|
element.style.display = visible ? 'block' : 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
private updateExpandMessageState() {
|
||||||
|
this._messageSummaryElement.style.cursor = this.shouldShowExpandMessageButton ? 'pointer' : 'default';
|
||||||
|
this._messageSummaryElement.classList.remove(MESSAGE_EXPANDED_MODE_CLASS);
|
||||||
|
this.updateElementVisibility(this._toggleMessageDetailButton.element, this.shouldShowExpandMessageButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
private toggleMessageDetail() {
|
||||||
|
let isExpanded = this._messageSummaryElement.classList.contains(MESSAGE_EXPANDED_MODE_CLASS);
|
||||||
|
if (isExpanded) {
|
||||||
|
this._messageSummaryElement.classList.remove(MESSAGE_EXPANDED_MODE_CLASS);
|
||||||
|
this._toggleMessageDetailButton.label = SHOW_DETAILS_TEXT;
|
||||||
|
} else {
|
||||||
|
this._messageSummaryElement.classList.add(MESSAGE_EXPANDED_MODE_CLASS);
|
||||||
|
this._toggleMessageDetailButton.label = HIDE_DETAILS_TEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._messageDetailText !== '') {
|
||||||
|
this.updateElementVisibility(this._messageDetailElement, !isExpanded);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private get shouldShowExpandMessageButton(): boolean {
|
||||||
|
return this._messageDetailText !== '' || this._messageSummaryElement.scrollWidth > this._messageSummaryElement.offsetWidth;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set focusable elements in the modal dialog
|
* Set focusable elements in the modal dialog
|
||||||
*/
|
*/
|
||||||
@@ -374,35 +475,45 @@ export abstract class Modal extends Disposable implements IThemable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Show an error in the error message element
|
* Show an error in the error message element
|
||||||
* @param err Text to show in the error message
|
* @param message Text to show in the message
|
||||||
|
* @param level Severity level of the message
|
||||||
|
* @param description Description of the message
|
||||||
*/
|
*/
|
||||||
protected setError(err: string, level: MessageLevel = MessageLevel.Error) {
|
protected setError(message: string, level: MessageLevel = MessageLevel.Error, description: string = '') {
|
||||||
if (this._modalOptions.hasErrors) {
|
if (this._modalOptions.hasErrors) {
|
||||||
if (err === '') {
|
this._messageSummaryText = message ? message : '';
|
||||||
this._errorIconElement.style.visibility = 'hidden';
|
this._messageDetailText = description ? description : '';
|
||||||
} else {
|
|
||||||
|
if (this._messageSummaryText !== '') {
|
||||||
const levelClasses = ['info', 'warning', 'error'];
|
const levelClasses = ['info', 'warning', 'error'];
|
||||||
let selectedLevel = levelClasses[2];
|
let selectedLevel = levelClasses[2];
|
||||||
let altText = ERROR_ALT_TEXT;
|
let severityText = ERROR_ALT_TEXT;
|
||||||
if (level === MessageLevel.Information) {
|
if (level === MessageLevel.Information) {
|
||||||
selectedLevel = levelClasses[0];
|
selectedLevel = levelClasses[0];
|
||||||
altText = INFO_ALT_TEXT;
|
severityText = INFO_ALT_TEXT;
|
||||||
} else if (level === MessageLevel.Warning) {
|
} else if (level === MessageLevel.Warning) {
|
||||||
selectedLevel = levelClasses[1];
|
selectedLevel = levelClasses[1];
|
||||||
altText = WARNING_ALT_TEXT;
|
severityText = WARNING_ALT_TEXT;
|
||||||
}
|
}
|
||||||
levelClasses.forEach(level => {
|
levelClasses.forEach(level => {
|
||||||
if (selectedLevel === level) {
|
if (selectedLevel === level) {
|
||||||
this._errorIconElement.classList.add(level);
|
this._messageIcon.classList.add(level);
|
||||||
|
this._messageElement.classList.add(level);
|
||||||
} else {
|
} else {
|
||||||
this._errorIconElement.classList.remove(level);
|
this._messageIcon.classList.remove(level);
|
||||||
|
this._messageElement.classList.remove(level);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this._errorIconElement.title = altText;
|
this._messageIcon.title = severityText;
|
||||||
this._errorIconElement.style.visibility = 'visible';
|
this._messageSeverity.text(severityText);
|
||||||
|
this._messageSummary.text(message);
|
||||||
|
this._messageSummary.title(message);
|
||||||
|
this._messageDetail.text(description);
|
||||||
}
|
}
|
||||||
this._errorMessage.text(err);
|
this.updateElementVisibility(this._messageDetailElement, false);
|
||||||
|
this.updateElementVisibility(this._messageElement, this._messageSummaryText !== '');
|
||||||
|
this.updateExpandMessageState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -496,6 +607,7 @@ export abstract class Modal extends Disposable implements IThemable {
|
|||||||
this._modalDialog.style('border-style', border ? 'solid' : null);
|
this._modalDialog.style('border-style', border ? 'solid' : null);
|
||||||
this._modalDialog.style('border-color', border);
|
this._modalDialog.style('border-color', border);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this._modalHeaderSection) {
|
if (this._modalHeaderSection) {
|
||||||
this._modalHeaderSection.style('background-color', headerAndFooterBackground);
|
this._modalHeaderSection.style('background-color', headerAndFooterBackground);
|
||||||
this._modalHeaderSection.style('border-bottom-width', border ? '1px' : null);
|
this._modalHeaderSection.style('border-bottom-width', border ? '1px' : null);
|
||||||
@@ -503,6 +615,13 @@ export abstract class Modal extends Disposable implements IThemable {
|
|||||||
this._modalHeaderSection.style('border-bottom-color', border);
|
this._modalHeaderSection.style('border-bottom-color', border);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this._modalMessageSection) {
|
||||||
|
this._modalMessageSection.style('background-color', headerAndFooterBackground);
|
||||||
|
this._modalMessageSection.style('border-bottom-width', border ? '1px' : null);
|
||||||
|
this._modalMessageSection.style('border-bottom-style', border ? 'solid' : null);
|
||||||
|
this._modalMessageSection.style('border-bottom-color', border);
|
||||||
|
}
|
||||||
|
|
||||||
if (this._modalBodySection) {
|
if (this._modalBodySection) {
|
||||||
this._modalBodySection.style.backgroundColor = bodyBackground;
|
this._modalBodySection.style.backgroundColor = bodyBackground;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import { SplitView, CollapsibleState } from 'sql/base/browser/ui/splitview/split
|
|||||||
import { Builder, $ } from 'vs/base/browser/builder';
|
import { Builder, $ } from 'vs/base/browser/builder';
|
||||||
import { Widget } from 'vs/base/browser/ui/widget';
|
import { Widget } from 'vs/base/browser/ui/widget';
|
||||||
import { ServiceOptionType } from 'sql/workbench/api/common/sqlExtHostTypes';
|
import { ServiceOptionType } from 'sql/workbench/api/common/sqlExtHostTypes';
|
||||||
|
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
|
||||||
|
|
||||||
export class CategoryView extends FixedCollapsibleView {
|
export class CategoryView extends FixedCollapsibleView {
|
||||||
private _treecontainer: HTMLElement;
|
private _treecontainer: HTMLElement;
|
||||||
@@ -92,12 +93,13 @@ export class OptionsDialog extends Modal {
|
|||||||
name: string,
|
name: string,
|
||||||
options: IModalOptions,
|
options: IModalOptions,
|
||||||
@IPartService partService: IPartService,
|
@IPartService partService: IPartService,
|
||||||
@IWorkbenchThemeService private _themeService: IWorkbenchThemeService,
|
@IWorkbenchThemeService private _workbenchThemeService: IWorkbenchThemeService,
|
||||||
@IContextViewService private _contextViewService: IContextViewService,
|
@IContextViewService private _contextViewService: IContextViewService,
|
||||||
@ITelemetryService telemetryService: ITelemetryService,
|
@ITelemetryService telemetryService: ITelemetryService,
|
||||||
@IContextKeyService contextKeyService: IContextKeyService
|
@IContextKeyService contextKeyService: IContextKeyService,
|
||||||
|
@IClipboardService clipboardService: IClipboardService
|
||||||
) {
|
) {
|
||||||
super(title, name, partService, telemetryService, contextKeyService, options);
|
super(title, name, partService, telemetryService, clipboardService, _workbenchThemeService, contextKeyService, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
public render() {
|
public render() {
|
||||||
@@ -113,8 +115,8 @@ export class OptionsDialog extends Modal {
|
|||||||
attachButtonStyler(this._okButton, this._themeService);
|
attachButtonStyler(this._okButton, this._themeService);
|
||||||
attachButtonStyler(this._closeButton, this._themeService);
|
attachButtonStyler(this._closeButton, this._themeService);
|
||||||
let self = this;
|
let self = this;
|
||||||
this._register(self._themeService.onDidColorThemeChange(e => self.updateTheme(e)));
|
this._register(self._workbenchThemeService.onDidColorThemeChange(e => self.updateTheme(e)));
|
||||||
self.updateTheme(self._themeService.getColorTheme());
|
self.updateTheme(self._workbenchThemeService.getColorTheme());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected renderBody(container: HTMLElement) {
|
protected renderBody(container: HTMLElement) {
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ export class WebViewDialog extends Modal {
|
|||||||
protected findInputFocusContextKey: IContextKey<boolean>;
|
protected findInputFocusContextKey: IContextKey<boolean>;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@IThemeService private _themeService: IThemeService,
|
@IThemeService themeService: IThemeService,
|
||||||
@IClipboardService private _clipboardService: IClipboardService,
|
@IClipboardService clipboardService: IClipboardService,
|
||||||
@IPartService private _webViewPartService: IPartService,
|
@IPartService private _webViewPartService: IPartService,
|
||||||
@ITelemetryService telemetryService: ITelemetryService,
|
@ITelemetryService telemetryService: ITelemetryService,
|
||||||
@IContextKeyService contextKeyService: IContextKeyService,
|
@IContextKeyService contextKeyService: IContextKeyService,
|
||||||
@@ -54,7 +54,7 @@ export class WebViewDialog extends Modal {
|
|||||||
@IEnvironmentService private _environmentService: IEnvironmentService,
|
@IEnvironmentService private _environmentService: IEnvironmentService,
|
||||||
@IInstantiationService private _instantiationService: IInstantiationService
|
@IInstantiationService private _instantiationService: IInstantiationService
|
||||||
) {
|
) {
|
||||||
super('', TelemetryKeys.WebView, _webViewPartService, telemetryService, contextKeyService, { isFlyout: false, hasTitleIcon: true });
|
super('', TelemetryKeys.WebView, _webViewPartService, telemetryService, clipboardService, themeService, contextKeyService, { isFlyout: false, hasTitleIcon: true });
|
||||||
this._okLabel = localize('webViewDialog.ok', 'OK');
|
this._okLabel = localize('webViewDialog.ok', 'OK');
|
||||||
this._closeLabel = localize('webViewDialog.close', 'Close');
|
this._closeLabel = localize('webViewDialog.close', 'Close');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
import { IThemable } from 'vs/platform/theme/common/styler';
|
import { IThemable } from 'vs/platform/theme/common/styler';
|
||||||
import { Event, Emitter } from 'vs/base/common/event';
|
import { Event, Emitter } from 'vs/base/common/event';
|
||||||
import { Dimension, EventType } from 'vs/base/browser/dom';
|
import { Dimension, EventType, $, addDisposableListener } from 'vs/base/browser/dom';
|
||||||
import { $, Builder } from 'vs/base/browser/builder';
|
import { $ as qb } from 'vs/base/browser/builder';
|
||||||
import { IAction } from 'vs/base/common/actions';
|
import { IAction } from 'vs/base/common/actions';
|
||||||
import { IActionOptions, ActionBar } from 'vs/base/browser/ui/actionbar/actionbar';
|
import { IActionOptions, ActionBar } from 'vs/base/browser/ui/actionbar/actionbar';
|
||||||
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||||
@@ -34,8 +34,8 @@ export interface IPanelTab {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface IInternalPanelTab extends IPanelTab {
|
interface IInternalPanelTab extends IPanelTab {
|
||||||
header: Builder;
|
header: HTMLElement;
|
||||||
label: Builder;
|
label: HTMLElement;
|
||||||
dispose(): void;
|
dispose(): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,10 +49,10 @@ export class TabbedPanel extends Disposable implements IThemable {
|
|||||||
private _tabMap = new Map<PanelTabIdentifier, IInternalPanelTab>();
|
private _tabMap = new Map<PanelTabIdentifier, IInternalPanelTab>();
|
||||||
private _shownTab: PanelTabIdentifier;
|
private _shownTab: PanelTabIdentifier;
|
||||||
public readonly headersize = 35;
|
public readonly headersize = 35;
|
||||||
private $header: Builder;
|
private header: HTMLElement;
|
||||||
private $tabList: Builder;
|
private tabList: HTMLElement;
|
||||||
private $body: Builder;
|
private body: HTMLElement;
|
||||||
private $parent: Builder;
|
private parent: HTMLElement;
|
||||||
private _actionbar: ActionBar;
|
private _actionbar: ActionBar;
|
||||||
private _currentDimensions: Dimension;
|
private _currentDimensions: Dimension;
|
||||||
private _collapsed = false;
|
private _collapsed = false;
|
||||||
@@ -63,28 +63,35 @@ export class TabbedPanel extends Disposable implements IThemable {
|
|||||||
|
|
||||||
private tabHistory: string[] = [];
|
private tabHistory: string[] = [];
|
||||||
|
|
||||||
constructor(private container: HTMLElement, private options: IPanelOptions = defaultOptions) {
|
constructor(container: HTMLElement, private options: IPanelOptions = defaultOptions) {
|
||||||
super();
|
super();
|
||||||
this.$parent = this._register($('.tabbedPanel'));
|
this.parent = $('.tabbedPanel');
|
||||||
this.$parent.appendTo(container);
|
container.appendChild(this.parent);
|
||||||
this.$header = $('.composite.title');
|
this.header = $('.composite.title');
|
||||||
this.$tabList = $('.tabList');
|
this.tabList = $('.tabList');
|
||||||
this.$tabList.attr('role', 'tablist');
|
this.tabList.setAttribute('role', 'tablist');
|
||||||
this.$tabList.style('height', this.headersize + 'px');
|
this.tabList.style.height = this.headersize + 'px';
|
||||||
this.$header.append(this.$tabList);
|
this.header.appendChild(this.tabList);
|
||||||
let actionbarcontainer = $('.title-actions');
|
let actionbarcontainer = $('.title-actions');
|
||||||
this._actionbar = new ActionBar(actionbarcontainer.getHTMLElement());
|
this._actionbar = new ActionBar(actionbarcontainer);
|
||||||
this.$header.append(actionbarcontainer);
|
this.header.appendChild(actionbarcontainer);
|
||||||
if (options.showHeaderWhenSingleView) {
|
if (options.showHeaderWhenSingleView) {
|
||||||
this._headerVisible = true;
|
this._headerVisible = true;
|
||||||
this.$parent.append(this.$header);
|
this.parent.appendChild(this.header);
|
||||||
} else {
|
} else {
|
||||||
this._headerVisible = false;
|
this._headerVisible = false;
|
||||||
}
|
}
|
||||||
this.$body = $('.tabBody');
|
this.body = $('.tabBody');
|
||||||
this.$body.attr('role', 'tabpanel');
|
this.body.setAttribute('role', 'tabpanel');
|
||||||
this.$body.attr('tabindex', '0');
|
this.body.setAttribute('tabindex', '0');
|
||||||
this.$parent.append(this.$body);
|
this.parent.appendChild(this.body);
|
||||||
|
}
|
||||||
|
|
||||||
|
public dispose() {
|
||||||
|
this.header.remove();
|
||||||
|
this.tabList.remove();
|
||||||
|
this.body.remove();
|
||||||
|
this.parent.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
public contains(tab: IPanelTab): boolean {
|
public contains(tab: IPanelTab): boolean {
|
||||||
@@ -99,7 +106,7 @@ export class TabbedPanel extends Disposable implements IThemable {
|
|||||||
this.showTab(tab.identifier);
|
this.showTab(tab.identifier);
|
||||||
}
|
}
|
||||||
if (this._tabMap.size > 1 && !this._headerVisible) {
|
if (this._tabMap.size > 1 && !this._headerVisible) {
|
||||||
this.$parent.append(this.$header, 0);
|
this.parent.insertBefore(this.header, this.parent.firstChild);
|
||||||
this._headerVisible = true;
|
this._headerVisible = true;
|
||||||
this.layout(this._currentDimensions);
|
this.layout(this._currentDimensions);
|
||||||
}
|
}
|
||||||
@@ -116,30 +123,27 @@ export class TabbedPanel extends Disposable implements IThemable {
|
|||||||
|
|
||||||
private _createTab(tab: IInternalPanelTab): void {
|
private _createTab(tab: IInternalPanelTab): void {
|
||||||
let tabHeaderElement = $('.tab-header');
|
let tabHeaderElement = $('.tab-header');
|
||||||
tabHeaderElement.attr('tabindex', '0');
|
tabHeaderElement.setAttribute('tabindex', '0');
|
||||||
tabHeaderElement.attr('role', 'tab');
|
tabHeaderElement.setAttribute('role', 'tab');
|
||||||
tabHeaderElement.attr('aria-selected', 'false');
|
tabHeaderElement.setAttribute('aria-selected', 'false');
|
||||||
tabHeaderElement.attr('aria-controls', tab.identifier);
|
tabHeaderElement.setAttribute('aria-controls', tab.identifier);
|
||||||
let tabElement = $('.tab');
|
let tabElement = $('.tab');
|
||||||
tabHeaderElement.append(tabElement);
|
tabHeaderElement.appendChild(tabElement);
|
||||||
let tabLabel = $('a.tabLabel');
|
let tabLabel = $('a.tabLabel');
|
||||||
tabLabel.safeInnerHtml(tab.title);
|
tabLabel.innerText = tab.title;
|
||||||
tabElement.append(tabLabel);
|
tabElement.appendChild(tabLabel);
|
||||||
tabHeaderElement.on(EventType.CLICK, e => this.showTab(tab.identifier));
|
addDisposableListener(tabHeaderElement, EventType.CLICK, e => this.showTab(tab.identifier));
|
||||||
tabHeaderElement.on(EventType.KEY_DOWN, (e: KeyboardEvent) => {
|
addDisposableListener(tabHeaderElement, EventType.KEY_DOWN, (e: KeyboardEvent) => {
|
||||||
let event = new StandardKeyboardEvent(e);
|
let event = new StandardKeyboardEvent(e);
|
||||||
if (event.equals(KeyCode.Enter)) {
|
if (event.equals(KeyCode.Enter)) {
|
||||||
this.showTab(tab.identifier);
|
this.showTab(tab.identifier);
|
||||||
e.stopImmediatePropagation();
|
e.stopImmediatePropagation();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.$tabList.append(tabHeaderElement);
|
this.tabList.appendChild(tabHeaderElement);
|
||||||
tab.header = tabHeaderElement;
|
tab.header = tabHeaderElement;
|
||||||
tab.label = tabLabel;
|
tab.label = tabLabel;
|
||||||
tab.dispose = () => {
|
tab.dispose = () => { };
|
||||||
tab.header.dispose();
|
|
||||||
tab.label.dispose();
|
|
||||||
};
|
|
||||||
this._register(tab);
|
this._register(tab);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,19 +153,20 @@ export class TabbedPanel extends Disposable implements IThemable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this._shownTab) {
|
if (this._shownTab) {
|
||||||
this._tabMap.get(this._shownTab).label.removeClass('active');
|
qb(this._tabMap.get(this._shownTab).label).removeClass('active');
|
||||||
this._tabMap.get(this._shownTab).header.removeClass('active').attr('aria-selected', 'false');
|
qb(this._tabMap.get(this._shownTab).header).removeClass('active');
|
||||||
|
this._tabMap.get(this._shownTab).header.setAttribute('aria-selected', 'false');
|
||||||
}
|
}
|
||||||
|
|
||||||
this._shownTab = id;
|
this._shownTab = id;
|
||||||
this.tabHistory.push(id);
|
this.tabHistory.push(id);
|
||||||
this.$body.clearChildren();
|
qb(this.body).empty();
|
||||||
let tab = this._tabMap.get(this._shownTab);
|
let tab = this._tabMap.get(this._shownTab);
|
||||||
this.$body.attr('aria-labelledby', tab.identifier);
|
this.body.setAttribute('aria-labelledby', tab.identifier);
|
||||||
tab.label.addClass('active');
|
qb(tab.label).addClass('active');
|
||||||
tab.header.addClass('active');
|
qb(tab.header).addClass('active');
|
||||||
tab.header.attr('aria-selected', 'true');
|
tab.header.setAttribute('aria-selected', 'true');
|
||||||
tab.view.render(this.$body.getHTMLElement());
|
tab.view.render(this.body);
|
||||||
this._onTabChange.fire(id);
|
this._onTabChange.fire(id);
|
||||||
if (this._currentDimensions) {
|
if (this._currentDimensions) {
|
||||||
this._layoutCurrentTab(new Dimension(this._currentDimensions.width, this._currentDimensions.height - this.headersize));
|
this._layoutCurrentTab(new Dimension(this._currentDimensions.width, this._currentDimensions.height - this.headersize));
|
||||||
@@ -170,11 +175,11 @@ export class TabbedPanel extends Disposable implements IThemable {
|
|||||||
|
|
||||||
public removeTab(tab: PanelTabIdentifier) {
|
public removeTab(tab: PanelTabIdentifier) {
|
||||||
let actualTab = this._tabMap.get(tab);
|
let actualTab = this._tabMap.get(tab);
|
||||||
actualTab.header.destroy();
|
qb(actualTab.header).destroy();
|
||||||
if (actualTab.view.remove) {
|
if (actualTab.view.remove) {
|
||||||
actualTab.view.remove();
|
actualTab.view.remove();
|
||||||
}
|
}
|
||||||
this._tabMap.get(tab).header.destroy();
|
qb(this._tabMap.get(tab).header).destroy();
|
||||||
this._tabMap.delete(tab);
|
this._tabMap.delete(tab);
|
||||||
if (this._shownTab === tab) {
|
if (this._shownTab === tab) {
|
||||||
this._shownTab = undefined;
|
this._shownTab = undefined;
|
||||||
@@ -192,7 +197,7 @@ export class TabbedPanel extends Disposable implements IThemable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!this.options.showHeaderWhenSingleView && this._tabMap.size === 1 && this._headerVisible) {
|
if (!this.options.showHeaderWhenSingleView && this._tabMap.size === 1 && this._headerVisible) {
|
||||||
this.$header.offDOM();
|
this.header.remove();
|
||||||
this._headerVisible = false;
|
this._headerVisible = false;
|
||||||
this.layout(this._currentDimensions);
|
this.layout(this._currentDimensions);
|
||||||
}
|
}
|
||||||
@@ -205,12 +210,12 @@ export class TabbedPanel extends Disposable implements IThemable {
|
|||||||
public layout(dimension: Dimension): void {
|
public layout(dimension: Dimension): void {
|
||||||
if (dimension) {
|
if (dimension) {
|
||||||
this._currentDimensions = dimension;
|
this._currentDimensions = dimension;
|
||||||
this.$parent.style('height', dimension.height + 'px');
|
this.parent.style.height = dimension.height + 'px';
|
||||||
this.$parent.style('width', dimension.width + 'px');
|
this.parent.style.height = dimension.width + 'px';
|
||||||
this.$header.style('width', dimension.width + 'px');
|
this.header.style.width = dimension.width + 'px';
|
||||||
this.$body.style('width', dimension.width + 'px');
|
this.body.style.width = dimension.width + 'px';
|
||||||
const bodyHeight = dimension.height - (this._headerVisible ? this.headersize : 0);
|
const bodyHeight = dimension.height - (this._headerVisible ? this.headersize : 0);
|
||||||
this.$body.style('height', bodyHeight + 'px');
|
this.body.style.height = bodyHeight + 'px';
|
||||||
this._layoutCurrentTab(new Dimension(dimension.width, bodyHeight));
|
this._layoutCurrentTab(new Dimension(dimension.width, bodyHeight));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -232,9 +237,9 @@ export class TabbedPanel extends Disposable implements IThemable {
|
|||||||
|
|
||||||
this._collapsed = val === false ? false : true;
|
this._collapsed = val === false ? false : true;
|
||||||
if (this.collapsed) {
|
if (this.collapsed) {
|
||||||
this.$body.offDOM();
|
this.body.remove();
|
||||||
} else {
|
} else {
|
||||||
this.$parent.append(this.$body);
|
this.parent.appendChild(this.body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,11 +17,13 @@ import { ScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElemen
|
|||||||
import { HeightMap, IView as HeightIView, IViewItem as HeightIViewItem } from './heightMap';
|
import { HeightMap, IView as HeightIView, IViewItem as HeightIViewItem } from './heightMap';
|
||||||
import { ArrayIterator } from 'vs/base/common/iterator';
|
import { ArrayIterator } from 'vs/base/common/iterator';
|
||||||
import { mixin } from 'vs/base/common/objects';
|
import { mixin } from 'vs/base/common/objects';
|
||||||
|
import { ScrollbarVisibility } from 'vs/base/common/scrollable';
|
||||||
export { Orientation } from 'vs/base/browser/ui/sash/sash';
|
export { Orientation } from 'vs/base/browser/ui/sash/sash';
|
||||||
|
|
||||||
export interface ISplitViewOptions {
|
export interface ISplitViewOptions {
|
||||||
orientation?: Orientation; // default Orientation.VERTICAL
|
orientation?: Orientation; // default Orientation.VERTICAL
|
||||||
enableResizing?: boolean;
|
enableResizing?: boolean;
|
||||||
|
verticalScrollbarVisibility?: ScrollbarVisibility;
|
||||||
}
|
}
|
||||||
|
|
||||||
const defaultOptions: ISplitViewOptions = {
|
const defaultOptions: ISplitViewOptions = {
|
||||||
@@ -127,7 +129,7 @@ export class ScrollableSplitView extends HeightMap implements IDisposable {
|
|||||||
this.options = mixin(options, defaultOptions, false);
|
this.options = mixin(options, defaultOptions, false);
|
||||||
|
|
||||||
this.el = document.createElement('div');
|
this.el = document.createElement('div');
|
||||||
this.scrollable = new ScrollableElement(this.el, {});
|
this.scrollable = new ScrollableElement(this.el, { vertical: options.verticalScrollbarVisibility });
|
||||||
debounceEvent(this.scrollable.onScroll, (l, e) => e, 25)(e => {
|
debounceEvent(this.scrollable.onScroll, (l, e) => e, 25)(e => {
|
||||||
this.render(e.scrollTop, e.height);
|
this.render(e.scrollTop, e.height);
|
||||||
this.relayout();
|
this.relayout();
|
||||||
|
|||||||
@@ -89,10 +89,6 @@
|
|||||||
-moz-transition-property: width;
|
-moz-transition-property: width;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hc-black .split-view-view .action-label {
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hc-black .split-view-view > .header .action-label:before {
|
.hc-black .split-view-view > .header .action-label:before {
|
||||||
top: 4px !important;
|
top: 4px !important;
|
||||||
}
|
}
|
||||||
@@ -12,6 +12,7 @@ export const tableHeaderForeground = registerColor('table.headerForeground', { d
|
|||||||
export const disabledInputBackground = registerColor('input.disabled.background', { dark: '#444444', light: '#dcdcdc', hc: Color.black }, nls.localize('disabledInputBoxBackground', "Disabled Input box background."));
|
export const disabledInputBackground = registerColor('input.disabled.background', { dark: '#444444', light: '#dcdcdc', hc: Color.black }, nls.localize('disabledInputBoxBackground', "Disabled Input box background."));
|
||||||
export const disabledInputForeground = registerColor('input.disabled.foreground', { dark: '#888888', light: '#888888', hc: foreground }, nls.localize('disabledInputBoxForeground', "Disabled Input box foreground."));
|
export const disabledInputForeground = registerColor('input.disabled.foreground', { dark: '#888888', light: '#888888', hc: foreground }, nls.localize('disabledInputBoxForeground', "Disabled Input box foreground."));
|
||||||
export const buttonFocusOutline = registerColor('button.focusOutline', { dark: '#eaeaea', light: '#666666', hc: null }, nls.localize('buttonFocusOutline', "Button outline color when focused."));
|
export const buttonFocusOutline = registerColor('button.focusOutline', { dark: '#eaeaea', light: '#666666', hc: null }, nls.localize('buttonFocusOutline', "Button outline color when focused."));
|
||||||
|
export const disabledCheckboxForeground = registerColor('checkbox.disabled.foreground', { dark: '#888888', light: '#888888', hc: Color.black }, nls.localize('disabledCheckboxforeground', "Disabled checkbox foreground."));
|
||||||
|
|
||||||
export const listFocusAndSelectionBackground = registerColor('list.focusAndSelectionBackground', { dark: '#2c3295', light: '#2c3295', hc: null }, nls.localize('listFocusAndSelectionBackground', "List/Table background color for the selected and focus item when the list/table is active"));
|
export const listFocusAndSelectionBackground = registerColor('list.focusAndSelectionBackground', { dark: '#2c3295', light: '#2c3295', hc: null }, nls.localize('listFocusAndSelectionBackground', "List/Table background color for the selected and focus item when the list/table is active"));
|
||||||
|
|
||||||
|
|||||||
@@ -255,3 +255,10 @@ export function attachButtonStyler(widget: IThemable, themeService: IThemeServic
|
|||||||
buttonFocusOutline: (style && style.buttonFocusOutline) || sqlcolors.buttonFocusOutline
|
buttonFocusOutline: (style && style.buttonFocusOutline) || sqlcolors.buttonFocusOutline
|
||||||
}, widget);
|
}, widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function attachCheckboxStyler(widget: IThemable, themeService: IThemeService, style?: { disabledCheckboxForeground?: cr.ColorIdentifier })
|
||||||
|
: IDisposable {
|
||||||
|
return attachStyler(themeService, {
|
||||||
|
disabledCheckboxForeground: (style && style.disabledCheckboxForeground) || sqlcolors.disabledCheckboxForeground
|
||||||
|
}, widget);
|
||||||
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import { AccountListRenderer, AccountListDelegate } from 'sql/parts/accountManag
|
|||||||
import { AccountProviderAddedEventParams, UpdateAccountListEventParams } from 'sql/services/accountManagement/eventTypes';
|
import { AccountProviderAddedEventParams, UpdateAccountListEventParams } from 'sql/services/accountManagement/eventTypes';
|
||||||
import { FixedListView } from 'sql/platform/views/fixedListView';
|
import { FixedListView } from 'sql/platform/views/fixedListView';
|
||||||
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
||||||
|
import { IClipboardService } from 'sql/platform/clipboard/common/clipboardService';
|
||||||
|
|
||||||
export interface IProviderViewUiComponent {
|
export interface IProviderViewUiComponent {
|
||||||
view: FixedListView<sqlops.Account>;
|
view: FixedListView<sqlops.Account>;
|
||||||
@@ -66,19 +67,22 @@ export class AccountDialog extends Modal {
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@IPartService partService: IPartService,
|
@IPartService partService: IPartService,
|
||||||
@IThemeService private _themeService: IThemeService,
|
@IThemeService themeService: IThemeService,
|
||||||
@IListService private _listService: IListService,
|
@IListService private _listService: IListService,
|
||||||
@IInstantiationService private _instantiationService: IInstantiationService,
|
@IInstantiationService private _instantiationService: IInstantiationService,
|
||||||
@IContextMenuService private _contextMenuService: IContextMenuService,
|
@IContextMenuService private _contextMenuService: IContextMenuService,
|
||||||
@IKeybindingService private _keybindingService: IKeybindingService,
|
@IKeybindingService private _keybindingService: IKeybindingService,
|
||||||
@ITelemetryService telemetryService: ITelemetryService,
|
@ITelemetryService telemetryService: ITelemetryService,
|
||||||
@IContextKeyService contextKeyService: IContextKeyService
|
@IContextKeyService contextKeyService: IContextKeyService,
|
||||||
|
@IClipboardService clipboardService: IClipboardService
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
localize('linkedAccounts', 'Linked accounts'),
|
localize('linkedAccounts', 'Linked accounts'),
|
||||||
TelemetryKeys.Accounts,
|
TelemetryKeys.Accounts,
|
||||||
partService,
|
partService,
|
||||||
telemetryService,
|
telemetryService,
|
||||||
|
clipboardService,
|
||||||
|
themeService,
|
||||||
contextKeyService,
|
contextKeyService,
|
||||||
{ hasSpinner: true }
|
{ hasSpinner: true }
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
|||||||
import { attachModalDialogStyler, attachButtonStyler } from 'sql/common/theme/styler';
|
import { attachModalDialogStyler, attachButtonStyler } from 'sql/common/theme/styler';
|
||||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||||
import * as TelemetryKeys from 'sql/common/telemetryKeys';
|
import * as TelemetryKeys from 'sql/common/telemetryKeys';
|
||||||
|
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
|
||||||
|
|
||||||
export class AutoOAuthDialog extends Modal {
|
export class AutoOAuthDialog extends Modal {
|
||||||
private _copyAndOpenButton: Button;
|
private _copyAndOpenButton: Button;
|
||||||
@@ -42,16 +43,19 @@ export class AutoOAuthDialog extends Modal {
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@IPartService partService: IPartService,
|
@IPartService partService: IPartService,
|
||||||
@IThemeService private _themeService: IThemeService,
|
@IThemeService themeService: IThemeService,
|
||||||
@IContextViewService private _contextViewService: IContextViewService,
|
@IContextViewService private _contextViewService: IContextViewService,
|
||||||
@ITelemetryService telemetryService: ITelemetryService,
|
@ITelemetryService telemetryService: ITelemetryService,
|
||||||
@IContextKeyService contextKeyService: IContextKeyService
|
@IContextKeyService contextKeyService: IContextKeyService,
|
||||||
|
@IClipboardService clipboardService: IClipboardService
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
'',
|
'',
|
||||||
TelemetryKeys.AutoOAuth,
|
TelemetryKeys.AutoOAuth,
|
||||||
partService,
|
partService,
|
||||||
telemetryService,
|
telemetryService,
|
||||||
|
clipboardService,
|
||||||
|
themeService,
|
||||||
contextKeyService,
|
contextKeyService,
|
||||||
{
|
{
|
||||||
isFlyout: true,
|
isFlyout: true,
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import { attachModalDialogStyler, attachButtonStyler } from 'sql/common/theme/st
|
|||||||
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
||||||
import { IAccountPickerService } from 'sql/parts/accountManagement/common/interfaces';
|
import { IAccountPickerService } from 'sql/parts/accountManagement/common/interfaces';
|
||||||
import * as TelemetryKeys from 'sql/common/telemetryKeys';
|
import * as TelemetryKeys from 'sql/common/telemetryKeys';
|
||||||
|
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
|
||||||
|
|
||||||
// TODO: Make the help link 1) extensible (01/08/2018, https://github.com/Microsoft/azuredatastudio/issues/450)
|
// TODO: Make the help link 1) extensible (01/08/2018, https://github.com/Microsoft/azuredatastudio/issues/450)
|
||||||
// in case that other non-Azure sign in is to be used
|
// in case that other non-Azure sign in is to be used
|
||||||
@@ -64,18 +65,21 @@ export class FirewallRuleDialog extends Modal {
|
|||||||
constructor(
|
constructor(
|
||||||
@IAccountPickerService private _accountPickerService: IAccountPickerService,
|
@IAccountPickerService private _accountPickerService: IAccountPickerService,
|
||||||
@IPartService partService: IPartService,
|
@IPartService partService: IPartService,
|
||||||
@IWorkbenchThemeService private _themeService: IWorkbenchThemeService,
|
@IWorkbenchThemeService private _workbenchThemeService: IWorkbenchThemeService,
|
||||||
@IInstantiationService private _instantiationService: IInstantiationService,
|
@IInstantiationService private _instantiationService: IInstantiationService,
|
||||||
@IContextViewService private _contextViewService: IContextViewService,
|
@IContextViewService private _contextViewService: IContextViewService,
|
||||||
@ITelemetryService telemetryService: ITelemetryService,
|
@ITelemetryService telemetryService: ITelemetryService,
|
||||||
@IContextKeyService contextKeyService: IContextKeyService,
|
@IContextKeyService contextKeyService: IContextKeyService,
|
||||||
@IWindowsService private _windowsService: IWindowsService,
|
@IWindowsService private _windowsService: IWindowsService,
|
||||||
|
@IClipboardService clipboardService: IClipboardService
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
localize('createNewFirewallRule', 'Create new firewall rule'),
|
localize('createNewFirewallRule', 'Create new firewall rule'),
|
||||||
TelemetryKeys.FireWallRule,
|
TelemetryKeys.FireWallRule,
|
||||||
partService,
|
partService,
|
||||||
telemetryService,
|
telemetryService,
|
||||||
|
clipboardService,
|
||||||
|
_workbenchThemeService,
|
||||||
contextKeyService,
|
contextKeyService,
|
||||||
{
|
{
|
||||||
isFlyout: true,
|
isFlyout: true,
|
||||||
@@ -202,8 +206,8 @@ export class FirewallRuleDialog extends Modal {
|
|||||||
builder.append(firewallRuleSection);
|
builder.append(firewallRuleSection);
|
||||||
});
|
});
|
||||||
|
|
||||||
this._register(this._themeService.onDidColorThemeChange(e => this.updateTheme(e)));
|
this._register(this._workbenchThemeService.onDidColorThemeChange(e => this.updateTheme(e)));
|
||||||
this.updateTheme(this._themeService.getColorTheme());
|
this.updateTheme(this._workbenchThemeService.getColorTheme());
|
||||||
|
|
||||||
$(this._IPAddressInput).on(DOM.EventType.CLICK, () => {
|
$(this._IPAddressInput).on(DOM.EventType.CLICK, () => {
|
||||||
this.onFirewallRuleOptionSelected(true);
|
this.onFirewallRuleOptionSelected(true);
|
||||||
|
|||||||
17
src/sql/parts/commandLine/common/commandLine.ts
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* 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 { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||||
|
export interface ICommandLineProcessing {
|
||||||
|
_serviceBrand: any;
|
||||||
|
/**
|
||||||
|
* Interprets the various Azure Data Studio-specific command line switches and
|
||||||
|
* performs the requisite tasks such as connecting to a server
|
||||||
|
*/
|
||||||
|
processCommandLine() : void;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const ICommandLineProcessing = createDecorator<ICommandLineProcessing>('commandLineService');
|
||||||
75
src/sql/parts/commandLine/common/commandLineService.ts
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* 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 { ConnectionProfile } from 'sql/parts/connection/common/connectionProfile';
|
||||||
|
import { ICommandLineProcessing } from 'sql/parts/commandLine/common/commandLine';
|
||||||
|
import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement';
|
||||||
|
import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService';
|
||||||
|
import { IEnvironmentService } from 'vs/platform/environment/common/environment';
|
||||||
|
import * as Constants from 'sql/parts/connection/common/constants';
|
||||||
|
import { IQueryEditorService } from 'sql/parts/query/common/queryEditorService';
|
||||||
|
import * as platform from 'vs/platform/registry/common/platform';
|
||||||
|
import { ConnectionProviderProperties, IConnectionProviderRegistry, Extensions as ConnectionProviderExtensions } from 'sql/workbench/parts/connection/common/connectionProviderExtension';
|
||||||
|
import * as TaskUtilities from 'sql/workbench/common/taskUtilities';
|
||||||
|
import { IObjectExplorerService } from 'sql/parts/objectExplorer/common/objectExplorerService';
|
||||||
|
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
|
||||||
|
|
||||||
|
export class CommandLineService implements ICommandLineProcessing {
|
||||||
|
private _connectionProfile: ConnectionProfile;
|
||||||
|
private _showConnectionDialog: boolean;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
@IConnectionManagementService private _connectionManagementService: IConnectionManagementService,
|
||||||
|
@ICapabilitiesService private _capabilitiesService: ICapabilitiesService,
|
||||||
|
@IEnvironmentService private _environmentService: IEnvironmentService,
|
||||||
|
@IQueryEditorService private _queryEditorService: IQueryEditorService,
|
||||||
|
@IObjectExplorerService private _objectExplorerService: IObjectExplorerService,
|
||||||
|
@IEditorService private _editorService: IEditorService,
|
||||||
|
) {
|
||||||
|
let profile = null;
|
||||||
|
if (this._environmentService && this._environmentService.args.server) {
|
||||||
|
profile = new ConnectionProfile(_capabilitiesService, null);
|
||||||
|
// We want connection store to use any matching password it finds
|
||||||
|
profile.savePassword = true;
|
||||||
|
profile.providerName = Constants.mssqlProviderName;
|
||||||
|
profile.serverName = _environmentService.args.server;
|
||||||
|
profile.databaseName = _environmentService.args.database ? _environmentService.args.database : '';
|
||||||
|
profile.userName = _environmentService.args.user ? _environmentService.args.user : '';
|
||||||
|
profile.authenticationType = _environmentService.args.integrated ? 'Integrated' : 'SqlLogin';
|
||||||
|
profile.connectionName = '';
|
||||||
|
profile.setOptionValue('applicationName', Constants.applicationName);
|
||||||
|
profile.setOptionValue('databaseDisplayName', profile.databaseName);
|
||||||
|
profile.setOptionValue('groupId', profile.groupId);
|
||||||
|
}
|
||||||
|
this._connectionProfile = profile;
|
||||||
|
const registry = platform.Registry.as<IConnectionProviderRegistry>(ConnectionProviderExtensions.ConnectionProviderContributions);
|
||||||
|
let sqlProvider = registry.getProperties(Constants.mssqlProviderName);
|
||||||
|
// We can't connect to object explorer until the MSSQL connection provider is registered
|
||||||
|
if (sqlProvider) {
|
||||||
|
this.processCommandLine();
|
||||||
|
} else {
|
||||||
|
registry.onNewProvider(e => {
|
||||||
|
if (e.id === Constants.mssqlProviderName) {
|
||||||
|
this.processCommandLine();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public _serviceBrand: any;
|
||||||
|
public processCommandLine(): void {
|
||||||
|
if (!this._connectionProfile && !this._connectionManagementService.hasRegisteredServers()) {
|
||||||
|
// prompt the user for a new connection on startup if no profiles are registered
|
||||||
|
this._connectionManagementService.showConnectionDialog();
|
||||||
|
} else if (this._connectionProfile) {
|
||||||
|
this._connectionManagementService.connectIfNotConnected(this._connectionProfile, 'connection')
|
||||||
|
.then(result => TaskUtilities.newQuery(this._connectionProfile,
|
||||||
|
this._connectionManagementService,
|
||||||
|
this._queryEditorService,
|
||||||
|
this._objectExplorerService,
|
||||||
|
this._editorService))
|
||||||
|
.catch(() => { });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -77,7 +77,6 @@ export class ConnectionManagementService extends Disposable implements IConnecti
|
|||||||
private _onConnectRequestSent = new Emitter<void>();
|
private _onConnectRequestSent = new Emitter<void>();
|
||||||
private _onConnectionChanged = new Emitter<IConnectionParams>();
|
private _onConnectionChanged = new Emitter<IConnectionParams>();
|
||||||
private _onLanguageFlavorChanged = new Emitter<sqlops.DidChangeLanguageFlavorParams>();
|
private _onLanguageFlavorChanged = new Emitter<sqlops.DidChangeLanguageFlavorParams>();
|
||||||
|
|
||||||
private _connectionGlobalStatus = new ConnectionGlobalStatus(this._statusBarService);
|
private _connectionGlobalStatus = new ConnectionGlobalStatus(this._statusBarService);
|
||||||
|
|
||||||
private _configurationEditService: ConfigurationEditingService;
|
private _configurationEditService: ConfigurationEditingService;
|
||||||
@@ -124,16 +123,6 @@ export class ConnectionManagementService extends Disposable implements IConnecti
|
|||||||
100 /* High Priority */
|
100 /* High Priority */
|
||||||
));
|
));
|
||||||
|
|
||||||
if (_capabilitiesService && Object.keys(_capabilitiesService.providers).length > 0 && !this.hasRegisteredServers()) {
|
|
||||||
// prompt the user for a new connection on startup if no profiles are registered
|
|
||||||
this.showConnectionDialog();
|
|
||||||
} else if (_capabilitiesService && !this.hasRegisteredServers()) {
|
|
||||||
_capabilitiesService.onCapabilitiesRegistered(e => {
|
|
||||||
// prompt the user for a new connection on startup if no profiles are registered
|
|
||||||
this.showConnectionDialog();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const registry = platform.Registry.as<IConnectionProviderRegistry>(ConnectionProviderExtensions.ConnectionProviderContributions);
|
const registry = platform.Registry.as<IConnectionProviderRegistry>(ConnectionProviderExtensions.ConnectionProviderContributions);
|
||||||
|
|
||||||
let providerRegistration = (p: { id: string, properties: ConnectionProviderProperties }) => {
|
let providerRegistration = (p: { id: string, properties: ConnectionProviderProperties }) => {
|
||||||
@@ -282,29 +271,30 @@ export class ConnectionManagementService extends Disposable implements IConnecti
|
|||||||
* @param options to use after the connection is complete
|
* @param options to use after the connection is complete
|
||||||
*/
|
*/
|
||||||
private tryConnect(connection: IConnectionProfile, owner: IConnectableInput, options?: IConnectionCompletionOptions): Promise<IConnectionResult> {
|
private tryConnect(connection: IConnectionProfile, owner: IConnectableInput, options?: IConnectionCompletionOptions): Promise<IConnectionResult> {
|
||||||
|
let self = this;
|
||||||
return new Promise<IConnectionResult>((resolve, reject) => {
|
return new Promise<IConnectionResult>((resolve, reject) => {
|
||||||
// Load the password if it's not already loaded
|
// Load the password if it's not already loaded
|
||||||
this._connectionStore.addSavedPassword(connection).then(result => {
|
self._connectionStore.addSavedPassword(connection).then(result => {
|
||||||
let newConnection = result.profile;
|
let newConnection = result.profile;
|
||||||
let foundPassword = result.savedCred;
|
let foundPassword = result.savedCred;
|
||||||
|
|
||||||
// If there is no password, try to load it from an existing connection
|
// If there is no password, try to load it from an existing connection
|
||||||
if (!foundPassword && this._connectionStore.isPasswordRequired(newConnection)) {
|
if (!foundPassword && self._connectionStore.isPasswordRequired(newConnection)) {
|
||||||
let existingConnection = this._connectionStatusManager.findConnectionProfile(connection);
|
let existingConnection = self._connectionStatusManager.findConnectionProfile(connection);
|
||||||
if (existingConnection && existingConnection.connectionProfile) {
|
if (existingConnection && existingConnection.connectionProfile) {
|
||||||
newConnection.password = existingConnection.connectionProfile.password;
|
newConnection.password = existingConnection.connectionProfile.password;
|
||||||
foundPassword = true;
|
foundPassword = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// If the password is required and still not loaded show the dialog
|
// If the password is required and still not loaded show the dialog
|
||||||
if (!foundPassword && this._connectionStore.isPasswordRequired(newConnection) && !newConnection.password) {
|
if (!foundPassword && self._connectionStore.isPasswordRequired(newConnection) && !newConnection.password) {
|
||||||
resolve(this.showConnectionDialogOnError(connection, owner, { connected: false, errorMessage: undefined, callStack: undefined, errorCode: undefined }, options));
|
resolve(self.showConnectionDialogOnError(connection, owner, { connected: false, errorMessage: undefined, callStack: undefined, errorCode: undefined }, options));
|
||||||
} else {
|
} else {
|
||||||
// Try to connect
|
// Try to connect
|
||||||
this.connectWithOptions(newConnection, owner.uri, options, owner).then(connectionResult => {
|
self.connectWithOptions(newConnection, owner.uri, options, owner).then(connectionResult => {
|
||||||
if (!connectionResult.connected && !connectionResult.errorHandled) {
|
if (!connectionResult.connected && !connectionResult.errorHandled) {
|
||||||
// If connection fails show the dialog
|
// If connection fails show the dialog
|
||||||
resolve(this.showConnectionDialogOnError(connection, owner, connectionResult, options));
|
resolve(self.showConnectionDialogOnError(connection, owner, connectionResult, options));
|
||||||
} else {
|
} else {
|
||||||
//Resolve with the connection result
|
//Resolve with the connection result
|
||||||
resolve(connectionResult);
|
resolve(connectionResult);
|
||||||
@@ -390,7 +380,14 @@ export class ConnectionManagementService extends Disposable implements IConnecti
|
|||||||
if (this._connectionStatusManager.isConnected(ownerUri)) {
|
if (this._connectionStatusManager.isConnected(ownerUri)) {
|
||||||
resolve(this._connectionStatusManager.getOriginalOwnerUri(ownerUri));
|
resolve(this._connectionStatusManager.getOriginalOwnerUri(ownerUri));
|
||||||
} else {
|
} else {
|
||||||
this.connect(connection, ownerUri).then(connectionResult => {
|
const options: IConnectionCompletionOptions = {
|
||||||
|
saveTheConnection: false,
|
||||||
|
showConnectionDialogOnError: true,
|
||||||
|
showDashboard: purpose === 'dashboard',
|
||||||
|
params: undefined,
|
||||||
|
showFirewallRuleOnError: true,
|
||||||
|
};
|
||||||
|
this.connect(connection, ownerUri, options).then(connectionResult => {
|
||||||
if (connectionResult && connectionResult.connected) {
|
if (connectionResult && connectionResult.connected) {
|
||||||
resolve(this._connectionStatusManager.getOriginalOwnerUri(ownerUri));
|
resolve(this._connectionStatusManager.getOriginalOwnerUri(ownerUri));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -23,9 +23,7 @@ export class ConnectionStatusbarItem implements IStatusbarItem {
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@IConnectionManagementService private _connectionManagementService: IConnectionManagementService,
|
@IConnectionManagementService private _connectionManagementService: IConnectionManagementService,
|
||||||
@IEditorGroupsService private _editorGroupService: IEditorGroupsService,
|
|
||||||
@IEditorService private _editorService: EditorServiceImpl,
|
@IEditorService private _editorService: EditorServiceImpl,
|
||||||
@ICapabilitiesService private _capabilitiesService: ICapabilitiesService,
|
|
||||||
@IObjectExplorerService private _objectExplorerService: IObjectExplorerService,
|
@IObjectExplorerService private _objectExplorerService: IObjectExplorerService,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ export function parseTimeString(value: string): number | boolean {
|
|||||||
* @param value The number of milliseconds to convert to a timespan string
|
* @param value The number of milliseconds to convert to a timespan string
|
||||||
* @returns A properly formatted timespan string.
|
* @returns A properly formatted timespan string.
|
||||||
*/
|
*/
|
||||||
export function parseNumAsTimeString(value: number): string {
|
export function parseNumAsTimeString(value: number, includeFraction: boolean = true): string {
|
||||||
let tempVal = value;
|
let tempVal = value;
|
||||||
let h = Math.floor(tempVal / msInH);
|
let h = Math.floor(tempVal / msInH);
|
||||||
tempVal %= msInH;
|
tempVal %= msInH;
|
||||||
@@ -85,7 +85,7 @@ export function parseNumAsTimeString(value: number): string {
|
|||||||
|
|
||||||
let rs = hs + ':' + ms + ':' + ss;
|
let rs = hs + ':' + ms + ':' + ss;
|
||||||
|
|
||||||
return tempVal > 0 ? rs + '.' + mss : rs;
|
return tempVal > 0 && includeFraction ? rs + '.' + mss : rs;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function generateUri(connection: IConnectionProfile, purpose?: 'dashboard' | 'insights' | 'connection'): string {
|
export function generateUri(connection: IConnectionProfile, purpose?: 'dashboard' | 'insights' | 'connection'): string {
|
||||||
|
|||||||
@@ -87,16 +87,32 @@ export class ConnectionDialogService implements IConnectionDialogService {
|
|||||||
@IClipboardService private _clipboardService: IClipboardService,
|
@IClipboardService private _clipboardService: IClipboardService,
|
||||||
@ICommandService private _commandService: ICommandService
|
@ICommandService private _commandService: ICommandService
|
||||||
) { }
|
) { }
|
||||||
|
/**
|
||||||
private getDefaultProviderName() {
|
* Gets the default provider with the following actions
|
||||||
|
* 1. Checks if master provider(map) has data
|
||||||
|
* 2. If so, filters provider paramter against master map
|
||||||
|
* 3. Fetches the result array and extracts the first element
|
||||||
|
* 4. If none of the above data exists, returns 'MSSQL'
|
||||||
|
* @returns: Default provider as string
|
||||||
|
*/
|
||||||
|
private getDefaultProviderName(): string {
|
||||||
let defaultProvider: string;
|
let defaultProvider: string;
|
||||||
if (this._providerNameToDisplayNameMap) {
|
if (this._providerNameToDisplayNameMap) {
|
||||||
let keys = Object.keys(this._providerNameToDisplayNameMap);
|
let keys = Object.keys(this._providerNameToDisplayNameMap);
|
||||||
|
let filteredKeys: string[];
|
||||||
if (keys && keys.length > 0) {
|
if (keys && keys.length > 0) {
|
||||||
|
if (this._params && this._params.providers && this._params.providers.length > 0) {
|
||||||
|
//Filter providers from master keys.
|
||||||
|
filteredKeys = keys.filter(key => this._params.providers.includes(key));
|
||||||
|
}
|
||||||
|
if (filteredKeys && filteredKeys.length > 0) {
|
||||||
|
defaultProvider = filteredKeys[0];
|
||||||
|
}
|
||||||
|
else {
|
||||||
defaultProvider = keys[0];
|
defaultProvider = keys[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!defaultProvider && this._workspaceConfigurationService) {
|
if (!defaultProvider && this._workspaceConfigurationService) {
|
||||||
defaultProvider = WorkbenchUtils.getSqlConfigValue<string>(this._workspaceConfigurationService, Constants.defaultEngine);
|
defaultProvider = WorkbenchUtils.getSqlConfigValue<string>(this._workspaceConfigurationService, Constants.defaultEngine);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
|
|||||||
import * as styler from 'vs/platform/theme/common/styler';
|
import * as styler from 'vs/platform/theme/common/styler';
|
||||||
import * as DOM from 'vs/base/browser/dom';
|
import * as DOM from 'vs/base/browser/dom';
|
||||||
import { ActionBar } from 'vs/base/browser/ui/actionbar/actionbar';
|
import { ActionBar } from 'vs/base/browser/ui/actionbar/actionbar';
|
||||||
|
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
|
||||||
|
|
||||||
export interface OnShowUIResponse {
|
export interface OnShowUIResponse {
|
||||||
selectedProviderType: string;
|
selectedProviderType: string;
|
||||||
@@ -87,14 +88,15 @@ export class ConnectionDialogWidget extends Modal {
|
|||||||
private providerNameToDisplayNameMap: { [providerDisplayName: string]: string },
|
private providerNameToDisplayNameMap: { [providerDisplayName: string]: string },
|
||||||
@IInstantiationService private _instantiationService: IInstantiationService,
|
@IInstantiationService private _instantiationService: IInstantiationService,
|
||||||
@IConnectionManagementService private _connectionManagementService: IConnectionManagementService,
|
@IConnectionManagementService private _connectionManagementService: IConnectionManagementService,
|
||||||
@IWorkbenchThemeService private _themeService: IWorkbenchThemeService,
|
@IWorkbenchThemeService private _workbenchThemeService: IWorkbenchThemeService,
|
||||||
@IPartService _partService: IPartService,
|
@IPartService _partService: IPartService,
|
||||||
@ITelemetryService telemetryService: ITelemetryService,
|
@ITelemetryService telemetryService: ITelemetryService,
|
||||||
@IContextKeyService contextKeyService: IContextKeyService,
|
@IContextKeyService contextKeyService: IContextKeyService,
|
||||||
@IContextMenuService private _contextMenuService: IContextMenuService,
|
@IContextMenuService private _contextMenuService: IContextMenuService,
|
||||||
@IContextViewService private _contextViewService: IContextViewService
|
@IContextViewService private _contextViewService: IContextViewService,
|
||||||
|
@IClipboardService clipboardService: IClipboardService
|
||||||
) {
|
) {
|
||||||
super(localize('connection', 'Connection'), TelemetryKeys.Connection, _partService, telemetryService, contextKeyService, { hasSpinner: true, hasErrors: true });
|
super(localize('connection', 'Connection'), TelemetryKeys.Connection, _partService, telemetryService, clipboardService, _workbenchThemeService, contextKeyService, { hasSpinner: true, hasErrors: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
public refresh(): void {
|
public refresh(): void {
|
||||||
@@ -192,8 +194,8 @@ export class ConnectionDialogWidget extends Modal {
|
|||||||
this.$connectionUIContainer.appendTo(this._bodyBuilder);
|
this.$connectionUIContainer.appendTo(this._bodyBuilder);
|
||||||
|
|
||||||
let self = this;
|
let self = this;
|
||||||
this._register(self._themeService.onDidColorThemeChange(e => self.updateTheme(e)));
|
this._register(self._workbenchThemeService.onDidColorThemeChange(e => self.updateTheme(e)));
|
||||||
self.updateTheme(self._themeService.getColorTheme());
|
self.updateTheme(self._workbenchThemeService.getColorTheme());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import { IConnectionProfile } from 'sql/parts/connection/common/interfaces';
|
|||||||
import { ConnectionOptionSpecialType } from 'sql/workbench/api/common/sqlExtHostTypes';
|
import { ConnectionOptionSpecialType } from 'sql/workbench/api/common/sqlExtHostTypes';
|
||||||
import * as Constants from 'sql/parts/connection/common/constants';
|
import * as Constants from 'sql/parts/connection/common/constants';
|
||||||
import { ConnectionProfileGroup, IConnectionProfileGroup } from 'sql/parts/connection/common/connectionProfileGroup';
|
import { ConnectionProfileGroup, IConnectionProfileGroup } from 'sql/parts/connection/common/connectionProfileGroup';
|
||||||
import { attachInputBoxStyler, attachButtonStyler, attachEditableDropdownStyler } from 'sql/common/theme/styler';
|
import { attachButtonStyler, attachCheckboxStyler, attachEditableDropdownStyler, attachInputBoxStyler } from 'sql/common/theme/styler';
|
||||||
import { Dropdown } from 'sql/base/browser/ui/editableDropdown/dropdown';
|
import { Dropdown } from 'sql/base/browser/ui/editableDropdown/dropdown';
|
||||||
import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement';
|
import { IConnectionManagementService } from 'sql/parts/connection/common/connectionManagement';
|
||||||
import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService';
|
import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService';
|
||||||
@@ -83,7 +83,7 @@ export class ConnectionWidget {
|
|||||||
};
|
};
|
||||||
public NoneServerGroup: IConnectionProfileGroup = {
|
public NoneServerGroup: IConnectionProfileGroup = {
|
||||||
id: '',
|
id: '',
|
||||||
name: localize('noneServerGroup', '<None>'),
|
name: localize('noneServerGroup', '<Do not save>'),
|
||||||
parentId: undefined,
|
parentId: undefined,
|
||||||
color: undefined,
|
color: undefined,
|
||||||
description: undefined,
|
description: undefined,
|
||||||
@@ -274,6 +274,7 @@ export class ConnectionWidget {
|
|||||||
this._toDispose.push(attachInputBoxStyler(this._passwordInputBox, this._themeService));
|
this._toDispose.push(attachInputBoxStyler(this._passwordInputBox, this._themeService));
|
||||||
this._toDispose.push(styler.attachSelectBoxStyler(this._serverGroupSelectBox, this._themeService));
|
this._toDispose.push(styler.attachSelectBoxStyler(this._serverGroupSelectBox, this._themeService));
|
||||||
this._toDispose.push(attachButtonStyler(this._advancedButton, this._themeService));
|
this._toDispose.push(attachButtonStyler(this._advancedButton, this._themeService));
|
||||||
|
this._toDispose.push(attachCheckboxStyler(this._rememberPasswordCheckBox, this._themeService));
|
||||||
|
|
||||||
if (this._authTypeSelectBox) {
|
if (this._authTypeSelectBox) {
|
||||||
// Theme styler
|
// Theme styler
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import * as TelemetryKeys from 'sql/common/telemetryKeys';
|
|||||||
import { Orientation } from 'sql/base/browser/ui/splitview/splitview';
|
import { Orientation } from 'sql/base/browser/ui/splitview/splitview';
|
||||||
import { NewDashboardTabViewModel, IDashboardUITab } from 'sql/parts/dashboard/newDashboardTabDialog/newDashboardTabViewModel';
|
import { NewDashboardTabViewModel, IDashboardUITab } from 'sql/parts/dashboard/newDashboardTabDialog/newDashboardTabViewModel';
|
||||||
import { IDashboardTab } from 'sql/platform/dashboard/common/dashboardRegistry';
|
import { IDashboardTab } from 'sql/platform/dashboard/common/dashboardRegistry';
|
||||||
|
import { IClipboardService } from 'sql/platform/clipboard/common/clipboardService';
|
||||||
|
|
||||||
class ExtensionListDelegate implements IVirtualDelegate<IDashboardUITab> {
|
class ExtensionListDelegate implements IVirtualDelegate<IDashboardUITab> {
|
||||||
|
|
||||||
@@ -119,19 +120,22 @@ export class NewDashboardTabDialog extends Modal {
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@IPartService partService: IPartService,
|
@IPartService partService: IPartService,
|
||||||
@IThemeService private _themeService: IThemeService,
|
@IThemeService themeService: IThemeService,
|
||||||
@IListService private _listService: IListService,
|
@IListService private _listService: IListService,
|
||||||
@IInstantiationService private _instantiationService: IInstantiationService,
|
@IInstantiationService private _instantiationService: IInstantiationService,
|
||||||
@IContextMenuService private _contextMenuService: IContextMenuService,
|
@IContextMenuService private _contextMenuService: IContextMenuService,
|
||||||
@IKeybindingService private _keybindingService: IKeybindingService,
|
@IKeybindingService private _keybindingService: IKeybindingService,
|
||||||
@ITelemetryService telemetryService: ITelemetryService,
|
@ITelemetryService telemetryService: ITelemetryService,
|
||||||
@IContextKeyService contextKeyService: IContextKeyService
|
@IContextKeyService contextKeyService: IContextKeyService,
|
||||||
|
@IClipboardService clipboardService: IClipboardService
|
||||||
) {
|
) {
|
||||||
super(
|
super(
|
||||||
localize('newDashboardTab.openDashboardExtensions', 'Open dashboard extensions'),
|
localize('newDashboardTab.openDashboardExtensions', 'Open dashboard extensions'),
|
||||||
TelemetryKeys.AddNewDashboardTab,
|
TelemetryKeys.AddNewDashboardTab,
|
||||||
partService,
|
partService,
|
||||||
telemetryService,
|
telemetryService,
|
||||||
|
clipboardService,
|
||||||
|
themeService,
|
||||||
contextKeyService,
|
contextKeyService,
|
||||||
{ hasSpinner: true }
|
{ hasSpinner: true }
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -10,10 +10,9 @@ import * as TelemetryUtils from 'sql/common/telemetryUtilities';
|
|||||||
import { IInsightsView, IInsightData } from 'sql/parts/dashboard/widgets/insights/interfaces';
|
import { IInsightsView, IInsightData } from 'sql/parts/dashboard/widgets/insights/interfaces';
|
||||||
import { memoize, unmemoize } from 'sql/base/common/decorators';
|
import { memoize, unmemoize } from 'sql/base/common/decorators';
|
||||||
import { mixin } from 'sql/base/common/objects';
|
import { mixin } from 'sql/base/common/objects';
|
||||||
import { LegendPosition, DataDirection, ChartType } from 'sql/parts/dashboard/widgets/insights/views/charts/interfaces';
|
import { LegendPosition, ChartType, defaultChartConfig, IChartConfig, IDataSet, IPointDataSet } from 'sql/parts/dashboard/widgets/insights/views/charts/interfaces';
|
||||||
|
|
||||||
import * as colors from 'vs/platform/theme/common/colorRegistry';
|
import * as colors from 'vs/platform/theme/common/colorRegistry';
|
||||||
import { Color } from 'vs/base/common/color';
|
|
||||||
import * as types from 'vs/base/common/types';
|
import * as types from 'vs/base/common/types';
|
||||||
import { Disposable } from 'vs/base/common/lifecycle';
|
import { Disposable } from 'vs/base/common/lifecycle';
|
||||||
import { IColorTheme, IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
import { IColorTheme, IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
||||||
@@ -22,51 +21,6 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
|||||||
|
|
||||||
declare var Chart: any;
|
declare var Chart: any;
|
||||||
|
|
||||||
export function customMixin(destination: any, source: any, overwrite?: boolean): any {
|
|
||||||
if (types.isObject(source)) {
|
|
||||||
mixin(destination, source, overwrite, customMixin);
|
|
||||||
} else if (types.isArray(source)) {
|
|
||||||
for (let i = 0; i < source.length; i++) {
|
|
||||||
if (destination[i]) {
|
|
||||||
mixin(destination[i], source[i], overwrite, customMixin);
|
|
||||||
} else {
|
|
||||||
destination[i] = source[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
destination = source;
|
|
||||||
}
|
|
||||||
return destination;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IDataSet {
|
|
||||||
data: Array<number>;
|
|
||||||
label?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IPointDataSet {
|
|
||||||
data: Array<{ x: number | string, y: number }>;
|
|
||||||
label?: string;
|
|
||||||
fill: boolean;
|
|
||||||
backgroundColor?: Color;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IChartConfig {
|
|
||||||
colorMap?: { [column: string]: string };
|
|
||||||
labelFirstColumn?: boolean;
|
|
||||||
legendPosition?: LegendPosition;
|
|
||||||
dataDirection?: DataDirection;
|
|
||||||
columnsAsLabels?: boolean;
|
|
||||||
showTopNData?: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const defaultChartConfig: IChartConfig = {
|
|
||||||
labelFirstColumn: true,
|
|
||||||
columnsAsLabels: true,
|
|
||||||
legendPosition: LegendPosition.Top,
|
|
||||||
dataDirection: DataDirection.Vertical
|
|
||||||
};
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
template: ` <div style="display: block; width: 100%; height: 100%; position: relative">
|
template: ` <div style="display: block; width: 100%; height: 100%; position: relative">
|
||||||
<canvas #canvas *ngIf="_isDataAvailable && _hasInit"
|
<canvas #canvas *ngIf="_isDataAvailable && _hasInit"
|
||||||
|
|||||||
@@ -3,6 +3,11 @@
|
|||||||
* 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.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
import { Color } from 'vs/base/common/color';
|
||||||
|
import * as types from 'vs/base/common/types';
|
||||||
|
|
||||||
|
import { mixin } from 'sql/base/common/objects';
|
||||||
|
|
||||||
export enum ChartType {
|
export enum ChartType {
|
||||||
Bar = 'bar',
|
Bar = 'bar',
|
||||||
Doughnut = 'doughnut',
|
Doughnut = 'doughnut',
|
||||||
@@ -30,3 +35,48 @@ export enum DataType {
|
|||||||
Number = 'number',
|
Number = 'number',
|
||||||
Point = 'point'
|
Point = 'point'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function customMixin(destination: any, source: any, overwrite?: boolean): any {
|
||||||
|
if (types.isObject(source)) {
|
||||||
|
mixin(destination, source, overwrite, customMixin);
|
||||||
|
} else if (types.isArray(source)) {
|
||||||
|
for (let i = 0; i < source.length; i++) {
|
||||||
|
if (destination[i]) {
|
||||||
|
mixin(destination[i], source[i], overwrite, customMixin);
|
||||||
|
} else {
|
||||||
|
destination[i] = source[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
destination = source;
|
||||||
|
}
|
||||||
|
return destination;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IDataSet {
|
||||||
|
data: Array<number>;
|
||||||
|
label?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IPointDataSet {
|
||||||
|
data: Array<{ x: number | string, y: number }>;
|
||||||
|
label?: string;
|
||||||
|
fill: boolean;
|
||||||
|
backgroundColor?: Color;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IChartConfig {
|
||||||
|
colorMap?: { [column: string]: string };
|
||||||
|
labelFirstColumn?: boolean;
|
||||||
|
legendPosition?: LegendPosition;
|
||||||
|
dataDirection?: DataDirection;
|
||||||
|
columnsAsLabels?: boolean;
|
||||||
|
showTopNData?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const defaultChartConfig: IChartConfig = {
|
||||||
|
labelFirstColumn: true,
|
||||||
|
columnsAsLabels: true,
|
||||||
|
legendPosition: LegendPosition.Top,
|
||||||
|
dataDirection: DataDirection.Vertical
|
||||||
|
};
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
* 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.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import { ChartInsight, customMixin, IChartConfig } from 'sql/parts/dashboard/widgets/insights/views/charts/chartInsight.component';
|
import { ChartInsight } from 'sql/parts/dashboard/widgets/insights/views/charts/chartInsight.component';
|
||||||
import { mixin } from 'sql/base/common/objects';
|
import { mixin } from 'sql/base/common/objects';
|
||||||
import { ChartType } from 'sql/parts/dashboard/widgets/insights/views/charts/interfaces';
|
import { ChartType, IChartConfig, customMixin } from 'sql/parts/dashboard/widgets/insights/views/charts/interfaces';
|
||||||
|
|
||||||
import { IColorTheme } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
import { IColorTheme } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
||||||
import * as colors from 'vs/platform/theme/common/colorRegistry';
|
import * as colors from 'vs/platform/theme/common/colorRegistry';
|
||||||
|
|||||||
@@ -5,11 +5,10 @@
|
|||||||
|
|
||||||
import { mixin } from 'vs/base/common/objects';
|
import { mixin } from 'vs/base/common/objects';
|
||||||
|
|
||||||
import { defaultChartConfig, IDataSet, IPointDataSet } from 'sql/parts/dashboard/widgets/insights/views/charts/chartInsight.component';
|
|
||||||
import BarChart, { IBarChartConfig } from './barChart.component';
|
import BarChart, { IBarChartConfig } from './barChart.component';
|
||||||
import { memoize, unmemoize } from 'sql/base/common/decorators';
|
import { memoize, unmemoize } from 'sql/base/common/decorators';
|
||||||
import { clone } from 'sql/base/common/objects';
|
import { clone } from 'sql/base/common/objects';
|
||||||
import { ChartType, DataType } from 'sql/parts/dashboard/widgets/insights/views/charts/interfaces';
|
import { ChartType, DataType, defaultChartConfig, IDataSet, IPointDataSet } from 'sql/parts/dashboard/widgets/insights/views/charts/interfaces';
|
||||||
|
|
||||||
export interface ILineConfig extends IBarChartConfig {
|
export interface ILineConfig extends IBarChartConfig {
|
||||||
dataType?: DataType;
|
dataType?: DataType;
|
||||||
|
|||||||
@@ -3,10 +3,9 @@
|
|||||||
* 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.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import { defaultChartConfig } from 'sql/parts/dashboard/widgets/insights/views/charts/chartInsight.component';
|
|
||||||
import LineChart, { ILineConfig } from './lineChart.component';
|
import LineChart, { ILineConfig } from './lineChart.component';
|
||||||
import { clone } from 'sql/base/common/objects';
|
import { clone } from 'sql/base/common/objects';
|
||||||
import { ChartType } from 'sql/parts/dashboard/widgets/insights/views/charts/interfaces';
|
import { ChartType, defaultChartConfig } from 'sql/parts/dashboard/widgets/insights/views/charts/interfaces';
|
||||||
|
|
||||||
import { mixin } from 'vs/base/common/objects';
|
import { mixin } from 'vs/base/common/objects';
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,9 @@
|
|||||||
* 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.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import { defaultChartConfig, IPointDataSet } from 'sql/parts/dashboard/widgets/insights/views/charts/chartInsight.component';
|
|
||||||
import LineChart, { ILineConfig } from './lineChart.component';
|
import LineChart, { ILineConfig } from './lineChart.component';
|
||||||
import { clone } from 'sql/base/common/objects';
|
import { clone } from 'sql/base/common/objects';
|
||||||
import { ChartType } from 'sql/parts/dashboard/widgets/insights/views/charts/interfaces';
|
import { ChartType, defaultChartConfig, IPointDataSet } from 'sql/parts/dashboard/widgets/insights/views/charts/interfaces';
|
||||||
|
|
||||||
import { mixin } from 'vs/base/common/objects';
|
import { mixin } from 'vs/base/common/objects';
|
||||||
import { Color } from 'vs/base/common/color';
|
import { Color } from 'vs/base/common/color';
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import { ModalFooterStyle } from 'sql/base/browser/ui/modal/modal';
|
|||||||
import { CategoryView } from 'sql/base/browser/ui/modal/optionsDialog';
|
import { CategoryView } from 'sql/base/browser/ui/modal/optionsDialog';
|
||||||
import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox';
|
import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox';
|
||||||
import { SplitView } from 'sql/base/browser/ui/splitview/splitview';
|
import { SplitView } from 'sql/base/browser/ui/splitview/splitview';
|
||||||
import { attachButtonStyler, attachListBoxStyler, attachInputBoxStyler, attachSelectBoxStyler } from 'sql/common/theme/styler';
|
import { attachButtonStyler, attachListBoxStyler, attachInputBoxStyler, attachSelectBoxStyler, attachCheckboxStyler } from 'sql/common/theme/styler';
|
||||||
import { IConnectionProfile } from 'sql/parts/connection/common/interfaces';
|
import { IConnectionProfile } from 'sql/parts/connection/common/interfaces';
|
||||||
import * as BackupConstants from 'sql/parts/disasterRecovery/backup/constants';
|
import * as BackupConstants from 'sql/parts/disasterRecovery/backup/constants';
|
||||||
import { IBackupService, IBackupUiService, TaskExecutionMode } from 'sql/parts/disasterRecovery/backup/common/backupService';
|
import { IBackupService, IBackupUiService, TaskExecutionMode } from 'sql/parts/disasterRecovery/backup/common/backupService';
|
||||||
@@ -523,6 +523,11 @@ export class BackupComponent {
|
|||||||
this._toDispose.push(attachInputBoxStyler(this.mediaNameBox, this.themeService));
|
this._toDispose.push(attachInputBoxStyler(this.mediaNameBox, this.themeService));
|
||||||
this._toDispose.push(attachInputBoxStyler(this.mediaDescriptionBox, this.themeService));
|
this._toDispose.push(attachInputBoxStyler(this.mediaDescriptionBox, this.themeService));
|
||||||
this._toDispose.push(attachInputBoxStyler(this.backupRetainDaysBox, this.themeService));
|
this._toDispose.push(attachInputBoxStyler(this.backupRetainDaysBox, this.themeService));
|
||||||
|
this._toDispose.push(attachCheckboxStyler(this.copyOnlyCheckBox, this.themeService));
|
||||||
|
this._toDispose.push(attachCheckboxStyler(this.encryptCheckBox, this.themeService));
|
||||||
|
this._toDispose.push(attachCheckboxStyler(this.verifyCheckBox, this.themeService));
|
||||||
|
this._toDispose.push(attachCheckboxStyler(this.checksumCheckBox, this.themeService));
|
||||||
|
this._toDispose.push(attachCheckboxStyler(this.continueOnErrorCheckBox, this.themeService));
|
||||||
|
|
||||||
this._toDispose.push(this.backupTypeSelectBox.onDidSelect(selected => this.onBackupTypeChanged()));
|
this._toDispose.push(this.backupTypeSelectBox.onDidSelect(selected => this.onBackupTypeChanged()));
|
||||||
this.addButtonClickHandler(this.addPathButton, () => this.onAddClick());
|
this.addButtonClickHandler(this.addPathButton, () => this.onAddClick());
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import { Builder } from 'vs/base/browser/builder';
|
|||||||
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
import { IThemeService } from 'vs/platform/theme/common/themeService';
|
||||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { bootstrapAngular } from 'sql/services/bootstrap/bootstrapService';
|
import { bootstrapAngular } from 'sql/services/bootstrap/bootstrapService';
|
||||||
|
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
|
||||||
|
|
||||||
export class BackupDialog extends Modal {
|
export class BackupDialog extends Modal {
|
||||||
private _bodyBuilder: Builder;
|
private _bodyBuilder: Builder;
|
||||||
@@ -26,14 +27,15 @@ export class BackupDialog extends Modal {
|
|||||||
private _moduleRef: any;
|
private _moduleRef: any;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@IThemeService private _themeService: IThemeService,
|
@IThemeService themeService: IThemeService,
|
||||||
@IPartService partService: IPartService,
|
@IPartService partService: IPartService,
|
||||||
@IConnectionManagementService private _connectionManagementService: IConnectionManagementService,
|
@IConnectionManagementService private _connectionManagementService: IConnectionManagementService,
|
||||||
@ITelemetryService telemetryService: ITelemetryService,
|
@ITelemetryService telemetryService: ITelemetryService,
|
||||||
@IContextKeyService contextKeyService: IContextKeyService,
|
@IContextKeyService contextKeyService: IContextKeyService,
|
||||||
@IInstantiationService private _instantiationService: IInstantiationService
|
@IInstantiationService private _instantiationService: IInstantiationService,
|
||||||
|
@IClipboardService clipboardService: IClipboardService
|
||||||
) {
|
) {
|
||||||
super('', TelemetryKeys.Backup, partService, telemetryService, contextKeyService, { isAngular: true, hasErrors: true });
|
super('', TelemetryKeys.Backup, partService, telemetryService, clipboardService, themeService, contextKeyService, { isAngular: true, hasErrors: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
protected renderBody(container: HTMLElement) {
|
protected renderBody(container: HTMLElement) {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.backup-dialog {
|
.backup-dialog {
|
||||||
height: calc(100% - 15px)
|
height: 100%
|
||||||
}
|
}
|
||||||
|
|
||||||
.backup-dialog .advanced-main-header {
|
.backup-dialog .advanced-main-header {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ import { Table } from 'sql/base/browser/ui/table/table';
|
|||||||
import { TableDataView } from 'sql/base/browser/ui/table/tableDataView';
|
import { TableDataView } from 'sql/base/browser/ui/table/tableDataView';
|
||||||
import * as DialogHelper from 'sql/base/browser/ui/modal/dialogHelper';
|
import * as DialogHelper from 'sql/base/browser/ui/modal/dialogHelper';
|
||||||
import { Modal } from 'sql/base/browser/ui/modal/modal';
|
import { Modal } from 'sql/base/browser/ui/modal/modal';
|
||||||
import { attachButtonStyler, attachModalDialogStyler, attachTableStyler, attachInputBoxStyler, attachSelectBoxStyler, attachEditableDropdownStyler } from 'sql/common/theme/styler';
|
import { attachButtonStyler, attachModalDialogStyler, attachTableStyler, attachInputBoxStyler, attachSelectBoxStyler, attachEditableDropdownStyler, attachCheckboxStyler } from 'sql/common/theme/styler';
|
||||||
import * as TelemetryKeys from 'sql/common/telemetryKeys';
|
import * as TelemetryKeys from 'sql/common/telemetryKeys';
|
||||||
import * as BackupConstants from 'sql/parts/disasterRecovery/backup/constants';
|
import * as BackupConstants from 'sql/parts/disasterRecovery/backup/constants';
|
||||||
import { RestoreViewModel, RestoreOptionParam, SouceDatabaseNamesParam } from 'sql/parts/disasterRecovery/restore/restoreViewModel';
|
import { RestoreViewModel, RestoreOptionParam, SouceDatabaseNamesParam } from 'sql/parts/disasterRecovery/restore/restoreViewModel';
|
||||||
@@ -42,6 +42,7 @@ import { Dropdown } from 'sql/base/browser/ui/editableDropdown/dropdown';
|
|||||||
import { TabbedPanel, PanelTabIdentifier } from 'sql/base/browser/ui/panel/panel';
|
import { TabbedPanel, PanelTabIdentifier } from 'sql/base/browser/ui/panel/panel';
|
||||||
import { ServiceOptionType } from 'sql/workbench/api/common/sqlExtHostTypes';
|
import { ServiceOptionType } from 'sql/workbench/api/common/sqlExtHostTypes';
|
||||||
import { IFileBrowserDialogController } from 'sql/parts/fileBrowser/common/interfaces';
|
import { IFileBrowserDialogController } from 'sql/parts/fileBrowser/common/interfaces';
|
||||||
|
import { IClipboardService } from 'sql/platform/clipboard/common/clipboardService';
|
||||||
|
|
||||||
interface FileListElement {
|
interface FileListElement {
|
||||||
logicalFileName: string;
|
logicalFileName: string;
|
||||||
@@ -129,13 +130,14 @@ export class RestoreDialog extends Modal {
|
|||||||
constructor(
|
constructor(
|
||||||
optionsMetadata: sqlops.ServiceOption[],
|
optionsMetadata: sqlops.ServiceOption[],
|
||||||
@IPartService partService: IPartService,
|
@IPartService partService: IPartService,
|
||||||
@IThemeService private _themeService: IThemeService,
|
@IThemeService themeService: IThemeService,
|
||||||
@IContextViewService private _contextViewService: IContextViewService,
|
@IContextViewService private _contextViewService: IContextViewService,
|
||||||
@ITelemetryService telemetryService: ITelemetryService,
|
@ITelemetryService telemetryService: ITelemetryService,
|
||||||
@IContextKeyService contextKeyService: IContextKeyService,
|
@IContextKeyService contextKeyService: IContextKeyService,
|
||||||
@IFileBrowserDialogController private fileBrowserDialogService: IFileBrowserDialogController
|
@IFileBrowserDialogController private fileBrowserDialogService: IFileBrowserDialogController,
|
||||||
|
@IClipboardService clipboardService: IClipboardService
|
||||||
) {
|
) {
|
||||||
super(localize('RestoreDialogTitle', 'Restore database'), TelemetryKeys.Restore, partService, telemetryService, contextKeyService, { hasErrors: true, isWide: true, hasSpinner: true });
|
super(localize('RestoreDialogTitle', 'Restore database'), TelemetryKeys.Restore, partService, telemetryService, clipboardService, themeService, contextKeyService, { hasErrors: true, isWide: true, hasSpinner: true });
|
||||||
this._restoreTitle = localize('restoreDialog.restoreTitle', 'Restore database');
|
this._restoreTitle = localize('restoreDialog.restoreTitle', 'Restore database');
|
||||||
this._databaseTitle = localize('restoreDialog.database', 'Database');
|
this._databaseTitle = localize('restoreDialog.database', 'Database');
|
||||||
this._backupFileTitle = localize('restoreDialog.backupFile', 'Backup file');
|
this._backupFileTitle = localize('restoreDialog.backupFile', 'Backup file');
|
||||||
@@ -530,6 +532,7 @@ export class RestoreDialog extends Modal {
|
|||||||
ariaLabel: label
|
ariaLabel: label
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
this._register(attachCheckboxStyler(checkbox, this._themeService));
|
||||||
return checkbox;
|
return checkbox;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ import { SIDE_BAR_BACKGROUND } from 'vs/workbench/common/theme';
|
|||||||
import { IPartService } from 'vs/workbench/services/part/common/partService';
|
import { IPartService } from 'vs/workbench/services/part/common/partService';
|
||||||
import * as DOM from 'vs/base/browser/dom';
|
import * as DOM from 'vs/base/browser/dom';
|
||||||
import * as strings from 'vs/base/common/strings';
|
import * as strings from 'vs/base/common/strings';
|
||||||
|
import { IClipboardService } from 'sql/platform/clipboard/common/clipboardService';
|
||||||
|
|
||||||
export class FileBrowserDialog extends Modal {
|
export class FileBrowserDialog extends Modal {
|
||||||
private _viewModel: FileBrowserViewModel;
|
private _viewModel: FileBrowserViewModel;
|
||||||
@@ -52,13 +53,14 @@ export class FileBrowserDialog extends Modal {
|
|||||||
|
|
||||||
constructor(title: string,
|
constructor(title: string,
|
||||||
@IPartService partService: IPartService,
|
@IPartService partService: IPartService,
|
||||||
@IWorkbenchThemeService private _themeService: IWorkbenchThemeService,
|
@IWorkbenchThemeService private _workbenchthemeService: IWorkbenchThemeService,
|
||||||
@IInstantiationService private _instantiationService: IInstantiationService,
|
@IInstantiationService private _instantiationService: IInstantiationService,
|
||||||
@IContextViewService private _contextViewService: IContextViewService,
|
@IContextViewService private _contextViewService: IContextViewService,
|
||||||
@ITelemetryService telemetryService: ITelemetryService,
|
@ITelemetryService telemetryService: ITelemetryService,
|
||||||
@IContextKeyService contextKeyService: IContextKeyService
|
@IContextKeyService contextKeyService: IContextKeyService,
|
||||||
|
@IClipboardService clipboardService: IClipboardService
|
||||||
) {
|
) {
|
||||||
super(title, TelemetryKeys.Backup, partService, telemetryService, contextKeyService, { isFlyout: true, hasTitleIcon: false, hasBackButton: true, hasSpinner: true });
|
super(title, TelemetryKeys.Backup, partService, telemetryService, clipboardService, _workbenchthemeService, contextKeyService, { isFlyout: true, hasTitleIcon: false, hasBackButton: true, hasSpinner: true });
|
||||||
this._viewModel = this._instantiationService.createInstance(FileBrowserViewModel);
|
this._viewModel = this._instantiationService.createInstance(FileBrowserViewModel);
|
||||||
this._viewModel.onAddFileTree(args => this.handleOnAddFileTree(args.rootNode, args.selectedNode, args.expandedNodes));
|
this._viewModel.onAddFileTree(args => this.handleOnAddFileTree(args.rootNode, args.selectedNode, args.expandedNodes));
|
||||||
this._viewModel.onPathValidate(args => this.handleOnValidate(args.succeeded, args.message));
|
this._viewModel.onPathValidate(args => this.handleOnValidate(args.succeeded, args.message));
|
||||||
@@ -236,7 +238,7 @@ export class FileBrowserDialog extends Modal {
|
|||||||
this._register(attachButtonStyler(this._okButton, this._themeService));
|
this._register(attachButtonStyler(this._okButton, this._themeService));
|
||||||
this._register(attachButtonStyler(this._cancelButton, this._themeService));
|
this._register(attachButtonStyler(this._cancelButton, this._themeService));
|
||||||
|
|
||||||
this._register(this._themeService.onDidColorThemeChange(e => this.updateTheme()));
|
this._register(this._workbenchthemeService.onDidColorThemeChange(e => this.updateTheme()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update theming that is specific to file browser
|
// Update theming that is specific to file browser
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
div.qp-node {
|
div.qp-node {
|
||||||
background-color: #FFFFCC;
|
|
||||||
margin: 2px;
|
margin: 2px;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
border: 1px solid black;
|
border: 1px solid;
|
||||||
}
|
}
|
||||||
div.qp-statement-header {
|
div.qp-statement-header {
|
||||||
margin: 2px;
|
margin: 2px;
|
||||||
@@ -33,8 +32,7 @@ div[class|='qp-icon'] {
|
|||||||
.qp-tt {
|
.qp-tt {
|
||||||
top: 4em;
|
top: 4em;
|
||||||
left: 2em;
|
left: 2em;
|
||||||
border: 1px solid black;
|
border: 1px solid;
|
||||||
background-color: #FFFFEE;
|
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
width: 30em;
|
width: 30em;
|
||||||
}
|
}
|
||||||
@@ -56,7 +54,7 @@ div[class|='qp-icon'] {
|
|||||||
.qp-tt td,
|
.qp-tt td,
|
||||||
.qp-tt th {
|
.qp-tt th {
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
border-bottom: solid 1px Black;
|
border-bottom: solid 1px;
|
||||||
padding: 1px;
|
padding: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,8 +202,6 @@ div.qp-node:hover .qp-tt {
|
|||||||
.qp-root {
|
.qp-root {
|
||||||
display: table;
|
display: table;
|
||||||
position: relative;
|
position: relative;
|
||||||
background-color: #fff;
|
|
||||||
color: #000;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.qp-root svg {
|
.qp-root svg {
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
|
|||||||
import { ICommandService } from 'vs/platform/commands/common/commands';
|
import { ICommandService } from 'vs/platform/commands/common/commands';
|
||||||
import { MenuRegistry, ExecuteCommandAction } from 'vs/platform/actions/common/actions';
|
import { MenuRegistry, ExecuteCommandAction } from 'vs/platform/actions/common/actions';
|
||||||
import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService';
|
import { ICapabilitiesService } from 'sql/services/capabilities/capabilitiesService';
|
||||||
|
import { IClipboardService } from 'sql/platform/clipboard/common/clipboardService';
|
||||||
|
|
||||||
const labelDisplay = nls.localize("insights.item", "Item");
|
const labelDisplay = nls.localize("insights.item", "Item");
|
||||||
const valueDisplay = nls.localize("insights.value", "Value");
|
const valueDisplay = nls.localize("insights.value", "Value");
|
||||||
@@ -124,16 +125,17 @@ export class InsightsDialogView extends Modal {
|
|||||||
constructor(
|
constructor(
|
||||||
private _model: IInsightsDialogModel,
|
private _model: IInsightsDialogModel,
|
||||||
@IInstantiationService private _instantiationService: IInstantiationService,
|
@IInstantiationService private _instantiationService: IInstantiationService,
|
||||||
@IThemeService private _themeService: IThemeService,
|
@IThemeService themeService: IThemeService,
|
||||||
@IListService private _listService: IListService,
|
@IListService private _listService: IListService,
|
||||||
@IPartService partService: IPartService,
|
@IPartService partService: IPartService,
|
||||||
@IContextMenuService private _contextMenuService: IContextMenuService,
|
@IContextMenuService private _contextMenuService: IContextMenuService,
|
||||||
@ITelemetryService telemetryService: ITelemetryService,
|
@ITelemetryService telemetryService: ITelemetryService,
|
||||||
@IContextKeyService contextKeyService: IContextKeyService,
|
@IContextKeyService contextKeyService: IContextKeyService,
|
||||||
@ICommandService private _commandService: ICommandService,
|
@ICommandService private _commandService: ICommandService,
|
||||||
@ICapabilitiesService private _capabilitiesService: ICapabilitiesService
|
@ICapabilitiesService private _capabilitiesService: ICapabilitiesService,
|
||||||
|
@IClipboardService clipboardService: IClipboardService
|
||||||
) {
|
) {
|
||||||
super(nls.localize("InsightsDialogTitle", "Insights"), TelemetryKeys.Insights, partService, telemetryService, contextKeyService);
|
super(nls.localize("InsightsDialogTitle", "Insights"), TelemetryKeys.Insights, partService, telemetryService, clipboardService, themeService, contextKeyService);
|
||||||
this._model.onDataChange(e => this.build());
|
this._model.onDataChange(e => this.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
import * as sqlops from 'sqlops';
|
import * as sqlops from 'sqlops';
|
||||||
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { JobCacheObject } from './jobManagementService';
|
import { JobCacheObject, AlertsCacheObject, ProxiesCacheObject, OperatorsCacheObject } from './jobManagementService';
|
||||||
import { Event } from 'vs/base/common/event';
|
import { Event } from 'vs/base/common/event';
|
||||||
|
|
||||||
export const SERVICE_ID = 'jobManagementService';
|
export const SERVICE_ID = 'jobManagementService';
|
||||||
@@ -22,7 +22,7 @@ export interface IJobManagementService {
|
|||||||
fireOnDidChange(): void;
|
fireOnDidChange(): void;
|
||||||
|
|
||||||
getJobs(connectionUri: string): Thenable<sqlops.AgentJobsResult>;
|
getJobs(connectionUri: string): Thenable<sqlops.AgentJobsResult>;
|
||||||
getJobHistory(connectionUri: string, jobID: string): Thenable<sqlops.AgentJobHistoryResult>;
|
getJobHistory(connectionUri: string, jobID: string, jobName: string): Thenable<sqlops.AgentJobHistoryResult>;
|
||||||
deleteJob(connectionUri: string, job: sqlops.AgentJobInfo): Thenable<sqlops.ResultStatus>;
|
deleteJob(connectionUri: string, job: sqlops.AgentJobInfo): Thenable<sqlops.ResultStatus>;
|
||||||
|
|
||||||
deleteJobStep(connectionUri: string, step: sqlops.AgentJobStepInfo): Thenable<sqlops.ResultStatus>;
|
deleteJobStep(connectionUri: string, step: sqlops.AgentJobStepInfo): Thenable<sqlops.ResultStatus>;
|
||||||
@@ -39,6 +39,10 @@ export interface IJobManagementService {
|
|||||||
getCredentials(connectionUri: string): Thenable<sqlops.GetCredentialsResult>;
|
getCredentials(connectionUri: string): Thenable<sqlops.GetCredentialsResult>;
|
||||||
|
|
||||||
jobAction(connectionUri: string, jobName: string, action: string): Thenable<sqlops.ResultStatus>;
|
jobAction(connectionUri: string, jobName: string, action: string): Thenable<sqlops.ResultStatus>;
|
||||||
addToCache(server: string, cache: JobCacheObject);
|
addToCache(server: string, cache: JobCacheObject | OperatorsCacheObject);
|
||||||
jobCacheObjectMap: { [server: string]: JobCacheObject; };
|
jobCacheObjectMap: { [server: string]: JobCacheObject; };
|
||||||
|
operatorsCacheObjectMap: { [server: string]: OperatorsCacheObject; };
|
||||||
|
alertsCacheObjectMap: { [server: string]: AlertsCacheObject; };
|
||||||
|
proxiesCacheObjectMap: {[server: string]: ProxiesCacheObject };
|
||||||
|
addToCache(server: string, cache: JobCacheObject | ProxiesCacheObject | AlertsCacheObject | OperatorsCacheObject);
|
||||||
}
|
}
|
||||||
@@ -219,14 +219,10 @@ export class NewStepAction extends Action {
|
|||||||
|
|
||||||
public run(context: JobHistoryComponent): TPromise<boolean> {
|
public run(context: JobHistoryComponent): TPromise<boolean> {
|
||||||
let ownerUri = context.ownerUri;
|
let ownerUri = context.ownerUri;
|
||||||
let jobName = context.agentJobInfo.name;
|
|
||||||
let server = context.serverName;
|
let server = context.serverName;
|
||||||
let stepId = 0;
|
let jobInfo = context.agentJobInfo;
|
||||||
if (context.agentJobHistoryInfo && context.agentJobHistoryInfo.steps) {
|
|
||||||
stepId = context.agentJobHistoryInfo.steps.length + 1;
|
|
||||||
}
|
|
||||||
return new TPromise<boolean>((resolve, reject) => {
|
return new TPromise<boolean>((resolve, reject) => {
|
||||||
resolve(this._commandService.executeCommand('agent.openNewStepDialog', ownerUri, jobName, server, stepId));
|
resolve(this._commandService.executeCommand('agent.openNewStepDialog', ownerUri, server, jobInfo , null));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,10 @@ export class JobManagementService implements IJobManagementService {
|
|||||||
public readonly onDidChange: Event<void> = this._onDidChange.event;
|
public readonly onDidChange: Event<void> = this._onDidChange.event;
|
||||||
|
|
||||||
private _providers: { [handle: string]: sqlops.AgentServicesProvider; } = Object.create(null);
|
private _providers: { [handle: string]: sqlops.AgentServicesProvider; } = Object.create(null);
|
||||||
private _jobCacheObject : {[server: string]: JobCacheObject; } = {};
|
private _jobCacheObjectMap : {[server: string]: JobCacheObject; } = {};
|
||||||
|
private _operatorsCacheObjectMap: {[server: string]: OperatorsCacheObject; } = {};
|
||||||
|
private _alertsCacheObject: {[server: string]: AlertsCacheObject; } = {};
|
||||||
|
private _proxiesCacheObjectMap: {[server: string]: ProxiesCacheObject; } = {};
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@IConnectionManagementService private _connectionService: IConnectionManagementService
|
@IConnectionManagementService private _connectionService: IConnectionManagementService
|
||||||
@@ -43,9 +46,9 @@ export class JobManagementService implements IJobManagementService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public getJobHistory(connectionUri: string, jobID: string): Thenable<sqlops.AgentJobHistoryResult> {
|
public getJobHistory(connectionUri: string, jobID: string, jobName: string): Thenable<sqlops.AgentJobHistoryResult> {
|
||||||
return this._runAction(connectionUri, (runner) => {
|
return this._runAction(connectionUri, (runner) => {
|
||||||
return runner.getJobHistory(connectionUri, jobID);
|
return runner.getJobHistory(connectionUri, jobID, jobName);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -127,21 +130,44 @@ export class JobManagementService implements IJobManagementService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public get jobCacheObjectMap(): {[server: string]: JobCacheObject;} {
|
public get jobCacheObjectMap(): {[server: string]: JobCacheObject;} {
|
||||||
return this._jobCacheObject;
|
return this._jobCacheObjectMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
public addToCache(server: string, cacheObject: JobCacheObject) {
|
public get alertsCacheObjectMap(): {[server: string]: AlertsCacheObject; } {
|
||||||
this._jobCacheObject[server] = cacheObject;
|
return this._alertsCacheObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get proxiesCacheObjectMap(): {[server: string]: ProxiesCacheObject; } {
|
||||||
|
return this._proxiesCacheObjectMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get operatorsCacheObjectMap(): {[server: string]: OperatorsCacheObject} {
|
||||||
|
return this._operatorsCacheObjectMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public addToCache(server: string, cacheObject: JobCacheObject | OperatorsCacheObject | ProxiesCacheObject | AlertsCacheObject) {
|
||||||
|
if (cacheObject instanceof JobCacheObject) {
|
||||||
|
this._jobCacheObjectMap[server] = cacheObject;
|
||||||
|
} else if (cacheObject instanceof OperatorsCacheObject) {
|
||||||
|
this._operatorsCacheObjectMap[server] = cacheObject;
|
||||||
|
} else if (cacheObject instanceof AlertsCacheObject) {
|
||||||
|
this._alertsCacheObject[server] = cacheObject;
|
||||||
|
} else if (cacheObject instanceof ProxiesCacheObject) {
|
||||||
|
this._proxiesCacheObjectMap[server] = cacheObject;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Server level caching of jobs/job histories
|
* Server level caching of jobs/job histories and their views
|
||||||
*/
|
*/
|
||||||
export class JobCacheObject {
|
export class JobCacheObject {
|
||||||
_serviceBrand: any;
|
_serviceBrand: any;
|
||||||
private _jobs: sqlops.AgentJobInfo[] = [];
|
private _jobs: sqlops.AgentJobInfo[] = [];
|
||||||
private _jobHistories: { [jobID: string]: sqlops.AgentJobHistoryInfo[]; } = {};
|
private _jobHistories: { [jobID: string]: sqlops.AgentJobHistoryInfo[]; } = {};
|
||||||
|
private _jobSteps: { [jobID: string]: sqlops.AgentJobStepInfo[]; } = {};
|
||||||
|
private _jobAlerts: { [jobID: string]: sqlops.AgentAlertInfo[]; } = {};
|
||||||
|
private _jobSchedules: { [jobID: string]: sqlops.AgentJobScheduleInfo[]; } = {};
|
||||||
private _runCharts: { [jobID: string]: string[]; } = {};
|
private _runCharts: { [jobID: string]: string[]; } = {};
|
||||||
private _prevJobID: string;
|
private _prevJobID: string;
|
||||||
private _serverName: string;
|
private _serverName: string;
|
||||||
@@ -176,6 +202,18 @@ export class JobCacheObject {
|
|||||||
return this._runCharts[jobID];
|
return this._runCharts[jobID];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getJobSteps(jobID: string): sqlops.AgentJobStepInfo[] {
|
||||||
|
return this._jobSteps[jobID];
|
||||||
|
}
|
||||||
|
|
||||||
|
public getJobAlerts(jobID: string): sqlops.AgentAlertInfo[] {
|
||||||
|
return this._jobAlerts[jobID];
|
||||||
|
}
|
||||||
|
|
||||||
|
public getJobSchedules(jobID: string): sqlops.AgentJobScheduleInfo[] {
|
||||||
|
return this._jobSchedules[jobID];
|
||||||
|
}
|
||||||
|
|
||||||
/* Setters */
|
/* Setters */
|
||||||
public set jobs(value: sqlops.AgentJobInfo[]) {
|
public set jobs(value: sqlops.AgentJobInfo[]) {
|
||||||
this._jobs = value;
|
this._jobs = value;
|
||||||
@@ -204,4 +242,129 @@ export class JobCacheObject {
|
|||||||
public set dataView(value: Slick.Data.DataView<any>) {
|
public set dataView(value: Slick.Data.DataView<any>) {
|
||||||
this._dataView = value;
|
this._dataView = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public setJobSteps(jobID: string, value: sqlops.AgentJobStepInfo[]) {
|
||||||
|
this._jobSteps[jobID] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public setJobAlerts(jobID: string, value: sqlops.AgentAlertInfo[]) {
|
||||||
|
this._jobAlerts[jobID] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public setJobSchedules(jobID: string, value: sqlops.AgentJobScheduleInfo[]) {
|
||||||
|
this._jobSchedules[jobID] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Server level caching of Operators
|
||||||
|
*/
|
||||||
|
export class OperatorsCacheObject {
|
||||||
|
_serviceBrand: any;
|
||||||
|
private _operators: sqlops.AgentOperatorInfo[];
|
||||||
|
private _dataView: Slick.Data.DataView<any>;
|
||||||
|
private _serverName: string;
|
||||||
|
|
||||||
|
/** Getters */
|
||||||
|
public get operators(): sqlops.AgentOperatorInfo[] {
|
||||||
|
return this._operators;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get dataview(): Slick.Data.DataView<any> {
|
||||||
|
return this._dataView;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get serverName(): string {
|
||||||
|
return this._serverName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Setters */
|
||||||
|
public set operators(value: sqlops.AgentOperatorInfo[]) {
|
||||||
|
this._operators = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public set dataview(value: Slick.Data.DataView<any>) {
|
||||||
|
this._dataView = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public set serverName(value: string) {
|
||||||
|
this._serverName = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Server level caching of job alerts and the alerts view
|
||||||
|
*/
|
||||||
|
export class AlertsCacheObject {
|
||||||
|
_serviceBrand: any;
|
||||||
|
private _alerts: sqlops.AgentAlertInfo[];
|
||||||
|
private _dataView: Slick.Data.DataView<any>;
|
||||||
|
private _serverName: string;
|
||||||
|
|
||||||
|
/** Getters */
|
||||||
|
public get alerts(): sqlops.AgentAlertInfo[] {
|
||||||
|
return this._alerts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get dataview(): Slick.Data.DataView<any> {
|
||||||
|
return this._dataView;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get serverName(): string {
|
||||||
|
return this._serverName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Setters */
|
||||||
|
public set alerts(value: sqlops.AgentAlertInfo[]) {
|
||||||
|
this._alerts = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public set dataview(value: Slick.Data.DataView<any>) {
|
||||||
|
this._dataView = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public set serverName(value: string) {
|
||||||
|
this._serverName = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Server level caching of job proxies and proxies view
|
||||||
|
*/
|
||||||
|
export class ProxiesCacheObject {
|
||||||
|
_serviceBrand: any;
|
||||||
|
private _proxies: sqlops.AgentProxyInfo[];
|
||||||
|
private _dataView: Slick.Data.DataView<any>;
|
||||||
|
private _serverName: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getters
|
||||||
|
*/
|
||||||
|
public get proxies(): sqlops.AgentProxyInfo[] {
|
||||||
|
return this._proxies;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get dataview(): Slick.Data.DataView<any> {
|
||||||
|
return this._dataView;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get serverName(): string {
|
||||||
|
return this._serverName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Setters */
|
||||||
|
|
||||||
|
public set proxies(value: sqlops.AgentProxyInfo[]) {
|
||||||
|
this._proxies = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public set dataview(value: Slick.Data.DataView<any>) {
|
||||||
|
this._dataView = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public set serverName(value: string) {
|
||||||
|
this._serverName = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -104,6 +104,16 @@ jobhistory-component {
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#operatorsDiv .joboperatorsview-grid .slick-cell.l1.r1 .operatorview-operatornametext,
|
||||||
|
#alertsDiv .jobalertsview-grid .slick-cell.l1.r1 .alertview-alertnametext,
|
||||||
|
#proxiesDiv .jobproxiesview-grid .slick-cell.l1.r1 .proxyview-proxynametext {
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
#jobsDiv .job-with-error {
|
#jobsDiv .job-with-error {
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
@@ -391,3 +401,17 @@ jobsview-component .jobview-grid .slick-cell.error-row {
|
|||||||
.overview-container > .overview-tab > label {
|
.overview-container > .overview-tab > label {
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#operatorsDiv .operatorview-operatornameindicatorenabled,
|
||||||
|
#alertsDiv .alertview-alertnameindicatorenabled,
|
||||||
|
#proxiesDiv .proxyview-proxynameindicatorenabled {
|
||||||
|
width: 5px;
|
||||||
|
background: green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#operatorsDiv .operatorview-operatornameindicatordisabled,
|
||||||
|
#alertsDiv .alertview-alertnameindicatordisabled,
|
||||||
|
#proxiesDiv .proxyview-proxynameindicatordisabled {
|
||||||
|
width: 5px;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
@@ -30,9 +30,11 @@ import { TPromise } from 'vs/base/common/winjs.base';
|
|||||||
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
|
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
|
||||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { IDashboardService } from 'sql/services/dashboard/common/dashboardService';
|
import { IDashboardService } from 'sql/services/dashboard/common/dashboardService';
|
||||||
|
import { AlertsCacheObject } from 'sql/parts/jobManagement/common/jobManagementService';
|
||||||
|
import { RowDetailView } from 'sql/base/browser/ui/table/plugins/rowdetailview';
|
||||||
|
|
||||||
export const VIEW_SELECTOR: string = 'jobalertsview-component';
|
export const VIEW_SELECTOR: string = 'jobalertsview-component';
|
||||||
export const ROW_HEIGHT: number = 30;
|
export const ROW_HEIGHT: number = 45;
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: VIEW_SELECTOR,
|
selector: VIEW_SELECTOR,
|
||||||
@@ -42,11 +44,17 @@ export const ROW_HEIGHT: number = 30;
|
|||||||
export class AlertsViewComponent extends JobManagementView implements OnInit {
|
export class AlertsViewComponent extends JobManagementView implements OnInit {
|
||||||
|
|
||||||
private columns: Array<Slick.Column<any>> = [
|
private columns: Array<Slick.Column<any>> = [
|
||||||
{ name: nls.localize('jobAlertColumns.name', 'Name'), field: 'name', width: 200, id: 'name' },
|
{
|
||||||
{ name: nls.localize('jobAlertColumns.lastOccurrenceDate', 'Last Occurrence'), field: 'lastOccurrenceDate', width: 200, id: 'lastOccurrenceDate' },
|
name: nls.localize('jobAlertColumns.name', 'Name'),
|
||||||
{ name: nls.localize('jobAlertColumns.enabled', 'Enabled'), field: 'enabled', width: 200, id: 'enabled' },
|
field: 'name',
|
||||||
{ name: nls.localize('jobAlertColumns.databaseName', 'Database Name'), field: 'databaseName', width: 200, id: 'databaseName' },
|
formatter: (row, cell, value, columnDef, dataContext) => this.renderName(row, cell, value, columnDef, dataContext),
|
||||||
{ name: nls.localize('jobAlertColumns.categoryName', 'Category Name'), field: 'categoryName', width: 200, id: 'categoryName' },
|
width: 500,
|
||||||
|
id: 'name'
|
||||||
|
},
|
||||||
|
{ name: nls.localize('jobAlertColumns.lastOccurrenceDate', 'Last Occurrence'), field: 'lastOccurrenceDate', width: 150, id: 'lastOccurrenceDate' },
|
||||||
|
{ name: nls.localize('jobAlertColumns.enabled', 'Enabled'), field: 'enabled', width: 80, id: 'enabled' },
|
||||||
|
{ name: nls.localize('jobAlertColumns.delayBetweenResponses', 'Delay Between Responses (in secs)'), field: 'delayBetweenResponses', width: 200, id: 'delayBetweenResponses' },
|
||||||
|
{ name: nls.localize('jobAlertColumns.categoryName', 'Category Name'), field: 'categoryName', width: 250, id: 'categoryName' },
|
||||||
];
|
];
|
||||||
|
|
||||||
private options: Slick.GridOptions<any> = {
|
private options: Slick.GridOptions<any> = {
|
||||||
@@ -59,6 +67,7 @@ export class AlertsViewComponent extends JobManagementView implements OnInit {
|
|||||||
|
|
||||||
private dataView: any;
|
private dataView: any;
|
||||||
private _isCloud: boolean;
|
private _isCloud: boolean;
|
||||||
|
private _alertsCacheObject: AlertsCacheObject;
|
||||||
|
|
||||||
@ViewChild('jobalertsgrid') _gridEl: ElementRef;
|
@ViewChild('jobalertsgrid') _gridEl: ElementRef;
|
||||||
|
|
||||||
@@ -78,6 +87,15 @@ export class AlertsViewComponent extends JobManagementView implements OnInit {
|
|||||||
@Inject(IDashboardService) _dashboardService: IDashboardService) {
|
@Inject(IDashboardService) _dashboardService: IDashboardService) {
|
||||||
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService);
|
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService);
|
||||||
this._isCloud = commonService.connectionManagementService.connectionInfo.serverInfo.isCloud;
|
this._isCloud = commonService.connectionManagementService.connectionInfo.serverInfo.isCloud;
|
||||||
|
let alertsCacheObjectMap = this._jobManagementService.alertsCacheObjectMap;
|
||||||
|
let alertsCache = alertsCacheObjectMap[this._serverName];
|
||||||
|
if (alertsCache) {
|
||||||
|
this._alertsCacheObject = alertsCache;
|
||||||
|
} else {
|
||||||
|
this._alertsCacheObject = new AlertsCacheObject();
|
||||||
|
this._alertsCacheObject.serverName = this._serverName;
|
||||||
|
this._jobManagementService.addToCache(this._serverName, this._alertsCacheObject);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(){
|
ngOnInit(){
|
||||||
@@ -92,45 +110,68 @@ export class AlertsViewComponent extends JobManagementView implements OnInit {
|
|||||||
height = 0;
|
height = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this._table) {
|
||||||
this._table.layout(new dom.Dimension(
|
this._table.layout(new dom.Dimension(
|
||||||
dom.getContentWidth(this._gridEl.nativeElement),
|
dom.getContentWidth(this._gridEl.nativeElement),
|
||||||
height));
|
height));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onFirstVisible() {
|
onFirstVisible() {
|
||||||
let self = this;
|
let self = this;
|
||||||
|
let cached: boolean = false;
|
||||||
|
if (this._alertsCacheObject.serverName === this._serverName) {
|
||||||
|
if (this._alertsCacheObject.alerts && this._alertsCacheObject.alerts.length > 0) {
|
||||||
|
cached = true;
|
||||||
|
this.alerts = this._alertsCacheObject.alerts;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let columns = this.columns.map((column) => {
|
let columns = this.columns.map((column) => {
|
||||||
column.rerenderOnResize = true;
|
column.rerenderOnResize = true;
|
||||||
return column;
|
return column;
|
||||||
});
|
});
|
||||||
|
|
||||||
this.dataView = new Slick.Data.DataView();
|
this.dataView = new Slick.Data.DataView({ inlineFilters: false });
|
||||||
|
let rowDetail = new RowDetailView({
|
||||||
|
cssClass: '_detail_selector',
|
||||||
|
useRowClick: false,
|
||||||
|
panelRows: 1
|
||||||
|
});
|
||||||
|
columns.unshift(rowDetail.getColumnDefinition());
|
||||||
$(this._gridEl.nativeElement).empty();
|
$(this._gridEl.nativeElement).empty();
|
||||||
$(this.actionBarContainer.nativeElement).empty();
|
$(this.actionBarContainer.nativeElement).empty();
|
||||||
this.initActionBar();
|
this.initActionBar();
|
||||||
this._table = new Table(this._gridEl.nativeElement, {columns}, this.options);
|
this._table = new Table(this._gridEl.nativeElement, {columns}, this.options);
|
||||||
this._table.grid.setData(this.dataView, true);
|
this._table.grid.setData(this.dataView, true);
|
||||||
|
|
||||||
this._register(this._table.onContextMenu(e => {
|
this._register(this._table.onContextMenu(e => {
|
||||||
self.openContextMenu(e);
|
self.openContextMenu(e);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// check for cached state
|
||||||
|
if (cached && this._agentViewComponent.refresh !== true) {
|
||||||
|
self.onAlertsAvailable(this.alerts);
|
||||||
|
this._showProgressWheel = false;
|
||||||
|
if (this.isVisible) {
|
||||||
|
this._cd.detectChanges();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
||||||
this._jobManagementService.getAlerts(ownerUri).then((result) => {
|
this._jobManagementService.getAlerts(ownerUri).then((result) => {
|
||||||
if (result && result.alerts) {
|
if (result && result.alerts) {
|
||||||
self.alerts = result.alerts;
|
self.alerts = result.alerts;
|
||||||
|
self._alertsCacheObject.alerts = result.alerts;
|
||||||
self.onAlertsAvailable(result.alerts);
|
self.onAlertsAvailable(result.alerts);
|
||||||
} else {
|
} else {
|
||||||
// TODO: handle error
|
// TODO: handle error
|
||||||
}
|
}
|
||||||
|
|
||||||
this._showProgressWheel = false;
|
this._showProgressWheel = false;
|
||||||
if (this.isVisible) {
|
if (this.isVisible) {
|
||||||
this._cd.detectChanges();
|
this._cd.detectChanges();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private onAlertsAvailable(alerts: sqlops.AgentAlertInfo[]) {
|
private onAlertsAvailable(alerts: sqlops.AgentAlertInfo[]) {
|
||||||
let items: any = alerts.map((item) => {
|
let items: any = alerts.map((item) => {
|
||||||
@@ -139,7 +180,7 @@ export class AlertsViewComponent extends JobManagementView implements OnInit {
|
|||||||
name: item.name,
|
name: item.name,
|
||||||
lastOccurrenceDate: item.lastOccurrenceDate,
|
lastOccurrenceDate: item.lastOccurrenceDate,
|
||||||
enabled: item.isEnabled,
|
enabled: item.isEnabled,
|
||||||
databaseName: item.databaseName,
|
delayBetweenResponses: item.delayBetweenResponses,
|
||||||
categoryName: item.categoryName
|
categoryName: item.categoryName
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@@ -147,6 +188,7 @@ export class AlertsViewComponent extends JobManagementView implements OnInit {
|
|||||||
this.dataView.beginUpdate();
|
this.dataView.beginUpdate();
|
||||||
this.dataView.setItems(items);
|
this.dataView.setItems(items);
|
||||||
this.dataView.endUpdate();
|
this.dataView.endUpdate();
|
||||||
|
this._alertsCacheObject.dataview = this.dataView;
|
||||||
this._table.autosizeColumns();
|
this._table.autosizeColumns();
|
||||||
this._table.resizeCanvas();
|
this._table.resizeCanvas();
|
||||||
}
|
}
|
||||||
@@ -164,6 +206,17 @@ export class AlertsViewComponent extends JobManagementView implements OnInit {
|
|||||||
: undefined;
|
: undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private renderName(row, cell, value, columnDef, dataContext) {
|
||||||
|
let resultIndicatorClass = dataContext.enabled ? 'alertview-alertnameindicatorenabled' :
|
||||||
|
'alertview-alertnameindicatordisabled';
|
||||||
|
|
||||||
|
return '<table class="alertview-alertnametable"><tr class="alertview-alertnamerow">' +
|
||||||
|
'<td nowrap class=' + resultIndicatorClass + '></td>' +
|
||||||
|
'<td nowrap class="alertview-alertnametext">' + dataContext.name + '</td>' +
|
||||||
|
'</tr></table>';
|
||||||
|
}
|
||||||
|
|
||||||
public openCreateAlertDialog() {
|
public openCreateAlertDialog() {
|
||||||
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
||||||
this._jobManagementService.getJobs(ownerUri).then((result) => {
|
this._jobManagementService.getJobs(ownerUri).then((result) => {
|
||||||
|
|||||||
@@ -63,7 +63,6 @@ export class JobHistoryComponent extends JobManagementView implements OnInit {
|
|||||||
private _jobCacheObject: JobCacheObject;
|
private _jobCacheObject: JobCacheObject;
|
||||||
private _agentJobInfo: sqlops.AgentJobInfo;
|
private _agentJobInfo: sqlops.AgentJobInfo;
|
||||||
private _noJobsAvailable: boolean = false;
|
private _noJobsAvailable: boolean = false;
|
||||||
private _serverName: string;
|
|
||||||
|
|
||||||
private static readonly INITIAL_TREE_HEIGHT: number = 780;
|
private static readonly INITIAL_TREE_HEIGHT: number = 780;
|
||||||
private static readonly HEADING_HEIGHT: number = 24;
|
private static readonly HEADING_HEIGHT: number = 24;
|
||||||
@@ -150,16 +149,17 @@ export class JobHistoryComponent extends JobManagementView implements OnInit {
|
|||||||
private loadHistory() {
|
private loadHistory() {
|
||||||
const self = this;
|
const self = this;
|
||||||
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
||||||
this._jobManagementService.getJobHistory(ownerUri, this._agentViewComponent.jobId).then((result) => {
|
let jobName = this._agentViewComponent.agentJobInfo.name;
|
||||||
if (result && result.jobs) {
|
this._jobManagementService.getJobHistory(ownerUri, this._agentViewComponent.jobId, jobName).then((result) => {
|
||||||
if (result.jobs.length > 0) {
|
if (result && result.histories) {
|
||||||
|
if (result.histories.length > 0) {
|
||||||
self._showPreviousRuns = true;
|
self._showPreviousRuns = true;
|
||||||
self.buildHistoryTree(self, result.jobs);
|
self.buildHistoryTree(self, result.histories);
|
||||||
if (self._agentViewComponent.showHistory) {
|
if (self._agentViewComponent.showHistory) {
|
||||||
self._cd.detectChanges();
|
self._cd.detectChanges();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self._jobCacheObject.setJobHistory(self._agentViewComponent.jobId, result.jobs);
|
self._jobCacheObject.setJobHistory(self._agentViewComponent.jobId, result.histories);
|
||||||
self._showPreviousRuns = false;
|
self._showPreviousRuns = false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ export abstract class JobManagementView extends TabChild implements AfterContent
|
|||||||
protected _parentComponent: AgentViewComponent;
|
protected _parentComponent: AgentViewComponent;
|
||||||
protected _table: Table<any>;
|
protected _table: Table<any>;
|
||||||
protected _actionBar: Taskbar;
|
protected _actionBar: Taskbar;
|
||||||
|
protected _serverName: string;
|
||||||
public contextAction: any;
|
public contextAction: any;
|
||||||
|
|
||||||
@ViewChild('actionbarContainer') protected actionBarContainer: ElementRef;
|
@ViewChild('actionbarContainer') protected actionBarContainer: ElementRef;
|
||||||
@@ -41,6 +42,7 @@ export abstract class JobManagementView extends TabChild implements AfterContent
|
|||||||
super();
|
super();
|
||||||
|
|
||||||
let self = this;
|
let self = this;
|
||||||
|
this._serverName = this._commonService.connectionManagementService.connectionInfo.connectionProfile.serverName;
|
||||||
this._dashboardService.onLayout((d) => {
|
this._dashboardService.onLayout((d) => {
|
||||||
self.layout();
|
self.layout();
|
||||||
});
|
});
|
||||||
@@ -53,6 +55,7 @@ export abstract class JobManagementView extends TabChild implements AfterContent
|
|||||||
if (!this.isInitialized) {
|
if (!this.isInitialized) {
|
||||||
this._showProgressWheel = true;
|
this._showProgressWheel = true;
|
||||||
this.onFirstVisible();
|
this.onFirstVisible();
|
||||||
|
this.layout();
|
||||||
this.isInitialized = true;
|
this.isInitialized = true;
|
||||||
}
|
}
|
||||||
} else if (this.isVisible === true && this._parentComponent.refresh === true) {
|
} else if (this.isVisible === true && this._parentComponent.refresh === true) {
|
||||||
|
|||||||
@@ -36,8 +36,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
|
|||||||
import { IDashboardService } from 'sql/services/dashboard/common/dashboardService';
|
import { IDashboardService } from 'sql/services/dashboard/common/dashboardService';
|
||||||
import { escape } from 'sql/base/common/strings';
|
import { escape } from 'sql/base/common/strings';
|
||||||
import { IWorkbenchThemeService, IColorTheme } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
import { IWorkbenchThemeService, IColorTheme } from 'vs/workbench/services/themes/common/workbenchThemeService';
|
||||||
import { tableBackground, cellBackground, tableHoverBackground, jobsHeadingBackground, cellBorderColor } from 'sql/common/theme/colors';
|
import { tableBackground, cellBackground, cellBorderColor } from 'sql/common/theme/colors';
|
||||||
import { JobStepsViewRow } from 'sql/parts/jobManagement/views/jobStepsViewTree';
|
|
||||||
|
|
||||||
export const JOBSVIEW_SELECTOR: string = 'jobsview-component';
|
export const JOBSVIEW_SELECTOR: string = 'jobsview-component';
|
||||||
export const ROW_HEIGHT: number = 45;
|
export const ROW_HEIGHT: number = 45;
|
||||||
@@ -79,7 +78,6 @@ export class JobsViewComponent extends JobManagementView implements OnInit {
|
|||||||
private rowDetail: RowDetailView;
|
private rowDetail: RowDetailView;
|
||||||
private filterPlugin: any;
|
private filterPlugin: any;
|
||||||
private dataView: any;
|
private dataView: any;
|
||||||
private _serverName: string;
|
|
||||||
private _isCloud: boolean;
|
private _isCloud: boolean;
|
||||||
private filterStylingMap: { [columnName: string]: [any]; } = {};
|
private filterStylingMap: { [columnName: string]: [any]; } = {};
|
||||||
private filterStack = ['start'];
|
private filterStack = ['start'];
|
||||||
@@ -87,7 +85,10 @@ export class JobsViewComponent extends JobManagementView implements OnInit {
|
|||||||
private sortingStylingMap: { [columnName: string]: any; } = {};
|
private sortingStylingMap: { [columnName: string]: any; } = {};
|
||||||
|
|
||||||
public jobs: sqlops.AgentJobInfo[];
|
public jobs: sqlops.AgentJobInfo[];
|
||||||
public jobHistories: { [jobId: string]: sqlops.AgentJobHistoryInfo[]; } = Object.create(null);
|
private jobHistories: { [jobId: string]: sqlops.AgentJobHistoryInfo[]; } = Object.create(null);
|
||||||
|
private jobSteps: { [jobId: string]: sqlops.AgentJobStepInfo[]; } = Object.create(null);
|
||||||
|
private jobAlerts: { [jobId: string]: sqlops.AgentAlertInfo[]; } = Object.create(null);
|
||||||
|
private jobSchedules: { [jobId: string]: sqlops.AgentJobScheduleInfo[]; } = Object.create(null);
|
||||||
public contextAction = NewJobAction;
|
public contextAction = NewJobAction;
|
||||||
|
|
||||||
@ViewChild('jobsgrid') _gridEl: ElementRef;
|
@ViewChild('jobsgrid') _gridEl: ElementRef;
|
||||||
@@ -107,7 +108,6 @@ export class JobsViewComponent extends JobManagementView implements OnInit {
|
|||||||
) {
|
) {
|
||||||
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService);
|
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService);
|
||||||
let jobCacheObjectMap = this._jobManagementService.jobCacheObjectMap;
|
let jobCacheObjectMap = this._jobManagementService.jobCacheObjectMap;
|
||||||
this._serverName = commonService.connectionManagementService.connectionInfo.connectionProfile.serverName;
|
|
||||||
let jobCache = jobCacheObjectMap[this._serverName];
|
let jobCache = jobCacheObjectMap[this._serverName];
|
||||||
if (jobCache) {
|
if (jobCache) {
|
||||||
this._jobCacheObject = jobCache;
|
this._jobCacheObject = jobCache;
|
||||||
@@ -579,10 +579,14 @@ export class JobsViewComponent extends JobManagementView implements OnInit {
|
|||||||
private async curateJobHistory(jobs: sqlops.AgentJobInfo[], ownerUri: string) {
|
private async curateJobHistory(jobs: sqlops.AgentJobInfo[], ownerUri: string) {
|
||||||
const self = this;
|
const self = this;
|
||||||
jobs.forEach(async (job) => {
|
jobs.forEach(async (job) => {
|
||||||
await this._jobManagementService.getJobHistory(ownerUri, job.jobId).then((result) => {
|
await this._jobManagementService.getJobHistory(ownerUri, job.jobId, job.name).then((result) => {
|
||||||
if (result && result.jobs) {
|
if (result) {
|
||||||
self.jobHistories[job.jobId] = result.jobs;
|
self.jobSteps[job.jobId] = result.steps ? result.steps : [];
|
||||||
self._jobCacheObject.setJobHistory(job.jobId, result.jobs);
|
self.jobAlerts[job.jobId] = result.alerts ? result.alerts : [];
|
||||||
|
self.jobSchedules[job.jobId] = result.schedules ? result.schedules : [];
|
||||||
|
self.jobHistories[job.jobId] = result.histories ? result.histories : [];
|
||||||
|
self._jobCacheObject.setJobSteps(job.jobId, self.jobSteps[job.jobId]);
|
||||||
|
self._jobCacheObject.setJobHistory(job.jobId, self.jobHistories[job.jobId]);
|
||||||
let jobHistories = self._jobCacheObject.getJobHistory(job.jobId);
|
let jobHistories = self._jobCacheObject.getJobHistory(job.jobId);
|
||||||
let previousRuns: sqlops.AgentJobHistoryInfo[];
|
let previousRuns: sqlops.AgentJobHistoryInfo[];
|
||||||
if (jobHistories.length >= 5) {
|
if (jobHistories.length >= 5) {
|
||||||
@@ -592,7 +596,7 @@ export class JobsViewComponent extends JobManagementView implements OnInit {
|
|||||||
}
|
}
|
||||||
self.createJobChart(job.jobId, previousRuns);
|
self.createJobChart(job.jobId, previousRuns);
|
||||||
if (self._agentViewComponent.expanded.has(job.jobId)) {
|
if (self._agentViewComponent.expanded.has(job.jobId)) {
|
||||||
let lastJobHistory = jobHistories[result.jobs.length - 1];
|
let lastJobHistory = jobHistories[jobHistories.length - 1];
|
||||||
let item = self.dataView.getItemById(job.jobId + '.error');
|
let item = self.dataView.getItemById(job.jobId + '.error');
|
||||||
let noStepsMessage = nls.localize('jobsView.noSteps', 'No Steps available for this job.');
|
let noStepsMessage = nls.localize('jobsView.noSteps', 'No Steps available for this job.');
|
||||||
let errorMessage = lastJobHistory ? lastJobHistory.message : noStepsMessage;
|
let errorMessage = lastJobHistory ? lastJobHistory.message : noStepsMessage;
|
||||||
@@ -909,51 +913,27 @@ export class JobsViewComponent extends JobManagementView implements OnInit {
|
|||||||
jobId = data.getItem(rowIndex - 1).jobId;
|
jobId = data.getItem(rowIndex - 1).jobId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let job: sqlops.AgentJobInfo[] = this.jobs.filter(job => {
|
let job: sqlops.AgentJobInfo[] = this.jobs.filter(job => {
|
||||||
return job.jobId === jobId;
|
return job.jobId === jobId;
|
||||||
});
|
});
|
||||||
let jobHistories = this.jobHistories[jobId];
|
|
||||||
let steps: sqlops.AgentJobStep[] = undefined;
|
|
||||||
let schedules: sqlops.AgentJobScheduleInfo[] = undefined;
|
|
||||||
let alerts: sqlops.AgentAlertInfo[] = undefined;
|
|
||||||
if (jobHistories && jobHistories[jobHistories.length-1]) {
|
|
||||||
// add steps
|
// add steps
|
||||||
steps = jobHistories[jobHistories.length-1].steps;
|
if (this.jobSteps && this.jobSteps[jobId]) {
|
||||||
if (steps && steps.length > 0) {
|
let steps = this.jobSteps[jobId];
|
||||||
if (!job[0].JobSteps) {
|
job[0].JobSteps = steps;
|
||||||
job[0].JobSteps = [];
|
|
||||||
}
|
|
||||||
if (job[0].JobSteps.length !== steps.length) {
|
|
||||||
job[0].JobSteps = [];
|
|
||||||
steps.forEach(step => {
|
|
||||||
job[0].JobSteps.push(step.stepDetails);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// add schedules
|
// add schedules
|
||||||
schedules = jobHistories[jobHistories.length-1].schedules;
|
if (this.jobSchedules && this.jobSchedules[jobId]) {
|
||||||
if (schedules && schedules.length > 0) {
|
let schedules = this.jobSchedules[jobId];
|
||||||
if (!job[0].JobSchedules) {
|
job[0].JobSchedules = schedules;
|
||||||
job[0].JobSchedules = [];
|
|
||||||
}
|
|
||||||
if (job[0].JobSchedules.length !== schedules.length) {
|
|
||||||
job[0].JobSchedules = [];
|
|
||||||
schedules.forEach(schedule => {
|
|
||||||
job[0].JobSchedules.push(schedule);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// add alerts
|
// add alerts
|
||||||
alerts = jobHistories[jobHistories.length-1].alerts;
|
if (this.jobAlerts && this.jobAlerts[jobId]) {
|
||||||
if (!job[0].Alerts) {
|
let alerts = this.jobAlerts[jobId];
|
||||||
job[0].Alerts = [];
|
job[0].Alerts = alerts;
|
||||||
}
|
|
||||||
if (job[0].Alerts.length !== alerts.length) {
|
|
||||||
job[0].Alerts = [];
|
|
||||||
alerts.forEach(alert => {
|
|
||||||
job[0].Alerts.push(alert);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return job && job.length > 0 ? job[0] : undefined;
|
return job && job.length > 0 ? job[0] : undefined;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,9 +30,11 @@ import { TPromise } from 'vs/base/common/winjs.base';
|
|||||||
import { IAction } from 'vs/base/common/actions';
|
import { IAction } from 'vs/base/common/actions';
|
||||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { IDashboardService } from 'sql/services/dashboard/common/dashboardService';
|
import { IDashboardService } from 'sql/services/dashboard/common/dashboardService';
|
||||||
|
import { OperatorsCacheObject } from 'sql/parts/jobManagement/common/jobManagementService';
|
||||||
|
import { RowDetailView } from 'sql/base/browser/ui/table/plugins/rowdetailview';
|
||||||
|
|
||||||
export const VIEW_SELECTOR: string = 'joboperatorsview-component';
|
export const VIEW_SELECTOR: string = 'joboperatorsview-component';
|
||||||
export const ROW_HEIGHT: number = 30;
|
export const ROW_HEIGHT: number = 45;
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: VIEW_SELECTOR,
|
selector: VIEW_SELECTOR,
|
||||||
@@ -43,7 +45,13 @@ export const ROW_HEIGHT: number = 30;
|
|||||||
export class OperatorsViewComponent extends JobManagementView implements OnInit {
|
export class OperatorsViewComponent extends JobManagementView implements OnInit {
|
||||||
|
|
||||||
private columns: Array<Slick.Column<any>> = [
|
private columns: Array<Slick.Column<any>> = [
|
||||||
{ name: nls.localize('jobOperatorsView.name', 'Name'), field: 'name', width: 200, id: 'name' },
|
{
|
||||||
|
name: nls.localize('jobOperatorsView.name', 'Name'),
|
||||||
|
field: 'name',
|
||||||
|
formatter: (row, cell, value, columnDef, dataContext) => this.renderName(row, cell, value, columnDef, dataContext),
|
||||||
|
width: 200,
|
||||||
|
id: 'name'
|
||||||
|
},
|
||||||
{ name: nls.localize('jobOperatorsView.emailAddress', 'Email Address'), field: 'emailAddress', width: 200, id: 'emailAddress' },
|
{ name: nls.localize('jobOperatorsView.emailAddress', 'Email Address'), field: 'emailAddress', width: 200, id: 'emailAddress' },
|
||||||
{ name: nls.localize('jobOperatorsView.enabled', 'Enabled'), field: 'enabled', width: 200, id: 'enabled' },
|
{ name: nls.localize('jobOperatorsView.enabled', 'Enabled'), field: 'enabled', width: 200, id: 'enabled' },
|
||||||
];
|
];
|
||||||
@@ -57,8 +65,8 @@ export class OperatorsViewComponent extends JobManagementView implements OnInit
|
|||||||
};
|
};
|
||||||
|
|
||||||
private dataView: any;
|
private dataView: any;
|
||||||
private _serverName: string;
|
|
||||||
private _isCloud: boolean;
|
private _isCloud: boolean;
|
||||||
|
private _operatorsCacheObject: OperatorsCacheObject;
|
||||||
|
|
||||||
@ViewChild('operatorsgrid') _gridEl: ElementRef;
|
@ViewChild('operatorsgrid') _gridEl: ElementRef;
|
||||||
|
|
||||||
@@ -79,6 +87,15 @@ export class OperatorsViewComponent extends JobManagementView implements OnInit
|
|||||||
) {
|
) {
|
||||||
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService);
|
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService);
|
||||||
this._isCloud = commonService.connectionManagementService.connectionInfo.serverInfo.isCloud;
|
this._isCloud = commonService.connectionManagementService.connectionInfo.serverInfo.isCloud;
|
||||||
|
let operatorsCacheObject = this._jobManagementService.operatorsCacheObjectMap;
|
||||||
|
let operatorsCache = operatorsCacheObject[this._serverName];
|
||||||
|
if (operatorsCache) {
|
||||||
|
this._operatorsCacheObject = operatorsCache;
|
||||||
|
} else {
|
||||||
|
this._operatorsCacheObject = new OperatorsCacheObject();
|
||||||
|
this._operatorsCacheObject.serverName = this._serverName;
|
||||||
|
this._jobManagementService.addToCache(this._serverName, this._operatorsCacheObject);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(){
|
ngOnInit(){
|
||||||
@@ -93,19 +110,36 @@ export class OperatorsViewComponent extends JobManagementView implements OnInit
|
|||||||
height = 0;
|
height = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this._table) {
|
||||||
this._table.layout(new dom.Dimension(
|
this._table.layout(new dom.Dimension(
|
||||||
dom.getContentWidth(this._gridEl.nativeElement),
|
dom.getContentWidth(this._gridEl.nativeElement),
|
||||||
height));
|
height));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onFirstVisible() {
|
onFirstVisible() {
|
||||||
let self = this;
|
let self = this;
|
||||||
|
|
||||||
|
let cached: boolean = false;
|
||||||
|
if (this._operatorsCacheObject.serverName === this._serverName) {
|
||||||
|
if (this._operatorsCacheObject.operators && this._operatorsCacheObject.operators.length > 0) {
|
||||||
|
cached = true;
|
||||||
|
this.operators = this._operatorsCacheObject.operators;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let columns = this.columns.map((column) => {
|
let columns = this.columns.map((column) => {
|
||||||
column.rerenderOnResize = true;
|
column.rerenderOnResize = true;
|
||||||
return column;
|
return column;
|
||||||
});
|
});
|
||||||
|
|
||||||
this.dataView = new Slick.Data.DataView();
|
this.dataView = new Slick.Data.DataView({ inlineFilters: false });
|
||||||
|
let rowDetail = new RowDetailView({
|
||||||
|
cssClass: '_detail_selector',
|
||||||
|
useRowClick: false,
|
||||||
|
panelRows: 1
|
||||||
|
});
|
||||||
|
columns.unshift(rowDetail.getColumnDefinition());
|
||||||
|
|
||||||
$(this._gridEl.nativeElement).empty();
|
$(this._gridEl.nativeElement).empty();
|
||||||
$(this.actionBarContainer.nativeElement).empty();
|
$(this.actionBarContainer.nativeElement).empty();
|
||||||
@@ -117,21 +151,30 @@ export class OperatorsViewComponent extends JobManagementView implements OnInit
|
|||||||
self.openContextMenu(e);
|
self.openContextMenu(e);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// check for cached state
|
||||||
|
if (cached && this._agentViewComponent.refresh !== true) {
|
||||||
|
this.onOperatorsAvailable(this.operators);
|
||||||
|
this._showProgressWheel = false;
|
||||||
|
if (this.isVisible) {
|
||||||
|
this._cd.detectChanges();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
||||||
this._jobManagementService.getOperators(ownerUri).then((result) => {
|
this._jobManagementService.getOperators(ownerUri).then((result) => {
|
||||||
if (result && result.operators) {
|
if (result && result.operators) {
|
||||||
self.operators = result.operators;
|
self.operators = result.operators;
|
||||||
|
self._operatorsCacheObject.operators = result.operators;
|
||||||
self.onOperatorsAvailable(result.operators);
|
self.onOperatorsAvailable(result.operators);
|
||||||
} else {
|
} else {
|
||||||
// TODO: handle error
|
// TODO: handle error
|
||||||
}
|
}
|
||||||
|
|
||||||
this._showProgressWheel = false;
|
this._showProgressWheel = false;
|
||||||
if (this.isVisible) {
|
if (this.isVisible) {
|
||||||
this._cd.detectChanges();
|
this._cd.detectChanges();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private onOperatorsAvailable(operators: sqlops.AgentOperatorInfo[]) {
|
private onOperatorsAvailable(operators: sqlops.AgentOperatorInfo[]) {
|
||||||
let items: any = operators.map((item) => {
|
let items: any = operators.map((item) => {
|
||||||
@@ -146,6 +189,7 @@ export class OperatorsViewComponent extends JobManagementView implements OnInit
|
|||||||
this.dataView.beginUpdate();
|
this.dataView.beginUpdate();
|
||||||
this.dataView.setItems(items);
|
this.dataView.setItems(items);
|
||||||
this.dataView.endUpdate();
|
this.dataView.endUpdate();
|
||||||
|
this._operatorsCacheObject.dataview = this.dataView;
|
||||||
this._table.autosizeColumns();
|
this._table.autosizeColumns();
|
||||||
this._table.resizeCanvas();
|
this._table.resizeCanvas();
|
||||||
}
|
}
|
||||||
@@ -163,6 +207,15 @@ export class OperatorsViewComponent extends JobManagementView implements OnInit
|
|||||||
: undefined;
|
: undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private renderName(row, cell, value, columnDef, dataContext) {
|
||||||
|
let resultIndicatorClass = dataContext.enabled ? 'operatorview-operatornameindicatorenabled' :
|
||||||
|
'operatorview-operatornameindicatordisabled';
|
||||||
|
return '<table class="operatorview-operatornametable"><tr class="operatorview-operatornamerow">' +
|
||||||
|
'<td nowrap class=' + resultIndicatorClass + '></td>' +
|
||||||
|
'<td nowrap class="operatorview-operatornametext">' + dataContext.name + '</td>' +
|
||||||
|
'</tr></table>';
|
||||||
|
}
|
||||||
|
|
||||||
public openCreateOperatorDialog() {
|
public openCreateOperatorDialog() {
|
||||||
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
||||||
this._commandService.executeCommand('agent.openOperatorDialog', ownerUri);
|
this._commandService.executeCommand('agent.openOperatorDialog', ownerUri);
|
||||||
|
|||||||
@@ -30,9 +30,11 @@ import { IAction } from 'vs/base/common/actions';
|
|||||||
import { ICommandService } from 'vs/platform/commands/common/commands';
|
import { ICommandService } from 'vs/platform/commands/common/commands';
|
||||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { IDashboardService } from 'sql/services/dashboard/common/dashboardService';
|
import { IDashboardService } from 'sql/services/dashboard/common/dashboardService';
|
||||||
|
import { ProxiesCacheObject } from 'sql/parts/jobManagement/common/jobManagementService';
|
||||||
|
import { RowDetailView } from 'sql/base/browser/ui/table/plugins/rowdetailview';
|
||||||
|
|
||||||
export const VIEW_SELECTOR: string = 'jobproxiesview-component';
|
export const VIEW_SELECTOR: string = 'jobproxiesview-component';
|
||||||
export const ROW_HEIGHT: number = 30;
|
export const ROW_HEIGHT: number = 45;
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: VIEW_SELECTOR,
|
selector: VIEW_SELECTOR,
|
||||||
@@ -46,8 +48,16 @@ export class ProxiesViewComponent extends JobManagementView implements OnInit {
|
|||||||
private RefreshText: string = nls.localize('jobProxyToolbar-Refresh', "Refresh");
|
private RefreshText: string = nls.localize('jobProxyToolbar-Refresh', "Refresh");
|
||||||
|
|
||||||
private columns: Array<Slick.Column<any>> = [
|
private columns: Array<Slick.Column<any>> = [
|
||||||
{ name: nls.localize('jobProxiesView.accountName', 'Account Name'), field: 'accountName', width: 200, id: 'accountName' },
|
{
|
||||||
|
name: nls.localize('jobProxiesView.accountName', 'Account Name'),
|
||||||
|
field: 'accountName',
|
||||||
|
formatter: (row, cell, value, columnDef, dataContext) => this.renderName(row, cell, value, columnDef, dataContext),
|
||||||
|
width: 200,
|
||||||
|
id: 'accountName'
|
||||||
|
},
|
||||||
{ name: nls.localize('jobProxiesView.credentialName', 'Credential Name'), field: 'credentialName', width: 200, id: 'credentialName' },
|
{ name: nls.localize('jobProxiesView.credentialName', 'Credential Name'), field: 'credentialName', width: 200, id: 'credentialName' },
|
||||||
|
{ name: nls.localize('jobProxiesView.description', 'Description'), field: 'description', width: 200, id: 'description'},
|
||||||
|
{ name: nls.localize('jobProxiesView.isEnabled', 'Enabled'), field: 'isEnabled', width: 200, id: 'isEnabled'}
|
||||||
];
|
];
|
||||||
|
|
||||||
private options: Slick.GridOptions<any> = {
|
private options: Slick.GridOptions<any> = {
|
||||||
@@ -59,8 +69,8 @@ export class ProxiesViewComponent extends JobManagementView implements OnInit {
|
|||||||
};
|
};
|
||||||
|
|
||||||
private dataView: any;
|
private dataView: any;
|
||||||
private _serverName: string;
|
|
||||||
private _isCloud: boolean;
|
private _isCloud: boolean;
|
||||||
|
private _proxiesCacheObject: ProxiesCacheObject;
|
||||||
|
|
||||||
public proxies: sqlops.AgentProxyInfo[];
|
public proxies: sqlops.AgentProxyInfo[];
|
||||||
public readonly contextAction = NewProxyAction;
|
public readonly contextAction = NewProxyAction;
|
||||||
@@ -81,6 +91,15 @@ export class ProxiesViewComponent extends JobManagementView implements OnInit {
|
|||||||
) {
|
) {
|
||||||
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService);
|
super(commonService, _dashboardService, contextMenuService, keybindingService, instantiationService);
|
||||||
this._isCloud = commonService.connectionManagementService.connectionInfo.serverInfo.isCloud;
|
this._isCloud = commonService.connectionManagementService.connectionInfo.serverInfo.isCloud;
|
||||||
|
let proxiesCacheObjectMap = this._jobManagementService.proxiesCacheObjectMap;
|
||||||
|
let proxiesCacheObject = proxiesCacheObjectMap[this._serverName];
|
||||||
|
if (proxiesCacheObject) {
|
||||||
|
this._proxiesCacheObject = proxiesCacheObject;
|
||||||
|
} else {
|
||||||
|
this._proxiesCacheObject = new ProxiesCacheObject();
|
||||||
|
this._proxiesCacheObject.serverName = this._serverName;
|
||||||
|
this._jobManagementService.addToCache(this._serverName, this._proxiesCacheObject);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(){
|
ngOnInit(){
|
||||||
@@ -95,19 +114,35 @@ export class ProxiesViewComponent extends JobManagementView implements OnInit {
|
|||||||
height = 0;
|
height = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this._table) {
|
||||||
this._table.layout(new dom.Dimension(
|
this._table.layout(new dom.Dimension(
|
||||||
dom.getContentWidth(this._gridEl.nativeElement),
|
dom.getContentWidth(this._gridEl.nativeElement),
|
||||||
height));
|
height));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onFirstVisible() {
|
onFirstVisible() {
|
||||||
let self = this;
|
let self = this;
|
||||||
|
let cached: boolean = false;
|
||||||
|
if (this._proxiesCacheObject.serverName === this._serverName) {
|
||||||
|
if (this._proxiesCacheObject.proxies && this._proxiesCacheObject.proxies.length > 0) {
|
||||||
|
cached = true;
|
||||||
|
this.proxies = this._proxiesCacheObject.proxies;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let columns = this.columns.map((column) => {
|
let columns = this.columns.map((column) => {
|
||||||
column.rerenderOnResize = true;
|
column.rerenderOnResize = true;
|
||||||
return column;
|
return column;
|
||||||
});
|
});
|
||||||
|
|
||||||
this.dataView = new Slick.Data.DataView();
|
this.dataView = new Slick.Data.DataView({ inlineFilters: false });
|
||||||
|
let rowDetail = new RowDetailView({
|
||||||
|
cssClass: '_detail_selector',
|
||||||
|
useRowClick: false,
|
||||||
|
panelRows: 1
|
||||||
|
});
|
||||||
|
columns.unshift(rowDetail.getColumnDefinition());
|
||||||
|
|
||||||
$(this._gridEl.nativeElement).empty();
|
$(this._gridEl.nativeElement).empty();
|
||||||
$(this.actionBarContainer.nativeElement).empty();
|
$(this.actionBarContainer.nativeElement).empty();
|
||||||
@@ -119,34 +154,46 @@ export class ProxiesViewComponent extends JobManagementView implements OnInit {
|
|||||||
self.openContextMenu(e);
|
self.openContextMenu(e);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// checked for cached state
|
||||||
|
if (cached && this._agentViewComponent.refresh !== true) {
|
||||||
|
self.onProxiesAvailable(this.proxies);
|
||||||
|
this._showProgressWheel = false;
|
||||||
|
if (this.isVisible) {
|
||||||
|
this._cd.detectChanges();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
||||||
this._jobManagementService.getProxies(ownerUri).then((result) => {
|
this._jobManagementService.getProxies(ownerUri).then((result) => {
|
||||||
if (result && result.proxies) {
|
if (result && result.proxies) {
|
||||||
self.proxies = result.proxies;
|
self.proxies = result.proxies;
|
||||||
|
self._proxiesCacheObject.proxies = result.proxies;
|
||||||
self.onProxiesAvailable(result.proxies);
|
self.onProxiesAvailable(result.proxies);
|
||||||
} else {
|
} else {
|
||||||
// TODO: handle error
|
// TODO: handle error
|
||||||
}
|
}
|
||||||
|
|
||||||
this._showProgressWheel = false;
|
this._showProgressWheel = false;
|
||||||
if (this.isVisible) {
|
if (this.isVisible) {
|
||||||
this._cd.detectChanges();
|
this._cd.detectChanges();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private onProxiesAvailable(proxies: sqlops.AgentProxyInfo[]) {
|
private onProxiesAvailable(proxies: sqlops.AgentProxyInfo[]) {
|
||||||
let items: any = proxies.map((item) => {
|
let items: any = proxies.map((item) => {
|
||||||
return {
|
return {
|
||||||
id: item.accountName,
|
id: item.accountName,
|
||||||
accountName: item.accountName,
|
accountName: item.accountName,
|
||||||
credentialName: item.credentialName
|
credentialName: item.credentialName,
|
||||||
|
description: item.description,
|
||||||
|
isEnabled: item.isEnabled
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
this.dataView.beginUpdate();
|
this.dataView.beginUpdate();
|
||||||
this.dataView.setItems(items);
|
this.dataView.setItems(items);
|
||||||
this.dataView.endUpdate();
|
this.dataView.endUpdate();
|
||||||
|
this._proxiesCacheObject.dataview = this.dataView;
|
||||||
this._table.autosizeColumns();
|
this._table.autosizeColumns();
|
||||||
this._table.resizeCanvas();
|
this._table.resizeCanvas();
|
||||||
}
|
}
|
||||||
@@ -164,6 +211,15 @@ export class ProxiesViewComponent extends JobManagementView implements OnInit {
|
|||||||
: undefined;
|
: undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private renderName(row, cell, value, columnDef, dataContext) {
|
||||||
|
let resultIndicatorClass = dataContext.isEnabled ? 'proxyview-proxynameindicatorenabled' :
|
||||||
|
'proxyview-proxynameindicatordisabled';
|
||||||
|
return '<table class="proxyview-proxynametable"><tr class="proxyview-proxynamerow">' +
|
||||||
|
'<td nowrap class=' + resultIndicatorClass + '></td>' +
|
||||||
|
'<td nowrap class="proxyview-proxynametext">' + dataContext.accountName + '</td>' +
|
||||||
|
'</tr></table>';
|
||||||
|
}
|
||||||
|
|
||||||
public openCreateProxyDialog() {
|
public openCreateProxyDialog() {
|
||||||
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
let ownerUri: string = this._commonService.connectionManagementService.connectionInfo.ownerUri;
|
||||||
this._jobManagementService.getCredentials(ownerUri).then((result) => {
|
this._jobManagementService.getCredentials(ownerUri).then((result) => {
|
||||||
|
|||||||