Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0de5d7a96a | ||
|
|
2f8f6064a1 | ||
|
|
d3526f8cf7 | ||
|
|
b045e536c1 | ||
|
|
ab91c88b34 | ||
|
|
f91010c398 | ||
|
|
cd0d0f911b | ||
|
|
bd67006f63 | ||
|
|
5aedd96276 | ||
|
|
751a89d839 | ||
|
|
a226e90c38 | ||
|
|
2eeb2b0d71 | ||
|
|
f2779f2a50 | ||
|
|
357bb1916e | ||
|
|
67a9ff3e16 | ||
|
|
7099b11651 | ||
|
|
27e9e8ec2b | ||
|
|
4d1e3263f4 | ||
|
|
cb1d630cfb | ||
|
|
d7b9e9ab78 | ||
|
|
cb7b8b956f | ||
|
|
a0608a51c1 | ||
|
|
217f5e7ee5 | ||
|
|
50c4fd79b7 |
@@ -72,6 +72,7 @@ const vsce = require('vsce');
|
|||||||
const sqlBuiltInExtensions = [
|
const sqlBuiltInExtensions = [
|
||||||
// Add SQL built-in extensions here.
|
// Add SQL built-in extensions here.
|
||||||
// the extension will be excluded from SQLOps package and will have separate vsix packages
|
// the extension will be excluded from SQLOps package and will have separate vsix packages
|
||||||
|
'agent'
|
||||||
];
|
];
|
||||||
|
|
||||||
const vscodeEntryPoints = _.flatten([
|
const vscodeEntryPoints = _.flatten([
|
||||||
@@ -120,6 +121,7 @@ const vscodeResources = [
|
|||||||
'out-build/sql/parts/grid/views/**/*.html',
|
'out-build/sql/parts/grid/views/**/*.html',
|
||||||
'out-build/sql/parts/tasks/**/*.html',
|
'out-build/sql/parts/tasks/**/*.html',
|
||||||
'out-build/sql/parts/taskHistory/viewlet/media/**',
|
'out-build/sql/parts/taskHistory/viewlet/media/**',
|
||||||
|
'out-build/sql/parts/jobManagement/common/media/*.svg',
|
||||||
'out-build/sql/media/objectTypes/*.svg',
|
'out-build/sql/media/objectTypes/*.svg',
|
||||||
'out-build/sql/media/icons/*.svg',
|
'out-build/sql/media/icons/*.svg',
|
||||||
'!**/test/**'
|
'!**/test/**'
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ const extensions = [
|
|||||||
'git',
|
'git',
|
||||||
'merge-conflict',
|
'merge-conflict',
|
||||||
'insights-default',
|
'insights-default',
|
||||||
'account-provider-azure'
|
'account-provider-azure',
|
||||||
|
'agent'
|
||||||
];
|
];
|
||||||
|
|
||||||
extensions.forEach(extension => yarnInstall(`extensions/${extension}`));
|
extensions.forEach(extension => yarnInstall(`extensions/${extension}`));
|
||||||
|
|||||||
273
build/yarn.lock
@@ -27,8 +27,8 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-0.0.29.tgz#fbcfd330573b912ef59eeee14602bface630754b"
|
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-0.0.29.tgz#fbcfd330573b912ef59eeee14602bface630754b"
|
||||||
|
|
||||||
"@types/node@*":
|
"@types/node@*":
|
||||||
version "8.0.51"
|
version "9.4.7"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.51.tgz#b31d716fb8d58eeb95c068a039b9b6292817d5fb"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.7.tgz#57d81cd98719df2c9de118f2d5f3b1120dcd7275"
|
||||||
|
|
||||||
"@types/node@8.0.33":
|
"@types/node@8.0.33":
|
||||||
version "8.0.33"
|
version "8.0.33"
|
||||||
@@ -44,13 +44,6 @@ agent-base@4, agent-base@^4.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
es6-promisify "^5.0.0"
|
es6-promisify "^5.0.0"
|
||||||
|
|
||||||
ajv@^4.9.1:
|
|
||||||
version "4.11.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
|
|
||||||
dependencies:
|
|
||||||
co "^4.6.0"
|
|
||||||
json-stable-stringify "^1.0.1"
|
|
||||||
|
|
||||||
ajv@^5.1.0:
|
ajv@^5.1.0:
|
||||||
version "5.5.2"
|
version "5.5.2"
|
||||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
|
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
|
||||||
@@ -170,19 +163,19 @@ aws4@^1.2.1, aws4@^1.6.0:
|
|||||||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
|
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
|
||||||
|
|
||||||
azure-storage@^2.1.0:
|
azure-storage@^2.1.0:
|
||||||
version "2.6.0"
|
version "2.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/azure-storage/-/azure-storage-2.6.0.tgz#84747ee54a4bd194bb960f89f3eff89d67acf1cf"
|
resolved "https://registry.yarnpkg.com/azure-storage/-/azure-storage-2.8.1.tgz#ecb9d050ef1395e79ffbb652c02fe643687bec63"
|
||||||
dependencies:
|
dependencies:
|
||||||
browserify-mime "~1.2.9"
|
browserify-mime "~1.2.9"
|
||||||
extend "~1.2.1"
|
extend "~1.2.1"
|
||||||
json-edm-parser "0.1.2"
|
json-edm-parser "0.1.2"
|
||||||
md5.js "1.3.4"
|
md5.js "1.3.4"
|
||||||
readable-stream "~2.0.0"
|
readable-stream "~2.0.0"
|
||||||
request "~2.81.0"
|
request "~2.83.0"
|
||||||
underscore "~1.8.3"
|
underscore "~1.8.3"
|
||||||
uuid "^3.0.0"
|
uuid "^3.0.0"
|
||||||
validator "~3.35.0"
|
validator "~9.4.1"
|
||||||
xml2js "0.2.7"
|
xml2js "0.2.8"
|
||||||
xmlbuilder "0.4.3"
|
xmlbuilder "0.4.3"
|
||||||
|
|
||||||
balanced-match@^1.0.0:
|
balanced-match@^1.0.0:
|
||||||
@@ -242,8 +235,8 @@ boom@5.x.x:
|
|||||||
hoek "4.x.x"
|
hoek "4.x.x"
|
||||||
|
|
||||||
brace-expansion@^1.1.7:
|
brace-expansion@^1.1.7:
|
||||||
version "1.1.8"
|
version "1.1.11"
|
||||||
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.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
||||||
dependencies:
|
dependencies:
|
||||||
balanced-match "^1.0.0"
|
balanced-match "^1.0.0"
|
||||||
concat-map "0.0.1"
|
concat-map "0.0.1"
|
||||||
@@ -319,12 +312,12 @@ clone@^2.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb"
|
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb"
|
||||||
|
|
||||||
cloneable-readable@^1.0.0:
|
cloneable-readable@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.0.0.tgz#a6290d413f217a61232f95e458ff38418cfb0117"
|
resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65"
|
||||||
dependencies:
|
dependencies:
|
||||||
inherits "^2.0.1"
|
inherits "^2.0.1"
|
||||||
process-nextick-args "^1.0.6"
|
process-nextick-args "^2.0.0"
|
||||||
through2 "^2.0.1"
|
readable-stream "^2.3.5"
|
||||||
|
|
||||||
co@^4.6.0:
|
co@^4.6.0:
|
||||||
version "4.6.0"
|
version "4.6.0"
|
||||||
@@ -334,9 +327,9 @@ color-support@^1.1.3:
|
|||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
|
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
|
||||||
|
|
||||||
combined-stream@^1.0.5, combined-stream@~1.0.5:
|
combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5:
|
||||||
version "1.0.5"
|
version "1.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
|
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
|
||||||
dependencies:
|
dependencies:
|
||||||
delayed-stream "~1.0.0"
|
delayed-stream "~1.0.0"
|
||||||
|
|
||||||
@@ -345,8 +338,8 @@ commander@2.11.0:
|
|||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
|
||||||
|
|
||||||
commander@^2.9.0:
|
commander@^2.9.0:
|
||||||
version "2.13.0"
|
version "2.15.0"
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.0.tgz#ad2a23a1c3b036e392469b8012cec6b33b4c1322"
|
||||||
|
|
||||||
commander@~2.8.1:
|
commander@~2.8.1:
|
||||||
version "2.8.1"
|
version "2.8.1"
|
||||||
@@ -384,9 +377,9 @@ dashdash@^1.12.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
assert-plus "^1.0.0"
|
assert-plus "^1.0.0"
|
||||||
|
|
||||||
"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#0.1.3":
|
"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#0.1.5":
|
||||||
version "0.1.3"
|
version "0.1.5"
|
||||||
resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/5758b2a5804ea488d14326662f51d19cc970ccd0"
|
resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/21b0bacfc759689a6c280408528c6029a21b1abf"
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-languageclient "3.5.0"
|
vscode-languageclient "3.5.0"
|
||||||
|
|
||||||
@@ -394,12 +387,6 @@ dateformat@^2.0.0:
|
|||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
|
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
|
||||||
|
|
||||||
debug@2:
|
|
||||||
version "2.6.9"
|
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
|
||||||
dependencies:
|
|
||||||
ms "2.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"
|
||||||
@@ -488,8 +475,8 @@ duplexer@~0.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
|
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
|
||||||
|
|
||||||
duplexify@^3.2.0:
|
duplexify@^3.2.0:
|
||||||
version "3.5.3"
|
version "3.5.4"
|
||||||
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e"
|
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4"
|
||||||
dependencies:
|
dependencies:
|
||||||
end-of-stream "^1.0.0"
|
end-of-stream "^1.0.0"
|
||||||
inherits "^2.0.1"
|
inherits "^2.0.1"
|
||||||
@@ -524,7 +511,7 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2:
|
|||||||
|
|
||||||
event-stream@^3.3.1, event-stream@~3.3.4:
|
event-stream@^3.3.1, event-stream@~3.3.4:
|
||||||
version "3.3.4"
|
version "3.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
|
resolved "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
|
||||||
dependencies:
|
dependencies:
|
||||||
duplexer "~0.1.1"
|
duplexer "~0.1.1"
|
||||||
from "~0"
|
from "~0"
|
||||||
@@ -569,7 +556,7 @@ extend@~1.2.1:
|
|||||||
"extensions-modules@file:../extensions-modules":
|
"extensions-modules@file:../extensions-modules":
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
dataprotocol-client "github:Microsoft/sqlops-dataprotocolclient#0.1.3"
|
dataprotocol-client "github:Microsoft/sqlops-dataprotocolclient#0.1.5"
|
||||||
decompress "^4.2.0"
|
decompress "^4.2.0"
|
||||||
fs-extra-promise "^1.0.1"
|
fs-extra-promise "^1.0.1"
|
||||||
http-proxy-agent "^2.0.0"
|
http-proxy-agent "^2.0.0"
|
||||||
@@ -577,7 +564,7 @@ extend@~1.2.1:
|
|||||||
opener "^1.4.3"
|
opener "^1.4.3"
|
||||||
tmp "0.0.33"
|
tmp "0.0.33"
|
||||||
vscode-extension-telemetry "0.0.8"
|
vscode-extension-telemetry "0.0.8"
|
||||||
vscode-languageclient "^3.5.0"
|
vscode-languageclient "3.5.0"
|
||||||
|
|
||||||
extglob@^0.3.1:
|
extglob@^0.3.1:
|
||||||
version "0.3.2"
|
version "0.3.2"
|
||||||
@@ -585,10 +572,14 @@ extglob@^0.3.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-extglob "^1.0.0"
|
is-extglob "^1.0.0"
|
||||||
|
|
||||||
extsprintf@1.3.0, extsprintf@^1.2.0:
|
extsprintf@1.3.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
||||||
|
|
||||||
|
extsprintf@^1.2.0:
|
||||||
|
version "1.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
|
||||||
|
|
||||||
fancy-log@^1.1.0:
|
fancy-log@^1.1.0:
|
||||||
version "1.3.2"
|
version "1.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1"
|
resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1"
|
||||||
@@ -598,8 +589,8 @@ fancy-log@^1.1.0:
|
|||||||
time-stamp "^1.0.0"
|
time-stamp "^1.0.0"
|
||||||
|
|
||||||
fast-deep-equal@^1.0.0:
|
fast-deep-equal@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
|
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
|
||||||
|
|
||||||
fast-json-stable-stringify@^2.0.0:
|
fast-json-stable-stringify@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
@@ -664,11 +655,11 @@ form-data@~2.1.1:
|
|||||||
mime-types "^2.1.12"
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
form-data@~2.3.1:
|
form-data@~2.3.1:
|
||||||
version "2.3.1"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
|
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
|
||||||
dependencies:
|
dependencies:
|
||||||
asynckit "^0.4.0"
|
asynckit "^0.4.0"
|
||||||
combined-stream "^1.0.5"
|
combined-stream "1.0.6"
|
||||||
mime-types "^2.1.12"
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
from@~0:
|
from@~0:
|
||||||
@@ -900,10 +891,6 @@ gulplog@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
glogg "^1.0.0"
|
glogg "^1.0.0"
|
||||||
|
|
||||||
har-schema@^1.0.5:
|
|
||||||
version "1.0.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
|
|
||||||
|
|
||||||
har-schema@^2.0.0:
|
har-schema@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
|
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
|
||||||
@@ -917,13 +904,6 @@ har-validator@~2.0.6:
|
|||||||
is-my-json-valid "^2.12.4"
|
is-my-json-valid "^2.12.4"
|
||||||
pinkie-promise "^2.0.0"
|
pinkie-promise "^2.0.0"
|
||||||
|
|
||||||
har-validator@~4.2.1:
|
|
||||||
version "4.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
|
|
||||||
dependencies:
|
|
||||||
ajv "^4.9.1"
|
|
||||||
har-schema "^1.0.5"
|
|
||||||
|
|
||||||
har-validator@~5.0.3:
|
har-validator@~5.0.3:
|
||||||
version "5.0.3"
|
version "5.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
|
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
|
||||||
@@ -981,15 +961,15 @@ hoek@2.x.x:
|
|||||||
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
|
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
|
||||||
|
|
||||||
hoek@4.x.x:
|
hoek@4.x.x:
|
||||||
version "4.2.0"
|
version "4.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
|
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
|
||||||
|
|
||||||
http-proxy-agent@^2.0.0:
|
http-proxy-agent@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.0.0.tgz#46482a2f0523a4d6082551709f469cb3e4a85ff4"
|
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base "4"
|
agent-base "4"
|
||||||
debug "2"
|
debug "3.1.0"
|
||||||
|
|
||||||
http-signature@~1.1.0:
|
http-signature@~1.1.0:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
@@ -1008,15 +988,15 @@ http-signature@~1.2.0:
|
|||||||
sshpk "^1.7.0"
|
sshpk "^1.7.0"
|
||||||
|
|
||||||
https-proxy-agent@^2.1.0:
|
https-proxy-agent@^2.1.0:
|
||||||
version "2.1.1"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.1.1.tgz#a7ce4382a1ba8266ee848578778122d491260fd9"
|
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.0.tgz#7fbba856be8cd677986f42ebd3664f6317257887"
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base "^4.1.0"
|
agent-base "^4.1.0"
|
||||||
debug "^3.1.0"
|
debug "^3.1.0"
|
||||||
|
|
||||||
ieee754@^1.1.4:
|
ieee754@^1.1.4:
|
||||||
version "1.1.8"
|
version "1.1.10"
|
||||||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
|
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.10.tgz#719a6f7b026831e64bdb838b0de1bb0029bbf716"
|
||||||
|
|
||||||
inflight@^1.0.4:
|
inflight@^1.0.4:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
@@ -1067,12 +1047,17 @@ is-glob@^3.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-extglob "^2.1.0"
|
is-extglob "^2.1.0"
|
||||||
|
|
||||||
|
is-my-ip-valid@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824"
|
||||||
|
|
||||||
is-my-json-valid@^2.12.4:
|
is-my-json-valid@^2.12.4:
|
||||||
version "2.17.1"
|
version "2.17.2"
|
||||||
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471"
|
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c"
|
||||||
dependencies:
|
dependencies:
|
||||||
generate-function "^2.0.0"
|
generate-function "^2.0.0"
|
||||||
generate-object-property "^1.1.0"
|
generate-object-property "^1.1.0"
|
||||||
|
is-my-ip-valid "^1.0.0"
|
||||||
jsonpointer "^4.0.0"
|
jsonpointer "^4.0.0"
|
||||||
xtend "^4.0.0"
|
xtend "^4.0.0"
|
||||||
|
|
||||||
@@ -1164,7 +1149,7 @@ json-schema@0.2.3:
|
|||||||
version "0.2.3"
|
version "0.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
|
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
|
||||||
|
|
||||||
json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
|
json-stable-stringify@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
|
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -1311,8 +1296,8 @@ lodash.templatesettings@^3.0.0:
|
|||||||
lodash.escape "^3.0.0"
|
lodash.escape "^3.0.0"
|
||||||
|
|
||||||
make-dir@^1.0.0:
|
make-dir@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51"
|
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b"
|
||||||
dependencies:
|
dependencies:
|
||||||
pify "^3.0.0"
|
pify "^3.0.0"
|
||||||
|
|
||||||
@@ -1351,19 +1336,19 @@ micromatch@^2.3.7:
|
|||||||
parse-glob "^3.0.4"
|
parse-glob "^3.0.4"
|
||||||
regex-cache "^0.4.2"
|
regex-cache "^0.4.2"
|
||||||
|
|
||||||
mime-db@~1.30.0:
|
mime-db@~1.33.0:
|
||||||
version "1.30.0"
|
version "1.33.0"
|
||||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
|
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
|
||||||
|
|
||||||
mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7:
|
mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7:
|
||||||
version "2.1.17"
|
version "2.1.18"
|
||||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
|
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
|
||||||
dependencies:
|
dependencies:
|
||||||
mime-db "~1.30.0"
|
mime-db "~1.33.0"
|
||||||
|
|
||||||
mime@^1.3.4:
|
mime@^1.3.4:
|
||||||
version "1.4.1"
|
version "1.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
|
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
||||||
|
|
||||||
"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.4:
|
"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.4:
|
||||||
version "3.0.4"
|
version "3.0.4"
|
||||||
@@ -1498,10 +1483,6 @@ 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"
|
||||||
|
|
||||||
performance-now@^0.2.0:
|
|
||||||
version "0.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
|
|
||||||
|
|
||||||
performance-now@^2.1.0:
|
performance-now@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
||||||
@@ -1542,7 +1523,11 @@ priorityqueuejs@1.0.0:
|
|||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/priorityqueuejs/-/priorityqueuejs-1.0.0.tgz#2ee4f23c2560913e08c07ce5ccdd6de3df2c5af8"
|
resolved "https://registry.yarnpkg.com/priorityqueuejs/-/priorityqueuejs-1.0.0.tgz#2ee4f23c2560913e08c07ce5ccdd6de3df2c5af8"
|
||||||
|
|
||||||
process-nextick-args@^1.0.6, process-nextick-args@~1.0.6:
|
process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
|
||||||
|
|
||||||
|
process-nextick-args@~1.0.6:
|
||||||
version "1.0.7"
|
version "1.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
|
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
|
||||||
|
|
||||||
@@ -1554,10 +1539,6 @@ qs@~6.3.0:
|
|||||||
version "6.3.2"
|
version "6.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
|
resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
|
||||||
|
|
||||||
qs@~6.4.0:
|
|
||||||
version "6.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
|
|
||||||
|
|
||||||
qs@~6.5.1:
|
qs@~6.5.1:
|
||||||
version "6.5.1"
|
version "6.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
|
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
|
||||||
@@ -1594,14 +1575,14 @@ randomatic@^1.1.3:
|
|||||||
isarray "0.0.1"
|
isarray "0.0.1"
|
||||||
string_decoder "~0.10.x"
|
string_decoder "~0.10.x"
|
||||||
|
|
||||||
readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5:
|
readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.3.5:
|
||||||
version "2.3.3"
|
version "2.3.5"
|
||||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
|
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d"
|
||||||
dependencies:
|
dependencies:
|
||||||
core-util-is "~1.0.0"
|
core-util-is "~1.0.0"
|
||||||
inherits "~2.0.3"
|
inherits "~2.0.3"
|
||||||
isarray "~1.0.0"
|
isarray "~1.0.0"
|
||||||
process-nextick-args "~1.0.6"
|
process-nextick-args "~2.0.0"
|
||||||
safe-buffer "~5.1.1"
|
safe-buffer "~5.1.1"
|
||||||
string_decoder "~1.0.3"
|
string_decoder "~1.0.3"
|
||||||
util-deprecate "~1.0.1"
|
util-deprecate "~1.0.1"
|
||||||
@@ -1653,8 +1634,8 @@ replace-ext@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
|
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
|
||||||
|
|
||||||
request@^2.83.0:
|
request@^2.83.0:
|
||||||
version "2.83.0"
|
version "2.85.0"
|
||||||
resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
|
resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa"
|
||||||
dependencies:
|
dependencies:
|
||||||
aws-sign2 "~0.7.0"
|
aws-sign2 "~0.7.0"
|
||||||
aws4 "^1.6.0"
|
aws4 "^1.6.0"
|
||||||
@@ -1704,32 +1685,32 @@ request@~2.79.0:
|
|||||||
tunnel-agent "~0.4.1"
|
tunnel-agent "~0.4.1"
|
||||||
uuid "^3.0.0"
|
uuid "^3.0.0"
|
||||||
|
|
||||||
request@~2.81.0:
|
request@~2.83.0:
|
||||||
version "2.81.0"
|
version "2.83.0"
|
||||||
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
|
resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
|
||||||
dependencies:
|
dependencies:
|
||||||
aws-sign2 "~0.6.0"
|
aws-sign2 "~0.7.0"
|
||||||
aws4 "^1.2.1"
|
aws4 "^1.6.0"
|
||||||
caseless "~0.12.0"
|
caseless "~0.12.0"
|
||||||
combined-stream "~1.0.5"
|
combined-stream "~1.0.5"
|
||||||
extend "~3.0.0"
|
extend "~3.0.1"
|
||||||
forever-agent "~0.6.1"
|
forever-agent "~0.6.1"
|
||||||
form-data "~2.1.1"
|
form-data "~2.3.1"
|
||||||
har-validator "~4.2.1"
|
har-validator "~5.0.3"
|
||||||
hawk "~3.1.3"
|
hawk "~6.0.2"
|
||||||
http-signature "~1.1.0"
|
http-signature "~1.2.0"
|
||||||
is-typedarray "~1.0.0"
|
is-typedarray "~1.0.0"
|
||||||
isstream "~0.1.2"
|
isstream "~0.1.2"
|
||||||
json-stringify-safe "~5.0.1"
|
json-stringify-safe "~5.0.1"
|
||||||
mime-types "~2.1.7"
|
mime-types "~2.1.17"
|
||||||
oauth-sign "~0.8.1"
|
oauth-sign "~0.8.2"
|
||||||
performance-now "^0.2.0"
|
performance-now "^2.1.0"
|
||||||
qs "~6.4.0"
|
qs "~6.5.1"
|
||||||
safe-buffer "^5.0.1"
|
safe-buffer "^5.1.1"
|
||||||
stringstream "~0.0.4"
|
stringstream "~0.0.5"
|
||||||
tough-cookie "~2.3.0"
|
tough-cookie "~2.3.3"
|
||||||
tunnel-agent "^0.6.0"
|
tunnel-agent "^0.6.0"
|
||||||
uuid "^3.0.0"
|
uuid "^3.1.0"
|
||||||
|
|
||||||
requires-port@~1.0.0:
|
requires-port@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
@@ -1745,9 +1726,9 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
|||||||
version "5.1.1"
|
version "5.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
|
||||||
|
|
||||||
sax@0.5.2:
|
sax@0.5.x:
|
||||||
version "0.5.2"
|
version "0.5.8"
|
||||||
resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.2.tgz#735ffaa39a1cff8ffb9598f0223abdb03a9fb2ea"
|
resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1"
|
||||||
|
|
||||||
sax@>=0.6.0:
|
sax@>=0.6.0:
|
||||||
version "1.2.4"
|
version "1.2.4"
|
||||||
@@ -1780,8 +1761,8 @@ sntp@2.x.x:
|
|||||||
hoek "4.x.x"
|
hoek "4.x.x"
|
||||||
|
|
||||||
source-map-support@^0.5.0:
|
source-map-support@^0.5.0:
|
||||||
version "0.5.2"
|
version "0.5.4"
|
||||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.2.tgz#1a6297fd5b2e762b39688c7fc91233b60984f0a5"
|
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.4.tgz#54456efa89caa9270af7cd624cc2f123e51fbae8"
|
||||||
dependencies:
|
dependencies:
|
||||||
source-map "^0.6.0"
|
source-map "^0.6.0"
|
||||||
|
|
||||||
@@ -1800,8 +1781,8 @@ split@0.3:
|
|||||||
through "2"
|
through "2"
|
||||||
|
|
||||||
sshpk@^1.7.0:
|
sshpk@^1.7.0:
|
||||||
version "1.13.1"
|
version "1.14.1"
|
||||||
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
|
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb"
|
||||||
dependencies:
|
dependencies:
|
||||||
asn1 "~0.2.3"
|
asn1 "~0.2.3"
|
||||||
assert-plus "^1.0.0"
|
assert-plus "^1.0.0"
|
||||||
@@ -1917,7 +1898,7 @@ through2@^0.6.0, through2@~0.6.5:
|
|||||||
readable-stream ">=1.0.33-1 <1.1.0-0"
|
readable-stream ">=1.0.33-1 <1.1.0-0"
|
||||||
xtend ">=4.0.0 <4.1.0-0"
|
xtend ">=4.0.0 <4.1.0-0"
|
||||||
|
|
||||||
through2@^2.0.0, through2@^2.0.1, through2@^2.0.3, through2@~2.0.0, through2@~2.0.3:
|
through2@^2.0.0, through2@^2.0.3, through2@~2.0.0, through2@~2.0.3:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
|
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -1945,8 +1926,8 @@ to-absolute-glob@^0.1.1:
|
|||||||
extend-shallow "^2.0.1"
|
extend-shallow "^2.0.1"
|
||||||
|
|
||||||
tough-cookie@~2.3.0, tough-cookie@~2.3.3:
|
tough-cookie@~2.3.0, tough-cookie@~2.3.3:
|
||||||
version "2.3.3"
|
version "2.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
|
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
|
||||||
dependencies:
|
dependencies:
|
||||||
punycode "^1.4.1"
|
punycode "^1.4.1"
|
||||||
|
|
||||||
@@ -1997,11 +1978,7 @@ 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"
|
||||||
|
|
||||||
uuid@^3.0.0:
|
uuid@^3.0.0, uuid@^3.1.0:
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
|
|
||||||
|
|
||||||
uuid@^3.1.0:
|
|
||||||
version "3.2.1"
|
version "3.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
|
||||||
|
|
||||||
@@ -2009,9 +1986,9 @@ vali-date@^1.0.0:
|
|||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6"
|
resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6"
|
||||||
|
|
||||||
validator@~3.35.0:
|
validator@~9.4.1:
|
||||||
version "3.35.0"
|
version "9.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/validator/-/validator-3.35.0.tgz#3f07249402c1fc8fc093c32c6e43d72a79cca1dc"
|
resolved "https://registry.yarnpkg.com/validator/-/validator-9.4.1.tgz#abf466d398b561cd243050112c6ff1de6cc12663"
|
||||||
|
|
||||||
verror@1.10.0:
|
verror@1.10.0:
|
||||||
version "1.10.0"
|
version "1.10.0"
|
||||||
@@ -2103,30 +2080,30 @@ vscode-extension-telemetry@0.0.8:
|
|||||||
applicationinsights "0.18.0"
|
applicationinsights "0.18.0"
|
||||||
winreg "1.2.3"
|
winreg "1.2.3"
|
||||||
|
|
||||||
vscode-jsonrpc@^3.5.0:
|
vscode-jsonrpc@^3.6.0:
|
||||||
version "3.5.0"
|
version "3.6.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.6.0.tgz#848d56995d5168950d84feb5d9c237ae5c6a02d4"
|
||||||
|
|
||||||
vscode-languageclient@3.5.0, vscode-languageclient@^3.5.0:
|
vscode-languageclient@3.5.0:
|
||||||
version "3.5.0"
|
version "3.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.0.tgz#36d02cc186a8365a4467719a290fb200a9ae490a"
|
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.0.tgz#36d02cc186a8365a4467719a290fb200a9ae490a"
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-languageserver-protocol "^3.5.0"
|
vscode-languageserver-protocol "^3.5.0"
|
||||||
|
|
||||||
vscode-languageserver-protocol@^3.5.0:
|
vscode-languageserver-protocol@^3.5.0:
|
||||||
version "3.5.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.5.0.tgz#067c5cbe27709795398d119692c97ebba1452209"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.6.0.tgz#579642cdcccf74b0cd771c33daa3239acb40d040"
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-jsonrpc "^3.5.0"
|
vscode-jsonrpc "^3.6.0"
|
||||||
vscode-languageserver-types "^3.5.0"
|
vscode-languageserver-types "^3.6.0"
|
||||||
|
|
||||||
vscode-languageserver-types@^3.5.0:
|
vscode-languageserver-types@^3.6.0:
|
||||||
version "3.5.0"
|
version "3.6.1"
|
||||||
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.6.1.tgz#4bc06a48dff653495f12f94b8b1e228988a1748d"
|
||||||
|
|
||||||
vscode@^1.0.1:
|
vscode@^1.0.1:
|
||||||
version "1.1.10"
|
version "1.1.13"
|
||||||
resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.10.tgz#d1cba378ab24f1d3ddf9cd470d242ee1472dd35b"
|
resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.13.tgz#dcea0c5f3ec1ff6eca333216b4b20dd994d18d9a"
|
||||||
dependencies:
|
dependencies:
|
||||||
glob "^7.1.2"
|
glob "^7.1.2"
|
||||||
gulp-chmod "^2.0.0"
|
gulp-chmod "^2.0.0"
|
||||||
@@ -2151,11 +2128,11 @@ 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"
|
||||||
|
|
||||||
xml2js@0.2.7:
|
xml2js@0.2.8:
|
||||||
version "0.2.7"
|
version "0.2.8"
|
||||||
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.2.7.tgz#1838518bb01741cae0878bab4915e494c32306af"
|
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.2.8.tgz#9b81690931631ff09d1957549faf54f4f980b3c2"
|
||||||
dependencies:
|
dependencies:
|
||||||
sax "0.5.2"
|
sax "0.5.x"
|
||||||
|
|
||||||
xml2js@^0.4.17:
|
xml2js@^0.4.17:
|
||||||
version "0.4.19"
|
version "0.4.19"
|
||||||
@@ -2169,8 +2146,8 @@ xmlbuilder@0.4.3:
|
|||||||
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-0.4.3.tgz#c4614ba74e0ad196e609c9272cd9e1ddb28a8a58"
|
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-0.4.3.tgz#c4614ba74e0ad196e609c9272cd9e1ddb28a8a58"
|
||||||
|
|
||||||
xmlbuilder@~9.0.1:
|
xmlbuilder@~9.0.1:
|
||||||
version "9.0.4"
|
version "9.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f"
|
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
|
||||||
|
|
||||||
"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
|
"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "extensions-modules",
|
"name": "extensions-modules",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"description": "Shared modules for Carbon extensions",
|
"description": "Shared modules for SQL Operations Studio extensions",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#0.1.5",
|
"dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#0.1.5",
|
||||||
"decompress": "^4.2.0",
|
"decompress": "^4.2.0",
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
"opener": "^1.4.3",
|
"opener": "^1.4.3",
|
||||||
"tmp": "0.0.33",
|
"tmp": "0.0.33",
|
||||||
"vscode-extension-telemetry": "0.0.8",
|
"vscode-extension-telemetry": "0.0.8",
|
||||||
"vscode-languageclient": "^3.5.0"
|
"vscode-languageclient": "3.5.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^6.0.61",
|
"@types/node": "^6.0.61",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import { ExtensionContext, workspace, window, OutputChannel, languages } from 'vscode';
|
import { ExtensionContext, workspace, window, OutputChannel, languages } from 'vscode';
|
||||||
import { SqlOpsDataClient, ClientOptions } from 'dataprotocol-client';
|
import * as SqlopsClient from 'dataprotocol-client';
|
||||||
import { CloseAction, ErrorAction, ServerOptions, NotificationHandler, NotificationType, RequestType, TransportKind } from 'vscode-languageclient';
|
import { CloseAction, ErrorAction, ServerOptions, NotificationHandler, NotificationType, RequestType, TransportKind } from 'vscode-languageclient';
|
||||||
|
|
||||||
import { VscodeWrapper } from '../controllers/vscodeWrapper';
|
import { VscodeWrapper } from '../controllers/vscodeWrapper';
|
||||||
@@ -132,14 +132,14 @@ export class SqlToolsServiceClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// VS Code Language Client
|
// VS Code Language Client
|
||||||
private _client: SqlOpsDataClient = undefined;
|
private _client: SqlopsClient.SqlOpsDataClient = undefined;
|
||||||
|
|
||||||
// getter method for the Language Client
|
// getter method for the Language Client
|
||||||
private get client(): SqlOpsDataClient {
|
private get client(): SqlopsClient.SqlOpsDataClient {
|
||||||
return this._client;
|
return this._client;
|
||||||
}
|
}
|
||||||
|
|
||||||
private set client(client: SqlOpsDataClient) {
|
private set client(client: SqlopsClient.SqlOpsDataClient) {
|
||||||
this._client = client;
|
this._client = client;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,9 +317,9 @@ export class SqlToolsServiceClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public createClient(context: ExtensionContext, runtimeId: Runtime, languageClientHelper: LanguageServiceContracts.ILanguageClientHelper, executableFiles: string[]): Promise<SqlOpsDataClient> {
|
public createClient(context: ExtensionContext, runtimeId: Runtime, languageClientHelper: LanguageServiceContracts.ILanguageClientHelper, executableFiles: string[]): Promise<SqlopsClient.SqlOpsDataClient> {
|
||||||
return new Promise<SqlOpsDataClient>((resolve, reject) => {
|
return new Promise<SqlopsClient.SqlOpsDataClient>((resolve, reject) => {
|
||||||
let client: SqlOpsDataClient;
|
let client: SqlopsClient.SqlOpsDataClient;
|
||||||
this._server.findServerPath(this.installDirectory, executableFiles).then(serverPath => {
|
this._server.findServerPath(this.installDirectory, executableFiles).then(serverPath => {
|
||||||
if (serverPath === undefined) {
|
if (serverPath === undefined) {
|
||||||
reject(new Error(SqlToolsServiceClient._constants.invalidServiceFilePath));
|
reject(new Error(SqlToolsServiceClient._constants.invalidServiceFilePath));
|
||||||
@@ -329,7 +329,7 @@ export class SqlToolsServiceClient {
|
|||||||
languageClientHelper.createServerOptions(serverPath, runtimeId) : this.createServerOptions(serverPath);
|
languageClientHelper.createServerOptions(serverPath, runtimeId) : this.createServerOptions(serverPath);
|
||||||
|
|
||||||
// Options to control the language client
|
// Options to control the language client
|
||||||
let clientOptions: ClientOptions = {
|
let clientOptions: SqlopsClient.ClientOptions = {
|
||||||
documentSelector: [SqlToolsServiceClient._constants.languageId],
|
documentSelector: [SqlToolsServiceClient._constants.languageId],
|
||||||
providerId: '',
|
providerId: '',
|
||||||
synchronize: {
|
synchronize: {
|
||||||
@@ -357,7 +357,7 @@ export class SqlToolsServiceClient {
|
|||||||
|
|
||||||
this._serviceStatus.showServiceLoading();
|
this._serviceStatus.showServiceLoading();
|
||||||
// cache the client instance for later use
|
// cache the client instance for later use
|
||||||
client = new SqlOpsDataClient(SqlToolsServiceClient._constants.serviceName, serverOptions, clientOptions);
|
client = new SqlopsClient.SqlOpsDataClient(SqlToolsServiceClient._constants.serviceName, serverOptions, clientOptions);
|
||||||
|
|
||||||
if (context !== undefined) {
|
if (context !== undefined) {
|
||||||
// Create the language client and start the client.
|
// Create the language client and start the client.
|
||||||
@@ -404,9 +404,9 @@ export class SqlToolsServiceClient {
|
|||||||
return serverOptions;
|
return serverOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
private createLanguageClient(serverOptions: ServerOptions): SqlOpsDataClient {
|
private createLanguageClient(serverOptions: ServerOptions): SqlopsClient.SqlOpsDataClient {
|
||||||
// Options to control the language client
|
// Options to control the language client
|
||||||
let clientOptions: ClientOptions = {
|
let clientOptions: SqlopsClient.ClientOptions = {
|
||||||
documentSelector: [SqlToolsServiceClient._constants.languageId],
|
documentSelector: [SqlToolsServiceClient._constants.languageId],
|
||||||
providerId: SqlToolsServiceClient._constants.providerId,
|
providerId: SqlToolsServiceClient._constants.providerId,
|
||||||
synchronize: {
|
synchronize: {
|
||||||
@@ -427,12 +427,28 @@ export class SqlToolsServiceClient {
|
|||||||
name: '',
|
name: '',
|
||||||
show: () => {
|
show: () => {
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
features: [
|
||||||
|
SqlopsClient.AdminServicesFeature,
|
||||||
|
SqlopsClient.BackupFeature,
|
||||||
|
SqlopsClient.CapabilitiesFeature,
|
||||||
|
SqlopsClient.ConnectionFeature,
|
||||||
|
SqlopsClient.FileBrowserFeature,
|
||||||
|
SqlopsClient.MetadataFeature,
|
||||||
|
SqlopsClient.ObjectExplorerFeature,
|
||||||
|
SqlopsClient.ProfilerFeature,
|
||||||
|
SqlopsClient.QueryFeature,
|
||||||
|
SqlopsClient.RestoreFeature,
|
||||||
|
SqlopsClient.ScriptingFeature,
|
||||||
|
SqlopsClient.TaskServicesFeature,
|
||||||
|
// heres the important bit
|
||||||
|
LanguageServiceContracts.AgentServicesFeature
|
||||||
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
this._serviceStatus.showServiceLoading();
|
this._serviceStatus.showServiceLoading();
|
||||||
// cache the client instance for later use
|
// cache the client instance for later use
|
||||||
let client = new SqlOpsDataClient(SqlToolsServiceClient._constants.serviceName, serverOptions, clientOptions);
|
let client = new SqlopsClient.SqlOpsDataClient(SqlToolsServiceClient._constants.serviceName, serverOptions, clientOptions);
|
||||||
client.onReady().then(() => {
|
client.onReady().then(() => {
|
||||||
this.checkServiceCompatibility();
|
this.checkServiceCompatibility();
|
||||||
this._serviceStatus.showServiceLoaded();
|
this._serviceStatus.showServiceLoaded();
|
||||||
@@ -478,7 +494,7 @@ export class SqlToolsServiceClient {
|
|||||||
* @param params The params to pass with the request
|
* @param params The params to pass with the request
|
||||||
* @returns A thenable object for when the request receives a response
|
* @returns A thenable object for when the request receives a response
|
||||||
*/
|
*/
|
||||||
public sendRequest<P, R, E, RO>(type: RequestType<P, R, E, RO>, params?: P, client: SqlOpsDataClient = undefined): Thenable<R> {
|
public sendRequest<P, R, E, RO>(type: RequestType<P, R, E, RO>, params?: P, client: SqlopsClient.SqlOpsDataClient = undefined): Thenable<R> {
|
||||||
if (client === undefined) {
|
if (client === undefined) {
|
||||||
client = this._client;
|
client = this._client;
|
||||||
}
|
}
|
||||||
@@ -492,7 +508,7 @@ export class SqlToolsServiceClient {
|
|||||||
* @param type The notification type to register the handler for
|
* @param type The notification type to register the handler for
|
||||||
* @param handler The handler to register
|
* @param handler The handler to register
|
||||||
*/
|
*/
|
||||||
public onNotification<P, RO>(type: NotificationType<P, RO>, handler: NotificationHandler<P>, client: SqlOpsDataClient = undefined): void {
|
public onNotification<P, RO>(type: NotificationType<P, RO>, handler: NotificationHandler<P>, client: SqlopsClient.SqlOpsDataClient = undefined): void {
|
||||||
if (client === undefined) {
|
if (client === undefined) {
|
||||||
client = this._client;
|
client = this._client;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,13 @@
|
|||||||
* 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 { NotificationType, ServerOptions } from 'vscode-languageclient';
|
import { NotificationType, ServerOptions, RequestType, RPCMessageType, ClientCapabilities, ServerCapabilities } from 'vscode-languageclient';
|
||||||
import { ITelemetryEventProperties, ITelemetryEventMeasures } from '../telemetry';
|
import { ITelemetryEventProperties, ITelemetryEventMeasures } from '../telemetry';
|
||||||
import { Runtime } from '../platform';
|
import { Runtime } from '../platform';
|
||||||
|
import { SqlOpsFeature, SqlOpsDataClient } from 'dataprotocol-client';
|
||||||
|
import * as sqlops from 'sqlops';
|
||||||
|
import * as UUID from 'vscode-languageclient/lib/utils/uuid';
|
||||||
|
import { Disposable } from 'vscode';
|
||||||
|
|
||||||
// ------------------------------- < Telemetry Sent Event > ------------------------------------
|
// ------------------------------- < Telemetry Sent Event > ------------------------------------
|
||||||
|
|
||||||
@@ -57,3 +61,119 @@ export class StatusChangeParams {
|
|||||||
export interface ILanguageClientHelper {
|
export interface ILanguageClientHelper {
|
||||||
createServerOptions(servicePath: string, runtimeId?: Runtime): ServerOptions;
|
createServerOptions(servicePath: string, runtimeId?: Runtime): ServerOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Job Management types
|
||||||
|
export interface AgentJobsParams {
|
||||||
|
ownerUri: string;
|
||||||
|
jobId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AgentJobsResult {
|
||||||
|
succeeded: boolean;
|
||||||
|
errorMessage: string;
|
||||||
|
jobs: sqlops.AgentJobInfo[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AgentJobHistoryParams {
|
||||||
|
ownerUri: string;
|
||||||
|
jobId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AgentJobHistoryResult {
|
||||||
|
succeeded: boolean;
|
||||||
|
errorMessage: string;
|
||||||
|
jobs: sqlops.AgentJobHistoryInfo[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AgentJobActionParams {
|
||||||
|
ownerUri: string;
|
||||||
|
jobName: string;
|
||||||
|
action: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AgentJobActionResult {
|
||||||
|
succeeded: boolean;
|
||||||
|
errorMessage: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export namespace AgentJobsRequest {
|
||||||
|
export const type = new RequestType<AgentJobsParams, AgentJobsResult, void, void>('agent/jobs');
|
||||||
|
}
|
||||||
|
|
||||||
|
export namespace AgentJobHistoryRequest {
|
||||||
|
export const type = new RequestType<AgentJobHistoryParams, AgentJobHistoryResult, void, void>('agent/jobhistory');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export namespace AgentJobActionRequest {
|
||||||
|
export const type = new RequestType<AgentJobActionParams, AgentJobActionResult, void, void>('agent/jobaction');
|
||||||
|
}
|
||||||
|
|
||||||
|
export class AgentServicesFeature extends SqlOpsFeature<undefined> {
|
||||||
|
private static readonly messagesTypes: RPCMessageType[] = [
|
||||||
|
AgentJobsRequest.type,
|
||||||
|
AgentJobHistoryRequest.type,
|
||||||
|
AgentJobActionRequest.type
|
||||||
|
];
|
||||||
|
|
||||||
|
constructor(client: SqlOpsDataClient) {
|
||||||
|
super(client, AgentServicesFeature.messagesTypes);
|
||||||
|
}
|
||||||
|
|
||||||
|
public fillClientCapabilities(capabilities: ClientCapabilities): void {
|
||||||
|
// this isn't explicitly necessary
|
||||||
|
// ensure(ensure(capabilities, 'connection')!, 'agentServices')!.dynamicRegistration = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public initialize(capabilities: ServerCapabilities): void {
|
||||||
|
this.register(this.messages, {
|
||||||
|
id: UUID.generateUuid(),
|
||||||
|
registerOptions: undefined
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
protected registerProvider(options: undefined): Disposable {
|
||||||
|
const client = this._client;
|
||||||
|
|
||||||
|
let getJobs = (ownerUri: string): Thenable<sqlops.AgentJobsResult> => {
|
||||||
|
let params: AgentJobsParams = { ownerUri: ownerUri, jobId: null };
|
||||||
|
return client.sendRequest(AgentJobsRequest.type, params).then(
|
||||||
|
r => r,
|
||||||
|
e => {
|
||||||
|
client.logFailedRequest(AgentJobsRequest.type, e);
|
||||||
|
return Promise.resolve(undefined);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
let getJobHistory = (connectionUri: string, jobID: string): Thenable<sqlops.AgentJobHistoryResult> => {
|
||||||
|
let params: AgentJobHistoryParams = { ownerUri: connectionUri, jobId: jobID };
|
||||||
|
|
||||||
|
return client.sendRequest(AgentJobHistoryRequest.type, params).then(
|
||||||
|
r => r,
|
||||||
|
e => {
|
||||||
|
client.logFailedRequest(AgentJobHistoryRequest.type, e);
|
||||||
|
return Promise.resolve(undefined);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
let jobAction = (connectionUri: string, jobName: string, action: string): Thenable<sqlops.AgentJobActionResult> => {
|
||||||
|
let params: AgentJobActionParams = { ownerUri: connectionUri, jobName: jobName, action: action };
|
||||||
|
return client.sendRequest(AgentJobActionRequest.type, params).then(
|
||||||
|
r => r,
|
||||||
|
e => {
|
||||||
|
client.logFailedRequest(AgentJobActionRequest.type, e);
|
||||||
|
return Promise.resolve(undefined);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
return sqlops.dataprotocol.registerAgentServicesProvider({
|
||||||
|
providerId: client.providerId,
|
||||||
|
getJobs,
|
||||||
|
getJobHistory,
|
||||||
|
jobAction
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -912,8 +912,8 @@ https-proxy-agent@^2.1.0:
|
|||||||
debug "^3.1.0"
|
debug "^3.1.0"
|
||||||
|
|
||||||
ieee754@^1.1.4:
|
ieee754@^1.1.4:
|
||||||
version "1.1.8"
|
version "1.1.10"
|
||||||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
|
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.10.tgz#719a6f7b026831e64bdb838b0de1bb0029bbf716"
|
||||||
|
|
||||||
inflight@^1.0.4:
|
inflight@^1.0.4:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
@@ -1945,7 +1945,7 @@ 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"
|
||||||
|
|
||||||
vscode-languageclient@3.5.0, vscode-languageclient@^3.5.0:
|
vscode-languageclient@3.5.0:
|
||||||
version "3.5.0"
|
version "3.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.0.tgz#36d02cc186a8365a4467719a290fb200a9ae490a"
|
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.0.tgz#36d02cc186a8365a4467719a290fb200a9ae490a"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|||||||
2
extensions/agent/.vscodeignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
client/src/**
|
||||||
|
client/tsconfig.json
|
||||||
23
extensions/agent/README.md
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Microsoft SQL Server Agent for SQL Operations Studio
|
||||||
|
|
||||||
|
Welcome to Microsoft SQL Server Agent for SQL Operations Studio! An extension for managing and troubleshooting
|
||||||
|
SQL Server Agent jobs and configuration. The current is a very early release of this extension that provides
|
||||||
|
basic functionality for the following.
|
||||||
|
|
||||||
|
* List SQL Server Agent Jobs configured on a SQL Server
|
||||||
|
* View Job History with job execution results
|
||||||
|
* Basic Job Control to start and stop jobs
|
||||||
|
|
||||||
|
## Code of Conduct
|
||||||
|
|
||||||
|
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
||||||
|
|
||||||
|
## Privacy Statement
|
||||||
|
|
||||||
|
The [Microsoft Enterprise and Developer Privacy Statement](https://privacy.microsoft.com/en-us/privacystatement) describes the privacy statement of this software.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
|
||||||
|
Licensed under the [Source EULA](https://raw.githubusercontent.com/Microsoft/sqlopsstudio/master/LICENSE.txt).
|
||||||
63
extensions/agent/client/src/apiWrapper.ts
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
import * as vscode from 'vscode';
|
||||||
|
import * as data from 'sqlops';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper class to act as a facade over VSCode and Data APIs and allow us to test / mock callbacks into
|
||||||
|
* this API from our code
|
||||||
|
*
|
||||||
|
* @export
|
||||||
|
* @class ApiWrapper
|
||||||
|
*/
|
||||||
|
export class ApiWrapper {
|
||||||
|
// Data APIs
|
||||||
|
|
||||||
|
public registerWebviewProvider(widgetId: string, handler: (webview: data.DashboardWebview) => void): void {
|
||||||
|
return data.dashboard.registerWebviewProvider(widgetId, handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public registerControlHostProvider(widgetId: string, handler: (webview: data.DashboardWebview) => void): void {
|
||||||
|
return data.dashboard.registerWebviewProvider(widgetId, handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the configuration for a extensionName
|
||||||
|
* @param extensionName The string name of the extension to get the configuration for
|
||||||
|
* @param resource The optional URI, as a URI object or a string, to use to get resource-scoped configurations
|
||||||
|
*/
|
||||||
|
public getConfiguration(extensionName: string, resource?: vscode.Uri | string): vscode.WorkspaceConfiguration {
|
||||||
|
if (typeof resource === 'string') {
|
||||||
|
try {
|
||||||
|
resource = this.parseUri(resource);
|
||||||
|
} catch (e) {
|
||||||
|
resource = undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return vscode.workspace.getConfiguration(extensionName, resource as vscode.Uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse uri
|
||||||
|
*/
|
||||||
|
public parseUri(uri: string): vscode.Uri {
|
||||||
|
return vscode.Uri.parse(uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
public showOpenDialog(options: vscode.OpenDialogOptions): Thenable<vscode.Uri[] | undefined> {
|
||||||
|
return vscode.window.showOpenDialog(options);
|
||||||
|
}
|
||||||
|
|
||||||
|
public showErrorMessage(message: string, ...items: string[]): Thenable<string | undefined> {
|
||||||
|
return vscode.window.showErrorMessage(message, ...items);
|
||||||
|
}
|
||||||
|
|
||||||
|
public get workspaceRootPath(): string {
|
||||||
|
return vscode.workspace.rootPath;
|
||||||
|
}
|
||||||
|
}
|
||||||
23
extensions/agent/client/src/main.ts
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* 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 vscode = require('vscode');
|
||||||
|
import { MainController } from './mainController';
|
||||||
|
import { ApiWrapper } from './apiWrapper';
|
||||||
|
export let controller: MainController;
|
||||||
|
|
||||||
|
export function activate(context: vscode.ExtensionContext) {
|
||||||
|
let apiWrapper = new ApiWrapper();
|
||||||
|
controller = new MainController(context, apiWrapper);
|
||||||
|
controller.activate();
|
||||||
|
}
|
||||||
|
|
||||||
|
// this method is called when your extension is deactivated
|
||||||
|
export function deactivate(): void {
|
||||||
|
if (controller) {
|
||||||
|
controller.deactivate();
|
||||||
|
}
|
||||||
|
}
|
||||||
38
extensions/agent/client/src/mainController.ts
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
import * as vscode from 'vscode';
|
||||||
|
import * as data from 'sqlops';
|
||||||
|
import { ApiWrapper } from './apiWrapper';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The main controller class that initializes the extension
|
||||||
|
*/
|
||||||
|
export class MainController {
|
||||||
|
protected _apiWrapper: ApiWrapper;
|
||||||
|
protected _context: vscode.ExtensionContext;
|
||||||
|
|
||||||
|
// PUBLIC METHODS //////////////////////////////////////////////////////
|
||||||
|
public constructor(context: vscode.ExtensionContext, apiWrapper?: ApiWrapper) {
|
||||||
|
this._apiWrapper = apiWrapper || new ApiWrapper();
|
||||||
|
this._context = context;
|
||||||
|
|
||||||
|
console.log('Got: ' + apiWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deactivates the extension
|
||||||
|
*/
|
||||||
|
public deactivate(): void {
|
||||||
|
}
|
||||||
|
|
||||||
|
public activate(): void {
|
||||||
|
|
||||||
|
this._apiWrapper.registerWebviewProvider('data-management-agent', webview => {
|
||||||
|
webview.html = '<div><h1>SQL Agent</h1></div>';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
8
extensions/agent/client/src/typings/ref.d.ts
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/// <reference path='../../../../../src/vs/vscode.d.ts'/>
|
||||||
|
/// <reference path='../../../../../src/sql/sqlops.d.ts'/>
|
||||||
|
/// <reference types='@types/node'/>
|
||||||
19
extensions/agent/client/tsconfig.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"compileOnSave": true,
|
||||||
|
"compilerOptions": {
|
||||||
|
"module": "commonjs",
|
||||||
|
"target": "es6",
|
||||||
|
"outDir": "./out",
|
||||||
|
"lib": [
|
||||||
|
"es6", "es2015.promise"
|
||||||
|
],
|
||||||
|
"sourceMap": true,
|
||||||
|
"emitDecoratorMetadata": true,
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"declaration": true
|
||||||
|
},
|
||||||
|
"exclude": [
|
||||||
|
"node_modules"
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
extensions/agent/images/sqlserver.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
46
extensions/agent/package.json
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"name": "agent",
|
||||||
|
"displayName": "SQL Server Agent",
|
||||||
|
"description": "Manage and troubleshoot SQL Server Agent jobs (early preview)",
|
||||||
|
"version": "0.27.1",
|
||||||
|
"publisher": "Microsoft",
|
||||||
|
"preview": true,
|
||||||
|
"license": "https://raw.githubusercontent.com/Microsoft/sqlopsstudio/master/LICENSE.txt",
|
||||||
|
"icon": "images/sqlserver.png",
|
||||||
|
"aiKey": "AIF-5574968e-856d-40d2-af67-c89a14e76412",
|
||||||
|
"engines": {
|
||||||
|
"vscode": "0.10.x"
|
||||||
|
},
|
||||||
|
"activationEvents": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"main": "./client/out/main",
|
||||||
|
"scripts": {
|
||||||
|
"compile": "gulp compile-extension:agent-client"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Microsoft/sqlopsstudio.git"
|
||||||
|
},
|
||||||
|
"contributes": {
|
||||||
|
"outputChannels": [
|
||||||
|
"sqlagent"
|
||||||
|
],
|
||||||
|
"dashboard.tabs": [
|
||||||
|
{
|
||||||
|
"id": "data-management-agent",
|
||||||
|
"description": "Manage and troubleshoot SQL Agent jobs",
|
||||||
|
"provider": "MSSQL",
|
||||||
|
"title": "SQL Agent",
|
||||||
|
"container": {
|
||||||
|
"controlhost-container": {
|
||||||
|
"type": "agent"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"vscode": "1.0.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
2085
extensions/agent/yarn.lock
Normal file
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"service": {
|
"service": {
|
||||||
"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.4.0-alpha.12",
|
"version": "1.4.0-alpha.16",
|
||||||
"downloadFileNames": {
|
"downloadFileNames": {
|
||||||
"Windows_86": "win-x86-netcoreapp2.0.zip",
|
"Windows_86": "win-x86-netcoreapp2.0.zip",
|
||||||
"Windows_64": "win-x64-netcoreapp2.0.zip",
|
"Windows_64": "win-x64-netcoreapp2.0.zip",
|
||||||
|
|||||||
@@ -4,7 +4,8 @@
|
|||||||
"publisher": "Microsoft",
|
"publisher": "Microsoft",
|
||||||
"aiKey": "AIF-5574968e-856d-40d2-af67-c89a14e76412",
|
"aiKey": "AIF-5574968e-856d-40d2-af67-c89a14e76412",
|
||||||
"engines": {
|
"engines": {
|
||||||
"vscode": "0.10.x"
|
"vscode": "0.10.x",
|
||||||
|
"sqlops": "feature/agent1"
|
||||||
},
|
},
|
||||||
"activationEvents": [
|
"activationEvents": [
|
||||||
"*"
|
"*"
|
||||||
|
|||||||
@@ -168,8 +168,8 @@ boom@5.x.x:
|
|||||||
hoek "4.x.x"
|
hoek "4.x.x"
|
||||||
|
|
||||||
brace-expansion@^1.1.7:
|
brace-expansion@^1.1.7:
|
||||||
version "1.1.8"
|
version "1.1.11"
|
||||||
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.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
||||||
dependencies:
|
dependencies:
|
||||||
balanced-match "^1.0.0"
|
balanced-match "^1.0.0"
|
||||||
concat-map "0.0.1"
|
concat-map "0.0.1"
|
||||||
@@ -258,12 +258,12 @@ clone@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f"
|
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f"
|
||||||
|
|
||||||
cloneable-readable@^1.0.0:
|
cloneable-readable@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.0.0.tgz#a6290d413f217a61232f95e458ff38418cfb0117"
|
resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65"
|
||||||
dependencies:
|
dependencies:
|
||||||
inherits "^2.0.1"
|
inherits "^2.0.1"
|
||||||
process-nextick-args "^1.0.6"
|
process-nextick-args "^2.0.0"
|
||||||
through2 "^2.0.1"
|
readable-stream "^2.3.5"
|
||||||
|
|
||||||
co@^4.6.0:
|
co@^4.6.0:
|
||||||
version "4.6.0"
|
version "4.6.0"
|
||||||
@@ -273,9 +273,9 @@ color-support@^1.1.3:
|
|||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
|
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
|
||||||
|
|
||||||
combined-stream@^1.0.5, combined-stream@~1.0.5:
|
combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5:
|
||||||
version "1.0.5"
|
version "1.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
|
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
|
||||||
dependencies:
|
dependencies:
|
||||||
delayed-stream "~1.0.0"
|
delayed-stream "~1.0.0"
|
||||||
|
|
||||||
@@ -288,8 +288,8 @@ commander@2.3.0:
|
|||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873"
|
||||||
|
|
||||||
commander@^2.9.0:
|
commander@^2.9.0:
|
||||||
version "2.13.0"
|
version "2.15.0"
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.0.tgz#ad2a23a1c3b036e392469b8012cec6b33b4c1322"
|
||||||
|
|
||||||
commander@~2.8.1:
|
commander@~2.8.1:
|
||||||
version "2.8.1"
|
version "2.8.1"
|
||||||
@@ -333,9 +333,9 @@ dashdash@^1.12.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
assert-plus "^1.0.0"
|
assert-plus "^1.0.0"
|
||||||
|
|
||||||
"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#0.1.3":
|
"dataprotocol-client@github:Microsoft/sqlops-dataprotocolclient#0.1.5":
|
||||||
version "0.1.3"
|
version "0.1.5"
|
||||||
resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/5758b2a5804ea488d14326662f51d19cc970ccd0"
|
resolved "https://codeload.github.com/Microsoft/sqlops-dataprotocolclient/tar.gz/21b0bacfc759689a6c280408528c6029a21b1abf"
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-languageclient "3.5.0"
|
vscode-languageclient "3.5.0"
|
||||||
|
|
||||||
@@ -350,19 +350,13 @@ dateformat@^2.0.0:
|
|||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
|
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
|
||||||
|
|
||||||
debug@2:
|
|
||||||
version "2.6.9"
|
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
|
||||||
dependencies:
|
|
||||||
ms "2.0.0"
|
|
||||||
|
|
||||||
debug@2.2.0:
|
debug@2.2.0:
|
||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "0.7.1"
|
ms "0.7.1"
|
||||||
|
|
||||||
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"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -445,8 +439,8 @@ duplexer@~0.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
|
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
|
||||||
|
|
||||||
duplexify@^3.2.0:
|
duplexify@^3.2.0:
|
||||||
version "3.5.3"
|
version "3.5.4"
|
||||||
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e"
|
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4"
|
||||||
dependencies:
|
dependencies:
|
||||||
end-of-stream "^1.0.0"
|
end-of-stream "^1.0.0"
|
||||||
inherits "^2.0.1"
|
inherits "^2.0.1"
|
||||||
@@ -491,7 +485,7 @@ escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2:
|
|||||||
|
|
||||||
event-stream@^3.3.1, event-stream@~3.3.4:
|
event-stream@^3.3.1, event-stream@~3.3.4:
|
||||||
version "3.3.4"
|
version "3.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
|
resolved "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
|
||||||
dependencies:
|
dependencies:
|
||||||
duplexer "~0.1.1"
|
duplexer "~0.1.1"
|
||||||
from "~0"
|
from "~0"
|
||||||
@@ -503,7 +497,7 @@ event-stream@^3.3.1, event-stream@~3.3.4:
|
|||||||
|
|
||||||
event-stream@~3.1.5:
|
event-stream@~3.1.5:
|
||||||
version "3.1.7"
|
version "3.1.7"
|
||||||
resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.1.7.tgz#b4c540012d0fe1498420f3d8946008db6393c37a"
|
resolved "http://registry.npmjs.org/event-stream/-/event-stream-3.1.7.tgz#b4c540012d0fe1498420f3d8946008db6393c37a"
|
||||||
dependencies:
|
dependencies:
|
||||||
duplexer "~0.1.1"
|
duplexer "~0.1.1"
|
||||||
from "~0"
|
from "~0"
|
||||||
@@ -538,7 +532,7 @@ extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
|
|||||||
"extensions-modules@file:../../extensions-modules":
|
"extensions-modules@file:../../extensions-modules":
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
dataprotocol-client "github:Microsoft/sqlops-dataprotocolclient#0.1.3"
|
dataprotocol-client "github:Microsoft/sqlops-dataprotocolclient#0.1.5"
|
||||||
decompress "^4.2.0"
|
decompress "^4.2.0"
|
||||||
fs-extra-promise "^1.0.1"
|
fs-extra-promise "^1.0.1"
|
||||||
http-proxy-agent "^2.0.0"
|
http-proxy-agent "^2.0.0"
|
||||||
@@ -546,7 +540,7 @@ extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
|
|||||||
opener "^1.4.3"
|
opener "^1.4.3"
|
||||||
tmp "0.0.33"
|
tmp "0.0.33"
|
||||||
vscode-extension-telemetry "0.0.8"
|
vscode-extension-telemetry "0.0.8"
|
||||||
vscode-languageclient "^3.5.0"
|
vscode-languageclient "3.5.0"
|
||||||
|
|
||||||
extglob@^0.3.1:
|
extglob@^0.3.1:
|
||||||
version "0.3.2"
|
version "0.3.2"
|
||||||
@@ -571,8 +565,8 @@ fancy-log@^1.1.0:
|
|||||||
time-stamp "^1.0.0"
|
time-stamp "^1.0.0"
|
||||||
|
|
||||||
fast-deep-equal@^1.0.0:
|
fast-deep-equal@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
|
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
|
||||||
|
|
||||||
fast-json-stable-stringify@^2.0.0:
|
fast-json-stable-stringify@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
@@ -644,11 +638,11 @@ form-data@~2.1.1:
|
|||||||
mime-types "^2.1.12"
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
form-data@~2.3.1:
|
form-data@~2.3.1:
|
||||||
version "2.3.1"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
|
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
|
||||||
dependencies:
|
dependencies:
|
||||||
asynckit "^0.4.0"
|
asynckit "^0.4.0"
|
||||||
combined-stream "^1.0.5"
|
combined-stream "1.0.6"
|
||||||
mime-types "^2.1.12"
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
from@~0:
|
from@~0:
|
||||||
@@ -971,19 +965,19 @@ hoek@2.x.x:
|
|||||||
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
|
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
|
||||||
|
|
||||||
hoek@4.x.x:
|
hoek@4.x.x:
|
||||||
version "4.2.0"
|
version "4.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
|
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
|
||||||
|
|
||||||
hosted-git-info@^2.1.4:
|
hosted-git-info@^2.1.4:
|
||||||
version "2.5.0"
|
version "2.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
|
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222"
|
||||||
|
|
||||||
http-proxy-agent@^2.0.0:
|
http-proxy-agent@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.0.0.tgz#46482a2f0523a4d6082551709f469cb3e4a85ff4"
|
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base "4"
|
agent-base "4"
|
||||||
debug "2"
|
debug "3.1.0"
|
||||||
|
|
||||||
http-signature@~1.1.0:
|
http-signature@~1.1.0:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
@@ -1002,15 +996,15 @@ http-signature@~1.2.0:
|
|||||||
sshpk "^1.7.0"
|
sshpk "^1.7.0"
|
||||||
|
|
||||||
https-proxy-agent@^2.1.0:
|
https-proxy-agent@^2.1.0:
|
||||||
version "2.1.1"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.1.1.tgz#a7ce4382a1ba8266ee848578778122d491260fd9"
|
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.0.tgz#7fbba856be8cd677986f42ebd3664f6317257887"
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base "^4.1.0"
|
agent-base "^4.1.0"
|
||||||
debug "^3.1.0"
|
debug "^3.1.0"
|
||||||
|
|
||||||
ieee754@^1.1.4:
|
ieee754@^1.1.4:
|
||||||
version "1.1.8"
|
version "1.1.10"
|
||||||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
|
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.10.tgz#719a6f7b026831e64bdb838b0de1bb0029bbf716"
|
||||||
|
|
||||||
indent-string@^2.1.0:
|
indent-string@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
@@ -1083,12 +1077,17 @@ is-glob@^3.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-extglob "^2.1.0"
|
is-extglob "^2.1.0"
|
||||||
|
|
||||||
|
is-my-ip-valid@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824"
|
||||||
|
|
||||||
is-my-json-valid@^2.12.4:
|
is-my-json-valid@^2.12.4:
|
||||||
version "2.17.1"
|
version "2.17.2"
|
||||||
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471"
|
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c"
|
||||||
dependencies:
|
dependencies:
|
||||||
generate-function "^2.0.0"
|
generate-function "^2.0.0"
|
||||||
generate-object-property "^1.1.0"
|
generate-object-property "^1.1.0"
|
||||||
|
is-my-ip-valid "^1.0.0"
|
||||||
jsonpointer "^4.0.0"
|
jsonpointer "^4.0.0"
|
||||||
xtend "^4.0.0"
|
xtend "^4.0.0"
|
||||||
|
|
||||||
@@ -1486,15 +1485,15 @@ micromatch@^2.3.7:
|
|||||||
parse-glob "^3.0.4"
|
parse-glob "^3.0.4"
|
||||||
regex-cache "^0.4.2"
|
regex-cache "^0.4.2"
|
||||||
|
|
||||||
mime-db@~1.30.0:
|
mime-db@~1.33.0:
|
||||||
version "1.30.0"
|
version "1.33.0"
|
||||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
|
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
|
||||||
|
|
||||||
mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7:
|
mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7:
|
||||||
version "2.1.17"
|
version "2.1.18"
|
||||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
|
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
|
||||||
dependencies:
|
dependencies:
|
||||||
mime-db "~1.30.0"
|
mime-db "~1.33.0"
|
||||||
|
|
||||||
minimatch@0.3:
|
minimatch@0.3:
|
||||||
version "0.3.0"
|
version "0.3.0"
|
||||||
@@ -1570,8 +1569,8 @@ multipipe@^0.1.0, multipipe@^0.1.2:
|
|||||||
duplexer2 "0.0.2"
|
duplexer2 "0.0.2"
|
||||||
|
|
||||||
natives@^1.1.0:
|
natives@^1.1.0:
|
||||||
version "1.1.1"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.1.tgz#011acce1f7cbd87f7ba6b3093d6cd9392be1c574"
|
resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.2.tgz#4437ca1ed8a7f047531ccdfaf2792853df4efa1c"
|
||||||
|
|
||||||
node.extend@~1.1.2:
|
node.extend@~1.1.2:
|
||||||
version "1.1.6"
|
version "1.1.6"
|
||||||
@@ -1715,9 +1714,9 @@ preserve@^0.2.0:
|
|||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
|
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
|
||||||
|
|
||||||
process-nextick-args@^1.0.6, process-nextick-args@~1.0.6:
|
process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
|
||||||
version "1.0.7"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
|
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
|
||||||
|
|
||||||
punycode@^1.4.1:
|
punycode@^1.4.1:
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
@@ -1768,14 +1767,14 @@ read-pkg@^1.0.0:
|
|||||||
isarray "0.0.1"
|
isarray "0.0.1"
|
||||||
string_decoder "~0.10.x"
|
string_decoder "~0.10.x"
|
||||||
|
|
||||||
readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5:
|
readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.3.5:
|
||||||
version "2.3.3"
|
version "2.3.5"
|
||||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
|
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d"
|
||||||
dependencies:
|
dependencies:
|
||||||
core-util-is "~1.0.0"
|
core-util-is "~1.0.0"
|
||||||
inherits "~2.0.3"
|
inherits "~2.0.3"
|
||||||
isarray "~1.0.0"
|
isarray "~1.0.0"
|
||||||
process-nextick-args "~1.0.6"
|
process-nextick-args "~2.0.0"
|
||||||
safe-buffer "~5.1.1"
|
safe-buffer "~5.1.1"
|
||||||
string_decoder "~1.0.3"
|
string_decoder "~1.0.3"
|
||||||
util-deprecate "~1.0.1"
|
util-deprecate "~1.0.1"
|
||||||
@@ -1829,8 +1828,8 @@ replace-ext@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
|
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
|
||||||
|
|
||||||
request@^2.67.0:
|
request@^2.67.0:
|
||||||
version "2.83.0"
|
version "2.85.0"
|
||||||
resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
|
resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa"
|
||||||
dependencies:
|
dependencies:
|
||||||
aws-sign2 "~0.7.0"
|
aws-sign2 "~0.7.0"
|
||||||
aws4 "^1.6.0"
|
aws4 "^1.6.0"
|
||||||
@@ -1936,19 +1935,27 @@ sparkles@^1.0.0:
|
|||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3"
|
resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3"
|
||||||
|
|
||||||
spdx-correct@~1.0.0:
|
spdx-correct@^3.0.0:
|
||||||
version "1.0.2"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
|
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
|
||||||
dependencies:
|
dependencies:
|
||||||
spdx-license-ids "^1.0.2"
|
spdx-expression-parse "^3.0.0"
|
||||||
|
spdx-license-ids "^3.0.0"
|
||||||
|
|
||||||
spdx-expression-parse@~1.0.0:
|
spdx-exceptions@^2.1.0:
|
||||||
version "1.0.4"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
|
resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
|
||||||
|
|
||||||
spdx-license-ids@^1.0.2:
|
spdx-expression-parse@^3.0.0:
|
||||||
version "1.2.2"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
|
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
|
||||||
|
dependencies:
|
||||||
|
spdx-exceptions "^2.1.0"
|
||||||
|
spdx-license-ids "^3.0.0"
|
||||||
|
|
||||||
|
spdx-license-ids@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87"
|
||||||
|
|
||||||
split@0.2:
|
split@0.2:
|
||||||
version "0.2.10"
|
version "0.2.10"
|
||||||
@@ -1963,8 +1970,8 @@ split@0.3:
|
|||||||
through "2"
|
through "2"
|
||||||
|
|
||||||
sshpk@^1.7.0:
|
sshpk@^1.7.0:
|
||||||
version "1.13.1"
|
version "1.14.1"
|
||||||
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
|
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb"
|
||||||
dependencies:
|
dependencies:
|
||||||
asn1 "~0.2.3"
|
asn1 "~0.2.3"
|
||||||
assert-plus "^1.0.0"
|
assert-plus "^1.0.0"
|
||||||
@@ -2101,7 +2108,7 @@ through2@^0.6.0, through2@^0.6.3, through2@~0.6.5:
|
|||||||
readable-stream ">=1.0.33-1 <1.1.0-0"
|
readable-stream ">=1.0.33-1 <1.1.0-0"
|
||||||
xtend ">=4.0.0 <4.1.0-0"
|
xtend ">=4.0.0 <4.1.0-0"
|
||||||
|
|
||||||
through2@^2.0.0, through2@^2.0.1, through2@^2.0.3, through2@~2.0.0, through2@~2.0.3:
|
through2@^2.0.0, through2@^2.0.3, through2@~2.0.0, through2@~2.0.3:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
|
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -2140,8 +2147,8 @@ to-iso-string@0.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1"
|
resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1"
|
||||||
|
|
||||||
tough-cookie@~2.3.0, tough-cookie@~2.3.3:
|
tough-cookie@~2.3.0, tough-cookie@~2.3.3:
|
||||||
version "2.3.3"
|
version "2.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
|
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
|
||||||
dependencies:
|
dependencies:
|
||||||
punycode "^1.4.1"
|
punycode "^1.4.1"
|
||||||
|
|
||||||
@@ -2190,11 +2197,11 @@ vali-date@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6"
|
resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6"
|
||||||
|
|
||||||
validate-npm-package-license@^3.0.1:
|
validate-npm-package-license@^3.0.1:
|
||||||
version "3.0.1"
|
version "3.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
|
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338"
|
||||||
dependencies:
|
dependencies:
|
||||||
spdx-correct "~1.0.0"
|
spdx-correct "^3.0.0"
|
||||||
spdx-expression-parse "~1.0.0"
|
spdx-expression-parse "^3.0.0"
|
||||||
|
|
||||||
verror@1.10.0:
|
verror@1.10.0:
|
||||||
version "1.10.0"
|
version "1.10.0"
|
||||||
@@ -2281,26 +2288,26 @@ vscode-extension-telemetry@0.0.8:
|
|||||||
applicationinsights "0.18.0"
|
applicationinsights "0.18.0"
|
||||||
winreg "1.2.3"
|
winreg "1.2.3"
|
||||||
|
|
||||||
vscode-jsonrpc@^3.5.0:
|
vscode-jsonrpc@^3.6.0:
|
||||||
version "3.5.0"
|
version "3.6.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.6.0.tgz#848d56995d5168950d84feb5d9c237ae5c6a02d4"
|
||||||
|
|
||||||
vscode-languageclient@3.5.0, vscode-languageclient@^3.5.0:
|
vscode-languageclient@3.5.0:
|
||||||
version "3.5.0"
|
version "3.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.0.tgz#36d02cc186a8365a4467719a290fb200a9ae490a"
|
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-3.5.0.tgz#36d02cc186a8365a4467719a290fb200a9ae490a"
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-languageserver-protocol "^3.5.0"
|
vscode-languageserver-protocol "^3.5.0"
|
||||||
|
|
||||||
vscode-languageserver-protocol@^3.5.0:
|
vscode-languageserver-protocol@^3.5.0:
|
||||||
version "3.5.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.5.0.tgz#067c5cbe27709795398d119692c97ebba1452209"
|
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.6.0.tgz#579642cdcccf74b0cd771c33daa3239acb40d040"
|
||||||
dependencies:
|
dependencies:
|
||||||
vscode-jsonrpc "^3.5.0"
|
vscode-jsonrpc "^3.6.0"
|
||||||
vscode-languageserver-types "^3.5.0"
|
vscode-languageserver-types "^3.6.0"
|
||||||
|
|
||||||
vscode-languageserver-types@^3.5.0:
|
vscode-languageserver-types@^3.6.0:
|
||||||
version "3.5.0"
|
version "3.6.1"
|
||||||
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.6.1.tgz#4bc06a48dff653495f12f94b8b1e228988a1748d"
|
||||||
|
|
||||||
vscode@1.0.1:
|
vscode@1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "sqlops",
|
"name": "sqlops",
|
||||||
"version": "0.27.0",
|
"version": "0.27.2",
|
||||||
"distro": "8c3e97e3425cc9814496472ab73e076de2ba99ee",
|
"distro": "8c3e97e3425cc9814496472ab73e076de2ba99ee",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Microsoft Corporation"
|
"name": "Microsoft Corporation"
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
"@angular/router": "~4.1.3",
|
"@angular/router": "~4.1.3",
|
||||||
"@angular/upgrade": "~4.1.3",
|
"@angular/upgrade": "~4.1.3",
|
||||||
"angular2-grid": "2.0.6",
|
"angular2-grid": "2.0.6",
|
||||||
"angular2-slickgrid": "git://github.com/Microsoft/angular2-slickgrid.git#1.3.9",
|
"angular2-slickgrid": "git://github.com/Microsoft/angular2-slickgrid.git#1.3.11",
|
||||||
"applicationinsights": "0.17.1",
|
"applicationinsights": "0.17.1",
|
||||||
"chart.js": "^2.6.0",
|
"chart.js": "^2.6.0",
|
||||||
"core-js": "^2.4.1",
|
"core-js": "^2.4.1",
|
||||||
|
|||||||
@@ -29,7 +29,11 @@
|
|||||||
"documentationUrl": "https://go.microsoft.com/fwlink/?linkid=862277",
|
"documentationUrl": "https://go.microsoft.com/fwlink/?linkid=862277",
|
||||||
"commit": "9ca6200018fc206d67a47229f991901a8a453781",
|
"commit": "9ca6200018fc206d67a47229f991901a8a453781",
|
||||||
"date": "2017-12-15T12:00:00.000Z",
|
"date": "2017-12-15T12:00:00.000Z",
|
||||||
"recommendedExtensions": [],
|
"recommendedExtensions": [
|
||||||
|
"Microsoft.agent",
|
||||||
|
"Microsoft.whoisactive",
|
||||||
|
"Microsoft.server-report"
|
||||||
|
],
|
||||||
"extensionsGallery": {
|
"extensionsGallery": {
|
||||||
"serviceUrl": "https://raw.githubusercontent.com/Microsoft/sqlopsstudio/release/extensions/extensionsGallery.json"
|
"serviceUrl": "https://raw.githubusercontent.com/Microsoft/sqlopsstudio/release/extensions/extensionsGallery.json"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,24 @@
|
|||||||
The MIT License (MIT)
|
MICROSOFT SOFTWARE LICENSE TERMS
|
||||||
|
|
||||||
Copyright (c) 2018 Microsoft
|
MICROSOFT SQL OPERATIONS STUDIO
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Microsoft Corporation ("Microsoft") grants you a nonexclusive, perpetual,
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
royalty-free right to use, copy, and modify the software code provided by us
|
||||||
in the Software without restriction, including without limitation the rights
|
("Software Code"). You may not sublicense the Software Code or any use of it
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
(except to your affiliates and to vendors to perform work on your behalf)
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
through distribution, network access, service agreement, lease, rental, or
|
||||||
furnished to do so, subject to the following conditions:
|
otherwise. Unless applicable law gives you more rights, Microsoft reserves all
|
||||||
|
other rights not expressly granted herein, whether by implication, estoppel or
|
||||||
|
otherwise.
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
THE SOFTWARE CODE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
||||||
copies or substantial portions of the Software.
|
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||||
|
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
AND NONINFRINGEMENT. IN NO EVENT SHALL MICROSOFT OR ITS LICENSORS
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
SOFTWARE.
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
|
||||||
|
SAMPLE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*---------------------------------------------------------------------------------------------
|
/*---------------------------------------------------------------------------------------------
|
||||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|||||||
725
samples/extensionSamples/package-lock.json
generated
@@ -5,10 +5,11 @@
|
|||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"publisher": "Microsoft",
|
"publisher": "Microsoft",
|
||||||
"engines": {
|
"engines": {
|
||||||
"vscode": "^1.19.0"
|
"vscode": "^1.19.0",
|
||||||
|
"sqlops": "*"
|
||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "SEE LICENSE IN LICENSE.txt",
|
||||||
"repository": "qqq.com",
|
"repository": "https://github.com/Microsoft/sqlopsstudio",
|
||||||
"categories": [
|
"categories": [
|
||||||
"Other"
|
"Other"
|
||||||
],
|
],
|
||||||
@@ -61,7 +62,6 @@
|
|||||||
"webview-container": null
|
"webview-container": null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -148,14 +148,12 @@
|
|||||||
"widgets-container": [
|
"widgets-container": [
|
||||||
{
|
{
|
||||||
"widget": {
|
"widget": {
|
||||||
"query-data-store-db-insight": {
|
"query-data-store-db-insight": {}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"widget": {
|
"widget": {
|
||||||
"explorer-widget": {
|
"explorer-widget": {}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -165,6 +163,7 @@
|
|||||||
"snippets": []
|
"snippets": []
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"prepare": "node ./node_modules/sqlops/bin/install",
|
||||||
"build": "gulp build",
|
"build": "gulp build",
|
||||||
"compile": "gulp compile",
|
"compile": "gulp compile",
|
||||||
"watch": "gulp watch",
|
"watch": "gulp watch",
|
||||||
@@ -173,7 +172,8 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fs-extra": "^5.0.0",
|
"fs-extra": "^5.0.0",
|
||||||
"handlebars": "^4.0.11",
|
"handlebars": "^4.0.11",
|
||||||
"vscode-nls": "2.0.2"
|
"vscode-nls": "2.0.2",
|
||||||
|
"sqlops": "github:anthonydresser/vscode-extension-vscode"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/handlebars": "^4.0.11",
|
"@types/handlebars": "^4.0.11",
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
// CONFIG VALUES ///////////////////////////////////////////////////////////
|
// CONFIG VALUES ///////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
<!--
|
||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
-->
|
||||||
<html>
|
<html>
|
||||||
<header>
|
<header>
|
||||||
</header>
|
</header>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*---------------------------------------------------------------------------------------------
|
/*---------------------------------------------------------------------------------------------
|
||||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
<!--
|
||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
-->
|
||||||
<html>
|
<html>
|
||||||
<header>
|
<header>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*---------------------------------------------------------------------------------------------
|
/*---------------------------------------------------------------------------------------------
|
||||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
<!--
|
||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
-->
|
||||||
<html>
|
<html>
|
||||||
<header>
|
<header>
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*---------------------------------------------------------------------------------------------
|
/*---------------------------------------------------------------------------------------------
|
||||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
// TODO: localize!
|
// TODO: localize!
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as fs from 'fs-extra';
|
import * as fs from 'fs-extra';
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*---------------------------------------------------------------------------------------------
|
/*---------------------------------------------------------------------------------------------
|
||||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
|
|
||||||
var projectRoot = path.resolve(path.dirname(__dirname));
|
var projectRoot = path.resolve(path.dirname(__dirname));
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*---------------------------------------------------------------------------------------------
|
/*---------------------------------------------------------------------------------------------
|
||||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|||||||
1530
samples/extensionSamples/typings/sqlops.d.ts
vendored
8
samples/serverReports/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
out
|
||||||
|
node_modules
|
||||||
|
.vscode-test/
|
||||||
|
*.vsix
|
||||||
|
.DS_Store
|
||||||
|
.idea
|
||||||
|
test-reports/**
|
||||||
28
samples/serverReports/.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
// Use IntelliSense to learn about possible attributes.
|
||||||
|
// Hover to view descriptions of existing attributes.
|
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "Launch Program",
|
||||||
|
"program": "${workspaceFolder}\\out\\src\\extension"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "node",
|
||||||
|
"request": "attach",
|
||||||
|
"name": "Attach to Ops Studio",
|
||||||
|
"protocol": "inspector",
|
||||||
|
"port": 5870,
|
||||||
|
"restart": true,
|
||||||
|
"sourceMaps": true,
|
||||||
|
"outFiles": [
|
||||||
|
"${workspaceRoot}/out/**/*.js"
|
||||||
|
],
|
||||||
|
"preLaunchTask": "",
|
||||||
|
"timeout": 25000
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
29
samples/serverReports/.vscodeignore
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Unwanted compiled files
|
||||||
|
out/test/**
|
||||||
|
out/**/*.map
|
||||||
|
*.vsix
|
||||||
|
|
||||||
|
# Build/Source files
|
||||||
|
src/**
|
||||||
|
tasks/**
|
||||||
|
test/**
|
||||||
|
typings/**
|
||||||
|
packages/**
|
||||||
|
samples/**
|
||||||
|
.gitignore
|
||||||
|
tsconfig.json
|
||||||
|
|
||||||
|
# IDE Settings
|
||||||
|
.vscode/**
|
||||||
|
.vscode-test/**
|
||||||
|
.idea/**
|
||||||
|
.sqlops/**
|
||||||
|
|
||||||
|
# Reference files
|
||||||
|
**/*.ts
|
||||||
|
**/*.map
|
||||||
|
.gitignore
|
||||||
|
tsconfig.json
|
||||||
|
*.exe
|
||||||
|
*.dat
|
||||||
|
gulpfile.js
|
||||||
1
samples/serverReports/CHANGELOG.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# Change Log
|
||||||
24
samples/serverReports/LICENSE.txt
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
MICROSOFT SOFTWARE LICENSE TERMS
|
||||||
|
|
||||||
|
MICROSOFT SQL OPERATIONS STUDIO
|
||||||
|
|
||||||
|
Microsoft Corporation ("Microsoft") grants you a nonexclusive, perpetual,
|
||||||
|
royalty-free right to use, copy, and modify the software code provided by us
|
||||||
|
("Software Code"). You may not sublicense the Software Code or any use of it
|
||||||
|
(except to your affiliates and to vendors to perform work on your behalf)
|
||||||
|
through distribution, network access, service agreement, lease, rental, or
|
||||||
|
otherwise. Unless applicable law gives you more rights, Microsoft reserves all
|
||||||
|
other rights not expressly granted herein, whether by implication, estoppel or
|
||||||
|
otherwise.
|
||||||
|
|
||||||
|
THE SOFTWARE CODE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
||||||
|
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||||
|
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
AND NONINFRINGEMENT. IN NO EVENT SHALL MICROSOFT OR ITS LICENSORS
|
||||||
|
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||||
|
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
|
||||||
|
SAMPLE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
4
samples/serverReports/README.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# server reports for SQL Operations Studio
|
||||||
|
|
||||||
|
Welcome to **server reports** for SQL Operations Studio! Server reports give useful insights about the server.
|
||||||
|
|
||||||
14
samples/serverReports/gulpfile.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// NOTE: These are es6 gulpfiles
|
||||||
|
|
||||||
|
// Basic build tasks
|
||||||
|
require('./tasks/buildtasks');
|
||||||
|
|
||||||
|
// VSIX generation tasks
|
||||||
|
require('./tasks/packagetasks');
|
||||||
7408
samples/serverReports/package-lock.json
generated
Normal file
214
samples/serverReports/package.json
Normal file
@@ -0,0 +1,214 @@
|
|||||||
|
{
|
||||||
|
"name": "server-report",
|
||||||
|
"displayName": "Server Reports",
|
||||||
|
"description": "Server Reports",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"publisher": "Microsoft",
|
||||||
|
"engines": {
|
||||||
|
"vscode": "^1.19.0",
|
||||||
|
"sqlops": "*"
|
||||||
|
},
|
||||||
|
"license": "SEE LICENSE IN LICENSE.txt",
|
||||||
|
"repository": "https://github.com/Microsoft/sqlopsstudio",
|
||||||
|
"categories": [
|
||||||
|
"Other"
|
||||||
|
],
|
||||||
|
"activationEvents": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"main": "./out/src/extension",
|
||||||
|
"contributes": {
|
||||||
|
"configuration": [],
|
||||||
|
"commands": [],
|
||||||
|
"views": {},
|
||||||
|
"menus": {},
|
||||||
|
"dashboard.tabs": [
|
||||||
|
{
|
||||||
|
"id": "Server-Reports",
|
||||||
|
"title": "Server Reports",
|
||||||
|
"description": "This extension shows useful reports for a server.",
|
||||||
|
"container": {
|
||||||
|
"server-insights1": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dashboard.insights": [
|
||||||
|
{
|
||||||
|
"id": "extension-dbspace-usage",
|
||||||
|
"contrib": {
|
||||||
|
"type": {
|
||||||
|
"horizontalBar": {
|
||||||
|
"dataDirection": "vertical",
|
||||||
|
"dataType": "number",
|
||||||
|
"legendPosition": "top",
|
||||||
|
"labelFirstColumn": false,
|
||||||
|
"columnsAsLabels": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queryFile": "./out/src/sql/all_db_space_used.sql"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "extension-cpu-utilization",
|
||||||
|
"contrib": {
|
||||||
|
"type": {
|
||||||
|
"timeSeries": {
|
||||||
|
"dataDirection": "horizontal",
|
||||||
|
"dataType": "point",
|
||||||
|
"legendPosition": "top",
|
||||||
|
"labelFirstColumn": false,
|
||||||
|
"columnsAsLabels": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queryFile": "./out/src/sql/cpumetric.sql"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "extension-backup-growth-trend",
|
||||||
|
"details": "Abbie wants it",
|
||||||
|
"contrib": {
|
||||||
|
"type": {
|
||||||
|
"timeSeries": {
|
||||||
|
"dataDirection": "horizontal",
|
||||||
|
"dataType": "point",
|
||||||
|
"legendPosition": "none",
|
||||||
|
"labelFirstColumn": false,
|
||||||
|
"columnsAsLabels": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queryFile": "./out/src/sql/backup_size_trend.sql"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "extension-wait-counts-by-Paul-Randal",
|
||||||
|
"contrib": {
|
||||||
|
"type": {
|
||||||
|
"horizontalBar": {
|
||||||
|
"dataDirection": "vertical",
|
||||||
|
"dataType": "number",
|
||||||
|
"legendPosition": "none",
|
||||||
|
"labelFirstColumn": false,
|
||||||
|
"columnsAsLabels": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queryFile": "./out/src/sql/waits_paul_randal.sql",
|
||||||
|
"details": {
|
||||||
|
"queryFile": "./out/src/sql/waits_detail_paul_randal.sql",
|
||||||
|
"label": {
|
||||||
|
"column": "WaitType",
|
||||||
|
"state": []
|
||||||
|
},
|
||||||
|
"value": "Percentage"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "extension-dbbuffer-usage",
|
||||||
|
"contrib": {
|
||||||
|
"type": {
|
||||||
|
"horizontalBar": {
|
||||||
|
"dataDirection": "vertical",
|
||||||
|
"dataType": "number",
|
||||||
|
"legendPosition": "top",
|
||||||
|
"labelFirstColumn": false,
|
||||||
|
"columnsAsLabels": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queryFile": "./out/src/sql/memorybydb.sql"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dashboard.containers": [
|
||||||
|
{
|
||||||
|
"id": "server-insights1",
|
||||||
|
"container": {
|
||||||
|
"widgets-container": [
|
||||||
|
{
|
||||||
|
"name": "DB Space Usage",
|
||||||
|
"gridItemConfig": {
|
||||||
|
"sizex": 2,
|
||||||
|
"sizey": 1
|
||||||
|
},
|
||||||
|
"widget": {
|
||||||
|
"extension-dbspace-usage": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CPU Utilization",
|
||||||
|
"gridItemConfig": {
|
||||||
|
"sizex": 2,
|
||||||
|
"sizey": 1
|
||||||
|
},
|
||||||
|
"widget": {
|
||||||
|
"extension-cpu-utilization": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Backup Growth Trend",
|
||||||
|
"gridItemConfig": {
|
||||||
|
"sizex": 2,
|
||||||
|
"sizey": 1
|
||||||
|
},
|
||||||
|
"widget": {
|
||||||
|
"extension-backup-growth-trend": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Wait Counts by Paul Randal",
|
||||||
|
"gridItemConfig": {
|
||||||
|
"sizex": 2,
|
||||||
|
"sizey": 2
|
||||||
|
},
|
||||||
|
"widget": {
|
||||||
|
"extension-wait-counts-by-Paul-Randal": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DB Buffer Usage",
|
||||||
|
"gridItemConfig": {
|
||||||
|
"sizex": 2,
|
||||||
|
"sizey": 2
|
||||||
|
},
|
||||||
|
"widget": {
|
||||||
|
"extension-dbbuffer-usage": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"snippets": []
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"prepare": "node ./node_modules/sqlops/bin/install",
|
||||||
|
"build": "gulp build",
|
||||||
|
"compile": "gulp compile",
|
||||||
|
"watch": "gulp watch",
|
||||||
|
"postinstall": "node ./node_modules/vscode/bin/install"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"fs-extra": "^5.0.0",
|
||||||
|
"handlebars": "^4.0.11",
|
||||||
|
"vscode-nls": "2.0.2",
|
||||||
|
"sqlops": "github:anthonydresser/vscode-extension-vscode"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/handlebars": "^4.0.11",
|
||||||
|
"@types/mocha": "^2.2.42",
|
||||||
|
"@types/node": "^7.0.43",
|
||||||
|
"child-process-promise": "^2.2.1",
|
||||||
|
"del": "^3.0.0",
|
||||||
|
"gulp": "^4.0.0",
|
||||||
|
"gulp-color": "0.0.1",
|
||||||
|
"gulp-sourcemaps": "^2.6.4",
|
||||||
|
"gulp-tslint": "^6.0.2",
|
||||||
|
"gulp-typescript": "^3.2.4",
|
||||||
|
"should": "^13.2.1",
|
||||||
|
"temp-write": "^3.4.0",
|
||||||
|
"tslint": "^3.14.0",
|
||||||
|
"typemoq": "^2.1.0",
|
||||||
|
"typescript": "^2.6.1",
|
||||||
|
"vscode": "^1.1.6",
|
||||||
|
"vsce": "1.36.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
9
samples/serverReports/src/constants.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// CONFIG VALUES ///////////////////////////////////////////////////////////
|
||||||
|
export const extensionConfigSectionName = 'server-reports';
|
||||||
|
export const configLogDebugInfo = 'logDebugInfo';
|
||||||
25
samples/serverReports/src/controllers/controllerBase.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
import * as vscode from 'vscode';
|
||||||
|
|
||||||
|
export default abstract class ControllerBase implements vscode.Disposable {
|
||||||
|
protected _context: vscode.ExtensionContext;
|
||||||
|
|
||||||
|
public constructor(context: vscode.ExtensionContext) {
|
||||||
|
this._context = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract activate(): Promise<boolean>;
|
||||||
|
|
||||||
|
abstract deactivate(): void;
|
||||||
|
|
||||||
|
public dispose(): void {
|
||||||
|
this.deactivate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
30
samples/serverReports/src/controllers/mainController.ts
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
import * as sqlops from 'sqlops';
|
||||||
|
import * as Utils from '../utils';
|
||||||
|
import ControllerBase from './controllerBase';
|
||||||
|
import * as fs from 'fs';
|
||||||
|
import * as path from 'path';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The main controller class that initializes the extension
|
||||||
|
*/
|
||||||
|
export default class MainController extends ControllerBase {
|
||||||
|
// PUBLIC METHODS //////////////////////////////////////////////////////
|
||||||
|
/**
|
||||||
|
* Deactivates the extension
|
||||||
|
*/
|
||||||
|
public deactivate(): void {
|
||||||
|
Utils.logDebug('Main controller deactivated');
|
||||||
|
}
|
||||||
|
|
||||||
|
public activate(): Promise<boolean> {
|
||||||
|
return Promise.resolve(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
39
samples/serverReports/src/extension.ts
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
import * as vscode from 'vscode';
|
||||||
|
|
||||||
|
import ControllerBase from './controllers/controllerBase';
|
||||||
|
import MainController from './controllers/mainController';
|
||||||
|
|
||||||
|
let controllers: ControllerBase[] = [];
|
||||||
|
|
||||||
|
export function activate(context: vscode.ExtensionContext): Promise<boolean> {
|
||||||
|
let activations: Promise<boolean>[] = [];
|
||||||
|
|
||||||
|
// Start the main controller
|
||||||
|
let mainController = new MainController(context);
|
||||||
|
controllers.push(mainController);
|
||||||
|
context.subscriptions.push(mainController);
|
||||||
|
activations.push(mainController.activate());
|
||||||
|
|
||||||
|
return Promise.all(activations)
|
||||||
|
.then((results: boolean[]) => {
|
||||||
|
for (let result of results) {
|
||||||
|
if (!result) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deactivate(): void {
|
||||||
|
for (let controller of controllers) {
|
||||||
|
controller.deactivate();
|
||||||
|
}
|
||||||
|
}
|
||||||
7
samples/serverReports/src/localizedConstants.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// TODO: localize!
|
||||||
103
samples/serverReports/src/sql/all_db_space_used.sql
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
--Source: https://gallery.technet.microsoft.com/scriptcenter/All-Databases-Data-log-a36da95d
|
||||||
|
-- Use for a demo/sample purpose only. This query is not built-in to any product.
|
||||||
|
|
||||||
|
------------------------------Data file size----------------------------
|
||||||
|
declare @dbsize table
|
||||||
|
(Dbname varchar(30),
|
||||||
|
file_Size_MB decimal(20,2)default (0),
|
||||||
|
Space_Used_MB decimal(20,2)default (0),
|
||||||
|
Free_Space_MB decimal(20,2) default (0))
|
||||||
|
insert into @dbsize
|
||||||
|
(Dbname,file_Size_MB,Space_Used_MB,Free_Space_MB)
|
||||||
|
exec sp_msforeachdb
|
||||||
|
'use [?];
|
||||||
|
select DB_NAME() AS DbName,
|
||||||
|
sum(size)/128.0 AS File_Size_MB,
|
||||||
|
sum(CAST(FILEPROPERTY(name, ''SpaceUsed'') AS INT))/128.0 as Space_Used_MB,
|
||||||
|
SUM( size)/128.0 - sum(CAST(FILEPROPERTY(name,''SpaceUsed'') AS INT))/128.0 AS Free_Space_MB
|
||||||
|
from sys.database_files where type=0 group by type'
|
||||||
|
-------------------log size--------------------------------------
|
||||||
|
declare @logsize table
|
||||||
|
(Dbname varchar(30),
|
||||||
|
Log_File_Size_MB decimal(20,2)default (0),
|
||||||
|
log_Space_Used_MB decimal(20,2)default (0),
|
||||||
|
log_Free_Space_MB decimal(20,2)default (0))
|
||||||
|
insert into @logsize
|
||||||
|
(Dbname,Log_File_Size_MB,log_Space_Used_MB,log_Free_Space_MB)
|
||||||
|
exec sp_msforeachdb
|
||||||
|
'use [?];
|
||||||
|
select DB_NAME() AS DbName,
|
||||||
|
sum(size)/128.0 AS Log_File_Size_MB,
|
||||||
|
sum(CAST(FILEPROPERTY(name, ''SpaceUsed'') AS INT))/128.0 as log_Space_Used_MB,
|
||||||
|
SUM( size)/128.0 - sum(CAST(FILEPROPERTY(name,''SpaceUsed'') AS INT))/128.0 AS log_Free_Space_MB
|
||||||
|
from sys.database_files where type=1 group by type'
|
||||||
|
--------------------------------database free size
|
||||||
|
declare @dbfreesize table
|
||||||
|
(name varchar(50),
|
||||||
|
database_size varchar(50),
|
||||||
|
Freespace varchar(50)default (0.00))
|
||||||
|
insert into @dbfreesize
|
||||||
|
(name,database_size,Freespace)
|
||||||
|
exec sp_msforeachdb
|
||||||
|
'use ?;SELECT database_name = db_name()
|
||||||
|
,database_size = ltrim(str((convert(DECIMAL(15, 2), dbsize) + convert(DECIMAL(15, 2), logsize)) * 8192 / 1048576, 15, 2) + ''MB'')
|
||||||
|
,''unallocated space'' = ltrim(str((
|
||||||
|
CASE
|
||||||
|
WHEN dbsize >= reservedpages
|
||||||
|
THEN (convert(DECIMAL(15, 2), dbsize) - convert(DECIMAL(15, 2), reservedpages)) * 8192 / 1048576
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
), 15, 2) + '' MB'')
|
||||||
|
FROM (
|
||||||
|
SELECT dbsize = sum(convert(BIGINT, CASE
|
||||||
|
WHEN type = 0
|
||||||
|
THEN size
|
||||||
|
ELSE 0
|
||||||
|
END))
|
||||||
|
,logsize = sum(convert(BIGINT, CASE
|
||||||
|
WHEN type <> 0
|
||||||
|
THEN size
|
||||||
|
ELSE 0
|
||||||
|
END))
|
||||||
|
FROM sys.database_files
|
||||||
|
) AS files
|
||||||
|
,(
|
||||||
|
SELECT reservedpages = sum(a.total_pages)
|
||||||
|
,usedpages = sum(a.used_pages)
|
||||||
|
,pages = sum(CASE
|
||||||
|
WHEN it.internal_type IN (
|
||||||
|
202
|
||||||
|
,204
|
||||||
|
,211
|
||||||
|
,212
|
||||||
|
,213
|
||||||
|
,214
|
||||||
|
,215
|
||||||
|
,216
|
||||||
|
)
|
||||||
|
THEN 0
|
||||||
|
WHEN a.type <> 1
|
||||||
|
THEN a.used_pages
|
||||||
|
WHEN p.index_id < 2
|
||||||
|
THEN a.data_pages
|
||||||
|
ELSE 0
|
||||||
|
END)
|
||||||
|
FROM sys.partitions p
|
||||||
|
INNER JOIN sys.allocation_units a
|
||||||
|
ON p.partition_id = a.container_id
|
||||||
|
LEFT JOIN sys.internal_tables it
|
||||||
|
ON p.object_id = it.object_id
|
||||||
|
) AS partitions'
|
||||||
|
-----------------------------------
|
||||||
|
select
|
||||||
|
d.Dbname,
|
||||||
|
--(file_size_mb + log_file_size_mb) as DBsize,
|
||||||
|
--d.file_Size_MB,
|
||||||
|
d.Space_Used_MB,
|
||||||
|
--d.Free_Space_MB,
|
||||||
|
--l.Log_File_Size_MB,
|
||||||
|
l.log_Space_Used_MB--,
|
||||||
|
--l.log_Free_Space_MB,
|
||||||
|
--fs.Freespace as DB_Freespace
|
||||||
|
from @dbsize d join @logsize l on d.Dbname=l.Dbname join @dbfreesize fs on d.Dbname=fs.name
|
||||||
|
order by Dbname
|
||||||
33
samples/serverReports/src/sql/backup_detail.sql
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
declare @condition tinyint;
|
||||||
|
SET @condition = 24;
|
||||||
|
|
||||||
|
select
|
||||||
|
d.database_id as [Database ID],
|
||||||
|
d.name as [Database],
|
||||||
|
d.recovery_model_desc as [Recovery model],
|
||||||
|
d.state_desc as [Database state],
|
||||||
|
case
|
||||||
|
when b.type = N'D' then N'Database'
|
||||||
|
when b.type = N'I' then N'Differential Database'
|
||||||
|
when b.type = N'L' then N'Log'
|
||||||
|
when b.type = N'F' then N'File or Filegroup'
|
||||||
|
when b.type = N'G' then N'Differental File'
|
||||||
|
when b.type = N'P' then N'Partial'
|
||||||
|
when b.type = N'Q' then N'Differential Partial'
|
||||||
|
else NULL
|
||||||
|
end
|
||||||
|
as [Backup type],
|
||||||
|
b.backup_start_date as [Backup start date],
|
||||||
|
b.backup_finish_date as [Backup finish date],
|
||||||
|
case
|
||||||
|
when m.last_backup_time is null then 0 --N'No backup found'
|
||||||
|
when datediff(hh, m.last_backup_time, getdate()) > @condition then 1 -- N'Older than 24hrs'
|
||||||
|
else 2 --N'Within 24hrs'
|
||||||
|
end as [Backup_Health]
|
||||||
|
from sys.databases as d
|
||||||
|
left join msdb..backupset as b on d.name = b.database_name
|
||||||
|
left join (select bs.database_name, max(bs.backup_start_date) as last_backup_time
|
||||||
|
from msdb..backupset as bs
|
||||||
|
group by bs.database_name ) as m on d.name = m.database_name and b.backup_start_date = m.last_backup_time
|
||||||
|
where b.backup_start_date is null or b.backup_start_date = m.last_backup_time
|
||||||
|
order by d.database_id asc
|
||||||
15
samples/serverReports/src/sql/backup_insight.sql
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
declare @condition tinyint;
|
||||||
|
SET @condition = 24;
|
||||||
|
with
|
||||||
|
backupInsight_cte (database_id, last_backup, health_check)
|
||||||
|
as
|
||||||
|
(
|
||||||
|
select d.database_id, max(b.backup_start_date) AS last_backup, case when (datediff( hh , max(b.backup_start_date) , getdate()) < @condition) then 1 else 0 end as health_check
|
||||||
|
from sys.databases as d left join msdb..backupset as b on d.name = b.database_name
|
||||||
|
group by d.database_id
|
||||||
|
)
|
||||||
|
select
|
||||||
|
sum(health_check) [Within 24hrs],
|
||||||
|
sum(case when health_check = 0 AND last_backup IS NOT NULL then 1 else 0 end) [Older than 24hrs],
|
||||||
|
sum(case when health_check = 0 AND last_backup IS NULL then 1 else 0 end) [No backup found]
|
||||||
|
from backupInsight_cte
|
||||||
10
samples/serverReports/src/sql/backup_size_trend.sql
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
SELECT
|
||||||
|
[database_name] AS "database",
|
||||||
|
format(backup_start_date, 'yyyy-MM-dd') as date,
|
||||||
|
--DATEPART(month,[backup_start_date]) AS "Month",
|
||||||
|
AVG([backup_size]/1024/1024) AS "size MB"
|
||||||
|
--AVG([compressed_backup_size]/1024/1024) AS "Compressed Backup Size MB",
|
||||||
|
--AVG([backup_size]/[compressed_backup_size]) AS "Compression Ratio"
|
||||||
|
FROM msdb.dbo.backupset
|
||||||
|
where [type] = 'D'
|
||||||
|
GROUP BY [database_name], format(backup_start_date, 'yyyy-MM-dd') --DATEPART(mm,[backup_start_date]);
|
||||||
25
samples/serverReports/src/sql/cpumetric.sql
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
-- source: https://sqlserverperformance.wordpress.com/2009/07/30/how-to-get-sql-server-cpu-utilization-from-a-query/
|
||||||
|
-- Use for a demo/sample purpose only. This query is not built-in to any product.
|
||||||
|
|
||||||
|
DECLARE @ts_now bigint = (SELECT cpu_ticks/(cpu_ticks/ms_ticks)FROM sys.dm_os_sys_info);
|
||||||
|
|
||||||
|
SELECT Top(30) 'CPU%' as [label],
|
||||||
|
DATEADD(ms, -1 * (@ts_now - [timestamp]), GETDATE()) AS [Event Time],
|
||||||
|
SQLProcessUtilization AS [SQL Server Process CPU Utilization]
|
||||||
|
-- SystemIdle AS [System Idle Process],
|
||||||
|
-- 100 - SystemIdle - SQLProcessUtilization AS [Other Process CPU Utilization],
|
||||||
|
FROM (
|
||||||
|
SELECT record.value('(./Record/@id)[1]', 'int') AS record_id,
|
||||||
|
record.value('(./Record/SchedulerMonitorEvent/SystemHealth/SystemIdle)[1]', 'int')
|
||||||
|
AS [SystemIdle],
|
||||||
|
record.value('(./Record/SchedulerMonitorEvent/SystemHealth/ProcessUtilization)[1]',
|
||||||
|
'int')
|
||||||
|
AS [SQLProcessUtilization], [timestamp]
|
||||||
|
FROM (
|
||||||
|
SELECT [timestamp], convert(xml, record) AS [record]
|
||||||
|
FROM sys.dm_os_ring_buffers
|
||||||
|
WHERE ring_buffer_type = N'RING_BUFFER_SCHEDULER_MONITOR'
|
||||||
|
AND record LIKE '%<SystemHealth>%') AS x
|
||||||
|
) AS y
|
||||||
|
--ORDER BY record_id DESC;
|
||||||
|
ORDER BY [Event Time] DESC;
|
||||||
12
samples/serverReports/src/sql/db_size.sql
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
with fs
|
||||||
|
as
|
||||||
|
(
|
||||||
|
select database_id, type, size * 8.0 / 1024 size
|
||||||
|
from sys.master_files
|
||||||
|
)
|
||||||
|
select
|
||||||
|
name,
|
||||||
|
(select sum(size) from fs where type = 0 and fs.database_id = db.database_id) DataFileSizeMB,
|
||||||
|
(select sum(size) from fs where type = 1 and fs.database_id = db.database_id) LogFileSizeMB
|
||||||
|
from sys.databases db
|
||||||
|
where database_id > 4
|
||||||
30
samples/serverReports/src/sql/memorybydb.sql
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
-- source:https://www.mssqltips.com/sqlservertip/2393/determine-sql-server-memory-use-by-database-and-object/
|
||||||
|
-- Use for a demo/sample purpose only. This query is not built-in to any product.
|
||||||
|
|
||||||
|
DECLARE @total_buffer INT;
|
||||||
|
|
||||||
|
SELECT @total_buffer = cntr_value
|
||||||
|
FROM sys.dm_os_performance_counters
|
||||||
|
WHERE RTRIM([object_name]) LIKE '%Buffer Manager'
|
||||||
|
AND counter_name = 'Database Pages';
|
||||||
|
|
||||||
|
;WITH src AS
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
database_id, db_buffer_pages = COUNT_BIG(*)
|
||||||
|
FROM sys.dm_os_buffer_descriptors
|
||||||
|
--WHERE database_id BETWEEN 5 AND 32766
|
||||||
|
GROUP BY database_id
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
[db_name] = CASE [database_id] WHEN 32767
|
||||||
|
THEN 'Resource DB'
|
||||||
|
ELSE DB_NAME([database_id]) END,
|
||||||
|
--db_buffer_pages,
|
||||||
|
--db_buffer_MB = db_buffer_pages / 128,
|
||||||
|
db_buffer_percent = CONVERT(DECIMAL(6,3),
|
||||||
|
db_buffer_pages * 100.0 / @total_buffer)
|
||||||
|
FROM src
|
||||||
|
--ORDER BY db_buffer_MB DESC;
|
||||||
|
order by db_buffer_percent DESC;
|
||||||
|
|
||||||
76
samples/serverReports/src/sql/waits_detail_paul_randal.sql
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
-- SOURCE: https://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/
|
||||||
|
-- Use for a demo/sample purpose only. This query is not built-in to any product.
|
||||||
|
|
||||||
|
WITH [Waits] AS
|
||||||
|
(SELECT
|
||||||
|
[wait_type],
|
||||||
|
[wait_time_ms] / 1000.0 AS [WaitS],
|
||||||
|
([wait_time_ms] - [signal_wait_time_ms]) / 1000.0 AS [ResourceS],
|
||||||
|
[signal_wait_time_ms] / 1000.0 AS [SignalS],
|
||||||
|
[waiting_tasks_count] AS [WaitCount],
|
||||||
|
100.0 * [wait_time_ms] / SUM ([wait_time_ms]) OVER() AS [Percentage],
|
||||||
|
ROW_NUMBER() OVER(ORDER BY [wait_time_ms] DESC) AS [RowNum]
|
||||||
|
FROM sys.dm_os_wait_stats
|
||||||
|
WHERE [wait_type] NOT IN (
|
||||||
|
N'BROKER_EVENTHANDLER', N'BROKER_RECEIVE_WAITFOR',
|
||||||
|
N'BROKER_TASK_STOP', N'BROKER_TO_FLUSH',
|
||||||
|
N'BROKER_TRANSMITTER', N'CHECKPOINT_QUEUE',
|
||||||
|
N'CHKPT', N'CLR_AUTO_EVENT',
|
||||||
|
N'CLR_MANUAL_EVENT', N'CLR_SEMAPHORE',
|
||||||
|
|
||||||
|
-- Maybe uncomment these four if you have mirroring issues
|
||||||
|
N'DBMIRROR_DBM_EVENT', N'DBMIRROR_EVENTS_QUEUE',
|
||||||
|
N'DBMIRROR_WORKER_QUEUE', N'DBMIRRORING_CMD',
|
||||||
|
|
||||||
|
N'DIRTY_PAGE_POLL', N'DISPATCHER_QUEUE_SEMAPHORE',
|
||||||
|
N'EXECSYNC', N'FSAGENT',
|
||||||
|
N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'FT_IFTSHC_MUTEX',
|
||||||
|
|
||||||
|
-- Maybe uncomment these six if you have AG issues
|
||||||
|
N'HADR_CLUSAPI_CALL', N'HADR_FILESTREAM_IOMGR_IOCOMPLETION',
|
||||||
|
N'HADR_LOGCAPTURE_WAIT', N'HADR_NOTIFICATION_DEQUEUE',
|
||||||
|
N'HADR_TIMER_TASK', N'HADR_WORK_QUEUE',
|
||||||
|
|
||||||
|
N'KSOURCE_WAKEUP', N'LAZYWRITER_SLEEP',
|
||||||
|
N'LOGMGR_QUEUE', N'MEMORY_ALLOCATION_EXT',
|
||||||
|
N'ONDEMAND_TASK_QUEUE',
|
||||||
|
N'PREEMPTIVE_XE_GETTARGETSTATE',
|
||||||
|
N'PWAIT_ALL_COMPONENTS_INITIALIZED',
|
||||||
|
N'PWAIT_DIRECTLOGCONSUMER_GETNEXT',
|
||||||
|
N'QDS_PERSIST_TASK_MAIN_LOOP_SLEEP', N'QDS_ASYNC_QUEUE',
|
||||||
|
N'QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP',
|
||||||
|
N'QDS_SHUTDOWN_QUEUE', N'REDO_THREAD_PENDING_WORK',
|
||||||
|
N'REQUEST_FOR_DEADLOCK_SEARCH', N'RESOURCE_QUEUE',
|
||||||
|
N'SERVER_IDLE_CHECK', N'SLEEP_BPOOL_FLUSH',
|
||||||
|
N'SLEEP_DBSTARTUP', N'SLEEP_DCOMSTARTUP',
|
||||||
|
N'SLEEP_MASTERDBREADY', N'SLEEP_MASTERMDREADY',
|
||||||
|
N'SLEEP_MASTERUPGRADED', N'SLEEP_MSDBSTARTUP',
|
||||||
|
N'SLEEP_SYSTEMTASK', N'SLEEP_TASK',
|
||||||
|
N'SLEEP_TEMPDBSTARTUP', N'SNI_HTTP_ACCEPT',
|
||||||
|
N'SP_SERVER_DIAGNOSTICS_SLEEP', N'SQLTRACE_BUFFER_FLUSH',
|
||||||
|
N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',
|
||||||
|
N'SQLTRACE_WAIT_ENTRIES', N'WAIT_FOR_RESULTS',
|
||||||
|
N'WAITFOR', N'WAITFOR_TASKSHUTDOWN',
|
||||||
|
N'WAIT_XTP_RECOVERY',
|
||||||
|
N'WAIT_XTP_HOST_WAIT', N'WAIT_XTP_OFFLINE_CKPT_NEW_LOG',
|
||||||
|
N'WAIT_XTP_CKPT_CLOSE', N'XE_DISPATCHER_JOIN',
|
||||||
|
N'XE_DISPATCHER_WAIT', N'XE_TIMER_EVENT')
|
||||||
|
AND [waiting_tasks_count] > 0
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
MAX ([W1].[wait_type]) AS [WaitType],
|
||||||
|
CAST (MAX ([W1].[WaitS]) AS DECIMAL (16,2)) AS [Wait_S],
|
||||||
|
CAST (MAX ([W1].[ResourceS]) AS DECIMAL (16,2)) AS [Resource_S],
|
||||||
|
CAST (MAX ([W1].[SignalS]) AS DECIMAL (16,2)) AS [Signal_S],
|
||||||
|
MAX ([W1].[WaitCount]) AS [WaitCount],
|
||||||
|
CAST (MAX ([W1].[Percentage]) AS DECIMAL (5,2)) AS [Percentage],
|
||||||
|
CAST ((MAX ([W1].[WaitS]) / MAX ([W1].[WaitCount])) AS DECIMAL (16,4)) AS [AvgWait_S],
|
||||||
|
CAST ((MAX ([W1].[ResourceS]) / MAX ([W1].[WaitCount])) AS DECIMAL (16,4)) AS [AvgRes_S],
|
||||||
|
CAST ((MAX ([W1].[SignalS]) / MAX ([W1].[WaitCount])) AS DECIMAL (16,4)) AS [AvgSig_S],
|
||||||
|
CAST ('https://www.sqlskills.com/help/waits/' + MAX ([W1].[wait_type]) as XML) AS [Help/Info URL]
|
||||||
|
FROM [Waits] AS [W1]
|
||||||
|
INNER JOIN [Waits] AS [W2]
|
||||||
|
ON [W2].[RowNum] <= [W1].[RowNum]
|
||||||
|
GROUP BY [W1].[RowNum]
|
||||||
|
HAVING SUM ([W2].[Percentage]) - MAX( [W1].[Percentage] ) < 95; -- percentage threshold
|
||||||
|
GO
|
||||||
76
samples/serverReports/src/sql/waits_paul_randal.sql
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
-- SOURCE: https://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/
|
||||||
|
-- Use for a demo/sample purpose only. This query is not built-in to any product.
|
||||||
|
|
||||||
|
WITH [Waits] AS
|
||||||
|
(SELECT
|
||||||
|
[wait_type],
|
||||||
|
[wait_time_ms] / 1000.0 AS [WaitS],
|
||||||
|
([wait_time_ms] - [signal_wait_time_ms]) / 1000.0 AS [ResourceS],
|
||||||
|
[signal_wait_time_ms] / 1000.0 AS [SignalS],
|
||||||
|
[waiting_tasks_count] AS [WaitCount],
|
||||||
|
100.0 * [wait_time_ms] / SUM ([wait_time_ms]) OVER() AS [Percentage],
|
||||||
|
ROW_NUMBER() OVER(ORDER BY [wait_time_ms] DESC) AS [RowNum]
|
||||||
|
FROM sys.dm_os_wait_stats
|
||||||
|
WHERE [wait_type] NOT IN (
|
||||||
|
N'BROKER_EVENTHANDLER', N'BROKER_RECEIVE_WAITFOR',
|
||||||
|
N'BROKER_TASK_STOP', N'BROKER_TO_FLUSH',
|
||||||
|
N'BROKER_TRANSMITTER', N'CHECKPOINT_QUEUE',
|
||||||
|
N'CHKPT', N'CLR_AUTO_EVENT',
|
||||||
|
N'CLR_MANUAL_EVENT', N'CLR_SEMAPHORE',
|
||||||
|
|
||||||
|
-- Maybe uncomment these four if you have mirroring issues
|
||||||
|
N'DBMIRROR_DBM_EVENT', N'DBMIRROR_EVENTS_QUEUE',
|
||||||
|
N'DBMIRROR_WORKER_QUEUE', N'DBMIRRORING_CMD',
|
||||||
|
|
||||||
|
N'DIRTY_PAGE_POLL', N'DISPATCHER_QUEUE_SEMAPHORE',
|
||||||
|
N'EXECSYNC', N'FSAGENT',
|
||||||
|
N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'FT_IFTSHC_MUTEX',
|
||||||
|
|
||||||
|
-- Maybe uncomment these six if you have AG issues
|
||||||
|
N'HADR_CLUSAPI_CALL', N'HADR_FILESTREAM_IOMGR_IOCOMPLETION',
|
||||||
|
N'HADR_LOGCAPTURE_WAIT', N'HADR_NOTIFICATION_DEQUEUE',
|
||||||
|
N'HADR_TIMER_TASK', N'HADR_WORK_QUEUE',
|
||||||
|
|
||||||
|
N'KSOURCE_WAKEUP', N'LAZYWRITER_SLEEP',
|
||||||
|
N'LOGMGR_QUEUE', N'MEMORY_ALLOCATION_EXT',
|
||||||
|
N'ONDEMAND_TASK_QUEUE',
|
||||||
|
N'PREEMPTIVE_XE_GETTARGETSTATE',
|
||||||
|
N'PWAIT_ALL_COMPONENTS_INITIALIZED',
|
||||||
|
N'PWAIT_DIRECTLOGCONSUMER_GETNEXT',
|
||||||
|
N'QDS_PERSIST_TASK_MAIN_LOOP_SLEEP', N'QDS_ASYNC_QUEUE',
|
||||||
|
N'QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP',
|
||||||
|
N'QDS_SHUTDOWN_QUEUE', N'REDO_THREAD_PENDING_WORK',
|
||||||
|
N'REQUEST_FOR_DEADLOCK_SEARCH', N'RESOURCE_QUEUE',
|
||||||
|
N'SERVER_IDLE_CHECK', N'SLEEP_BPOOL_FLUSH',
|
||||||
|
N'SLEEP_DBSTARTUP', N'SLEEP_DCOMSTARTUP',
|
||||||
|
N'SLEEP_MASTERDBREADY', N'SLEEP_MASTERMDREADY',
|
||||||
|
N'SLEEP_MASTERUPGRADED', N'SLEEP_MSDBSTARTUP',
|
||||||
|
N'SLEEP_SYSTEMTASK', N'SLEEP_TASK',
|
||||||
|
N'SLEEP_TEMPDBSTARTUP', N'SNI_HTTP_ACCEPT',
|
||||||
|
N'SP_SERVER_DIAGNOSTICS_SLEEP', N'SQLTRACE_BUFFER_FLUSH',
|
||||||
|
N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',
|
||||||
|
N'SQLTRACE_WAIT_ENTRIES', N'WAIT_FOR_RESULTS',
|
||||||
|
N'WAITFOR', N'WAITFOR_TASKSHUTDOWN',
|
||||||
|
N'WAIT_XTP_RECOVERY',
|
||||||
|
N'WAIT_XTP_HOST_WAIT', N'WAIT_XTP_OFFLINE_CKPT_NEW_LOG',
|
||||||
|
N'WAIT_XTP_CKPT_CLOSE', N'XE_DISPATCHER_JOIN',
|
||||||
|
N'XE_DISPATCHER_WAIT', N'XE_TIMER_EVENT')
|
||||||
|
AND [waiting_tasks_count] > 0
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
MAX ([W1].[wait_type]) AS [WaitType],
|
||||||
|
--CAST (MAX ([W1].[WaitS]) AS DECIMAL (16,2)) AS [Wait_S],
|
||||||
|
--CAST (MAX ([W1].[ResourceS]) AS DECIMAL (16,2)) AS [Resource_S],
|
||||||
|
--CAST (MAX ([W1].[SignalS]) AS DECIMAL (16,2)) AS [Signal_S],
|
||||||
|
--MAX ([W1].[WaitCount]) AS [WaitCount]--,
|
||||||
|
CAST (MAX ([W1].[Percentage]) AS DECIMAL (5,2)) AS [Percentage]
|
||||||
|
--CAST ((MAX ([W1].[WaitS]) / MAX ([W1].[WaitCount])) AS DECIMAL (16,4)) AS [AvgWait_S],
|
||||||
|
--CAST ((MAX ([W1].[ResourceS]) / MAX ([W1].[WaitCount])) AS DECIMAL (16,4)) AS [AvgRes_S],
|
||||||
|
--CAST ((MAX ([W1].[SignalS]) / MAX ([W1].[WaitCount])) AS DECIMAL (16,4)) AS [AvgSig_S],
|
||||||
|
--CAST ('https://www.sqlskills.com/help/waits/' + MAX ([W1].[wait_type]) as XML) AS [Help/Info URL]
|
||||||
|
FROM [Waits] AS [W1]
|
||||||
|
INNER JOIN [Waits] AS [W2]
|
||||||
|
ON [W2].[RowNum] <= [W1].[RowNum]
|
||||||
|
GROUP BY [W1].[RowNum]
|
||||||
|
HAVING SUM ([W2].[Percentage]) - MAX( [W1].[Percentage] ) < 95; -- percentage threshold
|
||||||
|
GO
|
||||||
25
samples/serverReports/src/utils.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
import * as vscode from 'vscode';
|
||||||
|
|
||||||
|
import * as Constants from './constants';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper to log messages to the developer console if enabled
|
||||||
|
* @param msg Message to log to the console
|
||||||
|
*/
|
||||||
|
export function logDebug(msg: any): void {
|
||||||
|
let config = vscode.workspace.getConfiguration(Constants.extensionConfigSectionName);
|
||||||
|
let logDebugInfo = config[Constants.configLogDebugInfo];
|
||||||
|
if (logDebugInfo === true) {
|
||||||
|
let currentTime = new Date().toLocaleTimeString();
|
||||||
|
let outputMsg = '[' + currentTime + ']: ' + msg ? msg.toString() : '';
|
||||||
|
console.log(outputMsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
118
samples/serverReports/tasks/buildtasks.js
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
let del = require('del');
|
||||||
|
let gulp = require('gulp');
|
||||||
|
let srcmap = require('gulp-sourcemaps');
|
||||||
|
let tslint = require('gulp-tslint');
|
||||||
|
let ts = require('gulp-typescript');
|
||||||
|
let cproc = require('child_process');
|
||||||
|
let os = require('os');
|
||||||
|
|
||||||
|
let config = require('./config');
|
||||||
|
let tsProject = ts.createProject('tsconfig.json');
|
||||||
|
|
||||||
|
|
||||||
|
// GULP TASKS //////////////////////////////////////////////////////////////
|
||||||
|
gulp.task('clean', function(done) {
|
||||||
|
return del('out', done);
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('lint', () => {
|
||||||
|
return gulp.src([
|
||||||
|
config.paths.project.root + '/src/**/*.ts',
|
||||||
|
config.paths.project.root + '/test/**/*.ts'
|
||||||
|
])
|
||||||
|
.pipe((tslint({
|
||||||
|
formatter: "verbose"
|
||||||
|
})))
|
||||||
|
.pipe(tslint.report());
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('compile:src', function(done) {
|
||||||
|
gulp.src([
|
||||||
|
config.paths.project.root + '/src/**/*.sql',
|
||||||
|
config.paths.project.root + '/src/**/*.svg',
|
||||||
|
config.paths.project.root + '/src/**/*.html'
|
||||||
|
]).pipe(gulp.dest('out/src/'));
|
||||||
|
|
||||||
|
let srcFiles = [
|
||||||
|
config.paths.project.root + '/src/**/*.ts',
|
||||||
|
config.paths.project.root + '/src/**/*.js',
|
||||||
|
config.paths.project.root + '/typings/**/*.ts'
|
||||||
|
];
|
||||||
|
|
||||||
|
return gulp.src(srcFiles)
|
||||||
|
.pipe(srcmap.init())
|
||||||
|
.pipe(tsProject())
|
||||||
|
.on('error', function() {
|
||||||
|
if(process.env.BUILDMACHINE) {
|
||||||
|
done('Failed to compile extension source, see above.');
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// TODO: Reinstate localization code
|
||||||
|
// .pipe(nls.rewriteLocalizeCalls())
|
||||||
|
// .pipe(nls.createAdditionalLanguageFiles(nls.coreLanguages, config.paths.project.root + '/localization/i18n', undefined, false))
|
||||||
|
.pipe(srcmap.write('.', { sourceRoot: function(file) { return file.cwd + '/src'; }}))
|
||||||
|
.pipe(gulp.dest('out/src/'));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('compile:test', function(done) {
|
||||||
|
let srcFiles = [
|
||||||
|
config.paths.project.root + '/test/**/*.ts',
|
||||||
|
config.paths.project.root + '/typings/**/*.ts'
|
||||||
|
];
|
||||||
|
|
||||||
|
return gulp.src(srcFiles)
|
||||||
|
.pipe(srcmap.init())
|
||||||
|
.pipe(tsProject())
|
||||||
|
.on('error', function() {
|
||||||
|
if(process.env.BUILDMACHINE) {
|
||||||
|
done('Failed to compile test source, see above.');
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.pipe(srcmap.write('.', {sourceRoot: function(file) { return file.cwd + '/test'; }}))
|
||||||
|
.pipe(gulp.dest('out/test/'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// COMPOSED GULP TASKS /////////////////////////////////////////////////////
|
||||||
|
gulp.task("compile", gulp.series("compile:src", "compile:test"));
|
||||||
|
|
||||||
|
gulp.task("build", gulp.series("clean", "lint", "compile"));
|
||||||
|
|
||||||
|
gulp.task("watch", function() {
|
||||||
|
gulp.watch([config.paths.project.root + '/src/**/*',
|
||||||
|
config.paths.project.root + '/test/**/*.ts'],
|
||||||
|
gulp.series('build'))
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('test', (done) => {
|
||||||
|
let workspace = process.env['WORKSPACE'];
|
||||||
|
if (!workspace) {
|
||||||
|
workspace = process.cwd();
|
||||||
|
}
|
||||||
|
process.env.JUNIT_REPORT_PATH = workspace + '/test-reports/ext_xunit.xml';
|
||||||
|
|
||||||
|
let sqlopsPath = 'sqlops';
|
||||||
|
if (process.env['SQLOPS_DEV']) {
|
||||||
|
let suffix = os.platform === 'win32' ? 'bat' : 'sh';
|
||||||
|
sqlopsPath = `${process.env['SQLOPS_DEV']}/scripts/sql-cli.${suffix}`;
|
||||||
|
}
|
||||||
|
console.log(`Using SQLOPS Path of ${sqlopsPath}`);
|
||||||
|
|
||||||
|
cproc.exec(`${sqlopsPath} --extensionDevelopmentPath="${workspace}" --extensionTestsPath="${workspace}/out/test" --verbose`, (error, stdout, stderr) => {
|
||||||
|
if (error) {
|
||||||
|
console.error(`exec error: ${error}`);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
console.log(`stdout: ${stdout}`);
|
||||||
|
console.log(`stderr: ${stderr}`);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
24
samples/serverReports/tasks/config.js
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
var path = require('path');
|
||||||
|
|
||||||
|
var projectRoot = path.resolve(path.dirname(__dirname));
|
||||||
|
var srcRoot = path.resolve(projectRoot, 'src');
|
||||||
|
var localization = path.resolve(projectRoot, 'localization');
|
||||||
|
|
||||||
|
var config = {
|
||||||
|
paths: {
|
||||||
|
project: {
|
||||||
|
root: projectRoot,
|
||||||
|
localization: localization
|
||||||
|
},
|
||||||
|
extension: {
|
||||||
|
root: srcRoot
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = config;
|
||||||
36
samples/serverReports/tasks/packagetasks.js
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
let gulp = require('gulp');
|
||||||
|
let exec = require('child-process-promise').exec;
|
||||||
|
let color = require('gulp-color');
|
||||||
|
|
||||||
|
// CONSTANTS ///////////////////////////////////////////////////////////////
|
||||||
|
let packageVals = require('../package');
|
||||||
|
|
||||||
|
// HELPER FUNCTIONS ////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
let buildPackage = function(packageName) {
|
||||||
|
// Make sure there are
|
||||||
|
if (!packageVals.repository) {
|
||||||
|
return Promise.reject("Repository field is not defined in package.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize the package command with program and command
|
||||||
|
let vsceArgs = [];
|
||||||
|
vsceArgs.push('./node_modules/vsce/out/vsce');
|
||||||
|
vsceArgs.push('package'); // package command
|
||||||
|
|
||||||
|
// Add the package name
|
||||||
|
vsceArgs.push('-o');
|
||||||
|
vsceArgs.push(packageName);
|
||||||
|
|
||||||
|
// Put it all together and execute the command
|
||||||
|
let command = vsceArgs.join(' ');
|
||||||
|
console.log(command);
|
||||||
|
return exec(command);
|
||||||
|
};
|
||||||
16
samples/serverReports/tsconfig.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"module": "commonjs",
|
||||||
|
"target": "es6",
|
||||||
|
"outDir": "out",
|
||||||
|
"lib": [
|
||||||
|
"es6"
|
||||||
|
],
|
||||||
|
"sourceMap": true,
|
||||||
|
"rootDir": "."
|
||||||
|
},
|
||||||
|
"exclude": [
|
||||||
|
"node_modules",
|
||||||
|
".vscode-test"
|
||||||
|
]
|
||||||
|
}
|
||||||
123
samples/serverReports/tslint.json
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
{
|
||||||
|
"rules": {
|
||||||
|
"align": [
|
||||||
|
true,
|
||||||
|
"parameters",
|
||||||
|
"statements"
|
||||||
|
],
|
||||||
|
"ban": false,
|
||||||
|
"class-name": true,
|
||||||
|
"comment-format": [
|
||||||
|
true,
|
||||||
|
"check-space"
|
||||||
|
],
|
||||||
|
"curly": true,
|
||||||
|
"eofline": true,
|
||||||
|
"forin": true,
|
||||||
|
"indent": [
|
||||||
|
true,
|
||||||
|
"spaces"
|
||||||
|
],
|
||||||
|
"interface-name": true,
|
||||||
|
"jsdoc-format": true,
|
||||||
|
"label-position": true,
|
||||||
|
"label-undefined": true,
|
||||||
|
"max-line-length": [
|
||||||
|
true,
|
||||||
|
160
|
||||||
|
],
|
||||||
|
"member-access": false,
|
||||||
|
"member-ordering": false,
|
||||||
|
"no-any": false,
|
||||||
|
"no-arg": true,
|
||||||
|
"no-bitwise": true,
|
||||||
|
"no-conditional-assignment": true,
|
||||||
|
"no-consecutive-blank-lines": false,
|
||||||
|
"no-console": [
|
||||||
|
true,
|
||||||
|
"debug",
|
||||||
|
"info",
|
||||||
|
"time",
|
||||||
|
"timeEnd",
|
||||||
|
"trace"
|
||||||
|
],
|
||||||
|
"no-construct": true,
|
||||||
|
"no-constructor-vars": false,
|
||||||
|
"no-debugger": true,
|
||||||
|
"no-duplicate-key": true,
|
||||||
|
"no-duplicate-variable": true,
|
||||||
|
"no-empty": true,
|
||||||
|
"no-eval": true,
|
||||||
|
"no-inferrable-types": false,
|
||||||
|
"no-internal-module": true,
|
||||||
|
"no-null-keyword": true,
|
||||||
|
"no-require-imports": false,
|
||||||
|
"no-shadowed-variable": true,
|
||||||
|
"no-string-literal": false,
|
||||||
|
"no-switch-case-fall-through": false,
|
||||||
|
"no-trailing-whitespace": true,
|
||||||
|
"no-unreachable": true,
|
||||||
|
"no-unused-expression": false,
|
||||||
|
"no-unused-variable": true,
|
||||||
|
"no-use-before-declare": true,
|
||||||
|
"no-var-keyword": true,
|
||||||
|
"no-var-requires": false,
|
||||||
|
"object-literal-sort-keys": false,
|
||||||
|
"one-line": [
|
||||||
|
true,
|
||||||
|
"check-open-brace",
|
||||||
|
"check-catch",
|
||||||
|
"check-else",
|
||||||
|
"check-finally",
|
||||||
|
"check-whitespace"
|
||||||
|
],
|
||||||
|
"quotemark": [
|
||||||
|
true,
|
||||||
|
"single",
|
||||||
|
"avoid-escape"
|
||||||
|
],
|
||||||
|
"radix": true,
|
||||||
|
"semicolon": true,
|
||||||
|
"switch-default": true,
|
||||||
|
"trailing-comma": [
|
||||||
|
true,
|
||||||
|
{
|
||||||
|
"multiline": "never",
|
||||||
|
"singleline": "never"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"triple-equals": [
|
||||||
|
true,
|
||||||
|
"allow-null-check"
|
||||||
|
],
|
||||||
|
"typedef": [
|
||||||
|
true,
|
||||||
|
"call-signature",
|
||||||
|
"property-declaration"
|
||||||
|
],
|
||||||
|
"typedef-whitespace": [
|
||||||
|
true,
|
||||||
|
{
|
||||||
|
"call-signature": "nospace",
|
||||||
|
"index-signature": "nospace",
|
||||||
|
"parameter": "nospace",
|
||||||
|
"property-declaration": "nospace",
|
||||||
|
"variable-declaration": "nospace"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"use-strict": false,
|
||||||
|
"variable-name": [
|
||||||
|
true,
|
||||||
|
"allow-leading-underscore",
|
||||||
|
"ban-keywords"
|
||||||
|
],
|
||||||
|
"whitespace": [
|
||||||
|
true,
|
||||||
|
"check-branch",
|
||||||
|
"check-decl",
|
||||||
|
"check-operator",
|
||||||
|
"check-separator",
|
||||||
|
"check-type"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
8
samples/sp_whoIsActive/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
out
|
||||||
|
node_modules
|
||||||
|
.vscode-test/
|
||||||
|
*.vsix
|
||||||
|
.DS_Store
|
||||||
|
.idea
|
||||||
|
test-reports/**
|
||||||
28
samples/sp_whoIsActive/.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
// Use IntelliSense to learn about possible attributes.
|
||||||
|
// Hover to view descriptions of existing attributes.
|
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "Launch Program",
|
||||||
|
"program": "${workspaceFolder}\\out\\src\\extension"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "node",
|
||||||
|
"request": "attach",
|
||||||
|
"name": "Attach to Ops Studio",
|
||||||
|
"protocol": "inspector",
|
||||||
|
"port": 5870,
|
||||||
|
"restart": true,
|
||||||
|
"sourceMaps": true,
|
||||||
|
"outFiles": [
|
||||||
|
"${workspaceRoot}/out/**/*.js"
|
||||||
|
],
|
||||||
|
"preLaunchTask": "",
|
||||||
|
"timeout": 25000
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
29
samples/sp_whoIsActive/.vscodeignore
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Unwanted compiled files
|
||||||
|
out/test/**
|
||||||
|
out/**/*.map
|
||||||
|
*.vsix
|
||||||
|
|
||||||
|
# Build/Source files
|
||||||
|
src/**
|
||||||
|
tasks/**
|
||||||
|
test/**
|
||||||
|
typings/**
|
||||||
|
packages/**
|
||||||
|
samples/**
|
||||||
|
.gitignore
|
||||||
|
tsconfig.json
|
||||||
|
|
||||||
|
# IDE Settings
|
||||||
|
.vscode/**
|
||||||
|
.vscode-test/**
|
||||||
|
.idea/**
|
||||||
|
.sqlops/**
|
||||||
|
|
||||||
|
# Reference files
|
||||||
|
**/*.ts
|
||||||
|
**/*.map
|
||||||
|
.gitignore
|
||||||
|
tsconfig.json
|
||||||
|
*.exe
|
||||||
|
*.dat
|
||||||
|
gulpfile.js
|
||||||
1
samples/sp_whoIsActive/CHANGELOG.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# Change Log
|
||||||
24
samples/sp_whoIsActive/LICENSE.txt
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
MICROSOFT SOFTWARE LICENSE TERMS
|
||||||
|
|
||||||
|
MICROSOFT SQL OPERATIONS STUDIO
|
||||||
|
|
||||||
|
Microsoft Corporation ("Microsoft") grants you a nonexclusive, perpetual,
|
||||||
|
royalty-free right to use, copy, and modify the software code provided by us
|
||||||
|
("Software Code"). You may not sublicense the Software Code or any use of it
|
||||||
|
(except to your affiliates and to vendors to perform work on your behalf)
|
||||||
|
through distribution, network access, service agreement, lease, rental, or
|
||||||
|
otherwise. Unless applicable law gives you more rights, Microsoft reserves all
|
||||||
|
other rights not expressly granted herein, whether by implication, estoppel or
|
||||||
|
otherwise.
|
||||||
|
|
||||||
|
THE SOFTWARE CODE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
||||||
|
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||||
|
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
AND NONINFRINGEMENT. IN NO EVENT SHALL MICROSOFT OR ITS LICENSORS
|
||||||
|
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||||
|
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||||
|
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
|
||||||
|
SAMPLE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
19
samples/sp_whoIsActive/README.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# sp_whoisactive for SQL Operations Studio
|
||||||
|
|
||||||
|
Welcome to **sp_whoisactive** for SQL Operations Studio! Sp_whoisactive is a procedure written by Adam Machanic. It is a very useful tool for activity monitoring and troubleshooting.
|
||||||
|
|
||||||
|
To quote one of the posts about sp_whoisactive on [Adam Machanic’s blog]:
|
||||||
|
|
||||||
|
Here are some quick facts on Who is Active:
|
||||||
|
|
||||||
|
* Who is Active is a DMV-based monitoring stored procedure that uses **15 different views to show a large amount of data about what’s running on your server**
|
||||||
|
* Who is Active was designed to be **extremely flexible**, and includes options to not only get different types of data, but also to change the output column list and sort order
|
||||||
|
* Who is Active was **designed with performance in mind** at every step; users report that under normal conditions response times are generally subsecond, with slightly longer response times on servers that are extremely taxed
|
||||||
|
* Who is Active is **compatible with all versions of SQL Server after SQL Server 2005 RTM**. It does require that the host database (generally master) is not set for SQL Server 2000 compatibility mode
|
||||||
|
|
||||||
|
If you haven't installed sp_whoisactive in your server, you can use "Install sp_whoisactive" task to create the procedure.
|
||||||
|
|
||||||
|
See [sp_whoisactive Documentation] for more infomation.
|
||||||
|
|
||||||
|
[Adam Machanic’s blog]:http://sqlblog.com/blogs/adam_machanic/default.aspx
|
||||||
|
[sp_whoisactive Documentation]:http://whoisactive.com/
|
||||||
14
samples/sp_whoIsActive/gulpfile.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// NOTE: These are es6 gulpfiles
|
||||||
|
|
||||||
|
// Basic build tasks
|
||||||
|
require('./tasks/buildtasks');
|
||||||
|
|
||||||
|
// VSIX generation tasks
|
||||||
|
require('./tasks/packagetasks');
|
||||||
7413
samples/sp_whoIsActive/package-lock.json
generated
Normal file
239
samples/sp_whoIsActive/package.json
Normal file
@@ -0,0 +1,239 @@
|
|||||||
|
{
|
||||||
|
"name": "whoisactive",
|
||||||
|
"displayName": "whoisactive",
|
||||||
|
"description": "sp_whoisactive for SQL Operations Studio",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"publisher": "Microsoft",
|
||||||
|
"engines": {
|
||||||
|
"vscode": "^1.19.0",
|
||||||
|
"sqlops": "*"
|
||||||
|
},
|
||||||
|
"license": "SEE LICENSE IN LICENSE.txt",
|
||||||
|
"repository": "https://github.com/Microsoft/sqlopsstudio",
|
||||||
|
"categories": [
|
||||||
|
"Other"
|
||||||
|
],
|
||||||
|
"activationEvents": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"main": "./out/src/extension",
|
||||||
|
"contributes": {
|
||||||
|
"configuration": [],
|
||||||
|
"commands": [
|
||||||
|
{
|
||||||
|
"command": "sp_whoisactive.install",
|
||||||
|
"title": "Install sp_whoisactive",
|
||||||
|
"icon": {
|
||||||
|
"light": "./out/src/media/download.svg",
|
||||||
|
"dark": "./out/src/media/download_inverse.svg"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "sp_whoisactive.findBlockLeaders",
|
||||||
|
"title": "Find leader of block",
|
||||||
|
"icon": {
|
||||||
|
"light": "./out/src/media/blocker.svg",
|
||||||
|
"dark": "./out/src/media/blocker_inverse.svg"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"command": "sp_whoisactive.getPlans",
|
||||||
|
"title": "Get plans",
|
||||||
|
"icon": {
|
||||||
|
"light": "./out/src/media/monitor.svg",
|
||||||
|
"dark": "./out/src/media/monitor_inverse.svg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"views": {},
|
||||||
|
"menus": {},
|
||||||
|
"dashboard.tabs": [
|
||||||
|
{
|
||||||
|
"id": "sp_whoisactive",
|
||||||
|
"title": "sp_whoisactive",
|
||||||
|
"description": "Extension for checking who is active.",
|
||||||
|
"container": {
|
||||||
|
"nav-section": [
|
||||||
|
{
|
||||||
|
"id": "sp_whoisactive_insights",
|
||||||
|
"title": "Insights",
|
||||||
|
"icon": {
|
||||||
|
"light": "./out/src/media/insights.svg",
|
||||||
|
"dark": "./out/src/media/insights_inverse.svg"
|
||||||
|
},
|
||||||
|
"container": {
|
||||||
|
"sp_whoisactive-insights": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "sp_whoisactive_documentation",
|
||||||
|
"title": "Documentation",
|
||||||
|
"icon": {
|
||||||
|
"light": "./out/src/media/documentation.svg",
|
||||||
|
"dark": "./out/src/media/documentation_inverse.svg"
|
||||||
|
},
|
||||||
|
"container": {
|
||||||
|
"webview-container": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dashboard.insights": [
|
||||||
|
{
|
||||||
|
"id": "sp_whoisactive-CPU-usage",
|
||||||
|
"contrib": {
|
||||||
|
"type": {
|
||||||
|
"bar": {
|
||||||
|
"dataDirection": "vertical",
|
||||||
|
"dataType": "number",
|
||||||
|
"legendPosition": "none",
|
||||||
|
"labelFirstColumn": false,
|
||||||
|
"columnsAsLabels": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queryFile": "./out/src/sql/cpuUsage.sql"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "sp_whoisactive-CPU-delta",
|
||||||
|
"contrib": {
|
||||||
|
"type": {
|
||||||
|
"bar": {
|
||||||
|
"dataDirection": "vertical",
|
||||||
|
"dataType": "number",
|
||||||
|
"legendPosition": "none",
|
||||||
|
"labelFirstColumn": false,
|
||||||
|
"columnsAsLabels": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queryFile": "./out/src/sql/cpuDelta.sql"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "sp_whoisactive-memory-usage",
|
||||||
|
"contrib": {
|
||||||
|
"type": {
|
||||||
|
"bar": {
|
||||||
|
"dataDirection": "vertical",
|
||||||
|
"dataType": "number",
|
||||||
|
"legendPosition": "none",
|
||||||
|
"labelFirstColumn": false,
|
||||||
|
"columnsAsLabels": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queryFile": "./out/src/sql/memoryUsage.sql"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "sp_whoisactive-memory-delta",
|
||||||
|
"contrib": {
|
||||||
|
"type": {
|
||||||
|
"bar": {
|
||||||
|
"dataDirection": "vertical",
|
||||||
|
"dataType": "number",
|
||||||
|
"legendPosition": "none",
|
||||||
|
"labelFirstColumn": false,
|
||||||
|
"columnsAsLabels": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"queryFile": "./out/src/sql/memoryDelta.sql"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dashboard.containers": [
|
||||||
|
{
|
||||||
|
"id": "sp_whoisactive-insights",
|
||||||
|
"container": {
|
||||||
|
"widgets-container": [
|
||||||
|
{
|
||||||
|
"name": "Tasks",
|
||||||
|
"widget": {
|
||||||
|
"tasks-widget": [
|
||||||
|
"sp_whoisactive.getPlans",
|
||||||
|
"sp_whoisactive.findBlockLeaders",
|
||||||
|
"sp_whoisactive.install"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CPU Usage",
|
||||||
|
"gridItemConfig": {
|
||||||
|
"sizex": 2,
|
||||||
|
"sizey": 1
|
||||||
|
},
|
||||||
|
"widget": {
|
||||||
|
"sp_whoisactive-CPU-usage": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CPU Delta",
|
||||||
|
"gridItemConfig": {
|
||||||
|
"sizex": 2,
|
||||||
|
"sizey": 1
|
||||||
|
},
|
||||||
|
"widget": {
|
||||||
|
"sp_whoisactive-CPU-delta": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Memory Usage",
|
||||||
|
"gridItemConfig": {
|
||||||
|
"sizex": 2,
|
||||||
|
"sizey": 1
|
||||||
|
},
|
||||||
|
"widget": {
|
||||||
|
"sp_whoisactive-memory-usage": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Memory Delta",
|
||||||
|
"gridItemConfig": {
|
||||||
|
"sizex": 2,
|
||||||
|
"sizey": 1
|
||||||
|
},
|
||||||
|
"widget": {
|
||||||
|
"sp_whoisactive-memory-delta": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"snippets": []
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"prepare": "node ./node_modules/sqlops/bin/install",
|
||||||
|
"build": "gulp build",
|
||||||
|
"compile": "gulp compile",
|
||||||
|
"watch": "gulp watch",
|
||||||
|
"postinstall": "node ./node_modules/vscode/bin/install"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"fs-extra": "^5.0.0",
|
||||||
|
"handlebars": "^4.0.11",
|
||||||
|
"openurl": "^1.1.1",
|
||||||
|
"vscode-nls": "2.0.2",
|
||||||
|
"sqlops": "github:anthonydresser/vscode-extension-vscode"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/handlebars": "^4.0.11",
|
||||||
|
"@types/mocha": "^2.2.42",
|
||||||
|
"@types/node": "^7.0.43",
|
||||||
|
"child-process-promise": "^2.2.1",
|
||||||
|
"del": "^3.0.0",
|
||||||
|
"gulp": "^4.0.0",
|
||||||
|
"gulp-color": "0.0.1",
|
||||||
|
"gulp-sourcemaps": "^2.6.4",
|
||||||
|
"gulp-tslint": "^6.0.2",
|
||||||
|
"gulp-typescript": "^3.2.4",
|
||||||
|
"should": "^13.2.1",
|
||||||
|
"temp-write": "^3.4.0",
|
||||||
|
"tslint": "^3.14.0",
|
||||||
|
"typemoq": "^2.1.0",
|
||||||
|
"typescript": "^2.6.1",
|
||||||
|
"vscode": "^1.1.6",
|
||||||
|
"vsce": "1.36.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
10
samples/sp_whoIsActive/src/constants.ts
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// CONFIG VALUES ///////////////////////////////////////////////////////////
|
||||||
|
export const extensionConfigSectionName = 'extensionSamples';
|
||||||
|
export const configLogDebugInfo = 'logDebugInfo';
|
||||||
26
samples/sp_whoIsActive/src/controllers/controllerBase.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
|
||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
import * as vscode from 'vscode';
|
||||||
|
|
||||||
|
export default abstract class ControllerBase implements vscode.Disposable {
|
||||||
|
protected _context: vscode.ExtensionContext;
|
||||||
|
|
||||||
|
public constructor(context: vscode.ExtensionContext) {
|
||||||
|
this._context = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract activate(): Promise<boolean>;
|
||||||
|
|
||||||
|
abstract deactivate(): void;
|
||||||
|
|
||||||
|
public dispose(): void {
|
||||||
|
this.deactivate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
63
samples/sp_whoIsActive/src/controllers/mainController.ts
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
import * as sqlops from 'sqlops';
|
||||||
|
import * as Utils from '../utils';
|
||||||
|
import ControllerBase from './controllerBase';
|
||||||
|
import * as fs from 'fs';
|
||||||
|
import * as path from 'path';
|
||||||
|
import * as vscode from 'vscode';
|
||||||
|
import * as openurl from 'openurl';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The main controller class that initializes the extension
|
||||||
|
*/
|
||||||
|
export default class MainController extends ControllerBase {
|
||||||
|
|
||||||
|
public apiWrapper;
|
||||||
|
// PUBLIC METHODS //////////////////////////////////////////////////////
|
||||||
|
/**
|
||||||
|
* Deactivates the extension
|
||||||
|
*/
|
||||||
|
public deactivate(): void {
|
||||||
|
Utils.logDebug('Main controller deactivated');
|
||||||
|
}
|
||||||
|
|
||||||
|
public activate(): Promise<boolean> {
|
||||||
|
sqlops.dashboard.registerWebviewProvider('sp_whoisactive_documentation', webview => {
|
||||||
|
let templateValues = {url: 'http://whoisactive.com/docs/'};
|
||||||
|
Utils.renderTemplateHtml(path.join(__dirname, '..'), 'templateTab.html', templateValues)
|
||||||
|
.then(html => {
|
||||||
|
webview.html = html;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
sqlops.tasks.registerTask('sp_whoisactive.install', e => this.onInstall(e));
|
||||||
|
sqlops.tasks.registerTask('sp_whoisactive.findBlockLeaders', e => this.onExecute(e, 'findBlockLeaders.sql'));
|
||||||
|
sqlops.tasks.registerTask('sp_whoisactive.getPlans', e => this.onExecute(e, 'getPlans.sql'));
|
||||||
|
|
||||||
|
return Promise.resolve(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private onInstall(connection: sqlops.IConnectionProfile): void {
|
||||||
|
openurl.open('http://whoisactive.com/downloads/');
|
||||||
|
}
|
||||||
|
|
||||||
|
private onExecute(connection: sqlops.IConnectionProfile, fileName: string): void {
|
||||||
|
let sqlFile = fs.readFileSync(path.join(__dirname, '..', 'sql', fileName)).toString();
|
||||||
|
this.openSQLFileWithContent(sqlFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
private openSQLFileWithContent(content: string): void {
|
||||||
|
vscode.workspace.openTextDocument({language: 'sql', content: content}).then(doc => {
|
||||||
|
vscode.window.showTextDocument(doc, vscode.ViewColumn.Active, false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
39
samples/sp_whoIsActive/src/extension.ts
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
import * as vscode from 'vscode';
|
||||||
|
|
||||||
|
import ControllerBase from './controllers/controllerBase';
|
||||||
|
import MainController from './controllers/mainController';
|
||||||
|
|
||||||
|
let controllers: ControllerBase[] = [];
|
||||||
|
|
||||||
|
export function activate(context: vscode.ExtensionContext): Promise<boolean> {
|
||||||
|
let activations: Promise<boolean>[] = [];
|
||||||
|
|
||||||
|
// Start the main controller
|
||||||
|
let mainController = new MainController(context);
|
||||||
|
controllers.push(mainController);
|
||||||
|
context.subscriptions.push(mainController);
|
||||||
|
activations.push(mainController.activate());
|
||||||
|
|
||||||
|
return Promise.all(activations)
|
||||||
|
.then((results: boolean[]) => {
|
||||||
|
for (let result of results) {
|
||||||
|
if (!result) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deactivate(): void {
|
||||||
|
for (let controller of controllers) {
|
||||||
|
controller.deactivate();
|
||||||
|
}
|
||||||
|
}
|
||||||
10
samples/sp_whoIsActive/src/localizedConstants.ts
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// TODO: localize!
|
||||||
|
|
||||||
|
export const msgErrorLoadingTab = 'An error occurred while loading the tab.';
|
||||||
1
samples/sp_whoIsActive/src/media/blocker.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:#212121;}</style></defs><title>blocker</title><polygon class="cls-1" points="0.99 3.99 -0.01 3.99 -0.01 0.03 3.98 0.03 3.98 1.03 0.99 1.03 0.99 3.99"/><polygon class="cls-1" points="16.01 3.99 15.01 3.99 15.01 1.03 12.02 1.03 12.02 0.03 16.01 0.03 16.01 3.99"/><polygon class="cls-1" points="16.01 15.97 12.02 15.97 12.02 14.97 15.01 14.97 15.01 12.01 16.01 12.01 16.01 15.97"/><polygon class="cls-1" points="4 15.97 0.01 15.97 0.01 12.01 1.01 12.01 1.01 14.97 4 14.97 4 15.97"/><path class="cls-1" d="M8.41,3.18A4.82,4.82,0,1,0,13.23,8,4.83,4.83,0,0,0,8.41,3.18Zm0,.74A4.08,4.08,0,0,1,12.49,8a4,4,0,0,1-.85,2.47L5.69,5A4,4,0,0,1,8.41,3.93Zm0,8.15A4.08,4.08,0,0,1,4.34,8a4,4,0,0,1,.85-2.47L11.14,11A4,4,0,0,1,8.41,12.07Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 847 B |
1
samples/sp_whoIsActive/src/media/blocker_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>blocker_inverse</title><polygon class="cls-1" points="0.99 3.99 -0.01 3.99 -0.01 0.03 3.98 0.03 3.98 1.03 0.99 1.03 0.99 3.99"/><polygon class="cls-1" points="16.01 3.99 15.01 3.99 15.01 1.03 12.02 1.03 12.02 0.03 16.01 0.03 16.01 3.99"/><polygon class="cls-1" points="16.01 15.97 12.02 15.97 12.02 14.97 15.01 14.97 15.01 12.01 16.01 12.01 16.01 15.97"/><polygon class="cls-1" points="4 15.97 0.01 15.97 0.01 12.01 1.01 12.01 1.01 14.97 4 14.97 4 15.97"/><path class="cls-1" d="M8.41,3.18A4.82,4.82,0,1,0,13.23,8,4.83,4.83,0,0,0,8.41,3.18Zm0,.74A4.08,4.08,0,0,1,12.49,8a4,4,0,0,1-.85,2.47L5.69,5A4,4,0,0,1,8.41,3.93Zm0,8.15A4.08,4.08,0,0,1,4.34,8a4,4,0,0,1,.85-2.47L11.14,11A4,4,0,0,1,8.41,12.07Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 852 B |
1
samples/sp_whoIsActive/src/media/documentation.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:#212121;}</style></defs><title>documentation</title><path class="cls-1" d="M14,4.29V16H1V0H9.72ZM13,5H9V1H2V15H13ZM3,4H8V5H3ZM3,8H8V9H3Zm0,4H8v1H3ZM9,7h3v3H9Zm0,4h3v3H9Zm1-7H12.3L10,1.71Zm0,5h1V8H10Zm0,4h1V12H10Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 339 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>documentation_1</title><path class="cls-1" d="M14,4.29V16H1V0H9.72ZM13,5H9V1H2V15H13ZM3,4H8V5H3ZM3,8H8V9H3Zm0,4H8v1H3ZM9,7h3v3H9Zm0,4h3v3H9Zm1-7H12.3L10,1.71Zm0,5h1V8H10Zm0,4h1V12H10Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 338 B |
1
samples/sp_whoIsActive/src/media/download.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:#212121;}</style></defs><title>download</title><polygon points="16 15.97 0 15.97 0 7.6 1 7.6 1 14.97 15 14.97 15 7.6 16 7.6 16 15.97"/><polygon class="cls-1" points="12.84 8.36 8.01 13.18 8 13.17 7.99 13.18 3.16 8.36 3.87 7.65 7.5 11.28 7.5 0 8.5 0 8.5 11.28 12.13 7.65 12.84 8.36"/></svg>
|
||||||
|
After Width: | Height: | Size: 407 B |
1
samples/sp_whoIsActive/src/media/download_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>download_inverse</title><polygon class="cls-1" points="16 15.97 0 15.97 0 7.6 1 7.6 1 14.97 15 14.97 15 7.6 16 7.6 16 15.97"/><polygon class="cls-1" points="12.84 8.36 8.01 13.18 8 13.17 7.99 13.18 3.16 8.36 3.87 7.65 7.5 11.28 7.5 0 8.5 0 8.5 11.28 12.13 7.65 12.84 8.36"/></svg>
|
||||||
|
After Width: | Height: | Size: 426 B |
1
samples/sp_whoIsActive/src/media/insights.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:#212121;}</style></defs><title>insights</title><path class="cls-1" d="M15,4V8H14V5.71L9.49,10.2l-2-2L2,13.71V14H15v1H1V1H2V12.29L7.49,6.8l2,2L13.28,5H11V4Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 282 B |
1
samples/sp_whoIsActive/src/media/insights_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>insights_inverse</title><path class="cls-1" d="M15,4V8H14V5.71L9.49,10.2l-2-2L2,13.71V14H15v1H1V1H2V12.29L7.49,6.8l2,2L13.28,5H11V4Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 287 B |
1
samples/sp_whoIsActive/src/media/launch.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>launch</title><path d="M12.8,8.4l1.07-1.07v6.4H0V4.13H10.67L9.6,5.2H1.07v7.47H12.8Zm0-6.4H16V5.2H14.93V3.82l-3.8,3.8-.76-.76,3.8-3.8H12.8Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 247 B |
1
samples/sp_whoIsActive/src/media/launch_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>launch_inverse</title><path class="cls-1" d="M12.8,8.4l1.07-1.07v6.4H0V4.13H10.67L9.6,5.2H1.07v7.47H12.8Zm0-6.4H16V5.2H14.93V3.82l-3.8,3.8-.76-.76,3.8-3.8H12.8Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 315 B |
1
samples/sp_whoIsActive/src/media/monitor.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>query_plan_16x16</title><path d="M13.16,10.59h1.9v5H10.32v-5h1.89v-2H3.68v2H5.58v5H.84v-5h1.9v-3H7.47v-2H5.58v-5h4.74v5H8.42v2h4.74Zm-8.53,4v-3H1.79v3Zm1.9-13v3H9.37v-3Zm7.58,13v-3H11.26v3Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 298 B |
1
samples/sp_whoIsActive/src/media/monitor_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>query_plan_inverse_16x16</title><path class="cls-1" d="M13.06,10.49H15v5H10.22v-5h1.89v-2H3.59v2H5.48v5H.75v-5h1.9v-3H7.38v-2H5.48v-5h4.74v5H8.33v2h4.74Zm-8.53,4v-3H1.69v3Zm1.9-13v3H9.27v-3Zm7.58,13v-3H11.17v3Z"/></svg>
|
||||||
|
After Width: | Height: | Size: 365 B |
36
samples/sp_whoIsActive/src/resources/templateTab.html
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<!--
|
||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
-->
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<script type="text/javascript">
|
||||||
|
window.onload = function() {
|
||||||
|
document.getElementById('frame').src = "{{{url}}}";
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
#frame {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<iframe id="frame" width="100%" height="100%" frameborder="0"></iframe>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
8
samples/sp_whoIsActive/src/sql/cpuDelta.sql
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'sp_WhoIsActive')
|
||||||
|
EXEC sp_WhoIsActive
|
||||||
|
@delta_interval = 1,
|
||||||
|
@output_column_list = '[session_id][CPU_delta]',
|
||||||
|
@sort_order = '[CPU_delta] DESC'
|
||||||
|
ELSE
|
||||||
|
SELECT 0;
|
||||||
|
GO
|
||||||
7
samples/sp_whoIsActive/src/sql/cpuUsage.sql
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'sp_WhoIsActive')
|
||||||
|
EXEC sp_WhoIsActive
|
||||||
|
@output_column_list = '[session_id][CPU]',
|
||||||
|
@sort_order = '[CPU] DESC'
|
||||||
|
ELSE
|
||||||
|
SELECT 0;
|
||||||
|
GO
|
||||||
6
samples/sp_whoIsActive/src/sql/findBlockLeaders.sql
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'sp_WhoIsActive')
|
||||||
|
EXEC sp_WhoIsActive
|
||||||
|
@find_block_leaders = 1,
|
||||||
|
@get_plans = 1,
|
||||||
|
@sort_order = '[blocked_session_count] DESC'
|
||||||
|
GO
|
||||||
4
samples/sp_whoIsActive/src/sql/getPlans.sql
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'sp_WhoIsActive')
|
||||||
|
EXEC sp_WhoIsActive
|
||||||
|
@get_plans = 1
|
||||||
|
GO
|
||||||
8
samples/sp_whoIsActive/src/sql/memoryDelta.sql
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'sp_WhoIsActive')
|
||||||
|
EXEC sp_WhoIsActive
|
||||||
|
@delta_interval = 1,
|
||||||
|
@output_column_list = '[session_id][used_memory_delta]',
|
||||||
|
@sort_order = '[used_memory_delta] DESC'
|
||||||
|
ELSE
|
||||||
|
SELECT 0;
|
||||||
|
GO
|
||||||